@paraswap/dex-lib 5.1.20 → 5.1.21-curve-pt.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 (304) hide show
  1. package/build/abi/pancakeswap-infinity/cl-pool-manager.json +80 -0
  2. package/build/dex/curve-v1/curve-v1.d.ts +3 -1
  3. package/build/dex/curve-v1/curve-v1.js +19 -0
  4. package/build/dex/curve-v1/curve-v1.js.map +1 -1
  5. package/build/dex/curve-v1/forks/curve-forks/curve-forks.d.ts +1 -0
  6. package/build/dex/curve-v1/forks/curve-forks/curve-forks.js +3 -0
  7. package/build/dex/curve-v1/forks/curve-forks/curve-forks.js.map +1 -1
  8. package/build/dex/curve-v1-factory/constants.d.ts +3 -0
  9. package/build/dex/curve-v1-factory/constants.js +7 -1
  10. package/build/dex/curve-v1-factory/constants.js.map +1 -1
  11. package/build/dex/curve-v1-factory/curve-api-pools.d.ts +17 -0
  12. package/build/dex/curve-v1-factory/curve-api-pools.js +82 -0
  13. package/build/dex/curve-v1-factory/curve-api-pools.js.map +1 -0
  14. package/build/dex/curve-v1-factory/curve-v1-factory.d.ts +2 -1
  15. package/build/dex/curve-v1-factory/curve-v1-factory.js +19 -0
  16. package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
  17. package/build/dex/curve-v1-factory/curve-v1-pool-manager.d.ts +1 -0
  18. package/build/dex/curve-v1-factory/curve-v1-pool-manager.js +5 -0
  19. package/build/dex/curve-v1-factory/curve-v1-pool-manager.js.map +1 -1
  20. package/build/dex/fluid-dex/scripts/measure-calc-time.js +178 -0
  21. package/build/dex/fluid-dex/scripts/measure-calc-time.js.map +1 -0
  22. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +1 -0
  23. package/build/dex/uniswap-v4/api-go/compare-pricing.js +187 -0
  24. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +1 -0
  25. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +1 -0
  26. package/build/dex/uniswap-v4/api-go/compare-states.js +149 -0
  27. package/build/dex/uniswap-v4/api-go/compare-states.js.map +1 -0
  28. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  29. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +140 -0
  30. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +1 -0
  31. package/build/executor/__test-utils__/snapshot-test-helpers.d.ts +10 -0
  32. package/build/executor/__test-utils__/snapshot-test-helpers.js +72 -0
  33. package/build/executor/__test-utils__/snapshot-test-helpers.js.map +1 -0
  34. package/build/executor/address-utils.d.ts +2 -0
  35. package/build/executor/address-utils.js +7 -0
  36. package/build/executor/address-utils.js.map +1 -0
  37. package/build/executor/approval.d.ts +9 -0
  38. package/build/executor/approval.js +29 -0
  39. package/build/executor/approval.js.map +1 -0
  40. package/build/executor/encoding-context.d.ts +4 -0
  41. package/build/executor/encoding-context.js +54 -0
  42. package/build/executor/encoding-context.js.map +1 -0
  43. package/build/executor/encoding-types.d.ts +75 -0
  44. package/build/{dex/quick-perps/types.js → executor/encoding-types.js} +1 -1
  45. package/build/executor/encoding-types.js.map +1 -0
  46. package/build/executor/factory.d.ts +4 -0
  47. package/build/executor/factory.js +23 -0
  48. package/build/executor/factory.js.map +1 -0
  49. package/build/executor/route-plan.d.ts +8 -0
  50. package/build/executor/route-plan.js +109 -0
  51. package/build/executor/route-plan.js.map +1 -0
  52. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.d.ts +6 -0
  53. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js +39 -0
  54. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js.map +1 -0
  55. package/build/generic-swap-transaction-builder/dex-encoder/index.d.ts +4 -0
  56. package/build/generic-swap-transaction-builder/dex-encoder/index.js +21 -0
  57. package/build/generic-swap-transaction-builder/dex-encoder/index.js.map +1 -0
  58. package/build/generic-swap-transaction-builder/dex-encoder/ports.d.ts +26 -0
  59. package/build/{dex/maker-psm/types.js → generic-swap-transaction-builder/dex-encoder/ports.js} +1 -1
  60. package/build/generic-swap-transaction-builder/dex-encoder/ports.js.map +1 -0
  61. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.d.ts +22 -0
  62. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js +299 -0
  63. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js.map +1 -0
  64. package/build/generic-swap-transaction-builder/dex-encoder/types.d.ts +207 -0
  65. package/build/generic-swap-transaction-builder/dex-encoder/types.js +194 -0
  66. package/build/generic-swap-transaction-builder/dex-encoder/types.js.map +1 -0
  67. package/build/generic-swap-transaction-builder/orchestration.d.ts +65 -0
  68. package/build/generic-swap-transaction-builder/orchestration.js +198 -0
  69. package/build/generic-swap-transaction-builder/orchestration.js.map +1 -0
  70. package/build/generic-swap-transaction-builder/resolved/build-transaction.d.ts +13 -0
  71. package/build/generic-swap-transaction-builder/resolved/build-transaction.js +343 -0
  72. package/build/generic-swap-transaction-builder/resolved/build-transaction.js.map +1 -0
  73. package/build/generic-swap-transaction-builder/resolved/index.d.ts +4 -0
  74. package/build/generic-swap-transaction-builder/resolved/index.js +21 -0
  75. package/build/generic-swap-transaction-builder/resolved/index.js.map +1 -0
  76. package/build/generic-swap-transaction-builder/resolved/route-plan.d.ts +2 -0
  77. package/build/generic-swap-transaction-builder/resolved/route-plan.js +11 -0
  78. package/build/generic-swap-transaction-builder/resolved/route-plan.js.map +1 -0
  79. package/build/generic-swap-transaction-builder/resolved/types.d.ts +67 -0
  80. package/build/generic-swap-transaction-builder/resolved/types.js.map +1 -0
  81. package/build/generic-swap-transaction-builder/resolved/validation.d.ts +10 -0
  82. package/build/generic-swap-transaction-builder/resolved/validation.js +69 -0
  83. package/build/generic-swap-transaction-builder/resolved/validation.js.map +1 -0
  84. package/package.json +1 -1
  85. package/build/abi/BProtocol.json +0 -1155
  86. package/build/abi/Jarvis.json +0 -1172
  87. package/build/abi/MStableAsset.json +0 -1545
  88. package/build/abi/OneInchLp.json +0 -1304
  89. package/build/abi/Onebit.json +0 -736
  90. package/build/abi/Shell.json +0 -1294
  91. package/build/abi/TraderJoeV2Router.json +0 -50
  92. package/build/abi/idle-dao/idle-cdo-factory.json +0 -38
  93. package/build/abi/idle-dao/idle-cdo.json +0 -1245
  94. package/build/abi/infusion/InfusionFactory.json +0 -147
  95. package/build/abi/infusion/InfusionPair.json +0 -658
  96. package/build/abi/infusion/InfusionRouter.json +0 -442
  97. package/build/abi/maker-psm/pot.json +0 -322
  98. package/build/abi/maker-psm/psm.json +0 -243
  99. package/build/abi/maker-psm/vat.json +0 -363
  100. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
  101. package/build/abi/quick-perps/fast-price-events.json +0 -70
  102. package/build/abi/quick-perps/fast-price-feed.json +0 -741
  103. package/build/abi/quick-perps/reader.json +0 -313
  104. package/build/abi/quick-perps/vault-price-feed.json +0 -323
  105. package/build/abi/quick-perps/vault.json +0 -1953
  106. package/build/abi/uniswap-v2/excalibur-pool.json +0 -881
  107. package/build/abi/uniswap-v2/mdex-factory.json +0 -759
  108. package/build/abi/wUSDM.json +0 -757
  109. package/build/abi/zrx.v2.json +0 -1967
  110. package/build/abi/zrx.v3.json +0 -3454
  111. package/build/abi/zrx.v4.json +0 -2193
  112. package/build/dex/OneInchLp.d.ts +0 -24
  113. package/build/dex/OneInchLp.js +0 -43
  114. package/build/dex/OneInchLp.js.map +0 -1
  115. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  116. package/build/dex/bProtocol/bProtocol.js +0 -56
  117. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  118. package/build/dex/bProtocol/types.d.ts +0 -11
  119. package/build/dex/bProtocol/types.js +0 -8
  120. package/build/dex/bProtocol/types.js.map +0 -1
  121. package/build/dex/ekubo/pools/base-pool.d.ts +0 -47
  122. package/build/dex/ekubo/pools/base-pool.js +0 -184
  123. package/build/dex/ekubo/pools/base-pool.js.map +0 -1
  124. package/build/dex/ekubo/pools/iface.d.ts +0 -46
  125. package/build/dex/ekubo/pools/iface.js +0 -75
  126. package/build/dex/ekubo/pools/iface.js.map +0 -1
  127. package/build/dex/ekubo/pools/math/price.d.ts +0 -7
  128. package/build/dex/ekubo/pools/math/price.js +0 -112
  129. package/build/dex/ekubo/pools/math/price.js.map +0 -1
  130. package/build/dex/ekubo/pools/oracle-pool.d.ts +0 -10
  131. package/build/dex/ekubo/pools/oracle-pool.js +0 -19
  132. package/build/dex/ekubo/pools/oracle-pool.js.map +0 -1
  133. package/build/dex/ekubo/pools/pool-utils.d.ts +0 -44
  134. package/build/dex/ekubo/pools/pool-utils.js +0 -240
  135. package/build/dex/ekubo/pools/pool-utils.js.map +0 -1
  136. package/build/dex/idle-dao/config.d.ts +0 -5
  137. package/build/dex/idle-dao/config.js +0 -24
  138. package/build/dex/idle-dao/config.js.map +0 -1
  139. package/build/dex/idle-dao/idle-dao.d.ts +0 -42
  140. package/build/dex/idle-dao/idle-dao.js +0 -279
  141. package/build/dex/idle-dao/idle-dao.js.map +0 -1
  142. package/build/dex/idle-dao/token_list.d.ts +0 -4
  143. package/build/dex/idle-dao/token_list.js +0 -289
  144. package/build/dex/idle-dao/token_list.js.map +0 -1
  145. package/build/dex/idle-dao/tokens.d.ts +0 -9
  146. package/build/dex/idle-dao/tokens.js +0 -68
  147. package/build/dex/idle-dao/tokens.js.map +0 -1
  148. package/build/dex/idle-dao/types.d.ts +0 -35
  149. package/build/dex/idle-dao/types.js +0 -11
  150. package/build/dex/idle-dao/types.js.map +0 -1
  151. package/build/dex/idle-dao/utils.d.ts +0 -8
  152. package/build/dex/idle-dao/utils.js +0 -149
  153. package/build/dex/idle-dao/utils.js.map +0 -1
  154. package/build/dex/infusion/config.d.ts +0 -3
  155. package/build/dex/infusion/config.js +0 -20
  156. package/build/dex/infusion/config.js.map +0 -1
  157. package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
  158. package/build/dex/infusion/infusion-stable-pool.js +0 -74
  159. package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
  160. package/build/dex/infusion/infusion.d.ts +0 -51
  161. package/build/dex/infusion/infusion.js +0 -500
  162. package/build/dex/infusion/infusion.js.map +0 -1
  163. package/build/dex/infusion/types.d.ts +0 -45
  164. package/build/dex/infusion/types.js.map +0 -1
  165. package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
  166. package/build/dex/infusion/utils/isStablePair.js +0 -18
  167. package/build/dex/infusion/utils/isStablePair.js.map +0 -1
  168. package/build/dex/jarvis.d.ts +0 -56
  169. package/build/dex/jarvis.js +0 -163
  170. package/build/dex/jarvis.js.map +0 -1
  171. package/build/dex/mStable.d.ts +0 -44
  172. package/build/dex/mStable.js +0 -75
  173. package/build/dex/mStable.js.map +0 -1
  174. package/build/dex/maker-psm/config.d.ts +0 -11
  175. package/build/dex/maker-psm/config.js +0 -53
  176. package/build/dex/maker-psm/config.js.map +0 -1
  177. package/build/dex/maker-psm/maker-psm.d.ts +0 -103
  178. package/build/dex/maker-psm/maker-psm.js +0 -493
  179. package/build/dex/maker-psm/maker-psm.js.map +0 -1
  180. package/build/dex/maker-psm/types.d.ts +0 -39
  181. package/build/dex/maker-psm/types.js.map +0 -1
  182. package/build/dex/onebit/onebit.d.ts +0 -16
  183. package/build/dex/onebit/onebit.js +0 -61
  184. package/build/dex/onebit/onebit.js.map +0 -1
  185. package/build/dex/onebit/types.d.ts +0 -14
  186. package/build/dex/onebit/types.js +0 -8
  187. package/build/dex/onebit/types.js.map +0 -1
  188. package/build/dex/quick-perps/config.d.ts +0 -11
  189. package/build/dex/quick-perps/config.js +0 -27
  190. package/build/dex/quick-perps/config.js.map +0 -1
  191. package/build/dex/quick-perps/fast-price-feed.d.ts +0 -26
  192. package/build/dex/quick-perps/fast-price-feed.js +0 -184
  193. package/build/dex/quick-perps/fast-price-feed.js.map +0 -1
  194. package/build/dex/quick-perps/pool.d.ts +0 -21
  195. package/build/dex/quick-perps/pool.js +0 -229
  196. package/build/dex/quick-perps/pool.js.map +0 -1
  197. package/build/dex/quick-perps/quick-perps.d.ts +0 -53
  198. package/build/dex/quick-perps/quick-perps.js +0 -247
  199. package/build/dex/quick-perps/quick-perps.js.map +0 -1
  200. package/build/dex/quick-perps/types.d.ts +0 -98
  201. package/build/dex/quick-perps/types.js.map +0 -1
  202. package/build/dex/quick-perps/usdq.d.ts +0 -15
  203. package/build/dex/quick-perps/usdq.js +0 -62
  204. package/build/dex/quick-perps/usdq.js.map +0 -1
  205. package/build/dex/quick-perps/vault-price-feed.d.ts +0 -43
  206. package/build/dex/quick-perps/vault-price-feed.js +0 -203
  207. package/build/dex/quick-perps/vault-price-feed.js.map +0 -1
  208. package/build/dex/quick-perps/vault-utils.d.ts +0 -8
  209. package/build/dex/quick-perps/vault-utils.js +0 -42
  210. package/build/dex/quick-perps/vault-utils.js.map +0 -1
  211. package/build/dex/quick-perps/vault.d.ts +0 -46
  212. package/build/dex/quick-perps/vault.js +0 -182
  213. package/build/dex/quick-perps/vault.js.map +0 -1
  214. package/build/dex/se-vlr/config.d.ts +0 -3
  215. package/build/dex/se-vlr/config.js +0 -24
  216. package/build/dex/se-vlr/config.js.map +0 -1
  217. package/build/dex/se-vlr/se-vlr-pool.d.ts +0 -39
  218. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  219. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  220. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  221. package/build/dex/se-vlr/se-vlr.js +0 -131
  222. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  223. package/build/dex/se-vlr/types.d.ts +0 -6
  224. package/build/dex/se-vlr/types.js +0 -3
  225. package/build/dex/se-vlr/types.js.map +0 -1
  226. package/build/dex/shell.d.ts +0 -25
  227. package/build/dex/shell.js +0 -41
  228. package/build/dex/shell.js.map +0 -1
  229. package/build/dex/solidly/forks-override/aerodrome.d.ts +0 -14
  230. package/build/dex/solidly/forks-override/aerodrome.js +0 -46
  231. package/build/dex/solidly/forks-override/aerodrome.js.map +0 -1
  232. package/build/dex/solidly/forks-override/chronos.d.ts +0 -23
  233. package/build/dex/solidly/forks-override/chronos.js +0 -141
  234. package/build/dex/solidly/forks-override/chronos.js.map +0 -1
  235. package/build/dex/solidly/forks-override/usdfi.d.ts +0 -8
  236. package/build/dex/solidly/forks-override/usdfi.js +0 -15
  237. package/build/dex/solidly/forks-override/usdfi.js.map +0 -1
  238. package/build/dex/solidly/forks-override/velocimeter.d.ts +0 -23
  239. package/build/dex/solidly/forks-override/velocimeter.js +0 -77
  240. package/build/dex/solidly/forks-override/velocimeter.js.map +0 -1
  241. package/build/dex/tessera/types.d.ts +0 -3
  242. package/build/dex/tessera/types.js +0 -3
  243. package/build/dex/tessera/types.js.map +0 -1
  244. package/build/dex/trader-joe-v2.d.ts +0 -40
  245. package/build/dex/trader-joe-v2.js +0 -74
  246. package/build/dex/trader-joe-v2.js.map +0 -1
  247. package/build/dex/uniswap-v2/dfyn.d.ts +0 -19
  248. package/build/dex/uniswap-v2/dfyn.js +0 -61
  249. package/build/dex/uniswap-v2/dfyn.js.map +0 -1
  250. package/build/dex/uniswap-v2/excalibur.d.ts +0 -24
  251. package/build/dex/uniswap-v2/excalibur.js +0 -47
  252. package/build/dex/uniswap-v2/excalibur.js.map +0 -1
  253. package/build/dex/uniswap-v2/mdex.d.ts +0 -24
  254. package/build/dex/uniswap-v2/mdex.js +0 -50
  255. package/build/dex/uniswap-v2/mdex.js.map +0 -1
  256. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +0 -24
  257. package/build/dex/uniswap-v2/nomiswap-v2.js +0 -57
  258. package/build/dex/uniswap-v2/nomiswap-v2.js.map +0 -1
  259. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js +0 -160
  260. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js.map +0 -1
  261. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  262. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  263. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  264. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -3
  265. package/build/dex/uniswap-v4/contract-math/Position.js +0 -10
  266. package/build/dex/uniswap-v4/contract-math/Position.js.map +0 -1
  267. package/build/dex/usual-bond/config.d.ts +0 -3
  268. package/build/dex/usual-bond/config.js +0 -13
  269. package/build/dex/usual-bond/config.js.map +0 -1
  270. package/build/dex/usual-bond/types.d.ts +0 -7
  271. package/build/dex/usual-bond/types.js +0 -3
  272. package/build/dex/usual-bond/types.js.map +0 -1
  273. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  274. package/build/dex/usual-bond/usual-bond.js +0 -176
  275. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  276. package/build/dex/wusdm/config.d.ts +0 -3
  277. package/build/dex/wusdm/config.js +0 -43
  278. package/build/dex/wusdm/config.js.map +0 -1
  279. package/build/dex/wusdm/constants.d.ts +0 -2
  280. package/build/dex/wusdm/constants.js +0 -6
  281. package/build/dex/wusdm/constants.js.map +0 -1
  282. package/build/dex/wusdm/types.d.ts +0 -18
  283. package/build/dex/wusdm/types.js +0 -11
  284. package/build/dex/wusdm/types.js.map +0 -1
  285. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  286. package/build/dex/wusdm/wusdm-pool.js +0 -74
  287. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  288. package/build/dex/wusdm/wusdm.d.ts +0 -46
  289. package/build/dex/wusdm/wusdm.js +0 -243
  290. package/build/dex/wusdm/wusdm.js.map +0 -1
  291. package/build/dex/zerox/config.d.ts +0 -2
  292. package/build/dex/zerox/config.js +0 -33
  293. package/build/dex/zerox/config.js.map +0 -1
  294. package/build/dex/zerox/index.d.ts +0 -22
  295. package/build/dex/zerox/index.js +0 -225
  296. package/build/dex/zerox/index.js.map +0 -1
  297. package/build/dex/zerox/order.d.ts +0 -88
  298. package/build/dex/zerox/order.js +0 -53
  299. package/build/dex/zerox/order.js.map +0 -1
  300. package/build/dex/zerox/types.d.ts +0 -73
  301. package/build/dex/zerox/types.js +0 -21
  302. package/build/dex/zerox/types.js.map +0 -1
  303. /package/build/dex/{uniswap-v3/scripts/bench-all-dexes.d.ts → fluid-dex/scripts/measure-calc-time.d.ts} +0 -0
  304. /package/build/{dex/infusion → generic-swap-transaction-builder/resolved}/types.js +0 -0
