@paraswap/dex-lib 3.0.6 → 3.2.5-return-amount-pos.4
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/.idea/aws.xml +17 -0
- package/.idea/codeStyles/Project.xml +55 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/paraswap-dex-lib-private.iml +9 -0
- package/.idea/prettier.xml +7 -0
- package/.idea/vcs.xml +6 -0
- package/README.md +327 -10
- package/build/abi/AugustusV6.abi.json +1454 -0
- package/build/abi/angle/stagToken.json +963 -0
- package/build/abi/augustus-v6/ABI.json +1084 -587
- package/build/abi/balancer-v2/gyro-e.abi.json +1595 -0
- package/build/abi/etherfi/eETHPool.json +9 -0
- package/build/abi/etherfi/weETH.json +20 -0
- package/build/abi/maker-psm/pot.json +322 -0
- package/build/abi/rswETH.json +1142 -0
- package/build/abi/sdai/SavingsDai.abi.json +877 -0
- package/build/abi/velodrome-slipstream/VelodromeSlipstreamFactory.abi.json +579 -0
- package/build/abi/velodrome-slipstream/VelodromeSlipstreamPool.abi.json +1275 -0
- package/build/abi/velodrome-slipstream/VelodromeSlipstreamStateMulticall.abi.json +766 -0
- package/build/config.js +51 -46
- package/build/config.js.map +1 -1
- package/build/dex/aave-v1/aave-v1.js +1 -0
- package/build/dex/aave-v1/aave-v1.js.map +1 -1
- package/build/dex/aave-v2/aave-v2.js +1 -0
- package/build/dex/aave-v2/aave-v2.js.map +1 -1
- package/build/dex/aave-v3/aave-v3.js +1 -0
- package/build/dex/aave-v3/aave-v3.js.map +1 -1
- package/build/dex/algebra/algebra-factory.js +1 -1
- package/build/dex/algebra/algebra-factory.js.map +1 -1
- package/build/dex/algebra/algebra-pool-v1_1.d.ts +7 -2
- package/build/dex/algebra/algebra-pool-v1_1.js +9 -2
- package/build/dex/algebra/algebra-pool-v1_1.js.map +1 -1
- package/build/dex/algebra/algebra-pool-v1_9.d.ts +4 -0
- package/build/dex/algebra/algebra-pool-v1_9.js +6 -0
- package/build/dex/algebra/algebra-pool-v1_9.js.map +1 -1
- package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.d.ts +16 -0
- package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.js +26 -0
- package/build/dex/algebra/algebra-pool-v1_9_bidirectional_fee.js.map +1 -0
- package/build/dex/algebra/algebra.d.ts +2 -1
- package/build/dex/algebra/algebra.js +13 -7
- package/build/dex/algebra/algebra.js.map +1 -1
- package/build/dex/algebra/config.js +4 -0
- package/build/dex/algebra/config.js.map +1 -1
- package/build/dex/algebra/types.d.ts +1 -1
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +56 -0
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +197 -0
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +1 -0
- package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +49 -0
- package/build/dex/angle-staked-stable/angle-staked-stable.js +239 -0
- package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -0
- package/build/dex/angle-staked-stable/config.d.ts +4 -0
- package/build/dex/angle-staked-stable/config.js +139 -0
- package/build/dex/angle-staked-stable/config.js.map +1 -0
- package/build/dex/angle-staked-stable/types.d.ts +15 -0
- package/build/dex/angle-staked-stable/types.js +3 -0
- package/build/dex/angle-staked-stable/types.js.map +1 -0
- package/build/dex/bProtocol/bProtocol.js +5 -0
- package/build/dex/bProtocol/bProtocol.js.map +1 -1
- package/build/dex/balancer-v1/balancer-v1.js +4 -0
- package/build/dex/balancer-v1/balancer-v1.js.map +1 -1
- package/build/dex/balancer-v2/balancer-v2.d.ts +9 -4
- package/build/dex/balancer-v2/balancer-v2.js +111 -84
- package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
- package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.d.ts +32 -0
- package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js +149 -0
- package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js.map +1 -0
- package/build/dex/balancer-v2/pools/gyro/GyroEPool.d.ts +37 -0
- package/build/dex/balancer-v2/pools/gyro/GyroEPool.js +222 -0
- package/build/dex/balancer-v2/pools/gyro/GyroEPool.js.map +1 -0
- package/build/dex/balancer-v2/pools/gyro/gyro-helpers.d.ts +2 -0
- package/build/dex/balancer-v2/pools/gyro/gyro-helpers.js +19 -0
- package/build/dex/balancer-v2/pools/gyro/gyro-helpers.js.map +1 -0
- package/build/dex/balancer-v2/queryOnChain.d.ts +1 -0
- package/build/dex/balancer-v2/queryOnChain.js +40 -0
- package/build/dex/balancer-v2/queryOnChain.js.map +1 -0
- package/build/dex/balancer-v2/types.d.ts +41 -2
- package/build/dex/balancer-v2/types.js +2 -0
- package/build/dex/balancer-v2/types.js.map +1 -1
- package/build/dex/balancer-v2/utils.d.ts +8 -0
- package/build/dex/balancer-v2/utils.js +17 -1
- package/build/dex/balancer-v2/utils.js.map +1 -1
- package/build/dex/bancor/bancor.js +4 -0
- package/build/dex/bancor/bancor.js.map +1 -1
- package/build/dex/camelot/camelot.js +1 -0
- package/build/dex/camelot/camelot.js.map +1 -1
- package/build/dex/compound/compound.js +1 -0
- package/build/dex/compound/compound.js.map +1 -1
- package/build/dex/curve-v1/curve-v1.js +1 -0
- package/build/dex/curve-v1/curve-v1.js.map +1 -1
- package/build/dex/curve-v1-factory/config.js +128 -11
- package/build/dex/curve-v1-factory/config.js.map +1 -1
- package/build/dex/curve-v1-factory/curve-v1-factory.d.ts +1 -0
- package/build/dex/curve-v1-factory/curve-v1-factory.js +30 -17
- package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
- package/build/dex/curve-v1-factory/curve-v1-pool-manager.js +1 -0
- package/build/dex/curve-v1-factory/curve-v1-pool-manager.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/_calc_withdraw_one_coin.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/_calc_withdraw_one_coin.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/_dynamic_fee.js +4 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/_dynamic_fee.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/_rates.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/_rates.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/_xp.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/_xp.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/_xp_mem.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/_xp_mem.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/calc_withdraw_one_coin.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/calc_withdraw_one_coin.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/constants.js +10 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/constants.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/get_D.js +40 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/get_D.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/get_D_mem.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/get_D_mem.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/get_D_precisions.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/get_D_precisions.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/get_dy.js +24 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/get_dy.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/get_dy_underlying.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/get_dy_underlying.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/get_y.js +53 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/get_y.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/get_y_D.js +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/get_y_D.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/utils.d.ts +1 -0
- package/build/dex/curve-v1-factory/price-handlers/functions/utils.js +5 -1
- package/build/dex/curve-v1-factory/price-handlers/functions/utils.js.map +1 -1
- package/build/dex/curve-v1-factory/price-handlers/types.d.ts +2 -2
- package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.d.ts +3 -2
- package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.js +38 -6
- package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.js.map +1 -1
- package/build/dex/curve-v1-factory/state-polling-pools/pool-polling-base.js.map +1 -1
- package/build/dex/curve-v1-factory/types.d.ts +11 -2
- package/build/dex/curve-v1-factory/types.js +3 -0
- package/build/dex/curve-v1-factory/types.js.map +1 -1
- package/build/dex/curve-v2/curve-v2.js +1 -0
- package/build/dex/curve-v2/curve-v2.js.map +1 -1
- package/build/dex/dexalot/config.js +7 -0
- package/build/dex/dexalot/config.js.map +1 -1
- package/build/dex/dexalot/dexalot.js +2 -0
- package/build/dex/dexalot/dexalot.js.map +1 -1
- package/build/dex/dodo-v1/dodo-v1.js +4 -0
- package/build/dex/dodo-v1/dodo-v1.js.map +1 -1
- package/build/dex/dodo-v2.js +4 -0
- package/build/dex/dodo-v2.js.map +1 -1
- package/build/dex/etherfi.d.ts +27 -0
- package/build/dex/etherfi.js +146 -0
- package/build/dex/etherfi.js.map +1 -0
- package/build/dex/generic-rfq/generic-rfq.js +4 -3
- package/build/dex/generic-rfq/generic-rfq.js.map +1 -1
- package/build/dex/generic-rfq/rate-fetcher.d.ts +1 -1
- package/build/dex/generic-rfq/rate-fetcher.js +2 -1
- package/build/dex/generic-rfq/rate-fetcher.js.map +1 -1
- package/build/dex/generic-rfq/types.d.ts +1 -0
- package/build/dex/generic-rfq/types.js.map +1 -1
- package/build/dex/gmx/gmx.js +4 -0
- package/build/dex/gmx/gmx.js.map +1 -1
- package/build/dex/hashflow/constants.d.ts +27 -0
- package/build/dex/hashflow/constants.js +29 -1
- package/build/dex/hashflow/constants.js.map +1 -1
- package/build/dex/hashflow/hashflow.d.ts +3 -2
- package/build/dex/hashflow/hashflow.js +72 -13
- package/build/dex/hashflow/hashflow.js.map +1 -1
- package/build/dex/hashflow/types.d.ts +11 -0
- package/build/dex/hashflow/types.js +9 -0
- package/build/dex/hashflow/types.js.map +1 -1
- package/build/dex/idex.d.ts +2 -2
- package/build/dex/index.d.ts +2 -2
- package/build/dex/index.js +10 -0
- package/build/dex/index.js.map +1 -1
- package/build/dex/jarvis-v6/jarvis-v6.js +1 -0
- package/build/dex/jarvis-v6/jarvis-v6.js.map +1 -1
- package/build/dex/jarvis.js +8 -0
- package/build/dex/jarvis.js.map +1 -1
- package/build/dex/kyberdmm/kyberdmm.js +4 -0
- package/build/dex/kyberdmm/kyberdmm.js.map +1 -1
- package/build/dex/lido/lido.d.ts +4 -1
- package/build/dex/lido/lido.js +18 -1
- package/build/dex/lido/lido.js.map +1 -1
- package/build/dex/maker-psm/maker-psm.js +1 -0
- package/build/dex/maker-psm/maker-psm.js.map +1 -1
- package/build/dex/maverick-v1/maverick-v1.js +4 -0
- package/build/dex/maverick-v1/maverick-v1.js.map +1 -1
- package/build/dex/nerve/nerve.js +4 -0
- package/build/dex/nerve/nerve.js.map +1 -1
- package/build/dex/onebit/onebit.js +5 -0
- package/build/dex/onebit/onebit.js.map +1 -1
- package/build/dex/pancakeswap-v3/config.js +30 -0
- package/build/dex/pancakeswap-v3/config.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3-factory.js +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3-factory.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.d.ts +5 -0
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js +7 -0
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js +16 -8
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
- package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js +1 -0
- package/build/dex/paraswap-limit-orders/paraswap-limit-orders.js.map +1 -1
- package/build/dex/platypus/platypus.js +17 -3
- package/build/dex/platypus/platypus.js.map +1 -1
- package/build/dex/polygon-migrator/polygon-migrator.js +1 -0
- package/build/dex/polygon-migrator/polygon-migrator.js.map +1 -1
- package/build/dex/quick-perps/quick-perps.js +7 -1
- package/build/dex/quick-perps/quick-perps.js.map +1 -1
- package/build/dex/simple-exchange.d.ts +0 -1
- package/build/dex/simple-exchange.js +0 -2
- package/build/dex/simple-exchange.js.map +1 -1
- package/build/dex/smoothy/smoothy.js +1 -0
- package/build/dex/smoothy/smoothy.js.map +1 -1
- package/build/dex/smoothy.d.ts +1 -1
- package/build/dex/smoothy.js +2 -3
- package/build/dex/smoothy.js.map +1 -1
- package/build/dex/solidly/config.js +12 -0
- package/build/dex/solidly/config.js.map +1 -1
- package/build/dex/solidly/forks-override/pharaohV1.d.ts +8 -0
- package/build/dex/solidly/forks-override/pharaohV1.js +15 -0
- package/build/dex/solidly/forks-override/pharaohV1.js.map +1 -0
- package/build/dex/solidly/solidly.js +2 -0
- package/build/dex/solidly/solidly.js.map +1 -1
- package/build/dex/solidly-v3/config.js +13 -1
- package/build/dex/solidly-v3/config.js.map +1 -1
- package/build/dex/solidly-v3/solidly-v3-factory.js +1 -1
- package/build/dex/solidly-v3/solidly-v3-factory.js.map +1 -1
- package/build/dex/solidly-v3/solidly-v3-pool.d.ts +5 -0
- package/build/dex/solidly-v3/solidly-v3-pool.js +7 -0
- package/build/dex/solidly-v3/solidly-v3-pool.js.map +1 -1
- package/build/dex/solidly-v3/solidly-v3.d.ts +1 -2
- package/build/dex/solidly-v3/solidly-v3.js +5 -11
- package/build/dex/solidly-v3/solidly-v3.js.map +1 -1
- package/build/dex/solidly-v3/types.d.ts +0 -1
- package/build/dex/solidly-v3/types.js.map +1 -1
- package/build/dex/spark/config.d.ts +11 -0
- package/build/dex/spark/config.js +21 -0
- package/build/dex/spark/config.js.map +1 -0
- package/build/dex/spark/constants.d.ts +2 -0
- package/build/dex/spark/constants.js +6 -0
- package/build/dex/spark/constants.js.map +1 -0
- package/build/dex/spark/scripts/validate-state.d.ts +1 -0
- package/build/dex/spark/scripts/validate-state.js +102 -0
- package/build/dex/spark/scripts/validate-state.js.map +1 -0
- package/build/dex/spark/spark-sdai-pool.d.ts +16 -0
- package/build/dex/spark/spark-sdai-pool.js +85 -0
- package/build/dex/spark/spark-sdai-pool.js.map +1 -0
- package/build/dex/spark/spark.d.ts +52 -0
- package/build/dex/spark/spark.js +195 -0
- package/build/dex/spark/spark.js.map +1 -0
- package/build/dex/spark/types.d.ts +21 -0
- package/build/dex/spark/types.js +11 -0
- package/build/dex/spark/types.js.map +1 -0
- package/build/dex/spark/utils.d.ts +4 -0
- package/build/dex/spark/utils.js +39 -0
- package/build/dex/spark/utils.js.map +1 -0
- package/build/dex/stable-pool/stable-pool.js +4 -0
- package/build/dex/stable-pool/stable-pool.js.map +1 -1
- package/build/dex/swaap-v1/swaap-v1.js +4 -0
- package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
- package/build/dex/swaap-v2/swaap-v2.js +1 -0
- package/build/dex/swaap-v2/swaap-v2.js.map +1 -1
- package/build/dex/swell/config.d.ts +1 -0
- package/build/dex/swell/config.js +1 -0
- package/build/dex/swell/config.js.map +1 -1
- package/build/dex/swell/rsweth-pool.d.ts +16 -0
- package/build/dex/swell/rsweth-pool.js +38 -0
- package/build/dex/swell/rsweth-pool.js.map +1 -0
- package/build/dex/swell/swell.d.ts +7 -2
- package/build/dex/swell/swell.js +58 -27
- package/build/dex/swell/swell.js.map +1 -1
- package/build/dex/swell/sweth-pool.js +1 -1
- package/build/dex/swell/sweth-pool.js.map +1 -1
- package/build/dex/swell/type.d.ts +3 -0
- package/build/dex/swell/utils.d.ts +3 -2
- package/build/dex/swell/utils.js +19 -3
- package/build/dex/swell/utils.js.map +1 -1
- package/build/dex/synthetix/synthetix.js +6 -0
- package/build/dex/synthetix/synthetix.js.map +1 -1
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js +4 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js.map +1 -1
- package/build/dex/uniswap-v2/config.js +56 -0
- package/build/dex/uniswap-v2/config.js.map +1 -1
- package/build/dex/uniswap-v2/types.d.ts +1 -1
- package/build/dex/uniswap-v2/uniswap-v2.js +2 -1
- package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
- package/build/dex/uniswap-v3/config.js +102 -1
- package/build/dex/uniswap-v3/config.js.map +1 -1
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/utils.d.ts +4 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/utils.js +56 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/utils.js.map +1 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-factory.d.ts +7 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-factory.js +23 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-factory.js.map +1 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-pool.d.ts +13 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-pool.js +137 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-pool.js.map +1 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.d.ts +46 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.js +117 -0
- package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.js.map +1 -0
- package/build/dex/uniswap-v3/types.d.ts +8 -2
- package/build/dex/uniswap-v3/types.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3-factory.js +1 -1
- package/build/dex/uniswap-v3/uniswap-v3-factory.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +9 -2
- package/build/dex/uniswap-v3/uniswap-v3-pool.js +15 -2
- package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3.d.ts +27 -12
- package/build/dex/uniswap-v3/uniswap-v3.js +108 -76
- package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
- package/build/dex/uniswap-v3.js +4 -0
- package/build/dex/uniswap-v3.js.map +1 -1
- package/build/dex/weth/weth.js +1 -0
- package/build/dex/weth/weth.js.map +1 -1
- package/build/dex/wombat/wombat.js +4 -0
- package/build/dex/wombat/wombat.js.map +1 -1
- package/build/dex/woo-fi-v2/config.js +16 -16
- package/build/dex/woo-fi-v2/woo-fi-v2.js +4 -0
- package/build/dex/woo-fi-v2/woo-fi-v2.js.map +1 -1
- package/build/dex/wsteth/wsteth.js +8 -1
- package/build/dex/wsteth/wsteth.js.map +1 -1
- package/build/dex/zerox/index.js +1 -0
- package/build/dex/zerox/index.js.map +1 -1
- package/build/executor/Executor01BytecodeBuilder.d.ts +6 -8
- package/build/executor/Executor01BytecodeBuilder.js +47 -8
- package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
- package/build/executor/Executor02BytecodeBuilder.d.ts +18 -12
- package/build/executor/Executor02BytecodeBuilder.js +55 -10
- package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
- package/build/executor/Executor03BytecodeBuilder.d.ts +11 -8
- package/build/executor/Executor03BytecodeBuilder.js +27 -5
- package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
- package/build/executor/ExecutorBytecodeBuilder.d.ts +29 -6
- package/build/executor/ExecutorBytecodeBuilder.js +23 -4
- package/build/executor/ExecutorBytecodeBuilder.js.map +1 -1
- package/build/executor/ExecutorDetector.d.ts +2 -0
- package/build/executor/ExecutorDetector.js +12 -0
- package/build/executor/ExecutorDetector.js.map +1 -1
- package/build/executor/IExecutorBytecodeBuilder.d.ts +10 -0
- package/build/executor/IExecutorBytecodeBuilder.js +3 -0
- package/build/executor/IExecutorBytecodeBuilder.js.map +1 -0
- package/build/executor/WETHBytecodeBuilder.d.ts +14 -0
- package/build/executor/WETHBytecodeBuilder.js +47 -0
- package/build/executor/WETHBytecodeBuilder.js.map +1 -0
- package/build/executor/constants.d.ts +3 -1
- package/build/executor/constants.js +8 -3
- package/build/executor/constants.js.map +1 -1
- package/build/executor/types.d.ts +1 -0
- package/build/executor/types.js +1 -0
- package/build/executor/types.js.map +1 -1
- package/build/executor/utils.d.ts +2 -0
- package/build/executor/utils.js +30 -0
- package/build/executor/utils.js.map +1 -0
- package/build/generic-swap-transaction-builder.js +11 -5
- package/build/generic-swap-transaction-builder.js.map +1 -1
- package/build/implementations/local-paraswap-sdk.js +1 -1
- package/build/implementations/local-paraswap-sdk.js.map +1 -1
- package/build/stateful-event-subscriber.d.ts +1 -0
- package/build/stateful-event-subscriber.js +8 -1
- package/build/stateful-event-subscriber.js.map +1 -1
- package/build/types.d.ts +3 -0
- package/package.json +4 -3
- package/src/abi/angle/stagToken.json +963 -0
- package/src/abi/augustus-v6/ABI.json +1084 -587
- package/src/abi/balancer-v2/gyro-e.abi.json +1595 -0
- package/src/abi/etherfi/eETHPool.json +9 -0
- package/src/abi/etherfi/weETH.json +20 -0
- package/src/abi/maker-psm/pot.json +322 -0
- package/src/abi/rswETH.json +1142 -0
- package/src/abi/sdai/SavingsDai.abi.json +877 -0
- package/src/abi/velodrome-slipstream/VelodromeSlipstreamFactory.abi.json +579 -0
- package/src/abi/velodrome-slipstream/VelodromeSlipstreamPool.abi.json +1275 -0
- package/src/abi/velodrome-slipstream/VelodromeSlipstreamQuoterV2.abi.json +267 -0
- package/src/abi/velodrome-slipstream/VelodromeSlipstreamStateMulticall.abi.json +766 -0
- package/src/config.ts +51 -46
- package/src/dex/aave-v1/aave-v1.ts +1 -0
- package/src/dex/aave-v2/aave-v2.ts +1 -0
- package/src/dex/aave-v3/aave-v3.ts +1 -0
- package/src/dex/algebra/algebra-e2e.test.ts +22 -0
- package/src/dex/algebra/algebra-factory.ts +8 -1
- package/src/dex/algebra/algebra-pool-v1_1.ts +10 -2
- package/src/dex/algebra/algebra-pool-v1_9.ts +7 -0
- package/src/dex/algebra/algebra-pool-v1_9_bidirectional_fee.ts +55 -0
- package/src/dex/algebra/algebra.ts +28 -14
- package/src/dex/algebra/config.ts +4 -0
- package/src/dex/algebra/types.ts +1 -1
- package/src/dex/angle-staked-stable/angle-staked-stable-e2e.test.ts +146 -0
- package/src/dex/angle-staked-stable/angle-staked-stable-events.test.ts +95 -0
- package/src/dex/angle-staked-stable/angle-staked-stable-integration.test.ts +476 -0
- package/src/dex/angle-staked-stable/angle-staked-stable-pool.ts +325 -0
- package/src/dex/angle-staked-stable/angle-staked-stable.ts +351 -0
- package/src/dex/angle-staked-stable/config.ts +139 -0
- package/src/dex/angle-staked-stable/types.ts +16 -0
- package/src/dex/bProtocol/bProtocol.ts +8 -0
- package/src/dex/balancer-v1/balancer-v1.ts +9 -0
- package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +94 -0
- package/src/dex/balancer-v2/balancer-v2-gyro3.test.ts +268 -0
- package/src/dex/balancer-v2/balancer-v2-gyroE.test.ts +401 -0
- package/src/dex/balancer-v2/balancer-v2-integration.test.ts +253 -112
- package/src/dex/balancer-v2/balancer-v2.ts +203 -143
- package/src/dex/balancer-v2/pools/gyro/Gyro3Pool.ts +255 -0
- package/src/dex/balancer-v2/pools/gyro/GyroEPool.ts +403 -0
- package/src/dex/balancer-v2/pools/gyro/gyro-helpers.ts +15 -0
- package/src/dex/balancer-v2/queryOnChain.ts +48 -0
- package/src/dex/balancer-v2/types.ts +45 -1
- package/src/dex/balancer-v2/utils.ts +16 -0
- package/src/dex/bancor/bancor.ts +8 -0
- package/src/dex/camelot/camelot.ts +1 -0
- package/src/dex/compound/compound.ts +1 -0
- package/src/dex/curve-v1/curve-v1.ts +1 -0
- package/src/dex/curve-v1-factory/config.ts +128 -11
- package/src/dex/curve-v1-factory/curve-v1-factory-e2e.test.ts +122 -1
- package/src/dex/curve-v1-factory/curve-v1-factory-integration.test.ts +392 -0
- package/src/dex/curve-v1-factory/curve-v1-factory.ts +62 -39
- package/src/dex/curve-v1-factory/curve-v1-pool-manager.ts +1 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/_calc_withdraw_one_coin.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/_dynamic_fee.ts +6 -2
- package/src/dex/curve-v1-factory/price-handlers/functions/_rates.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/_xp.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/_xp_mem.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/calc_withdraw_one_coin.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/constants.ts +11 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/get_D.ts +59 -1
- package/src/dex/curve-v1-factory/price-handlers/functions/get_D_mem.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/get_D_precisions.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/get_dy.ts +51 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/get_dy_underlying.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/get_y.ts +68 -1
- package/src/dex/curve-v1-factory/price-handlers/functions/get_y_D.ts +2 -0
- package/src/dex/curve-v1-factory/price-handlers/functions/utils.ts +4 -0
- package/src/dex/curve-v1-factory/price-handlers/types.ts +8 -1
- package/src/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.ts +71 -18
- package/src/dex/curve-v1-factory/state-polling-pools/pool-polling-base.ts +1 -0
- package/src/dex/curve-v1-factory/types.ts +12 -1
- package/src/dex/curve-v2/curve-v2.ts +1 -0
- package/src/dex/dexalot/config.ts +7 -0
- package/src/dex/dexalot/dexalot-e2e.test.ts +23 -1
- package/src/dex/dexalot/dexalot-integration.test.ts +121 -0
- package/src/dex/dexalot/dexalot.ts +2 -0
- package/src/dex/dodo-v1/dodo-v1.ts +9 -0
- package/src/dex/dodo-v2.ts +9 -0
- package/src/dex/etherfi.ts +239 -0
- package/src/dex/generic-rfq/generic-rfq.ts +4 -2
- package/src/dex/generic-rfq/rate-fetcher.ts +2 -0
- package/src/dex/generic-rfq/types.ts +1 -0
- package/src/dex/gmx/gmx.ts +8 -0
- package/src/dex/hashflow/constants.ts +32 -0
- package/src/dex/hashflow/hashflow.ts +126 -20
- package/src/dex/hashflow/types.ts +20 -2
- package/src/dex/idex.ts +2 -1
- package/src/dex/index.ts +12 -2
- package/src/dex/jarvis-v6/jarvis-v6.ts +1 -0
- package/src/dex/jarvis.ts +14 -0
- package/src/dex/kyberdmm/kyberdmm.ts +9 -0
- package/src/dex/lido/lido-e2e.test.ts +10 -0
- package/src/dex/lido/lido.ts +25 -2
- package/src/dex/maker-psm/maker-psm.ts +1 -0
- package/src/dex/maverick-v1/maverick-v1.ts +9 -0
- package/src/dex/nerve/nerve.ts +8 -0
- package/src/dex/onebit/onebit.ts +8 -0
- package/src/dex/pancakeswap-v3/config.ts +32 -0
- package/src/dex/pancakeswap-v3/pancakeswap-v3-e2e.test.ts +21 -0
- package/src/dex/pancakeswap-v3/pancakeswap-v3-factory.ts +8 -1
- package/src/dex/pancakeswap-v3/pancakeswap-v3-pool.ts +8 -0
- package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +27 -13
- package/src/dex/paraswap-limit-orders/paraswap-limit-orders.ts +1 -0
- package/src/dex/platypus/platypus.ts +20 -3
- package/src/dex/polygon-migrator/polygon-migrator.ts +1 -0
- package/src/dex/quick-perps/quick-perps.ts +11 -1
- package/src/dex/simple-exchange.ts +0 -4
- package/src/dex/smoothy/smoothy.ts +1 -0
- package/src/dex/solidly/config.ts +14 -0
- package/src/dex/solidly/forks-override/pharaohV1.ts +10 -0
- package/src/dex/solidly/solidly-e2e.test.ts +21 -0
- package/src/dex/solidly/solidly-integration.test.ts +143 -0
- package/src/dex/solidly/solidly.ts +2 -0
- package/src/dex/solidly-v3/config.ts +15 -1
- package/src/dex/solidly-v3/solidly-v3-e2e.test.ts +33 -0
- package/src/dex/solidly-v3/solidly-v3-factory.ts +8 -1
- package/src/dex/solidly-v3/solidly-v3-pool.ts +8 -0
- package/src/dex/solidly-v3/solidly-v3.ts +8 -16
- package/src/dex/solidly-v3/types.ts +0 -1
- package/src/dex/spark/config.ts +25 -0
- package/src/dex/spark/constants.ts +2 -0
- package/src/dex/spark/scripts/validate-state.ts +144 -0
- package/src/dex/spark/spark-e2e.test.ts +96 -0
- package/src/dex/spark/spark-events.test.ts +102 -0
- package/src/dex/spark/spark-integration.test.ts +151 -0
- package/src/dex/spark/spark-sdai-pool.ts +114 -0
- package/src/dex/spark/spark.ts +284 -0
- package/src/dex/spark/types.ts +23 -0
- package/src/dex/spark/utils.ts +47 -0
- package/src/dex/stable-pool/stable-pool.ts +8 -0
- package/src/dex/swaap-v1/swaap-v1.ts +9 -0
- package/src/dex/swaap-v2/swaap-v2.ts +1 -0
- package/src/dex/swell/config.ts +2 -0
- package/src/dex/swell/rsweth-pool.ts +58 -0
- package/src/dex/swell/swell-e2e.test.ts +33 -31
- package/src/dex/swell/swell.ts +88 -35
- package/src/dex/swell/sweth-pool.ts +2 -2
- package/src/dex/swell/type.ts +4 -0
- package/src/dex/swell/utils.ts +26 -2
- package/src/dex/synthetix/synthetix-state.ts +2 -2
- package/src/dex/synthetix/synthetix.ts +11 -0
- package/src/dex/trader-joe-v2.1/trader-joe-v2.1.ts +9 -0
- package/src/dex/uniswap-v2/config.ts +58 -0
- package/src/dex/uniswap-v2/types.ts +2 -2
- package/src/dex/uniswap-v2/uniswap-v2-e2e-base.test.ts +48 -0
- package/src/dex/uniswap-v2/uniswap-v2.ts +2 -1
- package/src/dex/uniswap-v3/config.ts +112 -3
- package/src/dex/uniswap-v3/forks/velodrome-slipstream/utils.ts +65 -0
- package/src/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-factory.ts +16 -0
- package/src/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-pool.ts +197 -0
- package/src/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.ts +237 -0
- package/src/dex/uniswap-v3/types.ts +6 -2
- package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +184 -3
- package/src/dex/uniswap-v3/uniswap-v3-factory.ts +8 -1
- package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +741 -6
- package/src/dex/uniswap-v3/uniswap-v3-pool.ts +17 -9
- package/src/dex/uniswap-v3/uniswap-v3.ts +204 -121
- package/src/dex/uniswap-v3.ts +9 -0
- package/src/dex/weth/weth-e2e-v6.test.ts +117 -0
- package/src/dex/weth/weth.ts +1 -0
- package/src/dex/wombat/wombat.ts +9 -0
- package/src/dex/woo-fi-v2/config.ts +16 -16
- package/src/dex/woo-fi-v2/woo-fi-v2.ts +5 -0
- package/src/dex/wsteth/wsteth.ts +13 -4
- package/src/dex/zerox/index.ts +1 -0
- package/src/executor/Executor01BytecodeBuilder.ts +69 -29
- package/src/executor/Executor02BytecodeBuilder.ts +99 -44
- package/src/executor/Executor03BytecodeBuilder.ts +52 -33
- package/src/executor/ExecutorBytecodeBuilder.ts +57 -18
- package/src/executor/ExecutorDetector.ts +14 -0
- package/src/executor/WETHBytecodeBuilder.ts +57 -0
- package/src/executor/constants.ts +8 -2
- package/src/executor/executor01-bytecode-builder-e2e.test.ts +39 -0
- package/src/executor/executor02-bytecode-builder-e2e.test.ts +35 -0
- package/src/executor/types.ts +1 -0
- package/src/executor/utils.ts +44 -0
- package/src/generic-swap-transaction-builder.ts +14 -4
- package/src/implementations/local-paraswap-sdk.ts +1 -1
- package/src/stateful-event-subscriber.ts +13 -1
- package/src/types.ts +3 -0
- package/tests/constants-e2e.ts +233 -12
- package/tests/utils-e2e.ts +82 -2
- package/tests/debug-price-route.json +0 -87
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import dotenv from 'dotenv';
|
|
2
|
+
dotenv.config();
|
|
3
|
+
|
|
4
|
+
import { testE2E } from '../../../tests/utils-e2e';
|
|
5
|
+
import { Tokens, Holders } from '../../../tests/constants-e2e';
|
|
6
|
+
import { Network, ContractMethod, SwapSide } from '../../constants';
|
|
7
|
+
import { StaticJsonRpcProvider } from '@ethersproject/providers';
|
|
8
|
+
import { generateConfig } from '../../config';
|
|
9
|
+
import { DummyDexHelper } from '../../dex-helper';
|
|
10
|
+
import { WethConfig } from './config';
|
|
11
|
+
|
|
12
|
+
const NETWORKS = [
|
|
13
|
+
Network.MAINNET,
|
|
14
|
+
Network.AVALANCHE,
|
|
15
|
+
Network.BSC,
|
|
16
|
+
Network.BASE,
|
|
17
|
+
Network.POLYGON,
|
|
18
|
+
Network.OPTIMISM,
|
|
19
|
+
Network.FANTOM,
|
|
20
|
+
Network.ARBITRUM,
|
|
21
|
+
Network.ZKEVM,
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
const nativeAmount = '10000000000000000';
|
|
25
|
+
const wrappedAmount = '10000000000000000';
|
|
26
|
+
|
|
27
|
+
describe('Wrapped Native E2E v6', () => {
|
|
28
|
+
NETWORKS.forEach(network => {
|
|
29
|
+
describe(`${network}`, () => {
|
|
30
|
+
const dexKey = Object.keys(WethConfig).find(
|
|
31
|
+
key => !!WethConfig[key][network],
|
|
32
|
+
);
|
|
33
|
+
if (!dexKey) return;
|
|
34
|
+
|
|
35
|
+
const tokens = Tokens[network];
|
|
36
|
+
const holders = Holders[network];
|
|
37
|
+
const provider = new StaticJsonRpcProvider(
|
|
38
|
+
generateConfig(network).privateHttpProvider,
|
|
39
|
+
network,
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
const dexHelper = new DummyDexHelper(network);
|
|
43
|
+
|
|
44
|
+
const nativeTokenSymbol =
|
|
45
|
+
dexHelper.config.data.nativeTokenSymbol.toUpperCase();
|
|
46
|
+
const wrappedTokenSymbol =
|
|
47
|
+
dexHelper.config.data.wrappedNativeTokenSymbol.toUpperCase();
|
|
48
|
+
|
|
49
|
+
const nativeToken = tokens[nativeTokenSymbol];
|
|
50
|
+
const wrappedToken = tokens[wrappedTokenSymbol];
|
|
51
|
+
|
|
52
|
+
const nativeHolder = holders[nativeTokenSymbol];
|
|
53
|
+
const wrappedHolder = holders[wrappedTokenSymbol];
|
|
54
|
+
|
|
55
|
+
[
|
|
56
|
+
ContractMethod.simpleSwap,
|
|
57
|
+
ContractMethod.multiSwap,
|
|
58
|
+
ContractMethod.megaSwap,
|
|
59
|
+
].forEach(contractMethod => {
|
|
60
|
+
describe(`${contractMethod}`, () => {
|
|
61
|
+
it(`SELL ${nativeTokenSymbol} -> ${wrappedTokenSymbol}`, async () => {
|
|
62
|
+
await testE2E(
|
|
63
|
+
nativeToken,
|
|
64
|
+
wrappedToken,
|
|
65
|
+
nativeHolder,
|
|
66
|
+
nativeAmount,
|
|
67
|
+
SwapSide.SELL,
|
|
68
|
+
dexKey,
|
|
69
|
+
contractMethod,
|
|
70
|
+
network,
|
|
71
|
+
provider,
|
|
72
|
+
);
|
|
73
|
+
});
|
|
74
|
+
it(`SELL ${wrappedTokenSymbol} -> ${nativeTokenSymbol}`, async () => {
|
|
75
|
+
await testE2E(
|
|
76
|
+
wrappedToken,
|
|
77
|
+
nativeToken,
|
|
78
|
+
wrappedHolder,
|
|
79
|
+
wrappedAmount,
|
|
80
|
+
SwapSide.SELL,
|
|
81
|
+
dexKey,
|
|
82
|
+
contractMethod,
|
|
83
|
+
network,
|
|
84
|
+
provider,
|
|
85
|
+
);
|
|
86
|
+
});
|
|
87
|
+
it(`BUY ${nativeTokenSymbol} -> ${wrappedTokenSymbol}`, async () => {
|
|
88
|
+
await testE2E(
|
|
89
|
+
nativeToken,
|
|
90
|
+
wrappedToken,
|
|
91
|
+
nativeHolder,
|
|
92
|
+
nativeAmount,
|
|
93
|
+
SwapSide.BUY,
|
|
94
|
+
dexKey,
|
|
95
|
+
contractMethod,
|
|
96
|
+
network,
|
|
97
|
+
provider,
|
|
98
|
+
);
|
|
99
|
+
});
|
|
100
|
+
it(`BUY ${wrappedTokenSymbol} -> ${nativeTokenSymbol}`, async () => {
|
|
101
|
+
await testE2E(
|
|
102
|
+
wrappedToken,
|
|
103
|
+
nativeToken,
|
|
104
|
+
wrappedHolder,
|
|
105
|
+
wrappedAmount,
|
|
106
|
+
SwapSide.BUY,
|
|
107
|
+
dexKey,
|
|
108
|
+
contractMethod,
|
|
109
|
+
network,
|
|
110
|
+
provider,
|
|
111
|
+
);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
});
|
package/src/dex/weth/weth.ts
CHANGED
package/src/dex/wombat/wombat.ts
CHANGED
|
@@ -32,6 +32,7 @@ import { WombatBmw } from './wombat-bmw';
|
|
|
32
32
|
import { fromWad } from './utils';
|
|
33
33
|
import { WombatPool } from './wombat-pool';
|
|
34
34
|
import { StatePollingManager } from '../../lib/stateful-rpc-poller/state-polling-manager';
|
|
35
|
+
import { extractReturnAmountPosition } from '../../executor/utils';
|
|
35
36
|
|
|
36
37
|
export class Wombat extends SimpleExchange implements IDex<WombatData> {
|
|
37
38
|
// contract interfaces
|
|
@@ -339,6 +340,14 @@ export class Wombat extends SimpleExchange implements IDex<WombatData> {
|
|
|
339
340
|
dexFuncHasRecipient: true,
|
|
340
341
|
exchangeData: swapData,
|
|
341
342
|
targetExchange: exchange,
|
|
343
|
+
returnAmountPos:
|
|
344
|
+
side === SwapSide.SELL
|
|
345
|
+
? extractReturnAmountPosition(
|
|
346
|
+
Wombat.poolInterface,
|
|
347
|
+
'swap',
|
|
348
|
+
'actualToAmount',
|
|
349
|
+
)
|
|
350
|
+
: undefined,
|
|
342
351
|
};
|
|
343
352
|
}
|
|
344
353
|
|
|
@@ -5,18 +5,18 @@ import { Network, SwapSide } from '../../constants';
|
|
|
5
5
|
export const WooFiV2Config: DexConfigMap<DexParams> = {
|
|
6
6
|
WooFiV2: {
|
|
7
7
|
[Network.OPTIMISM]: {
|
|
8
|
-
wooPPV2Address: '
|
|
9
|
-
wooOracleV2Address: '
|
|
8
|
+
wooPPV2Address: '0xEd9e3f98bBed560e66B89AaC922E29D4596A9642',
|
|
9
|
+
wooOracleV2Address: '0xA43305Ce0164D87d7B2368f91a1dcC4eBdA75127',
|
|
10
10
|
integrationHelperAddress: '0x96329d66074EB8386Ae8bFD6698B2E3FDA87e15E',
|
|
11
11
|
// USDC
|
|
12
12
|
quoteToken: {
|
|
13
|
-
address: '
|
|
13
|
+
address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
|
|
14
14
|
decimals: 6,
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
[Network.BSC]: {
|
|
18
|
-
wooPPV2Address: '
|
|
19
|
-
wooOracleV2Address: '
|
|
18
|
+
wooPPV2Address: '0xEd9e3f98bBed560e66B89AaC922E29D4596A9642',
|
|
19
|
+
wooOracleV2Address: '0x2A375567f5E13F6bd74fDa7627Df3b1Af6BfA5a6',
|
|
20
20
|
integrationHelperAddress: '0xAA9c15cd603428cA8ddD45e933F8EfE3Afbcc173',
|
|
21
21
|
// USDT
|
|
22
22
|
quoteToken: {
|
|
@@ -25,12 +25,12 @@ export const WooFiV2Config: DexConfigMap<DexParams> = {
|
|
|
25
25
|
},
|
|
26
26
|
},
|
|
27
27
|
[Network.POLYGON]: {
|
|
28
|
-
wooPPV2Address: '
|
|
29
|
-
wooOracleV2Address: '
|
|
28
|
+
wooPPV2Address: '0xEd9e3f98bBed560e66B89AaC922E29D4596A9642',
|
|
29
|
+
wooOracleV2Address: '0x2A8Ede62D0717C8C92b88639ecf603FDF31A8428',
|
|
30
30
|
integrationHelperAddress: '0x7Ba560eB735AbDCf9a3a5692272652A0cc81850d',
|
|
31
31
|
// USDC
|
|
32
32
|
quoteToken: {
|
|
33
|
-
address: '
|
|
33
|
+
address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',
|
|
34
34
|
decimals: 6,
|
|
35
35
|
},
|
|
36
36
|
},
|
|
@@ -45,18 +45,18 @@ export const WooFiV2Config: DexConfigMap<DexParams> = {
|
|
|
45
45
|
},
|
|
46
46
|
},
|
|
47
47
|
[Network.ARBITRUM]: {
|
|
48
|
-
wooPPV2Address: '
|
|
49
|
-
wooOracleV2Address: '
|
|
48
|
+
wooPPV2Address: '0xEd9e3f98bBed560e66B89AaC922E29D4596A9642',
|
|
49
|
+
wooOracleV2Address: '0xCf4EA1688bc23DD93D933edA535F8B72FC8934Ec',
|
|
50
50
|
integrationHelperAddress: '0x28D2B949024FE50627f1EbC5f0Ca3Ca721148E40',
|
|
51
51
|
// USDC
|
|
52
52
|
quoteToken: {
|
|
53
|
-
address: '
|
|
53
|
+
address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
54
54
|
decimals: 6,
|
|
55
55
|
},
|
|
56
56
|
},
|
|
57
57
|
[Network.AVALANCHE]: {
|
|
58
|
-
wooPPV2Address: '
|
|
59
|
-
wooOracleV2Address: '
|
|
58
|
+
wooPPV2Address: '0xEd9e3f98bBed560e66B89AaC922E29D4596A9642',
|
|
59
|
+
wooOracleV2Address: '0x2A375567f5E13F6bd74fDa7627Df3b1Af6BfA5a6',
|
|
60
60
|
integrationHelperAddress: '0x020630613E296c3E9b06186f630D1bF97A2B6Ad1',
|
|
61
61
|
// USDC
|
|
62
62
|
quoteToken: {
|
|
@@ -65,12 +65,12 @@ export const WooFiV2Config: DexConfigMap<DexParams> = {
|
|
|
65
65
|
},
|
|
66
66
|
},
|
|
67
67
|
[Network.BASE]: {
|
|
68
|
-
wooPPV2Address: '
|
|
69
|
-
wooOracleV2Address: '
|
|
68
|
+
wooPPV2Address: '0xEd9e3f98bBed560e66B89AaC922E29D4596A9642',
|
|
69
|
+
wooOracleV2Address: '0x2A375567f5E13F6bd74fDa7627Df3b1Af6BfA5a6',
|
|
70
70
|
integrationHelperAddress: '0xC4E9B633685461E7B7A807D12a246C81f96F31B8',
|
|
71
71
|
// USDbC
|
|
72
72
|
quoteToken: {
|
|
73
|
-
address: '
|
|
73
|
+
address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
|
|
74
74
|
decimals: 6,
|
|
75
75
|
},
|
|
76
76
|
},
|
|
@@ -28,6 +28,7 @@ import { addressDecode } from '../../lib/decoders';
|
|
|
28
28
|
import { ifaces } from './utils';
|
|
29
29
|
import { StatePollingManager } from '../../lib/stateful-rpc-poller/state-polling-manager';
|
|
30
30
|
import { solidityPack } from 'ethers/lib/utils';
|
|
31
|
+
import { extractReturnAmountPosition } from '../../executor/utils';
|
|
31
32
|
|
|
32
33
|
export class WooFiV2 extends SimpleExchange implements IDex<WooFiV2Data> {
|
|
33
34
|
readonly math: WooFiV2Math;
|
|
@@ -357,6 +358,10 @@ export class WooFiV2 extends SimpleExchange implements IDex<WooFiV2Data> {
|
|
|
357
358
|
exchangeData: swapData,
|
|
358
359
|
targetExchange: this.config.wooPPV2Address,
|
|
359
360
|
transferSrcTokenBeforeSwap: this.config.wooPPV2Address,
|
|
361
|
+
returnAmountPos:
|
|
362
|
+
side === SwapSide.SELL
|
|
363
|
+
? extractReturnAmountPosition(ifaces.PPV2, 'swap', 'realToAmount')
|
|
364
|
+
: undefined,
|
|
360
365
|
};
|
|
361
366
|
}
|
|
362
367
|
|
package/src/dex/wsteth/wsteth.ts
CHANGED
|
@@ -23,6 +23,7 @@ import { uint256ToBigInt } from '../../lib/decoders';
|
|
|
23
23
|
import { Utils } from '../../utils';
|
|
24
24
|
import WSTETH_ABI from '../../abi/wstETH.json';
|
|
25
25
|
import STETH_ABI from '../../abi/stETH.json';
|
|
26
|
+
import { extractReturnAmountPosition } from '../../executor/utils';
|
|
26
27
|
|
|
27
28
|
export class WstETH extends SimpleExchange implements IDex<WstETHData> {
|
|
28
29
|
static readonly wstETHIface = new Interface(WSTETH_ABI);
|
|
@@ -252,16 +253,24 @@ export class WstETH extends SimpleExchange implements IDex<WstETHData> {
|
|
|
252
253
|
data: WstETHData,
|
|
253
254
|
side: SwapSide,
|
|
254
255
|
): Promise<DexExchangeParam> {
|
|
255
|
-
const
|
|
256
|
-
srcToken.toLowerCase() === this.config.stETHAddress ? 'wrap' : 'unwrap'
|
|
257
|
-
|
|
258
|
-
|
|
256
|
+
const swapFunction =
|
|
257
|
+
srcToken.toLowerCase() === this.config.stETHAddress ? 'wrap' : 'unwrap';
|
|
258
|
+
const exchangeData = WstETH.wstETHIface.encodeFunctionData(swapFunction, [
|
|
259
|
+
srcAmount,
|
|
260
|
+
]);
|
|
259
261
|
|
|
260
262
|
return {
|
|
261
263
|
needWrapNative: this.needWrapNative,
|
|
262
264
|
dexFuncHasRecipient: false,
|
|
263
265
|
exchangeData,
|
|
264
266
|
targetExchange: this.config.wstETHAddress,
|
|
267
|
+
returnAmountPos:
|
|
268
|
+
side === SwapSide.SELL
|
|
269
|
+
? extractReturnAmountPosition(
|
|
270
|
+
WstETH.wstETHIface,
|
|
271
|
+
swapFunction,
|
|
272
|
+
)
|
|
273
|
+
: undefined,
|
|
265
274
|
};
|
|
266
275
|
}
|
|
267
276
|
|
package/src/dex/zerox/index.ts
CHANGED
|
@@ -4,18 +4,28 @@ import { OptimalRate } from '@paraswap/core';
|
|
|
4
4
|
import { isETHAddress } from '../utils';
|
|
5
5
|
import { DepositWithdrawReturn } from '../dex/weth/types';
|
|
6
6
|
import { Executors, Flag, SpecialDex } from './types';
|
|
7
|
-
import { BYTES_64_LENGTH } from './constants';
|
|
8
|
-
import {
|
|
7
|
+
import { BYTES_64_LENGTH, DEFAULT_RETURN_AMOUNT_POS } from './constants';
|
|
8
|
+
import {
|
|
9
|
+
DexCallDataParams,
|
|
10
|
+
ExecutorBytecodeBuilder,
|
|
11
|
+
SingleSwapCallDataParams,
|
|
12
|
+
} from './ExecutorBytecodeBuilder';
|
|
9
13
|
import { assert } from 'ts-essentials';
|
|
10
14
|
|
|
11
15
|
const {
|
|
12
16
|
utils: { hexlify, hexDataLength, hexConcat, hexZeroPad, solidityPack },
|
|
13
17
|
} = ethers;
|
|
14
18
|
|
|
19
|
+
export type Executor01SingleSwapCallDataParams = {};
|
|
20
|
+
export type Executor01DexCallDataParams = {};
|
|
21
|
+
|
|
15
22
|
/**
|
|
16
23
|
* Class to build bytecode for Executor01 - simpleSwap (SINGLE_STEP) with 100% on a path and multiSwap with 100% amounts on each path (HORIZONTAL_SEQUENCE)
|
|
17
24
|
*/
|
|
18
|
-
export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder
|
|
25
|
+
export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
26
|
+
Executor01SingleSwapCallDataParams,
|
|
27
|
+
Executor01DexCallDataParams
|
|
28
|
+
> {
|
|
19
29
|
type = Executors.ONE;
|
|
20
30
|
/**
|
|
21
31
|
* Executor01 Flags:
|
|
@@ -51,6 +61,7 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder {
|
|
|
51
61
|
specialDexFlag,
|
|
52
62
|
specialDexSupportsInsertFromAmount,
|
|
53
63
|
swappedAmountNotPresentInExchangeData,
|
|
64
|
+
preSwapUnwrapCalldata,
|
|
54
65
|
} = exchangeParam;
|
|
55
66
|
|
|
56
67
|
const needWrap = needWrapNative && isEthSrc && maybeWethCallData?.deposit;
|
|
@@ -82,6 +93,13 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder {
|
|
|
82
93
|
: Flag.INSERT_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP; // 8 or 11
|
|
83
94
|
}
|
|
84
95
|
|
|
96
|
+
// Actual srcToken is eth, because we'll unwrap weth before swap.
|
|
97
|
+
// Need to check balance, some dexes don't have 1:1 ETH -> custom_ETH rate
|
|
98
|
+
if (preSwapUnwrapCalldata) {
|
|
99
|
+
dexFlag =
|
|
100
|
+
Flag.SEND_ETH_EQUAL_TO_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP;
|
|
101
|
+
}
|
|
102
|
+
|
|
85
103
|
return {
|
|
86
104
|
dexFlag,
|
|
87
105
|
approveFlag,
|
|
@@ -122,6 +140,7 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder {
|
|
|
122
140
|
specialDexSupportsInsertFromAmount,
|
|
123
141
|
swappedAmountNotPresentInExchangeData,
|
|
124
142
|
sendEthButSupportsInsertFromAmount,
|
|
143
|
+
preSwapUnwrapCalldata,
|
|
125
144
|
} = exchangeParam;
|
|
126
145
|
|
|
127
146
|
const isLastSwap =
|
|
@@ -186,6 +205,13 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder {
|
|
|
186
205
|
: Flag.INSERT_FROM_AMOUNT_DONT_CHECK_BALANCE_AFTER_SWAP; // 3
|
|
187
206
|
}
|
|
188
207
|
|
|
208
|
+
// Actual srcToken is eth, because we'll unwrap weth before swap.
|
|
209
|
+
// Need to check balance, some dexes don't have 1:1 ETH -> custom_ETH rate
|
|
210
|
+
if (preSwapUnwrapCalldata) {
|
|
211
|
+
dexFlag =
|
|
212
|
+
Flag.SEND_ETH_EQUAL_TO_FROM_AMOUNT_CHECK_SRC_TOKEN_BALANCE_AFTER_SWAP;
|
|
213
|
+
}
|
|
214
|
+
|
|
189
215
|
return {
|
|
190
216
|
dexFlag,
|
|
191
217
|
approveFlag,
|
|
@@ -193,29 +219,35 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder {
|
|
|
193
219
|
}
|
|
194
220
|
|
|
195
221
|
protected buildSingleSwapCallData(
|
|
196
|
-
|
|
197
|
-
exchangeParams: DexExchangeBuildParam[],
|
|
198
|
-
index: number,
|
|
199
|
-
flags: { approves: Flag[]; dexes: Flag[]; wrap: Flag },
|
|
200
|
-
sender: string,
|
|
201
|
-
maybeWethCallData?: DepositWithdrawReturn,
|
|
222
|
+
params: SingleSwapCallDataParams<Executor01SingleSwapCallDataParams>,
|
|
202
223
|
): string {
|
|
224
|
+
const { priceRoute, index, exchangeParams, flags, maybeWethCallData } =
|
|
225
|
+
params;
|
|
226
|
+
|
|
203
227
|
let swapCallData = '';
|
|
204
228
|
const swap = priceRoute.bestRoute[0].swaps[index];
|
|
205
229
|
const curExchangeParam = exchangeParams[index];
|
|
206
230
|
|
|
207
|
-
const dexCallData = this.buildDexCallData(
|
|
231
|
+
const dexCallData = this.buildDexCallData({
|
|
208
232
|
priceRoute,
|
|
209
|
-
0,
|
|
210
|
-
index,
|
|
211
|
-
0,
|
|
233
|
+
routeIndex: 0,
|
|
234
|
+
swapIndex: index,
|
|
235
|
+
swapExchangeIndex: 0,
|
|
212
236
|
exchangeParams,
|
|
213
|
-
index,
|
|
214
|
-
index === priceRoute.bestRoute[0].swaps.length - 1,
|
|
215
|
-
flags.dexes[index],
|
|
216
|
-
);
|
|
217
|
-
|
|
218
|
-
|
|
237
|
+
exchangeParamIndex: index,
|
|
238
|
+
isLastSwap: index === priceRoute.bestRoute[0].swaps.length - 1,
|
|
239
|
+
flag: flags.dexes[index],
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
if (curExchangeParam.preSwapUnwrapCalldata) {
|
|
243
|
+
const withdrawCallData = this.buildUnwrapEthCallData(
|
|
244
|
+
this.getWETHAddress(curExchangeParam),
|
|
245
|
+
curExchangeParam.preSwapUnwrapCalldata,
|
|
246
|
+
);
|
|
247
|
+
swapCallData = hexConcat([withdrawCallData, dexCallData]);
|
|
248
|
+
} else {
|
|
249
|
+
swapCallData = hexConcat([dexCallData]);
|
|
250
|
+
}
|
|
219
251
|
|
|
220
252
|
if (curExchangeParam.transferSrcTokenBeforeSwap) {
|
|
221
253
|
const transferCallData = this.buildTransferCallData(
|
|
@@ -301,21 +333,27 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder {
|
|
|
301
333
|
}
|
|
302
334
|
|
|
303
335
|
protected buildDexCallData(
|
|
304
|
-
|
|
305
|
-
routeIndex: number,
|
|
306
|
-
swapIndex: number,
|
|
307
|
-
swapExchangeIndex: number,
|
|
308
|
-
exchangeParams: DexExchangeBuildParam[],
|
|
309
|
-
exchangeParamIndex: number,
|
|
310
|
-
isLastSwap: boolean,
|
|
311
|
-
flag: Flag,
|
|
336
|
+
params: DexCallDataParams<Executor01DexCallDataParams>,
|
|
312
337
|
): string {
|
|
338
|
+
const {
|
|
339
|
+
priceRoute,
|
|
340
|
+
exchangeParamIndex,
|
|
341
|
+
exchangeParams,
|
|
342
|
+
routeIndex,
|
|
343
|
+
swapIndex,
|
|
344
|
+
flag,
|
|
345
|
+
} = params;
|
|
346
|
+
|
|
313
347
|
const dontCheckBalanceAfterSwap = flag % 3 === 0;
|
|
314
348
|
const checkDestTokenBalanceAfterSwap = flag % 3 === 2;
|
|
315
349
|
const insertFromAmount = flag % 4 === 3 || flag % 4 === 2;
|
|
316
350
|
const exchangeParam = exchangeParams[exchangeParamIndex];
|
|
317
351
|
const swap = priceRoute.bestRoute[routeIndex].swaps[swapIndex];
|
|
318
352
|
let { exchangeData, specialDexFlag } = exchangeParam;
|
|
353
|
+
const returnAmountPos =
|
|
354
|
+
exchangeParam.returnAmountPos !== undefined
|
|
355
|
+
? exchangeParam.returnAmountPos
|
|
356
|
+
: DEFAULT_RETURN_AMOUNT_POS;
|
|
319
357
|
|
|
320
358
|
let destTokenPos = 0;
|
|
321
359
|
if (checkDestTokenBalanceAfterSwap && !dontCheckBalanceAfterSwap) {
|
|
@@ -359,6 +397,8 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder {
|
|
|
359
397
|
destTokenPos,
|
|
360
398
|
specialDexFlag || SpecialDex.DEFAULT,
|
|
361
399
|
flag,
|
|
400
|
+
undefined,
|
|
401
|
+
returnAmountPos,
|
|
362
402
|
);
|
|
363
403
|
}
|
|
364
404
|
|
|
@@ -382,14 +422,14 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder {
|
|
|
382
422
|
(acc, ep, index) =>
|
|
383
423
|
hexConcat([
|
|
384
424
|
acc,
|
|
385
|
-
this.buildSingleSwapCallData(
|
|
425
|
+
this.buildSingleSwapCallData({
|
|
386
426
|
priceRoute,
|
|
387
427
|
exchangeParams,
|
|
388
428
|
index,
|
|
389
429
|
flags,
|
|
390
430
|
sender,
|
|
391
431
|
maybeWethCallData,
|
|
392
|
-
),
|
|
432
|
+
}),
|
|
393
433
|
]),
|
|
394
434
|
'0x',
|
|
395
435
|
);
|