@paraswap/dex-lib 5.0.1-new-dexs-encoding.0 → 5.0.2-native-dex-math.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 (358) hide show
  1. package/build/abi/BProtocol.json +1155 -0
  2. package/build/abi/Jarvis.json +1172 -0
  3. package/build/abi/MStableAsset.json +1545 -0
  4. package/build/abi/OneInchLp.json +1304 -0
  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/idle-dao/idle-cdo-factory.json +38 -0
  9. package/build/abi/idle-dao/idle-cdo.json +1245 -0
  10. package/build/abi/infusion/InfusionFactory.json +147 -0
  11. package/build/abi/infusion/InfusionPair.json +658 -0
  12. package/build/abi/infusion/InfusionRouter.json +442 -0
  13. package/build/abi/maker-psm/pot.json +322 -0
  14. package/build/abi/maker-psm/psm.json +243 -0
  15. package/build/abi/maker-psm/vat.json +363 -0
  16. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +773 -0
  17. package/build/abi/quick-perps/fast-price-events.json +70 -0
  18. package/build/abi/quick-perps/fast-price-feed.json +741 -0
  19. package/build/abi/quick-perps/reader.json +313 -0
  20. package/build/abi/quick-perps/vault-price-feed.json +323 -0
  21. package/build/abi/quick-perps/vault.json +1953 -0
  22. package/build/abi/uniswap-v2/excalibur-pool.json +881 -0
  23. package/build/abi/uniswap-v2/mdex-factory.json +759 -0
  24. package/build/abi/wUSDM.json +757 -0
  25. package/build/abi/zrx.v2.json +1967 -0
  26. package/build/abi/zrx.v3.json +3454 -0
  27. package/build/abi/zrx.v4.json +2193 -0
  28. package/build/dex/OneInchLp.d.ts +24 -0
  29. package/build/dex/OneInchLp.js +43 -0
  30. package/build/dex/OneInchLp.js.map +1 -0
  31. package/build/dex/aave-gsm/config.js +2 -2
  32. package/build/dex/bProtocol/bProtocol.d.ts +15 -0
  33. package/build/dex/bProtocol/bProtocol.js +56 -0
  34. package/build/dex/bProtocol/bProtocol.js.map +1 -0
  35. package/build/dex/bProtocol/types.d.ts +11 -0
  36. package/build/dex/bProtocol/types.js +8 -0
  37. package/build/dex/bProtocol/types.js.map +1 -0
  38. package/build/dex/ekubo/pools/base-pool.d.ts +47 -0
  39. package/build/dex/ekubo/pools/base-pool.js +184 -0
  40. package/build/dex/ekubo/pools/base-pool.js.map +1 -0
  41. package/build/dex/ekubo/pools/iface.d.ts +46 -0
  42. package/build/dex/ekubo/pools/iface.js +75 -0
  43. package/build/dex/ekubo/pools/iface.js.map +1 -0
  44. package/build/dex/ekubo/pools/math/price.d.ts +7 -0
  45. package/build/dex/ekubo/pools/math/price.js +112 -0
  46. package/build/dex/ekubo/pools/math/price.js.map +1 -0
  47. package/build/dex/ekubo/pools/oracle-pool.d.ts +10 -0
  48. package/build/dex/ekubo/pools/oracle-pool.js +19 -0
  49. package/build/dex/ekubo/pools/oracle-pool.js.map +1 -0
  50. package/build/dex/ekubo/pools/pool-utils.d.ts +44 -0
  51. package/build/dex/ekubo/pools/pool-utils.js +240 -0
  52. package/build/dex/ekubo/pools/pool-utils.js.map +1 -0
  53. package/build/dex/idex.d.ts +3 -3
  54. package/build/dex/idle-dao/config.d.ts +5 -0
  55. package/build/dex/idle-dao/config.js +24 -0
  56. package/build/dex/idle-dao/config.js.map +1 -0
  57. package/build/dex/idle-dao/idle-dao.d.ts +42 -0
  58. package/build/dex/idle-dao/idle-dao.js +279 -0
  59. package/build/dex/idle-dao/idle-dao.js.map +1 -0
  60. package/build/dex/idle-dao/token_list.d.ts +4 -0
  61. package/build/dex/idle-dao/token_list.js +289 -0
  62. package/build/dex/idle-dao/token_list.js.map +1 -0
  63. package/build/dex/idle-dao/tokens.d.ts +9 -0
  64. package/build/dex/idle-dao/tokens.js +68 -0
  65. package/build/dex/idle-dao/tokens.js.map +1 -0
  66. package/build/dex/idle-dao/types.d.ts +35 -0
  67. package/build/dex/idle-dao/types.js +11 -0
  68. package/build/dex/idle-dao/types.js.map +1 -0
  69. package/build/dex/idle-dao/utils.d.ts +8 -0
  70. package/build/dex/idle-dao/utils.js +149 -0
  71. package/build/dex/idle-dao/utils.js.map +1 -0
  72. package/build/dex/infusion/config.d.ts +3 -0
  73. package/build/dex/infusion/config.js +20 -0
  74. package/build/dex/infusion/config.js.map +1 -0
  75. package/build/dex/infusion/infusion-stable-pool.d.ts +4 -0
  76. package/build/dex/infusion/infusion-stable-pool.js +74 -0
  77. package/build/dex/infusion/infusion-stable-pool.js.map +1 -0
  78. package/build/dex/infusion/infusion.d.ts +51 -0
  79. package/build/dex/infusion/infusion.js +500 -0
  80. package/build/dex/infusion/infusion.js.map +1 -0
  81. package/build/dex/infusion/types.d.ts +45 -0
  82. package/build/dex/infusion/types.js.map +1 -0
  83. package/build/dex/infusion/utils/isStablePair.d.ts +2 -0
  84. package/build/dex/infusion/utils/isStablePair.js +18 -0
  85. package/build/dex/infusion/utils/isStablePair.js.map +1 -0
  86. package/build/dex/jarvis.d.ts +56 -0
  87. package/build/dex/jarvis.js +163 -0
  88. package/build/dex/jarvis.js.map +1 -0
  89. package/build/dex/mStable.d.ts +44 -0
  90. package/build/dex/mStable.js +75 -0
  91. package/build/dex/mStable.js.map +1 -0
  92. package/build/dex/maker-psm/config.d.ts +11 -0
  93. package/build/dex/maker-psm/config.js +53 -0
  94. package/build/dex/maker-psm/config.js.map +1 -0
  95. package/build/dex/maker-psm/maker-psm.d.ts +103 -0
  96. package/build/dex/maker-psm/maker-psm.js +493 -0
  97. package/build/dex/maker-psm/maker-psm.js.map +1 -0
  98. package/build/dex/maker-psm/types.d.ts +39 -0
  99. package/build/{generic-swap-transaction-builder/dex-encoder/ports.js → dex/maker-psm/types.js} +1 -1
  100. package/build/dex/maker-psm/types.js.map +1 -0
  101. package/build/dex/metric/metric.d.ts +2 -2
  102. package/build/dex/metric/metric.js +2 -5
  103. package/build/dex/metric/metric.js.map +1 -1
  104. package/build/dex/onebit/onebit.d.ts +16 -0
  105. package/build/dex/onebit/onebit.js +61 -0
  106. package/build/dex/onebit/onebit.js.map +1 -0
  107. package/build/dex/onebit/types.d.ts +14 -0
  108. package/build/dex/onebit/types.js +8 -0
  109. package/build/dex/onebit/types.js.map +1 -0
  110. package/build/dex/pancakeswap-infinity/encoder.js +16 -12
  111. package/build/dex/pancakeswap-infinity/encoder.js.map +1 -1
  112. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.d.ts +2 -0
  113. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js +5 -0
  114. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js.map +1 -1
  115. package/build/dex/pancakeswap-v3/pancakeswap-v3.d.ts +6 -3
  116. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +85 -9
  117. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
  118. package/build/dex/quick-perps/config.d.ts +11 -0
  119. package/build/dex/quick-perps/config.js +27 -0
  120. package/build/dex/quick-perps/config.js.map +1 -0
  121. package/build/dex/quick-perps/fast-price-feed.d.ts +26 -0
  122. package/build/dex/quick-perps/fast-price-feed.js +184 -0
  123. package/build/dex/quick-perps/fast-price-feed.js.map +1 -0
  124. package/build/dex/quick-perps/pool.d.ts +21 -0
  125. package/build/dex/quick-perps/pool.js +229 -0
  126. package/build/dex/quick-perps/pool.js.map +1 -0
  127. package/build/dex/quick-perps/quick-perps.d.ts +53 -0
  128. package/build/dex/quick-perps/quick-perps.js +247 -0
  129. package/build/dex/quick-perps/quick-perps.js.map +1 -0
  130. package/build/dex/quick-perps/types.d.ts +98 -0
  131. package/build/{executor/encoding-types.js → dex/quick-perps/types.js} +1 -1
  132. package/build/dex/quick-perps/types.js.map +1 -0
  133. package/build/dex/quick-perps/usdq.d.ts +15 -0
  134. package/build/dex/quick-perps/usdq.js +62 -0
  135. package/build/dex/quick-perps/usdq.js.map +1 -0
  136. package/build/dex/quick-perps/vault-price-feed.d.ts +43 -0
  137. package/build/dex/quick-perps/vault-price-feed.js +203 -0
  138. package/build/dex/quick-perps/vault-price-feed.js.map +1 -0
  139. package/build/dex/quick-perps/vault-utils.d.ts +8 -0
  140. package/build/dex/quick-perps/vault-utils.js +42 -0
  141. package/build/dex/quick-perps/vault-utils.js.map +1 -0
  142. package/build/dex/quick-perps/vault.d.ts +46 -0
  143. package/build/dex/quick-perps/vault.js +182 -0
  144. package/build/dex/quick-perps/vault.js.map +1 -0
  145. package/build/dex/se-vlr/config.d.ts +3 -0
  146. package/build/dex/se-vlr/config.js +24 -0
  147. package/build/dex/se-vlr/config.js.map +1 -0
  148. package/build/dex/se-vlr/se-vlr-pool.d.ts +39 -0
  149. package/build/dex/se-vlr/se-vlr-pool.js +70 -0
  150. package/build/dex/se-vlr/se-vlr-pool.js.map +1 -0
  151. package/build/dex/se-vlr/se-vlr.d.ts +35 -0
  152. package/build/dex/se-vlr/se-vlr.js +131 -0
  153. package/build/dex/se-vlr/se-vlr.js.map +1 -0
  154. package/build/dex/se-vlr/types.d.ts +6 -0
  155. package/build/dex/se-vlr/types.js +3 -0
  156. package/build/dex/se-vlr/types.js.map +1 -0
  157. package/build/dex/shell.d.ts +25 -0
  158. package/build/dex/shell.js +41 -0
  159. package/build/dex/shell.js.map +1 -0
  160. package/build/dex/simple-exchange.d.ts +1 -1
  161. package/build/dex/simple-exchange.js +1 -1
  162. package/build/dex/simple-exchange.js.map +1 -1
  163. package/build/dex/solidly/forks-override/aerodrome.d.ts +14 -0
  164. package/build/dex/solidly/forks-override/aerodrome.js +46 -0
  165. package/build/dex/solidly/forks-override/aerodrome.js.map +1 -0
  166. package/build/dex/solidly/forks-override/chronos.d.ts +23 -0
  167. package/build/dex/solidly/forks-override/chronos.js +141 -0
  168. package/build/dex/solidly/forks-override/chronos.js.map +1 -0
  169. package/build/dex/solidly/forks-override/usdfi.d.ts +8 -0
  170. package/build/dex/solidly/forks-override/usdfi.js +15 -0
  171. package/build/dex/solidly/forks-override/usdfi.js.map +1 -0
  172. package/build/dex/solidly/forks-override/velocimeter.d.ts +23 -0
  173. package/build/dex/solidly/forks-override/velocimeter.js +77 -0
  174. package/build/dex/solidly/forks-override/velocimeter.js.map +1 -0
  175. package/build/dex/solidly-v3/solidly-v3-pool.d.ts +3 -0
  176. package/build/dex/solidly-v3/solidly-v3-pool.js +8 -0
  177. package/build/dex/solidly-v3/solidly-v3-pool.js.map +1 -1
  178. package/build/dex/solidly-v3/solidly-v3.d.ts +5 -2
  179. package/build/dex/solidly-v3/solidly-v3.js +84 -8
  180. package/build/dex/solidly-v3/solidly-v3.js.map +1 -1
  181. package/build/dex/tessera/types.d.ts +3 -0
  182. package/build/dex/tessera/types.js +3 -0
  183. package/build/dex/tessera/types.js.map +1 -0
  184. package/build/dex/trader-joe-v2.d.ts +40 -0
  185. package/build/dex/trader-joe-v2.js +74 -0
  186. package/build/dex/trader-joe-v2.js.map +1 -0
  187. package/build/dex/uniswap-v2/dfyn.d.ts +19 -0
  188. package/build/dex/uniswap-v2/dfyn.js +61 -0
  189. package/build/dex/uniswap-v2/dfyn.js.map +1 -0
  190. package/build/dex/uniswap-v2/excalibur.d.ts +24 -0
  191. package/build/dex/uniswap-v2/excalibur.js +47 -0
  192. package/build/dex/uniswap-v2/excalibur.js.map +1 -0
  193. package/build/dex/uniswap-v2/mdex.d.ts +24 -0
  194. package/build/dex/uniswap-v2/mdex.js +50 -0
  195. package/build/dex/uniswap-v2/mdex.js.map +1 -0
  196. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +24 -0
  197. package/build/dex/uniswap-v2/nomiswap-v2.js +57 -0
  198. package/build/dex/uniswap-v2/nomiswap-v2.js.map +1 -0
  199. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js +160 -0
  200. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js.map +1 -0
  201. package/build/dex/uniswap-v3/scripts/measure-calc-time.js +222 -110
  202. package/build/dex/uniswap-v3/scripts/measure-calc-time.js.map +1 -1
  203. package/build/dex/uniswap-v3/types.d.ts +1 -0
  204. package/build/dex/uniswap-v3/types.js.map +1 -1
  205. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  206. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  207. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  208. package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +2 -0
  209. package/build/dex/uniswap-v3/uniswap-v3-pool.js +5 -0
  210. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  211. package/build/dex/uniswap-v3/uniswap-v3.d.ts +11 -3
  212. package/build/dex/uniswap-v3/uniswap-v3.js +86 -9
  213. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  214. package/build/dex/uniswap-v4/contract-math/Position.d.ts +3 -0
  215. package/build/dex/uniswap-v4/contract-math/Position.js +10 -0
  216. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -0
  217. package/build/dex/uniswap-v4/types.d.ts +1 -0
  218. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +2 -0
  219. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +3 -0
  220. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  221. package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +3 -0
  222. package/build/dex/uniswap-v4/uniswap-v4-pool.js +18 -0
  223. package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
  224. package/build/dex/uniswap-v4/uniswap-v4.d.ts +3 -1
  225. package/build/dex/uniswap-v4/uniswap-v4.js +74 -14
  226. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  227. package/build/dex/usual-bond/config.d.ts +3 -0
  228. package/build/dex/usual-bond/config.js +13 -0
  229. package/build/dex/usual-bond/config.js.map +1 -0
  230. package/build/dex/usual-bond/types.d.ts +7 -0
  231. package/build/dex/usual-bond/types.js +3 -0
  232. package/build/dex/usual-bond/types.js.map +1 -0
  233. package/build/dex/usual-bond/usual-bond.d.ts +35 -0
  234. package/build/dex/usual-bond/usual-bond.js +176 -0
  235. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  236. package/build/dex/wusdm/config.d.ts +3 -0
  237. package/build/dex/wusdm/config.js +43 -0
  238. package/build/dex/wusdm/config.js.map +1 -0
  239. package/build/dex/wusdm/constants.d.ts +2 -0
  240. package/build/dex/wusdm/constants.js +6 -0
  241. package/build/dex/wusdm/constants.js.map +1 -0
  242. package/build/dex/wusdm/types.d.ts +18 -0
  243. package/build/dex/wusdm/types.js +11 -0
  244. package/build/dex/wusdm/types.js.map +1 -0
  245. package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
  246. package/build/dex/wusdm/wusdm-pool.js +74 -0
  247. package/build/dex/wusdm/wusdm-pool.js.map +1 -0
  248. package/build/dex/wusdm/wusdm.d.ts +46 -0
  249. package/build/dex/wusdm/wusdm.js +243 -0
  250. package/build/dex/wusdm/wusdm.js.map +1 -0
  251. package/build/dex/zerox/config.d.ts +2 -0
  252. package/build/dex/zerox/config.js +33 -0
  253. package/build/dex/zerox/config.js.map +1 -0
  254. package/build/dex/zerox/index.d.ts +22 -0
  255. package/build/dex/zerox/index.js +225 -0
  256. package/build/dex/zerox/index.js.map +1 -0
  257. package/build/dex/zerox/order.d.ts +88 -0
  258. package/build/dex/zerox/order.js +53 -0
  259. package/build/dex/zerox/order.js.map +1 -0
  260. package/build/dex/zerox/types.d.ts +73 -0
  261. package/build/dex/zerox/types.js +21 -0
  262. package/build/dex/zerox/types.js.map +1 -0
  263. package/build/generic-swap-transaction-builder.d.ts +4 -6
  264. package/build/generic-swap-transaction-builder.js +6 -8
  265. package/build/generic-swap-transaction-builder.js.map +1 -1
  266. package/build/index.d.ts +1 -1
  267. package/build/index.js.map +1 -1
  268. package/build/pricing-helper.d.ts +1 -1
  269. package/build/pricing-helper.js +2 -2
  270. package/build/pricing-helper.js.map +1 -1
  271. package/build/types.d.ts +0 -3
  272. package/native/Cargo.lock +331 -0
  273. package/native/Cargo.toml +22 -0
  274. package/native/build.rs +5 -0
  275. package/native/package-lock.json +32 -0
  276. package/native/package.json +20 -0
  277. package/native/src/config.rs +73 -0
  278. package/native/src/lib.rs +528 -0
  279. package/native/src/math/bit_math.rs +177 -0
  280. package/native/src/math/full_math.rs +217 -0
  281. package/native/src/math/liquidity_math.rs +72 -0
  282. package/native/src/math/mod.rs +10 -0
  283. package/native/src/math/oracle.rs +493 -0
  284. package/native/src/math/sqrt_price_math.rs +272 -0
  285. package/native/src/math/swap_math.rs +306 -0
  286. package/native/src/math/tick.rs +239 -0
  287. package/native/src/math/tick_bitmap.rs +312 -0
  288. package/native/src/math/tick_math.rs +321 -0
  289. package/native/src/math/unsafe_math.rs +67 -0
  290. package/native/src/pool_state.rs +41 -0
  291. package/native/src/query_outputs.rs +379 -0
  292. package/native/src/v4_query_outputs.rs +255 -0
  293. package/package.json +2 -1
  294. package/build/abi/pancakeswap-infinity/cl-pool-manager.json +0 -80
  295. package/build/dex/fluid-dex/scripts/measure-calc-time.js +0 -178
  296. package/build/dex/fluid-dex/scripts/measure-calc-time.js.map +0 -1
  297. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +0 -1
  298. package/build/dex/uniswap-v4/api-go/compare-pricing.js +0 -187
  299. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +0 -1
  300. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +0 -1
  301. package/build/dex/uniswap-v4/api-go/compare-states.js +0 -149
  302. package/build/dex/uniswap-v4/api-go/compare-states.js.map +0 -1
  303. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  304. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +0 -140
  305. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +0 -1
  306. package/build/executor/__test-utils__/snapshot-test-helpers.d.ts +0 -10
  307. package/build/executor/__test-utils__/snapshot-test-helpers.js +0 -72
  308. package/build/executor/__test-utils__/snapshot-test-helpers.js.map +0 -1
  309. package/build/executor/address-utils.d.ts +0 -2
  310. package/build/executor/address-utils.js +0 -7
  311. package/build/executor/address-utils.js.map +0 -1
  312. package/build/executor/approval.d.ts +0 -9
  313. package/build/executor/approval.js +0 -29
  314. package/build/executor/approval.js.map +0 -1
  315. package/build/executor/encoding-context.d.ts +0 -4
  316. package/build/executor/encoding-context.js +0 -54
  317. package/build/executor/encoding-context.js.map +0 -1
  318. package/build/executor/encoding-types.d.ts +0 -75
  319. package/build/executor/encoding-types.js.map +0 -1
  320. package/build/executor/factory.d.ts +0 -4
  321. package/build/executor/factory.js +0 -23
  322. package/build/executor/factory.js.map +0 -1
  323. package/build/executor/route-plan.d.ts +0 -8
  324. package/build/executor/route-plan.js +0 -109
  325. package/build/executor/route-plan.js.map +0 -1
  326. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.d.ts +0 -6
  327. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js +0 -39
  328. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js.map +0 -1
  329. package/build/generic-swap-transaction-builder/dex-encoder/index.d.ts +0 -4
  330. package/build/generic-swap-transaction-builder/dex-encoder/index.js +0 -21
  331. package/build/generic-swap-transaction-builder/dex-encoder/index.js.map +0 -1
  332. package/build/generic-swap-transaction-builder/dex-encoder/ports.d.ts +0 -26
  333. package/build/generic-swap-transaction-builder/dex-encoder/ports.js.map +0 -1
  334. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.d.ts +0 -22
  335. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js +0 -299
  336. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js.map +0 -1
  337. package/build/generic-swap-transaction-builder/dex-encoder/types.d.ts +0 -207
  338. package/build/generic-swap-transaction-builder/dex-encoder/types.js +0 -194
  339. package/build/generic-swap-transaction-builder/dex-encoder/types.js.map +0 -1
  340. package/build/generic-swap-transaction-builder/orchestration.d.ts +0 -65
  341. package/build/generic-swap-transaction-builder/orchestration.js +0 -198
  342. package/build/generic-swap-transaction-builder/orchestration.js.map +0 -1
  343. package/build/generic-swap-transaction-builder/resolved/build-transaction.d.ts +0 -13
  344. package/build/generic-swap-transaction-builder/resolved/build-transaction.js +0 -343
  345. package/build/generic-swap-transaction-builder/resolved/build-transaction.js.map +0 -1
  346. package/build/generic-swap-transaction-builder/resolved/index.d.ts +0 -4
  347. package/build/generic-swap-transaction-builder/resolved/index.js +0 -21
  348. package/build/generic-swap-transaction-builder/resolved/index.js.map +0 -1
  349. package/build/generic-swap-transaction-builder/resolved/route-plan.d.ts +0 -2
  350. package/build/generic-swap-transaction-builder/resolved/route-plan.js +0 -11
  351. package/build/generic-swap-transaction-builder/resolved/route-plan.js.map +0 -1
  352. package/build/generic-swap-transaction-builder/resolved/types.d.ts +0 -67
  353. package/build/generic-swap-transaction-builder/resolved/types.js.map +0 -1
  354. package/build/generic-swap-transaction-builder/resolved/validation.d.ts +0 -10
  355. package/build/generic-swap-transaction-builder/resolved/validation.js +0 -69
  356. package/build/generic-swap-transaction-builder/resolved/validation.js.map +0 -1
  357. /package/build/{generic-swap-transaction-builder/resolved → dex/infusion}/types.js +0 -0
  358. /package/build/dex/{fluid-dex/scripts/measure-calc-time.d.ts → uniswap-v3/scripts/bench-all-dexes.d.ts} +0 -0
