@paraswap/dex-lib 4.1.19-pools.0 → 4.1.19-pools.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1318) hide show
  1. package/build/abi/aave-gsm/Pool.json +1459 -0
  2. package/build/abi/uniswap-v4/pool-manager.abi.json +1367 -0
  3. package/build/abi/uniswap-v4/state-view.abi.json +365 -0
  4. package/build/dex/aave-gsm/aave-gsm-pool.d.ts +7 -1
  5. package/build/dex/aave-gsm/aave-gsm-pool.js +46 -4
  6. package/build/dex/aave-gsm/aave-gsm-pool.js.map +1 -1
  7. package/build/dex/aave-gsm/aave-gsm.js +37 -30
  8. package/build/dex/aave-gsm/aave-gsm.js.map +1 -1
  9. package/build/dex/aave-gsm/config.js +6 -5
  10. package/build/dex/aave-gsm/config.js.map +1 -1
  11. package/build/dex/aave-gsm/types.d.ts +5 -2
  12. package/build/dex/balancer-v3/balancer-test-helpers.d.ts +5 -0
  13. package/build/dex/balancer-v3/balancer-test-helpers.js +25 -1
  14. package/build/dex/balancer-v3/balancer-test-helpers.js.map +1 -1
  15. package/build/dex/balancer-v3/balancer-v3-pool.js +35 -7
  16. package/build/dex/balancer-v3/balancer-v3-pool.js.map +1 -1
  17. package/build/dex/balancer-v3/balancer-v3.js +9 -2
  18. package/build/dex/balancer-v3/balancer-v3.js.map +1 -1
  19. package/build/dex/balancer-v3/config.d.ts +2 -1
  20. package/build/dex/balancer-v3/config.js +7 -0
  21. package/build/dex/balancer-v3/config.js.map +1 -1
  22. package/build/dex/balancer-v3/getGasCost.js +3 -0
  23. package/build/dex/balancer-v3/getGasCost.js.map +1 -1
  24. package/build/dex/balancer-v3/getOnChainState.d.ts +5 -1
  25. package/build/dex/balancer-v3/getOnChainState.js +69 -9
  26. package/build/dex/balancer-v3/getOnChainState.js.map +1 -1
  27. package/build/dex/balancer-v3/getPoolsApi.js +45 -7
  28. package/build/dex/balancer-v3/getPoolsApi.js.map +1 -1
  29. package/build/dex/balancer-v3/getTopPoolsApi.d.ts +4 -3
  30. package/build/dex/balancer-v3/getTopPoolsApi.js +17 -6
  31. package/build/dex/balancer-v3/getTopPoolsApi.js.map +1 -1
  32. package/build/dex/balancer-v3/hooks/directionalFeeHook.d.ts +2 -0
  33. package/build/dex/balancer-v3/hooks/directionalFeeHook.js +1 -0
  34. package/build/dex/balancer-v3/hooks/directionalFeeHook.js.map +1 -1
  35. package/build/dex/balancer-v3/hooks/stableSurgeHook.d.ts +2 -0
  36. package/build/dex/balancer-v3/hooks/stableSurgeHook.js +1 -0
  37. package/build/dex/balancer-v3/hooks/stableSurgeHook.js.map +1 -1
  38. package/build/dex/balancer-v3/types.d.ts +6 -2
  39. package/build/dex/curve-v1/config.js +5 -0
  40. package/build/dex/curve-v1/config.js.map +1 -1
  41. package/build/dex/pancakeswap-v3/config.js +1 -1
  42. package/build/dex/pancakeswap-v3/config.js.map +1 -1
  43. package/build/dex/uniswap-v2/config.js +1 -0
  44. package/build/dex/uniswap-v2/config.js.map +1 -1
  45. package/build/dex/uniswap-v3/config.js +3 -2
  46. package/build/dex/uniswap-v3/config.js.map +1 -1
  47. package/build/dex/uniswap-v3/uniswap-v3.d.ts +1 -1
  48. package/build/dex/uniswap-v3/uniswap-v3.js +53 -65
  49. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  50. package/build/dex/uniswap-v4/config.js +43 -0
  51. package/build/dex/uniswap-v4/config.js.map +1 -1
  52. package/build/dex/uniswap-v4/constants.d.ts +7 -0
  53. package/build/dex/uniswap-v4/constants.js +18 -0
  54. package/build/dex/uniswap-v4/constants.js.map +1 -0
  55. package/build/dex/uniswap-v4/contract-math/BalanceDelta.d.ts +6 -0
  56. package/build/dex/uniswap-v4/contract-math/BalanceDelta.js +22 -0
  57. package/build/dex/uniswap-v4/contract-math/BalanceDelta.js.map +1 -0
  58. package/build/dex/uniswap-v4/contract-math/BitMath.d.ts +4 -0
  59. package/build/dex/uniswap-v4/contract-math/BitMath.js +53 -0
  60. package/build/dex/uniswap-v4/contract-math/BitMath.js.map +1 -0
  61. package/build/dex/uniswap-v4/contract-math/FixedPoint128.d.ts +3 -0
  62. package/build/dex/uniswap-v4/contract-math/FixedPoint128.js +8 -0
  63. package/build/dex/uniswap-v4/contract-math/FixedPoint128.js.map +1 -0
  64. package/build/dex/uniswap-v4/contract-math/FixedPoint96.d.ts +4 -0
  65. package/build/dex/uniswap-v4/contract-math/FixedPoint96.js +9 -0
  66. package/build/dex/uniswap-v4/contract-math/FixedPoint96.js.map +1 -0
  67. package/build/dex/uniswap-v4/contract-math/FullMath.d.ts +4 -0
  68. package/build/dex/uniswap-v4/contract-math/FullMath.js +19 -0
  69. package/build/dex/uniswap-v4/contract-math/FullMath.js.map +1 -0
  70. package/build/dex/uniswap-v4/contract-math/LPFeeLibrary.d.ts +13 -0
  71. package/build/dex/uniswap-v4/contract-math/LPFeeLibrary.js +36 -0
  72. package/build/dex/uniswap-v4/contract-math/LPFeeLibrary.js.map +1 -0
  73. package/build/dex/uniswap-v4/contract-math/LiquidityMath.d.ts +3 -0
  74. package/build/dex/uniswap-v4/contract-math/LiquidityMath.js +21 -0
  75. package/build/dex/uniswap-v4/contract-math/LiquidityMath.js.map +1 -0
  76. package/build/dex/uniswap-v4/contract-math/Position.d.ts +9 -0
  77. package/build/dex/uniswap-v4/contract-math/Position.js +39 -0
  78. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -0
  79. package/build/dex/uniswap-v4/contract-math/ProtocolFeeLibrary.d.ts +10 -0
  80. package/build/dex/uniswap-v4/contract-math/ProtocolFeeLibrary.js +30 -0
  81. package/build/dex/uniswap-v4/contract-math/ProtocolFeeLibrary.js.map +1 -0
  82. package/build/dex/uniswap-v4/contract-math/SqrtPriceMath.d.ts +11 -0
  83. package/build/dex/uniswap-v4/contract-math/SqrtPriceMath.js +80 -0
  84. package/build/dex/uniswap-v4/contract-math/SqrtPriceMath.js.map +1 -0
  85. package/build/dex/uniswap-v4/contract-math/SwapMath.d.ts +10 -0
  86. package/build/dex/uniswap-v4/contract-math/SwapMath.js +65 -0
  87. package/build/dex/uniswap-v4/contract-math/SwapMath.js.map +1 -0
  88. package/build/dex/uniswap-v4/contract-math/Tick.d.ts +10 -0
  89. package/build/dex/uniswap-v4/contract-math/Tick.js +64 -0
  90. package/build/dex/uniswap-v4/contract-math/Tick.js.map +1 -0
  91. package/build/dex/uniswap-v4/contract-math/TickBitmap.d.ts +11 -0
  92. package/build/dex/uniswap-v4/contract-math/TickBitmap.js +72 -0
  93. package/build/dex/uniswap-v4/contract-math/TickBitmap.js.map +1 -0
  94. package/build/dex/uniswap-v4/contract-math/TickMath.d.ts +9 -0
  95. package/build/dex/uniswap-v4/contract-math/TickMath.js +164 -0
  96. package/build/dex/uniswap-v4/contract-math/TickMath.js.map +1 -0
  97. package/build/dex/uniswap-v4/contract-math/UnsafeMath.d.ts +4 -0
  98. package/build/dex/uniswap-v4/contract-math/UnsafeMath.js +16 -0
  99. package/build/dex/uniswap-v4/contract-math/UnsafeMath.js.map +1 -0
  100. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.d.ts +18 -0
  101. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js +236 -0
  102. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js.map +1 -0
  103. package/build/dex/uniswap-v4/contract-math/utils.d.ts +3 -0
  104. package/build/dex/uniswap-v4/contract-math/utils.js +15 -0
  105. package/build/dex/uniswap-v4/contract-math/utils.js.map +1 -0
  106. package/build/dex/uniswap-v4/encoder.js +12 -2
  107. package/build/dex/uniswap-v4/encoder.js.map +1 -1
  108. package/build/dex/uniswap-v4/subgraph.d.ts +5 -0
  109. package/build/dex/uniswap-v4/subgraph.js +69 -0
  110. package/build/dex/uniswap-v4/subgraph.js.map +1 -0
  111. package/build/dex/uniswap-v4/types.d.ts +62 -4
  112. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +31 -0
  113. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +129 -0
  114. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -0
  115. package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +39 -0
  116. package/build/dex/uniswap-v4/uniswap-v4-pool.js +324 -0
  117. package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -0
  118. package/build/dex/uniswap-v4/uniswap-v4.d.ts +6 -6
  119. package/build/dex/uniswap-v4/uniswap-v4.js +28 -47
  120. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  121. package/build/dex/uniswap-v4/utils.d.ts +2 -0
  122. package/build/dex/uniswap-v4/utils.js +15 -0
  123. package/build/dex/uniswap-v4/utils.js.map +1 -0
  124. package/build/dex/wombat/wombat.d.ts +0 -1
  125. package/build/dex/wombat/wombat.js +2 -44
  126. package/build/dex/wombat/wombat.js.map +1 -1
  127. package/build/dex/woo-fi-v2/config.js +16 -15
  128. package/build/dex/woo-fi-v2/config.js.map +1 -1
  129. package/package.json +2 -2
  130. package/.env.example +0 -15
  131. package/.eslintrc.js +0 -65
  132. package/.github/workflows/ci.yaml +0 -22
  133. package/.husky/pre-commit +0 -4
  134. package/.prettierrc +0 -10
  135. package/.vscode/launch.json +0 -53
  136. package/.vscode/settings.json +0 -2
  137. package/.vscode/tasks.json +0 -15
  138. package/dex-template/__DexName__-e2e.test.ts.template +0 -155
  139. package/dex-template/__DexName__-events.test.ts.template +0 -110
  140. package/dex-template/__DexName__-integration.test.ts.template +0 -251
  141. package/dex-template/__DexName__-pool.ts.template +0 -91
  142. package/dex-template/__DexName__.ts.template +0 -156
  143. package/dex-template/config.ts.template +0 -9
  144. package/dex-template/types.ts.template +0 -22
  145. package/funding.json +0 -5
  146. package/jest.config.js +0 -10
  147. package/scripts/dex-integration.ts +0 -164
  148. package/scripts/fetch-event-blocknumber.ts +0 -51
  149. package/scripts/generate-bytecode.ts +0 -11
  150. package/scripts/run-dex-integration-v3.ts +0 -78
  151. package/scripts/run-dex-integration.ts +0 -95
  152. package/src/abi/AaveV2_lending_pool.json +0 -53
  153. package/src/abi/AaveV3_lending_pool.json +0 -1715
  154. package/src/abi/Balancer.json +0 -257
  155. package/src/abi/BalancerCustomMulticall.json +0 -26
  156. package/src/abi/BalancerV1ExchangeProxy.json +0 -377
  157. package/src/abi/BalancerV1Pool.json +0 -1630
  158. package/src/abi/BalancerV2.json +0 -1179
  159. package/src/abi/Bancor.json +0 -392
  160. package/src/abi/Compound_CETH.json +0 -12
  161. package/src/abi/Curve.json +0 -54
  162. package/src/abi/CurveV2.json +0 -700
  163. package/src/abi/DirectSwap.json +0 -1018
  164. package/src/abi/ERC1155.abi.json +0 -459
  165. package/src/abi/ERC1271.abi.json +0 -25
  166. package/src/abi/ERC20.abi.json +0 -288
  167. package/src/abi/ERC4626.json +0 -791
  168. package/src/abi/ERC721.abi.json +0 -165
  169. package/src/abi/IParaswap.json +0 -3059
  170. package/src/abi/RamsesV2Pool.abi.json +0 -1554
  171. package/src/abi/RamsesV2Quoter.abi.json +0 -274
  172. package/src/abi/RamsesV2StateMulticall.abi.json +0 -891
  173. package/src/abi/Redstone.json +0 -739
  174. package/src/abi/SSPM.json +0 -829
  175. package/src/abi/SimpleSwapHelperRouter.json +0 -38
  176. package/src/abi/Smoothy.json +0 -1049
  177. package/src/abi/StablePool.json +0 -1035
  178. package/src/abi/StaderOracle.json +0 -2170
  179. package/src/abi/TraderJoeV21Router.json +0 -1489
  180. package/src/abi/USDM.json +0 -807
  181. package/src/abi/UniswapV2ExchangeRouter.json +0 -84
  182. package/src/abi/UniswapV2Router.json +0 -397
  183. package/src/abi/UniswapV3Router.json +0 -274
  184. package/src/abi/aave-gsm/Aave_GSM.json +0 -751
  185. package/src/abi/aave-gsm/IFeeStrategy.json +0 -78
  186. package/src/abi/aave-v3-weth-gateway.json +0 -290
  187. package/src/abi/aave-weth-gateway-avalanche.json +0 -242
  188. package/src/abi/aave-weth-gateway-polygon.json +0 -242
  189. package/src/abi/aave-weth-gateway.json +0 -38
  190. package/src/abi/aavev3stata/Factory.json +0 -128
  191. package/src/abi/aavev3stata/Token.json +0 -735
  192. package/src/abi/aavev3statav2/Factory.json +0 -131
  193. package/src/abi/aavev3statav2/Pool.json +0 -1459
  194. package/src/abi/aavev3statav2/Token.json +0 -997
  195. package/src/abi/aerodrome/aerodrome-pool-factory.json +0 -586
  196. package/src/abi/algebra/AlgebraFactory-v1_1.abi.json +0 -250
  197. package/src/abi/algebra/AlgebraPool-v1_1.abi.json +0 -727
  198. package/src/abi/algebra/AlgebraPool-v1_9.abi.json +0 -756
  199. package/src/abi/algebra/AlgebraQuoter.abi.json +0 -138
  200. package/src/abi/algebra/AlgebraStateMulticall.abi.json +0 -801
  201. package/src/abi/algebra/SwapRouter.json +0 -281
  202. package/src/abi/angle/stagToken.json +0 -963
  203. package/src/abi/angle-transmuter/ChainlinkAccessControlledOffchainAggregator.json +0 -1246
  204. package/src/abi/angle-transmuter/ChainlinkEACAggregatorProxy.json +0 -509
  205. package/src/abi/angle-transmuter/MorphoOracle.json +0 -193
  206. package/src/abi/angle-transmuter/MorphoVault.json +0 -2506
  207. package/src/abi/angle-transmuter/Pyth.json +0 -1534
  208. package/src/abi/angle-transmuter/Transmuter.json +0 -1711
  209. package/src/abi/angle-transmuter/TransmuterSidechain.json +0 -1798
  210. package/src/abi/api3-proxy.json +0 -53
  211. package/src/abi/api3-server-v1.json +0 -463
  212. package/src/abi/augustus-v6/ABI.json +0 -1572
  213. package/src/abi/augustus.json +0 -375
  214. package/src/abi/balancer-v2/ComposableStable.json +0 -1391
  215. package/src/abi/balancer-v2/gyro-e.abi.json +0 -1595
  216. package/src/abi/balancer-v2/linearPoolAbi.json +0 -1062
  217. package/src/abi/balancer-v2/meta-stable-pool.json +0 -1437
  218. package/src/abi/balancer-v2/stable-pool.json +0 -1053
  219. package/src/abi/balancer-v2/vault.json +0 -918
  220. package/src/abi/balancer-v2/weighted-pool.json +0 -1142
  221. package/src/abi/balancer-v3/batch-router.json +0 -989
  222. package/src/abi/balancer-v3/directionalFeeHook.json +0 -684
  223. package/src/abi/balancer-v3/router.json +0 -1792
  224. package/src/abi/balancer-v3/stableSurgeHook.json +0 -976
  225. package/src/abi/balancer-v3/vault-extension.json +0 -2834
  226. package/src/abi/bebop/BebopSettlement.abi.json +0 -2137
  227. package/src/abi/benqi/staked-avax.json +0 -954
  228. package/src/abi/cables/CablesMainnetRFQ.json +0 -1083
  229. package/src/abi/camelot/CamelotFactory.json +0 -494
  230. package/src/abi/camelot/CamelotPair.json +0 -1027
  231. package/src/abi/chainlink.json +0 -323
  232. package/src/abi/concentrator/arUSD.json +0 -568
  233. package/src/abi/concentrator/arUSD5115.json +0 -1746
  234. package/src/abi/curve-v1/CurveBUSDv2.abi.json +0 -1356
  235. package/src/abi/curve-v1/CurveTokenV1.json +0 -305
  236. package/src/abi/curve-v1/CurveTokenV2.json +0 -318
  237. package/src/abi/curve-v1/CurveV1StableNg.json +0 -1452
  238. package/src/abi/curve-v1/CurveV2Swap.json +0 -700
  239. package/src/abi/curve-v1/FactoryCryptoRegistry.json +0 -316
  240. package/src/abi/curve-v1/FactoryRegistry.json +0 -508
  241. package/src/abi/curve-v1/StableSwap3Pool.json +0 -838
  242. package/src/abi/curve-v1/StableSwapAave.json +0 -1152
  243. package/src/abi/curve-v1/StableSwapBBTC.json +0 -1017
  244. package/src/abi/curve-v1/StableSwapBUSD.json +0 -814
  245. package/src/abi/curve-v1/StableSwapCompound.json +0 -814
  246. package/src/abi/curve-v1/StableSwapDUSD.json +0 -1004
  247. package/src/abi/curve-v1/StableSwapEURS.json +0 -868
  248. package/src/abi/curve-v1/StableSwapGUSD.json +0 -1004
  249. package/src/abi/curve-v1/StableSwapHBTC.json +0 -838
  250. package/src/abi/curve-v1/StableSwapHUSD.json +0 -1004
  251. package/src/abi/curve-v1/StableSwapIDLE.json +0 -1253
  252. package/src/abi/curve-v1/StableSwapLinkUSD.json +0 -1004
  253. package/src/abi/curve-v1/StableSwapMUSD.json +0 -1004
  254. package/src/abi/curve-v1/StableSwapOBTC.json +0 -1017
  255. package/src/abi/curve-v1/StableSwapPBTC.json +0 -1017
  256. package/src/abi/curve-v1/StableSwapPax.json +0 -865
  257. package/src/abi/curve-v1/StableSwapRSV.json +0 -1004
  258. package/src/abi/curve-v1/StableSwapRen.json +0 -851
  259. package/src/abi/curve-v1/StableSwapSBTC.json +0 -851
  260. package/src/abi/curve-v1/StableSwapSETH.json +0 -850
  261. package/src/abi/curve-v1/StableSwapSLINK.json +0 -899
  262. package/src/abi/curve-v1/StableSwapSTETH.json +0 -895
  263. package/src/abi/curve-v1/StableSwapSUSD.json +0 -760
  264. package/src/abi/curve-v1/StableSwapSnow.json +0 -900
  265. package/src/abi/curve-v1/StableSwapTBTC.json +0 -1017
  266. package/src/abi/curve-v1/StableSwapUSDK.json +0 -1004
  267. package/src/abi/curve-v1/StableSwapUSDN.json +0 -1004
  268. package/src/abi/curve-v1/StableSwapUSDT.json +0 -814
  269. package/src/abi/curve-v1/StableSwapUST.json +0 -1017
  270. package/src/abi/curve-v1/StableSwapY.json +0 -814
  271. package/src/abi/curve-v1-factory/CurveV1Router.abi.json +0 -331
  272. package/src/abi/curve-v1-factory/FactoryCurveV1.json +0 -508
  273. package/src/abi/curve-v1-factory/ThreePool.json +0 -468
  274. package/src/abi/curve-v2/GenericFactoryZap.json +0 -233
  275. package/src/abi/dexalot/DexalotMainnetRFQ.json +0 -952
  276. package/src/abi/dodo-v2-proxy.json +0 -565
  277. package/src/abi/ekubo/core.json +0 -1266
  278. package/src/abi/ekubo/data-fetcher.json +0 -161
  279. package/src/abi/ekubo/router.json +0 -803
  280. package/src/abi/erc20.json +0 -308
  281. package/src/abi/etherfi/eETHPool.json +0 -9
  282. package/src/abi/etherfi/weETH.json +0 -20
  283. package/src/abi/fluid-dex/dexFactory.abi.json +0 -506
  284. package/src/abi/fluid-dex/fluid-dex.abi.json +0 -1476
  285. package/src/abi/fluid-dex/liquidityUserModule.abi.json +0 -145
  286. package/src/abi/fluid-dex/resolver.abi.json +0 -2030
  287. package/src/abi/fx-protocol/FxMarket.json +0 -1284
  288. package/src/abi/fx-protocol/FxUSD.json +0 -1227
  289. package/src/abi/fx-protocol/weETHOralce.json +0 -676
  290. package/src/abi/gmx/fast-price-events.json +0 -70
  291. package/src/abi/gmx/fast-price-feed.json +0 -748
  292. package/src/abi/gmx/reader.json +0 -337
  293. package/src/abi/gmx/vault-price-feed.json +0 -477
  294. package/src/abi/gmx/vault.json +0 -2002
  295. package/src/abi/hashflow/HashflowRouter.abi.json +0 -1539
  296. package/src/abi/idle-dao/idle-cdo-factory.json +0 -38
  297. package/src/abi/idle-dao/idle-cdo.json +0 -1245
  298. package/src/abi/infusion/InfusionFactory.json +0 -147
  299. package/src/abi/infusion/InfusionPair.json +0 -658
  300. package/src/abi/infusion/InfusionRouter.json +0 -442
  301. package/src/abi/jarvis/ChainlinkAccessControlledOffchainAggregator.json +0 -1009
  302. package/src/abi/jarvis/SynthereumPriceFeed.json +0 -381
  303. package/src/abi/jarvis/jarvis-v6-pool.json +0 -1041
  304. package/src/abi/kyberdmm/kyber-dmm-exchange-router.abi.json +0 -1148
  305. package/src/abi/kyberdmm/kyber-dmm-factory.abi.json +0 -335
  306. package/src/abi/kyberdmm/kyber-dmm-pool.abi.json +0 -803
  307. package/src/abi/kyberdmm/kyber-storage.abi.json +0 -824
  308. package/src/abi/kyberdmm.abi.json +0 -1148
  309. package/src/abi/lite-psm/dai.json +0 -333
  310. package/src/abi/lite-psm/psm.json +0 -468
  311. package/src/abi/lite-psm/usdc.json +0 -814
  312. package/src/abi/lite-psm/usdsPsm.json +0 -163
  313. package/src/abi/m-token/WrappedM.abi.json +0 -1708
  314. package/src/abi/maker-psm/pot.json +0 -322
  315. package/src/abi/maker-psm/psm.json +0 -243
  316. package/src/abi/maker-psm/vat.json +0 -363
  317. package/src/abi/maverick-v1/pool-inspector.json +0 -216
  318. package/src/abi/maverick-v1/pool.json +0 -1111
  319. package/src/abi/maverick-v1/router.json +0 -389
  320. package/src/abi/maverick-v2/MaverickV2Pool.json +0 -1234
  321. package/src/abi/maverick-v2/MaverickV2PoolLens.json +0 -1232
  322. package/src/abi/maverick-v2/MaverickV2Quoter.json +0 -278
  323. package/src/abi/maverick-v2/MaverickV2Router.json +0 -778
  324. package/src/abi/multi-v2.json +0 -313
  325. package/src/abi/nerve/axial-pool.json +0 -693
  326. package/src/abi/nerve/iron-v2-pool.json +0 -785
  327. package/src/abi/nerve/nerve-metapool.json +0 -790
  328. package/src/abi/nerve/nerve-pool.json +0 -1035
  329. package/src/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
  330. package/src/abi/oswap/oswap.abi.json +0 -452
  331. package/src/abi/pancakeswap-v3/PancakeV3StateMulticall.abi.json +0 -781
  332. package/src/abi/pancakeswap-v3/PancakeswapV3Factory.abi.json +0 -300
  333. package/src/abi/pancakeswap-v3/PancakeswapV3Pool.abi.json +0 -1039
  334. package/src/abi/pancakeswap-v3/PancakeswapV3Quoter.abi.json +0 -285
  335. package/src/abi/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
  336. package/src/abi/paraswap-limit-orders/AugustusRFQ.abi.json +0 -1081
  337. package/src/abi/permit/IERC20Permit.json +0 -45
  338. package/src/abi/permit/IERC20PermitLegacy.json +0 -50
  339. package/src/abi/permit2.json +0 -581
  340. package/src/abi/polygon-migration/PolygonMigration.abi.json +0 -364
  341. package/src/abi/quick-perps/fast-price-events.json +0 -70
  342. package/src/abi/quick-perps/fast-price-feed.json +0 -741
  343. package/src/abi/quick-perps/reader.json +0 -313
  344. package/src/abi/quick-perps/vault-price-feed.json +0 -323
  345. package/src/abi/quick-perps/vault.json +0 -1953
  346. package/src/abi/ramses-v2/RamsesV2Pool.abi.json +0 -1599
  347. package/src/abi/rswETH.json +0 -1142
  348. package/src/abi/sdai/PSM3.abi.json +0 -721
  349. package/src/abi/sdai/SSRAuthOracle.abi.json +0 -522
  350. package/src/abi/sdai/SavingsDai.abi.json +0 -877
  351. package/src/abi/sdai/SavingsUSDS.abi.json +0 -720
  352. package/src/abi/sky-converter/DaiUsdsConverter.json +0 -116
  353. package/src/abi/sky-converter/MkrSkyConverter.json +0 -118
  354. package/src/abi/solidly/SolidlyFactory.json +0 -147
  355. package/src/abi/solidly/SolidlyPair.json +0 -658
  356. package/src/abi/solidly-v3/SolidlyV3Pool.abi.json +0 -738
  357. package/src/abi/solidly-v3/SolidlyV3StateMulticall.abi.json +0 -375
  358. package/src/abi/stETH.json +0 -735
  359. package/src/abi/stkGHO.json +0 -1131
  360. package/src/abi/swETH.json +0 -1086
  361. package/src/abi/swaap-v2/vault.json +0 -918
  362. package/src/abi/synthetix/CombinedSynthetix.abi.json +0 -422
  363. package/src/abi/uniswap-v2/biswap-pool.json +0 -501
  364. package/src/abi/uniswap-v2/excalibur-pool.json +0 -881
  365. package/src/abi/uniswap-v2/mdex-factory.json +0 -759
  366. package/src/abi/uniswap-v2/uniswap-v2-factory.json +0 -125
  367. package/src/abi/uniswap-v2/uniswap-v2-pool.json +0 -461
  368. package/src/abi/uniswap-v3/UniswapMulti.abi.json +0 -52
  369. package/src/abi/uniswap-v3/UniswapV3Factory.abi.json +0 -148
  370. package/src/abi/uniswap-v3/UniswapV3Pool.abi.json +0 -988
  371. package/src/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  372. package/src/abi/uniswap-v3/UniswapV3QuoterV2.abi.json +0 -155
  373. package/src/abi/uniswap-v3/UniswapV3Router.abi.json +0 -274
  374. package/src/abi/uniswap-v3/UniswapV3StateMulticall.abi.json +0 -781
  375. package/src/abi/usual-bond/usd0pp.abi.json +0 -867
  376. package/src/abi/usual-m-usd0/usualCollateralDao.abi.json +0 -681
  377. package/src/abi/usual-m-wrapped-m/usualM.abi.json +0 -509
  378. package/src/abi/usual-pp/abi.json +0 -750
  379. package/src/abi/velodrome-slipstream/VelodromeSlipstreamFactory.abi.json +0 -579
  380. package/src/abi/velodrome-slipstream/VelodromeSlipstreamPool.abi.json +0 -1275
  381. package/src/abi/velodrome-slipstream/VelodromeSlipstreamQuoterV2.abi.json +0 -267
  382. package/src/abi/velodrome-slipstream/VelodromeSlipstreamStateMulticall.abi.json +0 -766
  383. package/src/abi/weth.abi.json +0 -153
  384. package/src/abi/wombat/asset.json +0 -743
  385. package/src/abi/wombat/bmw.json +0 -1247
  386. package/src/abi/wombat/pool-v2.json +0 -1289
  387. package/src/abi/wombat/pool-v3.json +0 -2013
  388. package/src/abi/woo-fi-v2/IntegrationHelper.abi.json +0 -116
  389. package/src/abi/woo-fi-v2/WooOracleV2.abi.json +0 -358
  390. package/src/abi/woo-fi-v2/WooPPV2.abi.json +0 -580
  391. package/src/abi/wstETH.json +0 -252
  392. package/src/bigint-constants.ts +0 -21
  393. package/src/bignumber-constants.ts +0 -20
  394. package/src/calldata-gas-cost.ts +0 -26
  395. package/src/composed-event-subscriber.ts +0 -131
  396. package/src/config.ts +0 -580
  397. package/src/constants.ts +0 -74
  398. package/src/dex/aave-gsm/aave-gsm-e2e.test.ts +0 -110
  399. package/src/dex/aave-gsm/aave-gsm-events.test.ts +0 -82
  400. package/src/dex/aave-gsm/aave-gsm-gas-estimation.test.ts +0 -32
  401. package/src/dex/aave-gsm/aave-gsm-integration.test.ts +0 -522
  402. package/src/dex/aave-gsm/aave-gsm-pool.ts +0 -225
  403. package/src/dex/aave-gsm/aave-gsm.ts +0 -431
  404. package/src/dex/aave-gsm/config.ts +0 -16
  405. package/src/dex/aave-gsm/types.ts +0 -24
  406. package/src/dex/aave-v2/aave-v2-e2e.test.ts +0 -287
  407. package/src/dex/aave-v2/aave-v2-gas-estimation.test.ts +0 -28
  408. package/src/dex/aave-v2/aave-v2-integration.test.ts +0 -100
  409. package/src/dex/aave-v2/aave-v2.ts +0 -409
  410. package/src/dex/aave-v2/config.ts +0 -56
  411. package/src/dex/aave-v2/tokenlist.json +0 -904
  412. package/src/dex/aave-v2/tokens.ts +0 -76
  413. package/src/dex/aave-v2/types.ts +0 -43
  414. package/src/dex/aave-v3/aave-v3-e2e.test.ts +0 -578
  415. package/src/dex/aave-v3/aave-v3-gas-estimation.test.ts +0 -66
  416. package/src/dex/aave-v3/aave-v3-integration.test.ts +0 -148
  417. package/src/dex/aave-v3/aave-v3.ts +0 -331
  418. package/src/dex/aave-v3/config.ts +0 -157
  419. package/src/dex/aave-v3/tokens.ts +0 -68
  420. package/src/dex/aave-v3/types.ts +0 -46
  421. package/src/dex/aave-v3/utils.ts +0 -153
  422. package/src/dex/aave-v3-stata/aave-v3-stata-e2e.test.ts +0 -355
  423. package/src/dex/aave-v3-stata/aave-v3-stata-gas-estimation.test.ts +0 -41
  424. package/src/dex/aave-v3-stata/aave-v3-stata-integration.test.ts +0 -282
  425. package/src/dex/aave-v3-stata/aave-v3-stata.ts +0 -530
  426. package/src/dex/aave-v3-stata/config.ts +0 -61
  427. package/src/dex/aave-v3-stata/tokens.ts +0 -48
  428. package/src/dex/aave-v3-stata/types.ts +0 -69
  429. package/src/dex/aave-v3-stata/utils.ts +0 -84
  430. package/src/dex/aave-v3-stata-v2/aave-v3-stata-v2-e2e.test.ts +0 -376
  431. package/src/dex/aave-v3-stata-v2/aave-v3-stata-v2-gas-estimation.test.ts +0 -41
  432. package/src/dex/aave-v3-stata-v2/aave-v3-stata-v2-integration.test.ts +0 -600
  433. package/src/dex/aave-v3-stata-v2/aave-v3-stata-v2.ts +0 -477
  434. package/src/dex/aave-v3-stata-v2/config.ts +0 -47
  435. package/src/dex/aave-v3-stata-v2/tokens.ts +0 -48
  436. package/src/dex/aave-v3-stata-v2/types.ts +0 -42
  437. package/src/dex/aave-v3-stata-v2/utils.ts +0 -96
  438. package/src/dex/algebra/algebra-e2e.test.ts +0 -313
  439. package/src/dex/algebra/algebra-events.test.ts +0 -186
  440. package/src/dex/algebra/algebra-factory.ts +0 -77
  441. package/src/dex/algebra/algebra-integration.test.ts +0 -558
  442. package/src/dex/algebra/algebra-pool-v1_1.ts +0 -853
  443. package/src/dex/algebra/algebra-pool-v1_9.ts +0 -614
  444. package/src/dex/algebra/algebra-pool-v1_9_bidirectional_fee.ts +0 -55
  445. package/src/dex/algebra/algebra.ts +0 -1141
  446. package/src/dex/algebra/config.ts +0 -128
  447. package/src/dex/algebra/constants.ts +0 -17
  448. package/src/dex/algebra/lib/AlgebraMath.ts +0 -706
  449. package/src/dex/algebra/lib/Constants.ts +0 -5
  450. package/src/dex/algebra/lib/TickManager.ts +0 -91
  451. package/src/dex/algebra/lib/TickTable.ts +0 -227
  452. package/src/dex/algebra/lib/yul-helper.ts +0 -29
  453. package/src/dex/algebra/scripts/validate-state.ts +0 -292
  454. package/src/dex/algebra/types.ts +0 -146
  455. package/src/dex/algebra/utils.ts +0 -217
  456. package/src/dex/angle-staked-stable/angle-staked-stable-e2e.test.ts +0 -146
  457. package/src/dex/angle-staked-stable/angle-staked-stable-events.test.ts +0 -95
  458. package/src/dex/angle-staked-stable/angle-staked-stable-gas-estimation.test.ts +0 -29
  459. package/src/dex/angle-staked-stable/angle-staked-stable-integration.test.ts +0 -476
  460. package/src/dex/angle-staked-stable/angle-staked-stable-pool.ts +0 -325
  461. package/src/dex/angle-staked-stable/angle-staked-stable.ts +0 -356
  462. package/src/dex/angle-staked-stable/config.ts +0 -139
  463. package/src/dex/angle-staked-stable/types.ts +0 -16
  464. package/src/dex/angle-transmuter/angle-transmuter-e2e.test.ts +0 -156
  465. package/src/dex/angle-transmuter/angle-transmuter-events.test.ts +0 -365
  466. package/src/dex/angle-transmuter/angle-transmuter-gas-estimation.test.ts +0 -41
  467. package/src/dex/angle-transmuter/angle-transmuter-integration.test.ts +0 -390
  468. package/src/dex/angle-transmuter/angle-transmuter-pool.ts +0 -895
  469. package/src/dex/angle-transmuter/angle-transmuter.ts +0 -407
  470. package/src/dex/angle-transmuter/backedOracle.ts +0 -91
  471. package/src/dex/angle-transmuter/config.ts +0 -50
  472. package/src/dex/angle-transmuter/constants.ts +0 -138
  473. package/src/dex/angle-transmuter/morphoOracle.ts +0 -335
  474. package/src/dex/angle-transmuter/morphoVault.ts +0 -134
  475. package/src/dex/angle-transmuter/pyth.ts +0 -105
  476. package/src/dex/angle-transmuter/redstone.ts +0 -105
  477. package/src/dex/angle-transmuter/transmuter.ts +0 -619
  478. package/src/dex/angle-transmuter/types.ts +0 -203
  479. package/src/dex/angle-transmuter/utils.ts +0 -358
  480. package/src/dex/augustus-approvals.ts +0 -208
  481. package/src/dex/augustus-rfq.ts +0 -180
  482. package/src/dex/balancer-v1/balancer-pools.json +0 -33333
  483. package/src/dex/balancer-v1/balancer-v1-e2e.test.ts +0 -119
  484. package/src/dex/balancer-v1/balancer-v1-events.test.ts +0 -83
  485. package/src/dex/balancer-v1/balancer-v1-gas-estimation.test.ts +0 -29
  486. package/src/dex/balancer-v1/balancer-v1-integration.test.ts +0 -307
  487. package/src/dex/balancer-v1/balancer-v1-math.ts +0 -154
  488. package/src/dex/balancer-v1/balancer-v1-pool.ts +0 -232
  489. package/src/dex/balancer-v1/balancer-v1.ts +0 -578
  490. package/src/dex/balancer-v1/config.ts +0 -29
  491. package/src/dex/balancer-v1/optimizer.ts +0 -76
  492. package/src/dex/balancer-v1/types.ts +0 -100
  493. package/src/dex/balancer-v1/utils.ts +0 -57
  494. package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +0 -1612
  495. package/src/dex/balancer-v2/balancer-v2-events.test.ts +0 -132
  496. package/src/dex/balancer-v2/balancer-v2-gas-estimation.test.ts +0 -98
  497. package/src/dex/balancer-v2/balancer-v2-gyro3.test.ts +0 -268
  498. package/src/dex/balancer-v2/balancer-v2-gyroE.test.ts +0 -401
  499. package/src/dex/balancer-v2/balancer-v2-integration.test.ts +0 -931
  500. package/src/dex/balancer-v2/balancer-v2-math.ts +0 -592
  501. package/src/dex/balancer-v2/balancer-v2.ts +0 -1724
  502. package/src/dex/balancer-v2/config.ts +0 -81
  503. package/src/dex/balancer-v2/constants.ts +0 -20
  504. package/src/dex/balancer-v2/optimizer.ts +0 -70
  505. package/src/dex/balancer-v2/pools/balancer-v2-pool.ts +0 -274
  506. package/src/dex/balancer-v2/pools/gyro/Gyro3Pool.ts +0 -255
  507. package/src/dex/balancer-v2/pools/gyro/GyroEPool.ts +0 -402
  508. package/src/dex/balancer-v2/pools/gyro/gyro-helpers.ts +0 -15
  509. package/src/dex/balancer-v2/pools/linear/LinearMath.ts +0 -286
  510. package/src/dex/balancer-v2/pools/linear/LinearPool.ts +0 -639
  511. package/src/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.ts +0 -494
  512. package/src/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.ts +0 -581
  513. package/src/dex/balancer-v2/pools/stable/StableMath.ts +0 -203
  514. package/src/dex/balancer-v2/pools/stable/StablePool.ts +0 -223
  515. package/src/dex/balancer-v2/pools/weighted/WeightedMath.ts +0 -84
  516. package/src/dex/balancer-v2/pools/weighted/WeightedPool.ts +0 -188
  517. package/src/dex/balancer-v2/queryOnChain.ts +0 -48
  518. package/src/dex/balancer-v2/types.ts +0 -215
  519. package/src/dex/balancer-v2/utils.ts +0 -212
  520. package/src/dex/balancer-v3/balancer-hooks-events.test.ts +0 -166
  521. package/src/dex/balancer-v3/balancer-stableSurge.test.ts +0 -110
  522. package/src/dex/balancer-v3/balancer-test-helpers.ts +0 -199
  523. package/src/dex/balancer-v3/balancer-v3-e2e.test.ts +0 -429
  524. package/src/dex/balancer-v3/balancer-v3-events.test.ts +0 -296
  525. package/src/dex/balancer-v3/balancer-v3-gas-estimation.test.ts +0 -30
  526. package/src/dex/balancer-v3/balancer-v3-integration.test.ts +0 -1008
  527. package/src/dex/balancer-v3/balancer-v3-pool.ts +0 -761
  528. package/src/dex/balancer-v3/balancer-v3.ts +0 -655
  529. package/src/dex/balancer-v3/config.ts +0 -93
  530. package/src/dex/balancer-v3/getGasCost.ts +0 -37
  531. package/src/dex/balancer-v3/getOnChainState.ts +0 -397
  532. package/src/dex/balancer-v3/getPoolsApi.ts +0 -148
  533. package/src/dex/balancer-v3/getTopPoolsApi.ts +0 -112
  534. package/src/dex/balancer-v3/hooks/balancer-hook-event-subscriber.ts +0 -212
  535. package/src/dex/balancer-v3/hooks/directionalFeeHook.ts +0 -51
  536. package/src/dex/balancer-v3/hooks/loadHooksConfig.ts +0 -12
  537. package/src/dex/balancer-v3/hooks/stableSurgeHook.ts +0 -198
  538. package/src/dex/balancer-v3/optimizer.ts +0 -66
  539. package/src/dex/balancer-v3/stablePool.ts +0 -78
  540. package/src/dex/balancer-v3/types.ts +0 -89
  541. package/src/dex/balancer-v3/weightedPool.ts +0 -2
  542. package/src/dex/bancor/bancor-e2e.test.ts +0 -91
  543. package/src/dex/bancor/bancor-gas-estimation.test.ts +0 -30
  544. package/src/dex/bancor/bancor.ts +0 -128
  545. package/src/dex/bancor/config.ts +0 -9
  546. package/src/dex/bancor/types.ts +0 -19
  547. package/src/dex/bebop/bebop-e2e.test.ts +0 -228
  548. package/src/dex/bebop/bebop-gas-estimation.test.ts +0 -30
  549. package/src/dex/bebop/bebop-integration.test.ts +0 -182
  550. package/src/dex/bebop/bebop.json +0 -72
  551. package/src/dex/bebop/bebop.proto +0 -15
  552. package/src/dex/bebop/bebop.ts +0 -930
  553. package/src/dex/bebop/config.ts +0 -42
  554. package/src/dex/bebop/constants.ts +0 -20
  555. package/src/dex/bebop/rate-fetcher.ts +0 -168
  556. package/src/dex/bebop/types.ts +0 -95
  557. package/src/dex/bebop/validators.ts +0 -39
  558. package/src/dex/cables/cables-e2e.test.ts +0 -207
  559. package/src/dex/cables/cables-integration.test.ts +0 -391
  560. package/src/dex/cables/cables.ts +0 -857
  561. package/src/dex/cables/config.ts +0 -13
  562. package/src/dex/cables/constants.ts +0 -33
  563. package/src/dex/cables/rate-fetcher.ts +0 -212
  564. package/src/dex/cables/types.ts +0 -113
  565. package/src/dex/cables/validators.test.ts +0 -151
  566. package/src/dex/cables/validators.ts +0 -61
  567. package/src/dex/camelot/camelot-e2e.test.ts +0 -161
  568. package/src/dex/camelot/camelot-integration.test.ts +0 -215
  569. package/src/dex/camelot/camelot-pool-discovery.test.ts +0 -149
  570. package/src/dex/camelot/camelot.ts +0 -882
  571. package/src/dex/camelot/config.ts +0 -23
  572. package/src/dex/camelot/types.ts +0 -15
  573. package/src/dex/compound/compound-e2e.test.ts +0 -91
  574. package/src/dex/compound/compound.ts +0 -112
  575. package/src/dex/compound/types.ts +0 -10
  576. package/src/dex/concentrator-arusd/concentrator-arusd-e2e.test.ts +0 -92
  577. package/src/dex/concentrator-arusd/concentrator-arusd-event.ts +0 -100
  578. package/src/dex/concentrator-arusd/concentrator-arusd-gas-estimation.test.ts +0 -29
  579. package/src/dex/concentrator-arusd/concentrator-arusd-integration.test.ts +0 -104
  580. package/src/dex/concentrator-arusd/concentrator-arusd.ts +0 -269
  581. package/src/dex/concentrator-arusd/concetrator-arusd-events.test.ts +0 -97
  582. package/src/dex/concentrator-arusd/config.ts +0 -13
  583. package/src/dex/concentrator-arusd/types.ts +0 -16
  584. package/src/dex/concentrator-arusd/utils.ts +0 -36
  585. package/src/dex/curve-v1/config.ts +0 -1181
  586. package/src/dex/curve-v1/constants.ts +0 -12
  587. package/src/dex/curve-v1/curve-v1-e2e.test.ts +0 -587
  588. package/src/dex/curve-v1/curve-v1-events.test.ts +0 -335
  589. package/src/dex/curve-v1/curve-v1-gas-estimation.test.ts +0 -29
  590. package/src/dex/curve-v1/curve-v1-integration.test.ts +0 -143
  591. package/src/dex/curve-v1/curve-v1.ts +0 -1315
  592. package/src/dex/curve-v1/forks/curve-forks/config.ts +0 -177
  593. package/src/dex/curve-v1/forks/curve-forks/curve-forks.ts +0 -73
  594. package/src/dex/curve-v1/forks/swerve/config.ts +0 -47
  595. package/src/dex/curve-v1/forks/swerve/swerve.ts +0 -68
  596. package/src/dex/curve-v1/packer.ts +0 -17
  597. package/src/dex/curve-v1/pools/3pool.ts +0 -313
  598. package/src/dex/curve-v1/pools/DUSDpool.ts +0 -52
  599. package/src/dex/curve-v1/pools/EURSpool.ts +0 -37
  600. package/src/dex/curve-v1/pools/GUSDpool.ts +0 -52
  601. package/src/dex/curve-v1/pools/HUSDpool.ts +0 -52
  602. package/src/dex/curve-v1/pools/LinkUSDpool.ts +0 -52
  603. package/src/dex/curve-v1/pools/MUSDpool.ts +0 -52
  604. package/src/dex/curve-v1/pools/bBTCpool.ts +0 -52
  605. package/src/dex/curve-v1/pools/curve-metapool.ts +0 -1113
  606. package/src/dex/curve-v1/pools/curve-pool.ts +0 -489
  607. package/src/dex/curve-v1/pools/getstate-multicall.ts +0 -156
  608. package/src/dex/curve-v1/pools/hBTCpool.ts +0 -37
  609. package/src/dex/curve-v1/pools/oBTCpool.ts +0 -52
  610. package/src/dex/curve-v1/pools/pBTCpool.ts +0 -52
  611. package/src/dex/curve-v1/pools/renpool.ts +0 -38
  612. package/src/dex/curve-v1/pools/rsvpool.ts +0 -52
  613. package/src/dex/curve-v1/pools/sBTCpool.ts +0 -38
  614. package/src/dex/curve-v1/pools/sETHpool.ts +0 -69
  615. package/src/dex/curve-v1/pools/sLinkpool.ts +0 -37
  616. package/src/dex/curve-v1/pools/sUSDpool.ts +0 -133
  617. package/src/dex/curve-v1/pools/stETHpool.ts +0 -52
  618. package/src/dex/curve-v1/pools/tBTCpool.ts +0 -52
  619. package/src/dex/curve-v1/pools/usdkpool.ts +0 -52
  620. package/src/dex/curve-v1/pools/usdnpool.ts +0 -59
  621. package/src/dex/curve-v1/pools/ustpool.ts +0 -52
  622. package/src/dex/curve-v1/types.ts +0 -88
  623. package/src/dex/curve-v1-factory/config.ts +0 -1004
  624. package/src/dex/curve-v1-factory/constants.ts +0 -41
  625. package/src/dex/curve-v1-factory/curve-v1-factory-e2e.test.ts +0 -441
  626. package/src/dex/curve-v1-factory/curve-v1-factory-integration.test.ts +0 -827
  627. package/src/dex/curve-v1-factory/curve-v1-factory-node-cache.ts +0 -10
  628. package/src/dex/curve-v1-factory/curve-v1-factory.ts +0 -1567
  629. package/src/dex/curve-v1-factory/curve-v1-pool-manager.ts +0 -449
  630. package/src/dex/curve-v1-factory/optimizer.ts +0 -57
  631. package/src/dex/curve-v1-factory/price-handlers/functions/_calc_withdraw_one_coin.ts +0 -292
  632. package/src/dex/curve-v1-factory/price-handlers/functions/_dynamic_fee.ts +0 -103
  633. package/src/dex/curve-v1-factory/price-handlers/functions/_rates.ts +0 -116
  634. package/src/dex/curve-v1-factory/price-handlers/functions/_xp.ts +0 -114
  635. package/src/dex/curve-v1-factory/price-handlers/functions/_xp_mem.ts +0 -103
  636. package/src/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.ts +0 -230
  637. package/src/dex/curve-v1-factory/price-handlers/functions/calc_withdraw_one_coin.ts +0 -90
  638. package/src/dex/curve-v1-factory/price-handlers/functions/constants.ts +0 -604
  639. package/src/dex/curve-v1-factory/price-handlers/functions/get_D.ts +0 -386
  640. package/src/dex/curve-v1-factory/price-handlers/functions/get_D_mem.ts +0 -148
  641. package/src/dex/curve-v1-factory/price-handlers/functions/get_D_precisions.ts +0 -120
  642. package/src/dex/curve-v1-factory/price-handlers/functions/get_dx.ts +0 -145
  643. package/src/dex/curve-v1-factory/price-handlers/functions/get_dy.ts +0 -327
  644. package/src/dex/curve-v1-factory/price-handlers/functions/get_dy_underlying.ts +0 -293
  645. package/src/dex/curve-v1-factory/price-handlers/functions/get_y.ts +0 -262
  646. package/src/dex/curve-v1-factory/price-handlers/functions/get_y_D.ts +0 -183
  647. package/src/dex/curve-v1-factory/price-handlers/functions/utils.ts +0 -76
  648. package/src/dex/curve-v1-factory/price-handlers/price-handler.ts +0 -130
  649. package/src/dex/curve-v1-factory/price-handlers/types.ts +0 -142
  650. package/src/dex/curve-v1-factory/state-polling-pools/custom-pool-polling.ts +0 -301
  651. package/src/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.ts +0 -227
  652. package/src/dex/curve-v1-factory/state-polling-pools/polling-manager.ts +0 -266
  653. package/src/dex/curve-v1-factory/state-polling-pools/pool-polling-base.ts +0 -181
  654. package/src/dex/curve-v1-factory/types.ts +0 -286
  655. package/src/dex/curve-v1-stable-ng/config.ts +0 -315
  656. package/src/dex/curve-v1-stable-ng/curve-v1-stable-ng-e2e.test.ts +0 -219
  657. package/src/dex/curve-v1-stable-ng/curve-v1-stable-ng-integration.test.ts +0 -567
  658. package/src/dex/curve-v1-stable-ng/curve-v1-stable-ng.ts +0 -33
  659. package/src/dex/curve-v2/constants.ts +0 -1
  660. package/src/dex/curve-v2/curve-v2-e2e.test.ts +0 -104
  661. package/src/dex/curve-v2/curve-v2-gas-estimation.test.ts +0 -29
  662. package/src/dex/curve-v2/curve-v2.ts +0 -440
  663. package/src/dex/curve-v2/types.ts +0 -27
  664. package/src/dex/dexalot/config.ts +0 -28
  665. package/src/dex/dexalot/constants.ts +0 -32
  666. package/src/dex/dexalot/dexalot-e2e.test.ts +0 -260
  667. package/src/dex/dexalot/dexalot-integration.test.ts +0 -431
  668. package/src/dex/dexalot/dexalot.ts +0 -1114
  669. package/src/dex/dexalot/rate-fetcher.ts +0 -197
  670. package/src/dex/dexalot/types.ts +0 -131
  671. package/src/dex/dexalot/validators.ts +0 -46
  672. package/src/dex/dodo-v1/config.ts +0 -15
  673. package/src/dex/dodo-v1/dodo-v1-e2e.test.ts +0 -101
  674. package/src/dex/dodo-v1/dodo-v1.ts +0 -132
  675. package/src/dex/dodo-v1/types.ts +0 -25
  676. package/src/dex/dodo-v2.ts +0 -266
  677. package/src/dex/ekubo/config.ts +0 -15
  678. package/src/dex/ekubo/ekubo-e2e.test.ts +0 -124
  679. package/src/dex/ekubo/ekubo-events.test.ts +0 -209
  680. package/src/dex/ekubo/ekubo-integration.test.ts +0 -243
  681. package/src/dex/ekubo/ekubo.ts +0 -628
  682. package/src/dex/ekubo/pools/base-pool.ts +0 -267
  683. package/src/dex/ekubo/pools/math/constants.ts +0 -5
  684. package/src/dex/ekubo/pools/math/delta.test.ts +0 -131
  685. package/src/dex/ekubo/pools/math/delta.ts +0 -68
  686. package/src/dex/ekubo/pools/math/price.test.ts +0 -54
  687. package/src/dex/ekubo/pools/math/price.ts +0 -129
  688. package/src/dex/ekubo/pools/math/swap.test.ts +0 -215
  689. package/src/dex/ekubo/pools/math/swap.ts +0 -161
  690. package/src/dex/ekubo/pools/math/tick.test.ts +0 -72
  691. package/src/dex/ekubo/pools/math/tick.ts +0 -120
  692. package/src/dex/ekubo/pools/oracle-pool.ts +0 -46
  693. package/src/dex/ekubo/pools/pool-utils.ts +0 -348
  694. package/src/dex/ekubo/types.test.ts +0 -552
  695. package/src/dex/ekubo/types.ts +0 -55
  696. package/src/dex/ekubo/utils.ts +0 -34
  697. package/src/dex/erc4626/config.ts +0 -41
  698. package/src/dex/erc4626/constants.ts +0 -6
  699. package/src/dex/erc4626/erc-4626-pool.ts +0 -132
  700. package/src/dex/erc4626/erc4626-e2e.test.ts +0 -224
  701. package/src/dex/erc4626/erc4626-event.test.ts +0 -128
  702. package/src/dex/erc4626/erc4626-gas-estimation.test.ts +0 -41
  703. package/src/dex/erc4626/erc4626-integration.test.ts +0 -164
  704. package/src/dex/erc4626/erc4626.ts +0 -333
  705. package/src/dex/erc4626/types.ts +0 -26
  706. package/src/dex/etherfi.ts +0 -244
  707. package/src/dex/fluid-dex/config.ts +0 -27
  708. package/src/dex/fluid-dex/constants.ts +0 -2
  709. package/src/dex/fluid-dex/fluid-dex-e2e.test.ts +0 -311
  710. package/src/dex/fluid-dex/fluid-dex-events.test.ts +0 -179
  711. package/src/dex/fluid-dex/fluid-dex-factory.ts +0 -151
  712. package/src/dex/fluid-dex/fluid-dex-gas-estimation.test.ts +0 -29
  713. package/src/dex/fluid-dex/fluid-dex-integration.test.ts +0 -355
  714. package/src/dex/fluid-dex/fluid-dex-liquidity-proxy.ts +0 -210
  715. package/src/dex/fluid-dex/fluid-dex-pool.ts +0 -138
  716. package/src/dex/fluid-dex/fluid-dex.ts +0 -1169
  717. package/src/dex/fluid-dex/types.ts +0 -104
  718. package/src/dex/fluid-dex/utils.ts +0 -15
  719. package/src/dex/fx-protocol-rusd/config.ts +0 -14
  720. package/src/dex/fx-protocol-rusd/fx-protocol-e2e.test.ts +0 -96
  721. package/src/dex/fx-protocol-rusd/fx-protocol-events.test.ts +0 -101
  722. package/src/dex/fx-protocol-rusd/fx-protocol-integration.test.ts +0 -104
  723. package/src/dex/fx-protocol-rusd/fx-protocol-rusd-event.ts +0 -112
  724. package/src/dex/fx-protocol-rusd/fx-protocol-rusd-gas-estimation.test.ts +0 -29
  725. package/src/dex/fx-protocol-rusd/fx-protocol-rusd.ts +0 -282
  726. package/src/dex/fx-protocol-rusd/types.ts +0 -16
  727. package/src/dex/fx-protocol-rusd/utils.ts +0 -47
  728. package/src/dex/generic-rfq/e2e-test-config.ts +0 -25
  729. package/src/dex/generic-rfq/example-api.test.ts +0 -233
  730. package/src/dex/generic-rfq/fetch-mm-api.ts +0 -284
  731. package/src/dex/generic-rfq/generic-rfq-e2e.test.ts +0 -118
  732. package/src/dex/generic-rfq/generic-rfq-integration.test.ts +0 -235
  733. package/src/dex/generic-rfq/generic-rfq-local-e2e.test.ts +0 -107
  734. package/src/dex/generic-rfq/generic-rfq.ts +0 -463
  735. package/src/dex/generic-rfq/rate-fetcher.ts +0 -491
  736. package/src/dex/generic-rfq/security.ts +0 -55
  737. package/src/dex/generic-rfq/types.ts +0 -120
  738. package/src/dex/generic-rfq/utils.ts +0 -74
  739. package/src/dex/generic-rfq/validators.test.ts +0 -245
  740. package/src/dex/generic-rfq/validators.ts +0 -189
  741. package/src/dex/gmx/config.ts +0 -81
  742. package/src/dex/gmx/fast-price-feed.ts +0 -279
  743. package/src/dex/gmx/gmx-e2e.test.ts +0 -322
  744. package/src/dex/gmx/gmx-events.test.ts +0 -114
  745. package/src/dex/gmx/gmx-integration.test.ts +0 -211
  746. package/src/dex/gmx/gmx.ts +0 -321
  747. package/src/dex/gmx/pool.ts +0 -360
  748. package/src/dex/gmx/types.ts +0 -94
  749. package/src/dex/gmx/usdg.ts +0 -83
  750. package/src/dex/gmx/vault-price-feed.ts +0 -384
  751. package/src/dex/gmx/vault-utils.ts +0 -53
  752. package/src/dex/gmx/vault.ts +0 -290
  753. package/src/dex/hashflow/config.ts +0 -56
  754. package/src/dex/hashflow/constants.ts +0 -54
  755. package/src/dex/hashflow/hashflow-e2e.test.ts +0 -351
  756. package/src/dex/hashflow/hashflow-gas-estimation.test.ts +0 -30
  757. package/src/dex/hashflow/hashflow-integration.test.ts +0 -157
  758. package/src/dex/hashflow/hashflow.ts +0 -1119
  759. package/src/dex/hashflow/rate-fetcher.ts +0 -118
  760. package/src/dex/hashflow/types.ts +0 -83
  761. package/src/dex/hashflow/validators.ts +0 -38
  762. package/src/dex/idex.ts +0 -268
  763. package/src/dex/idle-dao/config.ts +0 -26
  764. package/src/dex/idle-dao/idle-dao--gas-estimation.test.ts +0 -30
  765. package/src/dex/idle-dao/idle-dao-e2e.test.ts +0 -112
  766. package/src/dex/idle-dao/idle-dao-integration.test.ts +0 -155
  767. package/src/dex/idle-dao/idle-dao.ts +0 -402
  768. package/src/dex/idle-dao/token_list.ts +0 -287
  769. package/src/dex/idle-dao/tokens.ts +0 -99
  770. package/src/dex/idle-dao/types.ts +0 -43
  771. package/src/dex/idle-dao/utils.ts +0 -216
  772. package/src/dex/index.ts +0 -402
  773. package/src/dex/infusion/config.ts +0 -21
  774. package/src/dex/infusion/infusion-e2e.test.ts +0 -110
  775. package/src/dex/infusion/infusion-integration.test.ts +0 -232
  776. package/src/dex/infusion/infusion-stable-pool.ts +0 -91
  777. package/src/dex/infusion/infusion.ts +0 -652
  778. package/src/dex/infusion/types.ts +0 -60
  779. package/src/dex/infusion/utils/isStablePair.ts +0 -18
  780. package/src/dex/jarvis-v6/chainLinkpriceFeed-event.ts +0 -76
  781. package/src/dex/jarvis-v6/config.ts +0 -261
  782. package/src/dex/jarvis-v6/jarvis-v6-e2e.test.ts +0 -113
  783. package/src/dex/jarvis-v6/jarvis-v6-events.test.ts +0 -67
  784. package/src/dex/jarvis-v6/jarvis-v6-events.ts +0 -67
  785. package/src/dex/jarvis-v6/jarvis-v6-integration.test.ts +0 -111
  786. package/src/dex/jarvis-v6/jarvis-v6.ts +0 -509
  787. package/src/dex/jarvis-v6/syntheteumPool-event.ts +0 -68
  788. package/src/dex/jarvis-v6/types.ts +0 -59
  789. package/src/dex/jarvis-v6/utils.ts +0 -127
  790. package/src/dex/kyberdmm/config.ts +0 -61
  791. package/src/dex/kyberdmm/fee-formula.ts +0 -113
  792. package/src/dex/kyberdmm/kyberdmm-e2e.test.ts +0 -325
  793. package/src/dex/kyberdmm/kyberdmm-events.test.ts +0 -123
  794. package/src/dex/kyberdmm/kyberdmm-integration.test.ts +0 -93
  795. package/src/dex/kyberdmm/kyberdmm.ts +0 -649
  796. package/src/dex/kyberdmm/math-ext.ts +0 -29
  797. package/src/dex/kyberdmm/pool.ts +0 -226
  798. package/src/dex/kyberdmm/types.ts +0 -85
  799. package/src/dex/lido/config.ts +0 -5
  800. package/src/dex/lido/lido-e2e.test.ts +0 -81
  801. package/src/dex/lido/lido-gas-estimation.test.ts +0 -29
  802. package/src/dex/lido/lido.ts +0 -110
  803. package/src/dex/lido/types.ts +0 -5
  804. package/src/dex/limit-order-exchange.ts +0 -40
  805. package/src/dex/lite-psm/config.ts +0 -33
  806. package/src/dex/lite-psm/lite-psm-e2e.test.ts +0 -146
  807. package/src/dex/lite-psm/lite-psm-event-pool.ts +0 -216
  808. package/src/dex/lite-psm/lite-psm-events.test.ts +0 -61
  809. package/src/dex/lite-psm/lite-psm-gas-estimation.test.ts +0 -34
  810. package/src/dex/lite-psm/lite-psm-integration.test.ts +0 -99
  811. package/src/dex/lite-psm/lite-psm.ts +0 -540
  812. package/src/dex/lite-psm/types.ts +0 -47
  813. package/src/dex/maker-psm/config.ts +0 -59
  814. package/src/dex/maker-psm/maker-psm-e2e.test.ts +0 -83
  815. package/src/dex/maker-psm/maker-psm-events.test.ts +0 -63
  816. package/src/dex/maker-psm/maker-psm-gas-estimation.test.ts +0 -34
  817. package/src/dex/maker-psm/maker-psm-integration.test.ts +0 -99
  818. package/src/dex/maker-psm/maker-psm.ts +0 -722
  819. package/src/dex/maker-psm/types.ts +0 -45
  820. package/src/dex/maverick-v1/config.ts +0 -33
  821. package/src/dex/maverick-v1/constants.ts +0 -1
  822. package/src/dex/maverick-v1/maverick-math/maverick-basic-math.ts +0 -187
  823. package/src/dex/maverick-v1/maverick-math/maverick-bin-map.ts +0 -182
  824. package/src/dex/maverick-v1/maverick-math/maverick-pool-math.test.ts +0 -680
  825. package/src/dex/maverick-v1/maverick-math/maverick-pool-math.ts +0 -562
  826. package/src/dex/maverick-v1/maverick-v1-e2e.test.ts +0 -346
  827. package/src/dex/maverick-v1/maverick-v1-events.test.ts +0 -112
  828. package/src/dex/maverick-v1/maverick-v1-gas-estimation.test.ts +0 -29
  829. package/src/dex/maverick-v1/maverick-v1-integration.test.ts +0 -170
  830. package/src/dex/maverick-v1/maverick-v1-pool.ts +0 -394
  831. package/src/dex/maverick-v1/maverick-v1.ts +0 -536
  832. package/src/dex/maverick-v1/subgraph-queries.ts +0 -60
  833. package/src/dex/maverick-v1/types.ts +0 -83
  834. package/src/dex/maverick-v2/config.ts +0 -32
  835. package/src/dex/maverick-v2/maverick-math/maverick-basic-math.ts +0 -152
  836. package/src/dex/maverick-v2/maverick-math/maverick-bin-math.ts +0 -288
  837. package/src/dex/maverick-v2/maverick-math/maverick-delta-math.ts +0 -32
  838. package/src/dex/maverick-v2/maverick-math/maverick-math.ts +0 -30
  839. package/src/dex/maverick-v2/maverick-math/maverick-pool-lib.ts +0 -42
  840. package/src/dex/maverick-v2/maverick-math/maverick-pool-math.ts +0 -714
  841. package/src/dex/maverick-v2/maverick-math/maverick-swap-math.ts +0 -199
  842. package/src/dex/maverick-v2/maverick-math/maverick-tick-math.ts +0 -171
  843. package/src/dex/maverick-v2/maverick-math/maverick-twa-math.ts +0 -54
  844. package/src/dex/maverick-v2/maverick-v2-e2e.test.ts +0 -171
  845. package/src/dex/maverick-v2/maverick-v2-events.test.ts +0 -112
  846. package/src/dex/maverick-v2/maverick-v2-gas-estimation.test.ts +0 -29
  847. package/src/dex/maverick-v2/maverick-v2-integration.test.ts +0 -287
  848. package/src/dex/maverick-v2/maverick-v2-pool.ts +0 -369
  849. package/src/dex/maverick-v2/maverick-v2.ts +0 -409
  850. package/src/dex/maverick-v2/types.ts +0 -155
  851. package/src/dex/nerve/config.ts +0 -635
  852. package/src/dex/nerve/nerve-e2e.test.ts +0 -731
  853. package/src/dex/nerve/nerve-events.test.ts +0 -911
  854. package/src/dex/nerve/nerve-integration.test.ts +0 -73
  855. package/src/dex/nerve/nerve-math.ts +0 -304
  856. package/src/dex/nerve/nerve-metapool.ts +0 -203
  857. package/src/dex/nerve/nerve-pool.ts +0 -425
  858. package/src/dex/nerve/nerve.ts +0 -467
  859. package/src/dex/nerve/types.ts +0 -65
  860. package/src/dex/nerve/utils.ts +0 -39
  861. package/src/dex/oswap/config.ts +0 -32
  862. package/src/dex/oswap/oswap-e2e.test.ts +0 -91
  863. package/src/dex/oswap/oswap-events.test.ts +0 -88
  864. package/src/dex/oswap/oswap-integration.test.ts +0 -291
  865. package/src/dex/oswap/oswap-pool.ts +0 -190
  866. package/src/dex/oswap/oswap.ts +0 -414
  867. package/src/dex/oswap/types.ts +0 -29
  868. package/src/dex/pancakeswap-v3/config.ts +0 -119
  869. package/src/dex/pancakeswap-v3/constants.ts +0 -36
  870. package/src/dex/pancakeswap-v3/contract-math/BitMath.ts +0 -90
  871. package/src/dex/pancakeswap-v3/contract-math/FixedPoint128.ts +0 -3
  872. package/src/dex/pancakeswap-v3/contract-math/FixedPoint96.ts +0 -4
  873. package/src/dex/pancakeswap-v3/contract-math/FullMath.ts +0 -30
  874. package/src/dex/pancakeswap-v3/contract-math/LiquidityMath.ts +0 -17
  875. package/src/dex/pancakeswap-v3/contract-math/Oracle.ts +0 -226
  876. package/src/dex/pancakeswap-v3/contract-math/SqrtPriceMath.ts +0 -226
  877. package/src/dex/pancakeswap-v3/contract-math/SwapMath.ts +0 -139
  878. package/src/dex/pancakeswap-v3/contract-math/Tick.ts +0 -82
  879. package/src/dex/pancakeswap-v3/contract-math/TickBitMap.ts +0 -128
  880. package/src/dex/pancakeswap-v3/contract-math/TickMath.ts +0 -211
  881. package/src/dex/pancakeswap-v3/contract-math/UnsafeMath.ts +0 -5
  882. package/src/dex/pancakeswap-v3/contract-math/pancakeswap-v3-math.ts +0 -687
  883. package/src/dex/pancakeswap-v3/contract-math/utils.ts +0 -11
  884. package/src/dex/pancakeswap-v3/pancakeswap-v3-e2e.test.ts +0 -459
  885. package/src/dex/pancakeswap-v3/pancakeswap-v3-events.test.ts +0 -124
  886. package/src/dex/pancakeswap-v3/pancakeswap-v3-factory.ts +0 -80
  887. package/src/dex/pancakeswap-v3/pancakeswap-v3-gas-estimation.test.ts +0 -29
  888. package/src/dex/pancakeswap-v3/pancakeswap-v3-integration.test.ts +0 -529
  889. package/src/dex/pancakeswap-v3/pancakeswap-v3-pool.ts +0 -555
  890. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +0 -1161
  891. package/src/dex/pancakeswap-v3/utils.ts +0 -65
  892. package/src/dex/paraswap-limit-orders/config.ts +0 -60
  893. package/src/dex/paraswap-limit-orders/constant.ts +0 -32
  894. package/src/dex/paraswap-limit-orders/paraswap-limit-orders-e2e.test.ts +0 -221
  895. package/src/dex/paraswap-limit-orders/paraswap-limit-orders-integration.test.ts +0 -328
  896. package/src/dex/paraswap-limit-orders/paraswap-limit-orders.ts +0 -634
  897. package/src/dex/paraswap-limit-orders/types.ts +0 -84
  898. package/src/dex/paraswap-limit-orders/utils.ts +0 -52
  899. package/src/dex/polygon-migrator/config.ts +0 -25
  900. package/src/dex/polygon-migrator/constants.ts +0 -1
  901. package/src/dex/polygon-migrator/polygon-migrator-e2e.test.ts +0 -98
  902. package/src/dex/polygon-migrator/polygon-migrator-gas-estimation.test.ts +0 -41
  903. package/src/dex/polygon-migrator/polygon-migrator-integration.test.ts +0 -139
  904. package/src/dex/polygon-migrator/polygon-migrator.ts +0 -194
  905. package/src/dex/polygon-migrator/types.ts +0 -14
  906. package/src/dex/quick-perps/config.ts +0 -31
  907. package/src/dex/quick-perps/fast-price-feed.ts +0 -279
  908. package/src/dex/quick-perps/pool.ts +0 -407
  909. package/src/dex/quick-perps/quick-perps-e2e.test.ts +0 -66
  910. package/src/dex/quick-perps/quick-perps-events.test.ts +0 -100
  911. package/src/dex/quick-perps/quick-perps-integration.test.ts +0 -153
  912. package/src/dex/quick-perps/quick-perps.ts +0 -337
  913. package/src/dex/quick-perps/types.ts +0 -97
  914. package/src/dex/quick-perps/usdq.ts +0 -83
  915. package/src/dex/quick-perps/vault-price-feed.ts +0 -322
  916. package/src/dex/quick-perps/vault-utils.ts +0 -53
  917. package/src/dex/quick-perps/vault.ts +0 -290
  918. package/src/dex/quickswap/config.ts +0 -16
  919. package/src/dex/quickswap/quickswap-e2e.test.ts +0 -384
  920. package/src/dex/quickswap/quickswap-v3.ts +0 -74
  921. package/src/dex/quickswap/thena-fusion.ts +0 -19
  922. package/src/dex/quickswap/types.ts +0 -5
  923. package/src/dex/simple-exchange.ts +0 -146
  924. package/src/dex/sky-converter/config.ts +0 -31
  925. package/src/dex/sky-converter/sky-converter-e2e.test.ts +0 -113
  926. package/src/dex/sky-converter/sky-converter-gas-estimation.test.ts +0 -78
  927. package/src/dex/sky-converter/sky-converter-integration.test.ts +0 -135
  928. package/src/dex/sky-converter/sky-converter.ts +0 -221
  929. package/src/dex/sky-converter/types.ts +0 -14
  930. package/src/dex/smoothy/smoothy-e2e.test.ts +0 -81
  931. package/src/dex/smoothy/smoothy.ts +0 -110
  932. package/src/dex/smoothy/types.ts +0 -18
  933. package/src/dex/solidly/config.ts +0 -218
  934. package/src/dex/solidly/forks-override/aerodrome.ts +0 -53
  935. package/src/dex/solidly/forks-override/chronos.ts +0 -231
  936. package/src/dex/solidly/forks-override/equalizer.ts +0 -58
  937. package/src/dex/solidly/forks-override/pharaohV1.ts +0 -10
  938. package/src/dex/solidly/forks-override/ramses.ts +0 -253
  939. package/src/dex/solidly/forks-override/spiritSwapV2.ts +0 -61
  940. package/src/dex/solidly/forks-override/thena.ts +0 -58
  941. package/src/dex/solidly/forks-override/usdfi.ts +0 -10
  942. package/src/dex/solidly/forks-override/velocimeter.ts +0 -58
  943. package/src/dex/solidly/forks-override/velodrome.ts +0 -58
  944. package/src/dex/solidly/forks-override/velodromeV2.ts +0 -63
  945. package/src/dex/solidly/solidly-e2e.test.ts +0 -1421
  946. package/src/dex/solidly/solidly-ethereum.ts +0 -61
  947. package/src/dex/solidly/solidly-gas-estimation.test.ts +0 -29
  948. package/src/dex/solidly/solidly-integration.test.ts +0 -1753
  949. package/src/dex/solidly/solidly-stable-pool.ts +0 -91
  950. package/src/dex/solidly/solidly.ts +0 -708
  951. package/src/dex/solidly/types.ts +0 -38
  952. package/src/dex/solidly-v3/config.ts +0 -118
  953. package/src/dex/solidly-v3/constants.ts +0 -42
  954. package/src/dex/solidly-v3/contract-math/BitMath.ts +0 -90
  955. package/src/dex/solidly-v3/contract-math/FixedPoint128.ts +0 -3
  956. package/src/dex/solidly-v3/contract-math/FixedPoint96.ts +0 -4
  957. package/src/dex/solidly-v3/contract-math/FullMath.ts +0 -30
  958. package/src/dex/solidly-v3/contract-math/LiquidityMath.ts +0 -17
  959. package/src/dex/solidly-v3/contract-math/SqrtPriceMath.ts +0 -226
  960. package/src/dex/solidly-v3/contract-math/SwapMath.ts +0 -139
  961. package/src/dex/solidly-v3/contract-math/Tick.ts +0 -63
  962. package/src/dex/solidly-v3/contract-math/TickBitMap.ts +0 -123
  963. package/src/dex/solidly-v3/contract-math/TickMath.ts +0 -211
  964. package/src/dex/solidly-v3/contract-math/UnsafeMath.ts +0 -5
  965. package/src/dex/solidly-v3/contract-math/uniswap-v3-math.ts +0 -562
  966. package/src/dex/solidly-v3/contract-math/utils.ts +0 -50
  967. package/src/dex/solidly-v3/solidly-v3-e2e.test.ts +0 -270
  968. package/src/dex/solidly-v3/solidly-v3-events.test.ts +0 -146
  969. package/src/dex/solidly-v3/solidly-v3-factory.ts +0 -80
  970. package/src/dex/solidly-v3/solidly-v3-gas-estimation.test.ts +0 -29
  971. package/src/dex/solidly-v3/solidly-v3-integration.test.ts +0 -358
  972. package/src/dex/solidly-v3/solidly-v3-pool.ts +0 -502
  973. package/src/dex/solidly-v3/solidly-v3.ts +0 -976
  974. package/src/dex/solidly-v3/types.ts +0 -157
  975. package/src/dex/solidly-v3/utils.ts +0 -71
  976. package/src/dex/spark/config.ts +0 -69
  977. package/src/dex/spark/constants.ts +0 -2
  978. package/src/dex/spark/scripts/validate-state.ts +0 -145
  979. package/src/dex/spark/spark-e2e.test.ts +0 -225
  980. package/src/dex/spark/spark-events.test.ts +0 -214
  981. package/src/dex/spark/spark-gas-estimation.test.ts +0 -29
  982. package/src/dex/spark/spark-integration.test.ts +0 -690
  983. package/src/dex/spark/spark-psm.ts +0 -361
  984. package/src/dex/spark/spark-sdai-pool.ts +0 -116
  985. package/src/dex/spark/spark.ts +0 -323
  986. package/src/dex/spark/types.ts +0 -54
  987. package/src/dex/spark/utils.ts +0 -151
  988. package/src/dex/stable-pool/stable-pool.ts +0 -129
  989. package/src/dex/stable-pool/stablepool-e2e.test.ts +0 -73
  990. package/src/dex/stable-pool/types.ts +0 -20
  991. package/src/dex/stader/config.ts +0 -13
  992. package/src/dex/stader/stader-e2e.test.ts +0 -74
  993. package/src/dex/stader/stader-events.test.ts +0 -64
  994. package/src/dex/stader/stader-gas-estimation.test.ts +0 -29
  995. package/src/dex/stader/stader-integration.test.ts +0 -240
  996. package/src/dex/stader/stader-pool.ts +0 -77
  997. package/src/dex/stader/stader.ts +0 -240
  998. package/src/dex/stader/types.ts +0 -16
  999. package/src/dex/stader/utils.ts +0 -34
  1000. package/src/dex/stkgho/config.ts +0 -14
  1001. package/src/dex/stkgho/stkgho-e2e.test.ts +0 -77
  1002. package/src/dex/stkgho/stkgho-events.test.ts +0 -79
  1003. package/src/dex/stkgho/stkgho-gas-estimation.test.ts +0 -29
  1004. package/src/dex/stkgho/stkgho-integration.test.ts +0 -226
  1005. package/src/dex/stkgho/stkgho-pool.ts +0 -111
  1006. package/src/dex/stkgho/stkgho.ts +0 -223
  1007. package/src/dex/stkgho/types.ts +0 -14
  1008. package/src/dex/swaap-v2/config.ts +0 -42
  1009. package/src/dex/swaap-v2/constants.ts +0 -52
  1010. package/src/dex/swaap-v2/rate-fetcher.ts +0 -267
  1011. package/src/dex/swaap-v2/stable-coins.ts +0 -25
  1012. package/src/dex/swaap-v2/swaap-v2-e2e.test.ts +0 -584
  1013. package/src/dex/swaap-v2/swaap-v2-estimation.test.ts +0 -29
  1014. package/src/dex/swaap-v2/swaap-v2-integration.test.ts +0 -219
  1015. package/src/dex/swaap-v2/swaap-v2.ts +0 -1067
  1016. package/src/dex/swaap-v2/types.ts +0 -105
  1017. package/src/dex/swaap-v2/utils.ts +0 -46
  1018. package/src/dex/swaap-v2/validators.ts +0 -131
  1019. package/src/dex/swell/config.ts +0 -29
  1020. package/src/dex/swell/rsweth-pool.ts +0 -58
  1021. package/src/dex/swell/swell-e2e.test.ts +0 -56
  1022. package/src/dex/swell/swell-estimation.test.ts +0 -29
  1023. package/src/dex/swell/swell.ts +0 -312
  1024. package/src/dex/swell/sweth-pool.ts +0 -58
  1025. package/src/dex/swell/type.ts +0 -7
  1026. package/src/dex/swell/utils.ts +0 -53
  1027. package/src/dex/synthetix/config.ts +0 -55
  1028. package/src/dex/synthetix/constants.ts +0 -36
  1029. package/src/dex/synthetix/contract-math/DexPriceAggregatorUniswapV3.ts +0 -276
  1030. package/src/dex/synthetix/contract-math/ExchangeRates.ts +0 -117
  1031. package/src/dex/synthetix/contract-math/ExchangeRatesWithDexPricing.ts +0 -278
  1032. package/src/dex/synthetix/contract-math/FullMath.ts +0 -17
  1033. package/src/dex/synthetix/contract-math/OracleLibrary.ts +0 -109
  1034. package/src/dex/synthetix/contract-math/SafeDecimalMath.ts +0 -49
  1035. package/src/dex/synthetix/contract-math/TickMath.ts +0 -72
  1036. package/src/dex/synthetix/contract-math/synthetix-math.ts +0 -266
  1037. package/src/dex/synthetix/synthetix-e2e.test.ts +0 -174
  1038. package/src/dex/synthetix/synthetix-integration.test.ts +0 -293
  1039. package/src/dex/synthetix/synthetix-state.ts +0 -970
  1040. package/src/dex/synthetix/synthetix.ts +0 -420
  1041. package/src/dex/synthetix/types.ts +0 -121
  1042. package/src/dex/synthetix/utils.ts +0 -125
  1043. package/src/dex/trader-joe-v2.1/base.ts +0 -167
  1044. package/src/dex/trader-joe-v2.1/config.ts +0 -14
  1045. package/src/dex/trader-joe-v2.1/trader-joe-v2.1-e2e.test.ts +0 -101
  1046. package/src/dex/trader-joe-v2.1/trader-joe-v2.1-gas-estimation.test.ts +0 -29
  1047. package/src/dex/trader-joe-v2.1/trader-joe-v2.1.ts +0 -23
  1048. package/src/dex/trader-joe-v2.1/trader-joe-v2.2.ts +0 -23
  1049. package/src/dex/trader-joe-v2.1/types.ts +0 -38
  1050. package/src/dex/uniswap-v2/biswap.ts +0 -61
  1051. package/src/dex/uniswap-v2/config.ts +0 -626
  1052. package/src/dex/uniswap-v2/constants.ts +0 -58
  1053. package/src/dex/uniswap-v2/dfyn.ts +0 -128
  1054. package/src/dex/uniswap-v2/excalibur.ts +0 -63
  1055. package/src/dex/uniswap-v2/mdex.ts +0 -66
  1056. package/src/dex/uniswap-v2/nomiswap-v2.ts +0 -73
  1057. package/src/dex/uniswap-v2/optimizer.ts +0 -66
  1058. package/src/dex/uniswap-v2/types.ts +0 -164
  1059. package/src/dex/uniswap-v2/uniswap-v2-constant-product-pool.ts +0 -40
  1060. package/src/dex/uniswap-v2/uniswap-v2-e2e-arbitrum.test.ts +0 -438
  1061. package/src/dex/uniswap-v2/uniswap-v2-e2e-avalanche.test.ts +0 -1361
  1062. package/src/dex/uniswap-v2/uniswap-v2-e2e-base.test.ts +0 -42
  1063. package/src/dex/uniswap-v2/uniswap-v2-e2e-bsc.test.ts +0 -1295
  1064. package/src/dex/uniswap-v2/uniswap-v2-e2e-fantom.test.ts +0 -1428
  1065. package/src/dex/uniswap-v2/uniswap-v2-e2e-gnosis.test.ts +0 -283
  1066. package/src/dex/uniswap-v2/uniswap-v2-e2e-mainnet.test.ts +0 -1834
  1067. package/src/dex/uniswap-v2/uniswap-v2-e2e-optimism.test.ts +0 -282
  1068. package/src/dex/uniswap-v2/uniswap-v2-e2e-polygon.test.ts +0 -871
  1069. package/src/dex/uniswap-v2/uniswap-v2-factory.ts +0 -70
  1070. package/src/dex/uniswap-v2/uniswap-v2-gas-estimation.test.ts +0 -98
  1071. package/src/dex/uniswap-v2/uniswap-v2-integration.test.ts +0 -63
  1072. package/src/dex/uniswap-v2/uniswap-v2.ts +0 -1120
  1073. package/src/dex/uniswap-v3/config.ts +0 -453
  1074. package/src/dex/uniswap-v3/constants.ts +0 -56
  1075. package/src/dex/uniswap-v3/contract-math/BitMath.ts +0 -90
  1076. package/src/dex/uniswap-v3/contract-math/FixedPoint128.ts +0 -3
  1077. package/src/dex/uniswap-v3/contract-math/FixedPoint96.ts +0 -4
  1078. package/src/dex/uniswap-v3/contract-math/FullMath.ts +0 -30
  1079. package/src/dex/uniswap-v3/contract-math/LiquidityMath.ts +0 -17
  1080. package/src/dex/uniswap-v3/contract-math/Oracle.ts +0 -226
  1081. package/src/dex/uniswap-v3/contract-math/SqrtPriceMath.ts +0 -226
  1082. package/src/dex/uniswap-v3/contract-math/SwapMath.ts +0 -139
  1083. package/src/dex/uniswap-v3/contract-math/Tick.ts +0 -82
  1084. package/src/dex/uniswap-v3/contract-math/TickBitMap.ts +0 -143
  1085. package/src/dex/uniswap-v3/contract-math/TickMath.ts +0 -211
  1086. package/src/dex/uniswap-v3/contract-math/UnsafeMath.ts +0 -5
  1087. package/src/dex/uniswap-v3/contract-math/uniswap-v3-math.ts +0 -668
  1088. package/src/dex/uniswap-v3/contract-math/utils.ts +0 -55
  1089. package/src/dex/uniswap-v3/forks/ramses-v2/ramses-v2-pool.ts +0 -157
  1090. package/src/dex/uniswap-v3/forks/ramses-v2/utils.ts +0 -72
  1091. package/src/dex/uniswap-v3/forks/velodrome-slipstream/utils.ts +0 -65
  1092. package/src/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-factory.ts +0 -16
  1093. package/src/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream-pool.ts +0 -198
  1094. package/src/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.ts +0 -243
  1095. package/src/dex/uniswap-v3/scripts/check-pool-bitmap-ranges.ts +0 -238
  1096. package/src/dex/uniswap-v3/scripts/measure-calc-time.ts +0 -172
  1097. package/src/dex/uniswap-v3/types.ts +0 -213
  1098. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +0 -1391
  1099. package/src/dex/uniswap-v3/uniswap-v3-events.test.ts +0 -185
  1100. package/src/dex/uniswap-v3/uniswap-v3-factory.ts +0 -80
  1101. package/src/dex/uniswap-v3/uniswap-v3-gas-estimation.test.ts +0 -98
  1102. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +0 -2652
  1103. package/src/dex/uniswap-v3/uniswap-v3-pool.ts +0 -564
  1104. package/src/dex/uniswap-v3/uniswap-v3.ts +0 -1528
  1105. package/src/dex/uniswap-v3/utils.ts +0 -83
  1106. package/src/dex/uniswap-v3.ts +0 -242
  1107. package/src/dex/usual/m-wrapped-m.ts +0 -76
  1108. package/src/dex/usual/types.ts +0 -10
  1109. package/src/dex/usual/usual-bond.ts +0 -69
  1110. package/src/dex/usual/usual-e2e.test.ts +0 -169
  1111. package/src/dex/usual/usual-gas-estimation.test.ts +0 -54
  1112. package/src/dex/usual/usual-integration.test.ts +0 -515
  1113. package/src/dex/usual/usual-m-usd0.ts +0 -76
  1114. package/src/dex/usual/usual-m-wrapped-m.ts +0 -71
  1115. package/src/dex/usual/usual.ts +0 -156
  1116. package/src/dex/usual/wrapped-m-m.ts +0 -76
  1117. package/src/dex/usual-pp/config.ts +0 -18
  1118. package/src/dex/usual-pp/pool.ts +0 -77
  1119. package/src/dex/usual-pp/types.ts +0 -12
  1120. package/src/dex/usual-pp/usual-events.test.ts +0 -70
  1121. package/src/dex/usual-pp/usual-integration.test.ts +0 -143
  1122. package/src/dex/usual-pp/usual-pp-gas-estimation.test.ts +0 -29
  1123. package/src/dex/usual-pp/usual-pp.e2e.test.ts +0 -76
  1124. package/src/dex/usual-pp/usual-pp.ts +0 -207
  1125. package/src/dex/usual-pp/utils.ts +0 -27
  1126. package/src/dex/weth/config.ts +0 -87
  1127. package/src/dex/weth/types.ts +0 -34
  1128. package/src/dex/weth/weth-e2e-v6.test.ts +0 -117
  1129. package/src/dex/weth/weth-e2e.test.ts +0 -1032
  1130. package/src/dex/weth/weth-gas-estimation.test.ts +0 -42
  1131. package/src/dex/weth/weth-integration.test.ts +0 -80
  1132. package/src/dex/weth/weth.ts +0 -232
  1133. package/src/dex/wombat/config.ts +0 -77
  1134. package/src/dex/wombat/types.ts +0 -55
  1135. package/src/dex/wombat/utils.ts +0 -82
  1136. package/src/dex/wombat/wombat-bmw.ts +0 -186
  1137. package/src/dex/wombat/wombat-e2e.test.ts +0 -272
  1138. package/src/dex/wombat/wombat-events.test.ts +0 -147
  1139. package/src/dex/wombat/wombat-gas-estimation.test.ts +0 -29
  1140. package/src/dex/wombat/wombat-integration.test.ts +0 -217
  1141. package/src/dex/wombat/wombat-pool.ts +0 -688
  1142. package/src/dex/wombat/wombat-quoter.ts +0 -269
  1143. package/src/dex/wombat/wombat.ts +0 -467
  1144. package/src/dex/woo-fi-v2/config.ts +0 -100
  1145. package/src/dex/woo-fi-v2/constants.ts +0 -22
  1146. package/src/dex/woo-fi-v2/decoders.ts +0 -45
  1147. package/src/dex/woo-fi-v2/types.ts +0 -64
  1148. package/src/dex/woo-fi-v2/utils.ts +0 -19
  1149. package/src/dex/woo-fi-v2/woo-fi-v2-e2e.test.ts +0 -282
  1150. package/src/dex/woo-fi-v2/woo-fi-v2-integration.test.ts +0 -495
  1151. package/src/dex/woo-fi-v2/woo-fi-v2-math.ts +0 -228
  1152. package/src/dex/woo-fi-v2/woo-fi-v2-pool.ts +0 -143
  1153. package/src/dex/woo-fi-v2/woo-fi-v2.ts +0 -528
  1154. package/src/dex/wsteth/config.ts +0 -16
  1155. package/src/dex/wsteth/types.ts +0 -13
  1156. package/src/dex/wsteth/wsteth-e2e.test.ts +0 -96
  1157. package/src/dex/wsteth/wsteth-gas-estimation.test.ts +0 -41
  1158. package/src/dex/wsteth/wsteth-integration.test.ts +0 -200
  1159. package/src/dex/wsteth/wsteth.ts +0 -304
  1160. package/src/dex-helper/dummy-dex-helper.ts +0 -379
  1161. package/src/dex-helper/dummy-limit-order-provider.ts +0 -74
  1162. package/src/dex-helper/iblock-manager.ts +0 -60
  1163. package/src/dex-helper/icache.ts +0 -85
  1164. package/src/dex-helper/idex-helper.ts +0 -27
  1165. package/src/dex-helper/ilimit-order-provider.ts +0 -27
  1166. package/src/dex-helper/index.ts +0 -16
  1167. package/src/dex-helper/irequest-wrapper.ts +0 -67
  1168. package/src/executor/Executor01BytecodeBuilder.ts +0 -479
  1169. package/src/executor/Executor02BytecodeBuilder.ts +0 -1419
  1170. package/src/executor/Executor03BytecodeBuilder.ts +0 -473
  1171. package/src/executor/ExecutorBytecodeBuilder.ts +0 -453
  1172. package/src/executor/ExecutorDetector.ts +0 -131
  1173. package/src/executor/WETHBytecodeBuilder.ts +0 -58
  1174. package/src/executor/__snapshots__/executor01-bytecode-builder-snapshot.test.ts.snap +0 -35
  1175. package/src/executor/__snapshots__/executor02-bytecode-builder-snapshot.test.ts.snap +0 -23
  1176. package/src/executor/constants.ts +0 -66
  1177. package/src/executor/executor01-bytecode-builder-e2e.test.ts +0 -1503
  1178. package/src/executor/executor01-bytecode-builder-snapshot.test.ts +0 -271
  1179. package/src/executor/executor02-bytecode-builder-e2e.test.ts +0 -1578
  1180. package/src/executor/executor02-bytecode-builder-snapshot.test.ts +0 -188
  1181. package/src/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -16
  1182. package/src/executor/fixtures/executor01/exchange-params/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -16
  1183. package/src/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -16
  1184. package/src/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -16
  1185. package/src/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -16
  1186. package/src/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -16
  1187. package/src/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -16
  1188. package/src/executor/fixtures/executor01/exchange-params/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -16
  1189. package/src/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -9
  1190. package/src/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -9
  1191. package/src/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -9
  1192. package/src/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-eth-steth.json +0 -9
  1193. package/src/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-steth-eth.json +0 -9
  1194. package/src/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -9
  1195. package/src/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-eth-usdc.json +0 -9
  1196. package/src/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-eth.json +0 -9
  1197. package/src/executor/fixtures/executor01/exchange-params/price-route-simpleSwap-univ3-usdc-usdt.json +0 -9
  1198. package/src/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -12
  1199. package/src/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -7
  1200. package/src/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -7
  1201. package/src/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -7
  1202. package/src/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -7
  1203. package/src/executor/fixtures/executor01/maybe-weth-calldata/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -12
  1204. package/src/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-eth-usdc.json +0 -7
  1205. package/src/executor/fixtures/executor01/maybe-weth-calldata/price-route-simpleSwap-univ3-usdc-eth.json +0 -7
  1206. package/src/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-curvev1-eth-usdc-gusd.json +0 -78
  1207. package/src/executor/fixtures/executor01/routes/price-route-multiswap-balancerv1-sushiv3-wbtc-eth-sushi.json +0 -81
  1208. package/src/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-eth-usdc-gusd.json +0 -78
  1209. package/src/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-curvev1-gusd-usdc-eth.json +0 -78
  1210. package/src/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-dai-usdc-eth.json +0 -81
  1211. package/src/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-eth-usdc-dai.json +0 -81
  1212. package/src/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdc-eth-wbtc.json +0 -81
  1213. package/src/executor/fixtures/executor01/routes/price-route-multiswap-sushiv3-usdt-usdc-dai.json +0 -81
  1214. package/src/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-eth-usdc.json +0 -64
  1215. package/src/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-eth.json +0 -85
  1216. package/src/executor/fixtures/executor01/routes/price-route-simpleSwap-balancerv1-usdc-wbtc.json +0 -64
  1217. package/src/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-eth-steth.json +0 -52
  1218. package/src/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-steth-eth.json +0 -52
  1219. package/src/executor/fixtures/executor01/routes/price-route-simpleSwap-curvev1-usdc-usdt.json +0 -52
  1220. package/src/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-eth-usdc.json +0 -55
  1221. package/src/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-eth.json +0 -55
  1222. package/src/executor/fixtures/executor01/routes/price-route-simpleSwap-univ3-usdc-usdt.json +0 -55
  1223. package/src/executor/fixtures/executor02/exchange-params/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -23
  1224. package/src/executor/fixtures/executor02/exchange-params/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -37
  1225. package/src/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -23
  1226. package/src/executor/fixtures/executor02/exchange-params/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -23
  1227. package/src/executor/fixtures/executor02/exchange-params/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -51
  1228. package/src/executor/fixtures/executor02/exchange-params/price-route-multiswap-univ3-usdt-dai-eth.json +0 -58
  1229. package/src/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -23
  1230. package/src/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -23
  1231. package/src/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -9
  1232. package/src/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -16
  1233. package/src/executor/fixtures/executor02/exchange-params/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -23
  1234. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -12
  1235. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -7
  1236. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -12
  1237. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -12
  1238. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -7
  1239. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-multiswap-univ3-usdt-dai-eth.json +0 -7
  1240. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -7
  1241. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -7
  1242. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -7
  1243. package/src/executor/fixtures/executor02/maybe-weth-calldata/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -7
  1244. package/src/executor/fixtures/executor02/routes/price-route-multiSwap-balancerv1-sushiv3-univ3-bal-eth-sushi.json +0 -130
  1245. package/src/executor/fixtures/executor02/routes/price-route-multiSwap-maverickv1-sushiv3-univ3-eth-usdc-mav.json +0 -136
  1246. package/src/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-sushi-eth-wbtc.json +0 -100
  1247. package/src/executor/fixtures/executor02/routes/price-route-multiSwap-univ3-sushiv3-wbtc-eth-sushi.json +0 -100
  1248. package/src/executor/fixtures/executor02/routes/price-route-multiswap-curvev1-univ3-dai-usdc-eth.json +0 -166
  1249. package/src/executor/fixtures/executor02/routes/price-route-multiswap-univ3-usdt-dai-eth.json +0 -190
  1250. package/src/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-eth-usdc.json +0 -114
  1251. package/src/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-balancerv1-usdc-eth.json +0 -114
  1252. package/src/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-eth-sushi.json +0 -55
  1253. package/src/executor/fixtures/executor02/routes/price-route-simpleSwap-sushiv3-univ3-sushi-eth.json +0 -73
  1254. package/src/executor/fixtures/executor02/routes/price-route-simpleSwap-univ3-curvev1-usdt-dai.json +0 -82
  1255. package/src/executor/types.ts +0 -45
  1256. package/src/executor/utils.ts +0 -62
  1257. package/src/generic-swap-transaction-builder.ts +0 -753
  1258. package/src/implementations/local-paraswap-sdk.ts +0 -342
  1259. package/src/index.ts +0 -38
  1260. package/src/lens.ts +0 -8
  1261. package/src/lib/api3-feed.ts +0 -175
  1262. package/src/lib/benqi/staked-avax.ts +0 -123
  1263. package/src/lib/chainlink.ts +0 -113
  1264. package/src/lib/curve/encoder.ts +0 -19
  1265. package/src/lib/decoders.ts +0 -199
  1266. package/src/lib/erc1271-utils.ts +0 -24
  1267. package/src/lib/fetcher/fetcher.ts +0 -183
  1268. package/src/lib/fetcher/wsFetcher.ts +0 -158
  1269. package/src/lib/generics-events-subscribers/erc20-event-subscriber-factory.ts +0 -18
  1270. package/src/lib/generics-events-subscribers/erc20-event-subscriber.test.ts +0 -126
  1271. package/src/lib/generics-events-subscribers/erc20-event-subscriber.ts +0 -261
  1272. package/src/lib/generics-events-subscribers/types.ts +0 -41
  1273. package/src/lib/generics-events-subscribers/utils.ts +0 -37
  1274. package/src/lib/log-messages-suppressor.ts +0 -173
  1275. package/src/lib/log4js.ts +0 -88
  1276. package/src/lib/multi-wrapper.ts +0 -108
  1277. package/src/lib/promise-scheduler.ts +0 -55
  1278. package/src/lib/pub-sub.ts +0 -232
  1279. package/src/lib/stateful-rpc-poller/state-polling-manager.ts +0 -320
  1280. package/src/lib/stateful-rpc-poller/stateful-rpc-poller.ts +0 -604
  1281. package/src/lib/stateful-rpc-poller/types.ts +0 -66
  1282. package/src/lib/stateful-rpc-poller/utils.ts +0 -23
  1283. package/src/lib/task-scheduler.ts +0 -64
  1284. package/src/lib/token-transfer-fee.ts +0 -42
  1285. package/src/lib/tokens/balancer-fetcher.ts +0 -283
  1286. package/src/lib/tokens/types.ts +0 -102
  1287. package/src/lib/tokens/utils.ts +0 -179
  1288. package/src/lib/utils-interfaces.ts +0 -4
  1289. package/src/lib/validators.ts +0 -34
  1290. package/src/pools-helper.ts +0 -58
  1291. package/src/pricing-helper.ts +0 -328
  1292. package/src/rebase-tokens.json +0 -17
  1293. package/src/router/buy.ts +0 -101
  1294. package/src/router/directswap.ts +0 -101
  1295. package/src/router/index.ts +0 -48
  1296. package/src/router/irouter.ts +0 -20
  1297. package/src/router/megaswap.ts +0 -88
  1298. package/src/router/multiswap.ts +0 -96
  1299. package/src/router/payload-encoder.ts +0 -293
  1300. package/src/router/simpleswap.ts +0 -369
  1301. package/src/router/simpleswapnft.ts +0 -138
  1302. package/src/stateful-event-subscriber.ts +0 -512
  1303. package/src/transaction-builder.ts +0 -129
  1304. package/src/types.ts +0 -358
  1305. package/src/utils.ts +0 -410
  1306. package/tests/constants-e2e.ts +0 -2221
  1307. package/tests/debug-price-route.test.ts +0 -55
  1308. package/tests/generate-new-limit-order.ts +0 -107
  1309. package/tests/payload-encoder.test.ts +0 -49
  1310. package/tests/tenderly-simulation.test.ts +0 -151
  1311. package/tests/tenderly-simulation.ts +0 -698
  1312. package/tests/token-storage-slots.json +0 -698
  1313. package/tests/transaction-builder.test.ts +0 -234
  1314. package/tests/utils-e2e.ts +0 -651
  1315. package/tests/utils-events.ts +0 -186
  1316. package/tests/utils.ts +0 -127
  1317. package/tests/v6/utils-e2e-v6.ts +0 -103
  1318. package/tsconfig.json +0 -23
