@paraswap/dex-lib 4.8.37-native-dex-math.5 → 4.8.37-native-dex-math.7

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 (289) hide show
  1. package/build/abi/pancakeswap-infinity/cl-pool-manager.json +80 -0
  2. package/build/abi/{idle-dao/idle-cdo-factory.json → tessera/TesseraSwap.json} +16 -14
  3. package/build/dex/aave-v3-pt-roll-over/aave-v3-pt-roll-over.d.ts +2 -2
  4. package/build/dex/aave-v3-pt-roll-over/aave-v3-pt-roll-over.js +1 -1
  5. package/build/dex/aave-v3-pt-roll-over/aave-v3-pt-roll-over.js.map +1 -1
  6. package/build/dex/aave-v3-stata/aave-v3-stata.d.ts +2 -2
  7. package/build/dex/aave-v3-stata/aave-v3-stata.js +1 -1
  8. package/build/dex/aave-v3-stata/aave-v3-stata.js.map +1 -1
  9. package/build/dex/aave-v3-stata-v2/aave-v3-stata-v2.d.ts +2 -2
  10. package/build/dex/aave-v3-stata-v2/aave-v3-stata-v2.js +1 -1
  11. package/build/dex/aave-v3-stata-v2/aave-v3-stata-v2.js.map +1 -1
  12. package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +2 -2
  13. package/build/dex/angle-staked-stable/angle-staked-stable.js +1 -1
  14. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -1
  15. package/build/dex/angle-transmuter/angle-transmuter.d.ts +2 -2
  16. package/build/dex/angle-transmuter/angle-transmuter.js +1 -1
  17. package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -1
  18. package/build/dex/balancer-v2/balancer-v2.d.ts +2 -2
  19. package/build/dex/balancer-v2/balancer-v2.js +1 -1
  20. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  21. package/build/dex/ekubo/ekubo.d.ts +2 -2
  22. package/build/dex/ekubo/ekubo.js +1 -1
  23. package/build/dex/ekubo/ekubo.js.map +1 -1
  24. package/build/dex/ekubo-v3/ekubo-v3.d.ts +2 -2
  25. package/build/dex/ekubo-v3/ekubo-v3.js +1 -1
  26. package/build/dex/ekubo-v3/ekubo-v3.js.map +1 -1
  27. package/build/dex/erc4626/erc4626.d.ts +2 -2
  28. package/build/dex/erc4626/erc4626.js +1 -1
  29. package/build/dex/erc4626/erc4626.js.map +1 -1
  30. package/build/dex/fluid-dex/fluid-dex.d.ts +2 -2
  31. package/build/dex/fluid-dex/fluid-dex.js +1 -1
  32. package/build/dex/fluid-dex/fluid-dex.js.map +1 -1
  33. package/build/dex/fluid-dex/scripts/measure-calc-time.js +178 -0
  34. package/build/dex/fluid-dex/scripts/measure-calc-time.js.map +1 -0
  35. package/build/dex/idex.d.ts +1 -5
  36. package/build/dex/index.js +2 -0
  37. package/build/dex/index.js.map +1 -1
  38. package/build/dex/metric/config.js +5 -5
  39. package/build/dex/oswap/oswap.d.ts +2 -2
  40. package/build/dex/oswap/oswap.js +1 -1
  41. package/build/dex/oswap/oswap.js.map +1 -1
  42. package/build/dex/spark/spark-psm.d.ts +1 -2
  43. package/build/dex/spark/spark-psm.js +1 -1
  44. package/build/dex/spark/spark-psm.js.map +1 -1
  45. package/build/dex/spark/spark.d.ts +2 -2
  46. package/build/dex/spark/spark.js +1 -1
  47. package/build/dex/spark/spark.js.map +1 -1
  48. package/build/dex/tessera/config.d.ts +4 -0
  49. package/build/dex/tessera/config.js +13 -0
  50. package/build/dex/tessera/config.js.map +1 -0
  51. package/build/dex/tessera/tessera.d.ts +16 -0
  52. package/build/dex/tessera/tessera.js +47 -0
  53. package/build/dex/tessera/tessera.js.map +1 -0
  54. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +1 -0
  55. package/build/dex/uniswap-v4/api-go/compare-pricing.js +187 -0
  56. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +1 -0
  57. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +1 -0
  58. package/build/dex/uniswap-v4/api-go/compare-states.js +149 -0
  59. package/build/dex/uniswap-v4/api-go/compare-states.js.map +1 -0
  60. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  61. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +140 -0
  62. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +1 -0
  63. package/build/generic-swap-transaction-builder.d.ts +29 -4
  64. package/build/generic-swap-transaction-builder.js +113 -14
  65. package/build/generic-swap-transaction-builder.js.map +1 -1
  66. package/build/implementations/local-paraswap-sdk.js +6 -3
  67. package/build/implementations/local-paraswap-sdk.js.map +1 -1
  68. package/build/transaction-builder.d.ts +1 -2
  69. package/build/transaction-builder.js +1 -1
  70. package/build/transaction-builder.js.map +1 -1
  71. package/package.json +1 -1
  72. package/build/abi/BProtocol.json +0 -1155
  73. package/build/abi/Jarvis.json +0 -1172
  74. package/build/abi/MStableAsset.json +0 -1545
  75. package/build/abi/OneInchLp.json +0 -1304
  76. package/build/abi/Onebit.json +0 -736
  77. package/build/abi/Shell.json +0 -1294
  78. package/build/abi/TraderJoeV2Router.json +0 -50
  79. package/build/abi/idle-dao/idle-cdo.json +0 -1245
  80. package/build/abi/infusion/InfusionFactory.json +0 -147
  81. package/build/abi/infusion/InfusionPair.json +0 -658
  82. package/build/abi/infusion/InfusionRouter.json +0 -442
  83. package/build/abi/maker-psm/pot.json +0 -322
  84. package/build/abi/maker-psm/psm.json +0 -243
  85. package/build/abi/maker-psm/vat.json +0 -363
  86. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
  87. package/build/abi/quick-perps/fast-price-events.json +0 -70
  88. package/build/abi/quick-perps/fast-price-feed.json +0 -741
  89. package/build/abi/quick-perps/reader.json +0 -313
  90. package/build/abi/quick-perps/vault-price-feed.json +0 -323
  91. package/build/abi/quick-perps/vault.json +0 -1953
  92. package/build/abi/uniswap-v2/excalibur-pool.json +0 -881
  93. package/build/abi/uniswap-v2/mdex-factory.json +0 -759
  94. package/build/abi/wUSDM.json +0 -757
  95. package/build/abi/zrx.v2.json +0 -1967
  96. package/build/abi/zrx.v3.json +0 -3454
  97. package/build/abi/zrx.v4.json +0 -2193
  98. package/build/dex/OneInchLp.d.ts +0 -24
  99. package/build/dex/OneInchLp.js +0 -43
  100. package/build/dex/OneInchLp.js.map +0 -1
  101. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  102. package/build/dex/bProtocol/bProtocol.js +0 -56
  103. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  104. package/build/dex/bProtocol/types.d.ts +0 -11
  105. package/build/dex/bProtocol/types.js +0 -8
  106. package/build/dex/bProtocol/types.js.map +0 -1
  107. package/build/dex/ekubo/pools/base-pool.d.ts +0 -47
  108. package/build/dex/ekubo/pools/base-pool.js +0 -184
  109. package/build/dex/ekubo/pools/base-pool.js.map +0 -1
  110. package/build/dex/ekubo/pools/iface.d.ts +0 -46
  111. package/build/dex/ekubo/pools/iface.js +0 -75
  112. package/build/dex/ekubo/pools/iface.js.map +0 -1
  113. package/build/dex/ekubo/pools/math/price.d.ts +0 -7
  114. package/build/dex/ekubo/pools/math/price.js +0 -112
  115. package/build/dex/ekubo/pools/math/price.js.map +0 -1
  116. package/build/dex/ekubo/pools/oracle-pool.d.ts +0 -10
  117. package/build/dex/ekubo/pools/oracle-pool.js +0 -19
  118. package/build/dex/ekubo/pools/oracle-pool.js.map +0 -1
  119. package/build/dex/ekubo/pools/pool-utils.d.ts +0 -44
  120. package/build/dex/ekubo/pools/pool-utils.js +0 -240
  121. package/build/dex/ekubo/pools/pool-utils.js.map +0 -1
  122. package/build/dex/idle-dao/config.d.ts +0 -5
  123. package/build/dex/idle-dao/config.js +0 -24
  124. package/build/dex/idle-dao/config.js.map +0 -1
  125. package/build/dex/idle-dao/idle-dao.d.ts +0 -42
  126. package/build/dex/idle-dao/idle-dao.js +0 -279
  127. package/build/dex/idle-dao/idle-dao.js.map +0 -1
  128. package/build/dex/idle-dao/token_list.d.ts +0 -4
  129. package/build/dex/idle-dao/token_list.js +0 -289
  130. package/build/dex/idle-dao/token_list.js.map +0 -1
  131. package/build/dex/idle-dao/tokens.d.ts +0 -9
  132. package/build/dex/idle-dao/tokens.js +0 -68
  133. package/build/dex/idle-dao/tokens.js.map +0 -1
  134. package/build/dex/idle-dao/types.d.ts +0 -35
  135. package/build/dex/idle-dao/types.js +0 -11
  136. package/build/dex/idle-dao/types.js.map +0 -1
  137. package/build/dex/idle-dao/utils.d.ts +0 -8
  138. package/build/dex/idle-dao/utils.js +0 -149
  139. package/build/dex/idle-dao/utils.js.map +0 -1
  140. package/build/dex/infusion/config.d.ts +0 -3
  141. package/build/dex/infusion/config.js +0 -20
  142. package/build/dex/infusion/config.js.map +0 -1
  143. package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
  144. package/build/dex/infusion/infusion-stable-pool.js +0 -74
  145. package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
  146. package/build/dex/infusion/infusion.d.ts +0 -51
  147. package/build/dex/infusion/infusion.js +0 -500
  148. package/build/dex/infusion/infusion.js.map +0 -1
  149. package/build/dex/infusion/types.d.ts +0 -45
  150. package/build/dex/infusion/types.js +0 -3
  151. package/build/dex/infusion/types.js.map +0 -1
  152. package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
  153. package/build/dex/infusion/utils/isStablePair.js +0 -18
  154. package/build/dex/infusion/utils/isStablePair.js.map +0 -1
  155. package/build/dex/jarvis.d.ts +0 -56
  156. package/build/dex/jarvis.js +0 -163
  157. package/build/dex/jarvis.js.map +0 -1
  158. package/build/dex/mStable.d.ts +0 -44
  159. package/build/dex/mStable.js +0 -75
  160. package/build/dex/mStable.js.map +0 -1
  161. package/build/dex/maker-psm/config.d.ts +0 -11
  162. package/build/dex/maker-psm/config.js +0 -53
  163. package/build/dex/maker-psm/config.js.map +0 -1
  164. package/build/dex/maker-psm/maker-psm.d.ts +0 -103
  165. package/build/dex/maker-psm/maker-psm.js +0 -493
  166. package/build/dex/maker-psm/maker-psm.js.map +0 -1
  167. package/build/dex/maker-psm/types.d.ts +0 -39
  168. package/build/dex/maker-psm/types.js +0 -3
  169. package/build/dex/maker-psm/types.js.map +0 -1
  170. package/build/dex/onebit/onebit.d.ts +0 -16
  171. package/build/dex/onebit/onebit.js +0 -61
  172. package/build/dex/onebit/onebit.js.map +0 -1
  173. package/build/dex/onebit/types.d.ts +0 -14
  174. package/build/dex/onebit/types.js +0 -8
  175. package/build/dex/onebit/types.js.map +0 -1
  176. package/build/dex/quick-perps/config.d.ts +0 -11
  177. package/build/dex/quick-perps/config.js +0 -27
  178. package/build/dex/quick-perps/config.js.map +0 -1
  179. package/build/dex/quick-perps/fast-price-feed.d.ts +0 -26
  180. package/build/dex/quick-perps/fast-price-feed.js +0 -184
  181. package/build/dex/quick-perps/fast-price-feed.js.map +0 -1
  182. package/build/dex/quick-perps/pool.d.ts +0 -21
  183. package/build/dex/quick-perps/pool.js +0 -229
  184. package/build/dex/quick-perps/pool.js.map +0 -1
  185. package/build/dex/quick-perps/quick-perps.d.ts +0 -53
  186. package/build/dex/quick-perps/quick-perps.js +0 -247
  187. package/build/dex/quick-perps/quick-perps.js.map +0 -1
  188. package/build/dex/quick-perps/types.d.ts +0 -98
  189. package/build/dex/quick-perps/types.js +0 -3
  190. package/build/dex/quick-perps/types.js.map +0 -1
  191. package/build/dex/quick-perps/usdq.d.ts +0 -15
  192. package/build/dex/quick-perps/usdq.js +0 -62
  193. package/build/dex/quick-perps/usdq.js.map +0 -1
  194. package/build/dex/quick-perps/vault-price-feed.d.ts +0 -43
  195. package/build/dex/quick-perps/vault-price-feed.js +0 -203
  196. package/build/dex/quick-perps/vault-price-feed.js.map +0 -1
  197. package/build/dex/quick-perps/vault-utils.d.ts +0 -8
  198. package/build/dex/quick-perps/vault-utils.js +0 -42
  199. package/build/dex/quick-perps/vault-utils.js.map +0 -1
  200. package/build/dex/quick-perps/vault.d.ts +0 -46
  201. package/build/dex/quick-perps/vault.js +0 -182
  202. package/build/dex/quick-perps/vault.js.map +0 -1
  203. package/build/dex/se-vlr/config.d.ts +0 -3
  204. package/build/dex/se-vlr/config.js +0 -24
  205. package/build/dex/se-vlr/config.js.map +0 -1
  206. package/build/dex/se-vlr/se-vlr-pool.d.ts +0 -39
  207. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  208. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  209. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  210. package/build/dex/se-vlr/se-vlr.js +0 -131
  211. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  212. package/build/dex/se-vlr/types.d.ts +0 -6
  213. package/build/dex/se-vlr/types.js +0 -3
  214. package/build/dex/se-vlr/types.js.map +0 -1
  215. package/build/dex/shell.d.ts +0 -25
  216. package/build/dex/shell.js +0 -41
  217. package/build/dex/shell.js.map +0 -1
  218. package/build/dex/solidly/forks-override/aerodrome.d.ts +0 -14
  219. package/build/dex/solidly/forks-override/aerodrome.js +0 -46
  220. package/build/dex/solidly/forks-override/aerodrome.js.map +0 -1
  221. package/build/dex/solidly/forks-override/chronos.d.ts +0 -23
  222. package/build/dex/solidly/forks-override/chronos.js +0 -141
  223. package/build/dex/solidly/forks-override/chronos.js.map +0 -1
  224. package/build/dex/solidly/forks-override/usdfi.d.ts +0 -8
  225. package/build/dex/solidly/forks-override/usdfi.js +0 -15
  226. package/build/dex/solidly/forks-override/usdfi.js.map +0 -1
  227. package/build/dex/solidly/forks-override/velocimeter.d.ts +0 -23
  228. package/build/dex/solidly/forks-override/velocimeter.js +0 -77
  229. package/build/dex/solidly/forks-override/velocimeter.js.map +0 -1
  230. package/build/dex/trader-joe-v2.d.ts +0 -40
  231. package/build/dex/trader-joe-v2.js +0 -74
  232. package/build/dex/trader-joe-v2.js.map +0 -1
  233. package/build/dex/uniswap-v2/dfyn.d.ts +0 -19
  234. package/build/dex/uniswap-v2/dfyn.js +0 -61
  235. package/build/dex/uniswap-v2/dfyn.js.map +0 -1
  236. package/build/dex/uniswap-v2/excalibur.d.ts +0 -24
  237. package/build/dex/uniswap-v2/excalibur.js +0 -47
  238. package/build/dex/uniswap-v2/excalibur.js.map +0 -1
  239. package/build/dex/uniswap-v2/mdex.d.ts +0 -24
  240. package/build/dex/uniswap-v2/mdex.js +0 -50
  241. package/build/dex/uniswap-v2/mdex.js.map +0 -1
  242. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +0 -24
  243. package/build/dex/uniswap-v2/nomiswap-v2.js +0 -57
  244. package/build/dex/uniswap-v2/nomiswap-v2.js.map +0 -1
  245. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js +0 -160
  246. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js.map +0 -1
  247. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  248. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  249. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  250. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -3
  251. package/build/dex/uniswap-v4/contract-math/Position.js +0 -10
  252. package/build/dex/uniswap-v4/contract-math/Position.js.map +0 -1
  253. package/build/dex/usual-bond/config.d.ts +0 -3
  254. package/build/dex/usual-bond/config.js +0 -13
  255. package/build/dex/usual-bond/config.js.map +0 -1
  256. package/build/dex/usual-bond/types.d.ts +0 -7
  257. package/build/dex/usual-bond/types.js +0 -3
  258. package/build/dex/usual-bond/types.js.map +0 -1
  259. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  260. package/build/dex/usual-bond/usual-bond.js +0 -176
  261. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  262. package/build/dex/wusdm/config.d.ts +0 -3
  263. package/build/dex/wusdm/config.js +0 -43
  264. package/build/dex/wusdm/config.js.map +0 -1
  265. package/build/dex/wusdm/constants.d.ts +0 -2
  266. package/build/dex/wusdm/constants.js +0 -6
  267. package/build/dex/wusdm/constants.js.map +0 -1
  268. package/build/dex/wusdm/types.d.ts +0 -18
  269. package/build/dex/wusdm/types.js +0 -11
  270. package/build/dex/wusdm/types.js.map +0 -1
  271. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  272. package/build/dex/wusdm/wusdm-pool.js +0 -74
  273. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  274. package/build/dex/wusdm/wusdm.d.ts +0 -46
  275. package/build/dex/wusdm/wusdm.js +0 -243
  276. package/build/dex/wusdm/wusdm.js.map +0 -1
  277. package/build/dex/zerox/config.d.ts +0 -2
  278. package/build/dex/zerox/config.js +0 -33
  279. package/build/dex/zerox/config.js.map +0 -1
  280. package/build/dex/zerox/index.d.ts +0 -22
  281. package/build/dex/zerox/index.js +0 -225
  282. package/build/dex/zerox/index.js.map +0 -1
  283. package/build/dex/zerox/order.d.ts +0 -88
  284. package/build/dex/zerox/order.js +0 -53
  285. package/build/dex/zerox/order.js.map +0 -1
  286. package/build/dex/zerox/types.d.ts +0 -73
  287. package/build/dex/zerox/types.js +0 -21
  288. package/build/dex/zerox/types.js.map +0 -1
  289. /package/build/dex/{uniswap-v3/scripts/bench-all-dexes.d.ts → fluid-dex/scripts/measure-calc-time.d.ts} +0 -0