@@ -0,0 +1,141 @@
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.Chronos = void 0;
7
+ const solidly_1 = require("../solidly");
8
+ const constants_1 = require("../../../constants");
9
+ const abi_1 = require("@ethersproject/abi");
10
+ const utils_1 = require("../../../utils");
11
+ const config_1 = require("../config");
12
+ const lodash_1 = __importDefault(require("lodash"));
13
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
14
+ const ChronosFactoryABI = [
15
+ {
16
+ inputs: [{ internalType: 'bool', name: '_stable', type: 'bool' }],
17
+ name: 'getFee',
18
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
19
+ stateMutability: 'view',
20
+ type: 'function',
21
+ },
22
+ ];
23
+ const chronosFactoryIface = new abi_1.Interface(ChronosFactoryABI);
24
+ class Chronos extends solidly_1.Solidly {
25
+ network;
26
+ dexHelper;
27
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['Chronos']));
28
+ constructor(network, dexKey, dexHelper) {
29
+ super(network, dexKey, dexHelper, true);
30
+ this.network = network;
31
+ this.dexHelper = dexHelper;
32
+ }
33
+ getFeesMultiCallData(pair) {
34
+ const callEntry = {
35
+ target: this.factoryAddress,
36
+ callData: chronosFactoryIface.encodeFunctionData('getFee', [pair.stable]),
37
+ };
38
+ const callDecoder = (values) => parseInt(chronosFactoryIface
39
+ .decodeFunctionResult('getFee', values)[0]
40
+ .toString());
41
+ return {
42
+ callEntry,
43
+ callDecoder,
44
+ };
45
+ }
46
+ async getTopPoolsForToken(tokenAddress, count) {
47
+ if (!this.subgraphURL)
48
+ return [];
49
+ const query = `query ($token: Bytes!, $count: Int) {
50
+ pools0: pairs(first: $count, orderBy: reserve0, orderDirection: desc, where: {token0: $token, reserve0_gt: 1, reserve1_gt: 1}) {
51
+ id
52
+ isStable
53
+ token0 {
54
+ id
55
+ decimals
56
+ }
57
+ token1 {
58
+ id
59
+ decimals
60
+ }
61
+ reserve0,
62
+ reserve1,
63
+ }
64
+ pools1: pairs(first: $count, orderBy: reserve1, orderDirection: desc, where: {token1: $token, reserve0_gt: 1, reserve1_gt: 1}) {
65
+ id
66
+ isStable
67
+ token0 {
68
+ id
69
+ decimals
70
+ }
71
+ token1 {
72
+ id
73
+ decimals
74
+ },
75
+ reserve0,
76
+ reserve1,
77
+ }
78
+ }`;
79
+ const { data } = await this.dexHelper.httpRequest.querySubgraph(this.subgraphURL, {
80
+ query,
81
+ variables: { token: tokenAddress.toLowerCase(), count },
82
+ }, { timeout: constants_1.SUBGRAPH_TIMEOUT });
83
+ if (!(data && data.pools0 && data.pools1))
84
+ throw new Error("Couldn't fetch the pools from the subgraph");
85
+ const pools0 = await this.prepareSubgraphPools(data.pools0, (pool, { address1, decimals1, liquidityUSDToken0, liquidityUSDToken1 }) => ({
86
+ exchange: this.dexKey,
87
+ stable: pool.isStable,
88
+ address: pool.id.toLowerCase(),
89
+ connectorTokens: [
90
+ {
91
+ address: address1,
92
+ decimals: decimals1,
93
+ },
94
+ ],
95
+ liquidityUSD: liquidityUSDToken0 + liquidityUSDToken1,
96
+ }));
97
+ const pools1 = await this.prepareSubgraphPools(data.pools1, (pool, { address0, decimals0, liquidityUSDToken0, liquidityUSDToken1 }) => ({
98
+ exchange: this.dexKey,
99
+ stable: pool.isStable,
100
+ address: pool.id.toLowerCase(),
101
+ connectorTokens: [
102
+ {
103
+ address: address0,
104
+ decimals: decimals0,
105
+ },
106
+ ],
107
+ liquidityUSD: liquidityUSDToken0 + liquidityUSDToken1,
108
+ }));
109
+ return lodash_1.default.slice(lodash_1.default.sortBy(lodash_1.default.concat(pools0, pools1), [pool => -1 * pool.liquidityUSD]), 0, count);
110
+ }
111
+ async prepareSubgraphPools(pools, iterator) {
112
+ return Promise.all(pools.map(async (pool) => {
113
+ const address0 = pool.token0.id.toLowerCase();
114
+ const address1 = pool.token1.id.toLowerCase();
115
+ const decimals0 = parseInt(pool.token0.decimals);
116
+ const decimals1 = parseInt(pool.token1.decimals);
117
+ const reserve0 = BigInt(new bignumber_js_1.default(pool.reserve0).multipliedBy(10 ** decimals0).toFixed());
118
+ const reserve1 = BigInt(new bignumber_js_1.default(pool.reserve1).multipliedBy(10 ** decimals1).toFixed());
119
+ const liquidityUSDToken0 = await this.dexHelper.getTokenUSDPrice({
120
+ address: address0,
121
+ decimals: decimals0,
122
+ }, reserve0);
123
+ const liquidityUSDToken1 = await this.dexHelper.getTokenUSDPrice({
124
+ address: address1,
125
+ decimals: decimals1,
126
+ }, reserve1);
127
+ return iterator(pool, {
128
+ address0,
129
+ address1,
130
+ decimals0,
131
+ decimals1,
132
+ reserve0,
133
+ reserve1,
134
+ liquidityUSDToken0,
135
+ liquidityUSDToken1,
136
+ });
137
+ }));
138
+ }
139
+ }
140
+ exports.Chronos = Chronos;
141
+ //# sourceMappingURL=chronos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chronos.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/chronos.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Network } from '../../../constants';
2
+ import { SpiritSwapV2 } from './spiritSwapV2';
3
+ export declare class Usdfi extends SpiritSwapV2 {
4
+ static dexKeysWithNetwork: {
5
+ key: string;
6
+ networks: Network[];
7
+ }[];
8
+ }
@@ -0,0 +1,15 @@
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.Usdfi = void 0;
7
+ const utils_1 = require("../../../utils");
8
+ const config_1 = require("../config");
9
+ const lodash_1 = __importDefault(require("lodash"));
10
+ const spiritSwapV2_1 = require("./spiritSwapV2");
11
+ class Usdfi extends spiritSwapV2_1.SpiritSwapV2 {
12
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['Usdfi']));
13
+ }
14
+ exports.Usdfi = Usdfi;
15
+ //# sourceMappingURL=usdfi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usdfi.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/usdfi.ts"],"names":[],"mappings":";;;;;;AACA,0CAAuD;AACvD,sCAA0C;AAC1C,oDAAuB;AACvB,iDAA8C;AAE9C,MAAa,KAAM,SAAQ,2BAAY;IAC9B,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;AAF5D,sBAGC"}
@@ -0,0 +1,23 @@
1
+ import { SolidlyPair } from '../types';
2
+ import { Network } from '../../../constants';
3
+ import { IDexHelper } from '../../../dex-helper';
4
+ import { MultiCallParams } from '../../../lib/multi-wrapper';
5
+ import { SolidlyRpcPoolTracker } from '../rpc-pool-tracker';
6
+ export declare class Velocimeter extends SolidlyRpcPoolTracker {
7
+ protected network: Network;
8
+ protected dexHelper: IDexHelper;
9
+ static dexKeysWithNetwork: {
10
+ key: string;
11
+ networks: Network[];
12
+ }[];
13
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper);
14
+ protected getFeesMultiCallData(pair: SolidlyPair): {
15
+ callEntry: {
16
+ target: string;
17
+ callData: string;
18
+ };
19
+ callDecoder: (values: any[]) => number;
20
+ };
21
+ protected getAllPoolsCallData(): MultiCallParams<number>;
22
+ protected getPoolCallData(index: number): MultiCallParams<string>;
23
+ }
@@ -0,0 +1,77 @@
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.Velocimeter = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const utils_1 = require("../../../utils");
9
+ const config_1 = require("../config");
10
+ const lodash_1 = __importDefault(require("lodash"));
11
+ const decoders_1 = require("../../../lib/decoders");
12
+ const rpc_pool_tracker_1 = require("../rpc-pool-tracker");
13
+ const velocimeterFactoryABI = [
14
+ {
15
+ inputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
16
+ name: 'allPairs',
17
+ outputs: [{ internalType: 'address', name: '', type: 'address' }],
18
+ stateMutability: 'view',
19
+ type: 'function',
20
+ },
21
+ {
22
+ inputs: [],
23
+ name: 'allPairsLength',
24
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
25
+ stateMutability: 'view',
26
+ type: 'function',
27
+ },
28
+ {
29
+ inputs: [{ internalType: '_pair', name: '_stable', type: 'address' }],
30
+ name: 'getFee',
31
+ outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],
32
+ stateMutability: 'view',
33
+ type: 'function',
34
+ },
35
+ ];
36
+ const velocimeterFactoryIface = new abi_1.Interface(velocimeterFactoryABI);
37
+ class Velocimeter extends rpc_pool_tracker_1.SolidlyRpcPoolTracker {
38
+ network;
39
+ dexHelper;
40
+ static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyConfig, ['Velocimeter']));
41
+ constructor(network, dexKey, dexHelper) {
42
+ super(network, dexKey, dexHelper, true);
43
+ this.network = network;
44
+ this.dexHelper = dexHelper;
45
+ }
46
+ getFeesMultiCallData(pair) {
47
+ const callEntry = {
48
+ target: this.factoryAddress,
49
+ callData: velocimeterFactoryIface.encodeFunctionData('getFee', [
50
+ pair.exchange,
51
+ ]),
52
+ };
53
+ const callDecoder = (values) => parseInt(velocimeterFactoryIface
54
+ .decodeFunctionResult('getFee', values)[0]
55
+ .toString());
56
+ return {
57
+ callEntry,
58
+ callDecoder,
59
+ };
60
+ }
61
+ getAllPoolsCallData() {
62
+ return {
63
+ target: this.factoryAddress,
64
+ callData: velocimeterFactoryIface.encodeFunctionData('allPairsLength', []),
65
+ decodeFunction: decoders_1.uint256DecodeToNumber,
66
+ };
67
+ }
68
+ getPoolCallData(index) {
69
+ return {
70
+ target: this.factoryAddress,
71
+ callData: velocimeterFactoryIface.encodeFunctionData('allPairs', [index]),
72
+ decodeFunction: decoders_1.addressDecode,
73
+ };
74
+ }
75
+ }
76
+ exports.Velocimeter = Velocimeter;
77
+ //# sourceMappingURL=velocimeter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"velocimeter.js","sourceRoot":"","sources":["../../../../src/dex/solidly/forks-override/velocimeter.ts"],"names":[],"mappings":";;;;;;AAIA,4CAA+C;AAC/C,0CAAuD;AACvD,sCAA0C;AAC1C,oDAAuB;AACvB,oDAA6E;AAE7E,0DAA4D;AAE5D,MAAM,qBAAqB,GAAG;IAC5B;QACE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAChE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACrE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjE,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACF,CAAC;AAEF,MAAM,uBAAuB,GAAG,IAAI,eAAS,CAAC,qBAAqB,CAAC,CAAC;AAErE,MAAa,WAAY,SAAQ,wCAAqB;IAKxC;IAEA;IANL,MAAM,CAAC,kBAAkB,GAC9B,IAAA,6BAAqB,EAAC,gBAAC,CAAC,IAAI,CAAC,sBAAa,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAEhE,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB;QAE/B,KAAK,CACH,OAAO,EACP,MAAM,EACN,SAAS,EACT,IAAI,CACL,CAAC;QATQ,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;IAQjC,CAAC;IAES,oBAAoB,CAAC,IAAiB;QAC9C,MAAM,SAAS,GAAG;YAChB,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,QAAQ,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,QAAQ,EAAE;gBAC7D,IAAI,CAAC,QAAQ;aACd,CAAC;SACH,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,MAAa,EAAE,EAAE,CACpC,QAAQ,CACN,uBAAuB;aACpB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aACzC,QAAQ,EAAE,CACd,CAAC;QAEJ,OAAO;YACL,SAAS;YACT,WAAW;SACZ,CAAC;IACJ,CAAC;IAES,mBAAmB;QAC3B,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,QAAQ,EAAE,uBAAuB,CAAC,kBAAkB,CAClD,gBAAgB,EAChB,EAAE,CACH;YACD,cAAc,EAAE,gCAAqB;SACtC,CAAC;IACJ,CAAC;IAES,eAAe,CAAC,KAAa;QACrC,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,QAAQ,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;YACzE,cAAc,EAAE,wBAAa;SAC9B,CAAC;IACJ,CAAC;;AAtDH,kCAuDC"}
@@ -5,6 +5,7 @@ import { Log, Logger, BlockHeader, Address } from '../../types';
5
5
  import { InitializeStateOptions, StatefulEventSubscriber } from '../../stateful-event-subscriber';
