@paraswap/dex-lib 4.7.25-uni-v2-rpc-optimisation.0 → 4.7.26-balancer-v3-block-timestamp.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/build/abi/PendleRouterStatic.json +19 -0
  2. package/build/abi/{MStableAsset.json → apex-defi/ApexDefiFactory.abi.json} +992 -788
  3. package/build/abi/{BProtocol.json → apex-defi/ApexDefiRouter.abi.json} +539 -574
  4. package/build/abi/apex-defi/ApexDefiToken.abi.json +229 -0
  5. package/build/abi/apex-defi/ApexDefiWrapper.abi.json +92 -0
  6. package/build/abi/{OneInchLp.json → apex-defi/ApexDefiWrapperFactory.abi.json} +577 -774
  7. package/build/abi/ekubo-v3/core.json +797 -0
  8. package/build/abi/ekubo-v3/mev-capture-router.json +936 -0
  9. package/build/abi/ekubo-v3/quote-data-fetcher.json +161 -0
  10. package/build/abi/ekubo-v3/twamm-data-fetcher.json +216 -0
  11. package/build/abi/ekubo-v3/twamm.json +613 -0
  12. package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +796 -0
  13. package/build/abi/pendle/pendle-deployer.abi.json +520 -0
  14. package/build/abi/pendle/pendle-oracle.abi.json +413 -0
  15. package/build/abi/ring-v2/few-wrapped-token.json +587 -0
  16. package/build/abi/ring-v2/ring-v2-factory.json +125 -0
  17. package/build/abi/ring-v2/ring-v2-pool.json +461 -0
  18. package/build/abi/ring-v2/ring-v2-router.json +332 -0
  19. package/build/abi/stabull/stabull-curve.json +738 -0
  20. package/build/abi/stabull/stabull-router.json +76 -0
  21. package/build/abi/uniswap-v4/hooks/SpotDynamicFeeManager.json +26 -0
  22. package/build/abi/uniswap-v4/hooks/SpotHook.json +54 -0
  23. package/build/abi/uniswap-v4/hooks/SpotPolicyManager.json +45 -0
  24. package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +682 -0
  25. package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +1335 -0
  26. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.d.ts +29 -0
  27. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js +153 -0
  28. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js.map +1 -0
  29. package/build/dex/{usual-bond/usual-bond.d.ts → aave-pt-to-underlying/aave-pt-to-underlying.d.ts} +23 -18
  30. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js +323 -0
  31. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js.map +1 -0
  32. package/build/dex/aave-pt-to-underlying/config.d.ts +3 -0
  33. package/build/dex/aave-pt-to-underlying/config.js +24 -0
  34. package/build/dex/aave-pt-to-underlying/config.js.map +1 -0
  35. package/build/dex/aave-pt-to-underlying/constants.d.ts +2 -0
  36. package/build/dex/aave-pt-to-underlying/constants.js +6 -0
  37. package/build/dex/aave-pt-to-underlying/constants.js.map +1 -0
  38. package/build/dex/aave-pt-to-underlying/types.d.ts +24 -0
  39. package/build/dex/aave-pt-to-underlying/types.js.map +1 -0
  40. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.d.ts +39 -0
  41. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js +244 -0
  42. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js.map +1 -0
  43. package/build/dex/aave-pt-to-usdc/config.d.ts +3 -0
  44. package/build/dex/aave-pt-to-usdc/config.js +47 -0
  45. package/build/dex/aave-pt-to-usdc/config.js.map +1 -0
  46. package/build/dex/aave-pt-to-usdc/constants.d.ts +2 -0
  47. package/build/dex/aave-pt-to-usdc/constants.js +6 -0
  48. package/build/dex/aave-pt-to-usdc/constants.js.map +1 -0
  49. package/build/dex/aave-pt-to-usdc/types.d.ts +22 -0
  50. package/build/dex/aave-pt-to-usdc/types.js.map +1 -0
  51. package/build/dex/apex-defi/apex-defi-factory.d.ts +26 -0
  52. package/build/dex/apex-defi/apex-defi-factory.js +53 -0
  53. package/build/dex/apex-defi/apex-defi-factory.js.map +1 -0
  54. package/build/dex/apex-defi/apex-defi-pool.d.ts +55 -0
  55. package/build/dex/apex-defi/apex-defi-pool.js +247 -0
  56. package/build/dex/apex-defi/apex-defi-pool.js.map +1 -0
  57. package/build/dex/apex-defi/apex-defi-wrapper-factory.d.ts +57 -0
  58. package/build/dex/apex-defi/apex-defi-wrapper-factory.js +250 -0
  59. package/build/dex/apex-defi/apex-defi-wrapper-factory.js.map +1 -0
  60. package/build/dex/apex-defi/apex-defi.d.ts +97 -0
  61. package/build/dex/apex-defi/apex-defi.js +1021 -0
  62. package/build/dex/apex-defi/apex-defi.js.map +1 -0
  63. package/build/dex/apex-defi/config.d.ts +4 -0
  64. package/build/dex/apex-defi/config.js +138 -0
  65. package/build/dex/apex-defi/config.js.map +1 -0
  66. package/build/dex/apex-defi/types.d.ts +32 -0
  67. package/build/dex/apex-defi/types.js +3 -0
  68. package/build/dex/{usual-bond → apex-defi}/types.js.map +1 -1
  69. package/build/dex/apex-defi/utils.d.ts +46 -0
  70. package/build/dex/apex-defi/utils.js +133 -0
  71. package/build/dex/apex-defi/utils.js.map +1 -0
  72. package/build/dex/balancer-v3/balancer-v3-pool.js +2 -3
  73. package/build/dex/balancer-v3/balancer-v3-pool.js.map +1 -1
  74. package/build/dex/balancer-v3/balancer-v3.d.ts +0 -1
  75. package/build/dex/balancer-v3/balancer-v3.js +13 -13
  76. package/build/dex/balancer-v3/balancer-v3.js.map +1 -1
  77. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js +1 -1
  78. package/build/dex/balancer-v3/hooks/balancer-hook-event-subscriber.js.map +1 -1
  79. package/build/dex/ekubo-v3/config.d.ts +13 -0
  80. package/build/dex/ekubo-v3/config.js +23 -0
  81. package/build/dex/ekubo-v3/config.js.map +1 -0
  82. package/build/dex/ekubo-v3/ekubo-v3-pool-manager.d.ts +34 -0
  83. package/build/dex/ekubo-v3/ekubo-v3-pool-manager.js +421 -0
  84. package/build/dex/ekubo-v3/ekubo-v3-pool-manager.js.map +1 -0
  85. package/build/dex/ekubo-v3/ekubo-v3.d.ts +38 -0
  86. package/build/dex/ekubo-v3/ekubo-v3.js +274 -0
  87. package/build/dex/ekubo-v3/ekubo-v3.js.map +1 -0
  88. package/build/dex/ekubo-v3/pools/base.d.ts +42 -0
  89. package/build/dex/ekubo-v3/pools/base.js +307 -0
  90. package/build/dex/ekubo-v3/pools/base.js.map +1 -0
  91. package/build/dex/ekubo-v3/pools/full-range.d.ts +25 -0
  92. package/build/dex/ekubo-v3/pools/full-range.js +105 -0
  93. package/build/dex/ekubo-v3/pools/full-range.js.map +1 -0
  94. package/build/dex/ekubo-v3/pools/math/constants.d.ts +12 -0
  95. package/build/dex/ekubo-v3/pools/math/constants.js +16 -0
  96. package/build/dex/ekubo-v3/pools/math/constants.js.map +1 -0
  97. package/build/dex/ekubo-v3/pools/math/delta.d.ts +2 -0
  98. package/build/dex/ekubo-v3/pools/math/delta.js +51 -0
  99. package/build/dex/ekubo-v3/pools/math/delta.js.map +1 -0
  100. package/build/dex/ekubo-v3/pools/math/sqrt-ratio.d.ts +8 -0
  101. package/build/dex/ekubo-v3/pools/math/sqrt-ratio.js +113 -0
  102. package/build/dex/ekubo-v3/pools/math/sqrt-ratio.js.map +1 -0
  103. package/build/dex/ekubo-v3/pools/math/swap.d.ts +18 -0
  104. package/build/dex/ekubo-v3/pools/math/swap.js +128 -0
  105. package/build/dex/ekubo-v3/pools/math/swap.js.map +1 -0
  106. package/build/dex/ekubo-v3/pools/math/tick.d.ts +8 -0
  107. package/build/dex/ekubo-v3/pools/math/tick.js +129 -0
  108. package/build/dex/ekubo-v3/pools/math/tick.js.map +1 -0
  109. package/build/dex/ekubo-v3/pools/math/twamm/exp2.d.ts +1 -0
  110. package/build/dex/ekubo-v3/pools/math/twamm/exp2.js +86 -0
  111. package/build/dex/ekubo-v3/pools/math/twamm/exp2.js.map +1 -0
  112. package/build/dex/ekubo-v3/pools/math/twamm/sqrt-ratio.d.ts +1 -0
  113. package/build/dex/ekubo-v3/pools/math/twamm/sqrt-ratio.js +56 -0
  114. package/build/dex/ekubo-v3/pools/math/twamm/sqrt-ratio.js.map +1 -0
  115. package/build/dex/ekubo-v3/pools/mev-capture.d.ts +8 -0
  116. package/build/dex/ekubo-v3/pools/mev-capture.js +42 -0
  117. package/build/dex/ekubo-v3/pools/mev-capture.js.map +1 -0
  118. package/build/dex/ekubo-v3/pools/oracle.d.ts +8 -0
  119. package/build/dex/ekubo-v3/pools/oracle.js +18 -0
  120. package/build/dex/ekubo-v3/pools/oracle.js.map +1 -0
  121. package/build/dex/ekubo-v3/pools/pool.d.ts +56 -0
  122. package/build/dex/ekubo-v3/pools/pool.js +88 -0
  123. package/build/dex/ekubo-v3/pools/pool.js.map +1 -0
  124. package/build/dex/ekubo-v3/pools/stableswap.d.ts +22 -0
  125. package/build/dex/ekubo-v3/pools/stableswap.js +123 -0
  126. package/build/dex/ekubo-v3/pools/stableswap.js.map +1 -0
  127. package/build/dex/ekubo-v3/pools/twamm.d.ts +40 -0
  128. package/build/dex/ekubo-v3/pools/twamm.js +265 -0
  129. package/build/dex/ekubo-v3/pools/twamm.js.map +1 -0
  130. package/build/dex/ekubo-v3/pools/utils.d.ts +62 -0
  131. package/build/dex/ekubo-v3/pools/utils.js +160 -0
  132. package/build/dex/ekubo-v3/pools/utils.js.map +1 -0
  133. package/build/dex/ekubo-v3/types.d.ts +58 -0
  134. package/build/dex/ekubo-v3/types.js +3 -0
  135. package/build/dex/ekubo-v3/types.js.map +1 -0
  136. package/build/dex/ekubo-v3/utils.d.ts +10 -0
  137. package/build/dex/ekubo-v3/utils.js +54 -0
  138. package/build/dex/ekubo-v3/utils.js.map +1 -0
  139. package/build/dex/index.js +0 -14
  140. package/build/dex/index.js.map +1 -1
  141. package/build/dex/infusion/infusion-stable-pool.d.ts +1 -1
  142. package/build/dex/infusion/infusion-stable-pool.js +1 -1
  143. package/build/dex/infusion/infusion-stable-pool.js.map +1 -1
  144. package/build/dex/infusion/infusion.d.ts +3 -3
  145. package/build/dex/infusion/infusion.js +65 -104
  146. package/build/dex/infusion/infusion.js.map +1 -1
  147. package/build/dex/maker-psm/maker-psm-event-pool.d.ts +43 -0
  148. package/build/dex/maker-psm/maker-psm-event-pool.js +132 -0
  149. package/build/dex/maker-psm/maker-psm-event-pool.js.map +1 -0
  150. package/build/dex/miro-migrator/miro-migrator-state.d.ts +27 -0
  151. package/build/dex/miro-migrator/miro-migrator-state.js +89 -0
  152. package/build/dex/miro-migrator/miro-migrator-state.js.map +1 -0
  153. package/build/dex/solidly/config.js +4 -64
  154. package/build/dex/solidly/config.js.map +1 -1
  155. package/build/dex/solidly/forks-override/aerodrome.d.ts +1 -1
  156. package/build/dex/solidly/forks-override/aerodrome.js +18 -14
  157. package/build/dex/solidly/forks-override/aerodrome.js.map +1 -1
  158. package/build/dex/solidly/solidly.d.ts +1 -0
  159. package/build/dex/solidly/solidly.js +9 -6
  160. package/build/dex/solidly/solidly.js.map +1 -1
  161. package/build/dex/{usual-bond → stabull}/config.d.ts +1 -1
  162. package/build/dex/stabull/config.js +177 -0
  163. package/build/dex/stabull/config.js.map +1 -0
  164. package/build/dex/{se-vlr/se-vlr-pool.d.ts → stabull/stabull-pool.d.ts} +13 -6
  165. package/build/dex/stabull/stabull-pool.js +113 -0
  166. package/build/dex/stabull/stabull-pool.js.map +1 -0
  167. package/build/dex/stabull/stabull.d.ts +55 -0
  168. package/build/dex/stabull/stabull.js +286 -0
  169. package/build/dex/stabull/stabull.js.map +1 -0
  170. package/build/dex/stabull/types.d.ts +21 -0
  171. package/build/dex/stabull/types.js +3 -0
  172. package/build/dex/stabull/types.js.map +1 -0
  173. package/build/dex/uniswap-v2/config.js +0 -231
  174. package/build/dex/uniswap-v2/config.js.map +1 -1
  175. package/build/dex/uniswap-v2/constants.js +1 -12
  176. package/build/dex/uniswap-v2/constants.js.map +1 -1
  177. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +4 -0
  178. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +56 -0
  179. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +1 -0
  180. package/build/dex/uniswap-v4/contract-math/Position.d.ts +6 -0
  181. package/build/dex/uniswap-v4/contract-math/Position.js +29 -0
  182. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -1
  183. package/build/dex/uniswap-v4/hooks/arena.d.ts +6 -0
  184. package/build/dex/uniswap-v4/hooks/arena.js +10 -0
  185. package/build/dex/uniswap-v4/hooks/arena.js.map +1 -0
  186. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.d.ts +0 -0
  187. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js +2 -0
  188. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js.map +1 -0
  189. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +7 -0
  190. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +28 -0
  191. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +1 -0
  192. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
  193. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +2 -0
  194. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +1 -0
  195. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +7 -0
  196. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +28 -0
  197. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +1 -0
  198. package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
  199. package/build/dex/uniswap-v4/hooks/fee-hook/types.js +2 -0
  200. package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +1 -0
  201. package/build/dex/uniswap-v4/hooks/index.d.ts +1 -0
  202. package/build/dex/uniswap-v4/hooks/index.js +18 -0
  203. package/build/dex/uniswap-v4/hooks/index.js.map +1 -0
  204. package/build/dex/uniswap-v4/hooks/spot.d.ts +15 -0
  205. package/build/dex/uniswap-v4/hooks/spot.js +109 -0
  206. package/build/dex/uniswap-v4/hooks/spot.js.map +1 -0
  207. package/build/dex/uniswap-v4/hooks/template.d.ts +150 -0
  208. package/build/dex/uniswap-v4/hooks/template.js +104 -0
  209. package/build/dex/uniswap-v4/hooks/template.js.map +1 -0
  210. package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +26 -0
  211. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +75 -0
  212. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +1 -0
  213. package/build/dex/usual/usual-usdc-usdc.d.ts +17 -0
  214. package/build/dex/usual/usual-usdc-usdc.js +59 -0
  215. package/build/dex/usual/usual-usdc-usdc.js.map +1 -0
  216. package/build/dex/{se-vlr → yo}/config.d.ts +1 -1
  217. package/build/dex/yo/config.js +21 -0
  218. package/build/dex/yo/config.js.map +1 -0
  219. package/build/dex/yo/types.d.ts +13 -0
  220. package/build/dex/yo/types.js +3 -0
  221. package/build/dex/{se-vlr → yo}/types.js.map +1 -1
  222. package/build/dex/yo/yo-pool.d.ts +13 -0
  223. package/build/dex/yo/yo-pool.js +26 -0
  224. package/build/dex/yo/yo-pool.js.map +1 -0
  225. package/build/dex/yo/yo.d.ts +39 -0
  226. package/build/dex/yo/yo.js +248 -0
  227. package/build/dex/yo/yo.js.map +1 -0
  228. package/build/implementations/api-paraswap-sdk.d.ts +25 -0
  229. package/build/implementations/api-paraswap-sdk.js +102 -0
  230. package/build/implementations/api-paraswap-sdk.js.map +1 -0
  231. package/package.json +1 -1
  232. package/build/abi/Jarvis.json +0 -1172
  233. package/build/abi/Onebit.json +0 -736
  234. package/build/abi/Shell.json +0 -1294
  235. package/build/abi/TraderJoeV2Router.json +0 -50
  236. package/build/abi/wUSDM.json +0 -757
  237. package/build/abi/zrx.v2.json +0 -1967
  238. package/build/abi/zrx.v3.json +0 -3454
  239. package/build/abi/zrx.v4.json +0 -2193
  240. package/build/dex/OneInchLp.d.ts +0 -24
  241. package/build/dex/OneInchLp.js +0 -43
  242. package/build/dex/OneInchLp.js.map +0 -1
  243. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  244. package/build/dex/bProtocol/bProtocol.js +0 -56
  245. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  246. package/build/dex/bProtocol/types.d.ts +0 -11
  247. package/build/dex/bProtocol/types.js +0 -8
  248. package/build/dex/bProtocol/types.js.map +0 -1
  249. package/build/dex/jarvis.d.ts +0 -56
  250. package/build/dex/jarvis.js +0 -163
  251. package/build/dex/jarvis.js.map +0 -1
  252. package/build/dex/mStable.d.ts +0 -44
  253. package/build/dex/mStable.js +0 -75
  254. package/build/dex/mStable.js.map +0 -1
  255. package/build/dex/onebit/onebit.d.ts +0 -16
  256. package/build/dex/onebit/onebit.js +0 -61
  257. package/build/dex/onebit/onebit.js.map +0 -1
  258. package/build/dex/onebit/types.d.ts +0 -14
  259. package/build/dex/onebit/types.js +0 -8
  260. package/build/dex/onebit/types.js.map +0 -1
  261. package/build/dex/se-vlr/config.js +0 -24
  262. package/build/dex/se-vlr/config.js.map +0 -1
  263. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  264. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  265. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  266. package/build/dex/se-vlr/se-vlr.js +0 -131
  267. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  268. package/build/dex/se-vlr/types.d.ts +0 -6
  269. package/build/dex/shell.d.ts +0 -25
  270. package/build/dex/shell.js +0 -41
  271. package/build/dex/shell.js.map +0 -1
  272. package/build/dex/trader-joe-v2.d.ts +0 -40
  273. package/build/dex/trader-joe-v2.js +0 -74
  274. package/build/dex/trader-joe-v2.js.map +0 -1
  275. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  276. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  277. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  278. package/build/dex/usual-bond/config.js +0 -13
  279. package/build/dex/usual-bond/config.js.map +0 -1
  280. package/build/dex/usual-bond/types.d.ts +0 -7
  281. package/build/dex/usual-bond/usual-bond.js +0 -176
  282. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  283. package/build/dex/wusdm/config.d.ts +0 -3
  284. package/build/dex/wusdm/config.js +0 -43
  285. package/build/dex/wusdm/config.js.map +0 -1
  286. package/build/dex/wusdm/constants.d.ts +0 -2
  287. package/build/dex/wusdm/constants.js +0 -6
  288. package/build/dex/wusdm/constants.js.map +0 -1
  289. package/build/dex/wusdm/types.d.ts +0 -18
  290. package/build/dex/wusdm/types.js +0 -11
  291. package/build/dex/wusdm/types.js.map +0 -1
  292. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  293. package/build/dex/wusdm/wusdm-pool.js +0 -74
  294. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  295. package/build/dex/wusdm/wusdm.d.ts +0 -46
  296. package/build/dex/wusdm/wusdm.js +0 -243
  297. package/build/dex/wusdm/wusdm.js.map +0 -1
  298. package/build/dex/zerox/config.d.ts +0 -2
  299. package/build/dex/zerox/config.js +0 -33
  300. package/build/dex/zerox/config.js.map +0 -1
  301. package/build/dex/zerox/index.d.ts +0 -22
  302. package/build/dex/zerox/index.js +0 -225
  303. package/build/dex/zerox/index.js.map +0 -1
  304. package/build/dex/zerox/order.d.ts +0 -88
  305. package/build/dex/zerox/order.js +0 -53
  306. package/build/dex/zerox/order.js.map +0 -1
  307. package/build/dex/zerox/types.d.ts +0 -73
  308. package/build/dex/zerox/types.js +0 -21
  309. package/build/dex/zerox/types.js.map +0 -1
  310. /package/build/dex/{se-vlr → aave-pt-to-underlying}/types.js +0 -0
  311. /package/build/dex/{usual-bond → aave-pt-to-usdc}/types.js +0 -0
