@paraswap/dex-lib 3.8.2 → 3.8.3
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 +13 -0
- package/.vscode/settings.json +3 -0
- package/build/abi/AaveV1_lending_pool.json +27 -0
- package/build/abi/Uncompressor.json +250 -0
- package/build/abi/integral/factory.json +333 -0
- package/build/abi/integral/oracle.json +501 -0
- package/build/abi/integral/pool.json +1041 -0
- package/build/abi/integral/relayer.json +1536 -0
- package/build/abi/oswap/oswap.abi.json +452 -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/dex/aave-v1/aave-v1.d.ts +33 -0
- package/build/dex/aave-v1/aave-v1.js +158 -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-v3/aave-v3.js +2 -1
- package/build/dex/aave-v3/aave-v3.js.map +1 -1
- package/build/dex/aave-v3-stata/aave-v3-stata.js +1 -0
- package/build/dex/aave-v3-stata/aave-v3-stata.js.map +1 -1
- package/build/dex/angle-staked-stable/angle-staked-stable.js +4 -1
- package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -1
- 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/bancor.d.ts +26 -0
- package/build/dex/bancor.js +58 -0
- package/build/dex/bancor.js.map +1 -0
- package/build/dex/compound/compound.js +2 -1
- package/build/dex/compound/compound.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-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/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/etherfi/etherfi.d.ts +26 -0
- package/build/dex/etherfi/etherfi.js +96 -0
- package/build/dex/etherfi/etherfi.js.map +1 -0
- package/build/dex/etherfi.js +4 -1
- package/build/dex/etherfi.js.map +1 -1
- package/build/dex/idle-dao/idle-dao.js +1 -0
- package/build/dex/idle-dao/idle-dao.js.map +1 -1
- package/build/dex/integral/config.d.ts +4 -0
- package/build/dex/integral/config.js +20 -0
- package/build/dex/integral/config.js.map +1 -0
- package/build/dex/integral/context.d.ts +33 -0
- package/build/dex/integral/context.js +98 -0
- package/build/dex/integral/context.js.map +1 -0
- package/build/dex/integral/helpers.d.ts +17 -0
- package/build/dex/integral/helpers.js +157 -0
- package/build/dex/integral/helpers.js.map +1 -0
- package/build/dex/integral/integral-factory.d.ts +21 -0
- package/build/dex/integral/integral-factory.js +92 -0
- package/build/dex/integral/integral-factory.js.map +1 -0
- package/build/dex/integral/integral-pool.d.ts +46 -0
- package/build/dex/integral/integral-pool.js +143 -0
- package/build/dex/integral/integral-pool.js.map +1 -0
- package/build/dex/integral/integral-pricing.d.ts +18 -0
- package/build/dex/integral/integral-pricing.js +114 -0
- package/build/dex/integral/integral-pricing.js.map +1 -0
- package/build/dex/integral/integral-relayer.d.ts +39 -0
- package/build/dex/integral/integral-relayer.js +189 -0
- package/build/dex/integral/integral-relayer.js.map +1 -0
- package/build/dex/integral/integral-token.d.ts +22 -0
- package/build/dex/integral/integral-token.js +55 -0
- package/build/dex/integral/integral-token.js.map +1 -0
- package/build/dex/integral/integral.d.ts +41 -0
- package/build/dex/integral/integral.js +382 -0
- package/build/dex/integral/integral.js.map +1 -0
- package/build/dex/integral/types.d.ts +84 -0
- package/build/dex/integral/types.js +9 -0
- package/build/dex/integral/types.js.map +1 -0
- package/build/dex/integral/utils.d.ts +6 -0
- package/build/dex/integral/utils.js +23 -0
- package/build/dex/integral/utils.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/mStable.js +1 -1
- package/build/dex/mStable.js.map +1 -1
- 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/config.d.ts +5 -0
- package/build/dex/oswap/config.js +31 -0
- package/build/dex/oswap/config.js.map +1 -0
- package/build/dex/oswap/oswap-pool.d.ts +51 -0
- package/build/dex/oswap/oswap-pool.js +150 -0
- package/build/dex/oswap/oswap-pool.js.map +1 -0
- package/build/dex/oswap/oswap.d.ts +46 -0
- package/build/dex/oswap/oswap.js +266 -0
- package/build/dex/oswap/oswap.js.map +1 -0
- package/build/dex/oswap/types.d.ts +20 -0
- package/build/dex/oswap/types.js +3 -0
- package/build/dex/oswap/types.js.map +1 -0
- 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 +62 -0
- package/build/dex/platypus/platypus.js +442 -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/sdai/config.d.ts +11 -0
- package/build/dex/sdai/config.js +21 -0
- package/build/dex/sdai/config.js.map +1 -0
- package/build/dex/sdai/constants.d.ts +2 -0
- package/build/dex/sdai/constants.js +6 -0
- package/build/dex/sdai/constants.js.map +1 -0
- package/build/dex/sdai/scripts/validate-state.d.ts +1 -0
- package/build/dex/sdai/scripts/validate-state.js +102 -0
- package/build/dex/sdai/scripts/validate-state.js.map +1 -0
- package/build/dex/sdai/sdai-pool.d.ts +16 -0
- package/build/dex/sdai/sdai-pool.js +85 -0
- package/build/dex/sdai/sdai-pool.js.map +1 -0
- package/build/dex/sdai/sdai.d.ts +51 -0
- package/build/dex/sdai/sdai.js +172 -0
- package/build/dex/sdai/sdai.js.map +1 -0
- package/build/dex/sdai/types.d.ts +21 -0
- package/build/dex/sdai/types.js +11 -0
- package/build/dex/sdai/types.js.map +1 -0
- package/build/dex/sdai/utils.d.ts +4 -0
- package/build/dex/sdai/utils.js +39 -0
- package/build/dex/sdai/utils.js.map +1 -0
- package/build/dex/simple-exchange.d.ts +1 -1
- package/build/dex/simple-exchange.js +4 -2
- package/build/dex/simple-exchange.js.map +1 -1
- 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/spark/spark.js +2 -1
- package/build/dex/spark/spark.js.map +1 -1
- package/build/dex/stable-pool.d.ts +28 -0
- package/build/dex/stable-pool.js +62 -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 +61 -0
- package/build/dex/swaap-v1/swaap-v1.js +369 -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.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/executor/Executor01BytecodeBuilder.js +3 -1
- package/build/executor/Executor01BytecodeBuilder.js.map +1 -1
- package/build/executor/Executor02BytecodeBuilder.js +3 -1
- package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
- package/build/executor/Executor03BytecodeBuilder.js +2 -0
- package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
- package/build/executor/ExecutorBytecodeBuilder.js +2 -0
- package/build/executor/ExecutorBytecodeBuilder.js.map +1 -1
- package/build/executor/compressor/Compressor.d.ts +23 -0
- package/build/executor/compressor/Compressor.js +144 -0
- package/build/executor/compressor/Compressor.js.map +1 -0
- package/build/executor/compressor/compress.d.ts +17 -0
- package/build/executor/compressor/compress.js +187 -0
- package/build/executor/compressor/compress.js.map +1 -0
- package/build/executor/compressor/compress_functions/addressSubstitution.d.ts +6 -0
- package/build/executor/compressor/compress_functions/addressSubstitution.js +29 -0
- package/build/executor/compressor/compress_functions/addressSubstitution.js.map +1 -0
- package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.d.ts +10 -0
- package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.js +40 -0
- package/build/executor/compressor/compress_functions/addressSubstitutionFromObject.js.map +1 -0
- package/build/executor/compressor/compress_functions/byteSubstitution.d.ts +11 -0
- package/build/executor/compressor/compress_functions/byteSubstitution.js +64 -0
- package/build/executor/compressor/compress_functions/byteSubstitution.js.map +1 -0
- package/build/executor/compressor/compress_functions/ffSubstitution.d.ts +7 -0
- package/build/executor/compressor/compress_functions/ffSubstitution.js +54 -0
- package/build/executor/compressor/compress_functions/ffSubstitution.js.map +1 -0
- package/build/executor/compressor/compress_functions/findLongestAndSubstitute.d.ts +8 -0
- package/build/executor/compressor/compress_functions/findLongestAndSubstitute.js +67 -0
- package/build/executor/compressor/compress_functions/findLongestAndSubstitute.js.map +1 -0
- package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.d.ts +8 -0
- package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.js +61 -0
- package/build/executor/compressor/compress_functions/findLongestAndSubstitute_old.js.map +1 -0
- package/build/executor/compressor/compress_functions/reverseAddressSubstitution.d.ts +6 -0
- package/build/executor/compressor/compress_functions/reverseAddressSubstitution.js +37 -0
- package/build/executor/compressor/compress_functions/reverseAddressSubstitution.js.map +1 -0
- package/build/executor/compressor/compress_functions/searchUnusedBytes.d.ts +9 -0
- package/build/executor/compressor/compress_functions/searchUnusedBytes.js +33 -0
- package/build/executor/compressor/compress_functions/searchUnusedBytes.js.map +1 -0
- package/build/executor/compressor/fetchSaved.d.ts +0 -0
- package/build/executor/compressor/fetchSaved.js +17 -0
- package/build/executor/compressor/fetchSaved.js.map +1 -0
- package/build/executor/compressor/utils/computeCostL2.d.ts +2 -0
- package/build/executor/compressor/utils/computeCostL2.js +14 -0
- package/build/executor/compressor/utils/computeCostL2.js.map +1 -0
- package/build/executor/compressor/utils/findLongestDuplicatedString.d.ts +2 -0
- package/build/executor/compressor/utils/findLongestDuplicatedString.js +30 -0
- package/build/executor/compressor/utils/findLongestDuplicatedString.js.map +1 -0
- package/build/executor/compressor/utils/getAllIndexes.d.ts +2 -0
- package/build/executor/compressor/utils/getAllIndexes.js +12 -0
- package/build/executor/compressor/utils/getAllIndexes.js.map +1 -0
- package/build/executor/compressor/utils/getByteForAddress.d.ts +2 -0
- package/build/executor/compressor/utils/getByteForAddress.js +14 -0
- package/build/executor/compressor/utils/getByteForAddress.js.map +1 -0
- package/build/executor/compressor/utils/intTo2Bytes.d.ts +2 -0
- package/build/executor/compressor/utils/intTo2Bytes.js +14 -0
- package/build/executor/compressor/utils/intTo2Bytes.js.map +1 -0
- package/build/executor/compressor/utils/intTo3Bytes.d.ts +2 -0
- package/build/executor/compressor/utils/intTo3Bytes.js +18 -0
- package/build/executor/compressor/utils/intTo3Bytes.js.map +1 -0
- package/build/executor/compressor/utils/intToByte.d.ts +2 -0
- package/build/executor/compressor/utils/intToByte.js +10 -0
- package/build/executor/compressor/utils/intToByte.js.map +1 -0
- package/build/types.d.ts +1 -0
- package/package.json +1 -1
- package/src/dex/aave-v3/aave-v3-e2e.test.ts +4 -9
- package/src/dex/aave-v3/aave-v3.ts +5 -0
- package/src/dex/aave-v3-stata/aave-v3-stata.ts +1 -0
- package/src/dex/angle-staked-stable/angle-staked-stable.ts +8 -0
- package/src/dex/compound/compound.ts +5 -0
- package/src/dex/etherfi.ts +5 -0
- package/src/dex/idle-dao/idle-dao.ts +1 -0
- package/src/dex/simple-exchange.ts +5 -5
- package/src/dex/spark/spark-e2e.test.ts +9 -1
- package/src/dex/spark/spark.ts +5 -0
- package/src/executor/Executor01BytecodeBuilder.ts +3 -1
- package/src/executor/Executor02BytecodeBuilder.ts +3 -1
- package/src/executor/Executor03BytecodeBuilder.ts +2 -0
- package/src/executor/ExecutorBytecodeBuilder.ts +2 -0
- package/src/executor/executor01-bytecode-builder-e2e.test.ts +25 -0
- package/src/executor/executor02-bytecode-builder-e2e.test.ts +29 -0
- package/src/types.ts +1 -0
- package/tests/constants-e2e.ts +13 -13
- package/tests/utils-e2e.ts +1 -1
- package/.idea/aws.xml +0 -17
- package/.idea/codeStyles/Project.xml +0 -19
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/paraswap-dex-lib.iml +0 -9
- package/.idea/prettier.xml +0 -7
- package/.idea/vcs.xml +0 -6
|
@@ -350,6 +350,7 @@ export class IdleDao extends SimpleExchange implements IDex<IdleDaoData> {
|
|
|
350
350
|
exchangeData,
|
|
351
351
|
targetExchange: swapCallee,
|
|
352
352
|
returnAmountPos: side === SwapSide.SELL ? returnAmountPos : undefined,
|
|
353
|
+
skipApproval: data.fromIdleToken,
|
|
353
354
|
};
|
|
354
355
|
}
|
|
355
356
|
|
|
@@ -110,12 +110,12 @@ export class SimpleExchange {
|
|
|
110
110
|
spender?: Address,
|
|
111
111
|
networkFee: NumberAsString = '0',
|
|
112
112
|
preCalls?: Omit<SimpleExchangeParam, 'networkFee'>,
|
|
113
|
+
skipApproval?: boolean,
|
|
113
114
|
): Promise<SimpleExchangeParam> {
|
|
114
|
-
const approveParam =
|
|
115
|
-
|
|
116
|
-
spender || swapCallee,
|
|
117
|
-
|
|
118
|
-
);
|
|
115
|
+
const approveParam = skipApproval
|
|
116
|
+
? { callees: [], calldata: [], values: [], networkFee: '0' }
|
|
117
|
+
: await this.getApproveSimpleParam(src, spender || swapCallee, srcAmount);
|
|
118
|
+
|
|
119
119
|
const swapValue = (
|
|
120
120
|
BigInt(networkFee) + (isETHAddress(src) ? BigInt(srcAmount) : 0n)
|
|
121
121
|
).toString();
|
|
@@ -29,9 +29,17 @@ function testForNetwork(
|
|
|
29
29
|
ContractMethod.simpleSwap,
|
|
30
30
|
ContractMethod.multiSwap,
|
|
31
31
|
ContractMethod.megaSwap,
|
|
32
|
+
ContractMethod.swapExactAmountIn,
|
|
33
|
+
],
|
|
34
|
+
],
|
|
35
|
+
[
|
|
36
|
+
SwapSide.BUY,
|
|
37
|
+
[
|
|
38
|
+
ContractMethod.simpleBuy,
|
|
39
|
+
ContractMethod.buy,
|
|
40
|
+
ContractMethod.swapExactAmountOut,
|
|
32
41
|
],
|
|
33
42
|
],
|
|
34
|
-
[SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
|
|
35
43
|
]);
|
|
36
44
|
|
|
37
45
|
describe(`${network}`, () => {
|
package/src/dex/spark/spark.ts
CHANGED
|
@@ -207,6 +207,10 @@ export class Spark
|
|
|
207
207
|
destAmount,
|
|
208
208
|
swapData,
|
|
209
209
|
exchange,
|
|
210
|
+
undefined,
|
|
211
|
+
undefined,
|
|
212
|
+
undefined,
|
|
213
|
+
isSell && this.isDai(destToken),
|
|
210
214
|
);
|
|
211
215
|
}
|
|
212
216
|
|
|
@@ -251,6 +255,7 @@ export class Spark
|
|
|
251
255
|
this.isDai(srcToken) ? 'shares' : 'assets',
|
|
252
256
|
)
|
|
253
257
|
: undefined,
|
|
258
|
+
skipApproval: isSell && this.isDai(destToken),
|
|
254
259
|
};
|
|
255
260
|
}
|
|
256
261
|
|
|
@@ -268,6 +268,7 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
268
268
|
(!isETHAddress(swap.srcToken) ||
|
|
269
269
|
(isETHAddress(swap.srcToken) && index !== 0)) &&
|
|
270
270
|
!curExchangeParam.transferSrcTokenBeforeSwap &&
|
|
271
|
+
!curExchangeParam.skipApproval &&
|
|
271
272
|
curExchangeParam.approveData
|
|
272
273
|
) {
|
|
273
274
|
const approveCallData = this.buildApproveCallData(
|
|
@@ -290,7 +291,8 @@ export class Executor01BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
290
291
|
let approveWethCalldata = '0x';
|
|
291
292
|
if (
|
|
292
293
|
curExchangeParam.approveData &&
|
|
293
|
-
!curExchangeParam.transferSrcTokenBeforeSwap
|
|
294
|
+
!curExchangeParam.transferSrcTokenBeforeSwap &&
|
|
295
|
+
!curExchangeParam.skipApproval
|
|
294
296
|
) {
|
|
295
297
|
approveWethCalldata = this.buildApproveCallData(
|
|
296
298
|
curExchangeParam.approveData.target,
|
|
@@ -606,6 +606,7 @@ export class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
606
606
|
if (
|
|
607
607
|
!isETHAddress(swap.srcToken) &&
|
|
608
608
|
!curExchangeParam.transferSrcTokenBeforeSwap &&
|
|
609
|
+
!curExchangeParam.skipApproval &&
|
|
609
610
|
curExchangeParam.approveData
|
|
610
611
|
) {
|
|
611
612
|
const approveCallData = this.buildApproveCallData(
|
|
@@ -622,7 +623,8 @@ export class Executor02BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
622
623
|
let approveWethCalldata = '0x';
|
|
623
624
|
if (
|
|
624
625
|
curExchangeParam.approveData &&
|
|
625
|
-
!curExchangeParam.transferSrcTokenBeforeSwap
|
|
626
|
+
!curExchangeParam.transferSrcTokenBeforeSwap &&
|
|
627
|
+
!curExchangeParam.skipApproval
|
|
626
628
|
) {
|
|
627
629
|
approveWethCalldata = this.buildApproveCallData(
|
|
628
630
|
curExchangeParam.approveData.target,
|
|
@@ -147,6 +147,7 @@ export class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
147
147
|
if (
|
|
148
148
|
flags.dexes[index] % 4 !== 1 && // not sendEth
|
|
149
149
|
!isETHAddress(swap.srcToken) &&
|
|
150
|
+
!curExchangeParam.skipApproval &&
|
|
150
151
|
curExchangeParam.approveData
|
|
151
152
|
) {
|
|
152
153
|
// TODO: as we give approve for MAX_UINT and approve for current targetExchange was given
|
|
@@ -163,6 +164,7 @@ export class Executor03BytecodeBuilder extends ExecutorBytecodeBuilder<
|
|
|
163
164
|
if (
|
|
164
165
|
maybeWethCallData?.deposit &&
|
|
165
166
|
isETHAddress(swap.srcToken) &&
|
|
167
|
+
!curExchangeParam.skipApproval &&
|
|
166
168
|
curExchangeParam.needWrapNative
|
|
167
169
|
// do deposit only for the first path with wrapping
|
|
168
170
|
// exchangeParams.findIndex(p => p.needWrapNative) === index
|
|
@@ -358,6 +358,8 @@ export abstract class ExecutorBytecodeBuilder<S = {}, D = {}> {
|
|
|
358
358
|
swap: OptimalSwap,
|
|
359
359
|
exchangeParam: DexExchangeParam,
|
|
360
360
|
): { target: string; token: Address } | null {
|
|
361
|
+
if (exchangeParam.skipApproval) return null;
|
|
362
|
+
|
|
361
363
|
const target = exchangeParam.spender || exchangeParam.targetExchange;
|
|
362
364
|
|
|
363
365
|
if (
|
|
@@ -102,6 +102,31 @@ describe('Executor01ByteCodeBuilder e2e tests', () => {
|
|
|
102
102
|
const network = Network.MAINNET;
|
|
103
103
|
|
|
104
104
|
describe('SimpleSwap', () => {
|
|
105
|
+
describe('AngleStakedStableUSD', () => {
|
|
106
|
+
const dexKey = 'AngleStakedStableUSD';
|
|
107
|
+
|
|
108
|
+
const tokens = Tokens[network];
|
|
109
|
+
const holders = Holders[network];
|
|
110
|
+
const provider = new StaticJsonRpcProvider(
|
|
111
|
+
generateConfig(network).privateHttpProvider,
|
|
112
|
+
network,
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
it('SimpleSwap stUSD -> USDA', async () => {
|
|
116
|
+
await testE2E(
|
|
117
|
+
tokens['stUSD'],
|
|
118
|
+
tokens['USDA'],
|
|
119
|
+
holders['stUSD'],
|
|
120
|
+
'1000000000000',
|
|
121
|
+
SwapSide.SELL,
|
|
122
|
+
dexKey,
|
|
123
|
+
ContractMethod.simpleSwap,
|
|
124
|
+
network,
|
|
125
|
+
provider,
|
|
126
|
+
);
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
105
130
|
describe('UniswapV3', () => {
|
|
106
131
|
const dexKey = 'UniswapV3';
|
|
107
132
|
|
|
@@ -23,6 +23,35 @@ describe('Executor02ByteCodeBuilder e2e tests', () => {
|
|
|
23
23
|
describe('SimpleSwap', () => {
|
|
24
24
|
const contractMethod = ContractMethod.simpleSwap;
|
|
25
25
|
|
|
26
|
+
describe('stUSD -> USDA via Angle Staked Stable USD', () => {
|
|
27
|
+
const dexKeys = ['AngleStakedStableUSD'];
|
|
28
|
+
|
|
29
|
+
const tokenASymbol: string = 'stUSD';
|
|
30
|
+
const tokenBSymbol: string = 'USDA';
|
|
31
|
+
const tokenAAmount: string = '60000000000000000000';
|
|
32
|
+
|
|
33
|
+
const side = SwapSide.SELL;
|
|
34
|
+
|
|
35
|
+
it(`${tokenASymbol} -> ${tokenBSymbol}`, async () => {
|
|
36
|
+
await testE2E(
|
|
37
|
+
tokens[tokenASymbol],
|
|
38
|
+
tokens[tokenBSymbol],
|
|
39
|
+
holders[tokenASymbol],
|
|
40
|
+
tokenAAmount,
|
|
41
|
+
side,
|
|
42
|
+
dexKeys,
|
|
43
|
+
contractMethod,
|
|
44
|
+
network,
|
|
45
|
+
provider,
|
|
46
|
+
undefined,
|
|
47
|
+
undefined,
|
|
48
|
+
undefined,
|
|
49
|
+
200,
|
|
50
|
+
2000,
|
|
51
|
+
);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
|
|
26
55
|
describe('ETH -> SUSHI via SushiSwapV3 and UniswapV3', () => {
|
|
27
56
|
const dexKeys = ['SushiSwapV3', 'UniswapV3'];
|
|
28
57
|
|
package/src/types.ts
CHANGED
package/tests/constants-e2e.ts
CHANGED
|
@@ -91,6 +91,14 @@ export const Tokens: {
|
|
|
91
91
|
address: '0x8f8221aFbB33998d8584A2B05749bA73c37a938a',
|
|
92
92
|
decimals: 18,
|
|
93
93
|
},
|
|
94
|
+
eETH: {
|
|
95
|
+
address: '0x35fA164735182de50811E8e2E824cFb9B6118ac2',
|
|
96
|
+
decimals: 18,
|
|
97
|
+
},
|
|
98
|
+
weETH: {
|
|
99
|
+
address: '0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee',
|
|
100
|
+
decimals: 18,
|
|
101
|
+
},
|
|
94
102
|
AMPL: {
|
|
95
103
|
address: '0xd46ba6d942050d489dbd938a2c909a5d5039a161',
|
|
96
104
|
decimals: 9,
|
|
@@ -483,14 +491,6 @@ export const Tokens: {
|
|
|
483
491
|
address: '0x83f20f44975d03b1b09e64809b757c47f942beea',
|
|
484
492
|
decimals: 18,
|
|
485
493
|
},
|
|
486
|
-
eETH: {
|
|
487
|
-
address: '0x35fa164735182de50811e8e2e824cfb9b6118ac2',
|
|
488
|
-
decimals: 18,
|
|
489
|
-
},
|
|
490
|
-
weETH: {
|
|
491
|
-
address: '0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee',
|
|
492
|
-
decimals: 18,
|
|
493
|
-
},
|
|
494
494
|
stataUSDT: {
|
|
495
495
|
address: '0x862c57d48becb45583aeba3f489696d22466ca1b',
|
|
496
496
|
decimals: 6,
|
|
@@ -1543,7 +1543,7 @@ export const Holders: {
|
|
|
1543
1543
|
USDD: '0xf89d7b9c864f589bbf53a82105107622b35eaa40',
|
|
1544
1544
|
alETH: '0x500a4f1280a0b63f47862d658b6c335cc939aaed',
|
|
1545
1545
|
SHIBA: '0x73af3bcf944a6559933396c1577b257e2054d935',
|
|
1546
|
-
aEthWETH: '
|
|
1546
|
+
aEthWETH: '0x931433324E6B0b5B04E3460ef3fb3f78dda3c721',
|
|
1547
1547
|
dUSDC: '0x2FC2F705110A7F46Ce85F701d7217EF1018f01A3',
|
|
1548
1548
|
PSP: '0xE5E5440a1CE69C5cf67BFFA74d185e57c31b43E5',
|
|
1549
1549
|
EUROC: '0x64AE5802620398143FC7113037769175F74825Ea',
|
|
@@ -1741,8 +1741,8 @@ export const Holders: {
|
|
|
1741
1741
|
EURA: '0x6dd7b830896b56812aa667bdd14b71c8b3252f8e',
|
|
1742
1742
|
stEUR: '0xE588611e7A2392507879E3be80531654b85C16aA',
|
|
1743
1743
|
USDA: '0xa86ff337db9107b54862d30d1a598f8be847b05e',
|
|
1744
|
-
stUSD: '
|
|
1745
|
-
stataUSDT: '
|
|
1744
|
+
stUSD: '0xBa511aAd739358b2F34285f9E2d5344017b7DcaD',
|
|
1745
|
+
stataUSDT: '0xc5042f9d9a18e95547864438455c8f05b4987399',
|
|
1746
1746
|
aaveUSDT: '0xAfa788fab589fe61C23DF76905558f4734444D67',
|
|
1747
1747
|
crvUSD: '0x9755e99bdb99495d3d31d953785d993c6df8552e',
|
|
1748
1748
|
},
|
|
@@ -1764,9 +1764,9 @@ export const Holders: {
|
|
|
1764
1764
|
rETH: '0x4c2e69e58b14de9afedfb94319519ce34e087283',
|
|
1765
1765
|
WBTC: '0xb9c8f0d3254007ee4b98970b94544e473cd610ec',
|
|
1766
1766
|
frxETH: '0x4d4edf8291d169f975b99914b6ab3326abb45938',
|
|
1767
|
-
EURA: '
|
|
1767
|
+
EURA: '0x9A760aa1Fe631fD9aC0Aee0965736121c7c132cc',
|
|
1768
1768
|
stEUR: '0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701',
|
|
1769
|
-
USDA: '
|
|
1769
|
+
USDA: '0x7dFf12833a6f0e88f610E79E11E9506848cCF187',
|
|
1770
1770
|
stUSD: '0xC98b0729695A25152B8D5b6B95709070605A7F60',
|
|
1771
1771
|
crvUSD: '0x528e7aF33043Da06ca3DD407626a71DbBD3173D6',
|
|
1772
1772
|
LUSD: '0xf0a9abb11958a071e168f2ee5bcbacf1abbde9cf',
|
package/tests/utils-e2e.ts
CHANGED
|
@@ -475,7 +475,7 @@ export async function testE2E(
|
|
|
475
475
|
? new APIParaswapSDK(network, dexKeys, '')
|
|
476
476
|
: new LocalParaswapSDK(network, dexKeys, '', limitOrderProvider);
|
|
477
477
|
|
|
478
|
-
|
|
478
|
+
await paraswap.initializePricing?.();
|
|
479
479
|
|
|
480
480
|
if (sleepMs) {
|
|
481
481
|
await sleep(sleepMs);
|
package/.idea/aws.xml
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="accountSettings">
|
|
4
|
-
<option name="activeProfile" value="profile:default" />
|
|
5
|
-
<option name="activeRegion" value="us-east-1" />
|
|
6
|
-
<option name="recentlyUsedProfiles">
|
|
7
|
-
<list>
|
|
8
|
-
<option value="profile:default" />
|
|
9
|
-
</list>
|
|
10
|
-
</option>
|
|
11
|
-
<option name="recentlyUsedRegions">
|
|
12
|
-
<list>
|
|
13
|
-
<option value="us-east-1" />
|
|
14
|
-
</list>
|
|
15
|
-
</option>
|
|
16
|
-
</component>
|
|
17
|
-
</project>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<component name="ProjectCodeStyleConfiguration">
|
|
2
|
-
<code_scheme name="Project" version="173">
|
|
3
|
-
<ScalaCodeStyleSettings>
|
|
4
|
-
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
|
|
5
|
-
</ScalaCodeStyleSettings>
|
|
6
|
-
<TypeScriptCodeStyleSettings version="0">
|
|
7
|
-
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACKETS" value="true" />
|
|
8
|
-
<option name="USE_DOUBLE_QUOTES" value="false" />
|
|
9
|
-
<option name="SPACES_WITHIN_IMPORTS" value="true" />
|
|
10
|
-
</TypeScriptCodeStyleSettings>
|
|
11
|
-
<codeStyleSettings language="TypeScript">
|
|
12
|
-
<indentOptions>
|
|
13
|
-
<option name="INDENT_SIZE" value="2" />
|
|
14
|
-
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
15
|
-
<option name="TAB_SIZE" value="2" />
|
|
16
|
-
</indentOptions>
|
|
17
|
-
</codeStyleSettings>
|
|
18
|
-
</code_scheme>
|
|
19
|
-
</component>
|
package/.idea/misc.xml
DELETED
package/.idea/modules.xml
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/paraswap-dex-lib.iml" filepath="$PROJECT_DIR$/.idea/paraswap-dex-lib.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="JAVA_MODULE" version="4">
|
|
3
|
-
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
4
|
-
<exclude-output />
|
|
5
|
-
<content url="file://$MODULE_DIR$" />
|
|
6
|
-
<orderEntry type="inheritedJdk" />
|
|
7
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
8
|
-
</component>
|
|
9
|
-
</module>
|
package/.idea/prettier.xml
DELETED