6
6
  import { IDexHelper } from '../../dex-helper/idex-helper';
7
7
  import { PoolState, DecodeStateMultiCallFunc } from './types';
8
+ import { RustPoolRegistryType } from './contract-math/native-bridge';
8
9
  export declare class SolidlyV3EventPool extends StatefulEventSubscriber<PoolState> {
9
10
  readonly dexHelper: IDexHelper;
10
11
  readonly stateMultiContract: Contract;
@@ -24,6 +25,7 @@ export declare class SolidlyV3EventPool extends StatefulEventSubscriber<PoolStat
24
25
  readonly poolIface: Interface;
25
26
  initFailed: boolean;
26
27
  initRetryAttemptCount: number;
28
+ registry: RustPoolRegistryType | null;
27
29
  readonly tickSpacingAsString: string;
28
30
  constructor(dexHelper: IDexHelper, parentName: string, stateMultiContract: Contract, decodeStateMultiCallResultWithRelativeBitmaps: DecodeStateMultiCallFunc | undefined, erc20Interface: Interface, factoryAddress: Address, tickSpacing: bigint, token0: Address, token1: Address, logger: Logger, mapKey: string | undefined, poolInitCodeHash: string);
29
31
  get poolAddress(): Address;
@@ -38,6 +40,7 @@ export declare class SolidlyV3EventPool extends StatefulEventSubscriber<PoolStat
38
40
  protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<PoolState> | null;
39
41
  private _getStateRequestCallData;
40
42
  getBitmapRangeToRequest(): bigint;
43
+ _setState(state: any, blockNumber: number, reason?: string): void;
41
44
  generateState(blockNumber: number): Promise<Readonly<PoolState>>;
42
45
  handleSwapEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
43
46
  handleBurnEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
@@ -17,6 +17,7 @@ const TickBitMap_1 = require("./contract-math/TickBitMap");
17
17
  const decoders_1 = require("../../lib/decoders");
18
18
  const utils_2 = require("./utils");
19
19
  const utils_3 = require("./contract-math/utils");
20
+ const native_bridge_1 = require("./contract-math/native-bridge");
20
21
  const FEES_TO_TICK_SPACING = {
21
22
  500: 10n,
22
23
  };
@@ -37,6 +38,7 @@ class SolidlyV3EventPool extends stateful_event_subscriber_1.StatefulEventSubscr
37
38
  poolIface = new abi_1.Interface(SolidlyV3Pool_abi_json_1.default);
38
39
  initFailed = false;
39
40
  initRetryAttemptCount = 0;
41
+ registry = null;
40
42
  // public readonly feeCodeAsString;
41
43
  tickSpacingAsString;
42
44
  constructor(dexHelper, parentName, stateMultiContract, decodeStateMultiCallResultWithRelativeBitmaps, erc20Interface, factoryAddress, tickSpacing, token0, token1, logger, mapKey = '', poolInitCodeHash) {
@@ -163,6 +165,12 @@ class SolidlyV3EventPool extends stateful_event_subscriber_1.StatefulEventSubscr
163
165
  getBitmapRangeToRequest() {
164
166
  return constants_1.TICK_BITMAP_TO_USE + constants_1.TICK_BITMAP_BUFFER;
165
167
  }
168
+ _setState(state, blockNumber, reason) {
169
+ super._setState(state, blockNumber);
170
+ if (this.registry && state) {
171
+ (0, native_bridge_1.solidlyRegistrySetPool)(this.registry, this.name, state);
172
+ }
173
+ }
166
174
  async generateState(blockNumber) {
167
175
  const callData = this._getStateRequestCallData();
168
176
  const [resBalance0, resBalance1, resState] = await this.dexHelper.multiWrapper.tryAggregate(false, callData, blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
@@ -1 +1 @@
1
- {"version":3,"file":"solidly-v3-pool.js","sourceRoot":"","sources":["../../../src/dex/solidly-v3/solidly-v3-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solidly-v3-pool.js","sourceRoot":"","sources":["../../../src/dex/solidly-v3/solidly-v3-pool.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,11 @@ import { Token, Address, ExchangePrices, AdapterExchangeParam, SimpleExchangePar
3
3
  import { SwapSide, Network } from '../../constants';
4
4
  import { IDex } from '../../dex/idex';
5
5
  import { IDexHelper } from '../../dex-helper/idex-helper';
6
- import { DexParams, SolidlyV3Data, UniswapV3Param } from './types';
6
+ import { DexParams, OutputResult, SolidlyV3Data, UniswapV3Param } from './types';
7
7
  import { SimpleExchange } from '../simple-exchange';
8
8
  import { SolidlyV3EventPool } from './solidly-v3-pool';
9
9
  import { OnPoolCreatedCallback } from './solidly-v3-factory';
10
+ import { RustPoolRegistryType } from './contract-math/native-bridge';
10
11
  export declare class SolidlyV3 extends SimpleExchange implements IDex<SolidlyV3Data, UniswapV3Param> {
11
12
  protected network: Network;
12
13
  protected dexHelper: IDexHelper;
@@ -22,6 +23,7 @@ export declare class SolidlyV3 extends SimpleExchange implements IDex<SolidlyV3D
22
23
  private poolInitPromises;
23
24
  readonly hasConstantPriceLargeAmounts = false;
24
25
  readonly needWrapNative = true;
26
+ readonly registry: RustPoolRegistryType | null;
25
27
  readonly directSwapIface: Interface;
26
28
  intervalTask?: NodeJS.Timeout;
27
29
  static dexKeysWithNetwork: {
@@ -48,7 +50,7 @@ export declare class SolidlyV3 extends SimpleExchange implements IDex<SolidlyV3D
48
50
  private _initPool;
49
51
  addMasterPool(poolKey: string, blockNumber: number): Promise<boolean>;
50
52
  getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
51
- getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<SolidlyV3Data>>;
53
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], _transferFees?: any, _isFirstSwap?: boolean, useRust?: boolean): Promise<null | ExchangePrices<SolidlyV3Data>>;
52
54
  getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: SolidlyV3Data, side: SwapSide): AdapterExchangeParam;
53
55
  getCalldataGasCost(poolPrices: PoolPrices<SolidlyV3Data>): number | number[];
54
56
  getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: SolidlyV3Data, side: SwapSide): Promise<SimpleExchangeParam>;
@@ -58,6 +60,7 @@ export declare class SolidlyV3 extends SimpleExchange implements IDex<SolidlyV3D
58
60
  private _getLoweredAddresses;
59
61
  private _sortTokens;
60
62
  private _toLowerForAllConfigAddresses;
63
+ protected _applyBalanceCap(result: OutputResult, amounts: bigint[], side: SwapSide, destTokenBalance: bigint): OutputResult | null;
61
64
  private _getOutputs;
62
65
  private _querySubgraph;
63
66
  private _encodePath;
@@ -54,6 +54,7 @@ const uniswap_v3_math_1 = require("./contract-math/uniswap-v3-math");
54
54
  const TickMath_1 = require("./contract-math/TickMath");
55
55
  const solidly_v3_factory_1 = require("./solidly-v3-factory");
56
56
  const types_1 = require("../../executor/types");
57
+ const native_bridge_1 = require("./contract-math/native-bridge");
57
58
  const PoolsRegistryHashKey = `${constants_1.CACHE_PREFIX}_poolsRegistry`;
58
59
  const UNISWAPV3_CLEAN_NOT_EXISTING_POOL_TTL_MS = 6 * 24 * 60 * 60 * 1000; // 6 days
59
60
  const UNISWAPV3_CLEAN_NOT_EXISTING_POOL_INTERVAL_MS = 2 * 24 * 60 * 60 * 1000; // Once in two days
@@ -72,6 +73,7 @@ class SolidlyV3 extends simple_exchange_1.SimpleExchange {
72
73
  poolInitPromises = {};
73
74
  hasConstantPriceLargeAmounts = false;
74
75
  needWrapNative = true;
76
+ registry = (0, native_bridge_1.createSolidlyRegistry)();
75
77
  directSwapIface = new abi_1.Interface(DirectSwap_json_1.default);
76
78
  intervalTask;
77
79
  static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.SolidlyV3Config, ['SolidlyV3']));
@@ -98,6 +100,7 @@ class SolidlyV3 extends simple_exchange_1.SimpleExchange {
98
100
  this.factory = new solidly_v3_factory_1.SolidlyV3Factory(dexHelper, dexKey, this.config.factory, this.logger, this.onPoolCreatedDeleteFromNonExistingSet);
99
101
  this.notExistingPoolSetKey =
100
102
  `${constants_1.CACHE_PREFIX}_${network}_${dexKey}_not_existings_pool_set`.toLowerCase();
103
+ this.logger.info(`${dexKey}: native Rust math ${this.registry ? 'enabled' : 'not available'}`);
101
104
  }
102
105
  get supportedTickSpacings() {
103
106
  return this.config.supportedTickSpacings;
@@ -192,6 +195,7 @@ class SolidlyV3 extends simple_exchange_1.SimpleExchange {
192
195
  pool =
193
196
  pool ||
194
197
  new solidly_v3_pool_1.SolidlyV3EventPool(this.dexHelper, this.dexKey, this.stateMultiContract, this.config.decodeStateMultiCallResultWithRelativeBitmaps, this.erc20Interface, this.config.factory, tickSpacing, token0, token1, this.logger, this.cacheStateKey, this.config.initHash);
198
+ pool.registry = this.registry;
195
199
  let resultPool = pool;
196
200
  try {
197
201
  await pool.initialize(blockNumber, {
@@ -253,7 +257,7 @@ class SolidlyV3 extends simple_exchange_1.SimpleExchange {
253
257
  return [];
254
258
  return pools.map(pool => this.getPoolIdentifier(_srcAddress, _destAddress, pool.tickSpacing));
255
259
  }
256
- async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
260
+ async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools, _transferFees, _isFirstSwap, useRust) {
257
261
  try {
258
262
  const _srcToken = this.dexHelper.config.wrapETH(srcToken);
259
263
  const _destToken = this.dexHelper.config.wrapETH(destToken);
@@ -302,18 +306,58 @@ class SolidlyV3 extends simple_exchange_1.SimpleExchange {
302
306
  const _amounts = [...amounts.slice(1)];
303
307
  const [token0] = this._sortTokens(_srcAddress, _destAddress);
304
308
  const zeroForOne = token0 === _srcAddress ? true : false;
305
- const result = await Promise.all(poolsToUse.poolWithState.map(async (pool, i) => {
309
+ // Filter eligible pools (positive liquidity)
310
+ const eligible = [];
311
+ for (let i = 0; i < poolsToUse.poolWithState.length; i++) {
312
+ const pool = poolsToUse.poolWithState[i];
306
313
  const state = states[i];
307
314
  if (state.liquidity <= 0n) {
308
315
  if (state.liquidity < 0) {
309
316
  this.logger.error(`${this.dexKey}-${this.network}: ${pool.poolAddress} pool has negative liquidity: ${state.liquidity}. Find with key: ${pool.mapKey}`);
310
317
  }
311
318
  this.logger.trace(`pool have 0 liquidity`);
312
- return null;
319
+ continue;
320
+ }
321
+ eligible.push({ pool, state, idx: i });
322
+ }
323
+ // Batch query via registry (parallel Rust) or fallback to per-pool
324
+ const useBatchRust = useRust !== false && this.registry && eligible.length > 1;
325
+ let batchUnitResults = null;
326
+ let batchPriceResults = null;
327
+ if (useBatchRust) {
328
+ const poolKeys = eligible.map(e => e.pool.name);
329
+ const sideNum = side === constants_1.SwapSide.SELL ? 0 : 1;
330
+ try {
331
+ const unitRaw = this.registry.queryMany(poolKeys, [unitAmount], zeroForOne, sideNum);
332
+ const priceRaw = this.registry.queryMany(poolKeys, _amounts, zeroForOne, sideNum);
333
+ batchUnitResults = new Map(unitRaw.map(r => [r.key, r]));
334
+ batchPriceResults = new Map(priceRaw.map(r => [r.key, r]));
313
335
  }
336
+ catch (e) {
337
+ this.logger.debug('Batch Rust query failed, falling back to per-pool', e);
338
+ }
339
+ }
340
+ const result = eligible.map(({ pool, state }) => {
314
341
  const balanceDestToken = _destAddress === pool.token0 ? state.balance0 : state.balance1;
315
- const unitResult = this._getOutputs(state, [unitAmount], zeroForOne, side, balanceDestToken);
316
- const pricesResult = this._getOutputs(state, _amounts, zeroForOne, side, balanceDestToken);
342
+ const poolKey = pool.name;
343
+ let unitResult = null;
344
+ let pricesResult = null;
345
+ let usedRust = false;
346
+ // Try batch results first
347
+ if (batchUnitResults && batchPriceResults) {
348
+ const ur = batchUnitResults.get(poolKey);
349
+ const pr = batchPriceResults.get(poolKey);
350
+ if (ur && ur.outputs.length > 0 && pr && pr.outputs.length > 0) {
351
+ unitResult = this._applyBalanceCap(ur, [unitAmount], side, balanceDestToken);
352
+ pricesResult = this._applyBalanceCap(pr, _amounts, side, balanceDestToken);
353
+ usedRust = true;
354
+ }
355
+ }
356
+ // Fallback to per-pool JS math
357
+ if (!unitResult || !pricesResult) {
358
+ unitResult = this._getOutputs(state, [unitAmount], zeroForOne, side, balanceDestToken);
359
+ pricesResult = this._getOutputs(state, _amounts, zeroForOne, side, balanceDestToken);
360
+ }
317
361
  if (!unitResult || !pricesResult) {
318
362
  this.logger.debug('Prices or unit is not calculated');
319
363
  return null;
@@ -338,6 +382,7 @@ class SolidlyV3 extends simple_exchange_1.SimpleExchange {
338
382
  data: {
339
383
  zeroForOne,
340
384
  poolAddress: pool.poolAddress,
385
+ useRust: usedRust,
341
386
  },
342
387
  poolIdentifiers: [
343
388
  this.getPoolIdentifier(pool.token0, pool.token1, pool.tickSpacing),
@@ -346,7 +391,7 @@ class SolidlyV3 extends simple_exchange_1.SimpleExchange {
346
391
  gasCost: gasCost,
347
392
  poolAddresses: [pool.poolAddress],
348
393
  };
349
- }));
394
+ });
350
395
  const notNullResult = result.filter(res => res !== null);
351
396
  return notNullResult;
352
397
  }
@@ -541,9 +586,40 @@ class SolidlyV3 extends simple_exchange_1.SimpleExchange {
541
586
  };
542
587
  return newConfig;
543
588
  }
544
- _getOutputs(state, amounts, zeroForOne, side, destTokenBalance) {
589
+ _applyBalanceCap(result, amounts, side, destTokenBalance) {
590
+ const outputsResult = {
591
+ outputs: [...result.outputs],
592
+ tickCounts: [...result.tickCounts],
593
+ };
594
+ if (side === constants_1.SwapSide.SELL) {
595
+ if (outputsResult.outputs[0] > destTokenBalance) {
596
+ return null;
597
+ }
598
+ for (let i = 0; i < outputsResult.outputs.length; i++) {
599
+ if (outputsResult.outputs[i] > destTokenBalance) {
600
+ outputsResult.outputs[i] = 0n;
601
+ outputsResult.tickCounts[i] = 0;
602
+ }
603
+ }
604
+ }
605
+ else {
606
+ if (amounts[0] > destTokenBalance) {
607
+ return null;
608
+ }
609
+ for (let i = 0; i < amounts.length; i++) {
610
+ if (amounts[i] > destTokenBalance) {
611
+ outputsResult.outputs[i] = 0n;
612
+ outputsResult.tickCounts[i] = 0;
613
+ }
614
+ }
615
+ }
616
+ return outputsResult;
617
+ }
618
+ _getOutputs(state, amounts, zeroForOne, side, destTokenBalance, rustHandle) {
545
619
  try {
546
- const outputsResult = uniswap_v3_math_1.uniswapV3Math.queryOutputs(state, amounts, zeroForOne, side);
620
+ const outputsResult = rustHandle
621
+ ? rustHandle.queryOutputs(amounts, zeroForOne, side === constants_1.SwapSide.SELL ? 0 : 1)
622
+ : uniswap_v3_math_1.uniswapV3Math.queryOutputs(state, amounts, zeroForOne, side);
547
623
  if (side === constants_1.SwapSide.SELL) {
548
624
  if (outputsResult.outputs[0] > destTokenBalance) {
549
625
  return null;