@paraswap/dex-lib 4.8.13-stable-surge-v3.2 → 4.8.13

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 (297) hide show
  1. package/build/abi/{apex-defi/ApexDefiRouter.abi.json → BProtocol.json} +573 -538
  2. package/build/abi/Jarvis.json +1172 -0
  3. package/build/abi/{apex-defi/ApexDefiFactory.abi.json → MStableAsset.json} +781 -985
  4. package/build/abi/{apex-defi/ApexDefiWrapperFactory.abi.json → OneInchLp.json} +766 -569
  5. package/build/abi/Onebit.json +736 -0
  6. package/build/abi/Shell.json +1294 -0
  7. package/build/abi/TraderJoeV2Router.json +50 -0
  8. package/build/abi/wUSDM.json +757 -0
  9. package/build/abi/zrx.v2.json +1967 -0
  10. package/build/abi/zrx.v3.json +3454 -0
  11. package/build/abi/zrx.v4.json +2193 -0
  12. package/build/dex/OneInchLp.d.ts +24 -0
  13. package/build/dex/OneInchLp.js +43 -0
  14. package/build/dex/OneInchLp.js.map +1 -0
  15. package/build/dex/angle-transmuter/angle-transmuter-pool.js +1 -1
  16. package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +1 -1
  17. package/build/dex/bProtocol/bProtocol.d.ts +15 -0
  18. package/build/dex/bProtocol/bProtocol.js +56 -0
  19. package/build/dex/bProtocol/bProtocol.js.map +1 -0
  20. package/build/dex/bProtocol/types.d.ts +11 -0
  21. package/build/dex/bProtocol/types.js +8 -0
  22. package/build/dex/bProtocol/types.js.map +1 -0
  23. package/build/dex/balancer-v3/balancer-v3.js +4 -1
  24. package/build/dex/balancer-v3/balancer-v3.js.map +1 -1
  25. package/build/dex/balancer-v3/config.js +0 -64
  26. package/build/dex/balancer-v3/config.js.map +1 -1
  27. package/build/dex/balancer-v3/getPoolsApi.js +7 -7
  28. package/build/dex/balancer-v3/getPoolsApi.js.map +1 -1
  29. package/build/dex/balancer-v3/getTopPoolsApi.js +4 -2
  30. package/build/dex/balancer-v3/getTopPoolsApi.js.map +1 -1
  31. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.d.ts +1 -1
  32. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js +17 -44
  33. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js.map +1 -1
  34. package/build/dex/balancer-v3/hooks/loadHooksConfig.js +1 -10
  35. package/build/dex/balancer-v3/hooks/loadHooksConfig.js.map +1 -1
  36. package/build/dex/balancer-v3/utils.js +3 -5
  37. package/build/dex/balancer-v3/utils.js.map +1 -1
  38. package/build/dex/curve-v1/curve-v1.d.ts +2 -5
  39. package/build/dex/curve-v1/curve-v1.js +53 -45
  40. package/build/dex/curve-v1/curve-v1.js.map +1 -1
  41. package/build/dex/ekubo/ekubo.d.ts +2 -0
  42. package/build/dex/ekubo/ekubo.js +19 -0
  43. package/build/dex/ekubo/ekubo.js.map +1 -1
  44. package/build/dex/infusion/infusion-stable-pool.d.ts +1 -1
  45. package/build/dex/infusion/infusion-stable-pool.js +1 -1
  46. package/build/dex/infusion/infusion-stable-pool.js.map +1 -1
  47. package/build/dex/infusion/infusion.d.ts +3 -3
  48. package/build/dex/infusion/infusion.js +104 -65
  49. package/build/dex/infusion/infusion.js.map +1 -1
  50. package/build/dex/jarvis.d.ts +56 -0
  51. package/build/dex/jarvis.js +163 -0
  52. package/build/dex/jarvis.js.map +1 -0
  53. package/build/dex/mStable.d.ts +44 -0
  54. package/build/dex/mStable.js +75 -0
  55. package/build/dex/mStable.js.map +1 -0
  56. package/build/dex/onebit/onebit.d.ts +16 -0
  57. package/build/dex/onebit/onebit.js +61 -0
  58. package/build/dex/onebit/onebit.js.map +1 -0
  59. package/build/dex/onebit/types.d.ts +14 -0
  60. package/build/dex/onebit/types.js +8 -0
  61. package/build/dex/onebit/types.js.map +1 -0
  62. package/build/dex/{yo → se-vlr}/config.d.ts +1 -1
  63. package/build/dex/se-vlr/config.js +24 -0
  64. package/build/dex/se-vlr/config.js.map +1 -0
  65. package/build/dex/{stabull/stabull-pool.d.ts → se-vlr/se-vlr-pool.d.ts} +6 -13
  66. package/build/dex/se-vlr/se-vlr-pool.js +70 -0
  67. package/build/dex/se-vlr/se-vlr-pool.js.map +1 -0
  68. package/build/dex/se-vlr/se-vlr.d.ts +35 -0
  69. package/build/dex/se-vlr/se-vlr.js +131 -0
  70. package/build/dex/se-vlr/se-vlr.js.map +1 -0
  71. package/build/dex/se-vlr/types.d.ts +6 -0
  72. package/build/dex/{yo → se-vlr}/types.js.map +1 -1
  73. package/build/dex/shell.d.ts +25 -0
  74. package/build/dex/shell.js +41 -0
  75. package/build/dex/shell.js.map +1 -0
  76. package/build/dex/solidly/forks-override/aerodrome.d.ts +1 -1
  77. package/build/dex/solidly/forks-override/aerodrome.js +14 -18
  78. package/build/dex/solidly/forks-override/aerodrome.js.map +1 -1
  79. package/build/dex/solidly/solidly.d.ts +2 -0
  80. package/build/dex/solidly/solidly.js +21 -0
  81. package/build/dex/solidly/solidly.js.map +1 -1
  82. package/build/dex/solidly-v3/solidly-v3.d.ts +2 -0
  83. package/build/dex/solidly-v3/solidly-v3.js +26 -5
  84. package/build/dex/solidly-v3/solidly-v3.js.map +1 -1
  85. package/build/dex/trader-joe-v2.d.ts +40 -0
  86. package/build/dex/trader-joe-v2.js +74 -0
  87. package/build/dex/trader-joe-v2.js.map +1 -0
  88. package/build/dex/uniswap-v2/uniswap-v2.d.ts +2 -0
  89. package/build/dex/uniswap-v2/uniswap-v2.js +27 -6
  90. package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
  91. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  92. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  93. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  94. package/build/dex/uniswap-v3/uniswap-v3.d.ts +5 -5
  95. package/build/dex/uniswap-v3/uniswap-v3.js +32 -24
  96. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  97. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -6
  98. package/build/dex/uniswap-v4/contract-math/Position.js +0 -29
  99. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
  100. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +2 -0
  101. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +25 -6
  102. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  103. package/build/dex/{stabull → usual-bond}/config.d.ts +1 -1
  104. package/build/dex/usual-bond/config.js +13 -0
  105. package/build/dex/usual-bond/config.js.map +1 -0
  106. package/build/dex/usual-bond/types.d.ts +7 -0
  107. package/build/dex/{stabull → usual-bond}/types.js.map +1 -1
  108. package/build/dex/{aave-pt-to-underlying/aave-pt-to-underlying.d.ts → usual-bond/usual-bond.d.ts} +18 -23
  109. package/build/dex/usual-bond/usual-bond.js +176 -0
  110. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  111. package/build/dex/wusdm/config.d.ts +3 -0
  112. package/build/dex/wusdm/config.js +43 -0
  113. package/build/dex/wusdm/config.js.map +1 -0
  114. package/build/dex/wusdm/constants.d.ts +2 -0
  115. package/build/dex/wusdm/constants.js +6 -0
  116. package/build/dex/wusdm/constants.js.map +1 -0
  117. package/build/dex/wusdm/types.d.ts +18 -0
  118. package/build/dex/wusdm/types.js +11 -0
  119. package/build/dex/wusdm/types.js.map +1 -0
  120. package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
  121. package/build/dex/wusdm/wusdm-pool.js +74 -0
  122. package/build/dex/wusdm/wusdm-pool.js.map +1 -0
  123. package/build/dex/wusdm/wusdm.d.ts +46 -0
  124. package/build/dex/wusdm/wusdm.js +243 -0
  125. package/build/dex/wusdm/wusdm.js.map +1 -0
  126. package/build/dex/zerox/config.d.ts +2 -0
  127. package/build/dex/zerox/config.js +33 -0
  128. package/build/dex/zerox/config.js.map +1 -0
  129. package/build/dex/zerox/index.d.ts +22 -0
  130. package/build/dex/zerox/index.js +225 -0
  131. package/build/dex/zerox/index.js.map +1 -0
  132. package/build/dex/zerox/order.d.ts +88 -0
  133. package/build/dex/zerox/order.js +53 -0
  134. package/build/dex/zerox/order.js.map +1 -0
  135. package/build/dex/zerox/types.d.ts +73 -0
  136. package/build/dex/zerox/types.js +21 -0
  137. package/build/dex/zerox/types.js.map +1 -0
  138. package/build/pricing-helper.js +5 -2
  139. package/build/pricing-helper.js.map +1 -1
  140. package/package.json +1 -1
  141. package/build/abi/PendleRouterStatic.json +0 -19
  142. package/build/abi/apex-defi/ApexDefiToken.abi.json +0 -229
  143. package/build/abi/apex-defi/ApexDefiWrapper.abi.json +0 -92
  144. package/build/abi/clear/ClearFactory.json +0 -71
  145. package/build/abi/clear/ClearSwap.json +0 -334
  146. package/build/abi/clear/ClearVault.json +0 -20
  147. package/build/abi/ekubo-v3/boosted-fees-data-fetcher.json +0 -108
  148. package/build/abi/ekubo-v3/boosted-fees.json +0 -538
  149. package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +0 -796
  150. package/build/abi/pendle/pendle-deployer.abi.json +0 -520
  151. package/build/abi/pendle/pendle-oracle.abi.json +0 -413
  152. package/build/abi/ring-v2/few-wrapped-token.json +0 -587
  153. package/build/abi/ring-v2/ring-v2-factory.json +0 -125
  154. package/build/abi/ring-v2/ring-v2-pool.json +0 -461
  155. package/build/abi/ring-v2/ring-v2-router.json +0 -332
  156. package/build/abi/stabull/stabull-curve.json +0 -738
  157. package/build/abi/stabull/stabull-router.json +0 -76
  158. package/build/abi/uniswap-v4/hooks/SpotDynamicFeeManager.json +0 -26
  159. package/build/abi/uniswap-v4/hooks/SpotHook.json +0 -54
  160. package/build/abi/uniswap-v4/hooks/SpotPolicyManager.json +0 -45
  161. package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +0 -682
  162. package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +0 -1335
  163. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.d.ts +0 -29
  164. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js +0 -153
  165. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js.map +0 -1
  166. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js +0 -323
  167. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js.map +0 -1
  168. package/build/dex/aave-pt-to-underlying/config.d.ts +0 -3
  169. package/build/dex/aave-pt-to-underlying/config.js +0 -24
  170. package/build/dex/aave-pt-to-underlying/config.js.map +0 -1
  171. package/build/dex/aave-pt-to-underlying/constants.d.ts +0 -2
  172. package/build/dex/aave-pt-to-underlying/constants.js +0 -6
  173. package/build/dex/aave-pt-to-underlying/constants.js.map +0 -1
  174. package/build/dex/aave-pt-to-underlying/types.d.ts +0 -24
  175. package/build/dex/aave-pt-to-underlying/types.js.map +0 -1
  176. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.d.ts +0 -39
  177. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js +0 -244
  178. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js.map +0 -1
  179. package/build/dex/aave-pt-to-usdc/config.d.ts +0 -3
  180. package/build/dex/aave-pt-to-usdc/config.js +0 -47
  181. package/build/dex/aave-pt-to-usdc/config.js.map +0 -1
  182. package/build/dex/aave-pt-to-usdc/constants.d.ts +0 -2
  183. package/build/dex/aave-pt-to-usdc/constants.js +0 -6
  184. package/build/dex/aave-pt-to-usdc/constants.js.map +0 -1
  185. package/build/dex/aave-pt-to-usdc/types.d.ts +0 -22
  186. package/build/dex/aave-pt-to-usdc/types.js.map +0 -1
  187. package/build/dex/apex-defi/apex-defi-factory.d.ts +0 -26
  188. package/build/dex/apex-defi/apex-defi-factory.js +0 -53
  189. package/build/dex/apex-defi/apex-defi-factory.js.map +0 -1
  190. package/build/dex/apex-defi/apex-defi-pool.d.ts +0 -55
  191. package/build/dex/apex-defi/apex-defi-pool.js +0 -247
  192. package/build/dex/apex-defi/apex-defi-pool.js.map +0 -1
  193. package/build/dex/apex-defi/apex-defi-wrapper-factory.d.ts +0 -57
  194. package/build/dex/apex-defi/apex-defi-wrapper-factory.js +0 -250
  195. package/build/dex/apex-defi/apex-defi-wrapper-factory.js.map +0 -1
  196. package/build/dex/apex-defi/apex-defi.d.ts +0 -97
  197. package/build/dex/apex-defi/apex-defi.js +0 -1021
  198. package/build/dex/apex-defi/apex-defi.js.map +0 -1
  199. package/build/dex/apex-defi/config.d.ts +0 -4
  200. package/build/dex/apex-defi/config.js +0 -138
  201. package/build/dex/apex-defi/config.js.map +0 -1
  202. package/build/dex/apex-defi/types.d.ts +0 -32
  203. package/build/dex/apex-defi/types.js +0 -3
  204. package/build/dex/apex-defi/types.js.map +0 -1
  205. package/build/dex/apex-defi/utils.d.ts +0 -46
  206. package/build/dex/apex-defi/utils.js +0 -133
  207. package/build/dex/apex-defi/utils.js.map +0 -1
  208. package/build/dex/clear/clear-factory.d.ts +0 -33
  209. package/build/dex/clear/clear-factory.js +0 -123
  210. package/build/dex/clear/clear-factory.js.map +0 -1
  211. package/build/dex/clear/clear.d.ts +0 -53
  212. package/build/dex/clear/clear.js +0 -311
  213. package/build/dex/clear/clear.js.map +0 -1
  214. package/build/dex/clear/config.d.ts +0 -3
  215. package/build/dex/clear/config.js +0 -14
  216. package/build/dex/clear/config.js.map +0 -1
  217. package/build/dex/clear/types.d.ts +0 -18
  218. package/build/dex/clear/types.js +0 -3
  219. package/build/dex/clear/types.js.map +0 -1
  220. package/build/dex/ekubo-v3/extension-type.d.ts +0 -9
  221. package/build/dex/ekubo-v3/extension-type.js +0 -36
  222. package/build/dex/ekubo-v3/extension-type.js.map +0 -1
  223. package/build/dex/ekubo-v3/pools/boosted-fees.d.ts +0 -39
  224. package/build/dex/ekubo-v3/pools/boosted-fees.js +0 -189
  225. package/build/dex/ekubo-v3/pools/boosted-fees.js.map +0 -1
  226. package/build/dex/ekubo-v3/pools/concentrated.d.ts +0 -47
  227. package/build/dex/ekubo-v3/pools/concentrated.js +0 -324
  228. package/build/dex/ekubo-v3/pools/concentrated.js.map +0 -1
  229. package/build/dex/ekubo-v3/pools/timed.d.ts +0 -25
  230. package/build/dex/ekubo-v3/pools/timed.js +0 -91
  231. package/build/dex/ekubo-v3/pools/timed.js.map +0 -1
  232. package/build/dex/maker-psm/maker-psm-event-pool.d.ts +0 -43
  233. package/build/dex/maker-psm/maker-psm-event-pool.js +0 -132
  234. package/build/dex/maker-psm/maker-psm-event-pool.js.map +0 -1
  235. package/build/dex/miro-migrator/miro-migrator-state.d.ts +0 -27
  236. package/build/dex/miro-migrator/miro-migrator-state.js +0 -89
  237. package/build/dex/miro-migrator/miro-migrator-state.js.map +0 -1
  238. package/build/dex/stabull/config.js +0 -177
  239. package/build/dex/stabull/config.js.map +0 -1
  240. package/build/dex/stabull/stabull-pool.js +0 -113
  241. package/build/dex/stabull/stabull-pool.js.map +0 -1
  242. package/build/dex/stabull/stabull.d.ts +0 -55
  243. package/build/dex/stabull/stabull.js +0 -286
  244. package/build/dex/stabull/stabull.js.map +0 -1
  245. package/build/dex/stabull/types.d.ts +0 -21
  246. package/build/dex/stabull/types.js +0 -3
  247. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +0 -4
  248. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +0 -56
  249. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +0 -1
  250. package/build/dex/uniswap-v4/hooks/arena.d.ts +0 -6
  251. package/build/dex/uniswap-v4/hooks/arena.js +0 -10
  252. package/build/dex/uniswap-v4/hooks/arena.js.map +0 -1
  253. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.d.ts +0 -0
  254. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js +0 -2
  255. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js.map +0 -1
  256. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +0 -7
  257. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +0 -28
  258. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +0 -1
  259. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
  260. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +0 -2
  261. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +0 -1
  262. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +0 -7
  263. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +0 -28
  264. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +0 -1
  265. package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
  266. package/build/dex/uniswap-v4/hooks/fee-hook/types.js +0 -2
  267. package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +0 -1
  268. package/build/dex/uniswap-v4/hooks/index.d.ts +0 -1
  269. package/build/dex/uniswap-v4/hooks/index.js +0 -18
  270. package/build/dex/uniswap-v4/hooks/index.js.map +0 -1
  271. package/build/dex/uniswap-v4/hooks/spot.d.ts +0 -15
  272. package/build/dex/uniswap-v4/hooks/spot.js +0 -109
  273. package/build/dex/uniswap-v4/hooks/spot.js.map +0 -1
  274. package/build/dex/uniswap-v4/hooks/template.d.ts +0 -150
  275. package/build/dex/uniswap-v4/hooks/template.js +0 -104
  276. package/build/dex/uniswap-v4/hooks/template.js.map +0 -1
  277. package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +0 -26
  278. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +0 -75
  279. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +0 -1
  280. package/build/dex/usual/usual-usdc-usdc.d.ts +0 -17
  281. package/build/dex/usual/usual-usdc-usdc.js +0 -59
  282. package/build/dex/usual/usual-usdc-usdc.js.map +0 -1
  283. package/build/dex/yo/config.js +0 -21
  284. package/build/dex/yo/config.js.map +0 -1
  285. package/build/dex/yo/types.d.ts +0 -13
  286. package/build/dex/yo/types.js +0 -3
  287. package/build/dex/yo/yo-pool.d.ts +0 -13
  288. package/build/dex/yo/yo-pool.js +0 -26
  289. package/build/dex/yo/yo-pool.js.map +0 -1
  290. package/build/dex/yo/yo.d.ts +0 -39
  291. package/build/dex/yo/yo.js +0 -248
  292. package/build/dex/yo/yo.js.map +0 -1
  293. package/build/implementations/api-paraswap-sdk.d.ts +0 -25
  294. package/build/implementations/api-paraswap-sdk.js +0 -102
  295. package/build/implementations/api-paraswap-sdk.js.map +0 -1
  296. /package/build/dex/{aave-pt-to-underlying → se-vlr}/types.js +0 -0
  297. /package/build/dex/{aave-pt-to-usdc → usual-bond}/types.js +0 -0