@@ -0,0 +1,24 @@
1
+ import { Address } from '../../types';
2
+ export type AavePtToUnderlyingData = {
3
+ marketAddress: Address;
4
+ };
5
+ export interface SupportedPt {
6
+ ptAddress: string;
7
+ ptDecimals: number;
8
+ expiry: number;
9
+ marketAddress: string;
10
+ underlyingAddress: string;
11
+ }
12
+ export interface DexParams {
13
+ pendleRouterAddress: string;
14
+ routerStaticAddress: string;
15
+ oracleAddress: string;
16
+ underlyingAddresses: Record<string, Address>;
17
+ }
18
+ export interface Market {
19
+ name: string;
20
+ address: string;
21
+ expiry: string;
22
+ pt: Address;
23
+ underlyingAsset: Address;
24
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-underlying/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import { Token, Address, ExchangePrices, AdapterExchangeParam, PoolLiquidity, Logger, NumberAsString } from '../../types';
2
+ import { SwapSide, Network } from '../../constants';
3
+ import { Context, IDex } from '../../dex/idex';
4
+ import { IDexHelper } from '../../dex-helper/idex-helper';
5
+ import { AavePtToUsdcData } from './types';
6
+ import { SimpleExchange } from '../simple-exchange';
7
+ import { DexExchangeParam } from '../../types';
8
+ export declare class AavePtToUsdc extends SimpleExchange implements IDex<AavePtToUsdcData> {
9
+ readonly network: Network;
10
+ readonly dexKey: string;
11
+ readonly dexHelper: IDexHelper;
12
+ readonly hasConstantPriceLargeAmounts = false;
13
+ readonly needWrapNative = false;
14
+ readonly isFeeOnTransferSupported = false;
15
+ private config;
16
+ private oracleInterface;
17
+ private readonly supportedMarkets;
18
+ logger: Logger;
19
+ static dexKeysWithNetwork: {
20
+ key: string;
21
+ networks: Network[];
22
+ }[];
23
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
24
+ getAdapters(): {
25
+ name: string;
26
+ index: number;
27
+ }[] | null;
28
+ getPoolIdentifier(marketAddress: string): string;
29
+ getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
30
+ private getMarketByPtToken;
31
+ private getOracleRate;
32
+ private calculatePriceFromOracle;
33
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<ExchangePrices<AavePtToUsdcData> | null>;
34
+ getCalldataGasCost(): number | number[];
35
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: AavePtToUsdcData, side: SwapSide): AdapterExchangeParam;
36
+ getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
37
+ getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: AavePtToUsdcData, side: SwapSide, context: Context, executorAddress: Address): Promise<DexExchangeParam>;
38
+ private callPendleSdkApi;
39
+ }
@@ -0,0 +1,244 @@
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.AavePtToUsdc = void 0;
40
+ const constants_1 = require("../../constants");
41
+ const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
42
+ const utils_1 = require("../../utils");
43
+ const simple_exchange_1 = require("../simple-exchange");
44
+ const config_1 = require("./config");
45
+ const abi_1 = require("@ethersproject/abi");
46
+ const PendleOracle_json_1 = __importDefault(require("../../abi/PendleOracle.json"));
47
+ const constants_2 = require("./constants");
48
+ class AavePtToUsdc extends simple_exchange_1.SimpleExchange {
49
+ network;
50
+ dexKey;
51
+ dexHelper;
52
+ hasConstantPriceLargeAmounts = false;
53
+ needWrapNative = false;
54
+ isFeeOnTransferSupported = false;
55
+ config;
56
+ oracleInterface;
57
+ supportedMarkets;
58
+ logger;
59
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.AavePtToUsdcConfig);
60
+ constructor(network, dexKey, dexHelper) {
61
+ super(dexHelper, dexKey);
62
+ this.network = network;
63
+ this.dexKey = dexKey;
64
+ this.dexHelper = dexHelper;
65
+ this.config = config_1.AavePtToUsdcConfig[dexKey][network];
66
+ this.logger = dexHelper.getLogger(dexKey);
67
+ this.oracleInterface = new abi_1.Interface(PendleOracle_json_1.default);
68
+ this.supportedMarkets = this.config.supportedPts;
69
+ }
70
+ getAdapters() {
71
+ return null;
72
+ }
73
+ getPoolIdentifier(marketAddress) {
74
+ return `${this.dexKey}_${marketAddress.toLowerCase()}`;
75
+ }
76
+ async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
77
+ const market = this.getMarketByPtToken(srcToken.address);
78
+ if (!market) {
79
+ return [];
80
+ }
81
+ // Only support PT -> underlying swaps
82
+ if (destToken.address.toLowerCase() !==
83
+ market.underlyingRawAddress.toLowerCase()) {
84
+ return [];
85
+ }
86
+ return [this.getPoolIdentifier(market.marketAddress)];
87
+ }
88
+ getMarketByPtToken(ptToken) {
89
+ return this.supportedMarkets.find(m => m.pt.address.toLowerCase() === ptToken.toLowerCase());
90
+ }
91
+ async getOracleRate(market) {
92
+ try {
93
+ const callData = this.oracleInterface.encodeFunctionData('getPtToAssetRate', [market.marketAddress, 0]);
94
+ const rate = await this.dexHelper.provider.call({
95
+ to: this.config.oracleAddress,
96
+ data: callData,
97
+ });
98
+ return BigInt(rate);
99
+ }
100
+ catch (error) {
101
+ this.logger.error(`Failed to fetch oracle rate: ${error}`);
102
+ return 0n;
103
+ }
104
+ }
105
+ async calculatePriceFromOracle(market, amounts, side) {
106
+ const rate = await this.getOracleRate(market);
107
+ if (rate === 0n)
108
+ return [];
109
+ if (side === constants_1.SwapSide.SELL) {
110
+ return amounts.map(amount => (amount * rate) / 10n ** 18n);
111
+ }
112
+ else {
113
+ return amounts.map(amount => (amount * 10n ** 18n + (rate - 1n)) / rate);
114
+ }
115
+ }
116
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
117
+ const market = this.getMarketByPtToken(srcToken.address);
118
+ if (!market) {
119
+ return null;
120
+ }
121
+ const { underlyingRawAddress, marketAddress } = market;
122
+ const isUnderlying = destToken.address.toLowerCase() === underlyingRawAddress.toLowerCase();
123
+ if (!isUnderlying) {
124
+ return null;
125
+ }
126
+ if (limitPools && limitPools.length > 0) {
127
+ const poolId = this.getPoolIdentifier(marketAddress);
128
+ if (!limitPools.includes(poolId)) {
129
+ return null;
130
+ }
131
+ }
132
+ const unit = (0, utils_1.getBigIntPow)(side === constants_1.SwapSide.SELL ? srcToken.decimals : destToken.decimals);
133
+ const _amounts = [unit, ...amounts.slice(1)];
134
+ const prices = await this.calculatePriceFromOracle(market, _amounts, side);
135
+ if (prices.length === 0)
136
+ return null;
137
+ return [
138
+ {
139
+ exchange: this.dexKey,
140
+ prices: [0n, ...prices.slice(1)],
141
+ unit: prices[0],
142
+ gasCost: constants_2.AAVE_PT_TO_UNDERLYING_GAS_COST,
143
+ data: {
144
+ marketAddress,
145
+ },
146
+ poolIdentifiers: [this.getPoolIdentifier(marketAddress)],
147
+ poolAddresses: [marketAddress],
148
+ },
149
+ ];
150
+ }
151
+ getCalldataGasCost() {
152
+ return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
153
+ }
154
+ getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
155
+ const payload = '0x';
156
+ return {
157
+ targetExchange: this.config.pendleRouterAddress,
158
+ payload,
159
+ networkFee: '0',
160
+ };
161
+ }
162
+ async getTopPoolsForToken(tokenAddress, limit) {
163
+ const market = this.getMarketByPtToken(tokenAddress);
164
+ if (market) {
165
+ return [
166
+ {
167
+ exchange: this.dexKey,
168
+ address: market.marketAddress,
169
+ connectorTokens: [
170
+ {
171
+ address: market.underlyingAssetAddress,
172
+ decimals: 18,
173
+ liquidityUSD: constants_1.NO_USD_LIQUIDITY,
174
+ },
175
+ ],
176
+ liquidityUSD: constants_1.UNLIMITED_USD_LIQUIDITY,
177
+ },
178
+ ];
179
+ }
180
+ return [];
181
+ }
182
+ async getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, context, executorAddress) {
183
+ const apiParams = {
184
+ receiver: recipient,
185
+ slippage: 0,
186
+ ptAmount: srcAmount,
187
+ ytAmount: '0',
188
+ lpAmount: '0',
189
+ tokenOut: destToken,
190
+ enableAggregator: false,
191
+ };
192
+ const swapResp = await this.callPendleSdkApi(data.marketAddress, apiParams);
193
+ if (!swapResp.success || !swapResp.tx) {
194
+ const errorMsg = `Pendle SDK exit-positions endpoint failed: ${swapResp.error || 'No transaction data returned'}`;
195
+ this.logger.error(errorMsg);
196
+ throw new Error(errorMsg);
197
+ }
198
+ const tx = swapResp.tx;
199
+ // Validate transaction data
200
+ if (!tx.to || !tx.data) {
201
+ const errorMsg = 'Invalid transaction data returned from Pendle SDK API';
202
+ this.logger.error(`${errorMsg}: to=${tx.to}, hasData=${!!tx.data}`);
203
+ throw new Error(errorMsg);
204
+ }
205
+ const result = {
206
+ targetExchange: tx.to,
207
+ exchangeData: tx.data,
208
+ needWrapNative: false,
209
+ dexFuncHasRecipient: true,
210
+ returnAmountPos: 0,
211
+ };
212
+ return result;
213
+ }
214
+ async callPendleSdkApi(marketAddress, params) {
215
+ const url = new URL(`${constants_2.PENDLE_API_URL}/v2/sdk/${this.network}/markets/${marketAddress}/exit-positions`);
216
+ Object.keys(params).forEach(key => {
217
+ if (params[key] !== undefined && params[key] !== null) {
218
+ url.searchParams.append(key, params[key].toString());
219
+ }
220
+ });
221
+ try {
222
+ const response = await this.dexHelper.httpRequest.get(url.toString(), 30000, {
223
+ Accept: 'application/json',
224
+ });
225
+ const responseData = response;
226
+ const result = {
227
+ success: true,
228
+ data: responseData.data || responseData,
229
+ tx: responseData.tx || responseData.data?.tx,
230
+ };
231
+ return result;
232
+ }
233
+ catch (error) {
234
+ this.logger.error(`Pendle SDK API call failed: ${error}`);
235
+ return {
236
+ success: false,
237
+ error: error instanceof Error ? error.message : String(error),
238
+ tx: null,
239
+ };
240
+ }
241
+ }
242
+ }
243
+ exports.AavePtToUsdc = AavePtToUsdc;
244
+ //# sourceMappingURL=aave-pt-to-usdc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aave-pt-to-usdc.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-usdc/aave-pt-to-usdc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { DexParams } from './types';
2
+ import { DexConfigMap } from '../../types';
3
+ export declare const AavePtToUsdcConfig: DexConfigMap<DexParams>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AavePtToUsdcConfig = void 0;
4
+ const constants_1 = require("../../constants");
5
+ // Pendle V4 Router https://etherscan.io/address/0x888888888889758f76e7103c6cbf23abbf58f946#code
6
+ const PENDLE_ROUTER_ADDRESS = '0x888888888889758f76e7103c6cbf23abbf58f946';
7
+ // Pendle Oracle https://etherscan.io/address/0x9a9Fa8338dd5E5B2188006f1Cd2Ef26d921650C2
8
+ const ORACLE_ADDRESS = '0x9a9Fa8338dd5E5B2188006f1Cd2Ef26d921650C2';
9
+ // PT sUSDe 25 Sep 2025: https://etherscan.io/address/0x9f56094c450763769ba0ea9fe2876070c0fd5f77
10
+ // PT USDe 25 Sep 2025: https://etherscan.io/address/0xbc6736d346a5ebc0debc997397912cd9b8fae10a
11
+ // sUSDe: https://etherscan.io/address/0x9d39a5de30e57443bff2a8307a4256c8797a3497
12
+ // USDe: https://etherscan.io/address/0x4c9edd5852cd905f086c759e8383e09bff1e68b3
13
+ exports.AavePtToUsdcConfig = {
14
+ AavePtToUsdc: {
15
+ [constants_1.Network.MAINNET]: {
16
+ pendleRouterAddress: PENDLE_ROUTER_ADDRESS,
17
+ oracleAddress: ORACLE_ADDRESS,
18
+ supportedPts: [
19
+ {
20
+ pt: {
21
+ address: '0x9f56094c450763769ba0ea9fe2876070c0fd5f77',
22
+ decimals: 18,
23
+ name: 'PT-sUSDe-25SEP2025',
24
+ expiry: 1764201600,
25
+ },
26
+ marketAddress: '0xa36b60a14a1a5247912584768c6e53e1a269a9f7', // PT sUSDe 25 Sep 2025 market
27
+ exitMarketAddress: '0xa36b60a14a1a5247912584768c6e53e1a269a9f7', // Same as market for now
28
+ underlyingAssetAddress: '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497', // sUSDe
29
+ underlyingRawAddress: '0x9D39A5DE30e57443BfF2A8307A4256c8797A3497', // raw sUSDe
30
+ },
31
+ {
32
+ pt: {
33
+ address: '0xbc6736d346a5ebc0debc997397912cd9b8fae10a',
34
+ decimals: 18,
35
+ name: 'PT-USDe-25SEP2025',
36
+ expiry: 1764201600,
37
+ },
38
+ marketAddress: '0x6d98a2b6cdbf44939362a3e99793339ba2016af4', // PT USDe market
39
+ exitMarketAddress: '0x6d98a2b6cdbf44939362a3e99793339ba2016af4', // Same as market for now
40
+ underlyingAssetAddress: '0x4c9edd5852cd905f086c759e8383e09bff1e68b3', // USDe
41
+ underlyingRawAddress: '0x4c9edd5852cd905f086c759e8383e09bff1e68b3', // raw USDe
42
+ },
43
+ ],
44
+ },
45
+ },
46
+ };
47
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-usdc/config.ts"],"names":[],"mappings":";;;AAEA,+CAA0C;AAE1C,gGAAgG;AAChG,MAAM,qBAAqB,GAAG,4CAA4C,CAAC;AAC3E,wFAAwF;AACxF,MAAM,cAAc,GAAG,4CAA4C,CAAC;AAEpE,gGAAgG;AAChG,+FAA+F;AAC/F,iFAAiF;AACjF,gFAAgF;AAEnE,QAAA,kBAAkB,GAA4B;IACzD,YAAY,EAAE;QACZ,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,mBAAmB,EAAE,qBAAqB;YAC1C,aAAa,EAAE,cAAc;YAC7B,YAAY,EAAE;gBACZ;oBACE,EAAE,EAAE;wBACF,OAAO,EAAE,4CAA4C;wBACrD,QAAQ,EAAE,EAAE;wBACZ,IAAI,EAAE,oBAAoB;wBAC1B,MAAM,EAAE,UAAU;qBACnB;oBACD,aAAa,EAAE,4CAA4C,EAAE,8BAA8B;oBAC3F,iBAAiB,EAAE,4CAA4C,EAAE,yBAAyB;oBAC1F,sBAAsB,EAAE,4CAA4C,EAAE,QAAQ;oBAC9E,oBAAoB,EAAE,4CAA4C,EAAE,YAAY;iBACjF;gBACD;oBACE,EAAE,EAAE;wBACF,OAAO,EAAE,4CAA4C;wBACrD,QAAQ,EAAE,EAAE;wBACZ,IAAI,EAAE,mBAAmB;wBACzB,MAAM,EAAE,UAAU;qBACnB;oBACD,aAAa,EAAE,4CAA4C,EAAE,iBAAiB;oBAC9E,iBAAiB,EAAE,4CAA4C,EAAE,yBAAyB;oBAC1F,sBAAsB,EAAE,4CAA4C,EAAE,OAAO;oBAC7E,oBAAoB,EAAE,4CAA4C,EAAE,WAAW;iBAChF;aACF;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const PENDLE_API_URL = "https://api-v2.pendle.finance/core";
2
+ export declare const AAVE_PT_TO_UNDERLYING_GAS_COST = 200000;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AAVE_PT_TO_UNDERLYING_GAS_COST = exports.PENDLE_API_URL = void 0;
4
+ exports.PENDLE_API_URL = 'https://api-v2.pendle.finance/core';
5
+ exports.AAVE_PT_TO_UNDERLYING_GAS_COST = 200_000;
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-usdc/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,oCAAoC,CAAC;AACtD,QAAA,8BAA8B,GAAG,OAAO,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Address } from '../../types';
2
+ export type AavePtToUsdcData = {
3
+ marketAddress: Address;
4
+ };
5
+ export interface PendleToken {
6
+ address: string;
7
+ decimals: number;
8
+ name: string;
9
+ expiry: number;
10
+ }
11
+ export interface SupportedPt {
12
+ pt: PendleToken;
13
+ marketAddress: string;
14
+ exitMarketAddress: string;
15
+ underlyingAssetAddress: string;
16
+ underlyingRawAddress: string;
17
+ }
18
+ export interface DexParams {
19
+ pendleRouterAddress: string;
20
+ oracleAddress: string;
21
+ supportedPts: SupportedPt[];
22
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/aave-pt-to-usdc/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { DeepReadonly } from 'ts-essentials';
3
+ import { IDexHelper } from '../../dex-helper/idex-helper';
4
+ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
+ import { Address, Log, Logger } from '../../types';
6
+ import { LogDescription } from 'ethers/lib/utils';
7
+ export type FactoryState = Record<string, never>;
8
+ export type OnPoolCreatedCallback = ({ pairAddress, blockNumber, }: {
9
+ pairAddress: string;
10
+ blockNumber: number;
11
+ }) => Promise<void>;
12
+ export declare class ApexDefiFactory extends StatefulEventSubscriber<FactoryState> {
13
+ readonly dexHelper: IDexHelper;
14
+ protected readonly factoryAddress: Address;
15
+ protected readonly onPoolCreated: OnPoolCreatedCallback;
16
+ handlers: {
17
+ [event: string]: (event: any, log: Readonly<Log>) => Promise<void>;
18
+ };
19
+ logDecoder: (log: Log) => any;
20
+ readonly factoryIface: Interface;
21
+ constructor(dexHelper: IDexHelper, parentName: string, factoryAddress: Address, logger: Logger, onPoolCreated: OnPoolCreatedCallback);
22
+ generateState(): FactoryState;
23
+ protected processLog(_: DeepReadonly<FactoryState>, log: Readonly<Log>): Promise<FactoryState>;
24
+ handleTokenCreated(event: LogDescription, log: Readonly<Log>): Promise<void>;
25
+ releaseResources(): void;
26
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ApexDefiFactory = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const ApexDefiFactory_abi_json_1 = __importDefault(require("../../abi/apex-defi/ApexDefiFactory.abi.json"));
9
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
10
+ /*
11
+ * "Stateless" event subscriber in order to capture "PoolCreated" event on new pools created.
12
+ * State is present, but it's a placeholder to actually make the events reach handlers (if there's no previous state - `processBlockLogs` is not called)
13
+ */
14
+ class ApexDefiFactory extends stateful_event_subscriber_1.StatefulEventSubscriber {
15
+ dexHelper;
16
+ factoryAddress;
17
+ onPoolCreated;
18
+ handlers = {};
19
+ logDecoder;
20
+ factoryIface = new abi_1.Interface(ApexDefiFactory_abi_json_1.default);
21
+ constructor(dexHelper, parentName, factoryAddress, logger, onPoolCreated) {
22
+ super(parentName, `${parentName} Factory`, dexHelper, logger);
23
+ this.dexHelper = dexHelper;
24
+ this.factoryAddress = factoryAddress;
25
+ this.onPoolCreated = onPoolCreated;
26
+ this.addressesSubscribed = [factoryAddress];
27
+ this.logDecoder = (log) => this.factoryIface.parseLog(log);
28
+ this.handlers['TokenCreated'] = this.handleTokenCreated.bind(this);
29
+ }
30
+ generateState() {
31
+ return {};
32
+ }
33
+ async processLog(_, log) {
34
+ const event = this.logDecoder(log);
35
+ if (event.name in this.handlers) {
36
+ await this.handlers[event.name](event, log);
37
+ }
38
+ return {};
39
+ }
40
+ async handleTokenCreated(event, log) {
41
+ const pairAddress = event.args.ammAddress.toLowerCase();
42
+ await this.onPoolCreated({ pairAddress, blockNumber: log.blockNumber });
43
+ }
44
+ // Add this method
45
+ releaseResources() {
46
+ // Clear handlers
47
+ this.handlers = {};
48
+ // Clear addresses subscribed
49
+ this.addressesSubscribed = [];
50
+ }
51
+ }
52
+ exports.ApexDefiFactory = ApexDefiFactory;
53
+ //# sourceMappingURL=apex-defi-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apex-defi-factory.js","sourceRoot":"","sources":["../../../src/dex/apex-defi/apex-defi-factory.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAE/C,4GAA8E;AAE9E,+EAA0E;AAc1E;;;GAGG;AACH,MAAa,eAAgB,SAAQ,mDAAqC;IAU7D;IAEU;IAEA;IAbrB,QAAQ,GAEJ,EAAE,CAAC;IAEP,UAAU,CAAoB;IAEd,YAAY,GAAG,IAAI,eAAS,CAAC,kCAAkB,CAAC,CAAC;IAEjE,YACW,SAAqB,EAC9B,UAAkB,EACC,cAAuB,EAC1C,MAAc,EACK,aAAoC;QAEvD,KAAK,CAAC,UAAU,EAAE,GAAG,UAAU,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QANrD,cAAS,GAAT,SAAS,CAAY;QAEX,mBAAc,GAAd,cAAc,CAAS;QAEvB,kBAAa,GAAb,aAAa,CAAuB;QAIvD,IAAI,CAAC,mBAAmB,GAAG,CAAC,cAAc,CAAC,CAAC;QAE5C,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEhE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,aAAa;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,CAA6B,EAC7B,GAAkB;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAqB,EAAE,GAAkB;QAChE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAExD,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,kBAAkB;IAClB,gBAAgB;QACd,iBAAiB;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEnB,6BAA6B;QAC7B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;CACF;AAvDD,0CAuDC"}
@@ -0,0 +1,55 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { DeepReadonly } from 'ts-essentials';
3
+ import { Address, Log, Logger } from '../../types';
4
+ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
+ import { IDexHelper } from '../../dex-helper/idex-helper';
6
+ import { ApexDefiPoolState } from './types';
7
+ import { AbiCoder } from '@ethersproject/abi';
8
+ export declare class ApexDefiEventPool extends StatefulEventSubscriber<ApexDefiPoolState> {
9
+ readonly parentName: string;
10
+ protected network: number;
11
+ protected dexHelper: IDexHelper;
12
+ protected apexDefiFactoryAddress: Address;
13
+ protected apexDefiFactoryIface: Interface;
14
+ protected apexDefiTokenIface: Interface;
15
+ handlers: {
16
+ [event: string]: (event: any, state: DeepReadonly<ApexDefiPoolState>, log: Readonly<Log>) => DeepReadonly<ApexDefiPoolState> | null;
17
+ };
18
+ logDecoder: (log: Log) => any;
19
+ coder: AbiCoder;
20
+ addressesSubscribed: string[];
21
+ readonly token0: Address;
22
+ readonly token1: Address;
23
+ private _poolAddress?;
24
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, token0: Address, token1: Address, poolAddress: Address, logger: Logger, apexDefiFactoryAddress: Address, apexDefiFactoryIface?: Interface, apexDefiTokenIface?: Interface);
25
+ get poolAddress(): Address;
26
+ set poolAddress(address: Address);
27
+ /**
28
+ * The function is called every time any of the subscribed
29
+ * addresses release log. The function accepts the current
30
+ * state, updates the state according to the log, and returns
31
+ * the updated state.
32
+ * @param state - Current state of event subscriber
33
+ * @param log - Log released by one of the subscribed addresses
34
+ * @returns Updates state of the event subscriber after the log
35
+ */
36
+ protected processLog(state: DeepReadonly<ApexDefiPoolState>, log: Readonly<Log>): DeepReadonly<ApexDefiPoolState> | null;
37
+ getStateOrGenerate(blockNumber: number): Promise<Readonly<ApexDefiPoolState>>;
38
+ /**
39
+ * The function generates state using on-chain calls. This
40
+ * function is called to regenerate state if the event based
41
+ * system fails to fetch events and the local state is no
42
+ * more correct.
43
+ * @param blockNumber - Blocknumber for which the state should
44
+ * should be generated
45
+ * @returns state of the event subscriber at blocknumber
46
+ */
47
+ generateState(blockNumber: number): Promise<DeepReadonly<ApexDefiPoolState>>;
48
+ handleSwap(event: any, state: DeepReadonly<ApexDefiPoolState>, log: Readonly<Log>): DeepReadonly<ApexDefiPoolState> | null;
49
+ handleAddLiquidity(event: any, state: DeepReadonly<ApexDefiPoolState>, log: Readonly<Log>): DeepReadonly<ApexDefiPoolState> | null;
50
+ handleRemoveLiquidity(event: any, state: DeepReadonly<ApexDefiPoolState>, log: Readonly<Log>): DeepReadonly<ApexDefiPoolState> | null;
51
+ /**
52
+ * Release any resources held by this event pool
53
+ */
54
+ releaseResources(): void;
55
+ }