@paraswap/dex-lib 5.1.1 → 5.1.3

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 (292) hide show
  1. package/build/abi/pancakeswap-infinity/cl-pool-manager.json +80 -0
  2. package/build/dex/fluid-dex/scripts/measure-calc-time.js +178 -0
  3. package/build/dex/fluid-dex/scripts/measure-calc-time.js.map +1 -0
  4. package/build/dex/index.js +5 -6
  5. package/build/dex/index.js.map +1 -1
  6. package/build/dex/uniswap-v3/config.js +28 -0
  7. package/build/dex/uniswap-v3/config.js.map +1 -1
  8. package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.js +1 -0
  9. package/build/dex/uniswap-v3/forks/velodrome-slipstream/velodrome-slipstream.js.map +1 -1
  10. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +1 -0
  11. package/build/dex/uniswap-v4/api-go/compare-pricing.js +187 -0
  12. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +1 -0
  13. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +1 -0
  14. package/build/dex/uniswap-v4/api-go/compare-states.js +149 -0
  15. package/build/dex/uniswap-v4/api-go/compare-states.js.map +1 -0
  16. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  17. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +140 -0
  18. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +1 -0
  19. package/build/executor/__test-utils__/snapshot-test-helpers.d.ts +10 -0
  20. package/build/executor/__test-utils__/snapshot-test-helpers.js +72 -0
  21. package/build/executor/__test-utils__/snapshot-test-helpers.js.map +1 -0
  22. package/build/executor/address-utils.d.ts +2 -0
  23. package/build/executor/address-utils.js +7 -0
  24. package/build/executor/address-utils.js.map +1 -0
  25. package/build/executor/approval.d.ts +9 -0
  26. package/build/executor/approval.js +29 -0
  27. package/build/executor/approval.js.map +1 -0
  28. package/build/executor/encoding-context.d.ts +4 -0
  29. package/build/executor/encoding-context.js +54 -0
  30. package/build/executor/encoding-context.js.map +1 -0
  31. package/build/executor/encoding-types.d.ts +75 -0
  32. package/build/{dex/quick-perps/types.js → executor/encoding-types.js} +1 -1
  33. package/build/executor/encoding-types.js.map +1 -0
  34. package/build/executor/factory.d.ts +4 -0
  35. package/build/executor/factory.js +23 -0
  36. package/build/executor/factory.js.map +1 -0
  37. package/build/executor/route-plan.d.ts +8 -0
  38. package/build/executor/route-plan.js +109 -0
  39. package/build/executor/route-plan.js.map +1 -0
  40. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.d.ts +6 -0
  41. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js +39 -0
  42. package/build/generic-swap-transaction-builder/dex-encoder/direct-methods.js.map +1 -0
  43. package/build/generic-swap-transaction-builder/dex-encoder/index.d.ts +4 -0
  44. package/build/generic-swap-transaction-builder/dex-encoder/index.js +21 -0
  45. package/build/generic-swap-transaction-builder/dex-encoder/index.js.map +1 -0
  46. package/build/generic-swap-transaction-builder/dex-encoder/ports.d.ts +26 -0
  47. package/build/{dex/maker-psm/types.js → generic-swap-transaction-builder/dex-encoder/ports.js} +1 -1
  48. package/build/generic-swap-transaction-builder/dex-encoder/ports.js.map +1 -0
  49. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.d.ts +22 -0
  50. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js +299 -0
  51. package/build/generic-swap-transaction-builder/dex-encoder/ts-adapter.js.map +1 -0
  52. package/build/generic-swap-transaction-builder/dex-encoder/types.d.ts +207 -0
  53. package/build/generic-swap-transaction-builder/dex-encoder/types.js +194 -0
  54. package/build/generic-swap-transaction-builder/dex-encoder/types.js.map +1 -0
  55. package/build/generic-swap-transaction-builder/orchestration.d.ts +65 -0
  56. package/build/generic-swap-transaction-builder/orchestration.js +198 -0
  57. package/build/generic-swap-transaction-builder/orchestration.js.map +1 -0
  58. package/build/generic-swap-transaction-builder/resolved/build-transaction.d.ts +13 -0
  59. package/build/generic-swap-transaction-builder/resolved/build-transaction.js +343 -0
  60. package/build/generic-swap-transaction-builder/resolved/build-transaction.js.map +1 -0
  61. package/build/generic-swap-transaction-builder/resolved/index.d.ts +4 -0
  62. package/build/generic-swap-transaction-builder/resolved/index.js +21 -0
  63. package/build/generic-swap-transaction-builder/resolved/index.js.map +1 -0
  64. package/build/generic-swap-transaction-builder/resolved/route-plan.d.ts +2 -0
  65. package/build/generic-swap-transaction-builder/resolved/route-plan.js +11 -0
  66. package/build/generic-swap-transaction-builder/resolved/route-plan.js.map +1 -0
  67. package/build/generic-swap-transaction-builder/resolved/types.d.ts +67 -0
  68. package/build/generic-swap-transaction-builder/resolved/types.js.map +1 -0
  69. package/build/generic-swap-transaction-builder/resolved/validation.d.ts +10 -0
  70. package/build/generic-swap-transaction-builder/resolved/validation.js +69 -0
  71. package/build/generic-swap-transaction-builder/resolved/validation.js.map +1 -0
  72. package/package.json +1 -1
  73. package/build/abi/BProtocol.json +0 -1155
  74. package/build/abi/Jarvis.json +0 -1172
  75. package/build/abi/MStableAsset.json +0 -1545
  76. package/build/abi/OneInchLp.json +0 -1304
  77. package/build/abi/Onebit.json +0 -736
  78. package/build/abi/Shell.json +0 -1294
  79. package/build/abi/TraderJoeV2Router.json +0 -50
  80. package/build/abi/idle-dao/idle-cdo-factory.json +0 -38
  81. package/build/abi/idle-dao/idle-cdo.json +0 -1245
  82. package/build/abi/infusion/InfusionFactory.json +0 -147
  83. package/build/abi/infusion/InfusionPair.json +0 -658
  84. package/build/abi/infusion/InfusionRouter.json +0 -442
  85. package/build/abi/maker-psm/pot.json +0 -322
  86. package/build/abi/maker-psm/psm.json +0 -243
  87. package/build/abi/maker-psm/vat.json +0 -363
  88. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
  89. package/build/abi/quick-perps/fast-price-events.json +0 -70
  90. package/build/abi/quick-perps/fast-price-feed.json +0 -741
  91. package/build/abi/quick-perps/reader.json +0 -313
  92. package/build/abi/quick-perps/vault-price-feed.json +0 -323
  93. package/build/abi/quick-perps/vault.json +0 -1953
  94. package/build/abi/uniswap-v2/excalibur-pool.json +0 -881
  95. package/build/abi/uniswap-v2/mdex-factory.json +0 -759
  96. package/build/abi/wUSDM.json +0 -757
  97. package/build/abi/zrx.v2.json +0 -1967
  98. package/build/abi/zrx.v3.json +0 -3454
  99. package/build/abi/zrx.v4.json +0 -2193
  100. package/build/dex/OneInchLp.d.ts +0 -24
  101. package/build/dex/OneInchLp.js +0 -43
  102. package/build/dex/OneInchLp.js.map +0 -1
  103. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  104. package/build/dex/bProtocol/bProtocol.js +0 -56
  105. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  106. package/build/dex/bProtocol/types.d.ts +0 -11
  107. package/build/dex/bProtocol/types.js +0 -8
  108. package/build/dex/bProtocol/types.js.map +0 -1
  109. package/build/dex/ekubo/pools/base-pool.d.ts +0 -47
  110. package/build/dex/ekubo/pools/base-pool.js +0 -184
  111. package/build/dex/ekubo/pools/base-pool.js.map +0 -1
  112. package/build/dex/ekubo/pools/iface.d.ts +0 -46
  113. package/build/dex/ekubo/pools/iface.js +0 -75
  114. package/build/dex/ekubo/pools/iface.js.map +0 -1
  115. package/build/dex/ekubo/pools/math/price.d.ts +0 -7
  116. package/build/dex/ekubo/pools/math/price.js +0 -112
  117. package/build/dex/ekubo/pools/math/price.js.map +0 -1
  118. package/build/dex/ekubo/pools/oracle-pool.d.ts +0 -10
  119. package/build/dex/ekubo/pools/oracle-pool.js +0 -19
  120. package/build/dex/ekubo/pools/oracle-pool.js.map +0 -1
  121. package/build/dex/ekubo/pools/pool-utils.d.ts +0 -44
  122. package/build/dex/ekubo/pools/pool-utils.js +0 -240
  123. package/build/dex/ekubo/pools/pool-utils.js.map +0 -1
  124. package/build/dex/idle-dao/config.d.ts +0 -5
  125. package/build/dex/idle-dao/config.js +0 -24
  126. package/build/dex/idle-dao/config.js.map +0 -1
  127. package/build/dex/idle-dao/idle-dao.d.ts +0 -42
  128. package/build/dex/idle-dao/idle-dao.js +0 -279
  129. package/build/dex/idle-dao/idle-dao.js.map +0 -1
  130. package/build/dex/idle-dao/token_list.d.ts +0 -4
  131. package/build/dex/idle-dao/token_list.js +0 -289
  132. package/build/dex/idle-dao/token_list.js.map +0 -1
  133. package/build/dex/idle-dao/tokens.d.ts +0 -9
  134. package/build/dex/idle-dao/tokens.js +0 -68
  135. package/build/dex/idle-dao/tokens.js.map +0 -1
  136. package/build/dex/idle-dao/types.d.ts +0 -35
  137. package/build/dex/idle-dao/types.js +0 -11
  138. package/build/dex/idle-dao/types.js.map +0 -1
  139. package/build/dex/idle-dao/utils.d.ts +0 -8
  140. package/build/dex/idle-dao/utils.js +0 -149
  141. package/build/dex/idle-dao/utils.js.map +0 -1
  142. package/build/dex/infusion/config.d.ts +0 -3
  143. package/build/dex/infusion/config.js +0 -20
  144. package/build/dex/infusion/config.js.map +0 -1
  145. package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
  146. package/build/dex/infusion/infusion-stable-pool.js +0 -74
  147. package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
  148. package/build/dex/infusion/infusion.d.ts +0 -51
  149. package/build/dex/infusion/infusion.js +0 -500
  150. package/build/dex/infusion/infusion.js.map +0 -1
  151. package/build/dex/infusion/types.d.ts +0 -45
  152. package/build/dex/infusion/types.js.map +0 -1
  153. package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
  154. package/build/dex/infusion/utils/isStablePair.js +0 -18
  155. package/build/dex/infusion/utils/isStablePair.js.map +0 -1
  156. package/build/dex/jarvis.d.ts +0 -56
  157. package/build/dex/jarvis.js +0 -163
  158. package/build/dex/jarvis.js.map +0 -1
  159. package/build/dex/mStable.d.ts +0 -44
  160. package/build/dex/mStable.js +0 -75
  161. package/build/dex/mStable.js.map +0 -1
  162. package/build/dex/maker-psm/config.d.ts +0 -11
  163. package/build/dex/maker-psm/config.js +0 -53
  164. package/build/dex/maker-psm/config.js.map +0 -1
  165. package/build/dex/maker-psm/maker-psm.d.ts +0 -103
  166. package/build/dex/maker-psm/maker-psm.js +0 -493
  167. package/build/dex/maker-psm/maker-psm.js.map +0 -1
  168. package/build/dex/maker-psm/types.d.ts +0 -39
  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.map +0 -1
  190. package/build/dex/quick-perps/usdq.d.ts +0 -15
  191. package/build/dex/quick-perps/usdq.js +0 -62
  192. package/build/dex/quick-perps/usdq.js.map +0 -1
  193. package/build/dex/quick-perps/vault-price-feed.d.ts +0 -43
  194. package/build/dex/quick-perps/vault-price-feed.js +0 -203
  195. package/build/dex/quick-perps/vault-price-feed.js.map +0 -1
  196. package/build/dex/quick-perps/vault-utils.d.ts +0 -8
  197. package/build/dex/quick-perps/vault-utils.js +0 -42
  198. package/build/dex/quick-perps/vault-utils.js.map +0 -1
  199. package/build/dex/quick-perps/vault.d.ts +0 -46
  200. package/build/dex/quick-perps/vault.js +0 -182
  201. package/build/dex/quick-perps/vault.js.map +0 -1
  202. package/build/dex/se-vlr/config.d.ts +0 -3
  203. package/build/dex/se-vlr/config.js +0 -24
  204. package/build/dex/se-vlr/config.js.map +0 -1
  205. package/build/dex/se-vlr/se-vlr-pool.d.ts +0 -39
  206. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  207. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  208. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  209. package/build/dex/se-vlr/se-vlr.js +0 -131
  210. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  211. package/build/dex/se-vlr/types.d.ts +0 -6
  212. package/build/dex/se-vlr/types.js +0 -3
  213. package/build/dex/se-vlr/types.js.map +0 -1
  214. package/build/dex/shell.d.ts +0 -25
  215. package/build/dex/shell.js +0 -41
  216. package/build/dex/shell.js.map +0 -1
  217. package/build/dex/solidly/forks-override/aerodrome.d.ts +0 -14
  218. package/build/dex/solidly/forks-override/aerodrome.js +0 -46
  219. package/build/dex/solidly/forks-override/aerodrome.js.map +0 -1
  220. package/build/dex/solidly/forks-override/chronos.d.ts +0 -23
  221. package/build/dex/solidly/forks-override/chronos.js +0 -141
  222. package/build/dex/solidly/forks-override/chronos.js.map +0 -1
  223. package/build/dex/solidly/forks-override/usdfi.d.ts +0 -8
  224. package/build/dex/solidly/forks-override/usdfi.js +0 -15
  225. package/build/dex/solidly/forks-override/usdfi.js.map +0 -1
  226. package/build/dex/solidly/forks-override/velocimeter.d.ts +0 -23
  227. package/build/dex/solidly/forks-override/velocimeter.js +0 -77
  228. package/build/dex/solidly/forks-override/velocimeter.js.map +0 -1
  229. package/build/dex/tessera/types.d.ts +0 -3
  230. package/build/dex/tessera/types.js +0 -3
  231. package/build/dex/tessera/types.js.map +0 -1
  232. package/build/dex/trader-joe-v2.d.ts +0 -40
  233. package/build/dex/trader-joe-v2.js +0 -74
  234. package/build/dex/trader-joe-v2.js.map +0 -1
  235. package/build/dex/uniswap-v2/dfyn.d.ts +0 -19
  236. package/build/dex/uniswap-v2/dfyn.js +0 -61
  237. package/build/dex/uniswap-v2/dfyn.js.map +0 -1
  238. package/build/dex/uniswap-v2/excalibur.d.ts +0 -24
  239. package/build/dex/uniswap-v2/excalibur.js +0 -47
  240. package/build/dex/uniswap-v2/excalibur.js.map +0 -1
  241. package/build/dex/uniswap-v2/mdex.d.ts +0 -24
  242. package/build/dex/uniswap-v2/mdex.js +0 -50
  243. package/build/dex/uniswap-v2/mdex.js.map +0 -1
  244. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +0 -24
  245. package/build/dex/uniswap-v2/nomiswap-v2.js +0 -57
  246. package/build/dex/uniswap-v2/nomiswap-v2.js.map +0 -1
  247. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js +0 -160
  248. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js.map +0 -1
  249. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  250. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  251. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  252. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -3
  253. package/build/dex/uniswap-v4/contract-math/Position.js +0 -10
  254. package/build/dex/uniswap-v4/contract-math/Position.js.map +0 -1
  255. package/build/dex/usual-bond/config.d.ts +0 -3
  256. package/build/dex/usual-bond/config.js +0 -13
  257. package/build/dex/usual-bond/config.js.map +0 -1
  258. package/build/dex/usual-bond/types.d.ts +0 -7
  259. package/build/dex/usual-bond/types.js +0 -3
  260. package/build/dex/usual-bond/types.js.map +0 -1
  261. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  262. package/build/dex/usual-bond/usual-bond.js +0 -176
  263. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  264. package/build/dex/wusdm/config.d.ts +0 -3
  265. package/build/dex/wusdm/config.js +0 -43
  266. package/build/dex/wusdm/config.js.map +0 -1
  267. package/build/dex/wusdm/constants.d.ts +0 -2
  268. package/build/dex/wusdm/constants.js +0 -6
  269. package/build/dex/wusdm/constants.js.map +0 -1
  270. package/build/dex/wusdm/types.d.ts +0 -18
  271. package/build/dex/wusdm/types.js +0 -11
  272. package/build/dex/wusdm/types.js.map +0 -1
  273. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  274. package/build/dex/wusdm/wusdm-pool.js +0 -74
  275. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  276. package/build/dex/wusdm/wusdm.d.ts +0 -46
  277. package/build/dex/wusdm/wusdm.js +0 -243
  278. package/build/dex/wusdm/wusdm.js.map +0 -1
  279. package/build/dex/zerox/config.d.ts +0 -2
  280. package/build/dex/zerox/config.js +0 -33
  281. package/build/dex/zerox/config.js.map +0 -1
  282. package/build/dex/zerox/index.d.ts +0 -22
  283. package/build/dex/zerox/index.js +0 -225
  284. package/build/dex/zerox/index.js.map +0 -1
  285. package/build/dex/zerox/order.d.ts +0 -88
  286. package/build/dex/zerox/order.js +0 -53
  287. package/build/dex/zerox/order.js.map +0 -1
  288. package/build/dex/zerox/types.d.ts +0 -73
  289. package/build/dex/zerox/types.js +0 -21
  290. package/build/dex/zerox/types.js.map +0 -1
  291. /package/build/dex/{uniswap-v3/scripts/bench-all-dexes.d.ts → fluid-dex/scripts/measure-calc-time.d.ts} +0 -0
  292. /package/build/{dex/infusion → generic-swap-transaction-builder/resolved}/types.js +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;