@@ -0,0 +1,80 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "components": [
6
+ {
7
+ "internalType": "Currency",
8
+ "name": "currency0",
9
+ "type": "address"
10
+ },
11
+ {
12
+ "internalType": "Currency",
13
+ "name": "currency1",
14
+ "type": "address"
15
+ },
16
+ {
17
+ "internalType": "contract IHooks",
18
+ "name": "hooks",
19
+ "type": "address"
20
+ },
21
+ {
22
+ "internalType": "contract IPoolManager",
23
+ "name": "poolManager",
24
+ "type": "address"
25
+ },
26
+ {
27
+ "internalType": "uint24",
28
+ "name": "fee",
29
+ "type": "uint24"
30
+ },
31
+ {
32
+ "internalType": "bytes32",
33
+ "name": "parameters",
34
+ "type": "bytes32"
35
+ }
36
+ ],
37
+ "internalType": "struct PoolKey",
38
+ "name": "key",
39
+ "type": "tuple"
40
+ },
41
+ {
42
+ "components": [
43
+ {
44
+ "internalType": "bool",
45
+ "name": "zeroForOne",
46
+ "type": "bool"
47
+ },
48
+ {
49
+ "internalType": "int256",
50
+ "name": "amountSpecified",
51
+ "type": "int256"
52
+ },
53
+ {
54
+ "internalType": "uint160",
55
+ "name": "sqrtPriceLimitX96",
56
+ "type": "uint160"
57
+ }
58
+ ],
59
+ "internalType": "struct ICLPoolManager.SwapParams",
60
+ "name": "params",
61
+ "type": "tuple"
62
+ },
63
+ {
64
+ "internalType": "bytes",
65
+ "name": "hookData",
66
+ "type": "bytes"
67
+ }
68
+ ],
69
+ "name": "swap",
70
+ "outputs": [
71
+ {
72
+ "internalType": "BalanceDelta",
73
+ "name": "delta",
74
+ "type": "int256"
75
+ }
76
+ ],
77
+ "stateMutability": "nonpayable",
78
+ "type": "function"
79
+ }
80
+ ]
@@ -1,7 +1,7 @@
1
1
  import { Interface } from '@ethersproject/abi';