@@ -1,1169 +0,0 @@
1
- import { BytesLike } from 'ethers/lib/utils';
2
- import { Interface } from '@ethersproject/abi';
3
- import {
4
- Token,
5
- Address,
6
- ExchangePrices,
7
- PoolPrices,
8
- AdapterExchangeParam,
9
- PoolLiquidity,
10
- DexExchangeParam,
11
- Logger,
12
- } from '../../types';
13
- import { SwapSide, Network } from '../../constants';
14
- import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
15
- import { Context, IDex } from '../../dex/idex';
16
- import { IDexHelper } from '../../dex-helper/idex-helper';
17
- import {
18
- CollateralReserves,
19
- DebtReserves,
20
- FluidDexData,
21
- FluidDexPool,
22
- Pool,
23
- DexLimits,
24
- TokenLimit,
25
- } from './types';
26
- import { SimpleExchange } from '../simple-exchange';
27
- import FluidDexPoolABI from '../../abi/fluid-dex/fluid-dex.abi.json';
28
- import { FluidDexConfig, FLUID_DEX_GAS_COST } from './config';
29
- import { FluidDexFactory } from './fluid-dex-factory';
30
- import { getDexKeysWithNetwork, getBigIntPow } from '../../utils';
31
- import { extractReturnAmountPosition } from '../../executor/utils';
32
- import { MultiResult } from '../../lib/multi-wrapper';
33
- import { generalDecoder } from '../../lib/decoders';
34
- import { BigNumber } from 'ethers';
35
- import { sqrt } from './utils';
36
- import { FluidDexLiquidityProxy } from './fluid-dex-liquidity-proxy';
37
- import { FluidDexEventPool } from './fluid-dex-pool';
38
- import { MIN_SWAP_LIQUIDITY } from './constants';
39
-
40
- export class FluidDex extends SimpleExchange implements IDex<FluidDexData> {
41
- readonly hasConstantPriceLargeAmounts = false;
42
- readonly needWrapNative = false;
43
- readonly isFeeOnTransferSupported = false;
44
- public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
45
- getDexKeysWithNetwork(FluidDexConfig);
46
-
47
- logger: Logger;
48
-
49
- pools: FluidDexPool[] = [];
50
-
51
- eventPools: FluidDexEventPool[] = [];
52
-
53
- readonly factory: FluidDexFactory;
54
-
55
- readonly liquidityProxy: FluidDexLiquidityProxy;
56
-
57
- readonly fluidDexPoolIface: Interface;
58
-
59
- constructor(
60
- readonly network: Network,
61
- readonly dexKey: string,
62
- readonly dexHelper: IDexHelper,
63
- ) {
64
- super(dexHelper, dexKey);
65
- this.logger = dexHelper.getLogger(dexKey);
66
- this.factory = new FluidDexFactory(
67
- dexKey,
68
- FluidDexConfig[dexKey][network].commonAddresses,
69
- network,
70
- dexHelper,
71
- this.logger,
72
- this.onPoolCreatedUpdatePools.bind(this),
73
- );
74
-
75
- this.liquidityProxy = new FluidDexLiquidityProxy(
76
- dexKey,
77
- this.factory.commonAddresses,
78
- this.network,
79
- this.dexHelper,
80
- this.logger,
81
- );
82
-
83
- this.fluidDexPoolIface = new Interface(FluidDexPoolABI);
84
- }
85
-
86
- private async fetchFluidDexPools(
87
- blockNumber: number,
88
- ): Promise<FluidDexPool[]> {
89
- const poolsFromFactory = await this.factory.getStateOrGenerate(
90
- blockNumber,
91
- false,
92
- );
93
- return this.generateFluidDexPoolsFromPoolsFactory(poolsFromFactory);
94
- }
95
-
96
- private generateFluidDexPoolsFromPoolsFactory(
97
- pools: readonly Pool[],
98
- ): FluidDexPool[] {
99
- return pools.map(pool => ({
100
- id: `FluidDex_${pool.address.toLowerCase()}`,
101
- address: pool.address.toLowerCase(),
102
- token0: pool.token0.toLowerCase(),
103
- token1: pool.token1.toLowerCase(),
104
- }));
105
- }
106
-
107
- // Initialize pricing is called once in the start of
108
- // pricing service. It is intended to setup the integration
109
- // for pricing requests. It is optional for a DEX to
110
- // implement this function
111
- async initializePricing(blockNumber: number) {
112
- await this.factory.initialize(blockNumber);
113
- this.pools = await this.fetchFluidDexPools(blockNumber);
114
- this.eventPools = await Promise.all(
115
- this.pools.map(async pool => {
116
- const eventPool = new FluidDexEventPool(
117
- this.dexKey,
118
- pool.address,
119
- this.network,
120
- this.dexHelper,
121
- this.logger,
122
- );
123
- await eventPool.initialize(blockNumber);
124
- return eventPool;
125
- }),
126
- );
127
-
128
- await this.liquidityProxy.initialize(blockNumber);
129
- }
130
-
131
- getAdapters(side: SwapSide) {
132
- return null;
133
- }
134
-
135
- protected onPoolCreatedUpdatePools(poolsFromFactory: readonly Pool[]) {
136
- this.pools = this.generateFluidDexPoolsFromPoolsFactory(poolsFromFactory);
137
- this.logger.info(`${this.dexKey}: pools list was updated ...`);
138
- }
139
-
140
- decodePools = (result: MultiResult<BytesLike> | BytesLike): Pool[] => {
141
- return generalDecoder(
142
- result,
143
- ['tuple(address pool, address token0, address token1)[]'],
144
- undefined,
145
- decoded => {
146
- return decoded.map((decodedPool: any) => ({
147
- address: decodedPool[0][0].toLowerCase(),
148
- token0: decodedPool[0][1].toLowerCase(),
149
- token1: decodedPool[0][2].toLowerCase(),
150
- }));
151
- },
152
- );
153
- };
154
-
155
- // Returns list of pool identifiers that can be used
156
- // for a given swap. poolIdentifiers must be unique
157
- // across DEXes. It is recommended to use
158
- // ${dexKey}_${poolAddress} as a poolIdentifier
159
- async getPoolIdentifiers(
160
- srcToken: Token,
161
- destToken: Token,
162
- side: SwapSide,
163
- blockNumber: number,
164
- ): Promise<string[]> {
165
- const pools = this.getPoolsByTokenPair(srcToken.address, destToken.address);
166
- return pools.map(pool => pool.id);
167
- }
168
-
169
- getPoolsByTokenPair(srcToken: Address, destToken: Address): FluidDexPool[] {
170
- const srcAddress = srcToken.toLowerCase();
171
- const destAddress = destToken.toLowerCase();
172
-
173
- // A pair must have 2 different tokens.
174
- if (srcAddress === destAddress) return [];
175
-
176
- const pools = this.pools.filter(
177
- pool =>
178
- (srcAddress === pool.token0 && destAddress === pool.token1) ||
179
- (srcAddress === pool.token1 && destAddress === pool.token0),
180
- );
181
-
182
- return pools;
183
- }
184
-
185
- // Returns pool prices for amounts.
186
- // If limitPools is defined only pools in limitPools
187
- // should be used. If limitPools is undefined then
188
- // any pools can be used.
189
- async getPricesVolume(
190
- srcToken: Token,
191
- destToken: Token,
192
- amounts: bigint[],
193
- side: SwapSide,
194
- blockNumber: number,
195
- limitPools?: string[],
196
- ): Promise<null | ExchangePrices<FluidDexData>> {
197
- try {
198
- if (srcToken.address.toLowerCase() === destToken.address.toLowerCase())
199
- return null;
200
-
201
- // Get the pools to use.
202
- let pools = this.getPoolsByTokenPair(srcToken.address, destToken.address);
203
-
204
- if (limitPools) {
205
- pools = pools.filter(pool => limitPools.includes(pool.id));
206
- }
207
-
208
- if (!pools.length) return null;
209
-
210
- const liquidityProxyState = await this.liquidityProxy.getStateOrGenerate(
211
- blockNumber,
212
- );
213
-
214
- const poolsPrices = await Promise.all(
215
- pools.map(async pool => {
216
- const currentPoolReserves = liquidityProxyState.poolsReserves.find(
217
- poolReserve =>
218
- poolReserve.pool.toLowerCase() === pool.address.toLowerCase(),
219
- );
220
-
221
- const eventPool = this.eventPools.find(
222
- eventPool =>
223
- eventPool.poolAddress.toLowerCase() ===
224
- pool.address.toLowerCase(),
225
- );
226
-
227
- if (!eventPool) {
228
- this.logger.warn(
229
- `${this.dexKey}-${this.network}: Event pool ${pool.address} was not found...`,
230
- );
231
- return null;
232
- }
233
-
234
- const state = await eventPool.getStateOrGenerate(blockNumber);
235
-
236
- if (!currentPoolReserves || state.isSwapAndArbitragePaused === true) {
237
- return null;
238
- }
239
-
240
- const prices = amounts.map(amount => {
241
- if (side === SwapSide.SELL) {
242
- return this.swapIn(
243
- srcToken.address.toLowerCase() === pool.token0.toLowerCase(),
244
- amount,
245
- currentPoolReserves.collateralReserves,
246
- currentPoolReserves.debtReserves,
247
- srcToken.decimals,
248
- destToken.decimals,
249
- BigInt(currentPoolReserves.fee),
250
- currentPoolReserves.dexLimits,
251
- BigInt(currentPoolReserves.centerPrice),
252
- Math.floor(Date.now() / 1000),
253
- );
254
- } else {
255
- return this.swapOut(
256
- srcToken.address.toLowerCase() === pool.token0.toLowerCase(),
257
- amount,
258
- currentPoolReserves.collateralReserves,
259
- currentPoolReserves.debtReserves,
260
- srcToken.decimals,
261
- destToken.decimals,
262
- BigInt(currentPoolReserves.fee),
263
- currentPoolReserves.dexLimits,
264
- BigInt(currentPoolReserves.centerPrice),
265
- Math.floor(Date.now() / 1000),
266
- );
267
- }
268
- });
269
-
270
- return {
271
- prices: prices,
272
- unit: getBigIntPow(destToken.decimals),
273
- data: {
274
- poolId: pool.id,
275
- },
276
- exchange: this.dexKey,
277
- poolIdentifier: pool.id,
278
- gasCost: FLUID_DEX_GAS_COST,
279
- poolAddresses: [pool.address],
280
- };
281
- }),
282
- );
283
-
284
- const notNullResults = poolsPrices.filter(
285
- res => res !== null,
286
- ) as ExchangePrices<FluidDexData>;
287
-
288
- return notNullResults;
289
- } catch (e) {
290
- this.logger.error(
291
- `Error_getPricesVolume ${srcToken.address || srcToken.symbol}, ${
292
- destToken.address || destToken.symbol
293
- }, ${side}:`,
294
- e,
295
- );
296
- return null;
297
- }
298
- }
299
-
300
- // Returns estimated gas cost of calldata for this DEX in multiSwap
301
- getCalldataGasCost(poolPrices: PoolPrices<FluidDexData>): number | number[] {
302
- return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
303
- }
304
-
305
- // Encode params required by the exchange adapter
306
- // V5: Used for multiSwap, buy & megaSwap
307
- // V6: Not used, can be left blank
308
- // Hint: abiCoder.encodeParameter() could be useful
309
- getAdapterParam(
310
- srcToken: string,
311
- destToken: string,
312
- srcAmount: string,
313
- destAmount: string,
314
- data: FluidDexData,
315
- side: SwapSide,
316
- ): AdapterExchangeParam {
317
- // Encode here the payload for adapter
318
- const payload = '';
319
-
320
- return {
321
- targetExchange: '0x',
322
- payload,
323
- networkFee: '0',
324
- };
325
- }
326
-
327
- // Returns list of top pools based on liquidity. Max
328
- // limit number pools should be returned.
329
- async getTopPoolsForToken(
330
- tokenAddress: Address,
331
- limit: number,
332
- ): Promise<PoolLiquidity[]> {
333
- //@TODO
334
- return [];
335
- }
336
-
337
- async getDexParam(
338
- srcToken: Address,
339
- destToken: Address,
340
- srcAmount: string,
341
- destAmount: string,
342
- recipient: Address,
343
- data: FluidDexData,
344
- side: SwapSide,
345
- context: Context,
346
- executorAddress: Address,
347
- ): Promise<DexExchangeParam> {
348
- let args: any;
349
- let returnAmountPos: number | undefined;
350
-
351
- const method = side === SwapSide.SELL ? 'swapIn' : 'swapOut';
352
-
353
- returnAmountPos = extractReturnAmountPosition(
354
- this.fluidDexPoolIface,
355
- method,
356
- side === SwapSide.SELL ? 'amountOut_' : 'amountIn_',
357
- );
358
-
359
- const pool = this.pools.find(pool => pool.id === data.poolId);
360
- if (!pool)
361
- throw new Error(
362
- `${this.dexKey}-${this.network}: Pool with id: ${data.poolId} was not found`,
363
- );
364
-
365
- if (side === SwapSide.SELL) {
366
- if (pool!.token0.toLowerCase() !== srcToken.toLowerCase()) {
367
- args = [false, BigInt(srcAmount), BigInt(destAmount), recipient];
368
- } else {
369
- args = [true, BigInt(srcAmount), BigInt(destAmount), recipient];
370
- }
371
- } else {
372
- if (pool!.token0.toLowerCase() !== srcToken.toLowerCase()) {
373
- args = [
374
- false,
375
- (BigInt(destAmount) * 1000001n) / 1000000n, // 0.0001% increase target out amount when calling Fluid Dex as it is not 100% exact. Guarantees meeting reaching exact out amount condition
376
- BigInt(srcAmount),
377
- recipient,
378
- ];
379
- } else {
380
- args = [
381
- true,
382
- (BigInt(destAmount) * 1000001n) / 1000000n, // 0.0001% increase target out amount when calling Fluid Dex as it is not 100% exact. Guarantees meeting reaching exact out amount condition
383
- BigInt(srcAmount),
384
- recipient,
385
- ];
386
- }
387
- }
388
- const swapData = this.fluidDexPoolIface.encodeFunctionData(method, args);
389
- return {
390
- needWrapNative: this.needWrapNative,
391
- dexFuncHasRecipient: true,
392
- exchangeData: swapData,
393
- targetExchange: pool!.address,
394
- returnAmountPos,
395
- sendEthButSupportsInsertFromAmount: true,
396
- };
397
- }
398
-
399
- /**
400
- * Calculates the output amount for a given input amount in a swap operation.
401
- * @param swap0To1 - Direction of the swap. True if swapping token0 for token1, false otherwise.
402
- * @param amountIn - The amount of input token to be swapped (as a BigInt).
403
- * @param colReserves - The reserves of the collateral pool.
404
- * @param debtReserves - The reserves of the debt pool.
405
- * @param inDecimals - The number of decimals for the input token.
406
- * @param outDecimals - The number of decimals for the output token.
407
- * @returns The calculated output amount (as a BigInt).
408
- */
409
- public swapIn(
410
- swap0To1: boolean,
411
- amountIn: bigint,
412
- colReserves: CollateralReserves,
413
- debtReserves: DebtReserves,
414
- inDecimals: number,
415
- outDecimals: number,
416
- fee: bigint,
417
- currentLimits: DexLimits,
418
- centerPrice: bigint,
419
- syncTime: number,
420
- ): bigint {
421
- if (amountIn === 0n) {
422
- return 0n; // Return 0 if input amount is 0
423
- }
424
- if (
425
- colReserves.token0RealReserves + debtReserves.token0RealReserves == 0n &&
426
- colReserves.token1RealReserves + debtReserves.token1RealReserves == 0n
427
- ) {
428
- return 0n;
429
- }
430
-
431
- const amountInAdjusted =
432
- (amountIn * BigInt(10 ** 12)) / BigInt(10 ** inDecimals);
433
-
434
- const amountOut = this.swapInAdjusted(
435
- swap0To1,
436
- amountInAdjusted,
437
- colReserves,
438
- debtReserves,
439
- fee,
440
- outDecimals,
441
- currentLimits,
442
- centerPrice,
443
- syncTime,
444
- );
445
- return (amountOut * BigInt(10 ** outDecimals)) / BigInt(10 ** 12);
446
- }
447
-
448
- /**
449
- * Calculates the output amount for a given input amount in a swap operation.
450
- * @param swap0To1 - Direction of the swap. True if swapping token0 for token1, false otherwise.
451
- * @param amountToSwap - The amount of input token to be swapped.
452
- * @param colReserves - The reserves of the collateral pool.
453
- * @param debtReserves - The reserves of the debt pool.
454
- * @returns The calculated output amount.
455
- */
456
- public swapInAdjusted(
457
- swap0To1: boolean,
458
- amountToSwap: bigint,
459
- colReserves: CollateralReserves,
460
- debtReserves: DebtReserves,
461
- fee: bigint,
462
- outDecimals: number,
463
- currentLimits: DexLimits,
464
- centerPrice: bigint,
465
- syncTime: number,
466
- ): bigint {
467
- const {
468
- token0RealReserves,
469
- token1RealReserves,
470
- token0ImaginaryReserves,
471
- token1ImaginaryReserves,
472
- } = colReserves;
473
- const {
474
- token0RealReserves: debtToken0RealReserves,
475
- token1RealReserves: debtToken1RealReserves,
476
- token0ImaginaryReserves: debtToken0ImaginaryReserves,
477
- token1ImaginaryReserves: debtToken1ImaginaryReserves,
478
- } = debtReserves;
479
-
480
- // Check if all reserves of collateral pool are greater than 0
481
- const colPoolEnabled =
482
- token0RealReserves > 0 &&
483
- token1RealReserves > 0 &&
484
- token0ImaginaryReserves > 0 &&
485
- token1ImaginaryReserves > 0;
486
-
487
- // Check if all reserves of debt pool are greater than 0
488
- const debtPoolEnabled =
489
- debtToken0RealReserves > 0 &&
490
- debtToken1RealReserves > 0 &&
491
- debtToken0ImaginaryReserves > 0 &&
492
- debtToken1ImaginaryReserves > 0;
493
-
494
- let colReserveIn, colReserveOut, debtReserveIn, debtReserveOut;
495
- let colIReserveIn, colIReserveOut, debtIReserveIn, debtIReserveOut;
496
- let borrowable, withdrawable;
497
-
498
- if (swap0To1) {
499
- colReserveIn = token0RealReserves;
500
- colReserveOut = token1RealReserves;
501
- colIReserveIn = token0ImaginaryReserves;
502
- colIReserveOut = token1ImaginaryReserves;
503
- debtReserveIn = debtToken0RealReserves;
504
- debtReserveOut = debtToken1RealReserves;
505
- debtIReserveIn = debtToken0ImaginaryReserves;
506
- debtIReserveOut = debtToken1ImaginaryReserves;
507
- borrowable = this.getExpandedLimit(
508
- syncTime,
509
- currentLimits.borrowableToken1,
510
- );
511
- withdrawable = this.getExpandedLimit(
512
- syncTime,
513
- currentLimits.withdrawableToken1,
514
- );
515
- } else {
516
- colReserveIn = token1RealReserves;
517
- colReserveOut = token0RealReserves;
518
- colIReserveIn = token1ImaginaryReserves;
519
- colIReserveOut = token0ImaginaryReserves;
520
- debtReserveIn = debtToken1RealReserves;
521
- debtReserveOut = debtToken0RealReserves;
522
- debtIReserveIn = debtToken1ImaginaryReserves;
523
- debtIReserveOut = debtToken0ImaginaryReserves;
524
- borrowable = this.getExpandedLimit(
525
- syncTime,
526
- currentLimits.borrowableToken0,
527
- );
528
- withdrawable = this.getExpandedLimit(
529
- syncTime,
530
- currentLimits.withdrawableToken0,
531
- );
532
- }
533
-
534
- // bring borrowable and withdrawable from token decimals to 1e12 decimals, same as amounts
535
- borrowable = (borrowable * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
536
- withdrawable =
537
- (withdrawable * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
538
-
539
- let a: bigint;
540
- if (colPoolEnabled && debtPoolEnabled) {
541
- a = this.swapRoutingIn(
542
- amountToSwap,
543
- colIReserveOut,
544
- colIReserveIn,
545
- debtIReserveOut,
546
- debtIReserveIn,
547
- );
548
- } else if (debtPoolEnabled) {
549
- a = -1n; // Route from debt pool
550
- } else if (colPoolEnabled) {
551
- a = amountToSwap + 1n; // Route from collateral pool
552
- } else {
553
- throw new Error('No pools are enabled');
554
- }
555
-
556
- let amountOutCollateral = 0n;
557
- let amountOutDebt = 0n;
558
- let amountInCollateral = 0n;
559
- let amountInDebt = 0n;
560
-
561
- if (a <= 0n) {
562
- // Entire trade routes through debt pool
563
- amountInDebt = amountToSwap;
564
-
565
- amountOutDebt = this.getAmountOut(
566
- this.applyFeeForSell(amountToSwap, fee),
567
- debtIReserveIn,
568
- debtIReserveOut,
569
- );
570
- } else if (a >= amountToSwap) {
571
- // Entire trade routes through collateral pool
572
- amountInCollateral = amountToSwap;
573
- amountOutCollateral = this.getAmountOut(
574
- this.applyFeeForSell(amountToSwap, fee),
575
- colIReserveIn,
576
- colIReserveOut,
577
- );
578
- } else {
579
- // Trade routes through both pools
580
- amountInCollateral = a;
581
- amountOutCollateral = this.getAmountOut(
582
- this.applyFeeForSell(a, fee),
583
- colIReserveIn,
584
- colIReserveOut,
585
- );
586
- amountInDebt = amountToSwap - a;
587
- amountOutDebt = this.getAmountOut(
588
- this.applyFeeForSell(amountInDebt, fee),
589
- debtIReserveIn,
590
- debtIReserveOut,
591
- );
592
- }
593
-
594
- if (amountOutDebt > debtReserveOut) {
595
- return 0n;
596
- }
597
- if (amountOutDebt > borrowable) {
598
- return 0n;
599
- }
600
-
601
- if (amountOutCollateral > colReserveOut) {
602
- return 0n;
603
- }
604
-
605
- if (amountOutCollateral > withdrawable) {
606
- return 0n;
607
- }
608
-
609
- if (amountInCollateral > 0) {
610
- let reservesRatioValid = swap0To1
611
- ? this.verifyToken1Reserves(
612
- colReserveIn + amountInCollateral,
613
- colReserveOut - amountOutCollateral,
614
- centerPrice,
615
- )
616
- : this.verifyToken0Reserves(
617
- colReserveOut - amountOutCollateral,
618
- colReserveIn + amountInCollateral,
619
- centerPrice,
620
- );
621
- if (!reservesRatioValid) {
622
- return 0n;
623
- }
624
- }
625
-
626
- if (amountInDebt > 0) {
627
- let reservesRatioValid = swap0To1
628
- ? this.verifyToken1Reserves(
629
- debtReserveIn + amountInDebt,
630
- debtReserveOut - amountOutDebt,
631
- centerPrice,
632
- )
633
- : this.verifyToken0Reserves(
634
- debtReserveOut - amountOutDebt,
635
- debtReserveIn + amountInDebt,
636
- centerPrice,
637
- );
638
- if (!reservesRatioValid) {
639
- return 0n;
640
- }
641
- }
642
-
643
- // For price calculations, we'll use a precision factor for bigint division
644
- const PRECISION = 1000000000000000000000000000n; // 1e27
645
-
646
- let oldPrice: bigint;
647
- let newPrice: bigint;
648
-
649
- if (amountInCollateral > amountInDebt) {
650
- // new pool price from col pool
651
- oldPrice = swap0To1
652
- ? (colIReserveOut * PRECISION) / colIReserveIn
653
- : (colIReserveIn * PRECISION) / colIReserveOut;
654
-
655
- newPrice = swap0To1
656
- ? ((colIReserveOut - amountOutCollateral) * PRECISION) /
657
- (colIReserveIn + amountInCollateral)
658
- : ((colIReserveIn + amountInCollateral) * PRECISION) /
659
- (colIReserveOut - amountOutCollateral);
660
- } else {
661
- // new pool price from debt pool
662
- oldPrice = swap0To1
663
- ? (debtIReserveOut * PRECISION) / debtIReserveIn
664
- : (debtIReserveIn * PRECISION) / debtIReserveOut;
665
-
666
- newPrice = swap0To1
667
- ? ((debtIReserveOut - amountOutDebt) * PRECISION) /
668
- (debtIReserveIn + amountInDebt)
669
- : ((debtIReserveIn + amountInDebt) * PRECISION) /
670
- (debtIReserveOut - amountOutDebt);
671
- }
672
- // Calculate price difference using bigint arithmetic
673
- const MAX_PRICE_DIFF = 5n; // 5%
674
- const priceDiff =
675
- oldPrice > newPrice ? oldPrice - newPrice : newPrice - oldPrice;
676
- const maxAllowedDiff = (oldPrice * MAX_PRICE_DIFF) / 100n;
677
-
678
- if (priceDiff > maxAllowedDiff) {
679
- return 0n;
680
- }
681
-
682
- const totalAmountOut = amountOutCollateral + amountOutDebt;
683
-
684
- return totalAmountOut;
685
- }
686
-
687
- /**
688
- * Checks if token0 reserves are sufficient compared to token1 reserves.
689
- * This helps prevent edge cases and ensures high precision in calculations.
690
- * @param {number} token0Reserves - The reserves of token0.
691
- * @param {number} token1Reserves - The reserves of token1.
692
- * @param {number} price - The current price used for calculation.
693
- * @returns {boolean} - Returns false if token0 reserves are too low, true otherwise.
694
- */
695
- protected verifyToken0Reserves(
696
- token0Reserves: bigint,
697
- token1Reserves: bigint,
698
- price: bigint,
699
- ): boolean {
700
- return (
701
- token0Reserves >=
702
- (token1Reserves * 10n ** 27n) / (price * MIN_SWAP_LIQUIDITY)
703
- );
704
- }
705
-
706
- /**
707
- * Checks if token1 reserves are sufficient compared to token0 reserves.
708
- * This helps prevent edge cases and ensures high precision in calculations.
709
- * @param {number} token0Reserves - The reserves of token0.
710
- * @param {number} token1Reserves - The reserves of token1.
711
- * @param {number} price - The current price used for calculation.
712
- * @returns {boolean} - Returns false if token1 reserves are too low, true otherwise.
713
- */
714
- protected verifyToken1Reserves(
715
- token0Reserves: bigint,
716
- token1Reserves: bigint,
717
- price: bigint,
718
- ): boolean {
719
- return (
720
- token1Reserves >=
721
- (token0Reserves * price) / (10n ** 27n * MIN_SWAP_LIQUIDITY)
722
- );
723
- }
724
-
725
- /**
726
- * Calculates the currently available swappable amount for a token limit considering expansion since last syncTime.
727
- * @param syncTime - timestamp in seconds when the limits were synced
728
- * @param limit - token limit object containing available amount, expandsTo amount, and expandDuration
729
- * @returns The calculated available swappable amount (borrowable or withdrawable)
730
- */
731
- public getExpandedLimit(syncTime: number, limit: TokenLimit): bigint {
732
- const currentTime = Math.floor(Date.now() / 1000); // convert milliseconds to seconds
733
- const elapsedTime = currentTime - syncTime;
734
- limit.expandsDuration = limit.expandsDuration || 0n;
735
- if (elapsedTime < 10n) {
736
- // if almost no time has elapsed, return available amount
737
- return limit.available;
738
- }
739
-
740
- if (elapsedTime >= limit.expandsDuration) {
741
- // if duration has passed, return max amount
742
- return limit.expandsTo;
743
- }
744
-
745
- // Calculate expansion ratio using bigint arithmetic
746
- // Multiply by a large factor for precision in integer arithmetic
747
- const PRECISION = 1000000;
748
- const ratio = BigInt(elapsedTime * PRECISION) / limit.expandsDuration;
749
-
750
- // Calculate expanded amount with precision factor
751
- const expansion =
752
- ((limit.expandsTo - limit.available) * ratio) / BigInt(PRECISION);
753
- const expandedAmount = limit.available + expansion;
754
- return expandedAmount;
755
- }
756
-
757
- /**
758
- * Given an input amount of asset and pair reserves, returns the maximum output amount of the other asset.
759
- * @param amountIn - The amount of input asset.
760
- * @param iReserveIn - Imaginary token reserve with input amount.
761
- * @param iReserveOut - Imaginary token reserve of output amount.
762
- * @returns The maximum output amount of the other asset.
763
- */
764
- public getAmountOut(
765
- amountIn: bigint,
766
- iReserveIn: bigint,
767
- iReserveOut: bigint,
768
- ): bigint {
769
- // Both numerator and denominator are scaled to 1e6 to factor in fee scaling.
770
- const numerator = amountIn * iReserveOut;
771
- const denominator = iReserveIn + amountIn;
772
-
773
- // Using the swap formula: (AmountIn * iReserveY) / (iReserveX + AmountIn)
774
- // We use division with rounding down, which is the default for bigint division
775
-
776
- return numerator / denominator;
777
- }
778
-
779
- /**
780
- * Given an output amount of asset and pair reserves, returns the input amount of the other asset
781
- * @param amountOut - Desired output amount of the asset.
782
- * @param iReserveIn - Imaginary token reserve of input amount.
783
- * @param iReserveOut - Imaginary token reserve of output amount.
784
- * @returns The input amount of the other asset.
785
- */
786
- public getAmountIn(
787
- amountOut: bigint,
788
- iReserveIn: bigint,
789
- iReserveOut: bigint,
790
- ): bigint {
791
- // Both numerator and denominator are scaled to 1e6 to factor in fee scaling.
792
- const numerator = amountOut * iReserveIn;
793
- const denominator = iReserveOut - amountOut;
794
-
795
- // Using the swap formula: (AmountOut * iReserveX) / (iReserveY - AmountOut)
796
- return numerator / denominator;
797
- }
798
-
799
- /**
800
- * Calculates how much of a swap should go through the collateral pool for output amount.
801
- * @param t - Total amount out.
802
- * @param x - Imaginary reserves of token in of collateral.
803
- * @param y - Imaginary reserves of token out of collateral.
804
- * @param x2 - Imaginary reserves of token in of debt.
805
- * @param y2 - Imaginary reserves of token out of debt.
806
- * @returns How much swap should go through collateral pool. Remaining will go from debt.
807
- * @note If a < 0 then entire trade route through debt pool and debt pool arbitrage with col pool.
808
- * @note If a > t then entire trade route through col pool and col pool arbitrage with debt pool.
809
- * @note If a > 0 & a < t then swap will route through both pools.
810
- */
811
- public swapRoutingOut(
812
- t: bigint,
813
- x: bigint,
814
- y: bigint,
815
- x2: bigint,
816
- y2: bigint,
817
- ): bigint {
818
- // Adding 1e18 precision
819
- const xyRoot = sqrt(BigNumber.from(x).mul(y).mul(BigInt(1e18))).toBigInt();
820
- const x2y2Root = sqrt(
821
- BigNumber.from(x2).mul(y2).mul(BigInt(1e18)),
822
- ).toBigInt();
823
-
824
- // 1e18 precision gets cancelled out in division
825
- const numerator = t * xyRoot + y * x2y2Root - y2 * xyRoot;
826
- const denominator = xyRoot + x2y2Root;
827
-
828
- // Use integer division (rounds down)
829
- const a = numerator / denominator;
830
-
831
- return a;
832
- }
833
-
834
- /**
835
- * Calculates how much of a swap should go through the collateral pool.
836
- * @param t - Total amount in.
837
- * @param x - Imaginary reserves of token out of collateral.
838
- * @param y - Imaginary reserves of token in of collateral.
839
- * @param x2 - Imaginary reserves of token out of debt.
840
- * @param y2 - Imaginary reserves of token in of debt.
841
- * @returns How much swap should go through collateral pool. Remaining will go from debt.
842
- * @note If a < 0 then entire trade route through debt pool and debt pool arbitrage with col pool.
843
- * @note If a > t then entire trade route through col pool and col pool arbitrage with debt pool.
844
- * @note If a > 0 & a < t then swap will route through both pools.
845
- */
846
- public swapRoutingIn(
847
- t: bigint,
848
- x: bigint,
849
- y: bigint,
850
- x2: bigint,
851
- y2: bigint,
852
- ): bigint {
853
- // Adding 1e18 precision
854
-
855
- const xyRoot = sqrt(BigNumber.from(x).mul(y).mul(BigInt(1e18))).toBigInt();
856
- const x2y2Root = sqrt(
857
- BigNumber.from(x2).mul(y2).mul(BigInt(1e18)),
858
- ).toBigInt();
859
-
860
- // Calculating 'a' using the given formula
861
- const a = (y2 * xyRoot + t * xyRoot - y * x2y2Root) / (xyRoot + x2y2Root);
862
- return a;
863
- }
864
-
865
- /**
866
- * Calculates the input amount for a given output amount in a swap operation.
867
- * @param {boolean} swap0to1 - Direction of the swap. True if swapping token0 for token1, false otherwise.
868
- * @param {bigint} amountOut - The amount of output token to be swapped.
869
- * @param {Reserves} colReserves - The reserves of the collateral pool.
870
- * @param {Reserves} debtReserves - The reserves of the debt pool.
871
- * @param {number} inDecimals - The number of decimals for the input token.
872
- * @param {number} outDecimals - The number of decimals for the output token.
873
- * @param {number} fee - The fee for the swap. 1e4 = 1%
874
- * @returns {bigint} amountIn - The calculated input amount required for the swap.
875
- */
876
- public swapOut(
877
- swap0to1: boolean,
878
- amountOut: bigint,
879
- colReserves: CollateralReserves,
880
- debtReserves: DebtReserves,
881
- inDecimals: number,
882
- outDecimals: number,
883
- fee: bigint,
884
- currentLimits: DexLimits,
885
- centerPrice: bigint,
886
- syncTime: number,
887
- ): bigint {
888
- const amountOutAdjusted =
889
- (amountOut * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
890
-
891
- const amountIn = this.swapOutAdjusted(
892
- swap0to1,
893
- amountOutAdjusted,
894
- colReserves,
895
- debtReserves,
896
- fee,
897
- outDecimals,
898
- currentLimits,
899
- centerPrice,
900
- syncTime,
901
- );
902
-
903
- const ans = (amountIn * BigInt(10 ** inDecimals)) / BigInt(10 ** 12);
904
- return ans;
905
- }
906
-
907
- /**
908
- * Calculates the input amount for a given output amount in a swap operation.
909
- * @param {boolean} swap0to1 - Direction of the swap. True if swapping token0 for token1, false otherwise.
910
- * @param {bigint} amountOut - The amount of output token to be swapped.
911
- * @param {CollateralReserves} colReserves - The reserves of the collateral pool.
912
- * @param {DebtReserves} debtReserves - The reserves of the debt pool.
913
- * @returns {bigint} The calculated input amount required for the swap.
914
- */
915
- public swapOutAdjusted(
916
- swap0to1: boolean,
917
- amountOut: bigint,
918
- colReserves: CollateralReserves,
919
- debtReserves: DebtReserves,
920
- fee: bigint,
921
- outDecimals: number,
922
- currentLimits: DexLimits,
923
- centerPrice: bigint,
924
- syncTime: number,
925
- ): bigint {
926
- if (amountOut === 0n) {
927
- return 0n; // Return 0 if output amount is 0
928
- }
929
- const {
930
- token0RealReserves,
931
- token1RealReserves,
932
- token0ImaginaryReserves,
933
- token1ImaginaryReserves,
934
- } = colReserves;
935
-
936
- const {
937
- token0RealReserves: debtToken0RealReserves,
938
- token1RealReserves: debtToken1RealReserves,
939
- token0ImaginaryReserves: debtToken0ImaginaryReserves,
940
- token1ImaginaryReserves: debtToken1ImaginaryReserves,
941
- } = debtReserves;
942
-
943
- // Check if all reserves of collateral pool are greater than 0
944
- const colPoolEnabled =
945
- token0RealReserves > 0n &&
946
- token1RealReserves > 0n &&
947
- token0ImaginaryReserves > 0n &&
948
- token1ImaginaryReserves > 0n;
949
-
950
- // Check if all reserves of debt pool are greater than 0
951
- const debtPoolEnabled =
952
- debtToken0RealReserves > 0n &&
953
- debtToken1RealReserves > 0n &&
954
- debtToken0ImaginaryReserves > 0n &&
955
- debtToken1ImaginaryReserves > 0n;
956
-
957
- let colReserveIn: bigint,
958
- colReserveOut: bigint,
959
- debtReserveIn: bigint,
960
- debtReserveOut: bigint;
961
- let colIReserveIn: bigint,
962
- colIReserveOut: bigint,
963
- debtIReserveIn: bigint,
964
- debtIReserveOut: bigint;
965
- let borrowable: bigint, withdrawable: bigint;
966
-
967
- if (swap0to1) {
968
- colReserveIn = token0RealReserves;
969
- colReserveOut = token1RealReserves;
970
- colIReserveIn = token0ImaginaryReserves;
971
- colIReserveOut = token1ImaginaryReserves;
972
- debtReserveIn = debtToken0RealReserves;
973
- debtReserveOut = debtToken1RealReserves;
974
- debtIReserveIn = debtToken0ImaginaryReserves;
975
- debtIReserveOut = debtToken1ImaginaryReserves;
976
- borrowable = this.getExpandedLimit(
977
- syncTime,
978
- currentLimits.borrowableToken1,
979
- );
980
- withdrawable = this.getExpandedLimit(
981
- syncTime,
982
- currentLimits.withdrawableToken1,
983
- );
984
- } else {
985
- colReserveIn = token1RealReserves;
986
- colReserveOut = token0RealReserves;
987
- colIReserveIn = token1ImaginaryReserves;
988
- colIReserveOut = token0ImaginaryReserves;
989
- debtReserveIn = debtToken1RealReserves;
990
- debtReserveOut = debtToken0RealReserves;
991
- debtIReserveIn = debtToken1ImaginaryReserves;
992
- debtIReserveOut = debtToken0ImaginaryReserves;
993
- borrowable = this.getExpandedLimit(
994
- syncTime,
995
- currentLimits.borrowableToken0,
996
- );
997
- withdrawable = this.getExpandedLimit(
998
- syncTime,
999
- currentLimits.withdrawableToken0,
1000
- );
1001
- }
1002
-
1003
- // bring borrowable and withdrawable from token decimals to 1e12 decimals, same as amounts
1004
- borrowable = (borrowable * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
1005
- withdrawable =
1006
- (withdrawable * BigInt(10 ** 12)) / BigInt(10 ** outDecimals);
1007
-
1008
- let a: bigint;
1009
- if (colPoolEnabled && debtPoolEnabled) {
1010
- a = this.swapRoutingOut(
1011
- amountOut,
1012
- colIReserveIn,
1013
- colIReserveOut,
1014
- debtIReserveIn,
1015
- debtIReserveOut,
1016
- );
1017
- } else if (debtPoolEnabled) {
1018
- a = -1n; // Route from debt pool
1019
- } else if (colPoolEnabled) {
1020
- a = amountOut + 1n; // Route from collateral pool
1021
- } else {
1022
- throw new Error('No pools are enabled');
1023
- }
1024
-
1025
- let amountInCollateral: bigint = 0n;
1026
- let amountInDebt: bigint = 0n;
1027
- let amountOutCollateral: bigint = 0n;
1028
- let amountOutDebt: bigint = 0n;
1029
-
1030
- if (a <= 0n) {
1031
- // Entire trade routes through debt pool
1032
-
1033
- amountOutDebt = amountOut;
1034
- amountInDebt = this.getAmountIn(
1035
- amountOut,
1036
- debtIReserveIn,
1037
- debtIReserveOut,
1038
- );
1039
- amountInDebt = this.applyFeeForBuy(amountInDebt, fee);
1040
- if (amountOut > debtReserveOut) {
1041
- return 0n;
1042
- }
1043
- if (amountOut > borrowable) {
1044
- return 0n;
1045
- }
1046
- } else if (a >= amountOut) {
1047
- // Entire trade routes through collateral pool
1048
- amountOutCollateral = amountOut;
1049
- amountInCollateral = this.getAmountIn(
1050
- amountOut,
1051
- colIReserveIn,
1052
- colIReserveOut,
1053
- );
1054
- amountInCollateral = this.applyFeeForBuy(amountInCollateral, fee);
1055
- if (amountOut > colReserveOut) {
1056
- return 0n;
1057
- }
1058
- if (amountOut > withdrawable) {
1059
- return 0n;
1060
- }
1061
- } else {
1062
- // Trade routes through both pools
1063
- amountOutCollateral = a;
1064
- amountInCollateral = this.getAmountIn(a, colIReserveIn, colIReserveOut);
1065
- const amountOutDebtAdjusted = amountOut - a;
1066
-
1067
- amountInCollateral = this.applyFeeForBuy(amountInCollateral, fee);
1068
-
1069
- amountInDebt = this.getAmountIn(
1070
- amountOutDebtAdjusted,
1071
- debtIReserveIn,
1072
- debtIReserveOut,
1073
- );
1074
-
1075
- amountInDebt = this.applyFeeForBuy(amountInDebt, fee);
1076
- if (amountOutDebt > debtReserveOut || a > colReserveOut) {
1077
- return 0n;
1078
- }
1079
- if (amountOutDebt > borrowable || a > withdrawable) {
1080
- return 0n;
1081
- }
1082
- }
1083
-
1084
- if (amountInCollateral > 0) {
1085
- let reservesRatioValid = swap0to1
1086
- ? this.verifyToken1Reserves(
1087
- colReserveIn + amountInCollateral,
1088
- colReserveOut - amountOutCollateral,
1089
- centerPrice,
1090
- )
1091
- : this.verifyToken0Reserves(
1092
- colReserveOut - amountOutCollateral,
1093
- colReserveIn + amountInCollateral,
1094
- centerPrice,
1095
- );
1096
- if (!reservesRatioValid) {
1097
- return 0n;
1098
- }
1099
- }
1100
- if (amountInDebt > 0) {
1101
- let reservesRatioValid = swap0to1
1102
- ? this.verifyToken1Reserves(
1103
- debtReserveIn + amountInDebt,
1104
- debtReserveOut - amountOutDebt,
1105
- centerPrice,
1106
- )
1107
- : this.verifyToken0Reserves(
1108
- debtReserveOut - amountOutDebt,
1109
- debtReserveIn + amountInDebt,
1110
- centerPrice,
1111
- );
1112
- if (!reservesRatioValid) {
1113
- return 0n;
1114
- }
1115
- }
1116
-
1117
- let oldPrice: bigint;
1118
- let newPrice: bigint;
1119
- const SCALE = BigInt(1e27);
1120
-
1121
- // from whatever pool higher amount of swap is routing we are taking that as final price, does not matter much because both pools final price should be same
1122
- if (amountOutCollateral > amountOutDebt) {
1123
- // new pool price from col pool
1124
- oldPrice = swap0to1
1125
- ? (colIReserveOut * SCALE) / colIReserveIn
1126
- : (colIReserveIn * SCALE) / colIReserveOut;
1127
- newPrice = swap0to1
1128
- ? ((colIReserveOut - amountOutCollateral) * SCALE) /
1129
- (colIReserveIn + amountInCollateral)
1130
- : ((colIReserveIn + amountInCollateral) * SCALE) /
1131
- (colIReserveOut - amountOutCollateral);
1132
- } else {
1133
- // new pool price from debt pool
1134
- oldPrice = swap0to1
1135
- ? (debtIReserveOut * SCALE) / debtIReserveIn
1136
- : (debtIReserveIn * SCALE) / debtIReserveOut;
1137
- newPrice = swap0to1
1138
- ? ((debtIReserveOut - amountOutDebt) * SCALE) /
1139
- (debtIReserveIn + amountInDebt)
1140
- : ((debtIReserveIn + amountInDebt) * SCALE) /
1141
- (debtIReserveOut - amountOutDebt);
1142
- }
1143
-
1144
- const MAX_PRICE_DIFF = BigInt(5); // 5%
1145
- if (
1146
- this.abs(oldPrice - newPrice) >
1147
- (oldPrice / BigInt(100)) * MAX_PRICE_DIFF
1148
- ) {
1149
- // if price diff is > 5% then swap would revert.
1150
- return 0n;
1151
- }
1152
-
1153
- const totalAmountIn = amountInCollateral + amountInDebt;
1154
-
1155
- return totalAmountIn;
1156
- }
1157
-
1158
- private applyFeeForBuy(amount: bigint, fee: bigint): bigint {
1159
- return (amount * 10n ** 6n) / (10n ** 6n - fee);
1160
- }
1161
-
1162
- private applyFeeForSell(amount: bigint, fee: bigint): bigint {
1163
- return (amount * (10n ** 6n - fee)) / 10n ** 6n;
1164
- }
1165
-
1166
- private abs(value: bigint): bigint {
1167
- return value < 0 ? -value : value;
1168
- }
1169
- }