@paraswap/dex-lib 4.8.40 → 4.8.41

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 (239) 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.d.ts +4 -1
  5. package/build/dex/index.js +31 -0
  6. package/build/dex/index.js.map +1 -1
  7. package/build/dex/pancakeswap-infinity/subgraph.js +2 -4
  8. package/build/dex/pancakeswap-infinity/subgraph.js.map +1 -1
  9. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +1 -0
  10. package/build/dex/uniswap-v4/api-go/compare-pricing.js +187 -0
  11. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +1 -0
  12. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +1 -0
  13. package/build/dex/uniswap-v4/api-go/compare-states.js +149 -0
  14. package/build/dex/uniswap-v4/api-go/compare-states.js.map +1 -0
  15. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  16. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +140 -0
  17. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +1 -0
  18. package/build/pools-helper.js +3 -3
  19. package/build/pools-helper.js.map +1 -1
  20. package/package.json +1 -1
  21. package/build/abi/BProtocol.json +0 -1155
  22. package/build/abi/Jarvis.json +0 -1172
  23. package/build/abi/MStableAsset.json +0 -1545
  24. package/build/abi/OneInchLp.json +0 -1304
  25. package/build/abi/Onebit.json +0 -736
  26. package/build/abi/Shell.json +0 -1294
  27. package/build/abi/TraderJoeV2Router.json +0 -50
  28. package/build/abi/idle-dao/idle-cdo-factory.json +0 -38
  29. package/build/abi/idle-dao/idle-cdo.json +0 -1245
  30. package/build/abi/infusion/InfusionFactory.json +0 -147
  31. package/build/abi/infusion/InfusionPair.json +0 -658
  32. package/build/abi/infusion/InfusionRouter.json +0 -442
  33. package/build/abi/maker-psm/pot.json +0 -322
  34. package/build/abi/maker-psm/psm.json +0 -243
  35. package/build/abi/maker-psm/vat.json +0 -363
  36. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +0 -773
  37. package/build/abi/quick-perps/fast-price-events.json +0 -70
  38. package/build/abi/quick-perps/fast-price-feed.json +0 -741
  39. package/build/abi/quick-perps/reader.json +0 -313
  40. package/build/abi/quick-perps/vault-price-feed.json +0 -323
  41. package/build/abi/quick-perps/vault.json +0 -1953
  42. package/build/abi/uniswap-v2/excalibur-pool.json +0 -881
  43. package/build/abi/uniswap-v2/mdex-factory.json +0 -759
  44. package/build/abi/wUSDM.json +0 -757
  45. package/build/abi/zrx.v2.json +0 -1967
  46. package/build/abi/zrx.v3.json +0 -3454
  47. package/build/abi/zrx.v4.json +0 -2193
  48. package/build/dex/OneInchLp.d.ts +0 -24
  49. package/build/dex/OneInchLp.js +0 -43
  50. package/build/dex/OneInchLp.js.map +0 -1
  51. package/build/dex/bProtocol/bProtocol.d.ts +0 -15
  52. package/build/dex/bProtocol/bProtocol.js +0 -56
  53. package/build/dex/bProtocol/bProtocol.js.map +0 -1
  54. package/build/dex/bProtocol/types.d.ts +0 -11
  55. package/build/dex/bProtocol/types.js +0 -8
  56. package/build/dex/bProtocol/types.js.map +0 -1
  57. package/build/dex/ekubo/pools/base-pool.d.ts +0 -47
  58. package/build/dex/ekubo/pools/base-pool.js +0 -184
  59. package/build/dex/ekubo/pools/base-pool.js.map +0 -1
  60. package/build/dex/ekubo/pools/iface.d.ts +0 -46
  61. package/build/dex/ekubo/pools/iface.js +0 -75
  62. package/build/dex/ekubo/pools/iface.js.map +0 -1
  63. package/build/dex/ekubo/pools/math/price.d.ts +0 -7
  64. package/build/dex/ekubo/pools/math/price.js +0 -112
  65. package/build/dex/ekubo/pools/math/price.js.map +0 -1
  66. package/build/dex/ekubo/pools/oracle-pool.d.ts +0 -10
  67. package/build/dex/ekubo/pools/oracle-pool.js +0 -19
  68. package/build/dex/ekubo/pools/oracle-pool.js.map +0 -1
  69. package/build/dex/ekubo/pools/pool-utils.d.ts +0 -44
  70. package/build/dex/ekubo/pools/pool-utils.js +0 -240
  71. package/build/dex/ekubo/pools/pool-utils.js.map +0 -1
  72. package/build/dex/idle-dao/config.d.ts +0 -5
  73. package/build/dex/idle-dao/config.js +0 -24
  74. package/build/dex/idle-dao/config.js.map +0 -1
  75. package/build/dex/idle-dao/idle-dao.d.ts +0 -42
  76. package/build/dex/idle-dao/idle-dao.js +0 -279
  77. package/build/dex/idle-dao/idle-dao.js.map +0 -1
  78. package/build/dex/idle-dao/token_list.d.ts +0 -4
  79. package/build/dex/idle-dao/token_list.js +0 -289
  80. package/build/dex/idle-dao/token_list.js.map +0 -1
  81. package/build/dex/idle-dao/tokens.d.ts +0 -9
  82. package/build/dex/idle-dao/tokens.js +0 -68
  83. package/build/dex/idle-dao/tokens.js.map +0 -1
  84. package/build/dex/idle-dao/types.d.ts +0 -35
  85. package/build/dex/idle-dao/types.js +0 -11
  86. package/build/dex/idle-dao/types.js.map +0 -1
  87. package/build/dex/idle-dao/utils.d.ts +0 -8
  88. package/build/dex/idle-dao/utils.js +0 -149
  89. package/build/dex/idle-dao/utils.js.map +0 -1
  90. package/build/dex/infusion/config.d.ts +0 -3
  91. package/build/dex/infusion/config.js +0 -20
  92. package/build/dex/infusion/config.js.map +0 -1
  93. package/build/dex/infusion/infusion-stable-pool.d.ts +0 -4
  94. package/build/dex/infusion/infusion-stable-pool.js +0 -74
  95. package/build/dex/infusion/infusion-stable-pool.js.map +0 -1
  96. package/build/dex/infusion/infusion.d.ts +0 -51
  97. package/build/dex/infusion/infusion.js +0 -500
  98. package/build/dex/infusion/infusion.js.map +0 -1
  99. package/build/dex/infusion/types.d.ts +0 -45
  100. package/build/dex/infusion/types.js +0 -3
  101. package/build/dex/infusion/types.js.map +0 -1
  102. package/build/dex/infusion/utils/isStablePair.d.ts +0 -2
  103. package/build/dex/infusion/utils/isStablePair.js +0 -18
  104. package/build/dex/infusion/utils/isStablePair.js.map +0 -1
  105. package/build/dex/jarvis.d.ts +0 -56
  106. package/build/dex/jarvis.js +0 -163
  107. package/build/dex/jarvis.js.map +0 -1
  108. package/build/dex/mStable.d.ts +0 -44
  109. package/build/dex/mStable.js +0 -75
  110. package/build/dex/mStable.js.map +0 -1
  111. package/build/dex/maker-psm/config.d.ts +0 -11
  112. package/build/dex/maker-psm/config.js +0 -53
  113. package/build/dex/maker-psm/config.js.map +0 -1
  114. package/build/dex/maker-psm/maker-psm.d.ts +0 -103
  115. package/build/dex/maker-psm/maker-psm.js +0 -493
  116. package/build/dex/maker-psm/maker-psm.js.map +0 -1
  117. package/build/dex/maker-psm/types.d.ts +0 -39
  118. package/build/dex/maker-psm/types.js +0 -3
  119. package/build/dex/maker-psm/types.js.map +0 -1
  120. package/build/dex/onebit/onebit.d.ts +0 -16
  121. package/build/dex/onebit/onebit.js +0 -61
  122. package/build/dex/onebit/onebit.js.map +0 -1
  123. package/build/dex/onebit/types.d.ts +0 -14
  124. package/build/dex/onebit/types.js +0 -8
  125. package/build/dex/onebit/types.js.map +0 -1
  126. package/build/dex/quick-perps/config.d.ts +0 -11
  127. package/build/dex/quick-perps/config.js +0 -27
  128. package/build/dex/quick-perps/config.js.map +0 -1
  129. package/build/dex/quick-perps/fast-price-feed.d.ts +0 -26
  130. package/build/dex/quick-perps/fast-price-feed.js +0 -184
  131. package/build/dex/quick-perps/fast-price-feed.js.map +0 -1
  132. package/build/dex/quick-perps/pool.d.ts +0 -21
  133. package/build/dex/quick-perps/pool.js +0 -229
  134. package/build/dex/quick-perps/pool.js.map +0 -1
  135. package/build/dex/quick-perps/quick-perps.d.ts +0 -53
  136. package/build/dex/quick-perps/quick-perps.js +0 -247
  137. package/build/dex/quick-perps/quick-perps.js.map +0 -1
  138. package/build/dex/quick-perps/types.d.ts +0 -98
  139. package/build/dex/quick-perps/types.js +0 -3
  140. package/build/dex/quick-perps/types.js.map +0 -1
  141. package/build/dex/quick-perps/usdq.d.ts +0 -15
  142. package/build/dex/quick-perps/usdq.js +0 -62
  143. package/build/dex/quick-perps/usdq.js.map +0 -1
  144. package/build/dex/quick-perps/vault-price-feed.d.ts +0 -43
  145. package/build/dex/quick-perps/vault-price-feed.js +0 -203
  146. package/build/dex/quick-perps/vault-price-feed.js.map +0 -1
  147. package/build/dex/quick-perps/vault-utils.d.ts +0 -8
  148. package/build/dex/quick-perps/vault-utils.js +0 -42
  149. package/build/dex/quick-perps/vault-utils.js.map +0 -1
  150. package/build/dex/quick-perps/vault.d.ts +0 -46
  151. package/build/dex/quick-perps/vault.js +0 -182
  152. package/build/dex/quick-perps/vault.js.map +0 -1
  153. package/build/dex/se-vlr/config.d.ts +0 -3
  154. package/build/dex/se-vlr/config.js +0 -24
  155. package/build/dex/se-vlr/config.js.map +0 -1
  156. package/build/dex/se-vlr/se-vlr-pool.d.ts +0 -39
  157. package/build/dex/se-vlr/se-vlr-pool.js +0 -70
  158. package/build/dex/se-vlr/se-vlr-pool.js.map +0 -1
  159. package/build/dex/se-vlr/se-vlr.d.ts +0 -35
  160. package/build/dex/se-vlr/se-vlr.js +0 -131
  161. package/build/dex/se-vlr/se-vlr.js.map +0 -1
  162. package/build/dex/se-vlr/types.d.ts +0 -6
  163. package/build/dex/se-vlr/types.js +0 -3
  164. package/build/dex/se-vlr/types.js.map +0 -1
  165. package/build/dex/shell.d.ts +0 -25
  166. package/build/dex/shell.js +0 -41
  167. package/build/dex/shell.js.map +0 -1
  168. package/build/dex/solidly/forks-override/aerodrome.d.ts +0 -14
  169. package/build/dex/solidly/forks-override/aerodrome.js +0 -46
  170. package/build/dex/solidly/forks-override/aerodrome.js.map +0 -1
  171. package/build/dex/solidly/forks-override/chronos.d.ts +0 -23
  172. package/build/dex/solidly/forks-override/chronos.js +0 -141
  173. package/build/dex/solidly/forks-override/chronos.js.map +0 -1
  174. package/build/dex/solidly/forks-override/usdfi.d.ts +0 -8
  175. package/build/dex/solidly/forks-override/usdfi.js +0 -15
  176. package/build/dex/solidly/forks-override/usdfi.js.map +0 -1
  177. package/build/dex/solidly/forks-override/velocimeter.d.ts +0 -23
  178. package/build/dex/solidly/forks-override/velocimeter.js +0 -77
  179. package/build/dex/solidly/forks-override/velocimeter.js.map +0 -1
  180. package/build/dex/trader-joe-v2.d.ts +0 -40
  181. package/build/dex/trader-joe-v2.js +0 -74
  182. package/build/dex/trader-joe-v2.js.map +0 -1
  183. package/build/dex/uniswap-v2/dfyn.d.ts +0 -19
  184. package/build/dex/uniswap-v2/dfyn.js +0 -61
  185. package/build/dex/uniswap-v2/dfyn.js.map +0 -1
  186. package/build/dex/uniswap-v2/excalibur.d.ts +0 -24
  187. package/build/dex/uniswap-v2/excalibur.js +0 -47
  188. package/build/dex/uniswap-v2/excalibur.js.map +0 -1
  189. package/build/dex/uniswap-v2/mdex.d.ts +0 -24
  190. package/build/dex/uniswap-v2/mdex.js +0 -50
  191. package/build/dex/uniswap-v2/mdex.js.map +0 -1
  192. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +0 -24
  193. package/build/dex/uniswap-v2/nomiswap-v2.js +0 -57
  194. package/build/dex/uniswap-v2/nomiswap-v2.js.map +0 -1
  195. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js +0 -160
  196. package/build/dex/uniswap-v3/scripts/bench-all-dexes.js.map +0 -1
  197. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +0 -94
  198. package/build/dex/uniswap-v3/uniswap-v3-new.js +0 -923
  199. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +0 -1
  200. package/build/dex/uniswap-v4/contract-math/Position.d.ts +0 -3
  201. package/build/dex/uniswap-v4/contract-math/Position.js +0 -10
  202. package/build/dex/uniswap-v4/contract-math/Position.js.map +0 -1
  203. package/build/dex/usual-bond/config.d.ts +0 -3
  204. package/build/dex/usual-bond/config.js +0 -13
  205. package/build/dex/usual-bond/config.js.map +0 -1
  206. package/build/dex/usual-bond/types.d.ts +0 -7
  207. package/build/dex/usual-bond/types.js +0 -3
  208. package/build/dex/usual-bond/types.js.map +0 -1
  209. package/build/dex/usual-bond/usual-bond.d.ts +0 -35
  210. package/build/dex/usual-bond/usual-bond.js +0 -176
  211. package/build/dex/usual-bond/usual-bond.js.map +0 -1
  212. package/build/dex/wusdm/config.d.ts +0 -3
  213. package/build/dex/wusdm/config.js +0 -43
  214. package/build/dex/wusdm/config.js.map +0 -1
  215. package/build/dex/wusdm/constants.d.ts +0 -2
  216. package/build/dex/wusdm/constants.js +0 -6
  217. package/build/dex/wusdm/constants.js.map +0 -1
  218. package/build/dex/wusdm/types.d.ts +0 -18
  219. package/build/dex/wusdm/types.js +0 -11
  220. package/build/dex/wusdm/types.js.map +0 -1
  221. package/build/dex/wusdm/wusdm-pool.d.ts +0 -21
  222. package/build/dex/wusdm/wusdm-pool.js +0 -74
  223. package/build/dex/wusdm/wusdm-pool.js.map +0 -1
  224. package/build/dex/wusdm/wusdm.d.ts +0 -46
  225. package/build/dex/wusdm/wusdm.js +0 -243
  226. package/build/dex/wusdm/wusdm.js.map +0 -1
  227. package/build/dex/zerox/config.d.ts +0 -2
  228. package/build/dex/zerox/config.js +0 -33
  229. package/build/dex/zerox/config.js.map +0 -1
  230. package/build/dex/zerox/index.d.ts +0 -22
  231. package/build/dex/zerox/index.js +0 -225
  232. package/build/dex/zerox/index.js.map +0 -1
  233. package/build/dex/zerox/order.d.ts +0 -88
  234. package/build/dex/zerox/order.js +0 -53
  235. package/build/dex/zerox/order.js.map +0 -1
  236. package/build/dex/zerox/types.d.ts +0 -73
  237. package/build/dex/zerox/types.js +0 -21
  238. package/build/dex/zerox/types.js.map +0 -1
  239. /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":";;;AAGA,0CAAoD;AACpD,kFAA6E;AAI7E,sCAA6D;AAC7D,sCAMqB;AACrB,wCAAqD;AACrD,6CAAkD;AASlD,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,MAAM,wCAAwC,GAAG,KAAK,CAAC;AACvD,MAAM,oCAAoC,GAAG,KAAK,CAAC;AAEnD,MAAa,QAAS,SAAQ,mDAAyC;IAInD;IACN;IACA;IAEO;IACA;IACD;IATF,mBAAmB,CAAW;IAE9C,YACkB,UAAkB,EACxB,OAAe,EACf,SAAqB,EAC/B,MAAc,EACG,SAAoB,EACpB,WAAqB,EACtB,GAAY,EAC5B,IAAc;QAEd,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QATpC,eAAU,GAAV,UAAU,CAAQ;QACxB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAY;QAEd,cAAS,GAAT,SAAS,CAAW;QACpB,gBAAW,GAAX,WAAW,CAAU;QACtB,QAAG,GAAH,GAAG,CAAS;QAK5B,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;OAQG;IACO,UAAU,CAClB,KAAqC,EACrC,GAAkB;QAElB,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE3C,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,0BAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,WAAmB;QAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;YACvE,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,OAAO,sBAAS,CAAC,UAAU,CACzB,IAAI,CAAC,CAAC,CAAC,EACP,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,8BAAuB,CACxD,CAAC;IACJ,CAAC;IAED,kBAAkB,CAChB,IAAY,EACZ,QAAwC;QAExC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAErB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjD,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wBAAwB;QACxB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC,KAAK,GAAG,CAAC;QAEV,+BAA+B;QAC/B,MAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,CAAC,KAAK,GAAG,CAAC;QAEV,MAAM,cAAc,GAAG,IAAA,6BAAqB,EAAC,qBAAqB,CAAC,CAAC;QAEpE,gCAAgC;QAChC,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAE/C,OAAO,sBAAS,CAAC,gBAAgB,CAC/B,QAAQ,EACR,cAAc,EACd,cAAc,EACd,SAAS,CACV,CAAC;IACJ,CAAC;IAED,0BAA0B,CACxB,IAAY,EACZ,QAAwC;QAExC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,OAAO,sBAAS,CAAC,wBAAwB,CACvC,QAAQ,EACR,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,CACjC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAc,EAAE,KAAa,EAAE,WAAmB;QAC7D,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAE3C,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAClB,OAAO;gBACL,cAAc,EAAE,EAAE;gBAClB,gBAAgB,EAAE,EAAE;gBACpB,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,wBAAiB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEzD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,0BAA0B,WAAW,2CAA2C,CACjF,CAAC;QACJ,CAAC;QAED,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAEnE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,qBAAc,CAAC,CAAC,CAAC,qBAAc,CAAC;QAEtE,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,uBAAuB,GAAG,CAAC,CAAC;QAChC,IAAI,eAAe,GAAG,MAAM,CAAC;QAE7B,MAAM,iBAAiB,GAAG,SAAS,CAAC;QAEpC,OAAO,eAAe,KAAK,EAAE,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YAC9D,MAAM,mBAAmB,GACvB,CAAC,YAAY;gBACX,CAAC,CAAC,WAAW,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC;gBACjE,CAAC,CAAC,eAAe,KAAK,IAAI;oBAC1B,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,IAAI,CAAC;YAE5C,MAAM,4BAA4B,GAAG,mBAAmB;gBACtD,CAAC,CAAC,IAAA,kBAAW,EAAC,mBAAmB,CAAC,MAAM,CAAC;gBACzC,CAAC,CAAC,IAAI,CAAC;YAET,MAAM,kBAAkB,GACtB,4BAA4B,KAAK,IAAI;gBACnC,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,4BAA4B,GAAG,cAAc,KAAK,YAAY;oBAChE,CAAC,CAAC,4BAA4B;oBAC9B,CAAC,CAAC,cAAc,CAAC;YAErB,MAAM,IAAI,GAAG,IAAA,kBAAW,EAAC;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG;gBACxB,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,eAAe;aACxB,CAAC,CAAC;YAEH,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC;YACvC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC;YAC1C,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAE/B,mFAAmF;YACnF,IAAI,mBAAmB,IAAI,SAAS,KAAK,4BAA4B,EAAE,CAAC;gBACtE,eAAe,GAAG,YAAY;oBAC5B,CAAC,CAAC,eAAe,KAAK,IAAI;wBACxB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,eAAe,GAAG,CAAC;oBACvB,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,eAAe,GAAG,CAAC;wBACrB,CAAC,CAAC,IAAI,CAAC;gBACT,uBAAuB,EAAE,CAAC;gBAC1B,SAAS,IAAI,YAAY;oBACvB,CAAC,CAAC,mBAAmB,CAAC,cAAc;oBACpC,CAAC,CAAC,CAAC,mBAAmB,CAAC,cAAc,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAA,6CAAsC,EAChE,iBAAiB,EACjB,SAAS,EACT,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAC5B,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,MAAM,GAAG,eAAe;YACxC,gBAAgB;YAChB,WAAW,EACT,aAAa;gBACb,uBAAuB,GAAG,wCAAwC;gBAClE,mBAAmB,GAAG,oCAAoC;YAC5D,SAAS,EACP,uBAAuB,KAAK,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,uBAAuB,CAAC;SAChE,CAAC;IACJ,CAAC;IAEM,UAAU;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,sBAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;CACF;AAvOD,4BAuOC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,IAAY;IAC3C,MAAM,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9D,CAAC"}