2
2
  import { NumberAsString, OptimalSwapExchange } from '@paraswap/core';
3
3
  import BigNumber from 'bignumber.js';
4
- import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, ExchangeTxInfo, PoolLiquidity, PoolPrices, PreprocessTransactionOptions, SimpleExchangeParam, Token, TransferFeeParams, TxInfo } from '../../types';
4
+ import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, ExchangeTxInfo, PoolLiquidity, PoolPrices, PoolReserves, PreprocessTransactionOptions, SimpleExchangeParam, Token, TransferFeeParams, TxInfo } from '../../types';
5
5
  import { Network, SwapSide } from '../../constants';
6
6
  import { CurvePool } from './pools/curve-pool';
7
7
  import { CurveMetapool } from './pools/curve-metapool';
@@ -25,6 +25,7 @@ export declare class CurveV1 extends SimpleExchange implements IDex<CurveV1Data,
25
25
  private decimalsCoinsAndUnderlying;
26
26
  protected pools: Record<string, PoolConfig>;
27
27
  protected allApiPools: ApiPool[];
28
+ protected curveApiSlug: string | null;
28
29
  protected eventSupportedPools: string[];
29
30
  protected baseTokens: Record<string, TokenWithReasonableVolume>;
30
31
  protected disableFeeOnTransferTokenAddresses: Set<string>;
