@paraswap/dex-lib 4.8.33 → 4.8.34-uni-v3-rust.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/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/bProtocol/bProtocol.d.ts +15 -0
  32. package/build/dex/bProtocol/bProtocol.js +56 -0
  33. package/build/dex/bProtocol/bProtocol.js.map +1 -0
  34. package/build/dex/bProtocol/types.d.ts +11 -0
  35. package/build/dex/bProtocol/types.js +8 -0
  36. package/build/dex/bProtocol/types.js.map +1 -0
  37. package/build/dex/ekubo/pools/base-pool.d.ts +47 -0
  38. package/build/dex/ekubo/pools/base-pool.js +184 -0
  39. package/build/dex/ekubo/pools/base-pool.js.map +1 -0
  40. package/build/dex/ekubo/pools/iface.d.ts +46 -0
  41. package/build/dex/ekubo/pools/iface.js +75 -0
  42. package/build/dex/ekubo/pools/iface.js.map +1 -0
  43. package/build/dex/ekubo/pools/math/price.d.ts +7 -0
  44. package/build/dex/ekubo/pools/math/price.js +112 -0
  45. package/build/dex/ekubo/pools/math/price.js.map +1 -0
  46. package/build/dex/ekubo/pools/oracle-pool.d.ts +10 -0
  47. package/build/dex/ekubo/pools/oracle-pool.js +19 -0
  48. package/build/dex/ekubo/pools/oracle-pool.js.map +1 -0
  49. package/build/dex/ekubo/pools/pool-utils.d.ts +44 -0
  50. package/build/dex/ekubo/pools/pool-utils.js +240 -0
  51. package/build/dex/ekubo/pools/pool-utils.js.map +1 -0
  52. package/build/dex/idex.d.ts +1 -1
  53. package/build/dex/idle-dao/config.d.ts +5 -0
  54. package/build/dex/idle-dao/config.js +24 -0
  55. package/build/dex/idle-dao/config.js.map +1 -0
  56. package/build/dex/idle-dao/idle-dao.d.ts +42 -0
  57. package/build/dex/idle-dao/idle-dao.js +279 -0
  58. package/build/dex/idle-dao/idle-dao.js.map +1 -0
  59. package/build/dex/idle-dao/token_list.d.ts +4 -0
  60. package/build/dex/idle-dao/token_list.js +289 -0
  61. package/build/dex/idle-dao/token_list.js.map +1 -0
  62. package/build/dex/idle-dao/tokens.d.ts +9 -0
  63. package/build/dex/idle-dao/tokens.js +68 -0
  64. package/build/dex/idle-dao/tokens.js.map +1 -0
  65. package/build/dex/idle-dao/types.d.ts +35 -0
  66. package/build/dex/idle-dao/types.js +11 -0
  67. package/build/dex/idle-dao/types.js.map +1 -0
  68. package/build/dex/idle-dao/utils.d.ts +8 -0
  69. package/build/dex/idle-dao/utils.js +149 -0
  70. package/build/dex/idle-dao/utils.js.map +1 -0
  71. package/build/dex/infusion/config.d.ts +3 -0
  72. package/build/dex/infusion/config.js +20 -0
  73. package/build/dex/infusion/config.js.map +1 -0
  74. package/build/dex/infusion/infusion-stable-pool.d.ts +4 -0
  75. package/build/dex/infusion/infusion-stable-pool.js +74 -0
  76. package/build/dex/infusion/infusion-stable-pool.js.map +1 -0
  77. package/build/dex/infusion/infusion.d.ts +51 -0
  78. package/build/dex/infusion/infusion.js +500 -0
  79. package/build/dex/infusion/infusion.js.map +1 -0
  80. package/build/dex/infusion/types.d.ts +45 -0
  81. package/build/dex/infusion/types.js +3 -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/dex/maker-psm/types.js +3 -0
  100. package/build/dex/maker-psm/types.js.map +1 -0
  101. package/build/dex/onebit/onebit.d.ts +16 -0
  102. package/build/dex/onebit/onebit.js +61 -0
  103. package/build/dex/onebit/onebit.js.map +1 -0
  104. package/build/dex/onebit/types.d.ts +14 -0
  105. package/build/dex/onebit/types.js +8 -0
  106. package/build/dex/onebit/types.js.map +1 -0
  107. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.d.ts +2 -0
  108. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js +5 -0
  109. package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js.map +1 -1
  110. package/build/dex/pancakeswap-v3/pancakeswap-v3.d.ts +6 -3
  111. package/build/dex/pancakeswap-v3/pancakeswap-v3.js +85 -9
  112. package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
  113. package/build/dex/pancakeswap-v3/scripts/measure-calc-time.js +203 -0
  114. package/build/dex/pancakeswap-v3/scripts/measure-calc-time.js.map +1 -0
  115. package/build/dex/quick-perps/config.d.ts +11 -0
  116. package/build/dex/quick-perps/config.js +27 -0
  117. package/build/dex/quick-perps/config.js.map +1 -0
  118. package/build/dex/quick-perps/fast-price-feed.d.ts +26 -0
  119. package/build/dex/quick-perps/fast-price-feed.js +184 -0
  120. package/build/dex/quick-perps/fast-price-feed.js.map +1 -0
  121. package/build/dex/quick-perps/pool.d.ts +21 -0
  122. package/build/dex/quick-perps/pool.js +229 -0
  123. package/build/dex/quick-perps/pool.js.map +1 -0
  124. package/build/dex/quick-perps/quick-perps.d.ts +53 -0
  125. package/build/dex/quick-perps/quick-perps.js +247 -0
  126. package/build/dex/quick-perps/quick-perps.js.map +1 -0
  127. package/build/dex/quick-perps/types.d.ts +98 -0
  128. package/build/dex/quick-perps/types.js +3 -0
  129. package/build/dex/quick-perps/types.js.map +1 -0
  130. package/build/dex/quick-perps/usdq.d.ts +15 -0
  131. package/build/dex/quick-perps/usdq.js +62 -0
  132. package/build/dex/quick-perps/usdq.js.map +1 -0
  133. package/build/dex/quick-perps/vault-price-feed.d.ts +43 -0
  134. package/build/dex/quick-perps/vault-price-feed.js +203 -0
  135. package/build/dex/quick-perps/vault-price-feed.js.map +1 -0
  136. package/build/dex/quick-perps/vault-utils.d.ts +8 -0
  137. package/build/dex/quick-perps/vault-utils.js +42 -0
  138. package/build/dex/quick-perps/vault-utils.js.map +1 -0
  139. package/build/dex/quick-perps/vault.d.ts +46 -0
  140. package/build/dex/quick-perps/vault.js +182 -0
  141. package/build/dex/quick-perps/vault.js.map +1 -0
  142. package/build/dex/se-vlr/config.d.ts +3 -0
  143. package/build/dex/se-vlr/config.js +24 -0
  144. package/build/dex/se-vlr/config.js.map +1 -0
  145. package/build/dex/se-vlr/se-vlr-pool.d.ts +39 -0
  146. package/build/dex/se-vlr/se-vlr-pool.js +70 -0
  147. package/build/dex/se-vlr/se-vlr-pool.js.map +1 -0
  148. package/build/dex/se-vlr/se-vlr.d.ts +35 -0
  149. package/build/dex/se-vlr/se-vlr.js +131 -0
  150. package/build/dex/se-vlr/se-vlr.js.map +1 -0
  151. package/build/dex/se-vlr/types.d.ts +6 -0
  152. package/build/dex/se-vlr/types.js +3 -0
  153. package/build/dex/se-vlr/types.js.map +1 -0
  154. package/build/dex/shell.d.ts +25 -0
  155. package/build/dex/shell.js +41 -0
  156. package/build/dex/shell.js.map +1 -0
  157. package/build/dex/solidly/forks-override/aerodrome.d.ts +14 -0
  158. package/build/dex/solidly/forks-override/aerodrome.js +46 -0
  159. package/build/dex/solidly/forks-override/aerodrome.js.map +1 -0
  160. package/build/dex/solidly/forks-override/chronos.d.ts +23 -0
  161. package/build/dex/solidly/forks-override/chronos.js +141 -0
  162. package/build/dex/solidly/forks-override/chronos.js.map +1 -0
  163. package/build/dex/solidly/forks-override/usdfi.d.ts +8 -0
  164. package/build/dex/solidly/forks-override/usdfi.js +15 -0
  165. package/build/dex/solidly/forks-override/usdfi.js.map +1 -0
  166. package/build/dex/solidly/forks-override/velocimeter.d.ts +23 -0
  167. package/build/dex/solidly/forks-override/velocimeter.js +77 -0
  168. package/build/dex/solidly/forks-override/velocimeter.js.map +1 -0
  169. package/build/dex/solidly-v3/contract-math/native-bridge.d.ts +26 -0
  170. package/build/dex/solidly-v3/contract-math/native-bridge.js +96 -0
  171. package/build/dex/solidly-v3/contract-math/native-bridge.js.map +1 -0
  172. package/build/dex/solidly-v3/scripts/measure-calc-time.js +203 -0
  173. package/build/dex/solidly-v3/scripts/measure-calc-time.js.map +1 -0
  174. package/build/dex/solidly-v3/solidly-v3-pool.d.ts +3 -0
  175. package/build/dex/solidly-v3/solidly-v3-pool.js +8 -0
  176. package/build/dex/solidly-v3/solidly-v3-pool.js.map +1 -1
  177. package/build/dex/solidly-v3/solidly-v3.d.ts +5 -2
  178. package/build/dex/solidly-v3/solidly-v3.js +84 -8
  179. package/build/dex/solidly-v3/solidly-v3.js.map +1 -1
  180. package/build/dex/trader-joe-v2.d.ts +40 -0
  181. package/build/dex/trader-joe-v2.js +74 -0
  182. package/build/dex/trader-joe-v2.js.map +1 -0
  183. package/build/dex/uniswap-v2/dfyn.d.ts +19 -0
  184. package/build/dex/uniswap-v2/dfyn.js +61 -0
  185. package/build/dex/uniswap-v2/dfyn.js.map +1 -0
  186. package/build/dex/uniswap-v2/excalibur.d.ts +24 -0
  187. package/build/dex/uniswap-v2/excalibur.js +47 -0
  188. package/build/dex/uniswap-v2/excalibur.js.map +1 -0
  189. package/build/dex/uniswap-v2/mdex.d.ts +24 -0
  190. package/build/dex/uniswap-v2/mdex.js +50 -0
  191. package/build/dex/uniswap-v2/mdex.js.map +1 -0
  192. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +24 -0
  193. package/build/dex/uniswap-v2/nomiswap-v2.js +57 -0
  194. package/build/dex/uniswap-v2/nomiswap-v2.js.map +1 -0
  195. package/build/dex/uniswap-v3/contract-math/native-bridge.d.ts +52 -1
  196. package/build/dex/uniswap-v3/contract-math/native-bridge.js +27 -3
  197. package/build/dex/uniswap-v3/contract-math/native-bridge.js.map +1 -1
  198. package/build/dex/uniswap-v3/scripts/bench-all-dexes.d.ts +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/bench-e2e.d.ts +1 -0
  202. package/build/dex/uniswap-v3/scripts/bench-e2e.js +85 -0
  203. package/build/dex/uniswap-v3/scripts/bench-e2e.js.map +1 -0
  204. package/build/dex/uniswap-v3/scripts/bench-parallel.d.ts +1 -0
  205. package/build/dex/uniswap-v3/scripts/bench-parallel.js +192 -0
  206. package/build/dex/uniswap-v3/scripts/bench-parallel.js.map +1 -0
  207. package/build/dex/uniswap-v3/scripts/measure-calc-time.js +222 -110
  208. package/build/dex/uniswap-v3/scripts/measure-calc-time.js.map +1 -1
  209. package/build/dex/uniswap-v3/types.d.ts +1 -0
  210. package/build/dex/uniswap-v3/types.js.map +1 -1
  211. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  212. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  213. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  214. package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +2 -0
  215. package/build/dex/uniswap-v3/uniswap-v3-pool.js +5 -0
  216. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  217. package/build/dex/uniswap-v3/uniswap-v3.d.ts +11 -3
  218. package/build/dex/uniswap-v3/uniswap-v3.js +86 -9
  219. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  220. package/build/dex/uniswap-v4/contract-math/Position.d.ts +3 -0
  221. package/build/dex/uniswap-v4/contract-math/Position.js +10 -0
  222. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -0
  223. package/build/dex/uniswap-v4/contract-math/native-bridge.d.ts +40 -0
  224. package/build/dex/uniswap-v4/contract-math/native-bridge.js +74 -0
  225. package/build/dex/uniswap-v4/contract-math/native-bridge.js.map +1 -0
  226. package/build/dex/uniswap-v4/scripts/test-rust-correctness.d.ts +1 -0
  227. package/build/dex/uniswap-v4/scripts/test-rust-correctness.js +167 -0
  228. package/build/dex/uniswap-v4/scripts/test-rust-correctness.js.map +1 -0
  229. package/build/dex/uniswap-v4/types.d.ts +1 -0
  230. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +2 -0
  231. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +3 -0
  232. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  233. package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +3 -0
  234. package/build/dex/uniswap-v4/uniswap-v4-pool.js +18 -0
  235. package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
  236. package/build/dex/uniswap-v4/uniswap-v4.d.ts +3 -1
  237. package/build/dex/uniswap-v4/uniswap-v4.js +74 -14
  238. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  239. package/build/dex/usual-bond/config.d.ts +3 -0
  240. package/build/dex/usual-bond/config.js +13 -0
  241. package/build/dex/usual-bond/config.js.map +1 -0
  242. package/build/dex/usual-bond/types.d.ts +7 -0
  243. package/build/dex/usual-bond/types.js +3 -0
  244. package/build/dex/usual-bond/types.js.map +1 -0
  245. package/build/dex/usual-bond/usual-bond.d.ts +35 -0
  246. package/build/dex/usual-bond/usual-bond.js +176 -0
  247. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  248. package/build/dex/wusdm/config.d.ts +3 -0
  249. package/build/dex/wusdm/config.js +43 -0
  250. package/build/dex/wusdm/config.js.map +1 -0
  251. package/build/dex/wusdm/constants.d.ts +2 -0
  252. package/build/dex/wusdm/constants.js +6 -0
  253. package/build/dex/wusdm/constants.js.map +1 -0
  254. package/build/dex/wusdm/types.d.ts +18 -0
  255. package/build/dex/wusdm/types.js +11 -0
  256. package/build/dex/wusdm/types.js.map +1 -0
  257. package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
  258. package/build/dex/wusdm/wusdm-pool.js +74 -0
  259. package/build/dex/wusdm/wusdm-pool.js.map +1 -0
  260. package/build/dex/wusdm/wusdm.d.ts +46 -0
  261. package/build/dex/wusdm/wusdm.js +243 -0
  262. package/build/dex/wusdm/wusdm.js.map +1 -0
  263. package/build/dex/zerox/config.d.ts +2 -0
  264. package/build/dex/zerox/config.js +33 -0
  265. package/build/dex/zerox/config.js.map +1 -0
  266. package/build/dex/zerox/index.d.ts +22 -0
  267. package/build/dex/zerox/index.js +225 -0
  268. package/build/dex/zerox/index.js.map +1 -0
  269. package/build/dex/zerox/order.d.ts +88 -0
  270. package/build/dex/zerox/order.js +53 -0
  271. package/build/dex/zerox/order.js.map +1 -0
  272. package/build/dex/zerox/types.d.ts +73 -0
  273. package/build/dex/zerox/types.js +21 -0
  274. package/build/dex/zerox/types.js.map +1 -0
  275. package/build/pricing-helper.d.ts +1 -1
  276. package/build/pricing-helper.js +2 -2
  277. package/build/pricing-helper.js.map +1 -1
  278. package/native/Cargo.lock +331 -0
  279. package/native/Cargo.toml +22 -0
  280. package/native/build.rs +5 -0
  281. package/native/package-lock.json +32 -0
  282. package/native/package.json +20 -0
  283. package/native/src/config.rs +73 -0
  284. package/native/src/lib.rs +528 -0
  285. package/native/src/math/bit_math.rs +177 -0
  286. package/native/src/math/full_math.rs +217 -0
  287. package/native/src/math/liquidity_math.rs +72 -0
  288. package/native/src/math/mod.rs +10 -0
  289. package/native/src/math/oracle.rs +493 -0
  290. package/native/src/math/sqrt_price_math.rs +272 -0
  291. package/native/src/math/swap_math.rs +306 -0
  292. package/native/src/math/tick.rs +239 -0
  293. package/native/src/math/tick_bitmap.rs +312 -0
  294. package/native/src/math/tick_math.rs +321 -0
  295. package/native/src/math/unsafe_math.rs +67 -0
  296. package/native/src/pool_state.rs +41 -0
  297. package/native/src/query_outputs.rs +379 -0
  298. package/native/src/v4_query_outputs.rs +255 -0
  299. package/package.json +2 -1
  300. package/build/dex/uniswap-v4/api-go/compare-pricing.js +0 -187
  301. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +0 -1
  302. package/build/dex/uniswap-v4/api-go/compare-states.js +0 -149
  303. package/build/dex/uniswap-v4/api-go/compare-states.js.map +0 -1
  304. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  305. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +0 -140
  306. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +0 -1
  307. package/build/tenderly-simulation.d.ts +0 -221
  308. package/build/tenderly-simulation.js +0 -517
  309. package/build/tenderly-simulation.js.map +0 -1
  310. /package/build/dex/{uniswap-v4/api-go/compare-pricing.d.ts → pancakeswap-v3/scripts/measure-calc-time.d.ts} +0 -0
  311. /package/build/dex/{uniswap-v4/api-go/compare-states.d.ts → solidly-v3/scripts/measure-calc-time.d.ts} +0 -0
