@paraswap/dex-lib 4.7.26-balancer-v3-block-timestamp.0 → 4.7.27-0
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/build/dex/algebra-integral/algebra-integral-factory.d.ts +2 -0
- package/build/dex/algebra-integral/algebra-integral-factory.js +58 -0
- package/build/dex/algebra-integral/algebra-integral-factory.js.map +1 -1
- package/build/dex/algebra-integral/algebra-integral.d.ts +2 -0
- package/build/dex/algebra-integral/algebra-integral.js +25 -0
- package/build/dex/algebra-integral/algebra-integral.js.map +1 -1
- package/build/dex/algebra-integral/constants.d.ts +2 -0
- package/build/dex/algebra-integral/constants.js +5 -1
- package/build/dex/algebra-integral/constants.js.map +1 -1
- package/build/dex/balancer-v3/balancer-v3.js +1 -0
- package/build/dex/balancer-v3/balancer-v3.js.map +1 -1
- package/package.json +1 -1
- package/build/abi/PendleRouterStatic.json +0 -19
- package/build/abi/apex-defi/ApexDefiFactory.abi.json +0 -1749
- package/build/abi/apex-defi/ApexDefiRouter.abi.json +0 -1120
- package/build/abi/apex-defi/ApexDefiToken.abi.json +0 -229
- package/build/abi/apex-defi/ApexDefiWrapper.abi.json +0 -92
- package/build/abi/apex-defi/ApexDefiWrapperFactory.abi.json +0 -1107
- package/build/abi/ekubo-v3/core.json +0 -797
- package/build/abi/ekubo-v3/mev-capture-router.json +0 -936
- package/build/abi/ekubo-v3/quote-data-fetcher.json +0 -161
- package/build/abi/ekubo-v3/twamm-data-fetcher.json +0 -216
- package/build/abi/ekubo-v3/twamm.json +0 -613
- package/build/abi/idle-dao/idle-cdo-factory.json +0 -38
- package/build/abi/idle-dao/idle-cdo.json +0 -1245
- package/build/abi/infusion/InfusionFactory.json +0 -147
- package/build/abi/infusion/InfusionPair.json +0 -658
- package/build/abi/infusion/InfusionRouter.json +0 -442
- package/build/abi/maker-psm/pot.json +0 -322
- package/build/abi/maker-psm/psm.json +0 -243
- package/build/abi/maker-psm/vat.json +0 -363
- package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
- package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +0 -796
- package/build/abi/pendle/pendle-deployer.abi.json +0 -520
- package/build/abi/pendle/pendle-oracle.abi.json +0 -413
- package/build/abi/quick-perps/fast-price-events.json +0 -70
- package/build/abi/quick-perps/fast-price-feed.json +0 -741
- package/build/abi/quick-perps/reader.json +0 -313
- package/build/abi/quick-perps/vault-price-feed.json +0 -323
- package/build/abi/quick-perps/vault.json +0 -1953
- package/build/abi/ring-v2/few-wrapped-token.json +0 -587
- package/build/abi/ring-v2/ring-v2-factory.json +0 -125
- package/build/abi/ring-v2/ring-v2-pool.json +0 -461
- package/build/abi/ring-v2/ring-v2-router.json +0 -332
- package/build/abi/stabull/stabull-curve.json +0 -738
- package/build/abi/stabull/stabull-router.json +0 -76
- package/build/abi/uniswap-v2/excalibur-pool.json +0 -881
- package/build/abi/uniswap-v2/mdex-factory.json +0 -759
- package/build/abi/uniswap-v4/hooks/SpotDynamicFeeManager.json +0 -26
- package/build/abi/uniswap-v4/hooks/SpotHook.json +0 -54
- package/build/abi/uniswap-v4/hooks/SpotPolicyManager.json +0 -45
- package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +0 -682
- package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +0 -1335
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.d.ts +0 -29
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js +0 -153
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js.map +0 -1
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.d.ts +0 -40
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js +0 -323
- package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js.map +0 -1
- package/build/dex/aave-pt-to-underlying/config.d.ts +0 -3
- package/build/dex/aave-pt-to-underlying/config.js +0 -24
- package/build/dex/aave-pt-to-underlying/config.js.map +0 -1
- package/build/dex/aave-pt-to-underlying/constants.d.ts +0 -2
- package/build/dex/aave-pt-to-underlying/constants.js +0 -6
- package/build/dex/aave-pt-to-underlying/constants.js.map +0 -1
- package/build/dex/aave-pt-to-underlying/types.d.ts +0 -24
- package/build/dex/aave-pt-to-underlying/types.js +0 -3
- package/build/dex/aave-pt-to-underlying/types.js.map +0 -1
- package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.d.ts +0 -39
- package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js +0 -244
- package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js.map +0 -1
- package/build/dex/aave-pt-to-usdc/config.d.ts +0 -3
- package/build/dex/aave-pt-to-usdc/config.js +0 -47
- package/build/dex/aave-pt-to-usdc/config.js.map +0 -1
- package/build/dex/aave-pt-to-usdc/constants.d.ts +0 -2
- package/build/dex/aave-pt-to-usdc/constants.js +0 -6
- package/build/dex/aave-pt-to-usdc/constants.js.map +0 -1
- package/build/dex/aave-pt-to-usdc/types.d.ts +0 -22
- package/build/dex/aave-pt-to-usdc/types.js +0 -3
- package/build/dex/aave-pt-to-usdc/types.js.map +0 -1
- package/build/dex/apex-defi/apex-defi-factory.d.ts +0 -26
- package/build/dex/apex-defi/apex-defi-factory.js +0 -53
- package/build/dex/apex-defi/apex-defi-factory.js.map +0 -1
- package/build/dex/apex-defi/apex-defi-pool.d.ts +0 -55
- package/build/dex/apex-defi/apex-defi-pool.js +0 -247
- package/build/dex/apex-defi/apex-defi-pool.js.map +0 -1
- package/build/dex/apex-defi/apex-defi-wrapper-factory.d.ts +0 -57
- package/build/dex/apex-defi/apex-defi-wrapper-factory.js +0 -250
- package/build/dex/apex-defi/apex-defi-wrapper-factory.js.map +0 -1
- package/build/dex/apex-defi/apex-defi.d.ts +0 -97
- package/build/dex/apex-defi/apex-defi.js +0 -1021
- package/build/dex/apex-defi/apex-defi.js.map +0 -1
- package/build/dex/apex-defi/config.d.ts +0 -4
- package/build/dex/apex-defi/config.js +0 -138
- package/build/dex/apex-defi/config.js.map +0 -1
- package/build/dex/apex-defi/types.d.ts +0 -32
- package/build/dex/apex-defi/types.js +0 -3
- package/build/dex/apex-defi/types.js.map +0 -1
- package/build/dex/apex-defi/utils.d.ts +0 -46
- package/build/dex/apex-defi/utils.js +0 -133
- package/build/dex/apex-defi/utils.js.map +0 -1
- package/build/dex/ekubo/pools/base-pool.d.ts +0 -47
- package/build/dex/ekubo/pools/base-pool.js +0 -184
- package/build/dex/ekubo/pools/base-pool.js.map +0 -1
- package/build/dex/ekubo/pools/iface.d.ts +0 -46
- package/build/dex/ekubo/pools/iface.js +0 -75
- package/build/dex/ekubo/pools/iface.js.map +0 -1
- package/build/dex/ekubo/pools/math/price.d.ts +0 -7
- package/build/dex/ekubo/pools/math/price.js +0 -112
- package/build/dex/ekubo/pools/math/price.js.map +0 -1
- package/build/dex/ekubo/pools/oracle-pool.d.ts +0 -10
- package/build/dex/ekubo/pools/oracle-pool.js +0 -19
- package/build/dex/ekubo/pools/oracle-pool.js.map +0 -1
- package/build/dex/ekubo/pools/pool-utils.d.ts +0 -44
- package/build/dex/ekubo/pools/pool-utils.js +0 -240
- package/build/dex/ekubo/pools/pool-utils.js.map +0 -1
- package/build/dex/ekubo-v3/config.d.ts +0 -13
- package/build/dex/ekubo-v3/config.js +0 -23
- package/build/dex/ekubo-v3/config.js.map +0 -1
- package/build/dex/ekubo-v3/ekubo-v3-pool-manager.d.ts +0 -34
- package/build/dex/ekubo-v3/ekubo-v3-pool-manager.js +0 -421
- package/build/dex/ekubo-v3/ekubo-v3-pool-manager.js.map +0 -1
- package/build/dex/ekubo-v3/ekubo-v3.d.ts +0 -38
- package/build/dex/ekubo-v3/ekubo-v3.js +0 -274
- package/build/dex/ekubo-v3/ekubo-v3.js.map +0 -1
- package/build/dex/ekubo-v3/pools/base.d.ts +0 -42
- package/build/dex/ekubo-v3/pools/base.js +0 -307
- package/build/dex/ekubo-v3/pools/base.js.map +0 -1
- package/build/dex/ekubo-v3/pools/full-range.d.ts +0 -25
- package/build/dex/ekubo-v3/pools/full-range.js +0 -105
- package/build/dex/ekubo-v3/pools/full-range.js.map +0 -1
- package/build/dex/ekubo-v3/pools/math/constants.d.ts +0 -12
- package/build/dex/ekubo-v3/pools/math/constants.js +0 -16
- package/build/dex/ekubo-v3/pools/math/constants.js.map +0 -1
- package/build/dex/ekubo-v3/pools/math/delta.d.ts +0 -2
- package/build/dex/ekubo-v3/pools/math/delta.js +0 -51
- package/build/dex/ekubo-v3/pools/math/delta.js.map +0 -1
- package/build/dex/ekubo-v3/pools/math/sqrt-ratio.d.ts +0 -8
- package/build/dex/ekubo-v3/pools/math/sqrt-ratio.js +0 -113
- package/build/dex/ekubo-v3/pools/math/sqrt-ratio.js.map +0 -1
- package/build/dex/ekubo-v3/pools/math/swap.d.ts +0 -18
- package/build/dex/ekubo-v3/pools/math/swap.js +0 -128
- package/build/dex/ekubo-v3/pools/math/swap.js.map +0 -1
- package/build/dex/ekubo-v3/pools/math/tick.d.ts +0 -8
- package/build/dex/ekubo-v3/pools/math/tick.js +0 -129
- package/build/dex/ekubo-v3/pools/math/tick.js.map +0 -1
- package/build/dex/ekubo-v3/pools/math/twamm/exp2.d.ts +0 -1
- package/build/dex/ekubo-v3/pools/math/twamm/exp2.js +0 -86
- package/build/dex/ekubo-v3/pools/math/twamm/exp2.js.map +0 -1
- package/build/dex/ekubo-v3/pools/math/twamm/sqrt-ratio.d.ts +0 -1
- package/build/dex/ekubo-v3/pools/math/twamm/sqrt-ratio.js +0 -56
- package/build/dex/ekubo-v3/pools/math/twamm/sqrt-ratio.js.map +0 -1
- package/build/dex/ekubo-v3/pools/mev-capture.d.ts +0 -8
- package/build/dex/ekubo-v3/pools/mev-capture.js +0 -42
- package/build/dex/ekubo-v3/pools/mev-capture.js.map +0 -1
- package/build/dex/ekubo-v3/pools/oracle.d.ts +0 -8
- package/build/dex/ekubo-v3/pools/oracle.js +0 -18
- package/build/dex/ekubo-v3/pools/oracle.js.map +0 -1
- package/build/dex/ekubo-v3/pools/pool.d.ts +0 -56
- package/build/dex/ekubo-v3/pools/pool.js +0 -88
- package/build/dex/ekubo-v3/pools/pool.js.map +0 -1
- package/build/dex/ekubo-v3/pools/stableswap.d.ts +0 -22
- package/build/dex/ekubo-v3/pools/stableswap.js +0 -123
- package/build/dex/ekubo-v3/pools/stableswap.js.map +0 -1
- package/build/dex/ekubo-v3/pools/twamm.d.ts +0 -40
- package/build/dex/ekubo-v3/pools/twamm.js +0 -265
- package/build/dex/ekubo-v3/pools/twamm.js.map +0 -1
- package/build/dex/ekubo-v3/pools/utils.d.ts +0 -62
- package/build/dex/ekubo-v3/pools/utils.js +0 -160
- package/build/dex/ekubo-v3/pools/utils.js.map +0 -1
- package/build/dex/ekubo-v3/types.d.ts +0 -58
- package/build/dex/ekubo-v3/types.js +0 -3
- package/build/dex/ekubo-v3/types.js.map +0 -1
- package/build/dex/ekubo-v3/utils.d.ts +0 -10
- package/build/dex/ekubo-v3/utils.js +0 -54
- package/build/dex/ekubo-v3/utils.js.map +0 -1
- package/build/dex/idle-dao/config.d.ts +0 -5
- package/build/dex/idle-dao/config.js +0 -24
- package/build/dex/idle-dao/config.js.map +0 -1
- package/build/dex/idle-dao/idle-dao.d.ts +0 -42
- package/build/dex/idle-dao/idle-dao.js +0 -279
- package/build/dex/idle-dao/idle-dao.js.map +0 -1
- package/build/dex/idle-dao/token_list.d.ts +0 -4
- package/build/dex/idle-dao/token_list.js +0 -289
- package/build/dex/idle-dao/token_list.js.map +0 -1
- package/build/dex/idle-dao/tokens.d.ts +0 -9
- package/build/dex/idle-dao/tokens.js +0 -68
- package/build/dex/idle-dao/tokens.js.map +0 -1
- package/build/dex/idle-dao/types.d.ts +0 -35
- package/build/dex/idle-dao/types.js +0 -11
- package/build/dex/idle-dao/types.js.map +0 -1
- package/build/dex/idle-dao/utils.d.ts +0 -8
- package/build/dex/idle-dao/utils.js +0 -149
- package/build/dex/idle-dao/utils.js.map +0 -1
- package/build/dex/infusion/config.d.ts +0 -3
- package/build/dex/infusion/config.js +0 -20
- package/build/dex/infusion/config.js.map +0 -1
- package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
- package/build/dex/infusion/infusion-stable-pool.js +0 -74
- package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
- package/build/dex/infusion/infusion.d.ts +0 -51
- package/build/dex/infusion/infusion.js +0 -461
- package/build/dex/infusion/infusion.js.map +0 -1
- package/build/dex/infusion/types.d.ts +0 -45
- package/build/dex/infusion/types.js +0 -3
- package/build/dex/infusion/types.js.map +0 -1
- package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
- package/build/dex/infusion/utils/isStablePair.js +0 -18
- package/build/dex/infusion/utils/isStablePair.js.map +0 -1
- package/build/dex/maker-psm/config.d.ts +0 -11
- package/build/dex/maker-psm/config.js +0 -53
- package/build/dex/maker-psm/config.js.map +0 -1
- package/build/dex/maker-psm/maker-psm-event-pool.d.ts +0 -43
- package/build/dex/maker-psm/maker-psm-event-pool.js +0 -132
- package/build/dex/maker-psm/maker-psm-event-pool.js.map +0 -1
- package/build/dex/maker-psm/maker-psm.d.ts +0 -103
- package/build/dex/maker-psm/maker-psm.js +0 -493
- package/build/dex/maker-psm/maker-psm.js.map +0 -1
- package/build/dex/maker-psm/types.d.ts +0 -39
- package/build/dex/maker-psm/types.js +0 -3
- package/build/dex/maker-psm/types.js.map +0 -1
- package/build/dex/miro-migrator/miro-migrator-state.d.ts +0 -27
- package/build/dex/miro-migrator/miro-migrator-state.js +0 -89
- package/build/dex/miro-migrator/miro-migrator-state.js.map +0 -1
- package/build/dex/quick-perps/config.d.ts +0 -11
- package/build/dex/quick-perps/config.js +0 -27
- package/build/dex/quick-perps/config.js.map +0 -1
- package/build/dex/quick-perps/fast-price-feed.d.ts +0 -26
- package/build/dex/quick-perps/fast-price-feed.js +0 -184
- package/build/dex/quick-perps/fast-price-feed.js.map +0 -1
- package/build/dex/quick-perps/pool.d.ts +0 -21
- package/build/dex/quick-perps/pool.js +0 -229
- package/build/dex/quick-perps/pool.js.map +0 -1
- package/build/dex/quick-perps/quick-perps.d.ts +0 -53
- package/build/dex/quick-perps/quick-perps.js +0 -247
- package/build/dex/quick-perps/quick-perps.js.map +0 -1
- package/build/dex/quick-perps/types.d.ts +0 -98
- package/build/dex/quick-perps/types.js +0 -3
- package/build/dex/quick-perps/types.js.map +0 -1
- package/build/dex/quick-perps/usdq.d.ts +0 -15
- package/build/dex/quick-perps/usdq.js +0 -62
- package/build/dex/quick-perps/usdq.js.map +0 -1
- package/build/dex/quick-perps/vault-price-feed.d.ts +0 -43
- package/build/dex/quick-perps/vault-price-feed.js +0 -203
- package/build/dex/quick-perps/vault-price-feed.js.map +0 -1
- package/build/dex/quick-perps/vault-utils.d.ts +0 -8
- package/build/dex/quick-perps/vault-utils.js +0 -42
- package/build/dex/quick-perps/vault-utils.js.map +0 -1
- package/build/dex/quick-perps/vault.d.ts +0 -46
- package/build/dex/quick-perps/vault.js +0 -182
- package/build/dex/quick-perps/vault.js.map +0 -1
- package/build/dex/solidly/forks-override/aerodrome.d.ts +0 -14
- package/build/dex/solidly/forks-override/aerodrome.js +0 -50
- package/build/dex/solidly/forks-override/aerodrome.js.map +0 -1
- package/build/dex/solidly/forks-override/chronos.d.ts +0 -23
- package/build/dex/solidly/forks-override/chronos.js +0 -141
- package/build/dex/solidly/forks-override/chronos.js.map +0 -1
- package/build/dex/solidly/forks-override/usdfi.d.ts +0 -8
- package/build/dex/solidly/forks-override/usdfi.js +0 -15
- package/build/dex/solidly/forks-override/usdfi.js.map +0 -1
- package/build/dex/solidly/forks-override/velocimeter.d.ts +0 -23
- package/build/dex/solidly/forks-override/velocimeter.js +0 -77
- package/build/dex/solidly/forks-override/velocimeter.js.map +0 -1
- package/build/dex/stabull/config.d.ts +0 -3
- package/build/dex/stabull/config.js +0 -177
- package/build/dex/stabull/config.js.map +0 -1
- package/build/dex/stabull/stabull-pool.d.ts +0 -46
- package/build/dex/stabull/stabull-pool.js +0 -113
- package/build/dex/stabull/stabull-pool.js.map +0 -1
- package/build/dex/stabull/stabull.d.ts +0 -55
- package/build/dex/stabull/stabull.js +0 -286
- package/build/dex/stabull/stabull.js.map +0 -1
- package/build/dex/stabull/types.d.ts +0 -21
- package/build/dex/stabull/types.js +0 -3
- package/build/dex/stabull/types.js.map +0 -1
- package/build/dex/uniswap-v2/dfyn.d.ts +0 -19
- package/build/dex/uniswap-v2/dfyn.js +0 -61
- package/build/dex/uniswap-v2/dfyn.js.map +0 -1
- package/build/dex/uniswap-v2/excalibur.d.ts +0 -24
- package/build/dex/uniswap-v2/excalibur.js +0 -47
- package/build/dex/uniswap-v2/excalibur.js.map +0 -1
- package/build/dex/uniswap-v2/mdex.d.ts +0 -24
- package/build/dex/uniswap-v2/mdex.js +0 -50
- package/build/dex/uniswap-v2/mdex.js.map +0 -1
- package/build/dex/uniswap-v2/nomiswap-v2.d.ts +0 -24
- package/build/dex/uniswap-v2/nomiswap-v2.js +0 -57
- package/build/dex/uniswap-v2/nomiswap-v2.js.map +0 -1
- package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +0 -4
- package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +0 -56
- package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +0 -1
- package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -9
- package/build/dex/uniswap-v4/contract-math/Position.js +0 -39
- package/build/dex/uniswap-v4/contract-math/Position.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/arena.d.ts +0 -6
- package/build/dex/uniswap-v4/hooks/arena.js +0 -10
- package/build/dex/uniswap-v4/hooks/arena.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.d.ts +0 -0
- package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js +0 -2
- package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +0 -7
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +0 -28
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +0 -2
- package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +0 -7
- package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +0 -28
- package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
- package/build/dex/uniswap-v4/hooks/fee-hook/types.js +0 -2
- package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/index.d.ts +0 -1
- package/build/dex/uniswap-v4/hooks/index.js +0 -18
- package/build/dex/uniswap-v4/hooks/index.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/spot.d.ts +0 -15
- package/build/dex/uniswap-v4/hooks/spot.js +0 -109
- package/build/dex/uniswap-v4/hooks/spot.js.map +0 -1
- package/build/dex/uniswap-v4/hooks/template.d.ts +0 -150
- package/build/dex/uniswap-v4/hooks/template.js +0 -104
- package/build/dex/uniswap-v4/hooks/template.js.map +0 -1
- package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +0 -26
- package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +0 -75
- package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +0 -1
- package/build/dex/usual/usual-usdc-usdc.d.ts +0 -17
- package/build/dex/usual/usual-usdc-usdc.js +0 -59
- package/build/dex/usual/usual-usdc-usdc.js.map +0 -1
- package/build/dex/yo/config.d.ts +0 -3
- package/build/dex/yo/config.js +0 -21
- package/build/dex/yo/config.js.map +0 -1
- package/build/dex/yo/types.d.ts +0 -13
- package/build/dex/yo/types.js +0 -3
- package/build/dex/yo/types.js.map +0 -1
- package/build/dex/yo/yo-pool.d.ts +0 -13
- package/build/dex/yo/yo-pool.js +0 -26
- package/build/dex/yo/yo-pool.js.map +0 -1
- package/build/dex/yo/yo.d.ts +0 -39
- package/build/dex/yo/yo.js +0 -248
- package/build/dex/yo/yo.js.map +0 -1
- package/build/implementations/api-paraswap-sdk.d.ts +0 -25
- package/build/implementations/api-paraswap-sdk.js +0 -102
- package/build/implementations/api-paraswap-sdk.js.map +0 -1
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BasePool = void 0;
|
|
4
|
-
const utils_1 = require("../../../utils");
|
|
5
|
-
const stateful_event_subscriber_1 = require("../../../stateful-event-subscriber");
|
|
6
|
-
const swap_1 = require("./math/swap");
|
|
7
|
-
const tick_1 = require("./math/tick");
|
|
8
|
-
const price_1 = require("./math/price");
|
|
9
|
-
const pool_utils_1 = require("./pool-utils");
|
|
10
|
-
const BASE_GAS_COST = 46_000;
|
|
11
|
-
const GAS_COST_OF_ONE_INITIALIZED_TICK_CROSSED = 9_400;
|
|
12
|
-
const GAS_COST_OF_ONE_TICK_SPACING_CROSSED = 4_000;
|
|
13
|
-
class BasePool extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
14
|
-
parentName;
|
|
15
|
-
network;
|
|
16
|
-
dexHelper;
|
|
17
|
-
coreIface;
|
|
18
|
-
dataFetcher;
|
|
19
|
-
key;
|
|
20
|
-
addressesSubscribed;
|
|
21
|
-
constructor(parentName, network, dexHelper, logger, coreIface, dataFetcher, key, core) {
|
|
22
|
-
super(parentName, key.string_id, dexHelper, logger);
|
|
23
|
-
this.parentName = parentName;
|
|
24
|
-
this.network = network;
|
|
25
|
-
this.dexHelper = dexHelper;
|
|
26
|
-
this.coreIface = coreIface;
|
|
27
|
-
this.dataFetcher = dataFetcher;
|
|
28
|
-
this.key = key;
|
|
29
|
-
this.addressesSubscribed = [core.address];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* The function is called every time any of the subscribed
|
|
33
|
-
* addresses release log. The function accepts the current
|
|
34
|
-
* state, updates the state according to the log, and returns
|
|
35
|
-
* the updated state.
|
|
36
|
-
* @param state - Current state of event subscriber
|
|
37
|
-
* @param log - Log released by one of the subscribed addresses
|
|
38
|
-
* @returns Updates state of the event subscriber after the log
|
|
39
|
-
*/
|
|
40
|
-
processLog(state, log) {
|
|
41
|
-
if (log.topics.length === 0) {
|
|
42
|
-
return this.handleSwappedEvent(log.data, state);
|
|
43
|
-
}
|
|
44
|
-
try {
|
|
45
|
-
const event = this.coreIface.parseLog(log);
|
|
46
|
-
if (event.name === 'PositionUpdated') {
|
|
47
|
-
return this.handlePositionUpdatedEvent(event.args, state);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
catch (e) {
|
|
51
|
-
(0, utils_1.catchParseLogError)(e, this.logger);
|
|
52
|
-
}
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* The function generates state using on-chain calls. This
|
|
57
|
-
* function is called to regenerate state if the event based
|
|
58
|
-
* system fails to fetch events and the local state is no
|
|
59
|
-
* more correct.
|
|
60
|
-
* @param blockNumber - Blocknumber for which the state should
|
|
61
|
-
* should be generated
|
|
62
|
-
* @returns state of the event subscriber at blocknumber
|
|
63
|
-
*/
|
|
64
|
-
async generateState(blockNumber) {
|
|
65
|
-
const data = await this.dataFetcher.getQuoteData([this.key.toAbi()], 10, {
|
|
66
|
-
blockTag: blockNumber,
|
|
67
|
-
});
|
|
68
|
-
return pool_utils_1.PoolState.fromQuoter(data[0], this.key.config.tickSpacing === tick_1.FULL_RANGE_TICK_SPACING);
|
|
69
|
-
}
|
|
70
|
-
handleSwappedEvent(data, oldState) {
|
|
71
|
-
let n = BigInt(data);
|
|
72
|
-
const poolId = (n >> 512n) & ((1n << 256n) - 1n);
|
|
73
|
-
if (this.key.num_id !== poolId) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
// tick: int32 (4 bytes)
|
|
77
|
-
const tickRaw = n & ((1n << 32n) - 1n);
|
|
78
|
-
const tickAfter = Number(toSigned(tickRaw, 32));
|
|
79
|
-
n >>= 32n;
|
|
80
|
-
// sqrtRatio: uint96 (12 bytes)
|
|
81
|
-
const sqrtRatioAfterCompact = n & ((1n << 96n) - 1n);
|
|
82
|
-
n >>= 96n;
|
|
83
|
-
const sqrtRatioAfter = (0, price_1.floatSqrtRatioToFixed)(sqrtRatioAfterCompact);
|
|
84
|
-
// liquidity: uint128 (16 bytes)
|
|
85
|
-
const liquidityAfter = n & ((1n << 128n) - 1n);
|
|
86
|
-
return pool_utils_1.PoolState.fromSwappedEvent(oldState, sqrtRatioAfter, liquidityAfter, tickAfter);
|
|
87
|
-
}
|
|
88
|
-
handlePositionUpdatedEvent(args, oldState) {
|
|
89
|
-
if (this.key.num_id !== BigInt(args.poolId)) {
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
const params = args.params;
|
|
93
|
-
return pool_utils_1.PoolState.fromPositionUpdatedEvent(oldState, [params.bounds.lower, params.bounds.upper], params.liquidityDelta.toBigInt());
|
|
94
|
-
}
|
|
95
|
-
quote(amount, token, blockNumber) {
|
|
96
|
-
const isToken1 = token === this.key.token1;
|
|
97
|
-
if (!isToken1 && this.key.token0 !== token) {
|
|
98
|
-
throw new Error('Invalid token');
|
|
99
|
-
}
|
|
100
|
-
if (amount === 0n) {
|
|
101
|
-
return {
|
|
102
|
-
consumedAmount: 0n,
|
|
103
|
-
calculatedAmount: 0n,
|
|
104
|
-
gasConsumed: 0,
|
|
105
|
-
skipAhead: 0,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
const isIncreasing = (0, swap_1.isPriceIncreasing)(amount, isToken1);
|
|
109
|
-
let state = this.getState(blockNumber);
|
|
110
|
-
if (state === null) {
|
|
111
|
-
throw new Error(`Quote for block number ${blockNumber} requested but state is not recent enough`);
|
|
112
|
-
}
|
|
113
|
-
let { sqrtRatio, liquidity, activeTickIndex, sortedTicks } = state;
|
|
114
|
-
const sqrtRatioLimit = isIncreasing ? tick_1.MAX_SQRT_RATIO : tick_1.MIN_SQRT_RATIO;
|
|
115
|
-
let calculatedAmount = 0n;
|
|
116
|
-
let initializedTicksCrossed = 0;
|
|
117
|
-
let amountRemaining = amount;
|
|
118
|
-
const startingSqrtRatio = sqrtRatio;
|
|
119
|
-
while (amountRemaining !== 0n && sqrtRatio !== sqrtRatioLimit) {
|
|
120
|
-
const nextInitializedTick = (isIncreasing
|
|
121
|
-
? sortedTicks[activeTickIndex === null ? 0 : activeTickIndex + 1]
|
|
122
|
-
: activeTickIndex === null
|
|
123
|
-
? null
|
|
124
|
-
: sortedTicks[activeTickIndex]) ?? null;
|
|
125
|
-
const nextInitializedTickSqrtRatio = nextInitializedTick
|
|
126
|
-
? (0, tick_1.toSqrtRatio)(nextInitializedTick.number)
|
|
127
|
-
: null;
|
|
128
|
-
const stepSqrtRatioLimit = nextInitializedTickSqrtRatio === null
|
|
129
|
-
? sqrtRatioLimit
|
|
130
|
-
: nextInitializedTickSqrtRatio < sqrtRatioLimit === isIncreasing
|
|
131
|
-
? nextInitializedTickSqrtRatio
|
|
132
|
-
: sqrtRatioLimit;
|
|
133
|
-
const step = (0, swap_1.computeStep)({
|
|
134
|
-
fee: this.key.config.fee,
|
|
135
|
-
sqrtRatio,
|
|
136
|
-
liquidity,
|
|
137
|
-
isToken1,
|
|
138
|
-
sqrtRatioLimit: stepSqrtRatioLimit,
|
|
139
|
-
amount: amountRemaining,
|
|
140
|
-
});
|
|
141
|
-
amountRemaining -= step.consumedAmount;
|
|
142
|
-
calculatedAmount += step.calculatedAmount;
|
|
143
|
-
sqrtRatio = step.sqrtRatioNext;
|
|
144
|
-
// cross the tick if the price moved all the way to the next initialized tick price
|
|
145
|
-
if (nextInitializedTick && sqrtRatio === nextInitializedTickSqrtRatio) {
|
|
146
|
-
activeTickIndex = isIncreasing
|
|
147
|
-
? activeTickIndex === null
|
|
148
|
-
? 0
|
|
149
|
-
: activeTickIndex + 1
|
|
150
|
-
: activeTickIndex
|
|
151
|
-
? activeTickIndex - 1
|
|
152
|
-
: null;
|
|
153
|
-
initializedTicksCrossed++;
|
|
154
|
-
liquidity += isIncreasing
|
|
155
|
-
? nextInitializedTick.liquidityDelta
|
|
156
|
-
: -nextInitializedTick.liquidityDelta;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
const tickSpacingsCrossed = (0, tick_1.approximateNumberOfTickSpacingsCrossed)(startingSqrtRatio, sqrtRatio, this.key.config.tickSpacing);
|
|
160
|
-
return {
|
|
161
|
-
consumedAmount: amount - amountRemaining,
|
|
162
|
-
calculatedAmount,
|
|
163
|
-
gasConsumed: BASE_GAS_COST +
|
|
164
|
-
initializedTicksCrossed * GAS_COST_OF_ONE_INITIALIZED_TICK_CROSSED +
|
|
165
|
-
tickSpacingsCrossed * GAS_COST_OF_ONE_TICK_SPACING_CROSSED,
|
|
166
|
-
skipAhead: initializedTicksCrossed === 0
|
|
167
|
-
? 0
|
|
168
|
-
: Math.floor(tickSpacingsCrossed / initializedTicksCrossed),
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
computeTvl() {
|
|
172
|
-
const state = this.getStaleState();
|
|
173
|
-
if (state === null) {
|
|
174
|
-
return null;
|
|
175
|
-
}
|
|
176
|
-
return pool_utils_1.PoolState.computeTvl(state);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
exports.BasePool = BasePool;
|
|
180
|
-
function toSigned(value, bits) {
|
|
181
|
-
const half = 1n << BigInt(bits - 1);
|
|
182
|
-
return value >= half ? value - (1n << BigInt(bits)) : value;
|
|
183
|
-
}
|
|
184
|
-
//# sourceMappingURL=base-pool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-pool.js","sourceRoot":"","sources":["../../../../src/dex/ekubo/pools/base-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Interface, Result } from '@ethersproject/abi';
|
|
2
|
-
import { Logger } from 'log4js';
|
|
3
|
-
import { DeepReadonly } from 'ts-essentials';
|
|
4
|
-
import { IDexHelper } from '../../../dex-helper/idex-helper';
|
|
5
|
-
import { StatefulEventSubscriber } from '../../../stateful-event-subscriber';
|
|
6
|
-
import { BlockHeader, Log } from '../../../types';
|
|
7
|
-
import { PoolKey } from './utils';
|
|
8
|
-
export interface Quote {
|
|
9
|
-
consumedAmount: bigint;
|
|
10
|
-
calculatedAmount: bigint;
|
|
11
|
-
gasConsumed: number;
|
|
12
|
-
skipAhead: number;
|
|
13
|
-
}
|
|
14
|
-
export interface PoolKeyed {
|
|
15
|
-
key: PoolKey;
|
|
16
|
-
}
|
|
17
|
-
export interface IEkuboPool extends PoolKeyed {
|
|
18
|
-
quote(amount: bigint, token: bigint, blockNumber: number): Quote;
|
|
19
|
-
}
|
|
20
|
-
export type QuoteFn<State> = (amount: bigint, isToken1: boolean, state: DeepReadonly<State>) => Quote;
|
|
21
|
-
export type NamedEventHandler<State> = (args: Result, oldState: DeepReadonly<State>, blockHeader: Readonly<BlockHeader>) => DeepReadonly<State> | null;
|
|
22
|
-
export type AnonymousEventHandler<State> = (data: string, oldState: DeepReadonly<State>, blockHeader: Readonly<BlockHeader>) => DeepReadonly<State> | null;
|
|
23
|
-
export declare class NamedEventHandlers<State> {
|
|
24
|
-
private readonly iface;
|
|
25
|
-
private readonly handlers;
|
|
26
|
-
constructor(iface: Interface, handlers: Record<string, NamedEventHandler<State>>);
|
|
27
|
-
parseLog(log: Readonly<Log>, oldState: DeepReadonly<State>, blockHeader: Readonly<BlockHeader>): DeepReadonly<State> | null;
|
|
28
|
-
}
|
|
29
|
-
export declare abstract class EkuboPool<State> extends StatefulEventSubscriber<State> implements IEkuboPool {
|
|
30
|
-
readonly key: PoolKey;
|
|
31
|
-
private readonly namedEventHandlers;
|
|
32
|
-
private readonly anonymousEventHandlers;
|
|
33
|
-
private readonly quoteFn;
|
|
34
|
-
protected constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, key: PoolKey, namedEventHandlers: Record<string, NamedEventHandlers<State>>, anonymousEventHandlers: Record<string, AnonymousEventHandler<State>>, quoteFn: QuoteFn<State>);
|
|
35
|
-
/**
|
|
36
|
-
* The function is called every time any of the subscribed
|
|
37
|
-
* addresses release log. The function accepts the current
|
|
38
|
-
* state, updates the state according to the log, and returns
|
|
39
|
-
* the updated state.
|
|
40
|
-
* @param state - Current state of event subscriber
|
|
41
|
-
* @param log - Log released by one of the subscribed addresses
|
|
42
|
-
* @returns Updates state of the event subscriber after the log
|
|
43
|
-
*/
|
|
44
|
-
protected processLog(state: DeepReadonly<State>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<State> | null;
|
|
45
|
-
quote(amount: bigint, token: bigint, blockNumber: number): Quote;
|
|
46
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EkuboPool = exports.NamedEventHandlers = void 0;
|
|
4
|
-
const stateful_event_subscriber_1 = require("../../../stateful-event-subscriber");
|
|
5
|
-
class NamedEventHandlers {
|
|
6
|
-
iface;
|
|
7
|
-
handlers;
|
|
8
|
-
constructor(iface, handlers) {
|
|
9
|
-
this.iface = iface;
|
|
10
|
-
this.handlers = handlers;
|
|
11
|
-
}
|
|
12
|
-
parseLog(log, oldState, blockHeader) {
|
|
13
|
-
const event = this.iface.parseLog(log);
|
|
14
|
-
return this.handlers[event.name]?.(event.args, oldState, blockHeader);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.NamedEventHandlers = NamedEventHandlers;
|
|
18
|
-
const BASE_GAS_COST = 22_000;
|
|
19
|
-
class EkuboPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
20
|
-
key;
|
|
21
|
-
namedEventHandlers;
|
|
22
|
-
anonymousEventHandlers;
|
|
23
|
-
quoteFn;
|
|
24
|
-
constructor(parentName, dexHelper, logger, key, namedEventHandlers, anonymousEventHandlers, quoteFn) {
|
|
25
|
-
super(parentName, key.string_id, dexHelper, logger);
|
|
26
|
-
this.key = key;
|
|
27
|
-
this.namedEventHandlers = namedEventHandlers;
|
|
28
|
-
this.anonymousEventHandlers = anonymousEventHandlers;
|
|
29
|
-
this.quoteFn = quoteFn;
|
|
30
|
-
this.addressesSubscribed = [
|
|
31
|
-
...new Set(Object.keys(namedEventHandlers).concat(Object.keys(anonymousEventHandlers))),
|
|
32
|
-
];
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* The function is called every time any of the subscribed
|
|
36
|
-
* addresses release log. The function accepts the current
|
|
37
|
-
* state, updates the state according to the log, and returns
|
|
38
|
-
* the updated state.
|
|
39
|
-
* @param state - Current state of event subscriber
|
|
40
|
-
* @param log - Log released by one of the subscribed addresses
|
|
41
|
-
* @returns Updates state of the event subscriber after the log
|
|
42
|
-
*/
|
|
43
|
-
processLog(state, log, blockHeader) {
|
|
44
|
-
const emitter = log.address;
|
|
45
|
-
if (log.topics.length === 0) {
|
|
46
|
-
return this.anonymousEventHandlers[emitter]?.(log.data, state, blockHeader);
|
|
47
|
-
}
|
|
48
|
-
return this.namedEventHandlers[emitter]?.parseLog(log, state, blockHeader);
|
|
49
|
-
}
|
|
50
|
-
quote(amount, token, blockNumber) {
|
|
51
|
-
const isToken1 = token === this.key.token1;
|
|
52
|
-
if (!isToken1 && this.key.token0 !== token) {
|
|
53
|
-
throw new Error('Invalid token');
|
|
54
|
-
}
|
|
55
|
-
if (amount === 0n) {
|
|
56
|
-
return {
|
|
57
|
-
consumedAmount: 0n,
|
|
58
|
-
calculatedAmount: 0n,
|
|
59
|
-
gasConsumed: 0,
|
|
60
|
-
skipAhead: 0,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
const state = this.getState(blockNumber);
|
|
64
|
-
if (state === null) {
|
|
65
|
-
throw new Error(`Quote for block number ${blockNumber} requested but state is not recent enough`);
|
|
66
|
-
}
|
|
67
|
-
const quote = this.quoteFn(amount, isToken1, state);
|
|
68
|
-
if (quote.calculatedAmount !== 0n) {
|
|
69
|
-
quote.gasConsumed += BASE_GAS_COST;
|
|
70
|
-
}
|
|
71
|
-
return quote;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.EkuboPool = EkuboPool;
|
|
75
|
-
//# sourceMappingURL=iface.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iface.js","sourceRoot":"","sources":["../../../../src/dex/ekubo/pools/iface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { BigNumber } from 'ethers';
|
|
2
|
-
export declare function floatSqrtRatioToFixed(sqrtRatioFloat: bigint): bigint;
|
|
3
|
-
export declare function fixedSqrtRatioToFloat(sqrtRatioFixed: bigint): bigint;
|
|
4
|
-
export declare const MAX_SQRT_RATIO_FLOAT: BigNumber;
|
|
5
|
-
export declare const MIN_SQRT_RATIO_FLOAT: BigNumber;
|
|
6
|
-
export declare function nextSqrtRatioFromAmount0(sqrtRatio: bigint, liquidity: bigint, amount0: bigint): bigint | null;
|
|
7
|
-
export declare function nextSqrtRatioFromAmount1(sqrtRatio: bigint, liquidity: bigint, amount1: bigint): bigint | null;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MIN_SQRT_RATIO_FLOAT = exports.MAX_SQRT_RATIO_FLOAT = void 0;
|
|
4
|
-
exports.floatSqrtRatioToFixed = floatSqrtRatioToFixed;
|
|
5
|
-
exports.fixedSqrtRatioToFloat = fixedSqrtRatioToFloat;
|
|
6
|
-
exports.nextSqrtRatioFromAmount0 = nextSqrtRatioFromAmount0;
|
|
7
|
-
exports.nextSqrtRatioFromAmount1 = nextSqrtRatioFromAmount1;
|
|
8
|
-
const ethers_1 = require("ethers");
|
|
9
|
-
const constants_1 = require("./constants");
|
|
10
|
-
const tick_1 = require("./tick");
|
|
11
|
-
const BIT_MASK = 0xc00000000000000000000000n;
|
|
12
|
-
const NOT_BIT_MASK = 0x3fffffffffffffffffffffffn;
|
|
13
|
-
function floatSqrtRatioToFixed(sqrtRatioFloat) {
|
|
14
|
-
return sqrtRatioFloat === 0n
|
|
15
|
-
? constants_1.TWO_POW_128 // Default value for the case that the passed value comes from an uninitialized pool
|
|
16
|
-
: (sqrtRatioFloat & NOT_BIT_MASK) <<
|
|
17
|
-
(2n + ((sqrtRatioFloat & BIT_MASK) >> 89n));
|
|
18
|
-
}
|
|
19
|
-
function fixedSqrtRatioToFloat(sqrtRatioFixed) {
|
|
20
|
-
if (sqrtRatioFixed >= constants_1.TWO_POW_192) {
|
|
21
|
-
throw new Error('Out of bounds');
|
|
22
|
-
}
|
|
23
|
-
else if (sqrtRatioFixed >= constants_1.TWO_POW_160) {
|
|
24
|
-
return (sqrtRatioFixed >> 98n) + BIT_MASK;
|
|
25
|
-
}
|
|
26
|
-
else if (sqrtRatioFixed >= constants_1.TWO_POW_128) {
|
|
27
|
-
return (sqrtRatioFixed >> 66n) + constants_1.TWO_POW_95;
|
|
28
|
-
}
|
|
29
|
-
else if (sqrtRatioFixed >= constants_1.TWO_POW_96) {
|
|
30
|
-
return (sqrtRatioFixed >> 34n) + constants_1.TWO_POW_94;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
return sqrtRatioFixed >> 2n;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.MAX_SQRT_RATIO_FLOAT = ethers_1.BigNumber.from(fixedSqrtRatioToFloat(tick_1.MAX_SQRT_RATIO));
|
|
37
|
-
exports.MIN_SQRT_RATIO_FLOAT = ethers_1.BigNumber.from(fixedSqrtRatioToFloat(tick_1.MIN_SQRT_RATIO));
|
|
38
|
-
function nextSqrtRatioFromAmount0(sqrtRatio, liquidity, amount0) {
|
|
39
|
-
if (amount0 === 0n)
|
|
40
|
-
return sqrtRatio;
|
|
41
|
-
if (liquidity === 0n)
|
|
42
|
-
throw new Error('NO_LIQUIDITY');
|
|
43
|
-
const numerator1 = liquidity << 128n;
|
|
44
|
-
// because quotient is rounded down, this price movement is also rounded towards sqrt_ratio
|
|
45
|
-
if (amount0 < 0n) {
|
|
46
|
-
const product = amount0 * -1n * sqrtRatio;
|
|
47
|
-
if (product >= constants_1.MAX_U256) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
const denominator = numerator1 - product;
|
|
51
|
-
if (denominator < 0n) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
const num = numerator1 * sqrtRatio;
|
|
55
|
-
const result = num / denominator + (num % denominator === 0n ? 0n : 1n);
|
|
56
|
-
if (result > constants_1.MAX_U256) {
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
return result;
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
const denomP1 = numerator1 / sqrtRatio;
|
|
63
|
-
const denom = denomP1 + amount0;
|
|
64
|
-
const quotient = numerator1 / denom;
|
|
65
|
-
const remainder = numerator1 % denom;
|
|
66
|
-
if (remainder === 0n)
|
|
67
|
-
return quotient;
|
|
68
|
-
const sum = quotient + 1n;
|
|
69
|
-
if (sum > constants_1.MAX_U256)
|
|
70
|
-
return null;
|
|
71
|
-
return sum;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
function nextSqrtRatioFromAmount1(sqrtRatio, liquidity, amount1) {
|
|
75
|
-
if (amount1 === 0n)
|
|
76
|
-
return sqrtRatio;
|
|
77
|
-
if (liquidity === 0n)
|
|
78
|
-
throw new Error('NO_LIQUIDITY');
|
|
79
|
-
const amountShifted = amount1 << 128n;
|
|
80
|
-
const quotient = amountShifted / liquidity;
|
|
81
|
-
const remainder = amountShifted % liquidity;
|
|
82
|
-
// because quotient is rounded down, this price movement is also rounded towards sqrt_ratio
|
|
83
|
-
if (amount1 < 0n) {
|
|
84
|
-
// adding amount1, taking out amount0
|
|
85
|
-
const res = sqrtRatio + quotient;
|
|
86
|
-
if (res < 0n) {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
if (remainder === 0n) {
|
|
90
|
-
return res;
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
if (res != 0n) {
|
|
94
|
-
return res - 1n;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
// adding amount1, taking out amount0, price goes up
|
|
103
|
-
const res = sqrtRatio + quotient;
|
|
104
|
-
if (res > constants_1.MAX_U256) {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
return res;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=price.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../../../src/dex/ekubo/pools/math/price.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Contract } from 'ethers';
|
|
2
|
-
import { IDexHelper } from '../../../dex-helper';
|
|
3
|
-
import { Logger } from '../../../types';
|
|
4
|
-
import { BasePool, Quote } from './base-pool';
|
|
5
|
-
import { Interface } from '@ethersproject/abi';
|
|
6
|
-
import { PoolKey } from './pool-utils';
|
|
7
|
-
export declare class OraclePool extends BasePool {
|
|
8
|
-
constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, coreIface: Interface, dataFetcher: Contract, key: PoolKey, core: Contract);
|
|
9
|
-
quote(amount: bigint, token: bigint, blockNumber: number): Quote;
|
|
10
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OraclePool = void 0;
|
|
4
|
-
const base_pool_1 = require("./base-pool");
|
|
5
|
-
const GAS_COST_OF_UPDATING_ORACLE_SNAPSHOT = 15_000;
|
|
6
|
-
class OraclePool extends base_pool_1.BasePool {
|
|
7
|
-
constructor(parentName, network, dexHelper, logger, coreIface, dataFetcher, key, core) {
|
|
8
|
-
super(parentName, network, dexHelper, logger, coreIface, dataFetcher, key, core);
|
|
9
|
-
}
|
|
10
|
-
quote(amount, token, blockNumber) {
|
|
11
|
-
let baseQuote = super.quote(amount, token, blockNumber);
|
|
12
|
-
if (baseQuote.gasConsumed > 0n) {
|
|
13
|
-
baseQuote.gasConsumed += GAS_COST_OF_UPDATING_ORACLE_SNAPSHOT;
|
|
14
|
-
}
|
|
15
|
-
return baseQuote;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.OraclePool = OraclePool;
|
|
19
|
-
//# sourceMappingURL=oracle-pool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oracle-pool.js","sourceRoot":"","sources":["../../../../src/dex/ekubo/pools/oracle-pool.ts"],"names":[],"mappings":";;;AAGA,2CAA8C;AAI9C,MAAM,oCAAoC,GAAG,MAAM,CAAC;AAEpD,MAAa,UAAW,SAAQ,oBAAQ;IACtC,YACE,UAAkB,EAClB,OAAe,EACf,SAAqB,EACrB,MAAc,EACd,SAAoB,EACpB,WAAqB,EACrB,GAAY,EACZ,IAAc;QAEd,KAAK,CACH,UAAU,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,GAAG,EACH,IAAI,CACL,CAAC;IACJ,CAAC;IAEe,KAAK,CACnB,MAAc,EACd,KAAa,EACb,WAAmB;QAEnB,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAExD,IAAI,SAAS,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC;YAC/B,SAAS,CAAC,WAAW,IAAI,oCAAoC,CAAC;QAChE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AApCD,gCAoCC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { DeepReadonly } from 'ts-essentials';
|
|
2
|
-
import { Tick, QuoteData, AbiPoolKey } from '../types';
|
|
3
|
-
export declare namespace PoolState {
|
|
4
|
-
type Object = {
|
|
5
|
-
sqrtRatio: bigint;
|
|
6
|
-
liquidity: bigint;
|
|
7
|
-
activeTick: number;
|
|
8
|
-
readonly sortedTicks: Tick[];
|
|
9
|
-
activeTickIndex: number | null;
|
|
10
|
-
readonly checkedTicksBounds: readonly [number, number];
|
|
11
|
-
};
|
|
12
|
-
function fromQuoter(data: QuoteData, isFullRange: boolean): Object;
|
|
13
|
-
function fromSwappedEvent(oldState: DeepReadonly<Object>, sqrtRatioAfter: bigint, liquidityAfter: bigint, tickAfter: number): Object;
|
|
14
|
-
function fromPositionUpdatedEvent(oldState: DeepReadonly<Object>, [lowTick, highTick]: [number, number], liquidityDelta: bigint): Object | null;
|
|
15
|
-
function addLiquidityCutoffs(state: PoolState.Object): void;
|
|
16
|
-
function updateTick(state: Object, updatedTickNumber: number, liquidityDelta: bigint, upper: boolean, forceInsert: boolean): void;
|
|
17
|
-
function computeTvl(state: DeepReadonly<Object>): [bigint, bigint];
|
|
18
|
-
}
|
|
19
|
-
export declare class PoolKey {
|
|
20
|
-
readonly token0: bigint;
|
|
21
|
-
readonly token1: bigint;
|
|
22
|
-
readonly config: PoolConfig;
|
|
23
|
-
private _string_id?;
|
|
24
|
-
private _num_id?;
|
|
25
|
-
constructor(token0: bigint, token1: bigint, config: PoolConfig);
|
|
26
|
-
get string_id(): string;
|
|
27
|
-
get num_id(): bigint;
|
|
28
|
-
toAbi(): AbiPoolKey;
|
|
29
|
-
}
|
|
30
|
-
export declare class PoolConfig {
|
|
31
|
-
readonly tickSpacing: number;
|
|
32
|
-
readonly fee: bigint;
|
|
33
|
-
readonly extension: bigint;
|
|
34
|
-
private _compressed?;
|
|
35
|
-
constructor(tickSpacing: number, fee: bigint, extension: bigint, _compressed?: bigint | undefined);
|
|
36
|
-
get compressed(): bigint;
|
|
37
|
-
static fromCompressed(compressed: bigint): PoolConfig;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Returns the index in the sorted tick array that has the greatest value of tick that is not greater than the given tick
|
|
41
|
-
* @param sortedTicks the sorted list of ticks to search in
|
|
42
|
-
* @param tick the tick to search for
|
|
43
|
-
*/
|
|
44
|
-
export declare function findNearestInitializedTickIndex(sortedTicks: Tick[], tick: number): number | null;
|