@@ -1,53 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { Logger, Token, Address, PoolPrices, AdapterExchangeParam, PoolLiquidity, ExchangePrices, DexExchangeParam } from '../../types';
3
- import { IDexHelper } from '../../dex-helper/idex-helper';
4
- import { IDex } from '../idex';
5
- import { SimpleExchange } from '../simple-exchange';
6
- import { ClearData, DexParams } from './types';
7
- import { Network, SwapSide } from '../../constants';
8
- import { NumberAsString } from '@paraswap/core';
9
- import { ClearFactory } from './clear-factory';
10
- /**
11
- * Clear DEX Integration for ParaSwap
12
- *
13
- * Clear is a depeg arbitrage protocol for stablecoins
14
- * - Vaults contain N tokens (multi-token, not pairs)
15
- * - Pricing via ClearSwap.previewSwap() - returns 0 when no depeg
16
- * - Discovery via StatefulEventSubscriber (getters + NewClearVault events)
17
- * - Each (vault, tokenA, tokenB) combination = one "pool" for ParaSwap
18
- */
19
- export declare class Clear extends SimpleExchange implements IDex<ClearData> {
20
- readonly network: Network;
21
- readonly dexKey: string;
22
- readonly dexHelper: IDexHelper;
23
- logger: Logger;
24
- protected config: DexParams;
25
- protected factory: ClearFactory;
26
- readonly hasConstantPriceLargeAmounts = false;
27
- readonly isFeeOnTransferSupported = false;
28
- static dexKeysWithNetwork: {
29
- key: string;
30
- networks: Network[];
31
- }[];
32
- readonly clearSwapIface: Interface;
33
- readonly clearVaultIface: Interface;
34
- private vaults;
35
- constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
36
- getAdapters(_side: SwapSide): null;
37
- initializePricing(blockNumber: number): Promise<void>;
38
- getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
39
- getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<ClearData>>;
40
- getAdapterParam(): AdapterExchangeParam;
41
- getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: ClearData, _side: SwapSide): DexExchangeParam;
42
- /**
43
- * Gas cost for exchangeData calldata
44
- * swap(address recipient, address vault, address srcToken, address destToken, uint256 srcAmount, uint256 destAmount, bool useIous)
45
- */
46
- getCalldataGasCost(_poolPrices: PoolPrices<ClearData>): number | number[];
47
- /**
48
- * Fetch vaults with tokens, decimals and TVL for getTopPoolsForToken
49
- * This method is called by PoolTracker service which doesn't call initializePricing
50
- */
51
- updatePoolState(): Promise<void>;
52
- getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
53
- }
@@ -1,311 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.Clear = void 0;
40
- const abi_1 = require("@ethersproject/abi");
41
- const simple_exchange_1 = require("../simple-exchange");
42
- const config_1 = require("./config");
43
- const constants_1 = require("../../constants");
44
- const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
45
- const utils_1 = require("../../utils");
46
- const ClearSwap_json_1 = __importDefault(require("../../abi/clear/ClearSwap.json"));
47
- const ClearVault_json_1 = __importDefault(require("../../abi/clear/ClearVault.json"));
48
- const clear_factory_1 = require("./clear-factory");
49
- const decoders_1 = require("../../lib/decoders");
50
- const utils_2 = require("../../executor/utils");
51
- const CLEAR_GAS_COST = 150_000;
52
- /**
53
- * Clear DEX Integration for ParaSwap
54
- *
55
- * Clear is a depeg arbitrage protocol for stablecoins
56
- * - Vaults contain N tokens (multi-token, not pairs)
57
- * - Pricing via ClearSwap.previewSwap() - returns 0 when no depeg
58
- * - Discovery via StatefulEventSubscriber (getters + NewClearVault events)
59
- * - Each (vault, tokenA, tokenB) combination = one "pool" for ParaSwap
60
- */
61
- class Clear extends simple_exchange_1.SimpleExchange {
62
- network;
63
- dexKey;
64
- dexHelper;
65
- logger;
66
- config;
67
- factory;
68
- hasConstantPriceLargeAmounts = false;
69
- isFeeOnTransferSupported = false;
70
- static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.ClearConfig);
71
- clearSwapIface = new abi_1.Interface(ClearSwap_json_1.default);
72
- clearVaultIface = new abi_1.Interface(ClearVault_json_1.default);
73
- vaults = [];
74
- constructor(network, dexKey, dexHelper) {
75
- super(dexHelper, dexKey);
76
- this.network = network;
77
- this.dexKey = dexKey;
78
- this.dexHelper = dexHelper;
79
- this.config = config_1.ClearConfig[dexKey][network];
80
- this.logger = dexHelper.getLogger(dexKey);
81
- this.factory = new clear_factory_1.ClearFactory(dexKey, this.config, network, dexHelper, this.logger);
82
- }
83
- getAdapters(_side) {
84
- return null;
85
- }
86
- async initializePricing(blockNumber) {
87
- await this.factory.initialize(blockNumber);
88
- }
89
- async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
90
- if (side === constants_1.SwapSide.BUY)
91
- return [];
92
- const allVaults = this.factory.getState(blockNumber) || [];
93
- const src = srcToken.address.toLowerCase();
94
- const dest = destToken.address.toLowerCase();
95
- const matchingVaults = allVaults.filter(vault => {
96
- const addrs = vault.tokens;
97
- return addrs.includes(src) && addrs.includes(dest);
98
- });
99
- return matchingVaults.map(vault => `${this.dexKey}_${vault.address}_${srcToken.address}_${destToken.address}`.toLowerCase());
100
- }
101
- async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
102
- // Only SELL side supported
103
- if (side === constants_1.SwapSide.BUY) {
104
- return null;
105
- }
106
- const poolIdentifiers = limitPools ||
107
- (await this.getPoolIdentifiers(srcToken, destToken, side, blockNumber));
108
- if (poolIdentifiers.length === 0) {
109
- return null;
110
- }
111
- try {
112
- const calls = [];
113
- const vaultInfos = [];
114
- for (const poolIdentifier of poolIdentifiers) {
115
- const vaultAddress = poolIdentifier.split('_')[1];
116
- const startIdx = calls.length;
117
- for (const amount of amounts.slice(1)) {
118
- calls.push({
119
- target: this.config.swapAddress,
120
- callData: this.clearSwapIface.encodeFunctionData('previewSwap', [
121
- vaultAddress,
122
- srcToken.address,
123
- destToken.address,
124
- amount,
125
- ]),
126
- decodeFunction: (result) => result.amountOut.toBigInt(),
127
- });
128
- }
129
- vaultInfos.push({ address: vaultAddress, poolIdentifier, startIdx });
130
- }
131
- const results = await this.dexHelper.multiWrapper.tryAggregate(false, calls, blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
132
- const poolPrices = [];
133
- for (const { address, poolIdentifier, startIdx } of vaultInfos) {
134
- const prices = [
135
- 0n,
136
- ...amounts.slice(1).map((_, i) => {
137
- const r = results[startIdx + i];
138
- return r.success ? r.returnData : 0n;
139
- }),
140
- ];
141
- if (prices.every(p => p === 0n))
142
- continue;
143
- poolPrices.push({
144
- prices,
145
- unit: (0, utils_1.getBigIntPow)(destToken.decimals),
146
- data: { vault: address },
147
- poolIdentifiers: [poolIdentifier],
148
- exchange: this.dexKey,
149
- gasCost: this.config.poolGasCost || CLEAR_GAS_COST,
150
- poolAddresses: [address],
151
- });
152
- }
153
- return poolPrices.length > 0 ? poolPrices : null;
154
- }
155
- catch (error) {
156
- this.logger.error(`getPricesVolume error: ${error}`);
157
- return null;
158
- }
159
- }
160
- // Not used in V6, but required by interface
161
- getAdapterParam() {
162
- return {
163
- targetExchange: '0x',
164
- payload: '0x',
165
- networkFee: '0',
166
- };
167
- }
168
- getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, _side) {
169
- const exchangeData = this.clearSwapIface.encodeFunctionData('swap', [
170
- recipient,
171
- data.vault,
172
- srcToken,
173
- destToken,
174
- srcAmount,
175
- destAmount,
176
- false,
177
- ]);
178
- return {
179
- needWrapNative: this.needWrapNative,
180
- dexFuncHasRecipient: true,
181
- exchangeData,
182
- targetExchange: this.config.swapAddress,
183
- returnAmountPos: (0, utils_2.extractReturnAmountPosition)(this.clearSwapIface, 'swap', 'amountOut'),
184
- };
185
- }
186
- /**
187
- * Gas cost for exchangeData calldata
188
- * swap(address recipient, address vault, address srcToken, address destToken, uint256 srcAmount, uint256 destAmount, bool useIous)
189
- */
190
- getCalldataGasCost(_poolPrices) {
191
- return (CALLDATA_GAS_COST.DEX_OVERHEAD +
192
- CALLDATA_GAS_COST.ADDRESS + // recipient
193
- CALLDATA_GAS_COST.ADDRESS + // vault
194
- CALLDATA_GAS_COST.ADDRESS + // srcToken
195
- CALLDATA_GAS_COST.ADDRESS + // destToken
196
- CALLDATA_GAS_COST.AMOUNT + // srcAmount
197
- CALLDATA_GAS_COST.AMOUNT + // destAmount
198
- CALLDATA_GAS_COST.BOOL // useIous
199
- );
200
- }
201
- /**
202
- * Fetch vaults with tokens, decimals and TVL for getTopPoolsForToken
203
- * This method is called by PoolTracker service which doesn't call initializePricing
204
- */
205
- async updatePoolState() {
206
- const blockNumber = await this.dexHelper.provider.getBlockNumber();
207
- const vaults = await this.factory.getStateOrGenerate(blockNumber);
208
- if (vaults.length === 0) {
209
- return this.logger.info(`${this.dexKey}: No vaults found in updatePoolState`);
210
- }
211
- const uniqueTokens = [...new Set(vaults.flatMap(v => v.tokens))];
212
- const decimalCalls = uniqueTokens.map(token => ({
213
- target: token,
214
- callData: '0x313ce567', // decimals()
215
- decodeFunction: (result) => BigInt((0, decoders_1.uint8ToNumber)(result)),
216
- }));
217
- // Build tokenAssets(tokenAddress) calls for each token in each vault
218
- const tokenAssetsCalls = [];
219
- const tokenAssetsMap = [];
220
- for (let i = 0; i < vaults.length; i++) {
221
- for (const token of vaults[i].tokens) {
222
- tokenAssetsCalls.push({
223
- target: vaults[i].address,
224
- callData: this.clearVaultIface.encodeFunctionData('tokenAssets', [
225
- token,
226
- ]),
227
- decodeFunction: decoders_1.uint256ToBigInt,
228
- });
229
- tokenAssetsMap.push({ vaultIdx: i, tokenAddress: token });
230
- }
231
- }
232
- const results = await this.dexHelper.multiWrapper.tryAggregate(false, [...decimalCalls, ...tokenAssetsCalls], blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
233
- const decimalsOffset = uniqueTokens.length;
234
- const tokenDecimals = {};
235
- for (let i = 0; i < decimalsOffset; i++) {
236
- const result = results[i];
237
- tokenDecimals[uniqueTokens[i]] = result.success
238
- ? Number(result.returnData)
239
- : 18;
240
- }
241
- // Group tokenAssets results by vault index
242
- const vaultTokenAssets = vaults.map(() => ({}));
243
- for (let i = 0; i < tokenAssetsMap.length; i++) {
244
- const { vaultIdx, tokenAddress } = tokenAssetsMap[i];
245
- const result = results[decimalsOffset + i];
246
- if (result.success) {
247
- vaultTokenAssets[vaultIdx][tokenAddress.toLowerCase()] =
248
- result.returnData;
249
- }
250
- }
251
- this.vaults = vaults.map((vault, i) => ({
252
- address: vault.address,
253
- tokens: vault.tokens.map(t => ({
254
- address: t,
255
- decimals: tokenDecimals[t.toLowerCase()] ?? 18,
256
- })),
257
- tokenAssets: vaultTokenAssets[i],
258
- }));
259
- }
260
- async getTopPoolsForToken(tokenAddress, limit) {
261
- const tokenAddrLower = tokenAddress.toLowerCase();
262
- const vaultsWithToken = this.vaults.filter(vault => vault.tokens.some(t => t.address.toLowerCase() === tokenAddrLower));
263
- if (vaultsWithToken.length === 0) {
264
- return [];
265
- }
266
- // Build a flat list of [tokenAddress, assets] for all tokens across all vaults
267
- const tokenAmountPairs = [];
268
- const vaultTokenCounts = [];
269
- for (const vault of vaultsWithToken) {
270
- vaultTokenCounts.push(vault.tokens.length);
271
- for (const t of vault.tokens) {
272
- const addr = t.address.toLowerCase();
273
- tokenAmountPairs.push([t.address, vault.tokenAssets[addr] ?? null]);
274
- }
275
- }
276
- const usdAmounts = await this.dexHelper.getUsdTokenAmounts(tokenAmountPairs);
277
- // Map per-token USD amounts to PoolLiquidity entries
278
- let offset = 0;
279
- const poolLiquidities = vaultsWithToken
280
- .map((vault, i) => {
281
- const count = vaultTokenCounts[i];
282
- const tokenUsdMap = {};
283
- for (let j = 0; j < count; j++) {
284
- const addr = vault.tokens[j].address.toLowerCase();
285
- tokenUsdMap[addr] = usdAmounts[offset + j];
286
- }
287
- offset += count;
288
- const connectorTokens = vault.tokens
289
- .filter(t => t.address.toLowerCase() !== tokenAddrLower)
290
- .map(t => ({
291
- address: t.address,
292
- decimals: t.decimals ?? 18,
293
- liquidityUSD: tokenUsdMap[t.address.toLowerCase()],
294
- }));
295
- if (connectorTokens.length === 0)
296
- return null;
297
- return {
298
- exchange: this.dexKey,
299
- address: vault.address,
300
- connectorTokens,
301
- liquidityUSD: tokenUsdMap[tokenAddrLower] ?? 0,
302
- };
303
- })
304
- .filter((p) => p !== null);
305
- return poolLiquidities
306
- .sort((a, b) => b.liquidityUSD - a.liquidityUSD)
307
- .slice(0, limit);
308
- }
309
- }
310
- exports.Clear = Clear;
311
- //# sourceMappingURL=clear.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/dex/clear/clear.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA+C;AAe/C,wDAAoD;AACpD,qCAAuC;AAEvC,+CAAoD;AACpD,2EAA6D;AAC7D,uCAAkE;AAClE,oFAA0D;AAC1D,sFAA4D;AAG5D,mDAA+C;AAC/C,iDAAoE;AACpE,gDAAmE;AAEnE,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B;;;;;;;;GAQG;AACH,MAAa,KAAM,SAAQ,gCAAc;IAgB5B;IACA;IACA;IAjBX,MAAM,CAAS;IACL,MAAM,CAAY;IAClB,OAAO,CAAe;IAEvB,4BAA4B,GAAG,KAAK,CAAC;IACrC,wBAAwB,GAAG,KAAK,CAAC;IAEnC,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,oBAAW,CAAC,CAAC;IAE5B,cAAc,GAAG,IAAI,eAAS,CAAC,wBAAY,CAAC,CAAC;IAC7C,eAAe,GAAG,IAAI,eAAS,CAAC,yBAAa,CAAC,CAAC;IAChD,MAAM,GAAiB,EAAE,CAAC;IAElC,YACW,OAAgB,EAChB,MAAc,EACd,SAAqB;QAE9B,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAJhB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAY;QAG9B,IAAI,CAAC,MAAM,GAAG,oBAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,OAAO,GAAG,IAAI,4BAAY,CAC7B,MAAM,EACN,IAAI,CAAC,MAAM,EACX,OAAO,EACP,SAAS,EACT,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAe;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,WAAmB;QAEnB,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QAErC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAE7C,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAChC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CACzF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAe,EACf,SAAgB,EAChB,OAAiB,EACjB,IAAc,EACd,WAAmB,EACnB,UAAqB;QAErB,2BAA2B;QAC3B,IAAI,IAAI,KAAK,oBAAQ,CAAC,GAAG,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,eAAe,GACnB,UAAU;YACV,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QAE1E,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAA8B,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;gBAC7C,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;gBAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtC,KAAK,CAAC,IAAI,CAAC;wBACT,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;wBAC/B,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,aAAa,EAAE;4BAC9D,YAAY;4BACZ,QAAQ,CAAC,OAAO;4BAChB,SAAS,CAAC,OAAO;4BACjB,MAAM;yBACP,CAAC;wBACF,cAAc,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;qBAC7D,CAAC,CAAC;gBACL,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAC5D,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAC5C,KAAK,CACN,CAAC;YAEF,MAAM,UAAU,GAA4B,EAAE,CAAC;YAE/C,KAAK,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC/D,MAAM,MAAM,GAAG;oBACb,EAAE;oBACF,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;wBAChC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvC,CAAC,CAAC;iBACH,CAAC;gBAEF,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;oBAAE,SAAS;gBAE1C,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM;oBACN,IAAI,EAAE,IAAA,oBAAY,EAAC,SAAS,CAAC,QAAQ,CAAC;oBACtC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;oBACxB,eAAe,EAAE,CAAC,cAAc,CAAC;oBACjC,QAAQ,EAAE,IAAI,CAAC,MAAM;oBACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,cAAc;oBAClD,aAAa,EAAE,CAAC,OAAO,CAAC;iBACzB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,eAAe;QACb,OAAO;YACL,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,WAAW,CACT,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAAe,EACf,KAAe;QAEf,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAClE,SAAS;YACT,IAAI,CAAC,KAAK;YACV,QAAQ;YACR,SAAS;YACT,SAAS;YACT,UAAU;YACV,KAAK;SACN,CAAC,CAAC;QAEH,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI;YACzB,YAAY;YACZ,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACvC,eAAe,EAAE,IAAA,mCAA2B,EAC1C,IAAI,CAAC,cAAc,EACnB,MAAM,EACN,WAAW,CACZ;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,WAAkC;QACnD,OAAO,CACL,iBAAiB,CAAC,YAAY;YAC9B,iBAAiB,CAAC,OAAO,GAAG,YAAY;YACxC,iBAAiB,CAAC,OAAO,GAAG,QAAQ;YACpC,iBAAiB,CAAC,OAAO,GAAG,WAAW;YACvC,iBAAiB,CAAC,OAAO,GAAG,YAAY;YACxC,iBAAiB,CAAC,MAAM,GAAG,YAAY;YACvC,iBAAiB,CAAC,MAAM,GAAG,aAAa;YACxC,iBAAiB,CAAC,IAAI,CAAC,UAAU;SAClC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAElE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,GAAG,IAAI,CAAC,MAAM,sCAAsC,CACrD,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEjE,MAAM,YAAY,GAA8B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzE,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,YAAY,EAAE,aAAa;YACrC,cAAc,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC;SAC/D,CAAC,CAAC,CAAC;QAEJ,qEAAqE;QACrE,MAAM,gBAAgB,GAA8B,EAAE,CAAC;QACvD,MAAM,cAAc,GAAiD,EAAE,CAAC;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACrC,gBAAgB,CAAC,IAAI,CAAC;oBACpB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO;oBACzB,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,aAAa,EAAE;wBAC/D,KAAK;qBACN,CAAC;oBACF,cAAc,EAAE,0BAAe;iBAChC,CAAC,CAAC;gBACH,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAC5D,KAAK,EACL,CAAC,GAAG,YAAY,EAAE,GAAG,gBAAgB,CAAC,EACtC,WAAW,EACX,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAC5C,KAAK,CACN,CAAC;QAEF,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC;QAE3C,MAAM,aAAa,GAA2B,EAAE,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO;gBAC7C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC3B,CAAC,CAAC,EAAE,CAAC;QACT,CAAC;QAED,2CAA2C;QAC3C,MAAM,gBAAgB,GAA6B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;oBACpD,MAAM,CAAC,UAAU,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7B,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;aAC/C,CAAC,CAAC;YACH,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;SACjC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,YAAqB,EACrB,KAAa;QAEb,MAAM,cAAc,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QAElD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CACnE,CAAC;QAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,+EAA+E;QAC/E,MAAM,gBAAgB,GAA+B,EAAE,CAAC;QACxD,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACrC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CACxD,gBAAgB,CACjB,CAAC;QAEF,qDAAqD;QACrD,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,eAAe,GAAG,eAAe;aACpC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,WAAW,GAA2B,EAAE,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACnD,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC;YAEhB,MAAM,eAAe,GAAqB,KAAK,CAAC,MAAM;iBACnD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC;iBACvD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACT,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;gBAC1B,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;aACnD,CAAC,CAAC,CAAC;YAEN,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAE9C,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,eAAe;gBACf,YAAY,EAAE,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC;aAC/C,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAEjD,OAAO,eAAe;aACnB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;aAC/C,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrB,CAAC;;AAzVH,sBA0VC"}
@@ -1,3 +0,0 @@
1
- import { DexParams } from './types';
2
- import { DexConfigMap } from '../../types';
3
- export declare const ClearConfig: DexConfigMap<DexParams>;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClearConfig = void 0;
4
- const constants_1 = require("../../constants");
5
- exports.ClearConfig = {
6
- Clear: {
7
- [constants_1.Network.MAINNET]: {
8
- factoryAddress: '0x8bF266ED803e474AE7Bf09ADB5ba2566c489223d',
9
- swapAddress: '0xeb5AD3D93E59eFcbC6934caD2B48EB33BAf29745',
10
- poolGasCost: 150_000,
11
- },
12
- },
13
- };
14
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/clear/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE7B,QAAA,WAAW,GAA4B;IAClD,KAAK,EAAE;QACL,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,cAAc,EAAE,4CAA4C;YAC5D,WAAW,EAAE,4CAA4C;YACzD,WAAW,EAAE,OAAO;SACrB;KACF;CACF,CAAC"}
@@ -1,18 +0,0 @@
1
- import { Address, Token } from '../../types';
2
- export type ClearData = {
3
- vault: Address;
4
- };
5
- export interface DexParams {
6
- factoryAddress: Address;
7
- swapAddress: Address;
8
- poolGasCost?: number;
9
- }
10
- export type PoolState = {
11
- address: Address;
12
- tokens: Address[];
13
- }[];
14
- export interface ClearVault {
15
- address: Address;
16
- tokens: Token[];
17
- tokenAssets: Record<string, bigint>;
18
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/clear/types.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- export declare const enum ExtensionType {
2
- Unknown = 0,
3
- NoSwapCallPoints = 1,
4
- Oracle = 2,
5
- Twamm = 3,
6
- MevCapture = 4,
7
- BoostedFeesConcentrated = 5
8
- }
9
- export declare function extensionType(extension: bigint): ExtensionType;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExtensionType = void 0;
4
- exports.extensionType = extensionType;
5
- const config_1 = require("./config");
6
- var ExtensionType;
7
- (function (ExtensionType) {
8
- ExtensionType[ExtensionType["Unknown"] = 0] = "Unknown";
9
- ExtensionType[ExtensionType["NoSwapCallPoints"] = 1] = "NoSwapCallPoints";
10
- ExtensionType[ExtensionType["Oracle"] = 2] = "Oracle";
11
- ExtensionType[ExtensionType["Twamm"] = 3] = "Twamm";
12
- ExtensionType[ExtensionType["MevCapture"] = 4] = "MevCapture";
13
- ExtensionType[ExtensionType["BoostedFeesConcentrated"] = 5] = "BoostedFeesConcentrated";
14
- })(ExtensionType || (exports.ExtensionType = ExtensionType = {}));
15
- const KNOWN_EXTENSION_TYPES = new Map([
16
- [BigInt(config_1.ORACLE_ADDRESS), 2 /* ExtensionType.Oracle */],
17
- [BigInt(config_1.TWAMM_ADDRESS), 3 /* ExtensionType.Twamm */],
18
- [BigInt(config_1.MEV_CAPTURE_ADDRESS), 4 /* ExtensionType.MevCapture */],
19
- [
20
- BigInt(config_1.BOOSTED_FEES_CONCENTRATED_ADDRESS),
21
- 5 /* ExtensionType.BoostedFeesConcentrated */,
22
- ],
23
- ]);
24
- function extensionType(extension) {
25
- const known = KNOWN_EXTENSION_TYPES.get(extension);
26
- if (typeof known !== 'undefined') {
27
- return known;
28
- }
29
- // Call points are encoded in the first byte of the extension address.
30
- const hasNoSwapCallPoints = (extension & 0x6000000000000000000000000000000000000000n) === 0n;
31
- if (hasNoSwapCallPoints) {
32
- return 1 /* ExtensionType.NoSwapCallPoints */;
33
- }
34
- return 0 /* ExtensionType.Unknown */;
35
- }
36
- //# sourceMappingURL=extension-type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-type.js","sourceRoot":"","sources":["../../../src/dex/ekubo-v3/extension-type.ts"],"names":[],"mappings":";;;AA0BA,sCAcC;AAxCD,qCAKkB;AAElB,IAAkB,aAOjB;AAPD,WAAkB,aAAa;IAC7B,uDAAO,CAAA;IACP,yEAAgB,CAAA;IAChB,qDAAM,CAAA;IACN,mDAAK,CAAA;IACL,6DAAU,CAAA;IACV,uFAAuB,CAAA;AACzB,CAAC,EAPiB,aAAa,6BAAb,aAAa,QAO9B;AAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAwB;IAC3D,CAAC,MAAM,CAAC,uBAAc,CAAC,+BAAuB;IAC9C,CAAC,MAAM,CAAC,sBAAa,CAAC,8BAAsB;IAC5C,CAAC,MAAM,CAAC,4BAAmB,CAAC,mCAA2B;IACvD;QACE,MAAM,CAAC,0CAAiC,CAAC;;KAE1C;CACF,CAAC,CAAC;AAEH,SAAgB,aAAa,CAAC,SAAiB;IAC7C,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sEAAsE;IACtE,MAAM,mBAAmB,GACvB,CAAC,SAAS,GAAG,2CAA2C,CAAC,KAAK,EAAE,CAAC;IACnE,IAAI,mBAAmB,EAAE,CAAC;QACxB,8CAAsC;IACxC,CAAC;IAED,qCAA6B;AAC/B,CAAC"}
@@ -1,39 +0,0 @@
1
- import { Logger } from 'log4js';
2
- import { Result } from '@ethersproject/abi';
3
- import { DeepReadonly } from 'ts-essentials';
4
- import { IDexHelper } from '../../../dex-helper/idex-helper';
5
- import { BasicQuoteData, BoostedFeesQuoteData, EkuboContracts, PoolInitializationState } from '../types';
6
- import { ConcentratedPoolBase, ConcentratedPoolState } from './concentrated';
7
- import { Quote } from './pool';
8
- import { ConcentratedPoolTypeConfig, PoolKey, SwappedEvent } from './utils';
9
- import { TimedPoolState } from './timed';
10
- import { EkuboSupportedNetwork } from '../config';
11
- export declare class BoostedFeesPool extends ConcentratedPoolBase<BoostedFeesPoolState.Object> {
12
- private readonly boostedFeesDataFetcher;
13
- private readonly chainId;
14
- constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, contracts: EkuboContracts, initBlockNumber: number, key: PoolKey<ConcentratedPoolTypeConfig>);
15
- generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<BoostedFeesPoolState.Object>>;
16
- protected _quote(amount: bigint, isToken1: boolean, state: DeepReadonly<BoostedFeesPoolState.Object>, sqrtRatioLimit?: bigint): Quote;
17
- protected handlePositionUpdated(args: Result, oldState: DeepReadonly<BoostedFeesPoolState.Object>): DeepReadonly<BoostedFeesPoolState.Object> | null;
18
- protected handleSwappedEvent(ev: SwappedEvent, oldState: DeepReadonly<BoostedFeesPoolState.Object>): DeepReadonly<BoostedFeesPoolState.Object> | null;
19
- }
20
- export declare function quoteBoostedFees(key: PoolKey<ConcentratedPoolTypeConfig>, amount: bigint, isToken1: boolean, state: DeepReadonly<BoostedFeesPoolState.Object>, sqrtRatioLimit?: bigint, overrideTime?: bigint, chainId?: EkuboSupportedNetwork): Quote<Pick<ConcentratedPoolState.Object, 'activeTickIndex' | 'sqrtRatio' | 'liquidity'> & {
21
- timedPoolState: TimedPoolState.Object;
22
- }>;
23
- export declare namespace BoostedFeesPoolState {
24
- type DonateRateDelta = TimedPoolState.TimeRateDelta;
25
- interface Object extends ConcentratedPoolState.Object {
26
- timedPoolState: TimedPoolState.Object;
27
- }
28
- function fromPoolInitialization(state: PoolInitializationState): DeepReadonly<Object>;
29
- function fromQuoter(quoteData: BasicQuoteData, boostedData: BoostedFeesQuoteData): DeepReadonly<Object>;
30
- function fromSwappedEvent(oldState: DeepReadonly<Object>, ev: SwappedEvent): Object;
31
- function fromPositionUpdatedEvent(oldState: DeepReadonly<Object>, ticks: [number, number], liquidityDelta: bigint): Object | null;
32
- function fromFeesDonatedEvent(oldState: DeepReadonly<Object>, ev: FeesDonatedEvent, blockTimestamp: bigint): Object;
33
- function fromPoolBoostedEvent(oldState: DeepReadonly<Object>, [startTime, endTime]: [bigint, bigint], [rate0, rate1]: [bigint, bigint]): Object | null;
34
- }
35
- interface FeesDonatedEvent {
36
- donateRate0: bigint;
37
- donateRate1: bigint;
38
- }
39
- export {};