@@ -79,4 +80,5 @@ export declare class CurveV1 extends SimpleExchange implements IDex<CurveV1Data,
79
80
  fetchAllApiPools(): Promise<void>;
80
81
  updatePoolState(): Promise<void>;
81
82
  getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
83
+ getPoolReserves(): Promise<PoolReserves[]>;
82
84
  }
@@ -81,6 +81,7 @@ const encoder_1 = require("../../lib/curve/encoder");
81
81
  const packer_1 = require("./packer");
82
82
  const utils_2 = require("ethers/lib/utils");
83
83
  const constants_3 = require("../curve-v1-factory/constants");
84
+ const curve_api_pools_1 = require("../curve-v1-factory/curve-api-pools");
84
85
  const CURVE_DEFAULT_CHUNKS = 10;
85
86
  const CURVE_LENDING_POOL_GAS = 340 * 1000;
86
87
  const CURVE_POOL_GAS = 200 * 1000;
@@ -100,6 +101,9 @@ class CurveV1 extends simple_exchange_1.SimpleExchange {
100
101
  decimalsCoinsAndUnderlying = {};
101
102
  pools;
102
103
  allApiPools = [];
104
+ // Curve API registry the configured pools live in. Forks of the protocol
105
+ // are not served by the API and set this to null.
106
+ curveApiSlug = constants_3.CURVE_API_MAIN_SLUG;
103
107
  eventSupportedPools;
104
108
  baseTokens;
105
109
  disableFeeOnTransferTokenAddresses;
@@ -893,6 +897,21 @@ class CurveV1 extends simple_exchange_1.SimpleExchange {
893
897
  .sort((a, b) => b.liquidityUSD - a.liquidityUSD)
894
898
  .slice(0, limit);
895
899
  }
900
+ // Enumerated mode. Balances come from the Curve API main registry
901
+ // (`coins[].poolBalance`) for the configured pools; pools the API does not
902
+ // list or marks broken are skipped.
903
+ async getPoolReserves() {
904
+ if (!this.curveApiSlug)
905
+ return [];
906
+ const apiPools = await (0, curve_api_pools_1.fetchCurveApiPools)(this.dexHelper, this.network, this.curveApiSlug, this.logger);
907
+ if (!apiPools)
908
+ return [];
909
+ return Object.values(this.pools).flatMap(pool => {
910
+ const apiPool = apiPools[pool.address.toLowerCase()];
911
+ const reserves = apiPool && (0, curve_api_pools_1.curveApiPoolReserves)(this.dexKey, apiPool, pool.coins);
912
+ return reserves ? [reserves] : [];
913
+ });
914
+ }
896
915
  }
