@paraswap/dex-lib 3.8.28-fm.3 → 3.8.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/launch.json +53 -0
- package/.vscode/settings.json +2 -0
- package/.vscode/tasks.json +15 -0
- package/build/abi/AaveV1_lending_pool.json +27 -0
- package/build/abi/BProtocol.json +1155 -0
- package/build/abi/Jarvis.json +1172 -0
- package/build/abi/MStableAsset.json +1545 -0
- package/build/abi/OneInchLp.json +1304 -0
- package/build/abi/Onebit.json +736 -0
- package/build/abi/Shell.json +1294 -0
- package/build/abi/TraderJoeV2Router.json +50 -0
- package/build/abi/platypus/asset.json +490 -0
- package/build/abi/platypus/avax-pool.json +820 -0
- package/build/abi/platypus/oracle.json +119 -0
- package/build/abi/platypus/pool.json +677 -0
- package/build/abi/smardex/all/smardex-router.json +648 -0
- package/build/abi/smardex/layer-1/smardex-factory.json +242 -0
- package/build/abi/smardex/layer-1/smardex-pool.json +506 -0
- package/build/abi/smardex/layer-2/smardex-factory.json +185 -0
- package/build/abi/smardex/layer-2/smardex-pool.json +578 -0
- package/build/abi/swaap-v1/pool.json +1346 -0
- package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
- package/build/abi/wombat/pool.json +1289 -0
- package/build/abi/zrx.v2.json +1967 -0
- package/build/abi/zrx.v3.json +3454 -0
- package/build/abi/zrx.v4.json +2193 -0
- package/build/config.js +18 -18
- package/build/dex/OneInchLp.d.ts +24 -0
- package/build/dex/OneInchLp.js +43 -0
- package/build/dex/OneInchLp.js.map +1 -0
- package/build/dex/aave-v1/aave-v1.d.ts +34 -0
- package/build/dex/aave-v1/aave-v1.js +181 -0
- package/build/dex/aave-v1/aave-v1.js.map +1 -0
- package/build/dex/aave-v1/config.d.ts +11 -0
- package/build/dex/aave-v1/config.js +20 -0
- package/build/dex/aave-v1/config.js.map +1 -0
- package/build/dex/aave-v1/tokens-mainnet.json +134 -0
- package/build/dex/aave-v1/tokens.d.ts +3 -0
- package/build/dex/aave-v1/tokens.js +50 -0
- package/build/dex/aave-v1/tokens.js.map +1 -0
- package/build/dex/aave-v1/types.d.ts +12 -0
- package/build/dex/aave-v1/types.js +3 -0
- package/build/dex/aave-v1/types.js.map +1 -0
- package/build/dex/aave-v2/tokens-avalanche.json +44 -0
- package/build/dex/aave-v2/tokens-mainnet.json +188 -0
- package/build/dex/aave-v2/tokens-polygon.json +44 -0
- package/build/dex/bProtocol/bProtocol.d.ts +15 -0
- package/build/dex/bProtocol/bProtocol.js +56 -0
- package/build/dex/bProtocol/bProtocol.js.map +1 -0
- package/build/dex/bProtocol/types.d.ts +11 -0
- package/build/dex/bProtocol/types.js +8 -0
- package/build/dex/bProtocol/types.js.map +1 -0
- package/build/dex/bProtocol.d.ts +18 -0
- package/build/dex/bProtocol.js +39 -0
- package/build/dex/bProtocol.js.map +1 -0
- package/build/dex/balancer-v1/balancer-v1.d.ts +2 -2
- package/build/dex/balancer-v1/balancer-v1.js +2 -2
- package/build/dex/balancer-v1/balancer-v1.js.map +1 -1
- package/build/dex/balancer-v2/balancer-v2.d.ts +2 -2
- package/build/dex/balancer-v2/balancer-v2.js +2 -2
- package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
- package/build/dex/bancor.d.ts +26 -0
- package/build/dex/bancor.js +58 -0
- package/build/dex/bancor.js.map +1 -0
- package/build/dex/camelot/camelot.d.ts +2 -2
- package/build/dex/camelot/camelot.js +4 -4
- package/build/dex/camelot/camelot.js.map +1 -1
- package/build/dex/compound.d.ts +18 -0
- package/build/dex/compound.js +46 -0
- package/build/dex/compound.js.map +1 -0
- package/build/dex/curve-v1/curve-v1.d.ts +1 -1
- package/build/dex/curve-v1/curve-v1.js +2 -2
- package/build/dex/curve-v1/curve-v1.js.map +1 -1
- package/build/dex/curve-v1-factory/curve-v1-factory.d.ts +1 -1
- package/build/dex/curve-v1-factory/curve-v1-factory.js +5 -4
- package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
- package/build/dex/curve-v2.d.ts +58 -0
- package/build/dex/curve-v2.js +180 -0
- package/build/dex/curve-v2.js.map +1 -0
- package/build/dex/dexalot/dexalot.js +4 -0
- package/build/dex/dexalot/dexalot.js.map +1 -1
- package/build/dex/dodo-v1.d.ts +33 -0
- package/build/dex/dodo-v1.js +63 -0
- package/build/dex/dodo-v1.js.map +1 -0
- package/build/dex/gmx/gmx.d.ts +2 -2
- package/build/dex/gmx/gmx.js +2 -2
- package/build/dex/gmx/gmx.js.map +1 -1
- package/build/dex/gmx/pool.d.ts +2 -2
- package/build/dex/gmx/pool.js +3 -7
- package/build/dex/gmx/pool.js.map +1 -1
- package/build/dex/hashflow/hashflow.js +4 -0
- package/build/dex/hashflow/hashflow.js.map +1 -1
- package/build/dex/idex.d.ts +1 -1
- package/build/dex/infusion/infusion.d.ts +2 -2
- package/build/dex/infusion/infusion.js +4 -4
- package/build/dex/infusion/infusion.js.map +1 -1
- package/build/dex/jarvis.d.ts +56 -0
- package/build/dex/jarvis.js +163 -0
- package/build/dex/jarvis.js.map +1 -0
- package/build/dex/lido.d.ts +19 -0
- package/build/dex/lido.js +42 -0
- package/build/dex/lido.js.map +1 -0
- package/build/dex/lite-psm/lite-psm.d.ts +3 -3
- package/build/dex/lite-psm/lite-psm.js +3 -7
- package/build/dex/lite-psm/lite-psm.js.map +1 -1
- package/build/dex/mStable.d.ts +44 -0
- package/build/dex/mStable.js +75 -0
- package/build/dex/mStable.js.map +1 -0
- package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
- package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
- package/build/dex/maker-psm/scripts/validate-state.js +185 -0
- package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
- package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
- package/build/dex/maverick-v1/maverick-v1.d.ts +2 -2
- package/build/dex/maverick-v1/maverick-v1.js +1 -3
- package/build/dex/maverick-v1/maverick-v1.js.map +1 -1
- package/build/dex/maverick-v2/maverick-v2-pool.d.ts +1 -1
- package/build/dex/maverick-v2/maverick-v2-pool.js +1 -3
- package/build/dex/maverick-v2/maverick-v2-pool.js.map +1 -1
- package/build/dex/maverick-v2/maverick-v2.d.ts +2 -2
- package/build/dex/maverick-v2/maverick-v2.js +2 -2
- package/build/dex/maverick-v2/maverick-v2.js.map +1 -1
- package/build/dex/nerve/nerve.d.ts +3 -3
- package/build/dex/nerve/nerve.js +5 -9
- package/build/dex/nerve/nerve.js.map +1 -1
- package/build/dex/onebit/onebit.d.ts +16 -0
- package/build/dex/onebit/onebit.js +61 -0
- package/build/dex/onebit/onebit.js.map +1 -0
- package/build/dex/onebit/types.d.ts +14 -0
- package/build/dex/onebit/types.js +8 -0
- package/build/dex/onebit/types.js.map +1 -0
- package/build/dex/onebit.d.ts +25 -0
- package/build/dex/onebit.js +42 -0
- package/build/dex/onebit.js.map +1 -0
- package/build/dex/oswap/oswap-pool.d.ts +1 -1
- package/build/dex/oswap/oswap-pool.js +1 -3
- package/build/dex/oswap/oswap-pool.js.map +1 -1
- package/build/dex/oswap/oswap.d.ts +1 -1
- package/build/dex/oswap/oswap.js +2 -6
- package/build/dex/oswap/oswap.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3.d.ts +2 -2
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js +2 -4
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
- package/build/dex/platypus/asset.d.ts +14 -0
- package/build/dex/platypus/asset.js +97 -0
- package/build/dex/platypus/asset.js.map +1 -0
- package/build/dex/platypus/config.d.ts +11 -0
- package/build/dex/platypus/config.js +69 -0
- package/build/dex/platypus/config.js.map +1 -0
- package/build/dex/platypus/platypus.d.ts +63 -0
- package/build/dex/platypus/platypus.js +487 -0
- package/build/dex/platypus/platypus.js.map +1 -0
- package/build/dex/platypus/pool-avax.d.ts +8 -0
- package/build/dex/platypus/pool-avax.js +54 -0
- package/build/dex/platypus/pool-avax.js.map +1 -0
- package/build/dex/platypus/pool-base.d.ts +19 -0
- package/build/dex/platypus/pool-base.js +86 -0
- package/build/dex/platypus/pool-base.js.map +1 -0
- package/build/dex/platypus/pool-pure.d.ts +8 -0
- package/build/dex/platypus/pool-pure.js +37 -0
- package/build/dex/platypus/pool-pure.js.map +1 -0
- package/build/dex/platypus/pool-subscriber.d.ts +14 -0
- package/build/dex/platypus/pool-subscriber.js +167 -0
- package/build/dex/platypus/pool-subscriber.js.map +1 -0
- package/build/dex/platypus/pool.d.ts +8 -0
- package/build/dex/platypus/pool.js +58 -0
- package/build/dex/platypus/pool.js.map +1 -0
- package/build/dex/platypus/types.d.ts +92 -0
- package/build/dex/platypus/types.js +10 -0
- package/build/dex/platypus/types.js.map +1 -0
- package/build/dex/quickswap/spiritswap-v3.d.ts +6 -0
- package/build/dex/quickswap/spiritswap-v3.js +19 -0
- package/build/dex/quickswap/spiritswap-v3.js.map +1 -0
- package/build/dex/shell.d.ts +25 -0
- package/build/dex/shell.js +41 -0
- package/build/dex/shell.js.map +1 -0
- package/build/dex/smardex/config.d.ts +4 -0
- package/build/dex/smardex/config.js +64 -0
- package/build/dex/smardex/config.js.map +1 -0
- package/build/dex/smardex/constants.d.ts +18 -0
- package/build/dex/smardex/constants.js +33 -0
- package/build/dex/smardex/constants.js.map +1 -0
- package/build/dex/smardex/sdk/constants.d.ts +6 -0
- package/build/dex/smardex/sdk/constants.js +13 -0
- package/build/dex/smardex/sdk/constants.js.map +1 -0
- package/build/dex/smardex/sdk/core.d.ts +113 -0
- package/build/dex/smardex/sdk/core.js +499 -0
- package/build/dex/smardex/sdk/core.js.map +1 -0
- package/build/dex/smardex/sdk/errors.d.ts +15 -0
- package/build/dex/smardex/sdk/errors.js +22 -0
- package/build/dex/smardex/sdk/errors.js.map +1 -0
- package/build/dex/smardex/sdk/types.d.ts +62 -0
- package/build/dex/smardex/sdk/types.js +3 -0
- package/build/dex/smardex/sdk/types.js.map +1 -0
- package/build/dex/smardex/sdk/utils.d.ts +44 -0
- package/build/dex/smardex/sdk/utils.js +133 -0
- package/build/dex/smardex/sdk/utils.js.map +1 -0
- package/build/dex/smardex/smardex-event-pool.d.ts +28 -0
- package/build/dex/smardex/smardex-event-pool.js +119 -0
- package/build/dex/smardex/smardex-event-pool.js.map +1 -0
- package/build/dex/smardex/smardex.d.ts +65 -0
- package/build/dex/smardex/smardex.js +519 -0
- package/build/dex/smardex/smardex.js.map +1 -0
- package/build/dex/smardex/types.d.ts +55 -0
- package/build/dex/smardex/types.js +3 -0
- package/build/dex/smardex/types.js.map +1 -0
- package/build/dex/smoothy.d.ts +26 -0
- package/build/dex/smoothy.js +48 -0
- package/build/dex/smoothy.js.map +1 -0
- package/build/dex/solidly/forks-override/cone.d.ts +22 -0
- package/build/dex/solidly/forks-override/cone.js +53 -0
- package/build/dex/solidly/forks-override/cone.js.map +1 -0
- package/build/dex/solidly/forks-override/solisnek.d.ts +8 -0
- package/build/dex/solidly/forks-override/solisnek.js +15 -0
- package/build/dex/solidly/forks-override/solisnek.js.map +1 -0
- package/build/dex/solidly/solidly.d.ts +2 -2
- package/build/dex/solidly/solidly.js +4 -4
- package/build/dex/solidly/solidly.js.map +1 -1
- package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
- package/build/dex/stable-pool.d.ts +28 -0
- package/build/dex/stable-pool.js +55 -0
- package/build/dex/stable-pool.js.map +1 -0
- package/build/dex/swaap-v1/config.d.ts +17 -0
- package/build/dex/swaap-v1/config.js +56 -0
- package/build/dex/swaap-v1/config.js.map +1 -0
- package/build/dex/swaap-v1/constants.d.ts +6 -0
- package/build/dex/swaap-v1/constants.js +17 -0
- package/build/dex/swaap-v1/constants.js.map +1 -0
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.d.ts +25 -0
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.js +62 -0
- package/build/dex/swaap-v1/libraries/ChainlinkUtils.js.map +1 -0
- package/build/dex/swaap-v1/libraries/Const.d.ts +18 -0
- package/build/dex/swaap-v1/libraries/Const.js +26 -0
- package/build/dex/swaap-v1/libraries/Const.js.map +1 -0
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.d.ts +77 -0
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js +316 -0
- package/build/dex/swaap-v1/libraries/GeometricBrownianMotion.js.map +1 -0
- package/build/dex/swaap-v1/libraries/LogExpMath.d.ts +75 -0
- package/build/dex/swaap-v1/libraries/LogExpMath.js +418 -0
- package/build/dex/swaap-v1/libraries/LogExpMath.js.map +1 -0
- package/build/dex/swaap-v1/libraries/MathMMM.d.ts +185 -0
- package/build/dex/swaap-v1/libraries/MathMMM.js +453 -0
- package/build/dex/swaap-v1/libraries/MathMMM.js.map +1 -0
- package/build/dex/swaap-v1/libraries/Num.d.ts +31 -0
- package/build/dex/swaap-v1/libraries/Num.js +167 -0
- package/build/dex/swaap-v1/libraries/Num.js.map +1 -0
- package/build/dex/swaap-v1/libraries/PoolQuotations.d.ts +23 -0
- package/build/dex/swaap-v1/libraries/PoolQuotations.js +131 -0
- package/build/dex/swaap-v1/libraries/PoolQuotations.js.map +1 -0
- package/build/dex/swaap-v1/libraries/Struct.d.ts +56 -0
- package/build/dex/swaap-v1/libraries/Struct.js +3 -0
- package/build/dex/swaap-v1/libraries/Struct.js.map +1 -0
- package/build/dex/swaap-v1/swaap-v1-pool.d.ts +45 -0
- package/build/dex/swaap-v1/swaap-v1-pool.js +656 -0
- package/build/dex/swaap-v1/swaap-v1-pool.js.map +1 -0
- package/build/dex/swaap-v1/swaap-v1.d.ts +62 -0
- package/build/dex/swaap-v1/swaap-v1.js +383 -0
- package/build/dex/swaap-v1/swaap-v1.js.map +1 -0
- package/build/dex/swaap-v1/types.d.ts +106 -0
- package/build/dex/swaap-v1/types.js +9 -0
- package/build/dex/swaap-v1/types.js.map +1 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.d.ts +7 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js +20 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1-new.js.map +1 -0
- package/build/dex/trader-joe-v2.1.d.ts +43 -0
- package/build/dex/trader-joe-v2.1.js +79 -0
- package/build/dex/trader-joe-v2.1.js.map +1 -0
- package/build/dex/trader-joe-v2.d.ts +40 -0
- package/build/dex/trader-joe-v2.js +74 -0
- package/build/dex/trader-joe-v2.js.map +1 -0
- package/build/dex/uniswap-v2/uniswap-v2.d.ts +2 -2
- package/build/dex/uniswap-v2/uniswap-v2.js +4 -4
- package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
- package/build/dex/uniswap-v3/uniswap-v3.d.ts +2 -2
- package/build/dex/uniswap-v3/uniswap-v3.js +2 -4
- package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
- package/build/dex/zerox/config.d.ts +2 -0
- package/build/dex/zerox/config.js +33 -0
- package/build/dex/zerox/config.js.map +1 -0
- package/build/dex/zerox/index.d.ts +22 -0
- package/build/dex/zerox/index.js +225 -0
- package/build/dex/zerox/index.js.map +1 -0
- package/build/dex/zerox/order.d.ts +88 -0
- package/build/dex/zerox/order.js +53 -0
- package/build/dex/zerox/order.js.map +1 -0
- package/build/dex/zerox/types.d.ts +73 -0
- package/build/dex/zerox/types.js +21 -0
- package/build/dex/zerox/types.js.map +1 -0
- package/build/executor/types.d.ts +3 -1
- package/build/executor/types.js +2 -0
- package/build/executor/types.js.map +1 -1
- package/build/pricing-helper.d.ts +2 -2
- package/build/pricing-helper.js +5 -9
- package/build/pricing-helper.js.map +1 -1
- package/package.json +1 -1
- package/src/config.ts +18 -18
- package/src/dex/balancer-v1/balancer-v1.ts +1 -5
- package/src/dex/balancer-v2/balancer-v2.ts +1 -5
- package/src/dex/camelot/camelot.ts +3 -9
- package/src/dex/curve-v1/curve-v1.ts +1 -3
- package/src/dex/curve-v1-factory/curve-v1-factory.ts +4 -5
- package/src/dex/dexalot/dexalot.ts +4 -0
- package/src/dex/gmx/gmx.ts +0 -5
- package/src/dex/gmx/pool.ts +2 -8
- package/src/dex/hashflow/hashflow.ts +4 -0
- package/src/dex/idex.ts +0 -1
- package/src/dex/infusion/infusion.ts +3 -9
- package/src/dex/lite-psm/lite-psm.ts +2 -10
- package/src/dex/maverick-v1/maverick-v1.ts +0 -6
- package/src/dex/maverick-v2/maverick-v2-pool.ts +0 -3
- package/src/dex/maverick-v2/maverick-v2.ts +1 -5
- package/src/dex/nerve/nerve.ts +16 -28
- package/src/dex/oswap/oswap-pool.ts +1 -3
- package/src/dex/oswap/oswap.ts +2 -8
- package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +7 -13
- package/src/dex/solidly/solidly.ts +3 -9
- package/src/dex/uniswap-v2/uniswap-v2.ts +3 -9
- package/src/dex/uniswap-v3/uniswap-v3.ts +8 -14
- package/src/executor/types.ts +2 -0
- package/src/pricing-helper.ts +4 -27
- package/build/dex-utils.d.ts +0 -3
- package/build/dex-utils.js +0 -10
- package/build/dex-utils.js.map +0 -1
- package/build/stateful-dual-synchronizer.d.ts +0 -46
- package/build/stateful-dual-synchronizer.js +0 -300
- package/build/stateful-dual-synchronizer.js.map +0 -1
|
@@ -151,11 +151,7 @@ export class Infusion extends UniswapV2 {
|
|
|
151
151
|
return pair;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
async batchCatchUpPairs(
|
|
155
|
-
pairs: [Token, Token][],
|
|
156
|
-
blockNumber: number,
|
|
157
|
-
fmode?: boolean,
|
|
158
|
-
) {
|
|
154
|
+
async batchCatchUpPairs(pairs: [Token, Token][], blockNumber: number) {
|
|
159
155
|
if (!blockNumber) return;
|
|
160
156
|
const pairsToFetch: InfusionPair[] = [];
|
|
161
157
|
for (const _pair of pairs) {
|
|
@@ -167,7 +163,7 @@ export class Infusion extends UniswapV2 {
|
|
|
167
163
|
if (!(pair && pair.exchange)) continue;
|
|
168
164
|
if (!pair.pool) {
|
|
169
165
|
pairsToFetch.push(pair);
|
|
170
|
-
} else if (!
|
|
166
|
+
} else if (!pair.pool.getState(blockNumber)) {
|
|
171
167
|
pairsToFetch.push(pair);
|
|
172
168
|
}
|
|
173
169
|
}
|
|
@@ -281,8 +277,6 @@ export class Infusion extends UniswapV2 {
|
|
|
281
277
|
srcDexFee: 0,
|
|
282
278
|
destDexFee: 0,
|
|
283
279
|
},
|
|
284
|
-
isFirstSwap?: boolean,
|
|
285
|
-
fmode?: boolean,
|
|
286
280
|
): Promise<ExchangePrices<InfusionData> | null> {
|
|
287
281
|
try {
|
|
288
282
|
if (side === SwapSide.BUY) return null; // Buy side not implemented yet
|
|
@@ -300,7 +294,7 @@ export class Infusion extends UniswapV2 {
|
|
|
300
294
|
.sort((a, b) => (a > b ? 1 : -1))
|
|
301
295
|
.join('_');
|
|
302
296
|
|
|
303
|
-
await this.batchCatchUpPairs([[from, to]], blockNumber
|
|
297
|
+
await this.batchCatchUpPairs([[from, to]], blockNumber);
|
|
304
298
|
|
|
305
299
|
const resultPromises = [false, true].map(async stable => {
|
|
306
300
|
// We don't support fee on transfer for stable pools yet
|
|
@@ -13,7 +13,6 @@ import {
|
|
|
13
13
|
DexExchangeParam,
|
|
14
14
|
ExchangeTxInfo,
|
|
15
15
|
PreprocessTransactionOptions,
|
|
16
|
-
TransferFeeParams,
|
|
17
16
|
} from '../../types';
|
|
18
17
|
import { SwapSide, Network, NULL_ADDRESS } from '../../constants';
|
|
19
18
|
import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
|
|
@@ -145,11 +144,9 @@ export class LitePsm
|
|
|
145
144
|
async getPoolState(
|
|
146
145
|
pool: LitePsmEventPool,
|
|
147
146
|
blockNumber: number,
|
|
148
|
-
|
|
149
|
-
): Promise<PoolState | null> {
|
|
147
|
+
): Promise<PoolState> {
|
|
150
148
|
const eventState = pool.getState(blockNumber);
|
|
151
149
|
if (eventState) return eventState;
|
|
152
|
-
if (fmode) return null;
|
|
153
150
|
const onChainState = await pool.generateState(blockNumber);
|
|
154
151
|
pool.setState(onChainState, blockNumber);
|
|
155
152
|
return onChainState;
|
|
@@ -204,9 +201,6 @@ export class LitePsm
|
|
|
204
201
|
side: SwapSide,
|
|
205
202
|
blockNumber: number,
|
|
206
203
|
limitPools?: string[],
|
|
207
|
-
transferFees?: TransferFeeParams,
|
|
208
|
-
isFirstSwap?: boolean,
|
|
209
|
-
fmode?: boolean,
|
|
210
204
|
): Promise<null | ExchangePrices<LitePsmData>> {
|
|
211
205
|
const eventPool = this.getEventPool(srcToken, destToken);
|
|
212
206
|
if (!eventPool) return null;
|
|
@@ -214,9 +208,7 @@ export class LitePsm
|
|
|
214
208
|
const poolIdentifier = eventPool.getIdentifier();
|
|
215
209
|
if (limitPools && !limitPools.includes(poolIdentifier)) return null;
|
|
216
210
|
|
|
217
|
-
const poolState = await this.getPoolState(eventPool, blockNumber
|
|
218
|
-
|
|
219
|
-
if (!poolState) return null;
|
|
211
|
+
const poolState = await this.getPoolState(eventPool, blockNumber);
|
|
220
212
|
|
|
221
213
|
const unitVolume = getBigIntPow(
|
|
222
214
|
(side === SwapSide.SELL ? srcToken : destToken).decimals,
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
PoolLiquidity,
|
|
11
11
|
Logger,
|
|
12
12
|
DexExchangeParam,
|
|
13
|
-
TransferFeeParams,
|
|
14
13
|
} from '../../types';
|
|
15
14
|
import { SwapSide, Network } from '../../constants';
|
|
16
15
|
import { getDexKeysWithNetwork, getBigIntPow, isTruthy } from '../../utils';
|
|
@@ -210,9 +209,6 @@ export class MaverickV1
|
|
|
210
209
|
side: SwapSide,
|
|
211
210
|
blockNumber: number,
|
|
212
211
|
limitPools?: string[],
|
|
213
|
-
transferFees?: TransferFeeParams,
|
|
214
|
-
isFirstSwap?: boolean,
|
|
215
|
-
fmode?: boolean,
|
|
216
212
|
): Promise<null | ExchangePrices<MaverickV1Data>> {
|
|
217
213
|
try {
|
|
218
214
|
const from = this.dexHelper.config.wrapETH(srcToken);
|
|
@@ -240,8 +236,6 @@ export class MaverickV1
|
|
|
240
236
|
allowedPools.map(async (pool: MaverickV1EventPool) => {
|
|
241
237
|
try {
|
|
242
238
|
let state = pool.getState(blockNumber);
|
|
243
|
-
if (fmode && !state) return null;
|
|
244
|
-
|
|
245
239
|
if (state === null) {
|
|
246
240
|
state = await pool.generateState(blockNumber);
|
|
247
241
|
pool.setState(state, blockNumber);
|
|
@@ -346,15 +346,12 @@ export class MaverickV2EventPool extends StatefulEventSubscriber<PoolState> {
|
|
|
346
346
|
|
|
347
347
|
async getOrGenerateState(
|
|
348
348
|
blockNumber: number,
|
|
349
|
-
fmode?: boolean,
|
|
350
349
|
): Promise<DeepReadonly<PoolState> | null> {
|
|
351
350
|
const state = this.getState(blockNumber);
|
|
352
351
|
if (state) {
|
|
353
352
|
return state;
|
|
354
353
|
}
|
|
355
354
|
|
|
356
|
-
if (fmode) return null;
|
|
357
|
-
|
|
358
355
|
this.logger.error(
|
|
359
356
|
`No state found for ${this.name} ${this.addressesSubscribed[0]}, generating new one`,
|
|
360
357
|
);
|
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
Logger,
|
|
10
10
|
NumberAsString,
|
|
11
11
|
DexExchangeParam,
|
|
12
|
-
TransferFeeParams,
|
|
13
12
|
} from '../../types';
|
|
14
13
|
import { SwapSide, Network, NULL_ADDRESS } from '../../constants';
|
|
15
14
|
import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
|
|
@@ -144,9 +143,6 @@ export class MaverickV2 extends SimpleExchange implements IDex<MaverickV2Data> {
|
|
|
144
143
|
side: SwapSide,
|
|
145
144
|
blockNumber: number,
|
|
146
145
|
limitPools?: string[],
|
|
147
|
-
transferFees?: TransferFeeParams,
|
|
148
|
-
isFirstSwap?: boolean,
|
|
149
|
-
fmode?: boolean,
|
|
150
146
|
): Promise<null | ExchangePrices<MaverickV2Data>> {
|
|
151
147
|
try {
|
|
152
148
|
const from = this.dexHelper.config.wrapETH(srcToken);
|
|
@@ -170,7 +166,7 @@ export class MaverickV2 extends SimpleExchange implements IDex<MaverickV2Data> {
|
|
|
170
166
|
|
|
171
167
|
const tasks = allowedPools.map(async (pool: MaverickV2EventPool) => {
|
|
172
168
|
try {
|
|
173
|
-
const state = await pool.getOrGenerateState(blockNumber
|
|
169
|
+
const state = await pool.getOrGenerateState(blockNumber);
|
|
174
170
|
if (!state) {
|
|
175
171
|
this.logger.debug(`Received null state for pool ${pool.address}`);
|
|
176
172
|
return null;
|
package/src/dex/nerve/nerve.ts
CHANGED
|
@@ -11,12 +11,11 @@ import {
|
|
|
11
11
|
Logger,
|
|
12
12
|
NumberAsString,
|
|
13
13
|
DexExchangeParam,
|
|
14
|
-
TransferFeeParams,
|
|
15
14
|
} from '../../types';
|
|
16
15
|
import nervePoolABIDefault from '../../abi/nerve/nerve-pool.json';
|
|
17
16
|
import { SwapSide, Network } from '../../constants';
|
|
18
17
|
import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
|
|
19
|
-
import { getDexKeysWithNetwork, getBigIntPow
|
|
18
|
+
import { getDexKeysWithNetwork, getBigIntPow } from '../../utils';
|
|
20
19
|
import { IDex } from '../../dex/idex';
|
|
21
20
|
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
22
21
|
import {
|
|
@@ -112,7 +111,6 @@ export class Nerve
|
|
|
112
111
|
async getStates(
|
|
113
112
|
pools?: NerveEventPool[],
|
|
114
113
|
blockNumber?: number,
|
|
115
|
-
fmode?: boolean,
|
|
116
114
|
): Promise<DeepReadonly<{ state: PoolState; pool: NerveEventPool }[]>> {
|
|
117
115
|
const _pools = pools === undefined ? this.allPools : pools;
|
|
118
116
|
|
|
@@ -123,23 +121,20 @@ export class Nerve
|
|
|
123
121
|
|
|
124
122
|
// TODO: Need to batch this RPC calls in one multicall
|
|
125
123
|
return Promise.all(
|
|
126
|
-
_pools
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
this.
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
})
|
|
141
|
-
.filter(isTruthy),
|
|
142
|
-
) as Promise<{ state: PoolState; pool: NerveEventPool }[]>;
|
|
124
|
+
_pools.map(async eventPool => {
|
|
125
|
+
let state = eventPool.getState(_blockNumber);
|
|
126
|
+
if (!state || !state.isValid) {
|
|
127
|
+
this.logger.info(
|
|
128
|
+
`State for ${this.dexKey} pool ${eventPool.name} on ${this.network} is stale or invalid on block ${_blockNumber}. Generating new one`,
|
|
129
|
+
);
|
|
130
|
+
const newState = await eventPool.generateState(_blockNumber);
|
|
131
|
+
eventPool.setState(newState, _blockNumber);
|
|
132
|
+
return { state: newState, pool: eventPool };
|
|
133
|
+
} else {
|
|
134
|
+
return { state, pool: eventPool };
|
|
135
|
+
}
|
|
136
|
+
}),
|
|
137
|
+
);
|
|
143
138
|
}
|
|
144
139
|
|
|
145
140
|
async getPoolIdentifiers(
|
|
@@ -170,9 +165,6 @@ export class Nerve
|
|
|
170
165
|
side: SwapSide,
|
|
171
166
|
blockNumber: number,
|
|
172
167
|
limitPools?: string[],
|
|
173
|
-
transferFees?: TransferFeeParams,
|
|
174
|
-
isFirstSwap?: boolean,
|
|
175
|
-
fmode?: boolean,
|
|
176
168
|
): Promise<null | ExchangePrices<NerveData>> {
|
|
177
169
|
try {
|
|
178
170
|
if (side === SwapSide.BUY) return null;
|
|
@@ -207,11 +199,7 @@ export class Nerve
|
|
|
207
199
|
)
|
|
208
200
|
: filterPoolsByIdentifiers(limitPools, this.allPools);
|
|
209
201
|
|
|
210
|
-
const statePoolPair = await this.getStates(
|
|
211
|
-
selectedPools,
|
|
212
|
-
blockNumber,
|
|
213
|
-
fmode,
|
|
214
|
-
);
|
|
202
|
+
const statePoolPair = await this.getStates(selectedPools, blockNumber);
|
|
215
203
|
|
|
216
204
|
// here side === SwapSide.SELL
|
|
217
205
|
const unitVolume = getBigIntPow(_srcToken.decimals);
|
|
@@ -126,11 +126,9 @@ export class OSwapEventPool extends StatefulEventSubscriber<OSwapPoolState> {
|
|
|
126
126
|
async getStateOrGenerate(
|
|
127
127
|
blockNumber: number,
|
|
128
128
|
readonly: boolean = true,
|
|
129
|
-
|
|
130
|
-
): Promise<OSwapPoolState | null> {
|
|
129
|
+
): Promise<OSwapPoolState> {
|
|
131
130
|
let state = this.getState(blockNumber);
|
|
132
131
|
if (!state) {
|
|
133
|
-
if (fmode) return null;
|
|
134
132
|
state = await this.generateState(blockNumber);
|
|
135
133
|
if (!readonly) this.setState(state, blockNumber);
|
|
136
134
|
}
|
package/src/dex/oswap/oswap.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Interface } from '@ethersproject/abi';
|
|
2
|
-
import {
|
|
2
|
+
import { AsyncOrSync } from 'ts-essentials';
|
|
3
3
|
import {
|
|
4
4
|
Token,
|
|
5
5
|
Address,
|
|
@@ -203,8 +203,6 @@ export class OSwap extends SimpleExchange implements IDex<OSwapData> {
|
|
|
203
203
|
srcDexFee: 0,
|
|
204
204
|
destDexFee: 0,
|
|
205
205
|
},
|
|
206
|
-
isFirstSwap?: boolean,
|
|
207
|
-
fmode?: boolean,
|
|
208
206
|
): Promise<null | ExchangePrices<OSwapData>> {
|
|
209
207
|
try {
|
|
210
208
|
// Get the pool to use.
|
|
@@ -222,9 +220,7 @@ export class OSwap extends SimpleExchange implements IDex<OSwapData> {
|
|
|
222
220
|
return null;
|
|
223
221
|
}
|
|
224
222
|
|
|
225
|
-
const state = await eventPool.getStateOrGenerate(blockNumber
|
|
226
|
-
|
|
227
|
-
if (!state) return null;
|
|
223
|
+
const state = await eventPool.getStateOrGenerate(blockNumber);
|
|
228
224
|
|
|
229
225
|
// Calculate the prices
|
|
230
226
|
const unitAmount = getBigIntPow(18);
|
|
@@ -383,8 +379,6 @@ export class OSwap extends SimpleExchange implements IDex<OSwapData> {
|
|
|
383
379
|
await this.dexHelper.web3Provider.eth.getBlockNumber();
|
|
384
380
|
const state = await eventPool.getStateOrGenerate(blockNumber);
|
|
385
381
|
|
|
386
|
-
assert(state, 'OSwap pool state not found');
|
|
387
|
-
|
|
388
382
|
const usd0 = await this.dexHelper.getTokenUSDPrice(
|
|
389
383
|
{ address: pool.token0, decimals: 18 },
|
|
390
384
|
BigInt(state.balance0),
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
NumberAsString,
|
|
13
13
|
PoolPrices,
|
|
14
14
|
DexExchangeParam,
|
|
15
|
-
TransferFeeParams,
|
|
16
15
|
} from '../../types';
|
|
17
16
|
import { SwapSide, Network, CACHE_PREFIX } from '../../constants';
|
|
18
17
|
import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
|
|
@@ -547,9 +546,6 @@ export class PancakeswapV3
|
|
|
547
546
|
side: SwapSide,
|
|
548
547
|
blockNumber: number,
|
|
549
548
|
limitPools?: string[],
|
|
550
|
-
transferFees?: TransferFeeParams,
|
|
551
|
-
isFirstSwap?: boolean,
|
|
552
|
-
fmode?: boolean,
|
|
553
549
|
): Promise<null | ExchangePrices<UniswapV3Data>> {
|
|
554
550
|
try {
|
|
555
551
|
const _srcToken = this.dexHelper.config.wrapETH(srcToken);
|
|
@@ -636,15 +632,13 @@ export class PancakeswapV3
|
|
|
636
632
|
},
|
|
637
633
|
);
|
|
638
634
|
|
|
639
|
-
const rpcResultsPromise =
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
this.network === Network.ZKEVM ? [] : poolsToUse.poolWithoutState,
|
|
647
|
-
);
|
|
635
|
+
const rpcResultsPromise = this.getPricingFromRpc(
|
|
636
|
+
_srcToken,
|
|
637
|
+
_destToken,
|
|
638
|
+
amounts,
|
|
639
|
+
side,
|
|
640
|
+
this.network === Network.ZKEVM ? [] : poolsToUse.poolWithoutState,
|
|
641
|
+
);
|
|
648
642
|
|
|
649
643
|
const states = poolsToUse.poolWithState.map(
|
|
650
644
|
p => p.getState(blockNumber)!,
|
|
@@ -171,11 +171,7 @@ export class Solidly extends UniswapV2 {
|
|
|
171
171
|
return pair;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
async batchCatchUpPairs(
|
|
175
|
-
pairs: [Token, Token][],
|
|
176
|
-
blockNumber: number,
|
|
177
|
-
fmode?: boolean,
|
|
178
|
-
) {
|
|
174
|
+
async batchCatchUpPairs(pairs: [Token, Token][], blockNumber: number) {
|
|
179
175
|
if (!blockNumber) return;
|
|
180
176
|
const pairsToFetch: SolidlyPair[] = [];
|
|
181
177
|
for (const _pair of pairs) {
|
|
@@ -184,7 +180,7 @@ export class Solidly extends UniswapV2 {
|
|
|
184
180
|
if (!(pair && pair.exchange)) continue;
|
|
185
181
|
if (!pair.pool) {
|
|
186
182
|
pairsToFetch.push(pair);
|
|
187
|
-
} else if (!
|
|
183
|
+
} else if (!pair.pool.getState(blockNumber)) {
|
|
188
184
|
pairsToFetch.push(pair);
|
|
189
185
|
}
|
|
190
186
|
}
|
|
@@ -310,8 +306,6 @@ export class Solidly extends UniswapV2 {
|
|
|
310
306
|
srcDexFee: 0,
|
|
311
307
|
destDexFee: 0,
|
|
312
308
|
},
|
|
313
|
-
isFirstSwap?: boolean,
|
|
314
|
-
fmode?: boolean,
|
|
315
309
|
): Promise<ExchangePrices<UniswapV2Data> | null> {
|
|
316
310
|
try {
|
|
317
311
|
if (side === SwapSide.BUY) return null; // Buy side not implemented yet
|
|
@@ -329,7 +323,7 @@ export class Solidly extends UniswapV2 {
|
|
|
329
323
|
.sort((a, b) => (a > b ? 1 : -1))
|
|
330
324
|
.join('_');
|
|
331
325
|
|
|
332
|
-
await this.batchCatchUpPairs([[from, to]], blockNumber
|
|
326
|
+
await this.batchCatchUpPairs([[from, to]], blockNumber);
|
|
333
327
|
|
|
334
328
|
const resultPromises = [false, true].map(async stable => {
|
|
335
329
|
// We don't support fee on transfer for stable pools yet
|
|
@@ -445,11 +445,7 @@ export class UniswapV2
|
|
|
445
445
|
}
|
|
446
446
|
}
|
|
447
447
|
|
|
448
|
-
async batchCatchUpPairs(
|
|
449
|
-
pairs: [Token, Token][],
|
|
450
|
-
blockNumber: number,
|
|
451
|
-
fmode?: boolean,
|
|
452
|
-
) {
|
|
448
|
+
async batchCatchUpPairs(pairs: [Token, Token][], blockNumber: number) {
|
|
453
449
|
if (!blockNumber) return;
|
|
454
450
|
const pairsToFetch: UniswapV2Pair[] = [];
|
|
455
451
|
for (const _pair of pairs) {
|
|
@@ -457,7 +453,7 @@ export class UniswapV2
|
|
|
457
453
|
if (!(pair && pair.exchange)) continue;
|
|
458
454
|
if (!pair.pool) {
|
|
459
455
|
pairsToFetch.push(pair);
|
|
460
|
-
} else if (!
|
|
456
|
+
} else if (!pair.pool.getState(blockNumber)) {
|
|
461
457
|
pairsToFetch.push(pair);
|
|
462
458
|
}
|
|
463
459
|
}
|
|
@@ -564,8 +560,6 @@ export class UniswapV2
|
|
|
564
560
|
srcDexFee: 0,
|
|
565
561
|
destDexFee: 0,
|
|
566
562
|
},
|
|
567
|
-
isFirstSwap?: boolean,
|
|
568
|
-
fmode?: boolean,
|
|
569
563
|
): Promise<ExchangePrices<UniswapV2Data> | null> {
|
|
570
564
|
try {
|
|
571
565
|
const from = this.dexHelper.config.wrapETH(_from);
|
|
@@ -587,7 +581,7 @@ export class UniswapV2
|
|
|
587
581
|
if (limitPools && limitPools.every(p => p !== poolIdentifier))
|
|
588
582
|
return null;
|
|
589
583
|
|
|
590
|
-
await this.batchCatchUpPairs([[from, to]], blockNumber
|
|
584
|
+
await this.batchCatchUpPairs([[from, to]], blockNumber);
|
|
591
585
|
const isSell = side === SwapSide.SELL;
|
|
592
586
|
const pairParam = await this.getPairOrderedParams(
|
|
593
587
|
from,
|
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
PreprocessTransactionOptions,
|
|
15
15
|
SimpleExchangeParam,
|
|
16
16
|
Token,
|
|
17
|
-
TransferFeeParams,
|
|
18
17
|
TxInfo,
|
|
19
18
|
} from '../../types';
|
|
20
19
|
import { CACHE_PREFIX, Network, SwapSide } from '../../constants';
|
|
@@ -662,9 +661,6 @@ export class UniswapV3
|
|
|
662
661
|
side: SwapSide,
|
|
663
662
|
blockNumber: number,
|
|
664
663
|
limitPools?: string[],
|
|
665
|
-
transferFees?: TransferFeeParams,
|
|
666
|
-
isFirstSwap?: boolean,
|
|
667
|
-
fmode?: boolean,
|
|
668
664
|
): Promise<null | ExchangePrices<UniswapV3Data>> {
|
|
669
665
|
try {
|
|
670
666
|
const _srcToken = this.dexHelper.config.wrapETH(srcToken);
|
|
@@ -741,16 +737,14 @@ export class UniswapV3
|
|
|
741
737
|
p => p.getState(blockNumber)!,
|
|
742
738
|
);
|
|
743
739
|
|
|
744
|
-
const rpcResultsPromise =
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
this.network === Network.ZKEVM ? [] : states,
|
|
753
|
-
);
|
|
740
|
+
const rpcResultsPromise = this.getPricingFromRpc(
|
|
741
|
+
_srcToken,
|
|
742
|
+
_destToken,
|
|
743
|
+
amounts,
|
|
744
|
+
side,
|
|
745
|
+
this.network === Network.ZKEVM ? [] : poolsToUse.poolWithoutState,
|
|
746
|
+
this.network === Network.ZKEVM ? [] : states,
|
|
747
|
+
);
|
|
754
748
|
|
|
755
749
|
const unitAmount = getBigIntPow(
|
|
756
750
|
side == SwapSide.SELL ? _srcToken.decimals : _destToken.decimals,
|
package/src/executor/types.ts
CHANGED
package/src/pricing-helper.ts
CHANGED
|
@@ -111,24 +111,14 @@ export class PricingHelper {
|
|
|
111
111
|
blockNumber: number,
|
|
112
112
|
dexKeys: string[],
|
|
113
113
|
filterConstantPricePool: boolean = false,
|
|
114
|
-
overrideTimeout?: number,
|
|
115
114
|
): Promise<{ [dexKey: string]: string[] | null }> {
|
|
116
115
|
const poolIdentifiers = await Promise.all(
|
|
117
116
|
dexKeys.map(async key => {
|
|
118
117
|
try {
|
|
119
118
|
return await new Promise<string[] | null>((resolve, reject) => {
|
|
120
|
-
const now = Date.now();
|
|
121
|
-
const timeout = overrideTimeout ?? FETCH_POOL_IDENTIFIER_TIMEOUT;
|
|
122
119
|
const timer = setTimeout(
|
|
123
|
-
() =>
|
|
124
|
-
|
|
125
|
-
new Error(
|
|
126
|
-
`Timeout of ${timeout}ms breached after ${
|
|
127
|
-
Date.now() - now
|
|
128
|
-
}ms for ${key}`,
|
|
129
|
-
),
|
|
130
|
-
),
|
|
131
|
-
timeout,
|
|
120
|
+
() => reject(new Error(`Timeout`)),
|
|
121
|
+
FETCH_POOL_IDENTIFIER_TIMEOUT,
|
|
132
122
|
);
|
|
133
123
|
const dexInstance = this.dexAdapterService.getDexByKey(key);
|
|
134
124
|
|
|
@@ -202,8 +192,6 @@ export class PricingHelper {
|
|
|
202
192
|
destDexFee: 0,
|
|
203
193
|
},
|
|
204
194
|
rollupL1ToL2GasRatio?: number,
|
|
205
|
-
overrideTimeout?: number,
|
|
206
|
-
fmode?: boolean,
|
|
207
195
|
): Promise<PoolPrices<any>[]> {
|
|
208
196
|
const dexPoolPrices = await Promise.all(
|
|
209
197
|
dexKeys.map(async key => {
|
|
@@ -214,18 +202,9 @@ export class PricingHelper {
|
|
|
214
202
|
|
|
215
203
|
return await new Promise<PoolPrices<any>[] | null>(
|
|
216
204
|
(resolve, reject) => {
|
|
217
|
-
const now = Date.now();
|
|
218
|
-
const timeout = overrideTimeout ?? FETCH_POOL_PRICES_TIMEOUT;
|
|
219
205
|
const timer = setTimeout(
|
|
220
|
-
() =>
|
|
221
|
-
|
|
222
|
-
new Error(
|
|
223
|
-
`Timeout of ${timeout}ms breached after ${
|
|
224
|
-
Date.now() - now
|
|
225
|
-
}ms for ${key}`,
|
|
226
|
-
),
|
|
227
|
-
),
|
|
228
|
-
timeout,
|
|
206
|
+
() => reject(new Error(`Timeout`)),
|
|
207
|
+
FETCH_POOL_PRICES_TIMEOUT,
|
|
229
208
|
);
|
|
230
209
|
|
|
231
210
|
const dexInstance = this.dexAdapterService.getDexByKey(key);
|
|
@@ -247,8 +226,6 @@ export class PricingHelper {
|
|
|
247
226
|
blockNumber,
|
|
248
227
|
limitPools ? limitPools : undefined,
|
|
249
228
|
transferFees,
|
|
250
|
-
false,
|
|
251
|
-
fmode,
|
|
252
229
|
)
|
|
253
230
|
.then(poolPrices => {
|
|
254
231
|
try {
|
package/build/dex-utils.d.ts
DELETED
package/build/dex-utils.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DexPoolNotFoundError = void 0;
|
|
4
|
-
class DexPoolNotFoundError extends Error {
|
|
5
|
-
constructor(dexKey, poolIdentifier) {
|
|
6
|
-
super(`Pool ${poolIdentifier} not found for DEX ${dexKey}`);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
exports.DexPoolNotFoundError = DexPoolNotFoundError;
|
|
10
|
-
//# sourceMappingURL=dex-utils.js.map
|
package/build/dex-utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dex-utils.js","sourceRoot":"","sources":["../src/dex-utils.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,MAAc,EAAE,cAAsB;QAChD,KAAK,CAAC,QAAQ,cAAc,sBAAsB,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF;AAJD,oDAIC"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { AsyncOrSync, DeepReadonly } from 'ts-essentials';
|
|
2
|
-
import { Log, Logger } from './types';
|
|
3
|
-
import { BlockHeader } from 'web3-eth';
|
|
4
|
-
import { EventSubscriber } from './dex-helper/iblock-manager';
|
|
5
|
-
import { IDexHelper } from './dex-helper';
|
|
6
|
-
export declare type InitializeStateOptions<State> = {
|
|
7
|
-
state?: DeepReadonly<State>;
|
|
8
|
-
initCallback?: (state: DeepReadonly<State>) => void;
|
|
9
|
-
forceRegenerate?: boolean;
|
|
10
|
-
};
|
|
11
|
-
declare type ObjectOrString<State> = DeepReadonly<State> | string;
|
|
12
|
-
declare type ObjectOrStringOrNull<State> = ObjectOrString<State> | null;
|
|
13
|
-
export declare abstract class StatefulDualSynchronizer<State> implements EventSubscriber {
|
|
14
|
-
dexKey: string;
|
|
15
|
-
poolIdentifier: string;
|
|
16
|
-
protected dexHelper: IDexHelper;
|
|
17
|
-
protected logger: Logger;
|
|
18
|
-
protected state: ObjectOrStringOrNull<State>;
|
|
19
|
-
protected stateBlockNumber: number;
|
|
20
|
-
protected stateHistory: {
|
|
21
|
-
[blockNumber: number]: ObjectOrString<State>;
|
|
22
|
-
};
|
|
23
|
-
protected invalid: boolean;
|
|
24
|
-
isTracking: () => boolean;
|
|
25
|
-
addressesSubscribed: string[];
|
|
26
|
-
parentName: string;
|
|
27
|
-
name: string;
|
|
28
|
-
isInitialized: boolean;
|
|
29
|
-
constructor(dexKey: string, poolIdentifier: string, dexHelper: IDexHelper, logger: Logger);
|
|
30
|
-
getStateBlockNumber(): Readonly<number>;
|
|
31
|
-
initialize(blockNumber: number, options?: InitializeStateOptions<State>): Promise<void>;
|
|
32
|
-
protected abstract processLog(state: DeepReadonly<State>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): AsyncOrSync<DeepReadonly<State> | null>;
|
|
33
|
-
protected processBlockLogs(state: DeepReadonly<State>, logs: Readonly<Log>[], blockHeader: Readonly<BlockHeader>): Promise<DeepReadonly<State> | null>;
|
|
34
|
-
abstract generateState(blockNumber?: number | 'latest'): AsyncOrSync<DeepReadonly<State>>;
|
|
35
|
-
restart(blockNumber: number): void;
|
|
36
|
-
update(logs: Readonly<Log>[], blockHeaders: Readonly<{
|
|
37
|
-
[blockNumber: number]: Readonly<BlockHeader>;
|
|
38
|
-
}>): Promise<void>;
|
|
39
|
-
rollback(blockNumber: number): void;
|
|
40
|
-
invalidate(): void;
|
|
41
|
-
getState(minBlockNumber: number): DeepReadonly<State> | null;
|
|
42
|
-
getStaleState(): DeepReadonly<State> | null;
|
|
43
|
-
_setState(state: ObjectOrStringOrNull<State>, blockNumber: number): void;
|
|
44
|
-
setState(state: ObjectOrString<State>, blockNumber: number): void;
|
|
45
|
-
}
|
|
46
|
-
export {};
|