@paraswap/dex-lib 4.8.26 → 4.8.28

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