@@ -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"}
@@ -0,0 +1,26 @@
1
+ import { DeepReadonly } from 'ts-essentials';
2
+ import { PoolState } from '../types';
3
+ import { RustPoolRegistryType } from '../../uniswap-v3/contract-math/native-bridge';
4
+ export { RustPoolRegistryType };
5
+ export declare const nativeAddonAvailable: boolean;
6
+ export declare const useNativeMath: boolean;
7
+ export type RustPoolHandleType = {
8
+ queryOutputs(amounts: bigint[], zeroForOne: boolean, side: number): {
9
+ outputs: bigint[];
10
+ tickCounts: number[];
11
+ };
12
+ };
13
+ /**
14
+ * Create a RustPoolHandle from a Solidly V3 PoolState.
15
+ * Returns null if the native addon is not available.
16
+ */
17
+ export declare function createSolidlyRustHandle(state: DeepReadonly<PoolState>): RustPoolHandleType | null;
18
+ /**
19
+ * Create a RustPoolRegistry for batch parallel queries.
20
+ * Returns null if the native addon is not available.
21
+ */
22
+ export declare function createSolidlyRegistry(): RustPoolRegistryType | null;
23
+ /**
24
+ * Register a Solidly V3 pool in the registry using Solidly-specific state mapping.
25
+ */
26
+ export declare function solidlyRegistrySetPool(registry: RustPoolRegistryType, key: string, state: DeepReadonly<PoolState>): void;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNativeMath = exports.nativeAddonAvailable = void 0;
4
+ exports.createSolidlyRustHandle = createSolidlyRustHandle;
5
+ exports.createSolidlyRegistry = createSolidlyRegistry;
6
+ exports.solidlyRegistrySetPool = solidlyRegistrySetPool;
7
+ // Try to load the native Rust addon
8
+ let nativeAddon = null;
9
+ try {
10
+ nativeAddon = require('../../../../native/index.js');
11
+ }
12
+ catch {
13
+ // Native addon not available — JS fallback will be used
14
+ }
15
+ exports.nativeAddonAvailable = nativeAddon !== null;
16
+ // Allow forcing JS backend via env var
17
+ exports.useNativeMath = exports.nativeAddonAvailable && process.env.PARASWAP_V3_MATH !== 'js';
18
+ /**
19
+ * Convert a Solidly V3 PoolState to the init format expected by the Rust addon.
20
+ * Solidly V3 differs from Uniswap V3:
21
+ * - fee is in slot0 (not a top-level field)
22
+ * - no feeProtocol in slot0
23
+ * - no oracle observations
24
+ */
25
+ function toRustInit(state) {
26
+ const tickBitmap = Object.entries(state.tickBitmap).map(([key, value]) => ({
27
+ key: Number(key),
28
+ value,
29
+ }));
30
+ const ticks = Object.entries(state.ticks).map(([key, info]) => ({
31
+ key: Number(key),
32
+ liquidityGross: info.liquidityGross,
33
+ liquidityNet: info.liquidityNet,
34
+ }));
35
+ return {
36
+ variant: 'solidly_v3',
37
+ bitmapRange: 12, // TICK_BITMAP_BUFFER(8) + TICK_BITMAP_TO_USE(4)
38
+ blockTimestamp: state.blockTimestamp,
39
+ tickSpacing: state.tickSpacing,
40
+ fee: state.slot0.fee,
41
+ sqrtPriceX96: state.slot0.sqrtPriceX96,
42
+ tick: state.slot0.tick,
43
+ observationIndex: 0,
44
+ observationCardinality: 0,
45
+ observationCardinalityNext: 0,
46
+ feeProtocol: 0n,
47
+ liquidity: state.liquidity,
48
+ maxLiquidityPerTick: state.maxLiquidityPerTick,
49
+ startTickBitmap: state.startTickBitmap,
50
+ lowestKnownTick: state.lowestKnownTick,
51
+ highestKnownTick: state.highestKnownTick,
52
+ tickBitmap,
53
+ ticks,
54
+ observations: [],
55
+ };
56
+ }
57
+ /**
58
+ * Create a RustPoolHandle from a Solidly V3 PoolState.
59
+ * Returns null if the native addon is not available.
60
+ */
61
+ function createSolidlyRustHandle(state) {
62
+ if (!exports.nativeAddonAvailable)
63
+ return null;
64
+ try {
65
+ return nativeAddon.RustPoolHandle.create(toRustInit(state));
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ }
71
+ /**
72
+ * Create a RustPoolRegistry for batch parallel queries.
73
+ * Returns null if the native addon is not available.
74
+ */
75
+ function createSolidlyRegistry() {
76
+ if (!exports.nativeAddonAvailable)
77
+ return null;
78
+ try {
79
+ return new nativeAddon.RustPoolRegistry();
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ }
85
+ /**
86
+ * Register a Solidly V3 pool in the registry using Solidly-specific state mapping.
87
+ */
88
+ function solidlyRegistrySetPool(registry, key, state) {
89
+ try {
90
+ registry.setPool(key, toRustInit(state));
91
+ }
92
+ catch {
93
+ // silently skip — pool will use JS fallback
94
+ }
95
+ }
96
+ //# sourceMappingURL=native-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-bridge.js","sourceRoot":"","sources":["../../../../src/dex/solidly-v3/contract-math/native-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,203 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ /*
37
+ * Benchmark: Solidly V3 queryOutputs — JS vs Rust native addon.
38
+ * Verifies correctness and measures per-pool performance.
39
+ */
40
+ const dotenv = __importStar(require("dotenv"));
41
+ dotenv.config();
42
+ const log4js_1 = require("../../../lib/log4js");
43
+ const constants_1 = require("../../../constants");
44
+ const dex_helper_1 = require("../../../dex-helper");
45
+ const uniswap_v3_math_1 = require("../contract-math/uniswap-v3-math");
46
+ const solidly_v3_1 = require("../solidly-v3");
47
+ const perf_hooks_1 = require("perf_hooks");
48
+ const native_bridge_1 = require("../contract-math/native-bridge");
49
+ const utils_1 = require("../../../utils");
50
+ const logger = (0, log4js_1.getLogger)('SolidlyV3Benchmark');
51
+ const runsNumber = 1000;
52
+ const network = constants_1.Network.MAINNET;
53
+ const dexHelper = new dex_helper_1.DummyDexHelper(network);
54
+ const dex = new solidly_v3_1.SolidlyV3(network, 'SolidlyV3', dexHelper);
55
+ const side = constants_1.SwapSide.SELL;
56
+ const pairs = [
57
+ {
58
+ name: 'USDC/WETH',
59
+ src: {
60
+ address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
61
+ decimals: 6,
62
+ },
63
+ dest: {
64
+ address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
65
+ decimals: 18,
66
+ },
67
+ },
68
+ {
69
+ name: 'USDC/USDT',
70
+ src: {
71
+ address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
72
+ decimals: 6,
73
+ },
74
+ dest: {
75
+ address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
76
+ decimals: 6,
77
+ },
78
+ },
79
+ {
80
+ name: 'WBTC/WETH',
81
+ src: {
82
+ address: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599',
83
+ decimals: 8,
84
+ },
85
+ dest: {
86
+ address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
87
+ decimals: 18,
88
+ },
89
+ },
90
+ ];
91
+ function generateAmounts(decimals) {
92
+ const unit = (0, utils_1.getBigIntPow)(decimals);
93
+ const amounts = [0n];
94
+ for (let i = 1; i <= 50; i++)
95
+ amounts.push(unit * BigInt(i * 100));
96
+ amounts.push(unit * 100000n, unit * 1000000n, unit * 10000000n);
97
+ return amounts;
98
+ }
99
+ const sortTokens = (a, b) => [a, b].sort((x, y) => (x < y ? -1 : 1));
100
+ function printStats(measures, label) {
101
+ const sorted = [...measures].sort((a, b) => a - b);
102
+ const avg = sorted.reduce((a, b) => a + b) / sorted.length;
103
+ const p50 = sorted[Math.floor(sorted.length * 0.5)];
104
+ const p95 = sorted[Math.floor(sorted.length * 0.95)];
105
+ const p99 = sorted[Math.floor(sorted.length * 0.99)];
106
+ const max = sorted[sorted.length - 1];
107
+ logger.info(` [${label}] avg=${avg.toFixed(3)}ms | p50=${p50.toFixed(3)}ms | ` +
108
+ `p95=${p95.toFixed(3)}ms | p99=${p99.toFixed(3)}ms | max=${max.toFixed(3)}ms`);
109
+ }
110
+ async function benchmarkPair(pair, blockNumber) {
111
+ const { name, src, dest } = pair;
112
+ const amounts = generateAmounts(src.decimals);
113
+ const [token0] = sortTokens(src.address.toLowerCase(), dest.address.toLowerCase());
114
+ const zeroForOne = token0 === src.address.toLowerCase();
115
+ logger.info(`\n${'='.repeat(60)}`);
116
+ logger.info(`PAIR: ${name} (${amounts.length} amounts, ${runsNumber} runs)`);
117
+ logger.info(`${'='.repeat(60)}\n`);
118
+ await dex.getPricesVolume(src, dest, amounts, side, blockNumber);
119
+ const poolEntries = Object.entries(dex.eventPools)
120
+ .filter(([key]) => {
121
+ const [s0, s1] = sortTokens(src.address.toLowerCase(), dest.address.toLowerCase());
122
+ return key.includes(s0) && key.includes(s1);
123
+ })
124
+ .filter(([, ep]) => ep != null)
125
+ .map(([key, ep]) => ({
126
+ key: key.split('_').pop(),
127
+ pool: ep,
128
+ state: ep.getState(blockNumber),
129
+ }))
130
+ .filter(p => p.state !== null);
131
+ if (!poolEntries.length) {
132
+ logger.warn(` No pools found for ${name}`);
133
+ return;
134
+ }
135
+ logger.info(` Pools: ${poolEntries.map(p => `tickSpacing=${p.key}`).join(', ')}\n`);
136
+ for (const p of poolEntries) {
137
+ const ticks = Object.keys(p.state.ticks).length;
138
+ logger.info(` tickSpacing=${p.key}: ${ticks} ticks, fee=${p.state.slot0.fee}, liquidity=${p.state.liquidity}`);
139
+ }
140
+ logger.info('');
141
+ logger.info(' --- JS ---');
142
+ for (const pool of poolEntries) {
143
+ const measures = [];
144
+ for (let i = 0; i < runsNumber; i++) {
145
+ const start = perf_hooks_1.performance.now();
146
+ uniswap_v3_math_1.uniswapV3Math.queryOutputs(pool.state, amounts, zeroForOne, side);
147
+ measures.push(perf_hooks_1.performance.now() - start);
148
+ }
149
+ printStats(measures, `JS ts=${pool.key}`);
150
+ }
151
+ if (native_bridge_1.nativeAddonAvailable) {
152
+ logger.info(' --- Rust ---');
153
+ for (const pool of poolEntries) {
154
+ const handle = (0, native_bridge_1.createSolidlyRustHandle)(pool.state);
155
+ if (!handle) {
156
+ logger.warn(` Failed to create Rust handle for ts=${pool.key}`);
157
+ continue;
158
+ }
159
+ const measures = [];
160
+ for (let i = 0; i < runsNumber; i++) {
161
+ const start = perf_hooks_1.performance.now();
162
+ handle.queryOutputs(amounts, zeroForOne, 0);
163
+ measures.push(perf_hooks_1.performance.now() - start);
164
+ }
165
+ printStats(measures, `Rust ts=${pool.key}`);
166
+ // Correctness
167
+ const jsResult = uniswap_v3_math_1.uniswapV3Math.queryOutputs(pool.state, amounts, zeroForOne, side);
168
+ const rustResult = handle.queryOutputs(amounts, zeroForOne, 0);
169
+ let mismatches = 0;
170
+ for (let k = 0; k < amounts.length; k++) {
171
+ if (jsResult.outputs[k] !== rustResult.outputs[k]) {
172
+ mismatches++;
173
+ if (mismatches <= 3) {
174
+ logger.error(` MISMATCH ts=${pool.key} amount[${k}]=${amounts[k]} ` +
175
+ `js=${jsResult.outputs[k]} rust=${rustResult.outputs[k]}`);
176
+ }
177
+ }
178
+ }
179
+ logger.info(mismatches === 0
180
+ ? ` ts=${pool.key}: all ${amounts.length} outputs match ✓`
181
+ : ` ts=${pool.key}: ${mismatches}/${amounts.length} MISMATCHES`);
182
+ }
183
+ }
184
+ else {
185
+ logger.info(' Rust addon not available');
186
+ }
187
+ }
188
+ (async function main() {
189
+ logger.info(`Solidly V3 benchmark (${runsNumber} runs)\n`);
190
+ const blockNumber = await dexHelper.web3Provider.eth.getBlockNumber();
191
+ logger.info(`Block: ${blockNumber}`);
192
+ for (const pair of pairs) {
193
+ try {
194
+ await benchmarkPair(pair, blockNumber);
195
+ }
196
+ catch (e) {
197
+ logger.error(`Failed ${pair.name}:`, e);
198
+ }
199
+ }
200
+ logger.info('\nDone.');
201
+ process.exit(0);
202
+ })();
203
+ //# sourceMappingURL=measure-calc-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure-calc-time.js","sourceRoot":"","sources":["../../../../src/dex/solidly-v3/scripts/measure-calc-time.ts"],"names":[],"mappings":"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"}
@@ -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":";;;;;;AAAA,oDAAuB;AAEvB,4CAA+C;AAC/C,mCAAgC;AAChC,iDAAqD;AAErD,+EAGyC;AAOzC,yGAA2E;AAC3E,uCAAuE;AACvE,qEAAgE;AAEhE,2CAIqB;AACrB,2DAAwD;AACxD,iDAAqD;AACrD,mCAAwE;AACxE,iDAAwE;AAExE,MAAM,oBAAoB,GAA2B;IACnD,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,MAAa,kBAAmB,SAAQ,mDAAkC;IA+B7D;IAEA;IACA;IAGA;IACU;IACH;IAKP;IA3CX,QAAQ,GAOJ,EAAE,CAAC;IAEP,UAAU,CAAoB;IAErB,MAAM,CAAU;IAEhB,MAAM,CAAU;IAElB,YAAY,CAAW;IAEtB,qBAAqB,CAEzB;IAEY,SAAS,GAAG,IAAI,eAAS,CAAC,gCAAgB,CAAC,CAAC;IAErD,UAAU,GAAG,KAAK,CAAC;IACnB,qBAAqB,GAAG,CAAC,CAAC;IAEjC,mCAAmC;IACnB,mBAAmB,CAAS;IAE5C,YACW,SAAqB,EAC9B,UAAkB,EACT,kBAA4B,EAC5B,6CAEI,EACJ,cAAyB,EACf,cAAuB,EAC1B,WAAmB,EACnC,MAAe,EACf,MAAe,EACf,MAAc,EACd,SAAiB,EAAE,EACV,gBAAwB;QAEjC,KAAK,CACH,UAAU,EACV,GAAG,MAAM,IAAI,MAAM,IAAI,WAAW,EAAE,EACpC,SAAS,EACT,MAAM,EACN,IAAI,EACJ,MAAM,CACP,CAAC;QAtBO,cAAS,GAAT,SAAS,CAAY;QAErB,uBAAkB,GAAlB,kBAAkB,CAAU;QAC5B,kDAA6C,GAA7C,6CAA6C,CAEzC;QACJ,mBAAc,GAAd,cAAc,CAAW;QACf,mBAAc,GAAd,cAAc,CAAS;QAC1B,gBAAW,GAAX,WAAW,CAAQ;QAK1B,qBAAgB,GAAhB,gBAAgB,CAAQ;QAUjC,6CAA6C;QAC7C,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,KAAK,CAAU,CAAC,CAAC,CAAC;QAEjD,eAAe;QACf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,uDAAuD;QACvD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,kDAAkD;QAClD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAC1C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CACjB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW,CAAC,OAAgB;QAC9B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,OAA2C;QAE3C,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAES,qBAAqB;QAC7B,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;SACjC,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,gBAAgB,CAC9B,KAA8B,EAC9B,IAAqB,EACrB,WAAkC;QAElC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACxE,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,UAAU,CAClB,KAA8B,EAC9B,GAAkB,EAClB,WAAkC;QAElC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEnC,MAAM,+BAA+B,GACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC;YAC7D,IACE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO;gBAC9B,+BAA+B;gBAC/B,IAAA,iBAAS,EAAC,+BAA+B,CAAC,EAC1C,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,KAAK,CAAC,IAAI,YACjB,WAAW,CAAC,MACd,yBAAyB,+BAA+B,GAAG,GAAG,GAAG,CAClE,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,+EAA+E;gBAC/E,iIAAiI;gBACjI,8EAA8E;gBAC9E,MAAM,MAAM,GAAG,gBAAC,CAAC,SAAS,CAAC,KAAK,CAAc,CAAC;gBAC/C,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;gBACpE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IACE,CAAC,YAAY,KAAK;wBAClB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,sCAA0B,CAAC,EAC9C,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,UAAU,UAAU,IAAI,CAAC,WAAW,OAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAC7B,8DAA8D,IAAI,CAAC,SAAS,CAC1E,KAAK,CACN,EAAE,EACH,CAAC,CACF,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,IAAI,CAAC,UAAU,UAAU,IAAI,CAAC,WAAW,IAAI;4BAC9C,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,eAAe;4BAC5D,6CAA6C,WAAW,CAAC,MAAM,IAAI;4BACnE,aAAa,WAAW,CAAC,IAAI,mBAC3B,WAAW,CAAC,UACd,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAC5C,CAAC,CACF,CAAC;oBACJ,CAAC;oBACD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;oBACvB,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,0BAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,4BAA4B;IAC3C,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,QAAQ,GAER;gBACJ;oBACE,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,WAAW,EAAE;wBAC5D,IAAI,CAAC,WAAW;qBACjB,CAAC;oBACF,cAAc,EAAE,0BAAe;iBAChC;gBACD;oBACE,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,WAAW,EAAE;wBAC5D,IAAI,CAAC,WAAW;qBACjB,CAAC;oBACF,cAAc,EAAE,0BAAe;iBAChC;gBACD;oBACE,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO;oBAC/C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO;yBACtC,+BAA+B,CAC9B,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,uBAAuB,EAAE,EAC9B,IAAI,CAAC,uBAAuB,EAAE,CAC/B;yBACA,SAAS,EAAE;oBACd,cAAc,EACZ,IAAI,CAAC,6CAA6C,KAAK,SAAS;wBAC9D,CAAC,CAAC,IAAI,CAAC,6CAA6C;wBACpD,CAAC,CAAC,qDAA6C;iBACpD;aACF,CAAC;YAEF,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,uBAAuB;QACrB,OAAO,8BAAkB,GAAG,8BAAkB,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEjD,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,GACxC,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAG5C,KAAK,EACL,QAAQ,EACR,WAAW,EACX,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAC5C,KAAK,CACN,CAAC;QAEJ,sEAAsE;QACtE,4EAA4E;QAC5E,6BAA6B;QAC7B,IAAA,sBAAM,EAAC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAEhD,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG;YACnC,WAAW,CAAC,UAAU;YACtB,WAAW,CAAC,UAAU;YACtB,QAAQ,CAAC,UAAU;SACgD,CAAC;QAEtE,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,EAAE,CAAC;QAEjB,IAAA,yBAAiB,EAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACjD,IAAA,oBAAY,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,WAAW,GAAG,IAAA,iBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,IAAA,iBAAS,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAA,iBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAExC,MAAM,eAAe,GAAG,uBAAU,CAAC,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAEtD,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,cAAc,EAAE,IAAA,iBAAS,EAAC,MAAM,CAAC,cAAc,CAAC;YAChD,KAAK,EAAE;gBACL,YAAY,EAAE,IAAA,iBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;gBAClD,IAAI,EAAE,WAAW;gBACjB,GAAG,EAAE,IAAA,iBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;aACjC;YACD,SAAS,EAAE,IAAA,iBAAS,EAAC,MAAM,CAAC,SAAS,CAAC;YACtC,WAAW;YACX,mBAAmB,EAAE,IAAA,iBAAS,EAAC,MAAM,CAAC,mBAAmB,CAAC;YAC1D,UAAU;YACV,KAAK;YACL,OAAO,EAAE,IAAI;YACb,eAAe;YACf,eAAe,EACb,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC3D,WAAW;YACb,gBAAgB,EACd,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC1D,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC1B,WAAW;YACb,QAAQ;YACR,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,eAAe,CACb,KAAU,EACV,IAAe,EACf,GAAQ,EACR,WAAwB;QAExB,MAAM,eAAe,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,IAAA,iBAAS,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEvD,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,IAAI,CAAC,UAAU,uCAAuC;gBACvD,GAAG,IAAI,CAAC,WAAW,QAAQ,WAAW,CAAC,MAAM,yBAAyB,CACzE,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,OAAO,GAAG,EAAE,CAAC;YAEhC,+BAAa,CAAC,aAAa,CACzB,IAAI,EACJ,eAAe,EACf,OAAO,EACP,YAAY,EACZ,UAAU,CACX,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;oBACjB,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yBAAyB,IAAI,CAAC,IAAI,8BAA8B,UAAU,QAAQ,OAAO,EAAE,CAC5F,CAAC;oBACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,CAAC;gBACD,iFAAiF;gBACjF,kEAAkE;gBAClE,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;oBACjB,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yBAAyB,IAAI,CAAC,IAAI,8BAA8B,UAAU,QAAQ,OAAO,EAAE,CAC5F,CAAC;oBACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,eAAe,CACb,KAAU,EACV,IAAe,EACf,GAAQ,EACR,WAAwB;QAExB,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,GAAG,IAAA,iBAAS,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEvD,+BAAa,CAAC,eAAe,CAAC,IAAI,EAAE;YAClC,SAAS;YACT,SAAS;YACT,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SAChE,CAAC,CAAC;QAEH,wEAAwE;QACxE,+HAA+H;QAC/H,oCAAoC;QACpC,2IAA2I;QAC3I,kFAAkF;QAClF,qEAAqE;QAErE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CACb,KAAU,EACV,IAAe,EACf,GAAQ,EACR,WAAwB;QAExB,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAA,iBAAS,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEvD,+BAAa,CAAC,eAAe,CAAC,IAAI,EAAE;YAClC,SAAS;YACT,SAAS;YACT,cAAc,EAAE,MAAM;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;QACzB,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAChB,KAAU,EACV,IAAe,EACf,GAAQ,EACR,WAAwB;QAExB,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;QACzB,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAA,iBAAS,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CACd,KAAU,EACV,IAAe,EACf,GAAQ,EACR,WAAwB;QAExB,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAA,iBAAS,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CACf,KAAU,EACV,IAAe,EACf,GAAQ,EACR,WAAwB;QAExB,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,IAAA,iBAAS,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,mBAAmB,CACzB,MAAe,EACf,MAAe,EACf,WAAmB;QAEnB,wFAAwF;QACxF,IAAI,MAAM,GAAG,MAAM;YAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEzD,MAAM,UAAU,GAAG,eAAM,CAAC,KAAK,CAAC,SAAS,CACvC,eAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CACjC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;QAC/B,6CAA6C;QAC7C,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAClD,CACF,CAAC;QAEF,OAAO,eAAM,CAAC,KAAK,CAAC,iBAAiB,CACnC,IAAI,CAAC,cAAc,EACnB,UAAU,EACV,IAAI,CAAC,gBAAgB,CACtB,CAAC;IACJ,CAAC;CACF;AAndD,gDAmdC"}
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;