@paraswap/dex-lib 4.8.21 → 4.8.23-deth.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/abi/AaveV2_lending_pool.json +53 -0
- package/build/abi/BProtocol.json +1155 -0
- package/build/abi/Bancor.json +392 -0
- package/build/abi/Compound_CETH.json +12 -0
- package/build/abi/Jarvis.json +1172 -0
- package/build/abi/MStableAsset.json +1545 -0
- package/build/abi/OneInchLp.json +1304 -0
- package/build/abi/Onebit.json +736 -0
- package/build/abi/SSPM.json +829 -0
- package/build/abi/Shell.json +1294 -0
- package/build/abi/Smoothy.json +1049 -0
- package/build/abi/StaderOracle.json +2170 -0
- package/build/abi/TraderJoeV2Router.json +50 -0
- package/build/abi/aave-weth-gateway-avalanche.json +242 -0
- package/build/abi/aave-weth-gateway-polygon.json +242 -0
- package/build/abi/aave-weth-gateway.json +24 -0
- package/build/abi/bunni-v2/BunniHook.abi.json +1921 -0
- package/build/abi/bunni-v2/BunniHub.abi.json +1598 -0
- package/build/abi/bunni-v2/BunniToken.abi.json +833 -0
- package/build/abi/bunni-v2/FeeOverrideHooklet.abi.json +1947 -0
- package/build/abi/bunni-v2/FloodPlain.abi.json +1195 -0
- package/build/abi/bunni-v2/PoolManager.abi.json +1366 -0
- package/build/abi/bunni-v2/V4Quoter.abi.json +637 -0
- package/build/abi/concentrator/arUSD.json +568 -0
- package/build/abi/concentrator/arUSD5115.json +1746 -0
- package/build/abi/deth/delta.abi.json +22 -0
- package/build/abi/gmx/fast-price-events.json +70 -0
- package/build/abi/gmx/fast-price-feed.json +748 -0
- package/build/abi/gmx/reader.json +337 -0
- package/build/abi/gmx/vault-price-feed.json +477 -0
- package/build/abi/gmx/vault.json +2002 -0
- package/build/abi/idle-dao/idle-cdo-factory.json +38 -0
- package/build/abi/idle-dao/idle-cdo.json +1245 -0
- package/build/abi/infusion/InfusionFactory.json +147 -0
- package/build/abi/infusion/InfusionPair.json +658 -0
- package/build/abi/infusion/InfusionRouter.json +442 -0
- package/build/abi/jarvis/ChainlinkAccessControlledOffchainAggregator.json +1009 -0
- package/build/abi/jarvis/SynthereumPriceFeed.json +381 -0
- package/build/abi/jarvis/jarvis-v6-pool.json +1041 -0
- package/build/abi/kyberdmm/kyber-dmm-exchange-router.abi.json +1148 -0
- package/build/abi/kyberdmm/kyber-dmm-factory.abi.json +335 -0
- package/build/abi/kyberdmm/kyber-dmm-pool.abi.json +803 -0
- package/build/abi/maker-psm/pot.json +322 -0
- package/build/abi/maker-psm/psm.json +243 -0
- package/build/abi/maker-psm/vat.json +363 -0
- package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +773 -0
- package/build/abi/quick-perps/fast-price-events.json +70 -0
- package/build/abi/quick-perps/fast-price-feed.json +741 -0
- package/build/abi/quick-perps/reader.json +313 -0
- package/build/abi/quick-perps/vault-price-feed.json +323 -0
- package/build/abi/quick-perps/vault.json +1953 -0
- package/build/abi/synthetix/CombinedSynthetix.abi.json +442 -0
- package/build/abi/uniswap-v2/excalibur-pool.json +881 -0
- package/build/abi/uniswap-v2/mdex-factory.json +759 -0
- package/build/abi/wUSDM.json +757 -0
- package/build/abi/wombat/asset.json +743 -0
- package/build/abi/wombat/bmw.json +1247 -0
- package/build/abi/wombat/pool-v2.json +1289 -0
- package/build/abi/wombat/pool-v3.json +2013 -0
- package/build/abi/zrx.v2.json +1967 -0
- package/build/abi/zrx.v3.json +3454 -0
- package/build/abi/zrx.v4.json +2193 -0
- package/build/dex/OneInchLp.d.ts +24 -0
- package/build/dex/OneInchLp.js +43 -0
- package/build/dex/OneInchLp.js.map +1 -0
- package/build/dex/aave-v2/aave-v2.d.ts +33 -0
- package/build/dex/aave-v2/aave-v2.js +328 -0
- package/build/dex/aave-v2/aave-v2.js.map +1 -0
- package/build/dex/aave-v2/config.d.ts +14 -0
- package/build/dex/aave-v2/config.js +49 -0
- package/build/dex/aave-v2/config.js.map +1 -0
- package/build/dex/aave-v2/tokenlist.json +904 -0
- package/build/dex/aave-v2/tokens.d.ts +8 -0
- package/build/dex/aave-v2/tokens.js +65 -0
- package/build/dex/aave-v2/tokens.js.map +1 -0
- package/build/dex/aave-v2/types.d.ts +33 -0
- package/build/dex/aave-v2/types.js +11 -0
- package/build/dex/aave-v2/types.js.map +1 -0
- package/build/dex/bProtocol/bProtocol.d.ts +15 -0
- package/build/dex/bProtocol/bProtocol.js +56 -0
- package/build/dex/bProtocol/bProtocol.js.map +1 -0
- package/build/dex/bProtocol/types.d.ts +11 -0
- package/build/dex/bProtocol/types.js +8 -0
- package/build/dex/bProtocol/types.js.map +1 -0
- package/build/dex/bancor/bancor.d.ts +15 -0
- package/build/dex/bancor/bancor.js +74 -0
- package/build/dex/bancor/bancor.js.map +1 -0
- package/build/dex/bancor/config.d.ts +6 -0
- package/build/dex/bancor/config.js +11 -0
- package/build/dex/bancor/config.js.map +1 -0
- package/build/dex/bancor/types.d.ts +16 -0
- package/build/dex/bancor/types.js +8 -0
- package/build/dex/bancor/types.js.map +1 -0
- package/build/dex/bunni-v2/bunni-v2-pool.d.ts +62 -0
- package/build/dex/bunni-v2/bunni-v2-pool.js +505 -0
- package/build/dex/bunni-v2/bunni-v2-pool.js.map +1 -0
- package/build/dex/bunni-v2/bunni-v2.d.ts +51 -0
- package/build/dex/bunni-v2/bunni-v2.js +460 -0
- package/build/dex/bunni-v2/bunni-v2.js.map +1 -0
- package/build/dex/{renegade → bunni-v2}/config.d.ts +1 -1
- package/build/dex/bunni-v2/config.js +130 -0
- package/build/dex/bunni-v2/config.js.map +1 -0
- package/build/dex/bunni-v2/encoder.d.ts +19 -0
- package/build/dex/bunni-v2/encoder.js +400 -0
- package/build/dex/bunni-v2/encoder.js.map +1 -0
- package/build/dex/bunni-v2/getOnChainState.d.ts +26 -0
- package/build/dex/bunni-v2/getOnChainState.js +493 -0
- package/build/dex/bunni-v2/getOnChainState.js.map +1 -0
- package/build/dex/bunni-v2/hook/BunniSwapMath.d.ts +7 -0
- package/build/dex/bunni-v2/hook/BunniSwapMath.js +198 -0
- package/build/dex/bunni-v2/hook/BunniSwapMath.js.map +1 -0
- package/build/dex/bunni-v2/hook/SwapMath.d.ts +8 -0
- package/build/dex/bunni-v2/hook/SwapMath.js +65 -0
- package/build/dex/bunni-v2/hook/SwapMath.js.map +1 -0
- package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.d.ts +33 -0
- package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js +33 -0
- package/build/dex/bunni-v2/hooklet/FeeOverrideHooklet.js.map +1 -0
- package/build/dex/bunni-v2/hooklet/index.d.ts +21 -0
- package/build/dex/bunni-v2/hooklet/index.js +64 -0
- package/build/dex/bunni-v2/hooklet/index.js.map +1 -0
- package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.d.ts +70 -0
- package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js +277 -0
- package/build/dex/bunni-v2/ldf/CarpetedDoubleGeometricDistribution.js.map +1 -0
- package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.d.ts +64 -0
- package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js +262 -0
- package/build/dex/bunni-v2/ldf/CarpetedGeometricDistribution.js.map +1 -0
- package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.d.ts +60 -0
- package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js +224 -0
- package/build/dex/bunni-v2/ldf/DoubleGeometricDistribution.js.map +1 -0
- package/build/dex/bunni-v2/ldf/GeometricDistribution.d.ts +56 -0
- package/build/dex/bunni-v2/ldf/GeometricDistribution.js +489 -0
- package/build/dex/bunni-v2/ldf/GeometricDistribution.js.map +1 -0
- package/build/dex/bunni-v2/ldf/LDFType.d.ts +5 -0
- package/build/dex/bunni-v2/ldf/LDFType.js +10 -0
- package/build/dex/bunni-v2/ldf/LDFType.js.map +1 -0
- package/build/dex/bunni-v2/ldf/ShiftMode.d.ts +7 -0
- package/build/dex/bunni-v2/ldf/ShiftMode.js +19 -0
- package/build/dex/bunni-v2/ldf/ShiftMode.js.map +1 -0
- package/build/dex/bunni-v2/ldf/UniformDistribution.d.ts +55 -0
- package/build/dex/bunni-v2/ldf/UniformDistribution.js +291 -0
- package/build/dex/bunni-v2/ldf/UniformDistribution.js.map +1 -0
- package/build/dex/bunni-v2/ldf/index.d.ts +15 -0
- package/build/dex/bunni-v2/ldf/index.js +21 -0
- package/build/dex/bunni-v2/ldf/index.js.map +1 -0
- package/build/dex/bunni-v2/lib/AmAmmPayload.d.ts +4 -0
- package/build/dex/bunni-v2/lib/AmAmmPayload.js +10 -0
- package/build/dex/bunni-v2/lib/AmAmmPayload.js.map +1 -0
- package/build/dex/bunni-v2/lib/BitMath.d.ts +4 -0
- package/build/dex/bunni-v2/lib/BitMath.js +24 -0
- package/build/dex/bunni-v2/lib/BitMath.js.map +1 -0
- package/build/dex/bunni-v2/lib/Constants.d.ts +15 -0
- package/build/dex/bunni-v2/lib/Constants.js +19 -0
- package/build/dex/bunni-v2/lib/Constants.js.map +1 -0
- package/build/dex/bunni-v2/lib/ExpMath.d.ts +5 -0
- package/build/dex/bunni-v2/lib/ExpMath.js +121 -0
- package/build/dex/bunni-v2/lib/ExpMath.js.map +1 -0
- package/build/dex/bunni-v2/lib/FeeMath.d.ts +2 -0
- package/build/dex/bunni-v2/lib/FeeMath.js +27 -0
- package/build/dex/bunni-v2/lib/FeeMath.js.map +1 -0
- package/build/dex/bunni-v2/lib/FixedPointMath.d.ts +3 -0
- package/build/dex/bunni-v2/lib/FixedPointMath.js +15 -0
- package/build/dex/bunni-v2/lib/FixedPointMath.js.map +1 -0
- package/build/dex/bunni-v2/lib/FullMathX96.d.ts +4 -0
- package/build/dex/bunni-v2/lib/FullMathX96.js +21 -0
- package/build/dex/bunni-v2/lib/FullMathX96.js.map +1 -0
- package/build/dex/bunni-v2/lib/IdleBalance.d.ts +11 -0
- package/build/dex/bunni-v2/lib/IdleBalance.js +33 -0
- package/build/dex/bunni-v2/lib/IdleBalance.js.map +1 -0
- package/build/dex/bunni-v2/lib/LiquidityAmounts.d.ts +6 -0
- package/build/dex/bunni-v2/lib/LiquidityAmounts.js +25 -0
- package/build/dex/bunni-v2/lib/LiquidityAmounts.js.map +1 -0
- package/build/dex/bunni-v2/lib/Math.d.ts +28 -0
- package/build/dex/bunni-v2/lib/Math.js +169 -0
- package/build/dex/bunni-v2/lib/Math.js.map +1 -0
- package/build/dex/bunni-v2/lib/Oracle.d.ts +27 -0
- package/build/dex/bunni-v2/lib/Oracle.js +180 -0
- package/build/dex/bunni-v2/lib/Oracle.js.map +1 -0
- package/build/dex/bunni-v2/lib/QueryLDF.d.ts +12 -0
- package/build/dex/bunni-v2/lib/QueryLDF.js +90 -0
- package/build/dex/bunni-v2/lib/QueryLDF.js.map +1 -0
- package/build/dex/bunni-v2/lib/QueryTwap.d.ts +2 -0
- package/build/dex/bunni-v2/lib/QueryTwap.js +13 -0
- package/build/dex/bunni-v2/lib/QueryTwap.js.map +1 -0
- package/build/dex/bunni-v2/lib/SqrtPriceMath.d.ts +8 -0
- package/build/dex/bunni-v2/lib/SqrtPriceMath.js +84 -0
- package/build/dex/bunni-v2/lib/SqrtPriceMath.js.map +1 -0
- package/build/dex/bunni-v2/lib/TickMath.d.ts +11 -0
- package/build/dex/bunni-v2/lib/TickMath.js +100 -0
- package/build/dex/bunni-v2/lib/TickMath.js.map +1 -0
- package/build/dex/bunni-v2/lib/VaultMath.d.ts +2 -0
- package/build/dex/bunni-v2/lib/VaultMath.js +11 -0
- package/build/dex/bunni-v2/lib/VaultMath.js.map +1 -0
- package/build/dex/bunni-v2/logic/AmAmm.d.ts +11 -0
- package/build/dex/bunni-v2/logic/AmAmm.js +156 -0
- package/build/dex/bunni-v2/logic/AmAmm.js.map +1 -0
- package/build/dex/bunni-v2/logic/BunniHookLogic.d.ts +10 -0
- package/build/dex/bunni-v2/logic/BunniHookLogic.js +298 -0
- package/build/dex/bunni-v2/logic/BunniHookLogic.js.map +1 -0
- package/build/dex/bunni-v2/logic/BunniHubLogic.d.ts +5 -0
- package/build/dex/bunni-v2/logic/BunniHubLogic.js +245 -0
- package/build/dex/bunni-v2/logic/BunniHubLogic.js.map +1 -0
- package/build/dex/bunni-v2/logic/BunniQuoter.d.ts +12 -0
- package/build/dex/bunni-v2/logic/BunniQuoter.js +201 -0
- package/build/dex/bunni-v2/logic/BunniQuoter.js.map +1 -0
- package/build/dex/bunni-v2/subgraph.d.ts +7 -0
- package/build/dex/bunni-v2/subgraph.js +184 -0
- package/build/dex/bunni-v2/subgraph.js.map +1 -0
- package/build/dex/bunni-v2/types.d.ts +257 -0
- package/build/dex/{renegade/api → bunni-v2}/types.js.map +1 -1
- package/build/dex/bunni-v2/utils.d.ts +12 -0
- package/build/dex/bunni-v2/utils.js +182 -0
- package/build/dex/bunni-v2/utils.js.map +1 -0
- package/build/dex/compound/compound.d.ts +15 -0
- package/build/dex/compound/compound.js +57 -0
- package/build/dex/compound/compound.js.map +1 -0
- package/build/dex/compound/types.d.ts +8 -0
- package/build/dex/compound/types.js +9 -0
- package/build/dex/compound/types.js.map +1 -0
- package/build/dex/concentrator-arusd/concentrator-arusd-event.d.ts +17 -0
- package/build/dex/concentrator-arusd/concentrator-arusd-event.js +69 -0
- package/build/dex/concentrator-arusd/concentrator-arusd-event.js.map +1 -0
- package/build/dex/concentrator-arusd/concentrator-arusd.d.ts +41 -0
- package/build/dex/concentrator-arusd/concentrator-arusd.js +202 -0
- package/build/dex/concentrator-arusd/concentrator-arusd.js.map +1 -0
- package/build/dex/concentrator-arusd/config.d.ts +3 -0
- package/build/dex/concentrator-arusd/config.js +14 -0
- package/build/dex/concentrator-arusd/config.js.map +1 -0
- package/build/dex/concentrator-arusd/types.d.ts +14 -0
- package/build/dex/concentrator-arusd/types.js +3 -0
- package/build/dex/concentrator-arusd/types.js.map +1 -0
- package/build/dex/concentrator-arusd/utils.d.ts +4 -0
- package/build/dex/concentrator-arusd/utils.js +26 -0
- package/build/dex/concentrator-arusd/utils.js.map +1 -0
- package/build/dex/curve-v1/forks/swerve/config.d.ts +4 -0
- package/build/dex/curve-v1/forks/swerve/config.js +47 -0
- package/build/dex/curve-v1/forks/swerve/config.js.map +1 -0
- package/build/dex/curve-v1/forks/swerve/swerve.d.ts +16 -0
- package/build/dex/curve-v1/forks/swerve/swerve.js +46 -0
- package/build/dex/curve-v1/forks/swerve/swerve.js.map +1 -0
- package/build/dex/deth/config.d.ts +6 -0
- package/build/dex/deth/config.js +41 -0
- package/build/dex/deth/config.js.map +1 -0
- package/build/dex/deth/dETH.d.ts +29 -0
- package/build/dex/deth/dETH.js +130 -0
- package/build/dex/deth/dETH.js.map +1 -0
- package/build/dex/ekubo/pools/base-pool.d.ts +47 -0
- package/build/dex/ekubo/pools/base-pool.js +184 -0
- package/build/dex/ekubo/pools/base-pool.js.map +1 -0
- package/build/dex/ekubo/pools/iface.d.ts +46 -0
- package/build/dex/ekubo/pools/iface.js +75 -0
- package/build/dex/ekubo/pools/iface.js.map +1 -0
- package/build/dex/ekubo/pools/math/price.d.ts +7 -0
- package/build/dex/ekubo/pools/math/price.js +112 -0
- package/build/dex/ekubo/pools/math/price.js.map +1 -0
- package/build/dex/ekubo/pools/oracle-pool.d.ts +10 -0
- package/build/dex/ekubo/pools/oracle-pool.js +19 -0
- package/build/dex/ekubo/pools/oracle-pool.js.map +1 -0
- package/build/dex/ekubo/pools/pool-utils.d.ts +44 -0
- package/build/dex/ekubo/pools/pool-utils.js +240 -0
- package/build/dex/ekubo/pools/pool-utils.js.map +1 -0
- package/build/dex/gmx/config.d.ts +11 -0
- package/build/dex/gmx/config.js +61 -0
- package/build/dex/gmx/config.js.map +1 -0
- package/build/dex/gmx/fast-price-feed.d.ts +26 -0
- package/build/dex/gmx/fast-price-feed.js +184 -0
- package/build/dex/gmx/fast-price-feed.js.map +1 -0
- package/build/dex/gmx/gmx.d.ts +54 -0
- package/build/dex/gmx/gmx.js +247 -0
- package/build/dex/gmx/gmx.js.map +1 -0
- package/build/dex/gmx/pool.d.ts +21 -0
- package/build/dex/gmx/pool.js +212 -0
- package/build/dex/gmx/pool.js.map +1 -0
- package/build/dex/gmx/types.d.ts +100 -0
- package/build/dex/gmx/types.js +3 -0
- package/build/dex/gmx/types.js.map +1 -0
- package/build/dex/gmx/usdg.d.ts +15 -0
- package/build/dex/gmx/usdg.js +62 -0
- package/build/dex/gmx/usdg.js.map +1 -0
- package/build/dex/gmx/vault-price-feed.d.ts +47 -0
- package/build/dex/gmx/vault-price-feed.js +245 -0
- package/build/dex/gmx/vault-price-feed.js.map +1 -0
- package/build/dex/gmx/vault-utils.d.ts +8 -0
- package/build/dex/gmx/vault-utils.js +42 -0
- package/build/dex/gmx/vault-utils.js.map +1 -0
- package/build/dex/gmx/vault.d.ts +46 -0
- package/build/dex/gmx/vault.js +182 -0
- package/build/dex/gmx/vault.js.map +1 -0
- package/build/dex/idle-dao/config.d.ts +5 -0
- package/build/dex/idle-dao/config.js +24 -0
- package/build/dex/idle-dao/config.js.map +1 -0
- package/build/dex/idle-dao/idle-dao.d.ts +42 -0
- package/build/dex/idle-dao/idle-dao.js +279 -0
- package/build/dex/idle-dao/idle-dao.js.map +1 -0
- package/build/dex/idle-dao/token_list.d.ts +4 -0
- package/build/dex/idle-dao/token_list.js +289 -0
- package/build/dex/idle-dao/token_list.js.map +1 -0
- package/build/dex/idle-dao/tokens.d.ts +9 -0
- package/build/dex/idle-dao/tokens.js +68 -0
- package/build/dex/idle-dao/tokens.js.map +1 -0
- package/build/dex/idle-dao/types.d.ts +35 -0
- package/build/dex/idle-dao/types.js +11 -0
- package/build/dex/idle-dao/types.js.map +1 -0
- package/build/dex/idle-dao/utils.d.ts +8 -0
- package/build/dex/idle-dao/utils.js +149 -0
- package/build/dex/idle-dao/utils.js.map +1 -0
- package/build/dex/index.js +2 -0
- package/build/dex/index.js.map +1 -1
- package/build/dex/infusion/config.d.ts +3 -0
- package/build/dex/infusion/config.js +20 -0
- package/build/dex/infusion/config.js.map +1 -0
- package/build/dex/infusion/infusion-stable-pool.d.ts +4 -0
- package/build/dex/infusion/infusion-stable-pool.js +74 -0
- package/build/dex/infusion/infusion-stable-pool.js.map +1 -0
- package/build/dex/infusion/infusion.d.ts +51 -0
- package/build/dex/infusion/infusion.js +500 -0
- package/build/dex/infusion/infusion.js.map +1 -0
- package/build/dex/infusion/types.d.ts +45 -0
- package/build/dex/infusion/types.js +3 -0
- package/build/dex/infusion/types.js.map +1 -0
- package/build/dex/infusion/utils/isStablePair.d.ts +2 -0
- package/build/dex/infusion/utils/isStablePair.js +18 -0
- package/build/dex/infusion/utils/isStablePair.js.map +1 -0
- package/build/dex/jarvis-v6/chainLinkpriceFeed-event.d.ts +15 -0
- package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js +51 -0
- package/build/dex/jarvis-v6/chainLinkpriceFeed-event.js.map +1 -0
- package/build/dex/jarvis-v6/config.d.ts +4 -0
- package/build/dex/jarvis-v6/config.js +244 -0
- package/build/dex/jarvis-v6/config.js.map +1 -0
- package/build/dex/jarvis-v6/jarvis-v6-events.d.ts +27 -0
- package/build/dex/jarvis-v6/jarvis-v6-events.js +54 -0
- package/build/dex/jarvis-v6/jarvis-v6-events.js.map +1 -0
- package/build/dex/jarvis-v6/jarvis-v6.d.ts +49 -0
- package/build/dex/jarvis-v6/jarvis-v6.js +321 -0
- package/build/dex/jarvis-v6/jarvis-v6.js.map +1 -0
- package/build/dex/jarvis-v6/syntheteumPool-event.d.ts +15 -0
- package/build/dex/jarvis-v6/syntheteumPool-event.js +49 -0
- package/build/dex/jarvis-v6/syntheteumPool-event.js.map +1 -0
- package/build/dex/jarvis-v6/types.d.ts +48 -0
- package/build/dex/jarvis-v6/types.js +9 -0
- package/build/dex/jarvis-v6/types.js.map +1 -0
- package/build/dex/jarvis-v6/utils.d.ts +13 -0
- package/build/dex/jarvis-v6/utils.js +75 -0
- package/build/dex/jarvis-v6/utils.js.map +1 -0
- package/build/dex/jarvis.d.ts +56 -0
- package/build/dex/jarvis.js +163 -0
- package/build/dex/jarvis.js.map +1 -0
- package/build/dex/kyberdmm/config.d.ts +9 -0
- package/build/dex/kyberdmm/config.js +59 -0
- package/build/dex/kyberdmm/config.js.map +1 -0
- package/build/dex/kyberdmm/fee-formula.d.ts +15 -0
- package/build/dex/kyberdmm/fee-formula.js +88 -0
- package/build/dex/kyberdmm/fee-formula.js.map +1 -0
- package/build/dex/kyberdmm/kyberdmm.d.ts +55 -0
- package/build/dex/kyberdmm/kyberdmm.js +447 -0
- package/build/dex/kyberdmm/kyberdmm.js.map +1 -0
- package/build/dex/kyberdmm/math-ext.d.ts +2 -0
- package/build/dex/kyberdmm/math-ext.js +27 -0
- package/build/dex/kyberdmm/math-ext.js.map +1 -0
- package/build/dex/kyberdmm/pool.d.ts +50 -0
- package/build/dex/kyberdmm/pool.js +157 -0
- package/build/dex/kyberdmm/pool.js.map +1 -0
- package/build/dex/kyberdmm/types.d.ts +81 -0
- package/build/dex/kyberdmm/types.js +9 -0
- package/build/dex/kyberdmm/types.js.map +1 -0
- package/build/dex/mStable.d.ts +44 -0
- package/build/dex/mStable.js +75 -0
- package/build/dex/mStable.js.map +1 -0
- package/build/dex/maker-psm/config.d.ts +11 -0
- package/build/dex/maker-psm/config.js +53 -0
- package/build/dex/maker-psm/config.js.map +1 -0
- package/build/dex/maker-psm/maker-psm.d.ts +103 -0
- package/build/dex/maker-psm/maker-psm.js +493 -0
- package/build/dex/maker-psm/maker-psm.js.map +1 -0
- package/build/dex/maker-psm/types.d.ts +39 -0
- package/build/dex/maker-psm/types.js +3 -0
- package/build/dex/maker-psm/types.js.map +1 -0
- package/build/dex/onebit/onebit.d.ts +16 -0
- package/build/dex/onebit/onebit.js +61 -0
- package/build/dex/onebit/onebit.js.map +1 -0
- package/build/dex/onebit/types.d.ts +14 -0
- package/build/dex/onebit/types.js +8 -0
- package/build/dex/onebit/types.js.map +1 -0
- package/build/dex/quick-perps/config.d.ts +11 -0
- package/build/dex/quick-perps/config.js +27 -0
- package/build/dex/quick-perps/config.js.map +1 -0
- package/build/dex/quick-perps/fast-price-feed.d.ts +26 -0
- package/build/dex/quick-perps/fast-price-feed.js +184 -0
- package/build/dex/quick-perps/fast-price-feed.js.map +1 -0
- package/build/dex/quick-perps/pool.d.ts +21 -0
- package/build/dex/quick-perps/pool.js +229 -0
- package/build/dex/quick-perps/pool.js.map +1 -0
- package/build/dex/quick-perps/quick-perps.d.ts +53 -0
- package/build/dex/quick-perps/quick-perps.js +247 -0
- package/build/dex/quick-perps/quick-perps.js.map +1 -0
- package/build/dex/quick-perps/types.d.ts +98 -0
- package/build/dex/quick-perps/types.js +3 -0
- package/build/dex/quick-perps/types.js.map +1 -0
- package/build/dex/quick-perps/usdq.d.ts +15 -0
- package/build/dex/quick-perps/usdq.js +62 -0
- package/build/dex/quick-perps/usdq.js.map +1 -0
- package/build/dex/quick-perps/vault-price-feed.d.ts +43 -0
- package/build/dex/quick-perps/vault-price-feed.js +203 -0
- package/build/dex/quick-perps/vault-price-feed.js.map +1 -0
- package/build/dex/quick-perps/vault-utils.d.ts +8 -0
- package/build/dex/quick-perps/vault-utils.js +42 -0
- package/build/dex/quick-perps/vault-utils.js.map +1 -0
- package/build/dex/quick-perps/vault.d.ts +46 -0
- package/build/dex/quick-perps/vault.js +182 -0
- package/build/dex/quick-perps/vault.js.map +1 -0
- package/build/dex/quickswap/thena-fusion.d.ts +6 -0
- package/build/dex/quickswap/thena-fusion.js +19 -0
- package/build/dex/quickswap/thena-fusion.js.map +1 -0
- package/build/dex/se-vlr/config.d.ts +3 -0
- package/build/dex/se-vlr/config.js +24 -0
- package/build/dex/se-vlr/config.js.map +1 -0
- package/build/dex/se-vlr/se-vlr-pool.d.ts +39 -0
- package/build/dex/se-vlr/se-vlr-pool.js +70 -0
- package/build/dex/se-vlr/se-vlr-pool.js.map +1 -0
- package/build/dex/se-vlr/se-vlr.d.ts +35 -0
- package/build/dex/se-vlr/se-vlr.js +131 -0
- package/build/dex/se-vlr/se-vlr.js.map +1 -0
- package/build/dex/se-vlr/types.d.ts +6 -0
- package/build/dex/se-vlr/types.js +3 -0
- package/build/dex/se-vlr/types.js.map +1 -0
- package/build/dex/shell.d.ts +25 -0
- package/build/dex/shell.js +41 -0
- package/build/dex/shell.js.map +1 -0
- package/build/dex/smoothy/smoothy.d.ts +16 -0
- package/build/dex/smoothy/smoothy.js +60 -0
- package/build/dex/smoothy/smoothy.js.map +1 -0
- package/build/dex/smoothy/types.d.ts +15 -0
- package/build/dex/smoothy/types.js +8 -0
- package/build/dex/smoothy/types.js.map +1 -0
- package/build/dex/solidly/forks-override/aerodrome.d.ts +14 -0
- package/build/dex/solidly/forks-override/aerodrome.js +46 -0
- package/build/dex/solidly/forks-override/aerodrome.js.map +1 -0
- package/build/dex/solidly/forks-override/chronos.d.ts +23 -0
- package/build/dex/solidly/forks-override/chronos.js +141 -0
- package/build/dex/solidly/forks-override/chronos.js.map +1 -0
- package/build/dex/solidly/forks-override/usdfi.d.ts +8 -0
- package/build/dex/solidly/forks-override/usdfi.js +15 -0
- package/build/dex/solidly/forks-override/usdfi.js.map +1 -0
- package/build/dex/solidly/forks-override/velocimeter.d.ts +23 -0
- package/build/dex/solidly/forks-override/velocimeter.js +77 -0
- package/build/dex/solidly/forks-override/velocimeter.js.map +1 -0
- package/build/dex/stader/config.d.ts +3 -0
- package/build/dex/stader/config.js +14 -0
- package/build/dex/stader/config.js.map +1 -0
- package/build/dex/stader/stader-pool.d.ts +19 -0
- package/build/dex/stader/stader-pool.js +56 -0
- package/build/dex/stader/stader-pool.js.map +1 -0
- package/build/dex/stader/stader.d.ts +42 -0
- package/build/dex/stader/stader.js +195 -0
- package/build/dex/stader/stader.js.map +1 -0
- package/build/dex/stader/types.d.ts +13 -0
- package/build/dex/stader/types.js +8 -0
- package/build/dex/stader/types.js.map +1 -0
- package/build/dex/stader/utils.d.ts +4 -0
- package/build/dex/stader/utils.js +23 -0
- package/build/dex/stader/utils.js.map +1 -0
- package/build/dex/synthetix/config.d.ts +4 -0
- package/build/dex/synthetix/config.js +53 -0
- package/build/dex/synthetix/config.js.map +1 -0
- package/build/dex/synthetix/constants.d.ts +23 -0
- package/build/dex/synthetix/constants.js +32 -0
- package/build/dex/synthetix/constants.js.map +1 -0
- package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.d.ts +17 -0
- package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js +102 -0
- package/build/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.js.map +1 -0
- package/build/dex/synthetix/contract-math/ExchangeRates.d.ts +8 -0
- package/build/dex/synthetix/contract-math/ExchangeRates.js +77 -0
- package/build/dex/synthetix/contract-math/ExchangeRates.js.map +1 -0
- package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.d.ts +17 -0
- package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js +126 -0
- package/build/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.js.map +1 -0
- package/build/dex/synthetix/contract-math/FullMath.d.ts +3 -0
- package/build/dex/synthetix/contract-math/FullMath.js +14 -0
- package/build/dex/synthetix/contract-math/FullMath.js.map +1 -0
- package/build/dex/synthetix/contract-math/OracleLibrary.d.ts +8 -0
- package/build/dex/synthetix/contract-math/OracleLibrary.js +60 -0
- package/build/dex/synthetix/contract-math/OracleLibrary.js.map +1 -0
- package/build/dex/synthetix/contract-math/SafeDecimalMath.d.ts +9 -0
- package/build/dex/synthetix/contract-math/SafeDecimalMath.js +41 -0
- package/build/dex/synthetix/contract-math/SafeDecimalMath.js.map +1 -0
- package/build/dex/synthetix/contract-math/TickMath.d.ts +7 -0
- package/build/dex/synthetix/contract-math/TickMath.js +63 -0
- package/build/dex/synthetix/contract-math/TickMath.js.map +1 -0
- package/build/dex/synthetix/contract-math/synthetix-math.d.ts +17 -0
- package/build/dex/synthetix/contract-math/synthetix-math.js +127 -0
- package/build/dex/synthetix/contract-math/synthetix-math.js.map +1 -0
- package/build/dex/synthetix/synthetix-state.d.ts +36 -0
- package/build/dex/synthetix/synthetix-state.js +615 -0
- package/build/dex/synthetix/synthetix-state.js.map +1 -0
- package/build/dex/synthetix/synthetix.d.ts +45 -0
- package/build/dex/synthetix/synthetix.js +304 -0
- package/build/dex/synthetix/synthetix.js.map +1 -0
- package/build/dex/synthetix/types.d.ts +90 -0
- package/build/dex/synthetix/types.js +3 -0
- package/build/dex/synthetix/types.js.map +1 -0
- package/build/dex/synthetix/utils.d.ts +10 -0
- package/build/dex/synthetix/utils.js +91 -0
- package/build/dex/synthetix/utils.js.map +1 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1.d.ts +7 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js +20 -0
- package/build/dex/trader-joe-v2.1/trader-joe-v2.1.js.map +1 -0
- package/build/dex/trader-joe-v2.d.ts +40 -0
- package/build/dex/trader-joe-v2.js +74 -0
- package/build/dex/trader-joe-v2.js.map +1 -0
- package/build/dex/uniswap-v2/dfyn.d.ts +19 -0
- package/build/dex/uniswap-v2/dfyn.js +61 -0
- package/build/dex/uniswap-v2/dfyn.js.map +1 -0
- package/build/dex/uniswap-v2/excalibur.d.ts +24 -0
- package/build/dex/uniswap-v2/excalibur.js +47 -0
- package/build/dex/uniswap-v2/excalibur.js.map +1 -0
- package/build/dex/uniswap-v2/mdex.d.ts +24 -0
- package/build/dex/uniswap-v2/mdex.js +50 -0
- package/build/dex/uniswap-v2/mdex.js.map +1 -0
- package/build/dex/uniswap-v2/nomiswap-v2.d.ts +24 -0
- package/build/dex/uniswap-v2/nomiswap-v2.js +57 -0
- package/build/dex/uniswap-v2/nomiswap-v2.js.map +1 -0
- package/build/dex/uniswap-v3/config.js +1 -1
- package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
- package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
- package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
- package/build/dex/uniswap-v4/contract-math/Position.d.ts +3 -0
- package/build/dex/uniswap-v4/contract-math/Position.js +10 -0
- package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -0
- package/build/dex/usual-bond/config.d.ts +3 -0
- package/build/dex/usual-bond/config.js +13 -0
- package/build/dex/usual-bond/config.js.map +1 -0
- package/build/dex/usual-bond/types.d.ts +7 -0
- package/build/dex/usual-bond/types.js +3 -0
- package/build/dex/usual-bond/types.js.map +1 -0
- package/build/dex/usual-bond/usual-bond.d.ts +35 -0
- package/build/dex/usual-bond/usual-bond.js +176 -0
- package/build/dex/usual-bond/usual-bond.js.map +1 -0
- package/build/dex/wombat/config.d.ts +4 -0
- package/build/dex/wombat/config.js +77 -0
- package/build/dex/wombat/config.js.map +1 -0
- package/build/dex/wombat/types.d.ts +34 -0
- package/build/dex/wombat/types.js +3 -0
- package/build/dex/wombat/types.js.map +1 -0
- package/build/dex/wombat/utils.d.ts +10 -0
- package/build/dex/wombat/utils.js +79 -0
- package/build/dex/wombat/utils.js.map +1 -0
- package/build/dex/wombat/wombat-bmw.d.ts +40 -0
- package/build/dex/wombat/wombat-bmw.js +136 -0
- package/build/dex/wombat/wombat-bmw.js.map +1 -0
- package/build/dex/wombat/wombat-pool.d.ts +60 -0
- package/build/dex/wombat/wombat-pool.js +488 -0
- package/build/dex/wombat/wombat-pool.js.map +1 -0
- package/build/dex/wombat/wombat-quoter.d.ts +17 -0
- package/build/dex/wombat/wombat-quoter.js +192 -0
- package/build/dex/wombat/wombat-quoter.js.map +1 -0
- package/build/dex/wombat/wombat.d.ts +58 -0
- package/build/dex/wombat/wombat.js +298 -0
- package/build/dex/wombat/wombat.js.map +1 -0
- package/build/dex/wusdm/config.d.ts +3 -0
- package/build/dex/wusdm/config.js +43 -0
- package/build/dex/wusdm/config.js.map +1 -0
- package/build/dex/wusdm/constants.d.ts +2 -0
- package/build/dex/wusdm/constants.js +6 -0
- package/build/dex/wusdm/constants.js.map +1 -0
- package/build/dex/wusdm/types.d.ts +18 -0
- package/build/dex/wusdm/types.js +11 -0
- package/build/dex/wusdm/types.js.map +1 -0
- package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
- package/build/dex/wusdm/wusdm-pool.js +74 -0
- package/build/dex/wusdm/wusdm-pool.js.map +1 -0
- package/build/dex/wusdm/wusdm.d.ts +46 -0
- package/build/dex/wusdm/wusdm.js +243 -0
- package/build/dex/wusdm/wusdm.js.map +1 -0
- package/build/dex/zerox/config.d.ts +2 -0
- package/build/dex/zerox/config.js +33 -0
- package/build/dex/zerox/config.js.map +1 -0
- package/build/dex/zerox/index.d.ts +22 -0
- package/build/dex/zerox/index.js +225 -0
- package/build/dex/zerox/index.js.map +1 -0
- package/build/dex/zerox/order.d.ts +88 -0
- package/build/dex/zerox/order.js +53 -0
- package/build/dex/zerox/order.js.map +1 -0
- package/build/dex/zerox/types.d.ts +73 -0
- package/build/dex/zerox/types.js +21 -0
- package/build/dex/zerox/types.js.map +1 -0
- package/package.json +1 -1
- package/build/dex/renegade/api/auth.d.ts +0 -1
- package/build/dex/renegade/api/auth.js +0 -63
- package/build/dex/renegade/api/auth.js.map +0 -1
- package/build/dex/renegade/api/renegade-client.d.ts +0 -18
- package/build/dex/renegade/api/renegade-client.js +0 -82
- package/build/dex/renegade/api/renegade-client.js.map +0 -1
- package/build/dex/renegade/api/types.d.ts +0 -110
- package/build/dex/renegade/config.js +0 -16
- package/build/dex/renegade/config.js.map +0 -1
- package/build/dex/renegade/constants.d.ts +0 -25
- package/build/dex/renegade/constants.js +0 -47
- package/build/dex/renegade/constants.js.map +0 -1
- package/build/dex/renegade/rate-fetcher.d.ts +0 -23
- package/build/dex/renegade/rate-fetcher.js +0 -135
- package/build/dex/renegade/rate-fetcher.js.map +0 -1
- package/build/dex/renegade/renegade-levels-response.d.ts +0 -22
- package/build/dex/renegade/renegade-levels-response.js +0 -99
- package/build/dex/renegade/renegade-levels-response.js.map +0 -1
- package/build/dex/renegade/renegade.d.ts +0 -57
- package/build/dex/renegade/renegade.js +0 -499
- package/build/dex/renegade/renegade.js.map +0 -1
- package/build/dex/renegade/types.d.ts +0 -38
- package/build/dex/renegade/types.js +0 -4
- package/build/dex/renegade/types.js.map +0 -1
- /package/build/dex/{renegade/api → bunni-v2}/types.js +0 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeSwap = computeSwap;
|
|
4
|
+
const ldf_1 = require("../ldf");
|
|
5
|
+
const FullMathX96_1 = require("../lib/FullMathX96");
|
|
6
|
+
const IdleBalance_1 = require("../lib/IdleBalance");
|
|
7
|
+
const Math_1 = require("../lib/Math");
|
|
8
|
+
const QueryLDF_1 = require("../lib/QueryLDF");
|
|
9
|
+
const TickMath_1 = require("../lib/TickMath");
|
|
10
|
+
const SwapMath_1 = require("./SwapMath");
|
|
11
|
+
const EPSILON_FEE = 30n;
|
|
12
|
+
function computeSwap(input, dexParams) {
|
|
13
|
+
const zeroForOne = input.swapParams.zeroForOne;
|
|
14
|
+
const exactIn = input.swapParams.amountSpecified < 0n;
|
|
15
|
+
let updatedSqrtPriceX96 = 0n;
|
|
16
|
+
let inputAmount = exactIn ? -input.swapParams.amountSpecified : 0n;
|
|
17
|
+
let outputAmount = exactIn ? 0n : input.swapParams.amountSpecified;
|
|
18
|
+
const updatedRoundedTickLiquidity = (input.totalLiquidity * input.liquidityDensityOfRoundedTickX96) >> 96n;
|
|
19
|
+
let updatedTick = input.currentTick;
|
|
20
|
+
let sqrtPriceLimitX96 = input.swapParams.sqrtPriceLimitX96;
|
|
21
|
+
const minSqrtPrice = TickMath_1.TickMath.getSqrtPriceAtTick(TickMath_1.TickMath.minUsableTick(input.key.tickSpacing));
|
|
22
|
+
const maxSqrtPrice = TickMath_1.TickMath.getSqrtPriceAtTick(TickMath_1.TickMath.maxUsableTick(input.key.tickSpacing));
|
|
23
|
+
if ((zeroForOne && sqrtPriceLimitX96 <= minSqrtPrice) ||
|
|
24
|
+
(!zeroForOne && sqrtPriceLimitX96 >= maxSqrtPrice)) {
|
|
25
|
+
sqrtPriceLimitX96 = zeroForOne ? minSqrtPrice + 1n : maxSqrtPrice - 1n;
|
|
26
|
+
}
|
|
27
|
+
const { roundedTick, nextRoundedTick } = (0, Math_1.roundTick)(input.currentTick, input.key.tickSpacing);
|
|
28
|
+
let naiveSwapResultSqrtPriceX96 = 0n;
|
|
29
|
+
let naiveSwapAmountIn = 0n;
|
|
30
|
+
let naiveSwapAmountOut = 0n;
|
|
31
|
+
if (updatedRoundedTickLiquidity !== 0n) {
|
|
32
|
+
const tickNext = zeroForOne ? roundedTick : nextRoundedTick;
|
|
33
|
+
const sqrtPriceNextX96 = TickMath_1.TickMath.getSqrtPriceAtTick(tickNext);
|
|
34
|
+
({
|
|
35
|
+
sqrtPriceNextX96: naiveSwapResultSqrtPriceX96,
|
|
36
|
+
amountIn: naiveSwapAmountIn,
|
|
37
|
+
amountOut: naiveSwapAmountOut,
|
|
38
|
+
} = (0, SwapMath_1.computeSwapStep)(input.sqrtPriceX96, (0, SwapMath_1.getSqrtPriceTarget)(zeroForOne, sqrtPriceNextX96, sqrtPriceLimitX96), updatedRoundedTickLiquidity, input.swapParams.amountSpecified, 0n));
|
|
39
|
+
if (exactIn
|
|
40
|
+
? naiveSwapAmountIn === -input.swapParams.amountSpecified
|
|
41
|
+
: naiveSwapAmountOut === input.swapParams.amountSpecified) {
|
|
42
|
+
if (naiveSwapResultSqrtPriceX96 === sqrtPriceNextX96) {
|
|
43
|
+
updatedTick = zeroForOne ? tickNext - 1n : tickNext;
|
|
44
|
+
}
|
|
45
|
+
else if (naiveSwapResultSqrtPriceX96 !== input.sqrtPriceX96) {
|
|
46
|
+
updatedTick = TickMath_1.TickMath.getTickAtSqrtPrice(naiveSwapResultSqrtPriceX96);
|
|
47
|
+
}
|
|
48
|
+
naiveSwapAmountOut = (0, Math_1.min)(naiveSwapAmountOut, zeroForOne ? input.currentActiveBalance1 : input.currentActiveBalance0);
|
|
49
|
+
return {
|
|
50
|
+
updatedSqrtPriceX96: naiveSwapResultSqrtPriceX96,
|
|
51
|
+
updatedTick,
|
|
52
|
+
inputAmount: naiveSwapAmountIn,
|
|
53
|
+
outputAmount: naiveSwapAmountOut,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// swap crosses rounded tick
|
|
58
|
+
let inverseCumulativeAmountFnInput = 0n;
|
|
59
|
+
if (exactIn) {
|
|
60
|
+
inverseCumulativeAmountFnInput = zeroForOne
|
|
61
|
+
? input.currentActiveBalance0 + inputAmount
|
|
62
|
+
: input.currentActiveBalance1 + inputAmount;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
inverseCumulativeAmountFnInput = zeroForOne
|
|
66
|
+
? input.currentActiveBalance1 - outputAmount
|
|
67
|
+
: input.currentActiveBalance0 - outputAmount;
|
|
68
|
+
}
|
|
69
|
+
// LDF compute swap
|
|
70
|
+
let { success, roundedTick: updatedRoundedTick, cumulativeAmount0_: cumulativeAmount0, cumulativeAmount1_: cumulativeAmount1, swapLiquidity, } = (0, ldf_1._computeSwap)(input.key, inverseCumulativeAmountFnInput, input.totalLiquidity, zeroForOne, exactIn, input.arithmeticMeanTick, input.currentTick, input.ldfParams, input.ldfState, input.liquidityDensityFunction, dexParams);
|
|
71
|
+
if (success) {
|
|
72
|
+
if (zeroForOne
|
|
73
|
+
? updatedRoundedTick >= roundedTick
|
|
74
|
+
: updatedRoundedTick <= roundedTick) {
|
|
75
|
+
if (updatedRoundedTickLiquidity === 0n) {
|
|
76
|
+
return {
|
|
77
|
+
updatedSqrtPriceX96: input.sqrtPriceX96,
|
|
78
|
+
updatedTick: input.currentTick,
|
|
79
|
+
inputAmount: 0n,
|
|
80
|
+
outputAmount: 0n,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const _tickNext = zeroForOne ? roundedTick : nextRoundedTick;
|
|
84
|
+
if (naiveSwapResultSqrtPriceX96 === TickMath_1.TickMath.getSqrtPriceAtTick(_tickNext)) {
|
|
85
|
+
updatedTick = zeroForOne ? _tickNext - 1n : _tickNext;
|
|
86
|
+
}
|
|
87
|
+
else if (naiveSwapResultSqrtPriceX96 !== input.sqrtPriceX96) {
|
|
88
|
+
updatedTick = TickMath_1.TickMath.getTickAtSqrtPrice(naiveSwapResultSqrtPriceX96);
|
|
89
|
+
}
|
|
90
|
+
naiveSwapAmountOut = (0, Math_1.min)(naiveSwapAmountOut, zeroForOne ? input.currentActiveBalance1 : input.currentActiveBalance0);
|
|
91
|
+
return {
|
|
92
|
+
updatedSqrtPriceX96: naiveSwapResultSqrtPriceX96,
|
|
93
|
+
updatedTick,
|
|
94
|
+
inputAmount: naiveSwapAmountIn,
|
|
95
|
+
outputAmount: naiveSwapAmountOut,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const tickStart = zeroForOne
|
|
99
|
+
? updatedRoundedTick + input.key.tickSpacing
|
|
100
|
+
: updatedRoundedTick;
|
|
101
|
+
const tickNext = zeroForOne
|
|
102
|
+
? updatedRoundedTick
|
|
103
|
+
: updatedRoundedTick + input.key.tickSpacing;
|
|
104
|
+
const startSqrtPriceX96 = TickMath_1.TickMath.getSqrtPriceAtTick(tickStart);
|
|
105
|
+
if ((zeroForOne && sqrtPriceLimitX96 <= startSqrtPriceX96) ||
|
|
106
|
+
(!zeroForOne && sqrtPriceLimitX96 >= startSqrtPriceX96)) {
|
|
107
|
+
const sqrtPriceNextX96 = TickMath_1.TickMath.getSqrtPriceAtTick(tickNext);
|
|
108
|
+
if (zeroForOne) {
|
|
109
|
+
cumulativeAmount0 = (0, Math_1.max)(cumulativeAmount0, input.currentActiveBalance0);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
cumulativeAmount1 = (0, Math_1.max)(cumulativeAmount1, input.currentActiveBalance1);
|
|
113
|
+
}
|
|
114
|
+
let hitSqrtPriceLimit = false;
|
|
115
|
+
if (swapLiquidity === 0n || sqrtPriceLimitX96 === startSqrtPriceX96) {
|
|
116
|
+
[naiveSwapResultSqrtPriceX96, naiveSwapAmountIn, naiveSwapAmountOut] = [
|
|
117
|
+
startSqrtPriceX96,
|
|
118
|
+
0n,
|
|
119
|
+
0n,
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const amountSpecifiedRemaining = exactIn
|
|
124
|
+
? -(inverseCumulativeAmountFnInput -
|
|
125
|
+
(zeroForOne ? cumulativeAmount0 : cumulativeAmount1))
|
|
126
|
+
: (zeroForOne ? cumulativeAmount1 : cumulativeAmount0) -
|
|
127
|
+
inverseCumulativeAmountFnInput;
|
|
128
|
+
({
|
|
129
|
+
sqrtPriceNextX96: naiveSwapResultSqrtPriceX96,
|
|
130
|
+
amountIn: naiveSwapAmountIn,
|
|
131
|
+
amountOut: naiveSwapAmountOut,
|
|
132
|
+
} = (0, SwapMath_1.computeSwapStep)(startSqrtPriceX96, (0, SwapMath_1.getSqrtPriceTarget)(zeroForOne, sqrtPriceNextX96, sqrtPriceLimitX96), swapLiquidity, amountSpecifiedRemaining, EPSILON_FEE));
|
|
133
|
+
if (naiveSwapResultSqrtPriceX96 === sqrtPriceLimitX96 &&
|
|
134
|
+
sqrtPriceLimitX96 !== sqrtPriceNextX96) {
|
|
135
|
+
hitSqrtPriceLimit = true;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (!hitSqrtPriceLimit) {
|
|
139
|
+
updatedTick = tickStart;
|
|
140
|
+
if (naiveSwapResultSqrtPriceX96 === sqrtPriceNextX96) {
|
|
141
|
+
updatedTick = zeroForOne ? tickNext - 1n : tickNext;
|
|
142
|
+
}
|
|
143
|
+
else if (naiveSwapResultSqrtPriceX96 !== startSqrtPriceX96) {
|
|
144
|
+
updatedTick = TickMath_1.TickMath.getTickAtSqrtPrice(naiveSwapResultSqrtPriceX96);
|
|
145
|
+
}
|
|
146
|
+
updatedSqrtPriceX96 = naiveSwapResultSqrtPriceX96;
|
|
147
|
+
if (exactIn
|
|
148
|
+
? naiveSwapAmountIn === -input.swapParams.amountSpecified
|
|
149
|
+
: naiveSwapAmountOut === input.swapParams.amountSpecified) {
|
|
150
|
+
naiveSwapAmountOut = (0, Math_1.min)(naiveSwapAmountOut, zeroForOne
|
|
151
|
+
? input.currentActiveBalance1
|
|
152
|
+
: input.currentActiveBalance0);
|
|
153
|
+
return {
|
|
154
|
+
updatedSqrtPriceX96: naiveSwapResultSqrtPriceX96,
|
|
155
|
+
updatedTick,
|
|
156
|
+
inputAmount: naiveSwapAmountIn,
|
|
157
|
+
outputAmount: naiveSwapAmountOut,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
if ((zeroForOne && cumulativeAmount1 < naiveSwapAmountOut) ||
|
|
161
|
+
(!zeroForOne && cumulativeAmount0 < naiveSwapAmountOut)) {
|
|
162
|
+
throw new Error('BunniSwapMath__SwapFailed()');
|
|
163
|
+
}
|
|
164
|
+
const updatedActiveBalance0 = zeroForOne
|
|
165
|
+
? cumulativeAmount0 + naiveSwapAmountIn
|
|
166
|
+
: cumulativeAmount0 - naiveSwapAmountOut;
|
|
167
|
+
const updatedActiveBalance1 = zeroForOne
|
|
168
|
+
? cumulativeAmount1 - naiveSwapAmountOut
|
|
169
|
+
: cumulativeAmount1 + naiveSwapAmountIn;
|
|
170
|
+
inputAmount = zeroForOne
|
|
171
|
+
? updatedActiveBalance0 - input.currentActiveBalance0
|
|
172
|
+
: updatedActiveBalance1 - input.currentActiveBalance1;
|
|
173
|
+
outputAmount = zeroForOne
|
|
174
|
+
? (0, Math_1.subReLU)(input.currentActiveBalance1, updatedActiveBalance1)
|
|
175
|
+
: (0, Math_1.subReLU)(input.currentActiveBalance0, updatedActiveBalance0);
|
|
176
|
+
return { updatedSqrtPriceX96, updatedTick, inputAmount, outputAmount };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
updatedSqrtPriceX96 = sqrtPriceLimitX96;
|
|
181
|
+
updatedTick =
|
|
182
|
+
sqrtPriceLimitX96 === input.sqrtPriceX96
|
|
183
|
+
? input.currentTick
|
|
184
|
+
: TickMath_1.TickMath.getTickAtSqrtPrice(sqrtPriceLimitX96);
|
|
185
|
+
const { totalDensity0X96, totalDensity1X96 } = (0, QueryLDF_1.queryLDF)(input.key, updatedSqrtPriceX96, updatedTick, input.arithmeticMeanTick, input.liquidityDensityFunction, input.ldfParams, input.ldfState, 0n, 0n, IdleBalance_1.IdleBalanceLibrary.ZERO, dexParams);
|
|
186
|
+
const _updatedActiveBalance0 = FullMathX96_1.FullMathX96.fullMulX96Up(totalDensity0X96, input.totalLiquidity);
|
|
187
|
+
const _updatedActiveBalance1 = FullMathX96_1.FullMathX96.fullMulX96Up(totalDensity1X96, input.totalLiquidity);
|
|
188
|
+
if (zeroForOne) {
|
|
189
|
+
inputAmount = _updatedActiveBalance0 - input.currentActiveBalance0;
|
|
190
|
+
outputAmount = (0, Math_1.subReLU)(input.currentActiveBalance1, _updatedActiveBalance1);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
inputAmount = _updatedActiveBalance1 - input.currentActiveBalance1;
|
|
194
|
+
(0, Math_1.subReLU)(input.currentActiveBalance0, _updatedActiveBalance0);
|
|
195
|
+
}
|
|
196
|
+
return { updatedSqrtPriceX96, updatedTick, inputAmount, outputAmount };
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=BunniSwapMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BunniSwapMath.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/hook/BunniSwapMath.ts"],"names":[],"mappings":";;AAWA,kCAkTC;AA7TD,gCAAsC;AACtC,oDAAiD;AACjD,oDAAwD;AACxD,sCAA2D;AAC3D,8CAA2C;AAC3C,8CAA2C;AAE3C,yCAAiE;AAEjE,MAAM,WAAW,GAAW,GAAG,CAAC;AAEhC,SAAgB,WAAW,CACzB,KAA4B,EAC5B,SAAoB;IAOpB,MAAM,UAAU,GAAY,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;IACxD,MAAM,OAAO,GAAY,KAAK,CAAC,UAAU,CAAC,eAAe,GAAG,EAAE,CAAC;IAE/D,IAAI,mBAAmB,GAAW,EAAE,CAAC;IACrC,IAAI,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,IAAI,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;IAEnE,MAAM,2BAA2B,GAC/B,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,gCAAgC,CAAC,IAAI,GAAG,CAAC;IAEzE,IAAI,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IAEpC,IAAI,iBAAiB,GAAW,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC;IACnE,MAAM,YAAY,GAAW,mBAAQ,CAAC,kBAAkB,CACtD,mBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAC9C,CAAC;IACF,MAAM,YAAY,GAAW,mBAAQ,CAAC,kBAAkB,CACtD,mBAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAC9C,CAAC;IACF,IACE,CAAC,UAAU,IAAI,iBAAiB,IAAI,YAAY,CAAC;QACjD,CAAC,CAAC,UAAU,IAAI,iBAAiB,IAAI,YAAY,CAAC,EAClD,CAAC;QACD,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC;IACzE,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAA,gBAAS,EAChD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,GAAG,CAAC,WAAW,CACtB,CAAC;IAEF,IAAI,2BAA2B,GAAW,EAAE,CAAC;IAC7C,IAAI,iBAAiB,GAAW,EAAE,CAAC;IACnC,IAAI,kBAAkB,GAAW,EAAE,CAAC;IAEpC,IAAI,2BAA2B,KAAK,EAAE,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAW,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;QACpE,MAAM,gBAAgB,GAAW,mBAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAEvE,CAAC;YACC,gBAAgB,EAAE,2BAA2B;YAC7C,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE,kBAAkB;SAC9B,GAAG,IAAA,0BAAe,EACjB,KAAK,CAAC,YAAY,EAClB,IAAA,6BAAkB,EAAC,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EACnE,2BAA2B,EAC3B,KAAK,CAAC,UAAU,CAAC,eAAe,EAChC,EAAE,CACH,CAAC,CAAC;QAEH,IACE,OAAO;YACL,CAAC,CAAC,iBAAiB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe;YACzD,CAAC,CAAC,kBAAkB,KAAK,KAAK,CAAC,UAAU,CAAC,eAAe,EAC3D,CAAC;YACD,IAAI,2BAA2B,KAAK,gBAAgB,EAAE,CAAC;gBACrD,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtD,CAAC;iBAAM,IAAI,2BAA2B,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC9D,WAAW,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,CAAC;YACzE,CAAC;YAED,kBAAkB,GAAG,IAAA,UAAG,EACtB,kBAAkB,EAClB,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CACvE,CAAC;YAEF,OAAO;gBACL,mBAAmB,EAAE,2BAA2B;gBAChD,WAAW;gBACX,WAAW,EAAE,iBAAiB;gBAC9B,YAAY,EAAE,kBAAkB;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,8BAA8B,GAAW,EAAE,CAAC;IAChD,IAAI,OAAO,EAAE,CAAC;QACZ,8BAA8B,GAAG,UAAU;YACzC,CAAC,CAAC,KAAK,CAAC,qBAAqB,GAAG,WAAW;YAC3C,CAAC,CAAC,KAAK,CAAC,qBAAqB,GAAG,WAAW,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,8BAA8B,GAAG,UAAU;YACzC,CAAC,CAAC,KAAK,CAAC,qBAAqB,GAAG,YAAY;YAC5C,CAAC,CAAC,KAAK,CAAC,qBAAqB,GAAG,YAAY,CAAC;IACjD,CAAC;IAED,mBAAmB;IACnB,IAAI,EACF,OAAO,EACP,WAAW,EAAE,kBAAkB,EAC/B,kBAAkB,EAAE,iBAAiB,EACrC,kBAAkB,EAAE,iBAAiB,EACrC,aAAa,GACd,GAAG,IAAA,kBAAY,EACd,KAAK,CAAC,GAAG,EACT,8BAA8B,EAC9B,KAAK,CAAC,cAAc,EACpB,UAAU,EACV,OAAO,EACP,KAAK,CAAC,kBAAkB,EACxB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,wBAAwB,EAC9B,SAAS,CACV,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,IACE,UAAU;YACR,CAAC,CAAC,kBAAkB,IAAI,WAAW;YACnC,CAAC,CAAC,kBAAkB,IAAI,WAAW,EACrC,CAAC;YACD,IAAI,2BAA2B,KAAK,EAAE,EAAE,CAAC;gBACvC,OAAO;oBACL,mBAAmB,EAAE,KAAK,CAAC,YAAY;oBACvC,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,WAAW,EAAE,EAAE;oBACf,YAAY,EAAE,EAAE;iBACjB,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;YAC7D,IACE,2BAA2B,KAAK,mBAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,EACtE,CAAC;gBACD,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,CAAC;iBAAM,IAAI,2BAA2B,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC9D,WAAW,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,CAAC;YACzE,CAAC;YAED,kBAAkB,GAAG,IAAA,UAAG,EACtB,kBAAkB,EAClB,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CACvE,CAAC;YAEF,OAAO;gBACL,mBAAmB,EAAE,2BAA2B;gBAChD,WAAW;gBACX,WAAW,EAAE,iBAAiB;gBAC9B,YAAY,EAAE,kBAAkB;aACjC,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,UAAU;YAC1B,CAAC,CAAC,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW;YAC5C,CAAC,CAAC,kBAAkB,CAAC;QACvB,MAAM,QAAQ,GAAG,UAAU;YACzB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QAC/C,MAAM,iBAAiB,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAEjE,IACE,CAAC,UAAU,IAAI,iBAAiB,IAAI,iBAAiB,CAAC;YACtD,CAAC,CAAC,UAAU,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,EACvD,CAAC;YACD,MAAM,gBAAgB,GAAG,mBAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAE/D,IAAI,UAAU,EAAE,CAAC;gBACf,iBAAiB,GAAG,IAAA,UAAG,EAAC,iBAAiB,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,IAAA,UAAG,EAAC,iBAAiB,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,iBAAiB,GAAY,KAAK,CAAC;YACvC,IAAI,aAAa,KAAK,EAAE,IAAI,iBAAiB,KAAK,iBAAiB,EAAE,CAAC;gBACpE,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,GAAG;oBACrE,iBAAiB;oBACjB,EAAE;oBACF,EAAE;iBACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,wBAAwB,GAAG,OAAO;oBACtC,CAAC,CAAC,CAAC,CACC,8BAA8B;wBAC9B,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CACrD;oBACH,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;wBACpD,8BAA8B,CAAC;gBAEnC,CAAC;oBACC,gBAAgB,EAAE,2BAA2B;oBAC7C,QAAQ,EAAE,iBAAiB;oBAC3B,SAAS,EAAE,kBAAkB;iBAC9B,GAAG,IAAA,0BAAe,EACjB,iBAAiB,EACjB,IAAA,6BAAkB,EAAC,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,EACnE,aAAa,EACb,wBAAwB,EACxB,WAAW,CACZ,CAAC,CAAC;gBAEH,IACE,2BAA2B,KAAK,iBAAiB;oBACjD,iBAAiB,KAAK,gBAAgB,EACtC,CAAC;oBACD,iBAAiB,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,WAAW,GAAG,SAAS,CAAC;gBAExB,IAAI,2BAA2B,KAAK,gBAAgB,EAAE,CAAC;oBACrD,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtD,CAAC;qBAAM,IAAI,2BAA2B,KAAK,iBAAiB,EAAE,CAAC;oBAC7D,WAAW,GAAG,mBAAQ,CAAC,kBAAkB,CACvC,2BAA2B,CAC5B,CAAC;gBACJ,CAAC;gBAED,mBAAmB,GAAG,2BAA2B,CAAC;gBAElD,IACE,OAAO;oBACL,CAAC,CAAC,iBAAiB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe;oBACzD,CAAC,CAAC,kBAAkB,KAAK,KAAK,CAAC,UAAU,CAAC,eAAe,EAC3D,CAAC;oBACD,kBAAkB,GAAG,IAAA,UAAG,EACtB,kBAAkB,EAClB,UAAU;wBACR,CAAC,CAAC,KAAK,CAAC,qBAAqB;wBAC7B,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAChC,CAAC;oBACF,OAAO;wBACL,mBAAmB,EAAE,2BAA2B;wBAChD,WAAW;wBACX,WAAW,EAAE,iBAAiB;wBAC9B,YAAY,EAAE,kBAAkB;qBACjC,CAAC;gBACJ,CAAC;gBAED,IACE,CAAC,UAAU,IAAI,iBAAiB,GAAG,kBAAkB,CAAC;oBACtD,CAAC,CAAC,UAAU,IAAI,iBAAiB,GAAG,kBAAkB,CAAC,EACvD,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACjD,CAAC;gBAED,MAAM,qBAAqB,GAAG,UAAU;oBACtC,CAAC,CAAC,iBAAiB,GAAG,iBAAiB;oBACvC,CAAC,CAAC,iBAAiB,GAAG,kBAAkB,CAAC;gBAC3C,MAAM,qBAAqB,GAAG,UAAU;oBACtC,CAAC,CAAC,iBAAiB,GAAG,kBAAkB;oBACxC,CAAC,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;gBAE1C,WAAW,GAAG,UAAU;oBACtB,CAAC,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB;oBACrD,CAAC,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC;gBACxD,YAAY,GAAG,UAAU;oBACvB,CAAC,CAAC,IAAA,cAAO,EAAC,KAAK,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;oBAC7D,CAAC,CAAC,IAAA,cAAO,EAAC,KAAK,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;gBAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB,GAAG,iBAAiB,CAAC;IACxC,WAAW;QACT,iBAAiB,KAAK,KAAK,CAAC,YAAY;YACtC,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,mBAAQ,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IAErD,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAA,mBAAQ,EACrD,KAAK,CAAC,GAAG,EACT,mBAAmB,EACnB,WAAW,EACX,KAAK,CAAC,kBAAkB,EACxB,KAAK,CAAC,wBAAwB,EAC9B,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,QAAQ,EACd,EAAE,EACF,EAAE,EACF,gCAAkB,CAAC,IAAI,EACvB,SAAS,CACV,CAAC;IAEF,MAAM,sBAAsB,GAAG,yBAAW,CAAC,YAAY,CACrD,gBAAgB,EAChB,KAAK,CAAC,cAAc,CACrB,CAAC;IACF,MAAM,sBAAsB,GAAG,yBAAW,CAAC,YAAY,CACrD,gBAAgB,EAChB,KAAK,CAAC,cAAc,CACrB,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,WAAW,GAAG,sBAAsB,GAAG,KAAK,CAAC,qBAAqB,CAAC;QACnE,YAAY,GAAG,IAAA,cAAO,EAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,sBAAsB,GAAG,KAAK,CAAC,qBAAqB,CAAC;QACnE,IAAA,cAAO,EAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const MAX_SWAP_FEE: bigint;
|
|
2
|
+
export declare const MIN_FEE_AMOUNT: bigint;
|
|
3
|
+
export declare function getSqrtPriceTarget(zeroForOne: boolean, sqrtPriceNextX96: bigint, sqrtPriceLimitX96: bigint): bigint;
|
|
4
|
+
export declare function computeSwapStep(sqrtPriceCurrentX96: bigint, sqrtPriceTargetX96: bigint, liquidity: bigint, amountRemaining: bigint, feePips: bigint): {
|
|
5
|
+
sqrtPriceNextX96: bigint;
|
|
6
|
+
amountIn: bigint;
|
|
7
|
+
amountOut: bigint;
|
|
8
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MIN_FEE_AMOUNT = exports.MAX_SWAP_FEE = void 0;
|
|
4
|
+
exports.getSqrtPriceTarget = getSqrtPriceTarget;
|
|
5
|
+
exports.computeSwapStep = computeSwapStep;
|
|
6
|
+
const Math_1 = require("../lib/Math");
|
|
7
|
+
const SqrtPriceMath_1 = require("../lib/SqrtPriceMath");
|
|
8
|
+
exports.MAX_SWAP_FEE = 1000000n;
|
|
9
|
+
exports.MIN_FEE_AMOUNT = 1000n;
|
|
10
|
+
function getSqrtPriceTarget(zeroForOne, sqrtPriceNextX96, sqrtPriceLimitX96) {
|
|
11
|
+
return zeroForOne
|
|
12
|
+
? (0, Math_1.max)(sqrtPriceNextX96, sqrtPriceLimitX96)
|
|
13
|
+
: (0, Math_1.min)(sqrtPriceNextX96, sqrtPriceLimitX96);
|
|
14
|
+
}
|
|
15
|
+
function computeSwapStep(sqrtPriceCurrentX96, sqrtPriceTargetX96, liquidity, amountRemaining, feePips) {
|
|
16
|
+
let sqrtPriceNextX96 = 0n;
|
|
17
|
+
let amountIn = 0n;
|
|
18
|
+
let amountOut = 0n;
|
|
19
|
+
let feeAmount = 0n;
|
|
20
|
+
const zeroForOne = sqrtPriceCurrentX96 >= sqrtPriceTargetX96;
|
|
21
|
+
const exactIn = amountRemaining < 0n;
|
|
22
|
+
if (exactIn) {
|
|
23
|
+
const amountRemainingLessFee = (0, Math_1.min)((0, Math_1.mulDiv)(-amountRemaining, exports.MAX_SWAP_FEE - feePips, exports.MAX_SWAP_FEE), (0, Math_1.subReLU)(-amountRemaining, exports.MIN_FEE_AMOUNT));
|
|
24
|
+
amountIn = zeroForOne
|
|
25
|
+
? SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceTargetX96, sqrtPriceCurrentX96, liquidity, true)
|
|
26
|
+
: SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceCurrentX96, sqrtPriceTargetX96, liquidity, true);
|
|
27
|
+
if (amountRemainingLessFee >= amountIn) {
|
|
28
|
+
sqrtPriceNextX96 = sqrtPriceTargetX96;
|
|
29
|
+
feeAmount =
|
|
30
|
+
feePips === exports.MAX_SWAP_FEE
|
|
31
|
+
? amountIn
|
|
32
|
+
: (0, Math_1.max)((0, Math_1.mulDivUp)(amountIn, feePips, exports.MAX_SWAP_FEE - feePips), exports.MIN_FEE_AMOUNT);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
amountIn = amountRemainingLessFee;
|
|
36
|
+
sqrtPriceNextX96 = SqrtPriceMath_1.SqrtPriceMath.getNextSqrtPriceFromInput(sqrtPriceCurrentX96, liquidity, amountRemainingLessFee, zeroForOne);
|
|
37
|
+
feeAmount = (0, Math_1.max)(-amountRemaining - amountIn, exports.MIN_FEE_AMOUNT);
|
|
38
|
+
}
|
|
39
|
+
amountOut = zeroForOne
|
|
40
|
+
? SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceNextX96, sqrtPriceCurrentX96, liquidity, false)
|
|
41
|
+
: SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceCurrentX96, sqrtPriceNextX96, liquidity, false);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
amountOut = zeroForOne
|
|
45
|
+
? SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceTargetX96, sqrtPriceCurrentX96, liquidity, false)
|
|
46
|
+
: SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceCurrentX96, sqrtPriceTargetX96, liquidity, false);
|
|
47
|
+
if (amountRemaining >= amountOut) {
|
|
48
|
+
sqrtPriceNextX96 = sqrtPriceTargetX96;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
amountOut = amountRemaining;
|
|
52
|
+
sqrtPriceNextX96 = SqrtPriceMath_1.SqrtPriceMath.getNextSqrtPriceFromOutput(sqrtPriceCurrentX96, liquidity, amountOut, zeroForOne);
|
|
53
|
+
}
|
|
54
|
+
amountIn = zeroForOne
|
|
55
|
+
? SqrtPriceMath_1.SqrtPriceMath.getAmount0Delta(sqrtPriceNextX96, sqrtPriceCurrentX96, liquidity, true)
|
|
56
|
+
: SqrtPriceMath_1.SqrtPriceMath.getAmount1Delta(sqrtPriceCurrentX96, sqrtPriceNextX96, liquidity, true);
|
|
57
|
+
feeAmount = (0, Math_1.max)((0, Math_1.mulDivUp)(amountIn, feePips, exports.MAX_SWAP_FEE - feePips), exports.MIN_FEE_AMOUNT);
|
|
58
|
+
}
|
|
59
|
+
if (exactIn)
|
|
60
|
+
amountIn = (0, Math_1.min)(amountIn + feeAmount, -amountRemaining);
|
|
61
|
+
else
|
|
62
|
+
amountIn += feeAmount;
|
|
63
|
+
return { sqrtPriceNextX96, amountIn, amountOut };
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=SwapMath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwapMath.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/hook/SwapMath.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { PoolState, SwapParams } from '../types';
|
|
2
|
+
export declare abstract class FeeOverrideHooklet {
|
|
3
|
+
static beforeSwap(state: PoolState, params: SwapParams): {
|
|
4
|
+
success: boolean;
|
|
5
|
+
feeOverridden: boolean;
|
|
6
|
+
fee: bigint;
|
|
7
|
+
priceOverridden: boolean;
|
|
8
|
+
sqrtPriceX96: bigint;
|
|
9
|
+
};
|
|
10
|
+
static beforeSwapView(state: PoolState, params: SwapParams): {
|
|
11
|
+
success: boolean;
|
|
12
|
+
feeOverridden: boolean;
|
|
13
|
+
fee: bigint;
|
|
14
|
+
priceOverridden: boolean;
|
|
15
|
+
sqrtPriceX96: bigint;
|
|
16
|
+
};
|
|
17
|
+
static afterSwap(state: PoolState): {
|
|
18
|
+
success: boolean;
|
|
19
|
+
};
|
|
20
|
+
static afterSwapView(state: PoolState): {
|
|
21
|
+
success: boolean;
|
|
22
|
+
};
|
|
23
|
+
static _beforeSwap(state: PoolState, params: SwapParams): {
|
|
24
|
+
success: boolean;
|
|
25
|
+
feeOverridden: boolean;
|
|
26
|
+
fee: bigint;
|
|
27
|
+
priceOverridden: boolean;
|
|
28
|
+
sqrtPriceX96: bigint;
|
|
29
|
+
};
|
|
30
|
+
static _afterSwap(state: PoolState): {
|
|
31
|
+
success: boolean;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FeeOverrideHooklet = void 0;
|
|
4
|
+
class FeeOverrideHooklet {
|
|
5
|
+
static beforeSwap(state, params) {
|
|
6
|
+
return this._beforeSwap(state, params);
|
|
7
|
+
}
|
|
8
|
+
static beforeSwapView(state, params) {
|
|
9
|
+
return this._beforeSwap(state, params);
|
|
10
|
+
}
|
|
11
|
+
static afterSwap(state) {
|
|
12
|
+
return this._afterSwap(state);
|
|
13
|
+
}
|
|
14
|
+
static afterSwapView(state) {
|
|
15
|
+
return this._afterSwap(state);
|
|
16
|
+
}
|
|
17
|
+
static _beforeSwap(state, params) {
|
|
18
|
+
return {
|
|
19
|
+
success: true,
|
|
20
|
+
feeOverridden: params.zeroForOne
|
|
21
|
+
? state.overrideZeroToOne
|
|
22
|
+
: state.overrideOneToZero,
|
|
23
|
+
fee: params.zeroForOne ? state.feeZeroToOne : state.feeOneToZero,
|
|
24
|
+
priceOverridden: false,
|
|
25
|
+
sqrtPriceX96: 0n,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
static _afterSwap(state) {
|
|
29
|
+
return { success: true };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.FeeOverrideHooklet = FeeOverrideHooklet;
|
|
33
|
+
//# sourceMappingURL=FeeOverrideHooklet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeeOverrideHooklet.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/hooklet/FeeOverrideHooklet.ts"],"names":[],"mappings":";;;AAEA,MAAsB,kBAAkB;IACtC,MAAM,CAAC,UAAU,CACf,KAAgB,EAChB,MAAkB;QAQlB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,KAAgB,EAChB,MAAkB;QAQlB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAgB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAAgB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,KAAgB,EAChB,MAAkB;QAQlB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,MAAM,CAAC,UAAU;gBAC9B,CAAC,CAAC,KAAK,CAAC,iBAAiB;gBACzB,CAAC,CAAC,KAAK,CAAC,iBAAiB;YAC3B,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY;YAChE,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAgB;QAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF;AA3DD,gDA2DC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DexParams, PoolState, SwapParams } from '../types';
|
|
2
|
+
export declare function _hookletBeforeSwap(state: PoolState, params: SwapParams, dexParams: DexParams): {
|
|
3
|
+
success: boolean;
|
|
4
|
+
feeOverridden: boolean;
|
|
5
|
+
fee: bigint;
|
|
6
|
+
priceOverridden: boolean;
|
|
7
|
+
sqrtPriceX96: bigint;
|
|
8
|
+
};
|
|
9
|
+
export declare function _hookletBeforeSwapView(state: PoolState, params: SwapParams, dexParams: DexParams): {
|
|
10
|
+
success: boolean;
|
|
11
|
+
feeOverridden: boolean;
|
|
12
|
+
fee: bigint;
|
|
13
|
+
priceOverridden: boolean;
|
|
14
|
+
sqrtPriceX96: bigint;
|
|
15
|
+
};
|
|
16
|
+
export declare function _hookletAfterSwap(state: PoolState, dexParams: DexParams): {
|
|
17
|
+
success: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function _hookletAfterSwapView(state: PoolState, dexParams: DexParams): {
|
|
20
|
+
success: boolean;
|
|
21
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._hookletBeforeSwap = _hookletBeforeSwap;
|
|
4
|
+
exports._hookletBeforeSwapView = _hookletBeforeSwapView;
|
|
5
|
+
exports._hookletAfterSwap = _hookletAfterSwap;
|
|
6
|
+
exports._hookletAfterSwapView = _hookletAfterSwapView;
|
|
7
|
+
const constants_1 = require("../../../constants");
|
|
8
|
+
function _hookletBeforeSwap(state, params, dexParams) {
|
|
9
|
+
if (state.hooklet === constants_1.NULL_ADDRESS) {
|
|
10
|
+
return {
|
|
11
|
+
success: true,
|
|
12
|
+
feeOverridden: false,
|
|
13
|
+
fee: 0n,
|
|
14
|
+
priceOverridden: false,
|
|
15
|
+
sqrtPriceX96: 0n,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const map = dexParams.hooklets ?? {};
|
|
19
|
+
const module = map[state.hooklet.toLowerCase()];
|
|
20
|
+
if (!module) {
|
|
21
|
+
throw new Error(`Hooklet ${state.hooklet} not yet supported`);
|
|
22
|
+
}
|
|
23
|
+
return module.beforeSwap(state, params);
|
|
24
|
+
}
|
|
25
|
+
function _hookletBeforeSwapView(state, params, dexParams) {
|
|
26
|
+
if (state.hooklet === constants_1.NULL_ADDRESS) {
|
|
27
|
+
return {
|
|
28
|
+
success: true,
|
|
29
|
+
feeOverridden: false,
|
|
30
|
+
fee: 0n,
|
|
31
|
+
priceOverridden: false,
|
|
32
|
+
sqrtPriceX96: 0n,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const map = dexParams.hooklets ?? {};
|
|
36
|
+
const module = map[state.hooklet.toLowerCase()];
|
|
37
|
+
if (!module) {
|
|
38
|
+
throw new Error(`Hooklet ${state.hooklet} not yet supported`);
|
|
39
|
+
}
|
|
40
|
+
return module.beforeSwapView(state, params);
|
|
41
|
+
}
|
|
42
|
+
function _hookletAfterSwap(state, dexParams) {
|
|
43
|
+
if (state.hooklet === constants_1.NULL_ADDRESS) {
|
|
44
|
+
return { success: true };
|
|
45
|
+
}
|
|
46
|
+
const map = dexParams.hooklets ?? {};
|
|
47
|
+
const module = map[state.hooklet.toLowerCase()];
|
|
48
|
+
if (!module) {
|
|
49
|
+
throw new Error(`Hooklet ${state.hooklet} not yet supported`);
|
|
50
|
+
}
|
|
51
|
+
return module.afterSwap();
|
|
52
|
+
}
|
|
53
|
+
function _hookletAfterSwapView(state, dexParams) {
|
|
54
|
+
if (state.hooklet === constants_1.NULL_ADDRESS) {
|
|
55
|
+
return { success: true };
|
|
56
|
+
}
|
|
57
|
+
const map = dexParams.hooklets ?? {};
|
|
58
|
+
const module = map[state.hooklet.toLowerCase()];
|
|
59
|
+
if (!module) {
|
|
60
|
+
throw new Error(`Hooklet ${state.hooklet} not yet supported`);
|
|
61
|
+
}
|
|
62
|
+
return module.afterSwapView();
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dex/bunni-v2/hooklet/index.ts"],"names":[],"mappings":";;AAGA,gDA6BC;AAED,wDA6BC;AAED,8CAkBC;AAED,sDAkBC;AAvGD,kDAAkD;AAGlD,SAAgB,kBAAkB,CAChC,KAAgB,EAChB,MAAkB,EAClB,SAAoB;IAQpB,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,sBAAsB,CACpC,KAAgB,EAChB,MAAkB,EAClB,SAAoB;IAQpB,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,KAAK;YACpB,GAAG,EAAE,EAAE;YACP,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,iBAAiB,CAC/B,KAAgB,EAChB,SAAoB;IAIpB,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC;AAC5B,CAAC;AAED,SAAgB,qBAAqB,CACnC,KAAgB,EAChB,SAAoB;IAIpB,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAY,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { PoolKey } from '../types';
|
|
2
|
+
import { ShiftMode } from './ShiftMode';
|
|
3
|
+
export declare abstract class CarpetedDoubleGeometricDistribution {
|
|
4
|
+
static query(key: PoolKey, roundedTick: bigint, twapTick: bigint, spotPriceTick: bigint, ldfParams: string, ldfState: string): {
|
|
5
|
+
liquidityDensityX96_: bigint;
|
|
6
|
+
cumulativeAmount0DensityX96: bigint;
|
|
7
|
+
cumulativeAmount1DensityX96: bigint;
|
|
8
|
+
newLdfState: string;
|
|
9
|
+
shouldSurge: boolean;
|
|
10
|
+
};
|
|
11
|
+
static computeSwap(key: PoolKey, inverseCumulativeAmountInput: bigint, totalLiquidity: bigint, zeroForOne: boolean, exactIn: boolean, twapTick: bigint, spotPriceTick: bigint, ldfParams: string, ldfState: string): {
|
|
12
|
+
success: boolean;
|
|
13
|
+
roundedTick: bigint;
|
|
14
|
+
cumulativeAmount0_: bigint;
|
|
15
|
+
cumulativeAmount1_: bigint;
|
|
16
|
+
swapLiquidity: bigint;
|
|
17
|
+
};
|
|
18
|
+
static cumulativeAmount0(key: PoolKey, roundedTick: bigint, totalLiquidity: bigint, twapTick: bigint, spotPriceTick: bigint, ldfParams: string, ldfState: string): bigint;
|
|
19
|
+
static cumulativeAmount1(key: PoolKey, roundedTick: bigint, totalLiquidity: bigint, twapTick: bigint, spotPriceTick: bigint, ldfParams: string, ldfState: string): bigint;
|
|
20
|
+
static _decodeState(ldfState: string): {
|
|
21
|
+
initialized: boolean;
|
|
22
|
+
lastMinTick: bigint;
|
|
23
|
+
};
|
|
24
|
+
static _encodeState(lastMinTick: bigint): string;
|
|
25
|
+
}
|
|
26
|
+
export declare abstract class LibCarpetedDoubleGeometricDistribution {
|
|
27
|
+
static query(roundedTick: bigint, tickSpacing: bigint, params: Params): {
|
|
28
|
+
liquidityDensityX96_: bigint;
|
|
29
|
+
cumulativeAmount0DensityX96: bigint;
|
|
30
|
+
cumulativeAmount1DensityX96: bigint;
|
|
31
|
+
};
|
|
32
|
+
static cumulativeAmount0(roundedTick: bigint, totalLiquidity: bigint, tickSpacing: bigint, params: Params): bigint;
|
|
33
|
+
static cumulativeAmount1(roundedTick: bigint, totalLiquidity: bigint, tickSpacing: bigint, params: Params): bigint;
|
|
34
|
+
static inverseCumulativeAmount0(cumulativeAmount0_: bigint, totalLiquidity: bigint, tickSpacing: bigint, params: Params): {
|
|
35
|
+
success: boolean;
|
|
36
|
+
roundedTick: bigint;
|
|
37
|
+
};
|
|
38
|
+
static inverseCumulativeAmount1(cumulativeAmount1_: bigint, totalLiquidity: bigint, tickSpacing: bigint, params: Params): {
|
|
39
|
+
success: boolean;
|
|
40
|
+
roundedTick: bigint;
|
|
41
|
+
};
|
|
42
|
+
static liquidityDensityX96(roundedTick: bigint, tickSpacing: bigint, params: Params): bigint;
|
|
43
|
+
static computeSwap(inverseCumulativeAmountInput: bigint, totalLiquidity: bigint, zeroForOne: boolean, exactIn: boolean, tickSpacing: bigint, params: Params): {
|
|
44
|
+
success: boolean;
|
|
45
|
+
roundedTick: bigint;
|
|
46
|
+
cumulativeAmount0_: bigint;
|
|
47
|
+
cumulativeAmount1_: bigint;
|
|
48
|
+
swapLiquidity: bigint;
|
|
49
|
+
};
|
|
50
|
+
static getCarpetedLiquidity(totalLiquidity: bigint, tickSpacing: bigint, minTick: bigint, length: bigint, weightCarpet: bigint): {
|
|
51
|
+
leftCarpetLiquidity: bigint;
|
|
52
|
+
mainLiquidity: bigint;
|
|
53
|
+
rightCarpetLiquidity: bigint;
|
|
54
|
+
minUsableTick: bigint;
|
|
55
|
+
maxUsableTick: bigint;
|
|
56
|
+
};
|
|
57
|
+
static decodeParams(twapTick: bigint, tickSpacing: bigint, ldfParams: string): Params;
|
|
58
|
+
}
|
|
59
|
+
type Params = {
|
|
60
|
+
minTick: bigint;
|
|
61
|
+
length0: bigint;
|
|
62
|
+
alpha0X96: bigint;
|
|
63
|
+
weight0: bigint;
|
|
64
|
+
length1: bigint;
|
|
65
|
+
alpha1X96: bigint;
|
|
66
|
+
weight1: bigint;
|
|
67
|
+
weightCarpet: bigint;
|
|
68
|
+
shiftMode: ShiftMode;
|
|
69
|
+
};
|
|
70
|
+
export {};
|