@@ -1,24 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { SwapSide } from '../constants';
3
- import { AdapterExchangeParam, SimpleExchangeParam } from '../types';
4
- import { IDexTxBuilder } from './idex';
5
- import { SimpleExchange } from './simple-exchange';
6
- import { IDexHelper } from '../dex-helper';
7
- export declare type OneInchLpData = {
8
- exchange: string;
9
- };
10
- declare type OneInchLpParam = [
11
- src: string,
12
- dst: string,
13
- amount: string,
14
- minReturn: string,
15
- referral: string
16
- ];
17
- export declare class OneInchLp extends SimpleExchange implements IDexTxBuilder<OneInchLpData, OneInchLpParam> {
18
- static dexKeys: string[];
19
- exchangeRouterInterface: Interface;
20
- constructor(dexHelper: IDexHelper);
21
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: OneInchLpData, side: SwapSide): AdapterExchangeParam;
22
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: OneInchLpData, side: SwapSide): Promise<SimpleExchangeParam>;
23
- }
24
- export {};
@@ -1,43 +0,0 @@
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.OneInchLp = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const constants_1 = require("../constants");
9
- const simple_exchange_1 = require("./simple-exchange");
10
- const OneInchLp_json_1 = __importDefault(require("../abi/OneInchLp.json"));
11
- const utils_1 = require("../utils");
12
- var OneInchLpFunctions;
13
- (function (OneInchLpFunctions) {
14
- OneInchLpFunctions["swap"] = "swap";
15
- })(OneInchLpFunctions || (OneInchLpFunctions = {}));
16
- class OneInchLp extends simple_exchange_1.SimpleExchange {
17
- constructor(dexHelper) {
18
- super(dexHelper, 'oneinchlp');
19
- this.exchangeRouterInterface = new abi_1.Interface(OneInchLp_json_1.default);
20
- }
21
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
22
- return {
23
- targetExchange: data.exchange,
24
- payload: '0x',
25
- networkFee: '0',
26
- };
27
- }
28
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
29
- const swapFunction = OneInchLpFunctions.swap;
30
- const swapFunctionParams = [
31
- (0, utils_1.isETHAddress)(srcToken) ? constants_1.NULL_ADDRESS : srcToken,
32
- (0, utils_1.isETHAddress)(destToken) ? constants_1.NULL_ADDRESS : destToken,
33
- srcAmount,
34
- destAmount,
35
- constants_1.NULL_ADDRESS,
36
- ];
37
- const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
38
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.exchange);
39
- }
40
- }
41
- exports.OneInchLp = OneInchLp;
42
- OneInchLp.dexKeys = ['oneinchlp'];
43
- //# sourceMappingURL=OneInchLp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneInchLp.js","sourceRoot":"","sources":["../../src/dex/OneInchLp.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAC7D,4CAAsD;AAGtD,uDAAmD;AACnD,2EAAiD;AACjD,oCAAwC;AAcxC,IAAK,kBAEJ;AAFD,WAAK,kBAAkB;IACrB,mCAAa,CAAA;AACf,CAAC,EAFI,kBAAkB,KAAlB,kBAAkB,QAEtB;AAED,MAAa,SACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9B,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAC1C,wBAA8B,CAC/B,CAAC;IACJ,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAmB,EACnB,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAmB,EACnB,IAAc;QAEd,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAC7C,MAAM,kBAAkB,GAAmB;YACzC,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAY,CAAC,CAAC,CAAC,QAAQ;YAChD,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,wBAAY,CAAC,CAAC,CAAC,SAAS;YAClD,SAAS;YACT,UAAU;YACV,wBAAY;SACb,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;;AA1DH,8BA2DC;AAvDQ,iBAAO,GAAG,CAAC,WAAW,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { SwapSide } from '../../constants';
3
- import { AdapterExchangeParam, Address, DexExchangeParam, NumberAsString, SimpleExchangeParam } from '../../types';
4
- import { IDexTxBuilder } from '../idex';
5
- import { SimpleExchange } from '../simple-exchange';
6
- import { IDexHelper } from '../../dex-helper';
7
- import { BProtocolData, BProtocolParam } from './types';
8
- export declare class BProtocol extends SimpleExchange implements IDexTxBuilder<BProtocolData, BProtocolParam> {
9
- static dexKeys: string[];
10
- exchangeRouterInterface: Interface;
11
- constructor(dexHelper: IDexHelper);
12
- getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: BProtocolData, side: SwapSide): AdapterExchangeParam;
13
- getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: BProtocolData, side: SwapSide): Promise<SimpleExchangeParam>;
14
- getDexParam(_srcToken: Address, _destToken: Address, srcAmount: NumberAsString, destAmount: NumberAsString, recipient: Address, data: BProtocolData, _side: SwapSide): DexExchangeParam;
15
- }
@@ -1,56 +0,0 @@
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.BProtocol = void 0;
7
- const abi_1 = require("@ethersproject/abi");
8
- const constants_1 = require("../../constants");
9
- const simple_exchange_1 = require("../simple-exchange");
10
- const BProtocol_json_1 = __importDefault(require("../../abi/BProtocol.json"));
11
- const types_1 = require("./types");
12
- const utils_1 = require("../../executor/utils");
13
- class BProtocol extends simple_exchange_1.SimpleExchange {
14
- constructor(dexHelper) {
15
- super(dexHelper, 'bprotocol');
16
- this.exchangeRouterInterface = new abi_1.Interface(BProtocol_json_1.default);
17
- }
18
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
19
- return {
20
- targetExchange: data.exchange,
21
- payload: '0x',
22
- networkFee: '0',
23
- };
24
- }
25
- async getSimpleParam(srcToken, destToken, srcAmount, destAmount, data, side) {
26
- const swapFunction = types_1.BProtocolFunctions.swap;
27
- const swapFunctionParams = [
28
- srcAmount,
29
- destAmount,
30
- this.augustusAddress,
31
- ];
32
- const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
33
- return this.buildSimpleParamWithoutWETHConversion(srcToken, srcAmount, destToken, destAmount, swapData, data.exchange);
34
- }
35
- getDexParam(_srcToken, _destToken, srcAmount, destAmount, recipient, data, _side) {
36
- const swapFunction = types_1.BProtocolFunctions.swap;
37
- const swapFunctionParams = [
38
- srcAmount,
39
- destAmount,
40
- recipient,
41
- ];
42
- const swapData = this.exchangeRouterInterface.encodeFunctionData(swapFunction, swapFunctionParams);
43
- return {
44
- needWrapNative: this.needWrapNative,
45
- dexFuncHasRecipient: true,
46
- exchangeData: swapData,
47
- targetExchange: data.exchange,
48
- returnAmountPos: _side === constants_1.SwapSide.SELL
49
- ? (0, utils_1.extractReturnAmountPosition)(this.exchangeRouterInterface, swapFunction)
50
- : undefined,
51
- };
52
- }
53
- }
54
- exports.BProtocol = BProtocol;
55
- BProtocol.dexKeys = ['bprotocol'];
56
- //# sourceMappingURL=bProtocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bProtocol.js","sourceRoot":"","sources":["../../../src/dex/bProtocol/bProtocol.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6D;AAC7D,+CAA2C;AAS3C,wDAAoD;AACpD,8EAAoD;AAEpD,mCAA4E;AAC5E,gDAAmE;AAEnE,MAAa,SACX,SAAQ,gCAAc;IAMtB,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9B,IAAI,CAAC,uBAAuB,GAAG,IAAI,eAAS,CAC1C,wBAA8B,CAC/B,CAAC;IACJ,CAAC;IAED,eAAe,CACb,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAmB,EACnB,IAAc;QAEd,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,IAAmB,EACnB,IAAc;QAEd,MAAM,YAAY,GAAG,0BAAkB,CAAC,IAAI,CAAC;QAC7C,MAAM,kBAAkB,GAAmB;YACzC,SAAS;YACT,UAAU;YACV,IAAI,CAAC,eAAe;SACrB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,qCAAqC,CAC/C,QAAQ,EACR,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;IAED,WAAW,CACT,SAAkB,EAClB,UAAmB,EACnB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAAmB,EACnB,KAAe;QAEf,MAAM,YAAY,GAAG,0BAAkB,CAAC,IAAI,CAAC;QAC7C,MAAM,kBAAkB,GAAmB;YACzC,SAAS;YACT,UAAU;YACV,SAAS;SACV,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAC9D,YAAY,EACZ,kBAAkB,CACnB,CAAC;QACF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI;YACzB,YAAY,EAAE,QAAQ;YACtB,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,eAAe,EACb,KAAK,KAAK,oBAAQ,CAAC,IAAI;gBACrB,CAAC,CAAC,IAAA,mCAA2B,EACzB,IAAI,CAAC,uBAAuB,EAC5B,YAAY,CACb;gBACH,CAAC,CAAC,SAAS;SAChB,CAAC;IACJ,CAAC;;AA1FH,8BA2FC;AAvFQ,iBAAO,GAAG,CAAC,WAAW,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- export declare type BProtocolData = {
2
- exchange: string;
3
- };
4
- export declare type BProtocolParam = [
5
- lusdAmount: string,
6
- minEthReturn: string,
7
- dest: string
8
- ];
9
- export declare enum BProtocolFunctions {
10
- swap = "swap"
11
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BProtocolFunctions = void 0;
4
- var BProtocolFunctions;
5
- (function (BProtocolFunctions) {
6
- BProtocolFunctions["swap"] = "swap";
7
- })(BProtocolFunctions = exports.BProtocolFunctions || (exports.BProtocolFunctions = {}));
8
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/bProtocol/types.ts"],"names":[],"mappings":";;;AAUA,IAAY,kBAEX;AAFD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;AACf,CAAC,EAFW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAE7B"}
@@ -1,47 +0,0 @@
1
- import { Interface, Result } from '@ethersproject/abi';
2
- import { DeepReadonly } from 'ts-essentials';
3
- import { Log, Logger } from '../../../types';
4
- import { StatefulEventSubscriber } from '../../../stateful-event-subscriber';
5
- import { IDexHelper } from '../../../dex-helper/idex-helper';
6
- import { Contract } from 'ethers';
7
- import { PoolState, PoolKey } from './pool-utils';
8
- export interface Quote {
9
- consumedAmount: bigint;
10
- calculatedAmount: bigint;
11
- gasConsumed: number;
12
- skipAhead: number;
13
- }
14
- export declare class BasePool extends StatefulEventSubscriber<PoolState.Object> {
15
- readonly parentName: string;
16
- protected network: number;
17
- protected dexHelper: IDexHelper;
18
- private readonly coreIface;
19
- private readonly dataFetcher;
20
- readonly key: PoolKey;
21
- readonly addressesSubscribed: string[];
22
- constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, coreIface: Interface, dataFetcher: Contract, key: PoolKey, core: Contract);
23
- /**
24
- * The function is called every time any of the subscribed
25
- * addresses release log. The function accepts the current
26
- * state, updates the state according to the log, and returns
27
- * the updated state.
28
- * @param state - Current state of event subscriber
29
- * @param log - Log released by one of the subscribed addresses
30
- * @returns Updates state of the event subscriber after the log
31
- */
32
- protected processLog(state: DeepReadonly<PoolState.Object>, log: Readonly<Log>): DeepReadonly<PoolState.Object> | null;
33
- /**
34
- * The function generates state using on-chain calls. This
35
- * function is called to regenerate state if the event based
36
- * system fails to fetch events and the local state is no
37
- * more correct.
38
- * @param blockNumber - Blocknumber for which the state should
39
- * should be generated
40
- * @returns state of the event subscriber at blocknumber
41
- */
42
- generateState(blockNumber: number): Promise<DeepReadonly<PoolState.Object>>;
43
- handleSwappedEvent(data: string, oldState: DeepReadonly<PoolState.Object>): DeepReadonly<PoolState.Object> | null;
44
- handlePositionUpdatedEvent(args: Result, oldState: DeepReadonly<PoolState.Object>): DeepReadonly<PoolState.Object> | null;
45
- quote(amount: bigint, token: bigint, blockNumber: number): Quote;
46
- computeTvl(): [bigint, bigint] | null;
47
- }
@@ -1,184 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BasePool = void 0;
4
- const utils_1 = require("../../../utils");
5
- const stateful_event_subscriber_1 = require("../../../stateful-event-subscriber");
6
- const swap_1 = require("./math/swap");
7
- const tick_1 = require("./math/tick");
8
- const price_1 = require("./math/price");
9
- const pool_utils_1 = require("./pool-utils");
10
- const BASE_GAS_COST = 46_000;
11
- const GAS_COST_OF_ONE_INITIALIZED_TICK_CROSSED = 9_400;
12
- const GAS_COST_OF_ONE_TICK_SPACING_CROSSED = 4_000;
13
- class BasePool extends stateful_event_subscriber_1.StatefulEventSubscriber {
14
- parentName;
15
- network;
16
- dexHelper;
17
- coreIface;
18
- dataFetcher;
19
- key;
20
- addressesSubscribed;
21
- constructor(parentName, network, dexHelper, logger, coreIface, dataFetcher, key, core) {
22
- super(parentName, key.string_id, dexHelper, logger);
23
- this.parentName = parentName;
24
- this.network = network;
25
- this.dexHelper = dexHelper;
26
- this.coreIface = coreIface;
27
- this.dataFetcher = dataFetcher;
28
- this.key = key;
29
- this.addressesSubscribed = [core.address];
30
- }
31
- /**
32
- * The function is called every time any of the subscribed
33
- * addresses release log. The function accepts the current
34
- * state, updates the state according to the log, and returns
35
- * the updated state.
36
- * @param state - Current state of event subscriber
37
- * @param log - Log released by one of the subscribed addresses
38
- * @returns Updates state of the event subscriber after the log
39
- */
40
- processLog(state, log) {
41
- if (log.topics.length === 0) {
42
- return this.handleSwappedEvent(log.data, state);
43
- }
44
- try {
45
- const event = this.coreIface.parseLog(log);
46
- if (event.name === 'PositionUpdated') {
47
- return this.handlePositionUpdatedEvent(event.args, state);
48
- }
49
- }
50
- catch (e) {
51
- (0, utils_1.catchParseLogError)(e, this.logger);
52
- }
53
- return null;
54
- }
55
- /**
56
- * The function generates state using on-chain calls. This
57
- * function is called to regenerate state if the event based
58
- * system fails to fetch events and the local state is no
59
- * more correct.
60
- * @param blockNumber - Blocknumber for which the state should
61
- * should be generated
62
- * @returns state of the event subscriber at blocknumber
63
- */
64
- async generateState(blockNumber) {
65
- const data = await this.dataFetcher.getQuoteData([this.key.toAbi()], 10, {
66
- blockTag: blockNumber,
67
- });
68
- return pool_utils_1.PoolState.fromQuoter(data[0], this.key.config.tickSpacing === tick_1.FULL_RANGE_TICK_SPACING);
69
- }
70
- handleSwappedEvent(data, oldState) {
71
- let n = BigInt(data);
72
- const poolId = (n >> 512n) & ((1n << 256n) - 1n);
73
- if (this.key.num_id !== poolId) {
74
- return null;
75
- }
76
- // tick: int32 (4 bytes)
77
- const tickRaw = n & ((1n << 32n) - 1n);
78
- const tickAfter = Number(toSigned(tickRaw, 32));
79
- n >>= 32n;
80
- // sqrtRatio: uint96 (12 bytes)
81
- const sqrtRatioAfterCompact = n & ((1n << 96n) - 1n);
82
- n >>= 96n;
83
- const sqrtRatioAfter = (0, price_1.floatSqrtRatioToFixed)(sqrtRatioAfterCompact);
84
- // liquidity: uint128 (16 bytes)
85
- const liquidityAfter = n & ((1n << 128n) - 1n);
86
- return pool_utils_1.PoolState.fromSwappedEvent(oldState, sqrtRatioAfter, liquidityAfter, tickAfter);
87
- }
88
- handlePositionUpdatedEvent(args, oldState) {
89
- if (this.key.num_id !== BigInt(args.poolId)) {
90
- return null;
91
- }
92
- const params = args.params;
93
- return pool_utils_1.PoolState.fromPositionUpdatedEvent(oldState, [params.bounds.lower, params.bounds.upper], params.liquidityDelta.toBigInt());
94
- }
95
- quote(amount, token, blockNumber) {
96
- const isToken1 = token === this.key.token1;
97
- if (!isToken1 && this.key.token0 !== token) {
98
- throw new Error('Invalid token');
99
- }
100
- if (amount === 0n) {
101
- return {
102
- consumedAmount: 0n,
103
- calculatedAmount: 0n,
104
- gasConsumed: 0,
105
- skipAhead: 0,
106
- };
107
- }
108
- const isIncreasing = (0, swap_1.isPriceIncreasing)(amount, isToken1);
109
- let state = this.getState(blockNumber);
110
- if (state === null) {
111
- throw new Error(`Quote for block number ${blockNumber} requested but state is not recent enough`);
112
- }
113
- let { sqrtRatio, liquidity, activeTickIndex, sortedTicks } = state;
114
- const sqrtRatioLimit = isIncreasing ? tick_1.MAX_SQRT_RATIO : tick_1.MIN_SQRT_RATIO;
115
- let calculatedAmount = 0n;
116
- let initializedTicksCrossed = 0;
117
- let amountRemaining = amount;
118
- const startingSqrtRatio = sqrtRatio;
119
- while (amountRemaining !== 0n && sqrtRatio !== sqrtRatioLimit) {
120
- const nextInitializedTick = (isIncreasing
121
- ? sortedTicks[activeTickIndex === null ? 0 : activeTickIndex + 1]
122
- : activeTickIndex === null
123
- ? null
124
- : sortedTicks[activeTickIndex]) ?? null;
125
- const nextInitializedTickSqrtRatio = nextInitializedTick
126
- ? (0, tick_1.toSqrtRatio)(nextInitializedTick.number)
127
- : null;
128
- const stepSqrtRatioLimit = nextInitializedTickSqrtRatio === null
129
- ? sqrtRatioLimit
130
- : nextInitializedTickSqrtRatio < sqrtRatioLimit === isIncreasing
131
- ? nextInitializedTickSqrtRatio
132
- : sqrtRatioLimit;
133
- const step = (0, swap_1.computeStep)({
134
- fee: this.key.config.fee,
135
- sqrtRatio,
136
- liquidity,
137
- isToken1,
138
- sqrtRatioLimit: stepSqrtRatioLimit,
139
- amount: amountRemaining,
140
- });
141
- amountRemaining -= step.consumedAmount;
142
- calculatedAmount += step.calculatedAmount;
143
- sqrtRatio = step.sqrtRatioNext;
144
- // cross the tick if the price moved all the way to the next initialized tick price
145
- if (nextInitializedTick && sqrtRatio === nextInitializedTickSqrtRatio) {
146
- activeTickIndex = isIncreasing
147
- ? activeTickIndex === null
148
- ? 0
149
- : activeTickIndex + 1
150
- : activeTickIndex
151
- ? activeTickIndex - 1
152
- : null;
153
- initializedTicksCrossed++;
154
- liquidity += isIncreasing
155
- ? nextInitializedTick.liquidityDelta
156
- : -nextInitializedTick.liquidityDelta;
157
- }
158
- }
159
- const tickSpacingsCrossed = (0, tick_1.approximateNumberOfTickSpacingsCrossed)(startingSqrtRatio, sqrtRatio, this.key.config.tickSpacing);
160
- return {
161
- consumedAmount: amount - amountRemaining,
162
- calculatedAmount,
163
- gasConsumed: BASE_GAS_COST +
164
- initializedTicksCrossed * GAS_COST_OF_ONE_INITIALIZED_TICK_CROSSED +
165
- tickSpacingsCrossed * GAS_COST_OF_ONE_TICK_SPACING_CROSSED,
166
- skipAhead: initializedTicksCrossed === 0
167
- ? 0
168
- : Math.floor(tickSpacingsCrossed / initializedTicksCrossed),
169
- };
170
- }
171
- computeTvl() {
172
- const state = this.getStaleState();
173
- if (state === null) {
174
- return null;
175
- }
176
- return pool_utils_1.PoolState.computeTvl(state);
177
- }
178
- }
179
- exports.BasePool = BasePool;
180
- function toSigned(value, bits) {
181
- const half = 1n << BigInt(bits - 1);
182
- return value >= half ? value - (1n << BigInt(bits)) : value;
183
- }
184
- //# sourceMappingURL=base-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-pool.js","sourceRoot":"","sources":["../../../../src/dex/ekubo/pools/base-pool.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- import { Interface, Result } from '@ethersproject/abi';
2
- import { Logger } from 'log4js';
3
- import { DeepReadonly } from 'ts-essentials';
4
- import { IDexHelper } from '../../../dex-helper/idex-helper';
5
- import { StatefulEventSubscriber } from '../../../stateful-event-subscriber';
6
- import { BlockHeader, Log } from '../../../types';
7
- import { PoolKey } from './utils';
8
- export interface Quote {
9
- consumedAmount: bigint;
10
- calculatedAmount: bigint;
11
- gasConsumed: number;
12
- skipAhead: number;
13
- }
14
- export interface PoolKeyed {
15
- key: PoolKey;
16
- }
17
- export interface IEkuboPool extends PoolKeyed {
18
- quote(amount: bigint, token: bigint, blockNumber: number): Quote;
19
- }
20
- export type QuoteFn<State> = (amount: bigint, isToken1: boolean, state: DeepReadonly<State>) => Quote;
21
- export type NamedEventHandler<State> = (args: Result, oldState: DeepReadonly<State>, blockHeader: Readonly<BlockHeader>) => DeepReadonly<State> | null;
22
- export type AnonymousEventHandler<State> = (data: string, oldState: DeepReadonly<State>, blockHeader: Readonly<BlockHeader>) => DeepReadonly<State> | null;
23
- export declare class NamedEventHandlers<State> {
24
- private readonly iface;
25
- private readonly handlers;
26
- constructor(iface: Interface, handlers: Record<string, NamedEventHandler<State>>);
27
- parseLog(log: Readonly<Log>, oldState: DeepReadonly<State>, blockHeader: Readonly<BlockHeader>): DeepReadonly<State> | null;
28
- }
29
- export declare abstract class EkuboPool<State> extends StatefulEventSubscriber<State> implements IEkuboPool {
30
- readonly key: PoolKey;
31
- private readonly namedEventHandlers;
32
- private readonly anonymousEventHandlers;
33
- private readonly quoteFn;
34
- protected constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, key: PoolKey, namedEventHandlers: Record<string, NamedEventHandlers<State>>, anonymousEventHandlers: Record<string, AnonymousEventHandler<State>>, quoteFn: QuoteFn<State>);
35
- /**
36
- * The function is called every time any of the subscribed
37
- * addresses release log. The function accepts the current
38
- * state, updates the state according to the log, and returns
39
- * the updated state.
40
- * @param state - Current state of event subscriber
41
- * @param log - Log released by one of the subscribed addresses
42
- * @returns Updates state of the event subscriber after the log
43
- */
44
- protected processLog(state: DeepReadonly<State>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<State> | null;
45
- quote(amount: bigint, token: bigint, blockNumber: number): Quote;
46
- }
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EkuboPool = exports.NamedEventHandlers = void 0;
4
- const stateful_event_subscriber_1 = require("../../../stateful-event-subscriber");
5
- class NamedEventHandlers {
6
- iface;
7
- handlers;
8
- constructor(iface, handlers) {
9
- this.iface = iface;
10
- this.handlers = handlers;
11
- }
12
- parseLog(log, oldState, blockHeader) {
13
- const event = this.iface.parseLog(log);
14
- return this.handlers[event.name]?.(event.args, oldState, blockHeader);
15
- }
16
- }
17
- exports.NamedEventHandlers = NamedEventHandlers;
18
- const BASE_GAS_COST = 22_000;
19
- class EkuboPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
20
- key;
21
- namedEventHandlers;
22
- anonymousEventHandlers;
23
- quoteFn;
24
- constructor(parentName, dexHelper, logger, key, namedEventHandlers, anonymousEventHandlers, quoteFn) {
25
- super(parentName, key.string_id, dexHelper, logger);
26
- this.key = key;
27
- this.namedEventHandlers = namedEventHandlers;
28
- this.anonymousEventHandlers = anonymousEventHandlers;
29
- this.quoteFn = quoteFn;
30
- this.addressesSubscribed = [
31
- ...new Set(Object.keys(namedEventHandlers).concat(Object.keys(anonymousEventHandlers))),
32
- ];
33
- }
34
- /**
35
- * The function is called every time any of the subscribed
36
- * addresses release log. The function accepts the current
37
- * state, updates the state according to the log, and returns
38
- * the updated state.
39
- * @param state - Current state of event subscriber
40
- * @param log - Log released by one of the subscribed addresses
41
- * @returns Updates state of the event subscriber after the log
42
- */
43
- processLog(state, log, blockHeader) {
44
- const emitter = log.address;
45
- if (log.topics.length === 0) {
46
- return this.anonymousEventHandlers[emitter]?.(log.data, state, blockHeader);
47
- }
48
- return this.namedEventHandlers[emitter]?.parseLog(log, state, blockHeader);
49
- }
50
- quote(amount, token, blockNumber) {
51
- const isToken1 = token === this.key.token1;
52
- if (!isToken1 && this.key.token0 !== token) {
53
- throw new Error('Invalid token');
54
- }
55
- if (amount === 0n) {
56
- return {
57
- consumedAmount: 0n,
58
- calculatedAmount: 0n,
59
- gasConsumed: 0,
60
- skipAhead: 0,
61
- };
62
- }
63
- const state = this.getState(blockNumber);
64
- if (state === null) {
65
- throw new Error(`Quote for block number ${blockNumber} requested but state is not recent enough`);
66
- }
67
- const quote = this.quoteFn(amount, isToken1, state);
68
- if (quote.calculatedAmount !== 0n) {
69
- quote.gasConsumed += BASE_GAS_COST;
70
- }
71
- return quote;
72
- }
73
- }
74
- exports.EkuboPool = EkuboPool;
75
- //# sourceMappingURL=iface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iface.js","sourceRoot":"","sources":["../../../../src/dex/ekubo/pools/iface.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { BigNumber } from 'ethers';
2
- export declare function floatSqrtRatioToFixed(sqrtRatioFloat: bigint): bigint;
3
- export declare function fixedSqrtRatioToFloat(sqrtRatioFixed: bigint): bigint;
4
- export declare const MAX_SQRT_RATIO_FLOAT: BigNumber;
5
- export declare const MIN_SQRT_RATIO_FLOAT: BigNumber;
6
- export declare function nextSqrtRatioFromAmount0(sqrtRatio: bigint, liquidity: bigint, amount0: bigint): bigint | null;
7
- export declare function nextSqrtRatioFromAmount1(sqrtRatio: bigint, liquidity: bigint, amount1: bigint): bigint | null;