@paraswap/dex-lib 3.6.1 → 3.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/launch.json +53 -0
- package/.vscode/settings.json +2 -0
- package/.vscode/tasks.json +15 -0
- package/build/abi/maverick-v2/MaverickV2Pool.json +1234 -0
- package/build/abi/maverick-v2/MaverickV2PoolLens.json +1232 -0
- package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
- package/build/abi/{integral/relayer.json → wombat/pool.json} +587 -446
- package/build/dex/maker-psm/maker-psm.js +1 -1
- package/build/dex/maker-psm/maker-psm.js.map +1 -1
- package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
- package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
- package/build/dex/maker-psm/scripts/validate-state.js +185 -0
- package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
- package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
- package/build/dex/maverick-v2/config.d.ts +6 -0
- package/build/dex/maverick-v2/config.js +21 -0
- package/build/dex/maverick-v2/config.js.map +1 -0
- package/build/dex/maverick-v2/maverick-math/maverick-basic-math.d.ts +24 -0
- package/build/dex/maverick-v2/maverick-math/maverick-basic-math.js +117 -0
- package/build/dex/maverick-v2/maverick-math/maverick-basic-math.js.map +1 -0
- package/build/dex/maverick-v2/maverick-math/maverick-bin-math.d.ts +17 -0
- package/build/dex/maverick-v2/maverick-math/maverick-bin-math.js +114 -0
- package/build/dex/maverick-v2/maverick-math/maverick-bin-math.js.map +1 -0
- package/build/dex/maverick-v2/maverick-math/maverick-delta-math.d.ts +19 -0
- package/build/dex/maverick-v2/maverick-math/maverick-delta-math.js +20 -0
- package/build/dex/maverick-v2/maverick-math/maverick-delta-math.js.map +1 -0
- package/build/dex/maverick-v2/maverick-math/maverick-math.d.ts +5 -0
- package/build/dex/maverick-v2/maverick-math/maverick-math.js +33 -0
- package/build/dex/maverick-v2/maverick-math/maverick-math.js.map +1 -0
- package/build/dex/maverick-v2/maverick-math/maverick-pool-lib.d.ts +6 -0
- package/build/dex/maverick-v2/maverick-math/maverick-pool-lib.js +24 -0
- package/build/dex/maverick-v2/maverick-math/maverick-pool-lib.js.map +1 -0
- package/build/dex/maverick-v2/maverick-math/maverick-pool-math.d.ts +37 -0
- package/build/dex/maverick-v2/maverick-math/maverick-pool-math.js +440 -0
- package/build/dex/maverick-v2/maverick-math/maverick-pool-math.js.map +1 -0
- package/build/dex/maverick-v2/maverick-math/maverick-swap-math.d.ts +9 -0
- package/build/dex/maverick-v2/maverick-math/maverick-swap-math.js +102 -0
- package/build/dex/maverick-v2/maverick-math/maverick-swap-math.js.map +1 -0
- package/build/dex/maverick-v2/maverick-math/maverick-tick-math.d.ts +8 -0
- package/build/dex/maverick-v2/maverick-math/maverick-tick-math.js +109 -0
- package/build/dex/maverick-v2/maverick-math/maverick-tick-math.js.map +1 -0
- package/build/dex/maverick-v2/maverick-math/maverick-twa-math.d.ts +7 -0
- package/build/dex/maverick-v2/maverick-math/maverick-twa-math.js +35 -0
- package/build/dex/maverick-v2/maverick-math/maverick-twa-math.js.map +1 -0
- package/build/dex/maverick-v2/maverick-v2-pool.d.ts +57 -0
- package/build/dex/maverick-v2/maverick-v2-pool.js +184 -0
- package/build/dex/maverick-v2/maverick-v2-pool.js.map +1 -0
- package/build/dex/maverick-v2/maverick-v2.d.ts +47 -0
- package/build/dex/maverick-v2/maverick-v2.js +294 -0
- package/build/dex/maverick-v2/maverick-v2.js.map +1 -0
- package/build/dex/maverick-v2/types.d.ts +144 -0
- package/build/dex/{woo-fi → maverick-v2}/types.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.js +1 -8
- package/build/dex/stable-pool.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/package.json +1 -1
- package/src/dex/maker-psm/maker-psm.ts +2 -3
- package/src/dex/maker-psm/scripts/gem.abi.json +136 -0
- package/src/dex/maker-psm/scripts/validate-state.ts +221 -0
- package/src/dex/maker-psm/scripts/vat.abi.json +243 -0
- 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/curve-v1-factory/price-handlers/functions/get_dx.d.ts +0 -4
- package/build/dex/curve-v1-factory/price-handlers/functions/get_dx.js +0 -80
- package/build/dex/curve-v1-factory/price-handlers/functions/get_dx.js.map +0 -1
- package/build/dex/curve-v1-stable-ng/config.d.ts +0 -5
- package/build/dex/curve-v1-stable-ng/config.js +0 -268
- package/build/dex/curve-v1-stable-ng/config.js.map +0 -1
- package/build/dex/curve-v1-stable-ng/curve-v1-stable-ng.d.ts +0 -18
- package/build/dex/curve-v1-stable-ng/curve-v1-stable-ng.js +0 -23
- package/build/dex/curve-v1-stable-ng/curve-v1-stable-ng.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.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/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/build/dex/{lighter-v1 → maverick-v2}/types.js +0 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.MaverickV2 = void 0;
|
|
30
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
31
|
+
const constants_1 = require("../../constants");
|
|
32
|
+
const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
|
|
33
|
+
const utils_1 = require("../../utils");
|
|
34
|
+
const simple_exchange_1 = require("../simple-exchange");
|
|
35
|
+
const config_1 = require("./config");
|
|
36
|
+
const maverick_v2_pool_1 = require("./maverick-v2-pool");
|
|
37
|
+
const constants_2 = require("../../constants");
|
|
38
|
+
const abi_1 = require("@ethersproject/abi");
|
|
39
|
+
const MaverickV2Pool_json_1 = __importDefault(require("../../abi/maverick-v2/MaverickV2Pool.json"));
|
|
40
|
+
const erc20_json_1 = __importDefault(require("../../abi/erc20.json"));
|
|
41
|
+
const utils_2 = require("../../executor/utils");
|
|
42
|
+
const EFFICIENCY_FACTOR = 3;
|
|
43
|
+
class MaverickV2 extends simple_exchange_1.SimpleExchange {
|
|
44
|
+
constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}, // TODO: add any additional optional params to support other fork DEXes
|
|
45
|
+
config = config_1.MaverickV2Config[dexKey][network], maverickV2Iface = new abi_1.Interface(MaverickV2Pool_json_1.default)) {
|
|
46
|
+
super(dexHelper, dexKey);
|
|
47
|
+
this.network = network;
|
|
48
|
+
this.dexKey = dexKey;
|
|
49
|
+
this.dexHelper = dexHelper;
|
|
50
|
+
this.adapters = adapters;
|
|
51
|
+
this.config = config;
|
|
52
|
+
this.maverickV2Iface = maverickV2Iface;
|
|
53
|
+
this.pools = {};
|
|
54
|
+
this.hasConstantPriceLargeAmounts = false;
|
|
55
|
+
this.needWrapNative = true;
|
|
56
|
+
this.isFeeOnTransferSupported = false;
|
|
57
|
+
this.logger = dexHelper.getLogger(dexKey);
|
|
58
|
+
}
|
|
59
|
+
async initializePricing(blockNumber) {
|
|
60
|
+
await this.setupEventPools(blockNumber);
|
|
61
|
+
}
|
|
62
|
+
async setupEventPools(blockNumber) {
|
|
63
|
+
const pools = (await this._queryPoolsAPI(constants_2.SUBGRAPH_TIMEOUT))?.pools;
|
|
64
|
+
await Promise.all(pools?.map(async (pool) => {
|
|
65
|
+
const eventPool = new maverick_v2_pool_1.MaverickV2EventPool(this.dexKey, this.network, this.dexHelper, this.logger, {
|
|
66
|
+
address: pool.tokenA.address,
|
|
67
|
+
symbol: pool.tokenA.symbol,
|
|
68
|
+
decimals: pool.tokenA.decimals,
|
|
69
|
+
}, {
|
|
70
|
+
address: pool.tokenB.address,
|
|
71
|
+
symbol: pool.tokenB.symbol,
|
|
72
|
+
decimals: pool.tokenB.decimals,
|
|
73
|
+
}, pool.fee * 1e4 * 1e14, pool.feeB * 1e4 * 1e14, pool.tickSpacing, 0, pool.lookback, pool.lowerTick, pool.id, this.config.poolLensAddress);
|
|
74
|
+
const onChainState = await eventPool.generateState(blockNumber);
|
|
75
|
+
if (blockNumber) {
|
|
76
|
+
eventPool.setState(onChainState, blockNumber);
|
|
77
|
+
this.dexHelper.blockManager.subscribeToLogs(eventPool, eventPool.addressesSubscribed, blockNumber);
|
|
78
|
+
}
|
|
79
|
+
this.pools[eventPool.address] = eventPool;
|
|
80
|
+
}) || []);
|
|
81
|
+
}
|
|
82
|
+
// Returns the list of contract adapters (name and index)
|
|
83
|
+
// for a buy/sell. Return null if there are no adapters.
|
|
84
|
+
getAdapters(side) {
|
|
85
|
+
return this.adapters[side] ? this.adapters[side] : null;
|
|
86
|
+
}
|
|
87
|
+
async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
|
|
88
|
+
const from = this.dexHelper.config.wrapETH(srcToken);
|
|
89
|
+
const to = this.dexHelper.config.wrapETH(destToken);
|
|
90
|
+
if (from.address.toLowerCase() === to.address.toLowerCase()) {
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
const pools = await this.getPools(from, to);
|
|
94
|
+
return pools.map((pool) => `${this.dexKey}_${pool.address.toLowerCase()}`);
|
|
95
|
+
}
|
|
96
|
+
async getPools(srcToken, destToken) {
|
|
97
|
+
return Object.values(this.pools).filter((pool) => {
|
|
98
|
+
return ((pool.tokenA.address.toLowerCase() == srcToken.address.toLowerCase() ||
|
|
99
|
+
pool.tokenA.address.toLowerCase() ==
|
|
100
|
+
destToken.address.toLowerCase()) &&
|
|
101
|
+
(pool.tokenB.address.toLowerCase() == srcToken.address.toLowerCase() ||
|
|
102
|
+
pool.tokenB.address.toLowerCase() == destToken.address.toLowerCase()));
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
|
|
106
|
+
try {
|
|
107
|
+
const from = this.dexHelper.config.wrapETH(srcToken);
|
|
108
|
+
const to = this.dexHelper.config.wrapETH(destToken);
|
|
109
|
+
if (from.address.toLowerCase() === to.address.toLowerCase()) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
const allPools = await this.getPools(from, to);
|
|
113
|
+
const allowedPools = limitPools
|
|
114
|
+
? allPools.filter(pool => limitPools.includes(`${this.dexKey}_${pool.address.toLowerCase()}`))
|
|
115
|
+
: allPools;
|
|
116
|
+
if (!allowedPools.length)
|
|
117
|
+
return null;
|
|
118
|
+
const unitAmount = (0, utils_1.getBigIntPow)(side == constants_1.SwapSide.BUY ? to.decimals : from.decimals);
|
|
119
|
+
return (await Promise.all(allowedPools.map(async (pool) => {
|
|
120
|
+
try {
|
|
121
|
+
let state = pool.getState(blockNumber);
|
|
122
|
+
if (state === null) {
|
|
123
|
+
state = await pool.generateState(blockNumber);
|
|
124
|
+
pool.setState(state, blockNumber);
|
|
125
|
+
}
|
|
126
|
+
if (state === null) {
|
|
127
|
+
this.logger.debug(`Received null state for pool ${pool.address}`);
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
const [unit] = pool.swap(unitAmount, from, to, side == constants_1.SwapSide.BUY);
|
|
131
|
+
// We stop iterating if it becomes 0n at some point
|
|
132
|
+
let lastOutput = 1n;
|
|
133
|
+
let dataList = await Promise.all(amounts.map(amount => {
|
|
134
|
+
if (amount === 0n) {
|
|
135
|
+
return [0n, 0];
|
|
136
|
+
}
|
|
137
|
+
// We don't want to proceed with calculations if lower amount was not fillable
|
|
138
|
+
if (lastOutput === 0n) {
|
|
139
|
+
return [0n, 0];
|
|
140
|
+
}
|
|
141
|
+
const output = pool.swap(amount, from, to, side == constants_1.SwapSide.BUY);
|
|
142
|
+
lastOutput = output[0];
|
|
143
|
+
return output;
|
|
144
|
+
}));
|
|
145
|
+
let prices = dataList.map(d => d[0]);
|
|
146
|
+
let gasCosts = dataList.map(([d, t]) => {
|
|
147
|
+
if (d == 0n)
|
|
148
|
+
return 0;
|
|
149
|
+
return config_1.MAV_V2_BASE_GAS_COST + config_1.MAV_V2_TICK_GAS_COST * t;
|
|
150
|
+
});
|
|
151
|
+
return {
|
|
152
|
+
prices: prices,
|
|
153
|
+
unit: BigInt(unit),
|
|
154
|
+
data: {
|
|
155
|
+
pool: pool.address,
|
|
156
|
+
tokenA: pool.tokenA.address,
|
|
157
|
+
tokenB: pool.tokenB.address,
|
|
158
|
+
activeTick: state.activeTick,
|
|
159
|
+
},
|
|
160
|
+
exchange: this.dexKey,
|
|
161
|
+
poolIdentifier: pool.name,
|
|
162
|
+
gasCost: gasCosts,
|
|
163
|
+
poolAddresses: [pool.address],
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
catch (e) {
|
|
167
|
+
this.logger.debug(`Failed to get prices for pool ${pool.address}, from=${from.address}, to=${to.address}`, e);
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
}))).filter(utils_1.isTruthy);
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
this.logger.error(`Error_getPricesVolume ${srcToken.symbol || srcToken.address}, ${destToken.symbol || destToken.address}, ${side}:`, e);
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Returns estimated gas cost of calldata for this DEX in multiSwap
|
|
178
|
+
getCalldataGasCost(poolPrices) {
|
|
179
|
+
const gasCost = CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
|
|
180
|
+
const arr = new Array(poolPrices.prices.length);
|
|
181
|
+
poolPrices.prices.forEach((p, index) => {
|
|
182
|
+
if (p == 0n) {
|
|
183
|
+
arr[index] = 0;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
arr[index] = gasCost;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
return arr;
|
|
190
|
+
}
|
|
191
|
+
// Encode params required by the exchange adapter
|
|
192
|
+
// Used for multiSwap, buy & megaSwap
|
|
193
|
+
// Hint: abiCoder.encodeParameter() could be useful
|
|
194
|
+
getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
195
|
+
const { pool } = data;
|
|
196
|
+
const payload = this.abiCoder.encodeParameter({
|
|
197
|
+
ParentStruct: {
|
|
198
|
+
pool: 'address',
|
|
199
|
+
},
|
|
200
|
+
}, {
|
|
201
|
+
pool,
|
|
202
|
+
});
|
|
203
|
+
return {
|
|
204
|
+
targetExchange: data.pool,
|
|
205
|
+
payload,
|
|
206
|
+
networkFee: '0',
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, _, executorAddress) {
|
|
210
|
+
const { pool } = data;
|
|
211
|
+
const exchangeData = this.maverickV2Iface.encodeFunctionData('swap', [
|
|
212
|
+
recipient,
|
|
213
|
+
{
|
|
214
|
+
amount: side === constants_1.SwapSide.SELL ? srcAmount : destAmount,
|
|
215
|
+
tokenAIn: data.tokenA.toLowerCase() === srcToken.toLowerCase(),
|
|
216
|
+
exactOutput: side === constants_1.SwapSide.BUY,
|
|
217
|
+
tickLimit: data.tokenA.toLowerCase() === srcToken.toLowerCase()
|
|
218
|
+
? data.activeTick + 100n
|
|
219
|
+
: data.activeTick - 100n,
|
|
220
|
+
},
|
|
221
|
+
'0x',
|
|
222
|
+
]);
|
|
223
|
+
return {
|
|
224
|
+
needWrapNative: this.needWrapNative,
|
|
225
|
+
transferSrcTokenBeforeSwap: pool,
|
|
226
|
+
// skipApproval: true,
|
|
227
|
+
targetExchange: pool,
|
|
228
|
+
dexFuncHasRecipient: true,
|
|
229
|
+
exchangeData,
|
|
230
|
+
returnAmountPos: side === constants_1.SwapSide.SELL
|
|
231
|
+
? (0, utils_2.extractReturnAmountPosition)(this.maverickV2Iface, 'swap', 'amountOut')
|
|
232
|
+
: undefined,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
// This is called once before getTopPoolsForToken is
|
|
236
|
+
// called for multiple tokens. This can be helpful to
|
|
237
|
+
// update common state required for calculating
|
|
238
|
+
// getTopPoolsForToken. It is optional for a DEX
|
|
239
|
+
// to implement this
|
|
240
|
+
async updatePoolState() {
|
|
241
|
+
return Promise.resolve();
|
|
242
|
+
}
|
|
243
|
+
// Returns list of top pools based on liquidity. Max
|
|
244
|
+
// limit number pools should be returned.
|
|
245
|
+
async getTopPoolsForToken(tokenAddress, limit) {
|
|
246
|
+
const _tokenAddress = tokenAddress.toLowerCase();
|
|
247
|
+
const res = await this._queryPoolsAPI(constants_2.SUBGRAPH_TIMEOUT);
|
|
248
|
+
if (!(res && res.pools)) {
|
|
249
|
+
this.logger.error(`Error_${this.dexKey}_Subgraph: couldn't fetch the pools from the subgraph`);
|
|
250
|
+
return [];
|
|
251
|
+
}
|
|
252
|
+
const filteredPools = lodash_1.default.filter(res.pools, pool => {
|
|
253
|
+
return (pool.tokenA.address.toLowerCase() === _tokenAddress ||
|
|
254
|
+
pool.tokenB.address.toLowerCase() === _tokenAddress);
|
|
255
|
+
});
|
|
256
|
+
const labeledPools = lodash_1.default.map(filteredPools, pool => {
|
|
257
|
+
let token = pool.tokenA.address.toLowerCase() === _tokenAddress
|
|
258
|
+
? pool.tokenB
|
|
259
|
+
: pool.tokenA;
|
|
260
|
+
return {
|
|
261
|
+
exchange: this.dexKey,
|
|
262
|
+
address: pool.id.toLowerCase(),
|
|
263
|
+
connectorTokens: [
|
|
264
|
+
{
|
|
265
|
+
address: token.address.toLowerCase(),
|
|
266
|
+
decimals: token.decimals,
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
liquidityUSD: pool.tvl.amount * EFFICIENCY_FACTOR,
|
|
270
|
+
};
|
|
271
|
+
});
|
|
272
|
+
const pools = lodash_1.default.slice(lodash_1.default.sortBy(labeledPools, [pool => -1 * pool.liquidityUSD]), 0, limit);
|
|
273
|
+
return pools;
|
|
274
|
+
}
|
|
275
|
+
// This is optional function in case if your implementation has acquired any resources
|
|
276
|
+
// you need to release for graceful shutdown. For example, it may be any interval timer
|
|
277
|
+
releaseResources() {
|
|
278
|
+
// TODO: complete me!
|
|
279
|
+
}
|
|
280
|
+
async _queryPoolsAPI(timeout = 30000) {
|
|
281
|
+
try {
|
|
282
|
+
const res = await this.dexHelper.httpRequest.get(`${this.config.apiURL}/api/v5/poolsNoBins/${this.network}`, timeout);
|
|
283
|
+
return res;
|
|
284
|
+
}
|
|
285
|
+
catch (e) {
|
|
286
|
+
this.logger.error(`${this.dexKey}: can not query subgraph: `, e);
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
exports.MaverickV2 = MaverickV2;
|
|
292
|
+
MaverickV2.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.MaverickV2Config);
|
|
293
|
+
MaverickV2.erc20Interface = new abi_1.Interface(erc20_json_1.default);
|
|
294
|
+
//# sourceMappingURL=maverick-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maverick-v2.js","sourceRoot":"","sources":["../../../src/dex/maverick-v2/maverick-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { Address, NumberAsString } from '../../types';
|
|
2
|
+
export declare type Bin = {
|
|
3
|
+
mergeBinBalance: bigint;
|
|
4
|
+
mergeId: bigint;
|
|
5
|
+
totalSupply: bigint;
|
|
6
|
+
kind: bigint;
|
|
7
|
+
tick: bigint;
|
|
8
|
+
tickBalance: bigint;
|
|
9
|
+
};
|
|
10
|
+
export declare type BinDelta = {
|
|
11
|
+
deltaA: bigint;
|
|
12
|
+
deltaB: bigint;
|
|
13
|
+
};
|
|
14
|
+
export declare type TickData = {
|
|
15
|
+
currentReserveA: bigint;
|
|
16
|
+
currentReserveB: bigint;
|
|
17
|
+
currentLiquidity: bigint;
|
|
18
|
+
};
|
|
19
|
+
export declare type AddLiquidityInfo = {
|
|
20
|
+
deltaA: bigint;
|
|
21
|
+
deltaB: bigint;
|
|
22
|
+
tickLtActive: boolean;
|
|
23
|
+
tickSpacing: bigint;
|
|
24
|
+
tick: bigint;
|
|
25
|
+
};
|
|
26
|
+
export declare type MoveData = {
|
|
27
|
+
kind: bigint;
|
|
28
|
+
tickSearchStart: bigint;
|
|
29
|
+
tickSearchEnd: bigint;
|
|
30
|
+
tickLimit: bigint;
|
|
31
|
+
firstBinTick: bigint;
|
|
32
|
+
firstBinId: bigint;
|
|
33
|
+
mergeBinBalance: bigint;
|
|
34
|
+
totalReserveA: bigint;
|
|
35
|
+
totalReserveB: bigint;
|
|
36
|
+
mergeBins: {
|
|
37
|
+
[id: string]: bigint;
|
|
38
|
+
};
|
|
39
|
+
counter: bigint;
|
|
40
|
+
};
|
|
41
|
+
export declare type Tick = {
|
|
42
|
+
reserveA: bigint;
|
|
43
|
+
reserveB: bigint;
|
|
44
|
+
totalSupply: bigint;
|
|
45
|
+
binIdsByTick: {
|
|
46
|
+
[id: string]: bigint;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export declare type RemoveLiquidityParams = {
|
|
50
|
+
binIds: bigint[];
|
|
51
|
+
amounts: bigint[];
|
|
52
|
+
};
|
|
53
|
+
export declare type AddLiquidityParams = {
|
|
54
|
+
ticks: bigint[];
|
|
55
|
+
amounts: bigint[];
|
|
56
|
+
kind: bigint;
|
|
57
|
+
};
|
|
58
|
+
export declare type PoolState = {
|
|
59
|
+
activeTick: bigint;
|
|
60
|
+
binCounter: bigint;
|
|
61
|
+
reserveA: bigint;
|
|
62
|
+
reserveB: bigint;
|
|
63
|
+
lastTwaD8: bigint;
|
|
64
|
+
lastLogPriceD8: bigint;
|
|
65
|
+
lastTimestamp: bigint;
|
|
66
|
+
bins: {
|
|
67
|
+
[id: string]: Bin;
|
|
68
|
+
};
|
|
69
|
+
ticks: {
|
|
70
|
+
[id: string]: Tick;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
export interface SubgraphToken {
|
|
74
|
+
id: string;
|
|
75
|
+
symbol: string;
|
|
76
|
+
name: string;
|
|
77
|
+
}
|
|
78
|
+
export interface SubgraphPoolBase {
|
|
79
|
+
id: string;
|
|
80
|
+
tickSpacing: number;
|
|
81
|
+
fee: number;
|
|
82
|
+
lookback: number;
|
|
83
|
+
protocolFeeRatio: number;
|
|
84
|
+
tokenA: SubgraphToken;
|
|
85
|
+
tokenB: SubgraphToken;
|
|
86
|
+
}
|
|
87
|
+
export declare type MaverickV2Data = {
|
|
88
|
+
pool: Address;
|
|
89
|
+
tokenA: Address;
|
|
90
|
+
tokenB: Address;
|
|
91
|
+
activeTick: bigint;
|
|
92
|
+
};
|
|
93
|
+
export interface SubgraphPoolBase {
|
|
94
|
+
id: string;
|
|
95
|
+
tickSpacing: number;
|
|
96
|
+
feeAIn: number;
|
|
97
|
+
feeBIn: number;
|
|
98
|
+
lookback: number;
|
|
99
|
+
protocolFeeRatio: number;
|
|
100
|
+
tokenA: SubgraphToken;
|
|
101
|
+
tokenB: SubgraphToken;
|
|
102
|
+
}
|
|
103
|
+
declare type SwapParams = {
|
|
104
|
+
amount: NumberAsString;
|
|
105
|
+
tokenAIn: boolean;
|
|
106
|
+
exactOutput: boolean;
|
|
107
|
+
tickLimit: NumberAsString;
|
|
108
|
+
};
|
|
109
|
+
export declare type MaverickV2Param = {
|
|
110
|
+
recipient: Address;
|
|
111
|
+
params: SwapParams;
|
|
112
|
+
data: string;
|
|
113
|
+
};
|
|
114
|
+
export declare type DexParams = {
|
|
115
|
+
poolLensAddress: string;
|
|
116
|
+
apiURL: string;
|
|
117
|
+
quoterAddress: string;
|
|
118
|
+
};
|
|
119
|
+
export declare type PoolAPIResponse = {
|
|
120
|
+
pools: {
|
|
121
|
+
fee: number;
|
|
122
|
+
feeB: number;
|
|
123
|
+
lookback: number;
|
|
124
|
+
lowerTick: number;
|
|
125
|
+
tickSpacing: number;
|
|
126
|
+
id: string;
|
|
127
|
+
tokenA: {
|
|
128
|
+
name: string;
|
|
129
|
+
symbol: string;
|
|
130
|
+
address: string;
|
|
131
|
+
decimals: number;
|
|
132
|
+
};
|
|
133
|
+
tokenB: {
|
|
134
|
+
name: string;
|
|
135
|
+
symbol: string;
|
|
136
|
+
address: string;
|
|
137
|
+
decimals: number;
|
|
138
|
+
};
|
|
139
|
+
tvl: {
|
|
140
|
+
amount: number;
|
|
141
|
+
};
|
|
142
|
+
}[];
|
|
143
|
+
};
|
|
144
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/maverick-v2/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint-disable no-console */
|
|
7
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
8
|
+
dotenv_1.default.config();
|
|
9
|
+
const constants_1 = require("../../../constants");
|
|
10
|
+
const dex_helper_1 = require("../../../dex-helper");
|
|
11
|
+
const config_1 = require("./../config");
|
|
12
|
+
const solidly_v3_1 = require("../solidly-v3");
|
|
13
|
+
const dex = 'SolidlyV3';
|
|
14
|
+
const factory = config_1.SolidlyV3Config[dex][constants_1.Network.MAINNET].factory;
|
|
15
|
+
const blockHeaders = {};
|
|
16
|
+
async function checkForPoolEvents(startBlockNumber, endBlockNumber) {
|
|
17
|
+
const network = constants_1.Network.MAINNET;
|
|
18
|
+
const dexHelper = new dex_helper_1.DummyDexHelper(network);
|
|
19
|
+
const solidlyV3 = new solidly_v3_1.SolidlyV3(network, dex, dexHelper);
|
|
20
|
+
await solidlyV3.initializePricing(startBlockNumber);
|
|
21
|
+
const logsToDispatch = await dexHelper.provider.getLogs({
|
|
22
|
+
fromBlock: startBlockNumber,
|
|
23
|
+
toBlock: endBlockNumber,
|
|
24
|
+
address: factory,
|
|
25
|
+
});
|
|
26
|
+
const logsByBlockNumber = {};
|
|
27
|
+
for (let log of logsToDispatch) {
|
|
28
|
+
if (!logsByBlockNumber[log.blockNumber]) {
|
|
29
|
+
logsByBlockNumber[log.blockNumber] = [];
|
|
30
|
+
}
|
|
31
|
+
logsByBlockNumber[log.blockNumber].push(log);
|
|
32
|
+
}
|
|
33
|
+
const sortedBlocks = Object.keys(logsByBlockNumber)
|
|
34
|
+
.map(Number)
|
|
35
|
+
.sort((a, b) => Number(a) - Number(b));
|
|
36
|
+
for (let blockNumber of sortedBlocks) {
|
|
37
|
+
if (!blockHeaders[blockNumber]) {
|
|
38
|
+
blockHeaders[blockNumber] = await dexHelper.web3Provider.eth.getBlock(blockNumber);
|
|
39
|
+
}
|
|
40
|
+
await solidlyV3.factory?.update(logsByBlockNumber[blockNumber], {
|
|
41
|
+
[blockNumber]: blockHeaders[blockNumber],
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
async function main() {
|
|
47
|
+
// event for https://etherscan.io/tx/0x2bef7c17f3f775525f076aeb20567ee25eb820e92aa8422fbfe4bed652fd2bd3
|
|
48
|
+
checkForPoolEvents(18758010, 18758019);
|
|
49
|
+
}
|
|
50
|
+
main()
|
|
51
|
+
.then(() => console.log('Done'))
|
|
52
|
+
.catch(e => console.error(e));
|
|
53
|
+
//# sourceMappingURL=check-event-pool-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-event-pool-event.js","sourceRoot":"","sources":["../../../../src/dex/solidly-v3/scripts/check-event-pool-event.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAIhB,kDAA6C;AAC7C,oDAAqD;AACrD,wCAA8C;AAC9C,8CAA0C;AAE1C,MAAM,GAAG,GAAG,WAAW,CAAC;AACxB,MAAM,OAAO,GAAG,wBAAe,CAAC,GAAG,CAAC,CAAC,mBAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AAC9D,MAAM,YAAY,GAAgC,EAAE,CAAC;AAErD,KAAK,UAAU,kBAAkB,CAC/B,gBAAwB,EACxB,cAAsB;IAEtB,MAAM,OAAO,GAAG,mBAAO,CAAC,OAAO,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,2BAAc,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEpD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtD,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAA0B,EAAE,CAAC;IACpD,KAAK,IAAI,GAAG,IAAI,cAAc,EAAE;QAC9B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACvC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;SACzC;QACD,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9C;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAChD,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YAC9B,YAAY,CAAC,WAAW,CAAC,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CACnE,WAAW,CACZ,CAAC;SACH;QAED,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YAC9D,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC;SACzC,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,uGAAuG;IACvG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/build/dex/stable-pool.js
CHANGED
|
@@ -51,12 +51,5 @@ class StablePool extends simple_exchange_1.SimpleExchange {
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
exports.StablePool = StablePool;
|
|
54
|
-
StablePool.dexKeys = [
|
|
55
|
-
'nerve',
|
|
56
|
-
'saddle',
|
|
57
|
-
'ironv2',
|
|
58
|
-
'snowball',
|
|
59
|
-
'axial',
|
|
60
|
-
'zyberswapstable',
|
|
61
|
-
];
|
|
54
|
+
StablePool.dexKeys = ['nerve', 'ironv2', 'snowball', 'axial'];
|
|
62
55
|
//# sourceMappingURL=stable-pool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stable-pool.js","sourceRoot":"","sources":["../../src/dex/stable-pool.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAE/C,4CAAwC;AAQxC,uDAAmD;AACnD,6EAAmD;AAmBnD,IAAK,kBAEJ;AAFD,WAAK,kBAAkB;IACrB,mCAAa,CAAA;AACf,CAAC,EAFI,kBAAkB,KAAlB,kBAAkB,QAEtB;AAED,MAAa,UACX,SAAQ,gCAAc;
|
|
1
|
+
{"version":3,"file":"stable-pool.js","sourceRoot":"","sources":["../../src/dex/stable-pool.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAE/C,4CAAwC;AAQxC,uDAAmD;AACnD,6EAAmD;AAmBnD,IAAK,kBAEJ;AAFD,WAAK,kBAAkB;IACrB,mCAAa,CAAA;AACf,CAAC,EAFI,kBAAkB,KAAlB,kBAAkB,QAEtB;AAED,MAAa,UACX,SAAQ,gCAAc;IAOtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAHjC,sBAAiB,GAAG,GAAG,CAAC;QAItB,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAAC,yBAAa,CAAC,CAAC;IAC9D,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAC3C;YACE,YAAY,EAAE;gBACZ,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,QAAQ;gBACX,QAAQ,EAAE,SAAS;aACpB;SACF,EACD,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CACnB,CAAC;QACF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAEhE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1C,MAAM,kBAAkB,GAAoB;YAC1C,CAAC;YACD,CAAC;YACD,SAAS;YACT,IAAI,CAAC,iBAAiB;YACtB,QAAQ;SACT,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,kBAAkB,CAAC,IAAI,EACvB,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,CACT,CAAC;IACJ,CAAC;;AAxEH,gCAyEC;AArEQ,kBAAO,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Network, SwapSide } from '../../../../constants';
|
|
2
|
+
import { IDexHelper } from '../../../../dex-helper';
|
|
3
|
+
import { DexConfigMap, SimpleExchangeParam } from '../../../../types';
|
|
4
|
+
import { DexParams, UniswapV3Data } from '../../types';
|
|
5
|
+
import { UniswapV3 } from '../../uniswap-v3';
|
|
6
|
+
export declare const AlienBaseV3Config: DexConfigMap<DexParams>;
|
|
7
|
+
export declare class AlienBaseV3 extends UniswapV3 {
|
|
8
|
+
protected network: Network;
|
|
9
|
+
protected dexHelper: IDexHelper;
|
|
10
|
+
static dexKeysWithNetwork: {
|
|
11
|
+
key: string;
|
|
12
|
+
networks: Network[];
|
|
13
|
+
}[];
|
|
14
|
+
constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
|
|
15
|
+
static getDirectFunctionName(): string[];
|
|
16
|
+
getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: UniswapV3Data, side: SwapSide): Promise<SimpleExchangeParam>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AlienBaseV3 = exports.AlienBaseV3Config = void 0;
|
|
7
|
+
const abi_1 = require("@ethersproject/abi");
|
|
8
|
+
const constants_1 = require("../../../../constants");
|
|
9
|
+
const utils_1 = require("../../../../utils");
|
|
10
|
+
const types_1 = require("../../types");
|
|
11
|
+
const uniswap_v3_1 = require("../../uniswap-v3");
|
|
12
|
+
const AlienBaseV3Router_abi_json_1 = __importDefault(require("../../../../abi/uniswap-v3/AlienBaseV3Router.abi.json"));
|
|
13
|
+
exports.AlienBaseV3Config = {
|
|
14
|
+
AlienBaseV3: {
|
|
15
|
+
[constants_1.Network.BASE]: {
|
|
16
|
+
factory: '0x0Fd83557b2be93617c9C1C1B6fd549401C74558C',
|
|
17
|
+
quoter: '0x4fDBD73aD4B1DDde594BF05497C15f76308eFfb9',
|
|
18
|
+
router: '0xB20C411FC84FBB27e78608C24d0056D974ea9411',
|
|
19
|
+
supportedFees: [10000n, 3000n, 750n, 200n],
|
|
20
|
+
stateMulticall: '0x7160f736c52e1e78e92FD4eE4D73e21A7Cf4F950',
|
|
21
|
+
uniswapMulticall: '0x091e99cb1C49331a94dD62755D168E941AbD0693',
|
|
22
|
+
chunksCount: 10,
|
|
23
|
+
initRetryFrequency: 10,
|
|
24
|
+
initHash: `0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`,
|
|
25
|
+
subgraphURL: 'https://api.studio.thegraph.com/query/59130/v3alb/0.3',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
class AlienBaseV3 extends uniswap_v3_1.UniswapV3 {
|
|
30
|
+
constructor(network, dexKey, dexHelper) {
|
|
31
|
+
super(network, dexKey, dexHelper, {}, new abi_1.Interface(AlienBaseV3Router_abi_json_1.default), undefined, exports.AlienBaseV3Config[dexKey][network]);
|
|
32
|
+
this.network = network;
|
|
33
|
+
this.dexHelper = dexHelper;
|
|
34
|
+
}
|
|
35
|
+
static getDirectFunctionName() {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
|
|
39
|
+
const swapFunction = side === constants_1.SwapSide.SELL
|
|
40
|
+
? types_1.UniswapV3Functions.exactInput
|
|
41
|
+
: types_1.UniswapV3Functions.exactOutput;
|
|
42
|
+
const path = this._encodePath(data.path, side);
|
|
43
|
+
const swapFunctionParams = side === constants_1.SwapSide.SELL
|
|
44
|
+
? {
|
|
45
|
+
recipient: this.augustusAddress,
|
|
46
|
+
amountIn: srcAmount,
|
|
47
|
+
amountOutMinimum: destAmount,
|
|
48
|
+
path,
|
|
49
|
+
}
|
|
50
|
+
: {
|
|
51
|
+
recipient: this.augustusAddress,
|
|
52
|
+
amountOut: destAmount,
|
|
53
|
+
amountInMaximum: srcAmount,
|
|
54
|
+
path,
|
|
55
|
+
};
|
|
56
|
+
const swapData = this.routerIface.encodeFunctionData(swapFunction, [
|
|
57
|
+
swapFunctionParams,
|
|
58
|
+
]);
|
|
59
|
+
return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, this.config.router);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.AlienBaseV3 = AlienBaseV3;
|
|
63
|
+
AlienBaseV3.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(exports.AlienBaseV3Config);
|
|
64
|
+
//# sourceMappingURL=alien-base-v3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alien-base-v3.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAC/C,qDAA0D;AAG1D,6CAA0D;AAC1D,uCAMqB;AACrB,iDAA6C;AAC7C,uHAAyF;AAE5E,QAAA,iBAAiB,GAA4B;IACxD,WAAW,EAAE;QACX,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE;YACd,OAAO,EAAE,4CAA4C;YACrD,MAAM,EAAE,4CAA4C;YACpD,MAAM,EAAE,4CAA4C;YACpD,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;YAC1C,cAAc,EAAE,4CAA4C;YAC5D,gBAAgB,EAAE,4CAA4C;YAC9D,WAAW,EAAE,EAAE;YACf,kBAAkB,EAAE,EAAE;YACtB,QAAQ,EAAE,oEAAoE;YAC9E,WAAW,EAAE,uDAAuD;SACrE;KACF;CACF,CAAC;AAMF,MAAa,WAAY,SAAQ,sBAAS;IAIxC,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB;QAE/B,KAAK,CACH,OAAO,EACP,MAAM,EACN,SAAS,EACT,EAAE,EACF,IAAI,eAAS,CAAC,oCAAoB,CAAC,EACnC,SAAS,EACT,yBAAiB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CACnC,CAAC;QAZQ,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;IAWjC,CAAC;IAED,MAAM,CAAC,qBAAqB;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAmB,EACnB,IAAc;QAEd,MAAM,YAAY,GAChB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC,0BAAkB,CAAC,UAAU;YAC/B,CAAC,CAAC,0BAAkB,CAAC,WAAW,CAAC;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,kBAAkB,GACtB,IAAI,KAAK,oBAAQ,CAAC,IAAI;YACpB,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,QAAQ,EAAE,SAAS;gBACnB,gBAAgB,EAAE,UAAU;gBAC5B,IAAI;aACL;YACH,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,SAAS,EAAE,UAAU;gBACrB,eAAe,EAAE,SAAS;gBAC1B,IAAI;aACL,CAAC;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACjE,kBAAkB;SACnB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,MAAM,CAAC,MAAM,CACnB,CAAC;IACJ,CAAC;;AAjEH,kCAkEC;AAjEe,8BAAkB,GAC9B,IAAA,6BAAqB,EAAC,yBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Network, SwapSide } from '../../../../constants';
|
|
2
|
+
import { IDexHelper } from '../../../../dex-helper';
|
|
3
|
+
import { DexConfigMap, SimpleExchangeParam } from '../../../../types';
|
|
4
|
+
import { DexParams, UniswapV3Data } from '../../types';
|
|
5
|
+
import { UniswapV3 } from '../../uniswap-v3';
|
|
6
|
+
export declare const AlienBaseV3Config: DexConfigMap<DexParams>;
|
|
7
|
+
export declare class AlienV3 extends UniswapV3 {
|
|
8
|
+
protected network: Network;
|
|
9
|
+
protected dexHelper: IDexHelper;
|
|
10
|
+
static dexKeysWithNetwork: {
|
|
11
|
+
key: string;
|
|
12
|
+
networks: Network[];
|
|
13
|
+
}[];
|
|
14
|
+
constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
|
|
15
|
+
static getDirectFunctionName(): string[];
|
|
16
|
+
getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: UniswapV3Data, side: SwapSide): Promise<SimpleExchangeParam>;
|
|
17
|
+
}
|