897
916
  exports.CurveV1 = CurveV1;
898
917
  //# sourceMappingURL=curve-v1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"curve-v1.js","sourceRoot":"","sources":["../../../src/dex/curve-v1/curve-v1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curve-v1.js","sourceRoot":"","sources":["../../../src/dex/curve-v1/curve-v1.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { Network } from '../../../../constants';
4
4
  import { IDexHelper } from '../../../../dex-helper';
5
5
  export declare class CurveFork extends CurveV1 {
6
6
  protected network: Network;
7
+ protected curveApiSlug: null;
7
8
  static dexKeysWithNetwork: {
8
9
  key: string;
9
10
  networks: Network[];
@@ -11,6 +11,9 @@ const StableSwap3Pool_json_1 = __importDefault(require("../../../../abi/curve-v1
11
11
  const config_1 = require("./config");
12
12
  class CurveFork extends curve_v1_1.CurveV1 {
13
13
  network;
14
+ // Ellipsis, Acryptos etc. are not Curve deployments and are absent from
15
+ // the Curve API, so they report no reserves.
16
+ curveApiSlug = null;
14
17
  static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.CurveForksConfig);
15
18
  constructor(network, dexKey, dexHelper, dexConfig = config_1.CurveForksConfig[dexKey][network], adapters = config_1.Adapters[network]) {
16
19
  super(network, dexKey, dexHelper, dexConfig, adapters);
@@ -1 +1 @@
1
- {"version":3,"file":"curve-forks.js","sourceRoot":"","sources":["../../../../../src/dex/curve-v1/forks/curve-forks/curve-forks.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAwE;AACxE,6CAAyC;AACzC,8CAA8C;AAE9C,yGAA4E;AAG5E,qCAAsD;AAEtD,MAAa,SAAU,SAAQ,kBAAO;IAKxB;IAJL,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,yBAAgB,CAAC,CAAC;IAE1C,YACY,OAAgB,EAC1B,MAAc,EACd,SAAqB,EACrB,SAAS,GAAG,yBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC7C,QAAQ,GAAG,iBAAQ,CAAC,OAAO,CAAC;QAE5B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAN7C,YAAO,GAAP,OAAO,CAAS;IAO5B,CAAC;IAED,oBAAoB,CAAC,WAAmB;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAC3D,CAAC;QACF,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,+DAA+D;QAC/D,0BAA0B;QAC1B,6CAA6C;QAC7C,wEAAwE;QACxE,+BAA+B;QAC/B,wBAAwB;QACxB,qBAAqB;QACrB,yBAAyB;QACzB,oBAAoB;QACpB,mBAAmB;QACnB,sBAAsB;QACtB,2BAA2B;QAC3B,yBAAyB;QACzB,qBAAqB;QACrB,2BAA2B;QAC3B,6CAA6C;QAC7C,yBAAyB;QACzB,oBAAoB;QACpB,eAAe;QACf,MAAM;QACN,IAAI;QACJ,IACE,MAAM,CAAC,YAAY,KAAK,SAAS;YACjC,MAAM,CAAC,YAAY,KAAK,SAAS;YACjC,MAAM,CAAC,UAAU,KAAK,SAAS;YAC/B,MAAM,CAAC,UAAU,KAAK,SAAS,EAC/B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,kBAAS,CAClB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,UAAU,EACjB,8BAAe,EACf,MAAM,CAAC,KAAK,CAAC,MAAM,EACnB,MAAM,CAAC,YAAa,CAAC,GAAG,CAAC,oBAAY,CAAC,EACtC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,KAAK,CACb,CAAC;IACJ,CAAC;;AA9DH,8BA+DC"}
1
+ {"version":3,"file":"curve-forks.js","sourceRoot":"","sources":["../../../../../src/dex/curve-v1/forks/curve-forks/curve-forks.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAwE;AACxE,6CAAyC;AACzC,8CAA8C;AAE9C,yGAA4E;AAG5E,qCAAsD;AAEtD,MAAa,SAAU,SAAQ,kBAAO;IASxB;IARZ,wEAAwE;IACxE,6CAA6C;IACnC,YAAY,GAAG,IAAI,CAAC;IAEvB,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,yBAAgB,CAAC,CAAC;IAE1C,YACY,OAAgB,EAC1B,MAAc,EACd,SAAqB,EACrB,SAAS,GAAG,yBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAC7C,QAAQ,GAAG,iBAAQ,CAAC,OAAO,CAAC;QAE5B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAN7C,YAAO,GAAP,OAAO,CAAS;IAO5B,CAAC;IAED,oBAAoB,CAAC,WAAmB;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAC3D,CAAC;QACF,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,+DAA+D;QAC/D,0BAA0B;QAC1B,6CAA6C;QAC7C,wEAAwE;QACxE,+BAA+B;QAC/B,wBAAwB;QACxB,qBAAqB;QACrB,yBAAyB;QACzB,oBAAoB;QACpB,mBAAmB;QACnB,sBAAsB;QACtB,2BAA2B;QAC3B,yBAAyB;QACzB,qBAAqB;QACrB,2BAA2B;QAC3B,6CAA6C;QAC7C,yBAAyB;QACzB,oBAAoB;QACpB,eAAe;QACf,MAAM;QACN,IAAI;QACJ,IACE,MAAM,CAAC,YAAY,KAAK,SAAS;YACjC,MAAM,CAAC,YAAY,KAAK,SAAS;YACjC,MAAM,CAAC,UAAU,KAAK,SAAS;YAC/B,MAAM,CAAC,UAAU,KAAK,SAAS,EAC/B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,kBAAS,CAClB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,UAAU,EACjB,8BAAe,EACf,MAAM,CAAC,KAAK,CAAC,MAAM,EACnB,MAAM,CAAC,YAAa,CAAC,GAAG,CAAC,oBAAY,CAAC,EACtC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,KAAK,CACb,CAAC;IACJ,CAAC;;AAlEH,8BAmEC"}
@@ -11,6 +11,9 @@ export declare const CURVE_API_URL = "https://api.curve.finance/v1/getPools";
11
11
  export declare const CURVE_CORE_API_URL = "https://api-core.curve.finance/v1/getPools";
12
12
  export declare const CURVE_API_BY_NETWORK: Record<number, string>;
13
13
  export declare const CURVE_API_SLUGS_BY_NETWORK: Record<number, string[]>;
14
+ export declare const CURVE_API_POOLS_TTL_MS: number;
15
+ export declare const CURVE_API_POOLS_TIMEOUT_MS: number;
16
+ export declare const CURVE_API_MAIN_SLUG = "/main";
14
17
  export declare const NETWORK_ID_TO_NAME: Record<number, string>;
15
18
  export declare const FACTORY_MAX_PLAIN_COINS = 4;
16
19
  export declare const FACTORY_MAX_PLAIN_IMPLEMENTATIONS_FOR_COIN = 10;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DIRECT_METHOD_NAME_V6 = exports.DIRECT_METHOD_NAME = exports.FACTORY_MAX_PLAIN_IMPLEMENTATIONS_FOR_COIN = exports.FACTORY_MAX_PLAIN_COINS = exports.NETWORK_ID_TO_NAME = exports.CURVE_API_SLUGS_BY_NETWORK = exports.CURVE_API_BY_NETWORK = exports.CURVE_CORE_API_URL = exports.CURVE_API_URL = exports.CONVERGENCE_ERROR_PREFIX = exports.LIQUIDITY_FETCH_TIMEOUT_MS = exports.MIN_LIQUIDITY_IN_USD = exports.POOL_EXCHANGE_GAS_COST = exports.MAX_ALLOWED_STATE_DELAY_FACTOR = exports.LIQUIDITY_UPDATE_PERIOD_MS = exports.STATE_UPDATE_RETRY_PERIOD_MS = exports.STATE_UPDATE_PERIOD_MS = exports.MIN_AMOUNT_TO_RECEIVE = void 0;
3
+ exports.DIRECT_METHOD_NAME_V6 = exports.DIRECT_METHOD_NAME = exports.FACTORY_MAX_PLAIN_IMPLEMENTATIONS_FOR_COIN = exports.FACTORY_MAX_PLAIN_COINS = exports.NETWORK_ID_TO_NAME = exports.CURVE_API_MAIN_SLUG = exports.CURVE_API_POOLS_TIMEOUT_MS = exports.CURVE_API_POOLS_TTL_MS = exports.CURVE_API_SLUGS_BY_NETWORK = exports.CURVE_API_BY_NETWORK = exports.CURVE_CORE_API_URL = exports.CURVE_API_URL = exports.CONVERGENCE_ERROR_PREFIX = exports.LIQUIDITY_FETCH_TIMEOUT_MS = exports.MIN_LIQUIDITY_IN_USD = exports.POOL_EXCHANGE_GAS_COST = exports.MAX_ALLOWED_STATE_DELAY_FACTOR = exports.LIQUIDITY_UPDATE_PERIOD_MS = exports.STATE_UPDATE_RETRY_PERIOD_MS = exports.STATE_UPDATE_PERIOD_MS = exports.MIN_AMOUNT_TO_RECEIVE = void 0;
4
4
  const constants_1 = require("../../constants");
5
5
  exports.MIN_AMOUNT_TO_RECEIVE = 1;
6
6
  exports.STATE_UPDATE_PERIOD_MS = 5 * 1000;
@@ -21,6 +21,12 @@ exports.CURVE_API_BY_NETWORK = {
21
21
  exports.CURVE_API_SLUGS_BY_NETWORK = {
22
22
  [constants_1.Network.PLASMA]: ['/factory-stable-ng'],
23
23
  };
24
+ // Pool reserves are read from the same registry endpoints. Responses are up
25
+ // to ~2MB (factory-stable-ng on mainnet), so they are cached in-process.
26
+ exports.CURVE_API_POOLS_TTL_MS = 60 * 1000;
27
+ exports.CURVE_API_POOLS_TIMEOUT_MS = 8 * 1000;
28
+ // Registry slug of the legacy (non-factory) pools priced by CurveV1.
29
+ exports.CURVE_API_MAIN_SLUG = '/main';
24
30
  exports.NETWORK_ID_TO_NAME = {
25
31
  [constants_1.Network.MAINNET]: 'ethereum',
26
32
  [constants_1.Network.POLYGON]: 'polygon',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/curve-v1-factory/constants.ts"],"names":[],"mappings":";;;AAAA,+CAA0C;AAE7B,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAE1B,QAAA,sBAAsB,GAAG,CAAC,GAAG,IAAI,CAAC;AAElC,QAAA,4BAA4B,GAAG,IAAI,CAAC;AAEpC,QAAA,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C,QAAA,8BAA8B,GAAG,CAAC,CAAC;AAEnC,QAAA,sBAAsB,GAAG,GAAG,GAAG,IAAI,CAAC;AAEjD,2DAA2D;AAC9C,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAE1B,QAAA,0BAA0B,GAAG,KAAK,CAAC;AAEnC,QAAA,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD,iCAAiC;AACpB,QAAA,aAAa,GAAG,uCAAuC,CAAC;AACxD,QAAA,kBAAkB,GAAG,4CAA4C,CAAC;AAClE,QAAA,oBAAoB,GAA2B;IAC1D,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE,0BAAkB;CACrC,CAAC;AACW,QAAA,0BAA0B,GAA6B;IAClE,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC;CACzC,CAAC;AACW,QAAA,kBAAkB,GAA2B;IACxD,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,UAAU;IAC7B,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,SAAS;IAC5B,CAAC,mBAAO,CAAC,KAAK,CAAC,EAAE,OAAO;IACxB,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE,WAAW;IAChC,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC9B,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC9B,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC1B,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE,MAAM;CACzB,CAAC;AAEF,0EAA0E;AAC1E,YAAY;AACC,QAAA,uBAAuB,GAAG,CAAC,CAAC;AAC5B,QAAA,0CAA0C,GAAG,EAAE,CAAC;AAEhD,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AACzC,QAAA,qBAAqB,GAAG,4BAA4B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/curve-v1-factory/constants.ts"],"names":[],"mappings":";;;AAAA,+CAA0C;AAE7B,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAE1B,QAAA,sBAAsB,GAAG,CAAC,GAAG,IAAI,CAAC;AAElC,QAAA,4BAA4B,GAAG,IAAI,CAAC;AAEpC,QAAA,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C,QAAA,8BAA8B,GAAG,CAAC,CAAC;AAEnC,QAAA,sBAAsB,GAAG,GAAG,GAAG,IAAI,CAAC;AAEjD,2DAA2D;AAC9C,QAAA,oBAAoB,GAAG,EAAE,CAAC;AAE1B,QAAA,0BAA0B,GAAG,KAAK,CAAC;AAEnC,QAAA,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD,iCAAiC;AACpB,QAAA,aAAa,GAAG,uCAAuC,CAAC;AACxD,QAAA,kBAAkB,GAAG,4CAA4C,CAAC;AAClE,QAAA,oBAAoB,GAA2B;IAC1D,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE,0BAAkB;CACrC,CAAC;AACW,QAAA,0BAA0B,GAA6B;IAClE,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC;CACzC,CAAC;AACF,4EAA4E;AAC5E,yEAAyE;AAC5D,QAAA,sBAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,QAAA,0BAA0B,GAAG,CAAC,GAAG,IAAI,CAAC;AACnD,qEAAqE;AACxD,QAAA,mBAAmB,GAAG,OAAO,CAAC;AAC9B,QAAA,kBAAkB,GAA2B;IACxD,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,UAAU;IAC7B,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,SAAS;IAC5B,CAAC,mBAAO,CAAC,KAAK,CAAC,EAAE,OAAO;IACxB,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE,WAAW;IAChC,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC9B,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,UAAU;IAC9B,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE,MAAM;IACtB,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE,QAAQ;IAC1B,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE,MAAM;CACzB,CAAC;AAEF,0EAA0E;AAC1E,YAAY;AACC,QAAA,uBAAuB,GAAG,CAAC,CAAC;AAC5B,QAAA,0CAA0C,GAAG,EAAE,CAAC;AAEhD,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AACzC,QAAA,qBAAqB,GAAG,4BAA4B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { IDexHelper } from '../../dex-helper';
2
+ import { Logger, PoolReserves } from '../../types';
3
+ export type CurveApiPoolCoin = {
4
+ address: string;
5
+ decimals: string;
6
+ poolBalance: string;
7
+ };
8
+ export type CurveApiPool = {
9
+ address: string;
10
+ isBroken?: boolean;
11
+ coins: CurveApiPoolCoin[];
12
+ };
13
+ export type CurveApiPools = Record<string, CurveApiPool>;
14
+ export declare function resetCurveApiPoolsCache(): void;
15
+ export declare function curveApiPoolsUrl(network: number, slug: string): string | null;
16
+ export declare function fetchCurveApiPools(dexHelper: IDexHelper, network: number, slug: string, logger: Logger): Promise<CurveApiPools | null>;
17
+ export declare function curveApiPoolReserves(dexKey: string, pool: CurveApiPool, supportedCoins: string[]): PoolReserves | null;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resetCurveApiPoolsCache = resetCurveApiPoolsCache;
4
+ exports.curveApiPoolsUrl = curveApiPoolsUrl;
5
+ exports.fetchCurveApiPools = fetchCurveApiPools;
6
+ exports.curveApiPoolReserves = curveApiPoolReserves;
7
+ const pools_storage_1 = require("../../lib/pools-storage");
8
+ const constants_1 = require("./constants");
9
+ // One cache per process: CurveV1, CurveV1Factory and CurveV1StableNg share
10
+ // the registry responses, so the API is hit once per slug per TTL however
11
+ // many classes or callers ask.
12
+ const cache = new Map();
13
+ function resetCurveApiPoolsCache() {
14
+ cache.clear();
15
+ }
16
+ // `null` when the network is unknown to the API or the slug is not served
17
+ // for it.
18
+ function curveApiPoolsUrl(network, slug) {
19
+ const networkName = constants_1.NETWORK_ID_TO_NAME[network];
20
+ if (!networkName)
21
+ return null;
22
+ const allowedSlugs = constants_1.CURVE_API_SLUGS_BY_NETWORK[network];
23
+ if (allowedSlugs && !allowedSlugs.includes(slug))
24
+ return null;
25
+ const baseUrl = constants_1.CURVE_API_BY_NETWORK[network] ?? constants_1.CURVE_API_URL;
26
+ return `${baseUrl}/${networkName}${slug}`;
27
+ }
28
+ // Fetches `getPools/<network><slug>` with an in-process TTL cache and
29
+ // in-flight deduplication. A failed request resolves to `null` and is not
30
+ // cached, so the next caller retries.
31
+ function fetchCurveApiPools(dexHelper, network, slug, logger) {
32
+ const url = curveApiPoolsUrl(network, slug);
33
+ if (!url)
34
+ return Promise.resolve(null);
35
+ const now = Date.now();
36
+ const cached = cache.get(url);
37
+ if (cached && now - cached.fetchedAt < constants_1.CURVE_API_POOLS_TTL_MS) {
38
+ return cached.pools;
39
+ }
40
+ const pools = dexHelper.httpRequest
41
+ .get(url, constants_1.CURVE_API_POOLS_TIMEOUT_MS)
42
+ .then(response => {
43
+ if (!response.success || !Array.isArray(response.data?.poolData)) {
44
+ throw new Error('unexpected response shape');
45
+ }
46
+ const byAddress = {};
47
+ for (const pool of response.data.poolData) {
48
+ byAddress[pool.address.toLowerCase()] = pool;
49
+ }
50
+ return byAddress;
51
+ })
52
+ .catch(e => {
53
+ cache.delete(url);
54
+ logger.error(`fetchCurveApiPools ${url} failed:`, e);
55
+ return null;
56
+ });
57
+ cache.set(url, { fetchedAt: now, pools });
58
+ return pools;
59
+ }
60
+ // Plain reserves over the coins the adapter prices: every listed coin swaps
61
+ // to every other one, and `poolBalance` is the raw payout capacity of that
62
+ // coin. The API may list coins the adapter does not support (legacy USDT
63
+ // pool: cDAI, cUSDC and USDT, while CurveV1 prices only cDAI <-> cUSDC), so
64
+ // only `supportedCoins` are kept. Metapool underlying swaps are not listed;
65
+ // the base pool is reported as its own pool. `null` for a broken pool or one
66
+ // with fewer than two supported coins.
67
+ function curveApiPoolReserves(dexKey, pool, supportedCoins) {
68
+ if (pool.isBroken)
69
+ return null;
70
+ const supported = new Set(supportedCoins.map(c => c.toLowerCase()));
71
+ const coins = pool.coins.filter(c => supported.has(c.address.toLowerCase()));
72
+ if (coins.length < 2)
73
+ return null;
74
+ const address = pool.address.toLowerCase();
75
+ return {
76
+ dex: dexKey,
77
+ id: address,
78
+ address,
79
+ reserves: (0, pools_storage_1.toReserves)(coins.map(c => c.address), coins.map(c => BigInt(c.poolBalance))),
80
+ };
81
+ }
82
+ //# sourceMappingURL=curve-api-pools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curve-api-pools.js","sourceRoot":"","sources":["../../../src/dex/curve-v1-factory/curve-api-pools.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { AbiItem } from 'web3-utils';
2
2
  import { NumberAsString, OptimalRate, OptimalSwap, OptimalSwapExchange, SwapSide } from '@paraswap/core';
3
3
  import { AsyncOrSync } from 'ts-essentials';
4
4
  import { Interface } from '@ethersproject/abi';
5
- import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, ExchangeTxInfo, Logger, PoolLiquidity, PoolPrices, PreprocessTransactionOptions, SimpleExchangeParam, Token, TransferFeeParams, TxInfo } from '../../types';
5
+ import { AdapterExchangeParam, Address, DexExchangeParam, ExchangePrices, ExchangeTxInfo, Logger, PoolLiquidity, PoolPrices, PoolReserves, PreprocessTransactionOptions, SimpleExchangeParam, Token, TransferFeeParams, TxInfo } from '../../types';
6
6
  import { Network } from '../../constants';
7
7
  import { IDex } from '../idex';
8
8
  import { IDexHelper } from '../../dex-helper/idex-helper';
@@ -64,6 +64,7 @@ export declare class CurveV1Factory extends SimpleExchange implements IDex<Curve
64
64
  getDexParam(srcToken: Address, destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: CurveV1FactoryData, side: SwapSide): DexExchangeParam;
65
65
  updatePoolState(): Promise<void>;
66
66
  getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
67
+ getPoolReserves(): Promise<PoolReserves[]>;
67
68
  releaseResources(): AsyncOrSync<void>;
68
69
  private _calcRateMultipliers;
69
70
  private _reportForUnspecifiedImplementation;
@@ -49,6 +49,7 @@ const simple_exchange_1 = require("../simple-exchange");
49
49
  const config_1 = require("./config");
50
50
  const constants_2 = require("./constants");
51
51
  const curve_v1_pool_manager_1 = require("./curve-v1-pool-manager");
52
+ const curve_api_pools_1 = require("./curve-api-pools");
52
53
  const Curve_json_1 = __importDefault(require("../../abi/Curve.json"));
53
54
  const CurveV1Router_abi_json_1 = __importDefault(require("../../abi/curve-v1-factory/CurveV1Router.abi.json"));
54
55
  const DirectSwap_json_1 = __importDefault(require("../../abi/DirectSwap.json"));
@@ -899,6 +900,24 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
899
900
  .sort((a, b) => b.liquidityUSD - a.liquidityUSD)
900
901
  .slice(0, limit);
901
902
  }
903
+ // Enumerated mode. Balances come from the Curve API registry endpoints
904
+ // (`coins[].poolBalance`), one request per registry slug the priced pools
905
+ // belong to; a failed slug drops only its pools.
906
+ async getPoolReserves() {
907
+ const poolsBySlug = lodash_1.default.groupBy(this.poolManager.getPricedPools(), pool => pool.curveLiquidityApiSlug);
908
+ const results = await Promise.all(Object.entries(poolsBySlug).map(async ([slug, pools]) => {
909
+ const apiPools = await (0, curve_api_pools_1.fetchCurveApiPools)(this.dexHelper, this.network, slug, this.logger);
910
+ if (!apiPools)
911
+ return [];
912
+ return pools.flatMap(pool => {
913
+ const apiPool = apiPools[pool.address.toLowerCase()];
914
+ const reserves = apiPool &&
915
+ (0, curve_api_pools_1.curveApiPoolReserves)(this.dexKey, apiPool, Object.keys(pool.coinsToIndices));
916
+ return reserves ? [reserves] : [];
917
+ });
918
+ }));
919
+ return results.flat();
920
+ }
902
921
  releaseResources() {
903
922
  this.poolManager.releaseResources();
904
923
  }