@paraswap/dex-lib 3.4.0 → 3.4.1
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/README.md +3 -3
- package/abis.txt +92 -0
- package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
- package/build/abi/{integral/relayer.json → wombat/pool.json} +587 -446
- package/build/config.js +0 -35
- package/build/config.js.map +1 -1
- package/build/constants.d.ts +0 -1
- package/build/constants.js +0 -1
- package/build/constants.js.map +1 -1
- package/build/dex/augustus-rfq.js +0 -1
- package/build/dex/augustus-rfq.js.map +1 -1
- package/build/dex/curve-v1/config.js +1 -57
- package/build/dex/curve-v1/config.js.map +1 -1
- package/build/dex/curve-v1-factory/config.js +1 -1
- package/build/dex/curve-v1-factory/config.js.map +1 -1
- package/build/dex/etherfi.js +1 -1
- package/build/dex/gmx/gmx.js.map +1 -1
- package/build/dex/index.js +0 -14
- package/build/dex/index.js.map +1 -1
- package/build/dex/nerve/config.js +0 -399
- package/build/dex/nerve/config.js.map +1 -1
- package/build/dex/paraswap-limit-orders/config.js +0 -7
- package/build/dex/paraswap-limit-orders/config.js.map +1 -1
- package/build/dex/quick-perps/quick-perps.js.map +1 -1
- package/build/dex/quickswap/config.js +0 -8
- package/build/dex/quickswap/config.js.map +1 -1
- package/build/dex/solidly/config.js +1 -27
- package/build/dex/solidly/config.js.map +1 -1
- package/build/dex/solidly/solidly.js +0 -2
- 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/stable-pool.js +1 -8
- package/build/dex/stable-pool/stable-pool.js.map +1 -1
- package/build/dex/stable-pool.js +1 -8
- package/build/dex/stable-pool.js.map +1 -1
- package/build/dex/uniswap-v2/config.js +0 -152
- package/build/dex/uniswap-v2/config.js.map +1 -1
- package/build/dex/uniswap-v2/constants.js +0 -1
- package/build/dex/uniswap-v2/constants.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/weth/config.js +0 -3
- package/build/dex/weth/config.js.map +1 -1
- package/build/dex/wsteth/wsteth.js.map +1 -1
- package/build/types.d.ts +0 -1
- package/package.json +1 -1
- package/src/config.ts +0 -39
- package/src/constants.ts +0 -1
- package/src/dex/augustus-rfq.ts +0 -1
- package/src/dex/curve-v1/config.ts +1 -57
- package/src/dex/curve-v1/curve-v1-e2e.test.ts +0 -51
- package/src/dex/curve-v1-factory/config.ts +1 -1
- package/src/dex/etherfi.ts +1 -1
- package/src/dex/gmx/gmx.ts +1 -4
- package/src/dex/index.ts +0 -14
- package/src/dex/nerve/config.ts +0 -400
- package/src/dex/nerve/nerve-e2e.test.ts +0 -507
- package/src/dex/nerve/nerve-events.test.ts +0 -268
- package/src/dex/paraswap-limit-orders/config.ts +0 -7
- package/src/dex/paraswap-limit-orders/paraswap-limit-orders-e2e.test.ts +2 -2
- package/src/dex/paraswap-limit-orders/paraswap-limit-orders-integration.test.ts +1 -1
- package/src/dex/quick-perps/quick-perps.ts +1 -4
- package/src/dex/quickswap/config.ts +0 -9
- package/src/dex/quickswap/quickswap-e2e.test.ts +0 -97
- package/src/dex/solidly/config.ts +1 -30
- package/src/dex/solidly/solidly-e2e.test.ts +0 -280
- package/src/dex/solidly/solidly-integration.test.ts +0 -135
- package/src/dex/solidly/solidly.ts +0 -2
- package/src/dex/stable-pool/stable-pool.ts +1 -8
- package/src/dex/uniswap-v2/config.ts +0 -185
- package/src/dex/uniswap-v2/constants.ts +0 -1
- package/src/dex/uniswap-v2/uniswap-v2-e2e-avalanche.test.ts +0 -272
- package/src/dex/uniswap-v2/uniswap-v2-e2e-base.test.ts +0 -6
- package/src/dex/uniswap-v2/uniswap-v2-e2e-bsc.test.ts +0 -325
- package/src/dex/uniswap-v2/uniswap-v2-e2e-mainnet.test.ts +0 -175
- package/src/dex/uniswap-v2/uniswap-v2-e2e-polygon.test.ts +0 -413
- package/src/dex/weth/config.ts +0 -3
- package/src/dex/wsteth/wsteth.ts +1 -4
- package/src/types.ts +0 -1
- package/tests/constants-e2e.ts +0 -21
- package/tests/generate-new-limit-order.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
- package/build/abi/AugustusV6.abi.json +0 -395
- package/build/abi/algebra/AlgebraPool.abi.json +0 -727
- package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
- package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
- package/build/abi/sushiswap-v3/QuoterV2.json +0 -267
- package/build/abi/sushiswap-v3/RouterProcessor3.json +0 -289
- package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
- package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +0 -285
- package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
- package/build/abi/wBETH.json +0 -1527
- package/build/abi/woo-fi/WooFeeManager.abi.json +0 -318
- package/build/abi/woo-fi/WooPP.abi.json +0 -548
- package/build/abi/woo-fi/Wooracle.abi.json +0 -260
- package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
- package/build/dex/aave-v3/tokens/avalanche.json +0 -74
- package/build/dex/aave-v3/tokens/fantom.json +0 -62
- package/build/dex/aave-v3/tokens/optimism.json +0 -50
- package/build/dex/aave-v3/tokens/polygon.json +0 -116
- package/build/dex/algebra/algebra-pool.d.ts +0 -114
- package/build/dex/algebra/algebra-pool.js +0 -448
- package/build/dex/algebra/algebra-pool.js.map +0 -1
- package/build/dex/balancer-v2/Gyro3Pool.d.ts +0 -43
- package/build/dex/balancer-v2/Gyro3Pool.js +0 -160
- package/build/dex/balancer-v2/Gyro3Pool.js.map +0 -1
- package/build/dex/balancer-v2/LinearMath.d.ts +0 -88
- package/build/dex/balancer-v2/LinearMath.js +0 -285
- package/build/dex/balancer-v2/LinearMath.js.map +0 -1
- package/build/dex/balancer-v2/LinearPool.d.ts +0 -81
- package/build/dex/balancer-v2/LinearPool.js +0 -444
- package/build/dex/balancer-v2/LinearPool.js.map +0 -1
- package/build/dex/balancer-v2/PhantomStablePool.d.ts +0 -90
- package/build/dex/balancer-v2/PhantomStablePool.js +0 -418
- package/build/dex/balancer-v2/PhantomStablePool.js.map +0 -1
- package/build/dex/balancer-v2/StableMath.d.ts +0 -9
- package/build/dex/balancer-v2/StableMath.js +0 -272
- package/build/dex/balancer-v2/StableMath.js.map +0 -1
- package/build/dex/balancer-v2/balancer-v2-pool.d.ts +0 -140
- package/build/dex/balancer-v2/balancer-v2-pool.js +0 -647
- package/build/dex/balancer-v2/balancer-v2-pool.js.map +0 -1
- package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
- package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
- package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
- package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
- package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
- package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
- package/build/dex/integral/config.d.ts +0 -4
- package/build/dex/integral/config.js +0 -18
- package/build/dex/integral/config.js.map +0 -1
- package/build/dex/integral/integral-pool.d.ts +0 -39
- package/build/dex/integral/integral-pool.js +0 -67
- package/build/dex/integral/integral-pool.js.map +0 -1
- package/build/dex/integral/integral.d.ts +0 -48
- package/build/dex/integral/integral.js +0 -402
- package/build/dex/integral/integral.js.map +0 -1
- package/build/dex/integral/types.d.ts +0 -25
- package/build/dex/integral/types.js +0 -9
- package/build/dex/integral/types.js.map +0 -1
- package/build/dex/lighter-v1/abi/erc20.json +0 -222
- package/build/dex/lighter-v1/abi/factory.json +0 -291
- package/build/dex/lighter-v1/abi/order_book.json +0 -594
- package/build/dex/lighter-v1/abi/order_book_helper.json +0 -176
- package/build/dex/lighter-v1/abi/router.json +0 -488
- package/build/dex/lighter-v1/config.d.ts +0 -4
- package/build/dex/lighter-v1/config.js +0 -17
- package/build/dex/lighter-v1/config.js.map +0 -1
- package/build/dex/lighter-v1/constants.d.ts +0 -2
- package/build/dex/lighter-v1/constants.js +0 -13
- package/build/dex/lighter-v1/constants.js.map +0 -1
- package/build/dex/lighter-v1/lighter-v1-pool.d.ts +0 -57
- package/build/dex/lighter-v1/lighter-v1-pool.js +0 -310
- package/build/dex/lighter-v1/lighter-v1-pool.js.map +0 -1
- package/build/dex/lighter-v1/lighter-v1.d.ts +0 -45
- package/build/dex/lighter-v1/lighter-v1.js +0 -331
- package/build/dex/lighter-v1/lighter-v1.js.map +0 -1
- package/build/dex/lighter-v1/types.d.ts +0 -40
- package/build/dex/lighter-v1/types.js +0 -3
- package/build/dex/lighter-v1/types.js.map +0 -1
- package/build/dex/pancakeswap-v3/types.d.ts +0 -14
- package/build/dex/pancakeswap-v3/types.js +0 -3
- package/build/dex/pancakeswap-v3/types.js.map +0 -1
- package/build/dex/quickswap/camelot-v3.d.ts +0 -6
- package/build/dex/quickswap/camelot-v3.js +0 -19
- package/build/dex/quickswap/camelot-v3.js.map +0 -1
- package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
- package/build/dex/quickswap/zyberswap-v3.js +0 -19
- package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
- package/build/dex/quickswap-v3.d.ts +0 -21
- package/build/dex/quickswap-v3.js +0 -40
- package/build/dex/quickswap-v3.js.map +0 -1
- package/build/dex/ramses-v2/config.d.ts +0 -4
- package/build/dex/ramses-v2/config.js +0 -28
- package/build/dex/ramses-v2/config.js.map +0 -1
- package/build/dex/ramses-v2/constants.d.ts +0 -28
- package/build/dex/ramses-v2/constants.js +0 -35
- package/build/dex/ramses-v2/constants.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
- package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
- package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
- package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
- package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
- package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
- package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
- package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
- package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
- package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
- package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
- package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
- package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
- package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
- package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
- package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
- package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
- package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
- package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
- package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
- package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
- package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
- package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
- package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
- package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
- package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
- package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
- package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
- package/build/dex/ramses-v2/contract-math/utils.js +0 -16
- package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
- package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
- package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
- package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
- package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
- package/build/dex/ramses-v2/ramses-v2.js +0 -690
- package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
- package/build/dex/ramses-v2/types.d.ts +0 -154
- package/build/dex/ramses-v2/types.js +0 -9
- package/build/dex/ramses-v2/types.js.map +0 -1
- package/build/dex/ramses-v2/utils.d.ts +0 -6
- package/build/dex/ramses-v2/utils.js +0 -71
- package/build/dex/ramses-v2/utils.js.map +0 -1
- package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
- package/build/dex/solidly/forks-override/fvm.js +0 -42
- package/build/dex/solidly/forks-override/fvm.js.map +0 -1
- package/build/dex/sushiswap-v3/config.d.ts +0 -4
- package/build/dex/sushiswap-v3/config.js +0 -132
- package/build/dex/sushiswap-v3/config.js.map +0 -1
- package/build/dex/sushiswap-v3/constants.d.ts +0 -4
- package/build/dex/sushiswap-v3/constants.js +0 -32
- package/build/dex/sushiswap-v3/constants.js.map +0 -1
- package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +0 -56
- package/build/dex/sushiswap-v3/sushiswap-v3-original.js +0 -598
- package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +0 -1
- package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +0 -1
- package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +0 -6
- package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +0 -1
- package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +0 -21
- package/build/dex/sushiswap-v3/sushiswap-v3.js +0 -58
- package/build/dex/sushiswap-v3/sushiswap-v3.js.map +0 -1
- package/build/dex/sushiswap-v3/token.d.ts +0 -6
- package/build/dex/sushiswap-v3/token.js +0 -23
- package/build/dex/sushiswap-v3/token.js.map +0 -1
- package/build/dex/sushiswap-v3/types.d.ts +0 -15
- package/build/dex/sushiswap-v3/types.js +0 -18
- package/build/dex/sushiswap-v3/types.js.map +0 -1
- package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +0 -12
- package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +0 -23
- package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
- package/build/dex/woo-fi/config.d.ts +0 -4
- package/build/dex/woo-fi/config.js +0 -141
- package/build/dex/woo-fi/config.js.map +0 -1
- package/build/dex/woo-fi/constants.d.ts +0 -5
- package/build/dex/woo-fi/constants.js +0 -20
- package/build/dex/woo-fi/constants.js.map +0 -1
- package/build/dex/woo-fi/types.d.ts +0 -48
- package/build/dex/woo-fi/types.js +0 -3
- package/build/dex/woo-fi/types.js.map +0 -1
- package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +0 -14
- package/build/dex/woo-fi/woo-fi-decimal-math.js +0 -42
- package/build/dex/woo-fi/woo-fi-decimal-math.js.map +0 -1
- package/build/dex/woo-fi/woo-fi-math.d.ts +0 -31
- package/build/dex/woo-fi/woo-fi-math.js +0 -300
- package/build/dex/woo-fi/woo-fi-math.js.map +0 -1
- package/build/dex/woo-fi/woo-fi.d.ts +0 -65
- package/build/dex/woo-fi/woo-fi.js +0 -480
- package/build/dex/woo-fi/woo-fi.js.map +0 -1
- package/build/executor/IExecutorBytecodeBuilder.d.ts +0 -6
- package/build/executor/IExecutorBytecodeBuilder.js +0 -3
- package/build/executor/IExecutorBytecodeBuilder.js.map +0 -1
- package/src/abi/AaveV1_lending_pool.json +0 -27
- package/src/abi/platypus/asset.json +0 -490
- package/src/abi/platypus/avax-pool.json +0 -820
- package/src/abi/platypus/oracle.json +0 -119
- package/src/abi/platypus/pool.json +0 -677
- package/src/abi/smardex/all/smardex-router.json +0 -648
- package/src/abi/smardex/layer-1/smardex-factory.json +0 -242
- package/src/abi/smardex/layer-1/smardex-pool.json +0 -506
- package/src/abi/smardex/layer-2/smardex-factory.json +0 -185
- package/src/abi/smardex/layer-2/smardex-pool.json +0 -578
- package/src/abi/swaap-v1/asset.json +0 -490
- package/src/abi/swaap-v1/oracle.json +0 -119
- package/src/abi/swaap-v1/pool.json +0 -1346
- package/src/dex/aave-v1/aave-v1-e2e.test.ts +0 -105
- package/src/dex/aave-v1/aave-v1-integration.test.ts +0 -100
- package/src/dex/aave-v1/aave-v1.ts +0 -261
- package/src/dex/aave-v1/config.ts +0 -22
- package/src/dex/aave-v1/tokens-mainnet.json +0 -134
- package/src/dex/aave-v1/tokens.ts +0 -58
- package/src/dex/aave-v1/types.ts +0 -24
- package/src/dex/platypus/asset.ts +0 -139
- package/src/dex/platypus/config.ts +0 -72
- package/src/dex/platypus/platypus-e2e.test.ts +0 -168
- package/src/dex/platypus/platypus-events.test.ts +0 -167
- package/src/dex/platypus/platypus-integration.test.ts +0 -256
- package/src/dex/platypus/platypus.ts +0 -639
- package/src/dex/platypus/pool-avax.ts +0 -92
- package/src/dex/platypus/pool-base.ts +0 -155
- package/src/dex/platypus/pool-pure.ts +0 -71
- package/src/dex/platypus/pool-subscriber.ts +0 -239
- package/src/dex/platypus/pool.ts +0 -99
- package/src/dex/platypus/types.ts +0 -104
- package/src/dex/quickswap/spiritswap-v3.ts +0 -19
- package/src/dex/smardex/config.ts +0 -67
- package/src/dex/smardex/constants.ts +0 -35
- package/src/dex/smardex/sdk/constants.ts +0 -10
- package/src/dex/smardex/sdk/core.ts +0 -832
- package/src/dex/smardex/sdk/errors.ts +0 -18
- package/src/dex/smardex/sdk/types.ts +0 -68
- package/src/dex/smardex/sdk/utils.ts +0 -156
- package/src/dex/smardex/smardex-e2e.test.ts +0 -275
- package/src/dex/smardex/smardex-event-pool.ts +0 -164
- package/src/dex/smardex/smardex-events.test.ts +0 -297
- package/src/dex/smardex/smardex-integration.test.ts +0 -258
- package/src/dex/smardex/smardex.ts +0 -770
- package/src/dex/smardex/types.ts +0 -69
- package/src/dex/solidly/forks-override/cone.ts +0 -67
- package/src/dex/solidly/forks-override/solisnek.ts +0 -10
- package/src/dex/swaap-v1/config.ts +0 -62
- package/src/dex/swaap-v1/constants.ts +0 -22
- package/src/dex/swaap-v1/libraries/ChainlinkUtils.ts +0 -152
- package/src/dex/swaap-v1/libraries/Const.ts +0 -29
- package/src/dex/swaap-v1/libraries/GeometricBrownianMotion.ts +0 -433
- package/src/dex/swaap-v1/libraries/LogExpMath.ts +0 -511
- package/src/dex/swaap-v1/libraries/MathMMM.ts +0 -717
- package/src/dex/swaap-v1/libraries/Num.ts +0 -184
- package/src/dex/swaap-v1/libraries/PoolQuotations.ts +0 -322
- package/src/dex/swaap-v1/libraries/Struct.ts +0 -66
- package/src/dex/swaap-v1/swaap-v1-e2e.test.ts +0 -75
- package/src/dex/swaap-v1/swaap-v1-events.test.ts +0 -138
- package/src/dex/swaap-v1/swaap-v1-integration.test.ts +0 -232
- package/src/dex/swaap-v1/swaap-v1-pool.ts +0 -919
- package/src/dex/swaap-v1/swaap-v1.ts +0 -668
- package/src/dex/swaap-v1/types.ts +0 -124
- package/src/dex/uniswap-v2/uniswap-v2-e2e-ropsten.test.ts +0 -481
package/src/dex/smardex/types.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { Address, NumberAsString } from '../../types';
|
|
2
|
-
import {
|
|
3
|
-
UniswapV2Data,
|
|
4
|
-
DexParams as UniswapV2DexParams,
|
|
5
|
-
UniswapPool,
|
|
6
|
-
} from '../uniswap-v2/types';
|
|
7
|
-
import { UniswapV2Pair } from '../uniswap-v2/uniswap-v2';
|
|
8
|
-
import { SmardexEventPool } from './smardex-event-pool';
|
|
9
|
-
|
|
10
|
-
export interface SmardexPoolState extends SmardexFees {
|
|
11
|
-
reserves0: string;
|
|
12
|
-
reserves1: string;
|
|
13
|
-
fictiveReserves0: string;
|
|
14
|
-
fictiveReserves1: string;
|
|
15
|
-
priceAverage0: string;
|
|
16
|
-
priceAverage1: string;
|
|
17
|
-
priceAverageLastTimestamp: number;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// export interface SmardexData extends UniswapV2Data {
|
|
21
|
-
export interface SmardexData extends Omit<UniswapV2Data, 'feeFactor'> {
|
|
22
|
-
deadline: number;
|
|
23
|
-
receiver: Address;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export type SellOnSmardexParam = [
|
|
27
|
-
amountIn: NumberAsString,
|
|
28
|
-
amountOutMin: NumberAsString,
|
|
29
|
-
path: Address[],
|
|
30
|
-
receiver: Address,
|
|
31
|
-
deadline: number,
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
export type BuyOnSmardexParam = [
|
|
35
|
-
amountIn: NumberAsString,
|
|
36
|
-
amountOutMin: NumberAsString,
|
|
37
|
-
path: Address[],
|
|
38
|
-
receiver: Address,
|
|
39
|
-
deadline: number,
|
|
40
|
-
];
|
|
41
|
-
|
|
42
|
-
export type SmardexParam = SellOnSmardexParam | BuyOnSmardexParam;
|
|
43
|
-
|
|
44
|
-
export type DexParams = Omit<UniswapV2DexParams, 'feeCode'>;
|
|
45
|
-
|
|
46
|
-
export type SmardexFees = {
|
|
47
|
-
feesLP: bigint;
|
|
48
|
-
feesPool: bigint;
|
|
49
|
-
};
|
|
50
|
-
export interface SmardexPoolOrderedParams extends SmardexFees {
|
|
51
|
-
fromToken: string;
|
|
52
|
-
toToken: string;
|
|
53
|
-
token0: string;
|
|
54
|
-
token1: string;
|
|
55
|
-
reserves0: bigint;
|
|
56
|
-
reserves1: bigint;
|
|
57
|
-
fictiveReserves0: bigint;
|
|
58
|
-
fictiveReserves1: bigint;
|
|
59
|
-
priceAverage0: bigint;
|
|
60
|
-
priceAverage1: bigint;
|
|
61
|
-
priceAverageLastTimestamp: number;
|
|
62
|
-
exchange: string;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface SmardexPair extends Omit<UniswapV2Pair, 'pool'> {
|
|
66
|
-
pool?: SmardexEventPool;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export type SmardexPool = UniswapPool;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Solidly } from '../solidly';
|
|
2
|
-
import { SolidlyPair } from '../types';
|
|
3
|
-
import { Network } from '../../../constants';
|
|
4
|
-
import { IDexHelper } from '../../../dex-helper';
|
|
5
|
-
import { Interface } from '@ethersproject/abi';
|
|
6
|
-
import { SolidlyConfig } from '../config';
|
|
7
|
-
import { getDexKeysWithNetwork } from '../../../utils';
|
|
8
|
-
import _ from 'lodash';
|
|
9
|
-
|
|
10
|
-
const swapFeeFunctionName = 'swapFee';
|
|
11
|
-
|
|
12
|
-
const ConePairABI = [
|
|
13
|
-
{
|
|
14
|
-
inputs: [],
|
|
15
|
-
name: swapFeeFunctionName,
|
|
16
|
-
outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
|
|
17
|
-
stateMutability: 'view',
|
|
18
|
-
type: 'function',
|
|
19
|
-
},
|
|
20
|
-
];
|
|
21
|
-
|
|
22
|
-
const conePairIface = new Interface(ConePairABI);
|
|
23
|
-
|
|
24
|
-
export class Cone extends Solidly {
|
|
25
|
-
feeFactor = 1e4;
|
|
26
|
-
|
|
27
|
-
public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
|
|
28
|
-
getDexKeysWithNetwork(_.pick(SolidlyConfig, ['Cone']));
|
|
29
|
-
|
|
30
|
-
constructor(
|
|
31
|
-
protected network: Network,
|
|
32
|
-
dexKey: string,
|
|
33
|
-
protected dexHelper: IDexHelper,
|
|
34
|
-
) {
|
|
35
|
-
super(
|
|
36
|
-
network,
|
|
37
|
-
dexKey,
|
|
38
|
-
dexHelper,
|
|
39
|
-
true, // dynamic fees
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
private callDecoder(values: any[]) {
|
|
44
|
-
const fees = parseInt(
|
|
45
|
-
conePairIface
|
|
46
|
-
.decodeFunctionResult(swapFeeFunctionName, values)[0]
|
|
47
|
-
.toString(),
|
|
48
|
-
);
|
|
49
|
-
if (!fees) return 0;
|
|
50
|
-
|
|
51
|
-
// noinspection UnnecessaryLocalVariableJS
|
|
52
|
-
const feeCode = Math.ceil(this.feeFactor / fees);
|
|
53
|
-
return feeCode;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
protected getFeesMultiCallData(pair: SolidlyPair) {
|
|
57
|
-
const callEntry = {
|
|
58
|
-
target: pair.exchange!,
|
|
59
|
-
callData: conePairIface.encodeFunctionData(swapFeeFunctionName, []),
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
return {
|
|
63
|
-
callEntry,
|
|
64
|
-
callDecoder: this.callDecoder.bind(this),
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Velodrome } from './velodrome';
|
|
2
|
-
import { Network } from '../../../constants';
|
|
3
|
-
import { getDexKeysWithNetwork } from '../../../utils';
|
|
4
|
-
import { SolidlyConfig } from '../config';
|
|
5
|
-
import _ from 'lodash';
|
|
6
|
-
|
|
7
|
-
export class SoliSnek extends Velodrome {
|
|
8
|
-
public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
|
|
9
|
-
getDexKeysWithNetwork(_.pick(SolidlyConfig, ['SoliSnek']));
|
|
10
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { DexParams } from './types';
|
|
2
|
-
import { DexConfigMap, AdapterMappings } from '../../types';
|
|
3
|
-
import { Network, SwapSide } from '../../constants';
|
|
4
|
-
|
|
5
|
-
export const MAX_GAS_COST_ESTIMATION = 375 * 1000;
|
|
6
|
-
export const SUBGRAPH_TIMEOUT = 1000 * 10;
|
|
7
|
-
export const MAX_POOL_CNT = 1000;
|
|
8
|
-
export const POOL_CACHE_TTL = 60 * 60; // 1hr
|
|
9
|
-
export const RECCURING_POOL_FETCH_INTERVAL_MS = 12 * 3600 * 1000; // 12h (in ms)
|
|
10
|
-
|
|
11
|
-
export const SwaapV1Config: DexConfigMap<DexParams> = {
|
|
12
|
-
SwaapV1: {
|
|
13
|
-
[Network.POLYGON]: {
|
|
14
|
-
subgraphURL: 'https://api.thegraph.com/subgraphs/name/swaap-labs/swaapv1',
|
|
15
|
-
exchangeProxy: '0x718cc95685a0b0af73c2c8534243039a28687037',
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export const Adapters: {
|
|
21
|
-
[chainId: number]: {
|
|
22
|
-
[side: string]: { name: string; index: number }[] | null;
|
|
23
|
-
};
|
|
24
|
-
} = {
|
|
25
|
-
[Network.POLYGON]: {
|
|
26
|
-
[SwapSide.SELL]: [
|
|
27
|
-
{
|
|
28
|
-
name: 'PolygonAdapter02',
|
|
29
|
-
index: 6,
|
|
30
|
-
},
|
|
31
|
-
],
|
|
32
|
-
[SwapSide.BUY]: [
|
|
33
|
-
{
|
|
34
|
-
name: 'PolygonBuyAdapter',
|
|
35
|
-
index: 4,
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export const SUBGRAPH_FETCH_ALL_POOOLS_RQ = `query ($count: Int) {
|
|
42
|
-
pools: pools(first: $count, orderBy: liquidity, orderDirection: desc, where: {finalized: true}) {
|
|
43
|
-
id
|
|
44
|
-
tokens {
|
|
45
|
-
address
|
|
46
|
-
decimals
|
|
47
|
-
oracleInitialState {
|
|
48
|
-
proxy
|
|
49
|
-
price: fixedPointPrice
|
|
50
|
-
decimals
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
liquidityUSD: liquidity
|
|
54
|
-
swapFee
|
|
55
|
-
dynamicCoverageFeesZ
|
|
56
|
-
dynamicCoverageFeesHorizon
|
|
57
|
-
priceStatisticsLookbackInSec
|
|
58
|
-
priceStatisticsLookbackInRound
|
|
59
|
-
priceStatisticsLookbackStepInRound
|
|
60
|
-
maxPriceUnpegRatio
|
|
61
|
-
}
|
|
62
|
-
}`;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { BigNumber } from '@0x/utils';
|
|
2
|
-
import {
|
|
3
|
-
SwaapV1PoolParameters,
|
|
4
|
-
SwaapV1PoolLiquidities,
|
|
5
|
-
SwaapV1PoolOracles,
|
|
6
|
-
} from './types';
|
|
7
|
-
|
|
8
|
-
export const defaultParametersState: SwaapV1PoolParameters = {
|
|
9
|
-
swapFee: BigInt(10 ** 12),
|
|
10
|
-
priceStatisticsLookbackInRound: 5,
|
|
11
|
-
priceStatisticsLookbackStepInRound: 4,
|
|
12
|
-
dynamicCoverageFeesZ: BigInt(6),
|
|
13
|
-
dynamicCoverageFeesHorizon: BigInt(5),
|
|
14
|
-
priceStatisticsLookbackInSec: BigInt(3600),
|
|
15
|
-
maxPriceUnpegRatio: BigInt(1025000000000000000),
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export const defaultLiquiditiesState: SwaapV1PoolLiquidities = {};
|
|
19
|
-
|
|
20
|
-
export const defaultOraclesState: SwaapV1PoolOracles = {};
|
|
21
|
-
|
|
22
|
-
export const protocolPrecision = new BigNumber(10).pow(new BigNumber(18));
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { Const } from './Const';
|
|
2
|
-
import { Num } from './Num';
|
|
3
|
-
import * as Struct from './Struct';
|
|
4
|
-
import { ChainLinkData } from '../types';
|
|
5
|
-
|
|
6
|
-
const _require = (b: boolean, message: string) => {
|
|
7
|
-
if (!b) throw new Error(message);
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export class ChainlinkUtils {
|
|
11
|
-
static getLatestRound(
|
|
12
|
-
latestRoundId: number,
|
|
13
|
-
historicalPrices: ChainLinkData,
|
|
14
|
-
currentTimestamp: bigint,
|
|
15
|
-
): Struct.LatestRound {
|
|
16
|
-
let latestRoundData = historicalPrices[latestRoundId];
|
|
17
|
-
|
|
18
|
-
let latestPrice = latestRoundData.answer;
|
|
19
|
-
let latestTimestamp = latestRoundData.timestamp;
|
|
20
|
-
|
|
21
|
-
_require(
|
|
22
|
-
currentTimestamp - latestTimestamp <= Const.ORACLE_TIMEOUT,
|
|
23
|
-
'Err.EXCEEDED_ORACLE_TIMEOUT',
|
|
24
|
-
);
|
|
25
|
-
_require(latestPrice > 0, 'Err.NON_POSITIVE_PRICE');
|
|
26
|
-
|
|
27
|
-
return {
|
|
28
|
-
roundId: latestRoundId,
|
|
29
|
-
price: latestPrice,
|
|
30
|
-
timestamp: latestTimestamp,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @notice Retrieves historical data from round id.
|
|
36
|
-
* @dev Special cases:
|
|
37
|
-
* - if retrieved price is negative --> fails
|
|
38
|
-
* - if no data can be found --> returns (0,0)
|
|
39
|
-
* @param oracle The price feed oracle
|
|
40
|
-
* @param _roundId The the round of interest ID
|
|
41
|
-
* @return The round price
|
|
42
|
-
* @return The round timestamp
|
|
43
|
-
*/
|
|
44
|
-
static getRoundData(
|
|
45
|
-
_roundId: number,
|
|
46
|
-
historicalPrices: ChainLinkData,
|
|
47
|
-
): [bigint, bigint] {
|
|
48
|
-
let data = historicalPrices[_roundId];
|
|
49
|
-
|
|
50
|
-
_require(data != undefined, 'Err.UNAVAILABLE_HISTORICAL_PRICE');
|
|
51
|
-
_require(data.answer >= 0, 'Err.NEGATIVE_PRICE');
|
|
52
|
-
|
|
53
|
-
return [data.answer, data.timestamp];
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* @notice Computes the price of token 2 in terms of token 1
|
|
58
|
-
* @param price_1 The latest price data for token 1
|
|
59
|
-
* @param decimals_1 The sum of the decimals of token 1 its oracle
|
|
60
|
-
* @param price_2 The latest price data for token 2
|
|
61
|
-
* @param decimals_2 The sum of the decimals of token 2 its oracle
|
|
62
|
-
* @return The last price of token 2 divded by the last price of token 1
|
|
63
|
-
*/
|
|
64
|
-
static getTokenRelativePrice(
|
|
65
|
-
price_1: bigint,
|
|
66
|
-
decimals_1: bigint,
|
|
67
|
-
price_2: bigint,
|
|
68
|
-
decimals_2: bigint,
|
|
69
|
-
): bigint {
|
|
70
|
-
// we consider tokens price to be > 0
|
|
71
|
-
if (decimals_1 > decimals_2) {
|
|
72
|
-
return Num.div(
|
|
73
|
-
Num.mul(price_2, 10n ** (decimals_1 - decimals_2) * Const.ONE),
|
|
74
|
-
price_1,
|
|
75
|
-
);
|
|
76
|
-
} else if (decimals_1 < decimals_2) {
|
|
77
|
-
return Num.div(
|
|
78
|
-
Num.div(price_2, price_1),
|
|
79
|
-
10n ** (decimals_2 - decimals_1) * Const.ONE,
|
|
80
|
-
);
|
|
81
|
-
} else {
|
|
82
|
-
// decimals_1 == decimals_2
|
|
83
|
-
return Num.div(price_2, price_1);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* @notice Computes the previous price of tokenIn in terms of tokenOut 's upper bound
|
|
89
|
-
* @param latestRound_1 The token_1's latest round
|
|
90
|
-
* @param decimals_1 The sum of the decimals of token 1 its oracle
|
|
91
|
-
* @param latestRound_2 The token_2's latest round
|
|
92
|
-
* @param decimals_2 The sum of the decimals of token 2 its oracle
|
|
93
|
-
* @return The ratio of token 2 and token 1 values if well defined, else 0
|
|
94
|
-
*/
|
|
95
|
-
/*
|
|
96
|
-
static getMaxRelativePriceInLastBlock(
|
|
97
|
-
latestRound_1: Struct.LatestRound,
|
|
98
|
-
decimals_1: bigint,
|
|
99
|
-
latestRound_2: Struct.LatestRound,
|
|
100
|
-
decimals_2: bigint,
|
|
101
|
-
// historicalPricesIn: ChainLinkData,
|
|
102
|
-
// historicalPricesOut: ChainLinkData,
|
|
103
|
-
// currentTimestamp: bigint
|
|
104
|
-
): bigint {
|
|
105
|
-
let minPrice_1 = latestRound_1.price;
|
|
106
|
-
|
|
107
|
-
let timestamp_1 = latestRound_1.timestamp;
|
|
108
|
-
let temp_price_1;
|
|
109
|
-
let roundId_1 = latestRound_1.roundId;
|
|
110
|
-
// let oracle_1 = latestRound_1.oracle;
|
|
111
|
-
|
|
112
|
-
while (timestamp_1 == currentTimestamp) {
|
|
113
|
-
--roundId_1;
|
|
114
|
-
let [temp_price_1, timestamp_1] = ChainlinkUtils.getRoundData(
|
|
115
|
-
roundId_1, historicalPricesIn
|
|
116
|
-
);
|
|
117
|
-
if (temp_price_1 == 0n) {
|
|
118
|
-
return 0n;
|
|
119
|
-
}
|
|
120
|
-
if (temp_price_1 < minPrice_1) {
|
|
121
|
-
minPrice_1 = temp_price_1;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
let maxPrice_2 = latestRound_2.price;
|
|
126
|
-
|
|
127
|
-
let timestamp_2 = latestRound_2.timestamp;
|
|
128
|
-
let temp_price_2;
|
|
129
|
-
let roundId_2 = latestRound_2.roundId;
|
|
130
|
-
|
|
131
|
-
while (timestamp_2 == currentTimestamp) {
|
|
132
|
-
--roundId_2;
|
|
133
|
-
let [temp_price_2, timestamp_2] = ChainlinkUtils.getRoundData(
|
|
134
|
-
roundId_2, historicalPricesOut
|
|
135
|
-
);
|
|
136
|
-
if (temp_price_2 == 0n) {
|
|
137
|
-
return 0n;
|
|
138
|
-
}
|
|
139
|
-
if (temp_price_2 > maxPrice_2) {
|
|
140
|
-
maxPrice_2 = temp_price_2;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return ChainlinkUtils.getTokenRelativePrice(
|
|
145
|
-
minPrice_1,
|
|
146
|
-
decimals_1,
|
|
147
|
-
maxPrice_2,
|
|
148
|
-
decimals_2,
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
*/
|
|
152
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { BI_POWS } from '../../../bigint-constants';
|
|
2
|
-
|
|
3
|
-
export class Const {
|
|
4
|
-
static ONE = BI_POWS[18];
|
|
5
|
-
|
|
6
|
-
static MIN_POW_BASE = 1n;
|
|
7
|
-
static MAX_POW_BASE = 2n * this.ONE - 1n;
|
|
8
|
-
|
|
9
|
-
static POW_PRECISION = this.ONE / 10n ** 10n;
|
|
10
|
-
|
|
11
|
-
static ORACLE_TIMEOUT = 2n * 60n;
|
|
12
|
-
|
|
13
|
-
static MIN_FEE = this.ONE / 10n ** 6n;
|
|
14
|
-
static EXIT_FEE = 0n;
|
|
15
|
-
|
|
16
|
-
static BASE_Z = 6n * this.ONE;
|
|
17
|
-
static BASE_HORIZON = 5n * this.ONE;
|
|
18
|
-
|
|
19
|
-
static BASE_LOOKBACK_IN_ROUND = 5;
|
|
20
|
-
static BASE_LOOKBACK_IN_SEC = 3600n;
|
|
21
|
-
static LOOKBACK_STEP_IN_ROUND = 4;
|
|
22
|
-
|
|
23
|
-
static MAX_IN_RATIO = this.ONE / 2n;
|
|
24
|
-
static MAX_OUT_RATIO = this.ONE / 3n + 1n;
|
|
25
|
-
|
|
26
|
-
static FALLBACK_SPREAD = (3n * this.ONE) / 1000n;
|
|
27
|
-
|
|
28
|
-
static BASE_MAX_PRICE_UNPEG_RATIO = this.ONE + this.ONE / 40n;
|
|
29
|
-
}
|