@@ -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":";;;AAIA,kFAA6E;AAoC7E,MAAa,kBAAkB;IAEV;IACA;IAFnB,YACmB,KAAgB,EAChB,QAAkD;QADlD,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAA0C;IAClE,CAAC;IAEG,QAAQ,CACb,GAAkB,EAClB,QAA6B,EAC7B,WAAkC;QAElC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;CACF;AAdD,gDAcC;AAED,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,MAAsB,SACpB,SAAQ,mDAA8B;IAOpB;IACC;IAIA;IAIA;IAbnB,YACE,UAAkB,EAClB,SAAqB,EACrB,MAAc,EACE,GAAY,EACX,kBAGhB,EACgB,sBAGhB,EACgB,OAAuB;QAExC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAXpC,QAAG,GAAH,GAAG,CAAS;QACX,uBAAkB,GAAlB,kBAAkB,CAGlC;QACgB,2BAAsB,GAAtB,sBAAsB,CAGtC;QACgB,YAAO,GAAP,OAAO,CAAgB;QAIxC,IAAI,CAAC,mBAAmB,GAAG;YACzB,GAAG,IAAI,GAAG,CACR,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CACpC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CACpC,CACF;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACgB,UAAU,CAC3B,KAA0B,EAC1B,GAAkB,EAClB,WAAkC;QAElC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAE5B,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAC3C,GAAG,CAAC,IAAI,EACR,KAAK,EACL,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,MAAc,EAAE,KAAa,EAAE,WAAmB;QAC7D,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAE3C,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAClB,OAAO;gBACL,cAAc,EAAE,EAAE;gBAClB,gBAAgB,EAAE,EAAE;gBACpB,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC;aACb,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,0BAA0B,WAAW,2CAA2C,CACjF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAI,KAAK,CAAC,gBAAgB,KAAK,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC;QACrC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAxFD,8BAwFC"}
@@ -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;