@paraswap/dex-lib 4.0.13 → 4.0.15

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 (199) hide show
  1. package/.vscode/launch.json +53 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/build/abi/{integral/pool.json → inception/inception-ineth-pool.json} +558 -537
  5. package/build/abi/inception/inception-ratio-feed.json +329 -0
  6. package/build/abi/inception/inception-vault.json +991 -0
  7. package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +52 -0
  8. package/build/abi/usual-m-smart-m/usualM.abi.json +483 -0
  9. package/build/abi/{integral/relayer.json → wombat/pool.json} +474 -721
  10. package/build/dex/aave-v1/aave-v1.d.ts +2 -1
  11. package/build/dex/aave-v1/aave-v1.js +23 -0
  12. package/build/dex/aave-v1/aave-v1.js.map +1 -1
  13. package/build/dex/aave-v2/tokens-avalanche.json +44 -0
  14. package/build/dex/aave-v2/tokens-mainnet.json +188 -0
  15. package/build/dex/aave-v2/tokens-polygon.json +44 -0
  16. package/build/dex/balancer-v3/abi/balancerBatchRouter.d.ts +729 -0
  17. package/build/dex/balancer-v3/abi/balancerBatchRouter.js +732 -0
  18. package/build/dex/balancer-v3/abi/balancerBatchRouter.js.map +1 -0
  19. package/build/dex/balancer-v3/abi/balancerRouter.d.ts +1406 -0
  20. package/build/dex/balancer-v3/abi/balancerRouter.js +1175 -0
  21. package/build/dex/balancer-v3/abi/balancerRouter.js.map +1 -0
  22. package/build/dex/balancer-v3/abi/vaultExtension.V3.d.ts +2081 -0
  23. package/build/dex/balancer-v3/abi/vaultExtension.V3.js +1851 -0
  24. package/build/dex/balancer-v3/abi/vaultExtension.V3.js.map +1 -0
  25. package/build/dex/balancer-v3/balancer-v3-sepolia-pools.d.ts +34 -0
  26. package/build/dex/balancer-v3/balancer-v3-sepolia-pools.js +406 -0
  27. package/build/dex/balancer-v3/balancer-v3-sepolia-pools.js.map +1 -0
  28. package/build/dex/bebop/bebop.js +2 -2
  29. package/build/dex/bebop/bebop.js.map +1 -1
  30. package/build/dex/cables/cables.js +7 -3
  31. package/build/dex/cables/cables.js.map +1 -1
  32. package/build/dex/curve-v1-factory/curve-v1-factory.js +6 -2
  33. package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
  34. package/build/dex/curve-v1-factory/curve-v1-pool-manager.d.ts +1 -1
  35. package/build/dex/curve-v1-factory/curve-v1-pool-manager.js +8 -2
  36. package/build/dex/curve-v1-factory/curve-v1-pool-manager.js.map +1 -1
  37. package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.d.ts +3 -2
  38. package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.js +7 -5
  39. package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.js.map +1 -1
  40. package/build/dex/curve-v1-factory/state-polling-pools/polling-manager.d.ts +7 -4
  41. package/build/dex/curve-v1-factory/state-polling-pools/polling-manager.js +23 -11
  42. package/build/dex/curve-v1-factory/state-polling-pools/polling-manager.js.map +1 -1
  43. package/build/dex/dexalot/constants.d.ts +2 -2
  44. package/build/dex/dexalot/constants.js +2 -2
  45. package/build/dex/dexalot/dexalot.js +8 -4
  46. package/build/dex/dexalot/dexalot.js.map +1 -1
  47. package/build/dex/dexalot/rate-fetcher.d.ts +1 -1
  48. package/build/dex/dexalot/rate-fetcher.js.map +1 -1
  49. package/build/dex/generic-rfq/rate-fetcher.js +5 -5
  50. package/build/dex/generic-rfq/rate-fetcher.js.map +1 -1
  51. package/build/dex/inception/config.d.ts +4 -0
  52. package/build/dex/inception/config.js +109 -0
  53. package/build/dex/inception/config.js.map +1 -0
  54. package/build/dex/inception/inception-event-pool.d.ts +16 -0
  55. package/build/dex/inception/inception-event-pool.js +49 -0
  56. package/build/dex/inception/inception-event-pool.js.map +1 -0
  57. package/build/dex/inception/inception.d.ts +43 -0
  58. package/build/dex/inception/inception.js +180 -0
  59. package/build/dex/inception/inception.js.map +1 -0
  60. package/build/dex/inception/tokens.d.ts +9 -0
  61. package/build/dex/inception/tokens.js +28 -0
  62. package/build/dex/inception/tokens.js.map +1 -0
  63. package/build/dex/inception/types.d.ts +22 -0
  64. package/build/dex/inception/types.js +3 -0
  65. package/build/dex/inception/types.js.map +1 -0
  66. package/build/dex/inception/utils.d.ts +7 -0
  67. package/build/dex/inception/utils.js +58 -0
  68. package/build/dex/inception/utils.js.map +1 -0
  69. package/build/dex/jarvis.d.ts +2 -1
  70. package/build/dex/jarvis.js +58 -0
  71. package/build/dex/jarvis.js.map +1 -1
  72. package/build/dex/maker-psm/scripts/gem.abi.json +136 -0
  73. package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
  74. package/build/dex/maker-psm/scripts/validate-state.js +185 -0
  75. package/build/dex/maker-psm/scripts/validate-state.js.map +1 -0
  76. package/build/dex/maker-psm/scripts/vat.abi.json +243 -0
  77. package/build/dex/platypus/platypus.d.ts +2 -1
  78. package/build/dex/platypus/platypus.js +45 -0
  79. package/build/dex/platypus/platypus.js.map +1 -1
  80. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  81. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  82. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  83. package/build/dex/stable-pool.js +1 -8
  84. package/build/dex/stable-pool.js.map +1 -1
  85. package/build/dex/swaap-v1/swaap-v1.d.ts +2 -1
  86. package/build/dex/swaap-v1/swaap-v1.js +14 -0
  87. package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
  88. package/build/dex/swaap-v2/swaap-v2.js +2 -2
  89. package/build/dex/swaap-v2/swaap-v2.js.map +1 -1
  90. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +17 -0
  91. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +64 -0
  92. package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +1 -0
  93. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +17 -0
  94. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +79 -0
  95. package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +1 -0
  96. package/build/dex/uniswap-v3/uniswap-v3-pricing.d.ts +4 -0
  97. package/build/dex/uniswap-v3/uniswap-v3-pricing.js +43 -0
  98. package/build/dex/uniswap-v3/uniswap-v3-pricing.js.map +1 -0
  99. package/build/dex/uniswap-v3/uniswap-v3-worker.d.ts +1 -0
  100. package/build/dex/uniswap-v3/uniswap-v3-worker.js +10 -0
  101. package/build/dex/uniswap-v3/uniswap-v3-worker.js.map +1 -0
  102. package/build/dex/usual/usual-m-smart-m.d.ts +17 -0
  103. package/build/dex/usual/usual-m-smart-m.js +50 -0
  104. package/build/dex/usual/usual-m-smart-m.js.map +1 -0
  105. package/build/dex/usual-m-smart-m/config.d.ts +3 -0
  106. package/build/dex/usual-m-smart-m/config.js +13 -0
  107. package/build/dex/usual-m-smart-m/config.js.map +1 -0
  108. package/build/dex/usual-m-smart-m/types.d.ts +7 -0
  109. package/build/dex/usual-m-smart-m/types.js +3 -0
  110. package/build/dex/usual-m-smart-m/types.js.map +1 -0
  111. package/build/dex/usual-m-smart-m/usual-m-smart-m.d.ts +35 -0
  112. package/build/dex/usual-m-smart-m/usual-m-smart-m.js +161 -0
  113. package/build/dex/usual-m-smart-m/usual-m-smart-m.js.map +1 -0
  114. package/build/dex/usual-m-usd0/config.d.ts +3 -0
  115. package/build/dex/usual-m-usd0/config.js +14 -0
  116. package/build/dex/usual-m-usd0/config.js.map +1 -0
  117. package/build/dex/usual-m-usd0/types.d.ts +8 -0
  118. package/build/dex/usual-m-usd0/types.js +3 -0
  119. package/build/dex/usual-m-usd0/types.js.map +1 -0
  120. package/build/dex/usual-m-usd0/usual-m-usd0.d.ts +35 -0
  121. package/build/dex/usual-m-usd0/usual-m-usd0.js +159 -0
  122. package/build/dex/usual-m-usd0/usual-m-usd0.js.map +1 -0
  123. package/build/dex/zerox/index.d.ts +4 -26
  124. package/build/dex/zerox/index.js +50 -42
  125. package/build/dex/zerox/index.js.map +1 -1
  126. package/build/dex/zerox/types.d.ts +29 -0
  127. package/build/dex/zerox/types.js +8 -1
  128. package/build/dex/zerox/types.js.map +1 -1
  129. package/build/dex-helper/dummy-dex-helper.js +10 -0
  130. package/build/dex-helper/dummy-dex-helper.js.map +1 -1
  131. package/build/dex-helper/icache.d.ts +3 -0
  132. package/build/lib/pub-sub.d.ts +51 -0
  133. package/build/lib/pub-sub.js +188 -0
  134. package/build/lib/pub-sub.js.map +1 -0
  135. package/package.json +1 -1
  136. package/src/abi/fluid-dex/fluid-dex.abi.json +2 -4
  137. package/src/dex/bebop/bebop.ts +4 -2
  138. package/src/dex/cables/cables.ts +9 -3
  139. package/src/dex/curve-v1-factory/curve-v1-factory.ts +5 -1
  140. package/src/dex/curve-v1-factory/curve-v1-pool-manager.ts +17 -1
  141. package/src/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.ts +4 -4
  142. package/src/dex/curve-v1-factory/state-polling-pools/polling-manager.ts +32 -21
  143. package/src/dex/dexalot/constants.ts +2 -2
  144. package/src/dex/dexalot/dexalot.ts +11 -4
  145. package/src/dex/dexalot/rate-fetcher.ts +6 -6
  146. package/src/dex/generic-rfq/rate-fetcher.ts +10 -5
  147. package/src/dex/swaap-v2/swaap-v2.ts +4 -2
  148. package/src/dex-helper/dummy-dex-helper.ts +21 -0
  149. package/src/dex-helper/icache.ts +6 -0
  150. package/src/lib/pub-sub.ts +232 -0
  151. package/.idea/aws.xml +0 -17
  152. package/.idea/codeStyles/Project.xml +0 -19
  153. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  154. package/.idea/misc.xml +0 -6
  155. package/.idea/modules.xml +0 -8
  156. package/.idea/paraswap-dex-lib.iml +0 -9
  157. package/.idea/prettier.xml +0 -7
  158. package/.idea/vcs.xml +0 -6
  159. package/build/abi/integral/factory.json +0 -333
  160. package/build/abi/integral/oracle.json +0 -501
  161. package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +0 -49
  162. package/build/dex/fluid-dex/fluid-dex-generate-pool.js +0 -104
  163. package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +0 -1
  164. package/build/dex/integral/config.d.ts +0 -4
  165. package/build/dex/integral/config.js +0 -20
  166. package/build/dex/integral/config.js.map +0 -1
  167. package/build/dex/integral/context.d.ts +0 -40
  168. package/build/dex/integral/context.js +0 -158
  169. package/build/dex/integral/context.js.map +0 -1
  170. package/build/dex/integral/integral-factory.d.ts +0 -24
  171. package/build/dex/integral/integral-factory.js +0 -95
  172. package/build/dex/integral/integral-factory.js.map +0 -1
  173. package/build/dex/integral/integral-pool.d.ts +0 -50
  174. package/build/dex/integral/integral-pool.js +0 -149
  175. package/build/dex/integral/integral-pool.js.map +0 -1
  176. package/build/dex/integral/integral-pricing.d.ts +0 -18
  177. package/build/dex/integral/integral-pricing.js +0 -114
  178. package/build/dex/integral/integral-pricing.js.map +0 -1
  179. package/build/dex/integral/integral-relayer.d.ts +0 -42
  180. package/build/dex/integral/integral-relayer.js +0 -192
  181. package/build/dex/integral/integral-relayer.js.map +0 -1
  182. package/build/dex/integral/integral-token.d.ts +0 -27
  183. package/build/dex/integral/integral-token.js +0 -59
  184. package/build/dex/integral/integral-token.js.map +0 -1
  185. package/build/dex/integral/integral.d.ts +0 -41
  186. package/build/dex/integral/integral.js +0 -376
  187. package/build/dex/integral/integral.js.map +0 -1
  188. package/build/dex/integral/types.d.ts +0 -85
  189. package/build/dex/integral/types.js +0 -9
  190. package/build/dex/integral/types.js.map +0 -1
  191. package/build/dex/integral/utils-e2e.d.ts +0 -9
  192. package/build/dex/integral/utils-e2e.js +0 -131
  193. package/build/dex/integral/utils-e2e.js.map +0 -1
  194. package/build/dex/integral/utils.d.ts +0 -17
  195. package/build/dex/integral/utils.js +0 -94
  196. package/build/dex/integral/utils.js.map +0 -1
  197. package/build/dex/trader-joe-v2.1/optimizer.d.ts +0 -2
  198. package/build/dex/trader-joe-v2.1/optimizer.js +0 -47
  199. package/build/dex/trader-joe-v2.1/optimizer.js.map +0 -1
@@ -1,376 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.Integral = void 0;
30
- const lodash_1 = __importDefault(require("lodash"));
31
- const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
32
- const constants_1 = require("../../constants");
33
- const utils_1 = require("../../utils");
34
- const types_1 = require("./types");
35
- const simple_exchange_1 = require("../simple-exchange");
36
- const config_1 = require("./config");
37
- const relayer_json_1 = __importDefault(require("../../abi/integral/relayer.json"));
38
- const abi_1 = require("@ethersproject/abi");
39
- const bigint_constants_1 = require("../../bigint-constants");
40
- const utils_2 = require("./utils");
41
- const context_1 = require("./context");
42
- const utils_3 = require("./utils");
43
- const PRECISION = bigint_constants_1.BI_POWS[18];
44
- const SUBGRAPH_TIMEOUT = 20 * 1000;
45
- const SWAP_ORDER_TIMEOUT = Math.floor(Date.now() / 1000) + 24 * 3600;
46
- const relayerInterface = new abi_1.Interface(relayer_json_1.default);
47
- class Integral extends simple_exchange_1.SimpleExchange {
48
- constructor(network, dexKey, dexHelper, adapters = config_1.Adapters[network] || {}) {
49
- super(dexHelper, dexKey);
50
- this.network = network;
51
- this.dexKey = dexKey;
52
- this.dexHelper = dexHelper;
53
- this.adapters = adapters;
54
- this.hasConstantPriceLargeAmounts = false;
55
- this.isFeeOnTransferSupported = false;
56
- this.logger = dexHelper.getLogger(dexKey);
57
- this.context = context_1.IntegralContext.initialize(network, dexKey, dexHelper, this.erc20Interface, config_1.IntegralConfig[dexKey][network].factoryAddress.toLowerCase(), config_1.IntegralConfig[dexKey][network].relayerAddress.toLowerCase());
58
- this.subgraphURL = config_1.IntegralConfig[dexKey][network].subgraphURL;
59
- }
60
- async initializePricing(blockNumber) {
61
- await this.context.factory.initialize(blockNumber);
62
- const factoryState = this.context.factory.getState(blockNumber);
63
- if (factoryState) {
64
- await this.context.addPools(factoryState.pools, blockNumber, true);
65
- }
66
- }
67
- // Returns the list of contract adapters (name and index)
68
- // for a buy/sell. Return null if there are no adapters.
69
- getAdapters(side) {
70
- return this.adapters[side] ? this.adapters[side] : null;
71
- }
72
- async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
73
- const src = this.dexHelper.config.wrapETH(srcToken);
74
- const dest = this.dexHelper.config.wrapETH(destToken);
75
- if (src.address.toLowerCase() === dest.address.toLowerCase()) {
76
- return [];
77
- }
78
- const tokenAddresses = [
79
- src.address.toLowerCase(),
80
- dest.address.toLowerCase(),
81
- ]
82
- .sort((a, b) => (a > b ? 1 : -1))
83
- .join('_');
84
- const poolIdentifier = `${this.dexKey}_${tokenAddresses}`;
85
- return [poolIdentifier];
86
- }
87
- // Returns pool prices for amounts.
88
- // If limitPools is defined only pools in limitPools
89
- // should be used. If limitPools is undefined then
90
- // any pools can be used.
91
- async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
92
- const src = this.dexHelper.config.wrapETH(srcToken);
93
- const dest = this.dexHelper.config.wrapETH(destToken);
94
- if (src.address.toLowerCase() === dest.address.toLowerCase()) {
95
- return null;
96
- }
97
- const poolIdentifier = (0, utils_2.getPoolIdentifier)(this.dexKey, src.address, dest.address);
98
- if (limitPools && limitPools.every(p => p !== poolIdentifier)) {
99
- return null;
100
- }
101
- const props = await this.getQuotingProps(src, dest, blockNumber);
102
- if (!props) {
103
- return null;
104
- }
105
- const unitAmount = (0, utils_1.getBigIntPow)(side == constants_1.SwapSide.SELL ? src.decimals : dest.decimals);
106
- const unit = side == constants_1.SwapSide.SELL
107
- ? this.quoteSell(unitAmount, props, false)
108
- : this.quoteBuy(unitAmount, props, false);
109
- try {
110
- const prices = side == constants_1.SwapSide.SELL
111
- ? amounts.map(amount => this.quoteSell(amount, props))
112
- : amounts.map(amount => this.quoteBuy(amount, props));
113
- return [
114
- {
115
- prices: prices,
116
- unit: unit,
117
- data: {
118
- relayer: this.context.relayerAddress,
119
- },
120
- exchange: this.dexKey,
121
- poolIdentifier,
122
- gasCost: 350000,
123
- poolAddresses: [props.poolAddress],
124
- },
125
- ];
126
- }
127
- catch (e) {
128
- this.logger.error(`Error_getPricesVolume could not get price with error:`, e);
129
- return null;
130
- }
131
- }
132
- // Returns estimated gas cost of calldata for this DEX in multiSwap
133
- getCalldataGasCost(poolPrices) {
134
- return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
135
- }
136
- // Encode params required by the exchange adapter
137
- // Used for multiSwap, buy & megaSwap
138
- // Hint: abiCoder.encodeParameter() could be useful
139
- getAdapterParam(srcToken, destToken, srcAmount, destAmount, data, side) {
140
- const { relayer: exchange } = data;
141
- // Encode here the payload for adapter
142
- const payload = '0x';
143
- return {
144
- targetExchange: exchange,
145
- payload,
146
- networkFee: '0',
147
- };
148
- }
149
- getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side, _, executorAddress) {
150
- const tokenIn = this.dexHelper.config.wrapETH(srcToken);
151
- const tokenOut = this.dexHelper.config.wrapETH(destToken);
152
- const swapData = relayerInterface.encodeFunctionData(side === constants_1.SwapSide.SELL ? types_1.IntegralFunctions.swap : types_1.IntegralFunctions.buy, [
153
- {
154
- ...{
155
- tokenIn,
156
- tokenOut,
157
- wrapUnwrap: (0, utils_1.isETHAddress)(srcToken) || (0, utils_1.isETHAddress)(destToken),
158
- to: recipient,
159
- submitDeadline: SWAP_ORDER_TIMEOUT,
160
- },
161
- ...(side === constants_1.SwapSide.SELL
162
- ? { amountIn: srcAmount, amountOutMin: destAmount }
163
- : { amountInMax: srcAmount, amountOut: destAmount }),
164
- },
165
- ]);
166
- return {
167
- needWrapNative: this.needWrapNative,
168
- dexFuncHasRecipient: true,
169
- exchangeData: swapData,
170
- targetExchange: this.context.relayerAddress,
171
- returnAmountPos: undefined,
172
- };
173
- }
174
- async updatePoolState() { }
175
- async getTopPoolsForToken(tokenAddress, limit) {
176
- if (!this.subgraphURL) {
177
- return [];
178
- }
179
- const query = `
180
- query ($token: Bytes!, $limit: Int) {
181
- pools0: pairs(
182
- first: $limit
183
- orderBy: reserveUSD
184
- orderDirection: desc
185
- where: {token0: $token}
186
- ) {
187
- id
188
- token0 {
189
- id
190
- decimals
191
- }
192
- token1 {
193
- id
194
- decimals
195
- }
196
- reserveUSD
197
- }
198
- pools1: pairs(
199
- first: $limit
200
- orderBy: reserveUSD
201
- orderDirection: desc
202
- where: {token1: $token}
203
- ) {
204
- id
205
- token0 {
206
- id
207
- decimals
208
- }
209
- token1 {
210
- id
211
- decimals
212
- }
213
- reserveUSD
214
- }
215
- }`;
216
- const { data } = await this.dexHelper.httpRequest.querySubgraph(this.subgraphURL, {
217
- query,
218
- variables: { token: tokenAddress.toLowerCase(), limit },
219
- }, { timeout: SUBGRAPH_TIMEOUT });
220
- if (!(data && data.pools0 && data.pools1))
221
- throw new Error("Couldn't fetch the pools from the subgraph");
222
- const pools0 = lodash_1.default.map(data.pools0, pool => ({
223
- exchange: this.dexKey,
224
- address: pool.id.toLowerCase(),
225
- connectorTokens: [
226
- {
227
- address: pool.token1.id.toLowerCase(),
228
- decimals: parseInt(pool.token1.decimals),
229
- },
230
- ],
231
- liquidityUSD: parseFloat(pool.reserveUSD),
232
- }));
233
- const pools1 = lodash_1.default.map(data.pools1, pool => ({
234
- exchange: this.dexKey,
235
- address: pool.id.toLowerCase(),
236
- connectorTokens: [
237
- {
238
- address: pool.token0.id.toLowerCase(),
239
- decimals: parseInt(pool.token0.decimals),
240
- },
241
- ],
242
- liquidityUSD: parseFloat(pool.reserveUSD),
243
- }));
244
- return lodash_1.default.slice(lodash_1.default.sortBy(lodash_1.default.concat(pools0, pools1), [pool => -1 * pool.liquidityUSD]), 0, limit);
245
- }
246
- async getPriceOnChain(tokenIn, tokenOut, inverted, blockNumber) {
247
- try {
248
- const calldata = [
249
- {
250
- target: this.context.relayerAddress,
251
- callData: relayerInterface.encodeFunctionData('getPoolState', [
252
- tokenIn.address,
253
- tokenOut.address,
254
- ]),
255
- },
256
- ];
257
- const data = await this.dexHelper.multiContract.methods
258
- .aggregate(calldata)
259
- .call({}, blockNumber);
260
- const result = relayerInterface.decodeFunctionResult('getPoolState', data.returnData[0]);
261
- const _limits = inverted
262
- ? [result.limitMin1, result.limitMax1]
263
- : [result.limitMin0, result.limitMax0];
264
- const limits = [
265
- BigInt(_limits[0].toString()),
266
- BigInt(_limits[1].toString()),
267
- ];
268
- const [decimals0, decimals1] = inverted
269
- ? [tokenOut.decimals, tokenIn.decimals]
270
- : [tokenIn.decimals, tokenOut.decimals];
271
- return {
272
- price: BigInt(result.price.toString()),
273
- poolAddress: result.poolAddress,
274
- fee: BigInt(result.fee.toString()),
275
- tokenOutLimits: limits,
276
- decimalsConverter: (0, utils_2.getDecimalsConverter)(decimals0, decimals1, inverted),
277
- };
278
- }
279
- catch (e) {
280
- this.logger.error(`Error_getPriceOnChain could not get data with error:`, e);
281
- return null;
282
- }
283
- }
284
- async getQuotingProps(src, dest, blockNumber) {
285
- const poolId = (0, utils_2.getPoolIdentifier)(this.dexKey, src.address, dest.address);
286
- const inverted = (0, utils_2.isInverted)(src.address, dest.address);
287
- const states = this.getStates(poolId, blockNumber);
288
- if (!states) {
289
- const resp = await this.getPriceOnChain(src, dest, inverted, blockNumber);
290
- return resp;
291
- }
292
- const { base, poolAddress, relayer, relayerTokens } = states;
293
- const price = (0, utils_2.getPrice)(states, inverted);
294
- const token0 = (0, utils_2.sortTokens)(src.address, dest.address)[0];
295
- const { max0, max1 } = this.getMaxLimits(poolAddress, relayer, relayerTokens);
296
- return {
297
- price,
298
- poolAddress: states.poolAddress,
299
- fee: relayer.swapFee,
300
- tokenOutLimits: dest.address === token0
301
- ? [relayer.limits.min0, max0]
302
- : [relayer.limits.min1, max1],
303
- decimalsConverter: (0, utils_2.getDecimalsConverter)(base.decimals0, base.decimals1, inverted),
304
- };
305
- }
306
- quoteSell(amountIn, props, checkLimit = true) {
307
- if (amountIn === 0n) {
308
- return 0n;
309
- }
310
- const fee = (amountIn * props.fee) / PRECISION;
311
- const amountInMinusFee = amountIn - fee;
312
- const amountOut = (amountInMinusFee * props.price) / props.decimalsConverter;
313
- if (checkLimit && !this.checkLimits(amountOut, props.tokenOutLimits)) {
314
- return 0n;
315
- // throw new Error(
316
- // `Out of Limits - amountOut ${amountOut} not in between limits ${props.tokenOutLimits}`,
317
- // );
318
- }
319
- return amountOut;
320
- }
321
- quoteBuy(amountOut, props, checkLimit = true) {
322
- if (amountOut === 0n) {
323
- return 0n;
324
- }
325
- if (checkLimit && !this.checkLimits(amountOut, props.tokenOutLimits)) {
326
- return 0n;
327
- // throw new Error(
328
- // `Out of Limits - amountOut ${amountOut} not in between limits ${props.tokenOutLimits}`,
329
- // );
330
- }
331
- const amountIn = (0, utils_3.ceil_div)(amountOut * props.decimalsConverter, props.price);
332
- if (amountIn <= 0n) {
333
- return 0n;
334
- }
335
- const amountInPlusFee = (0, utils_3.ceil_div)(amountIn * PRECISION, PRECISION - props.fee);
336
- return amountInPlusFee;
337
- }
338
- checkLimits(amount, limits) {
339
- if (amount < limits[0] || amount > limits[1]) {
340
- return false;
341
- }
342
- return true;
343
- }
344
- getStates(poolId, blockNumber) {
345
- const poolStates = this.context.pools[poolId];
346
- if (poolStates && poolStates.base) {
347
- const base = poolStates.base.getState(blockNumber);
348
- const pricing = poolStates.pricing && poolStates.pricing.getState(blockNumber);
349
- const relayerState = this.context.relayer.getState(blockNumber);
350
- const relayer = relayerState && relayerState.pools[poolStates.base.poolAddress];
351
- return base && pricing && relayer
352
- ? {
353
- base,
354
- pricing,
355
- relayer,
356
- relayerTokens: relayerState.tokens,
357
- poolAddress: poolStates.base.poolAddress,
358
- }
359
- : null;
360
- }
361
- else {
362
- return null;
363
- }
364
- }
365
- getMaxLimits(poolAddress, relayer, relayerTokens) {
366
- const { token0, token1 } = this.context.relayer.getPools()[poolAddress.toLowerCase()];
367
- const max0 = (relayerTokens[token0].balance * relayer.limits.maxMultiplier0) /
368
- 10n ** 18n;
369
- const max1 = (relayerTokens[token1].balance * relayer.limits.maxMultiplier1) /
370
- 10n ** 18n;
371
- return { max0, max1 };
372
- }
373
- }
374
- exports.Integral = Integral;
375
- Integral.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.IntegralConfig);
376
- //# sourceMappingURL=integral.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integral.js","sourceRoot":"","sources":["../../../src/dex/integral/integral.ts"],"names":[],"mappings":"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"}
@@ -1,85 +0,0 @@
1
- import { Address } from '../../types';
2
- import { IntegralEventPool } from './integral-pool';
3
- import { PoolState as UniswapPoolState } from '../uniswap-v3/types';
4
- import { BigNumber } from 'ethers';
5
- import { IntegralPricing } from './integral-pricing';
6
- export declare type Requires<Class, Prop extends keyof Class> = Class & Required<Pick<Class, Prop>>;
7
- export declare type IntegralPool = {
8
- base?: IntegralEventPool;
9
- pricing?: IntegralPricing;
10
- enabled: boolean;
11
- };
12
- export declare type QuotingProps = {
13
- poolAddress: Address;
14
- price: bigint;
15
- fee: bigint;
16
- tokenOutLimits: [bigint, bigint];
17
- decimalsConverter: bigint;
18
- };
19
- export declare type PoolState = {
20
- swapFee: bigint;
21
- mintFee: bigint;
22
- burnFee: bigint;
23
- decimals0: number;
24
- decimals1: number;
25
- oracle: Address;
26
- uniswapPool: Address;
27
- uniswapPoolFee: bigint;
28
- };
29
- export declare type RelayerPoolState = {
30
- isEnabled: boolean;
31
- swapFee: bigint;
32
- twapInterval: number;
33
- limits: {
34
- min0: bigint;
35
- min1: bigint;
36
- maxMultiplier0: bigint;
37
- maxMultiplier1: bigint;
38
- };
39
- };
40
- export declare type RelayerTokensState = {
41
- [tokenAddress: string]: {
42
- balance: bigint;
43
- };
44
- };
45
- export declare type RelayerState = {
46
- pools: {
47
- [poolAddress: string]: RelayerPoolState;
48
- };
49
- tokens: RelayerTokensState;
50
- };
51
- export declare type PoolInitProps = {
52
- [poolAddress: string]: {
53
- token0: Address;
54
- token1: Address;
55
- };
56
- };
57
- export declare type FactoryState = {
58
- pools: PoolInitProps;
59
- };
60
- export declare type PoolStates = {
61
- base: PoolState;
62
- relayer: RelayerPoolState;
63
- relayerTokens: RelayerTokensState;
64
- pricing: UniswapPoolState;
65
- poolAddress: Address;
66
- };
67
- export declare type TokenState = Record<string, never>;
68
- export declare type IntegralData = {
69
- relayer: Address;
70
- };
71
- export declare type DexParams = {
72
- factoryAddress: string;
73
- relayerAddress: string;
74
- subgraphURL?: string;
75
- };
76
- export declare enum IntegralFunctions {
77
- swap = "sell",
78
- buy = "buy"
79
- }
80
- export declare type Observation = {
81
- blockTimestamp: number;
82
- initialized: boolean;
83
- secondsPerLiquidityCumulativeX128: BigNumber;
84
- tickCumulative: BigNumber;
85
- };
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IntegralFunctions = void 0;
4
- var IntegralFunctions;
5
- (function (IntegralFunctions) {
6
- IntegralFunctions["swap"] = "sell";
7
- IntegralFunctions["buy"] = "buy";
8
- })(IntegralFunctions = exports.IntegralFunctions || (exports.IntegralFunctions = {}));
9
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/integral/types.ts"],"names":[],"mappings":";;;AA8EA,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,kCAAa,CAAA;IACb,gCAAW,CAAA;AACb,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B"}
@@ -1,9 +0,0 @@
1
- import { Address } from '../../types';
2
- import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
3
- import { Provider } from '@ethersproject/providers';
4
- export declare function updateEventSubscriber<SubscriberState>(eventSubscriber: StatefulEventSubscriber<SubscriberState>, subscribedAddress: Address[], fetchState: (blocknumber: number) => Promise<SubscriberState>, blockNumber: number, cacheKey: string, provider: Provider): Promise<void>;
5
- export declare function checkEventSubscriber<SubscriberState>(eventSubscriber: StatefulEventSubscriber<SubscriberState>, fetchState: (blocknumber: number) => Promise<SubscriberState>, blockNumber: number, cacheKey: string, stateCompare?: (state: SubscriberState, expectedState: SubscriberState) => void): Promise<void>;
6
- export declare function deepTypecast<T>(obj: any, checker: (val: any) => boolean, caster: (val: T) => any): any;
7
- export declare function getSavedConfig<Config>(blockNumber: number, cacheKey: string): Config | undefined;
8
- export declare function saveConfig<Config>(blockNumber: number, cacheKey: string, config: Config): void;
9
- export declare function getSavedState<SubscriberState>(blockNumber: number, cacheKey: string): SubscriberState | undefined;
@@ -1,131 +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.getSavedState = exports.saveConfig = exports.getSavedConfig = exports.deepTypecast = exports.checkEventSubscriber = exports.updateEventSubscriber = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
10
- const pathRoot = path_1.default.join(__dirname, './test-artifacts/');
11
- const configPath = './configs.json';
12
- const absConfigPath = path_1.default.join(pathRoot, configPath);
13
- let configs = {};
14
- if (fs_1.default.existsSync(absConfigPath))
15
- configs = require(absConfigPath);
16
- const statePath = './states.json';
17
- const absStatePath = path_1.default.join(pathRoot, statePath);
18
- let states = {};
19
- if (fs_1.default.existsSync(absStatePath))
20
- states = require(absStatePath);
21
- const logPath = './logs.json';
22
- const absLogPath = path_1.default.join(pathRoot, logPath);
23
- let logs = {};
24
- if (fs_1.default.existsSync(absLogPath))
25
- logs = require(absLogPath);
26
- const bigintify = (val) => BigInt(val);
27
- const stringify = (val) => val.toString();
28
- async function updateEventSubscriber(eventSubscriber, subscribedAddress, fetchState, blockNumber, cacheKey, provider) {
29
- // Get state of the subscriber block before the event was released
30
- let poolState = getSavedState(blockNumber - 1, cacheKey);
31
- if (!poolState) {
32
- poolState = await fetchState(blockNumber - 1);
33
- saveState(blockNumber - 1, cacheKey, poolState);
34
- }
35
- // Set subscriber state before the event block
36
- eventSubscriber.setState(poolState, blockNumber - 1);
37
- eventSubscriber.isTracking = () => true;
38
- // Get logs and blockHeader of the block when the event was emitted
39
- let blockInfo = getSavedBlockInfo(blockNumber, cacheKey);
40
- if (!blockInfo) {
41
- const logs = (await Promise.all(subscribedAddress.map(address => provider.getLogs({
42
- fromBlock: blockNumber,
43
- toBlock: blockNumber,
44
- address,
45
- }))))
46
- .flat()
47
- .sort((a, b) => a.logIndex - b.logIndex);
48
- blockInfo = {
49
- logs,
50
- blockHeaders: {
51
- [blockNumber]: await provider.getBlock(blockNumber),
52
- },
53
- };
54
- saveBlockInfo(blockNumber, cacheKey, blockInfo);
55
- }
56
- // Update subscriber with event logs
57
- await eventSubscriber.update(blockInfo.logs, blockInfo.blockHeaders);
58
- }
59
- exports.updateEventSubscriber = updateEventSubscriber;
60
- async function checkEventSubscriber(eventSubscriber, fetchState, blockNumber, cacheKey, stateCompare) {
61
- // Get the expected state of the subscriber after the event
62
- let expectedNewPoolState = getSavedState(blockNumber, cacheKey);
63
- if (!expectedNewPoolState) {
64
- expectedNewPoolState = await fetchState(blockNumber);
65
- saveState(blockNumber, cacheKey, expectedNewPoolState);
66
- }
67
- // Get the updated state of the subscriber
68
- const newPoolState = eventSubscriber.getState(blockNumber);
69
- // Expect the updated state to be same as the expected state
70
- if (stateCompare) {
71
- expect(newPoolState).not.toBeNull();
72
- stateCompare(newPoolState, expectedNewPoolState);
73
- }
74
- else {
75
- expect(newPoolState).toEqual(expectedNewPoolState);
76
- }
77
- }
78
- exports.checkEventSubscriber = checkEventSubscriber;
79
- function deepTypecast(obj, checker, caster) {
80
- return lodash_1.default.forEach(obj, (val, key, obj) => {
81
- obj[key] = checker(val)
82
- ? caster(val)
83
- : lodash_1.default.isObject(val)
84
- ? deepTypecast(val, checker, caster)
85
- : val;
86
- });
87
- }
88
- exports.deepTypecast = deepTypecast;
89
- function getSavedConfig(blockNumber, cacheKey) {
90
- const _config = configs[`${cacheKey}_${blockNumber}`];
91
- if (_config) {
92
- const checker = (obj) => lodash_1.default.isString(obj) && obj.includes('bi@');
93
- const caster = (obj) => bigintify(obj.slice(3));
94
- return deepTypecast(lodash_1.default.cloneDeep(_config), checker, caster);
95
- }
96
- return undefined;
97
- }
98
- exports.getSavedConfig = getSavedConfig;
99
- function saveConfig(blockNumber, cacheKey, config) {
100
- const checker = (obj) => typeof obj === 'bigint';
101
- const caster = (obj) => 'bi@'.concat(stringify(obj));
102
- const _config = deepTypecast(lodash_1.default.cloneDeep(config), checker, caster);
103
- configs[`${cacheKey}_${blockNumber}`] = _config;
104
- fs_1.default.writeFileSync(absConfigPath, JSON.stringify(configs, null, 2));
105
- }
106
- exports.saveConfig = saveConfig;
107
- function getSavedState(blockNumber, cacheKey) {
108
- const _state = states[`${cacheKey}_${blockNumber}`];
109
- if (_state) {
110
- const checker = (obj) => lodash_1.default.isString(obj) && obj.includes('bi@');
111
- const caster = (obj) => bigintify(obj.slice(3));
112
- return deepTypecast(lodash_1.default.cloneDeep(_state), checker, caster);
113
- }
114
- return undefined;
115
- }
116
- exports.getSavedState = getSavedState;
117
- function saveState(blockNumber, cacheKey, state) {
118
- const checker = (obj) => typeof obj === 'bigint';
119
- const caster = (obj) => 'bi@'.concat(stringify(obj));
120
- const _state = deepTypecast(lodash_1.default.cloneDeep(state), checker, caster);
121
- states[`${cacheKey}_${blockNumber}`] = _state;
122
- fs_1.default.writeFileSync(absStatePath, JSON.stringify(states, null, 2));
123
- }
124
- function getSavedBlockInfo(blockNumber, cacheKey) {
125
- return logs[`${cacheKey}_${blockNumber}`];
126
- }
127
- function saveBlockInfo(blockNumber, cacheKey, blockInfo) {
128
- logs[`${cacheKey}_${blockNumber}`] = blockInfo;
129
- fs_1.default.writeFileSync(absLogPath, JSON.stringify(logs, null, 2));
130
- }
131
- //# sourceMappingURL=utils-e2e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-e2e.js","sourceRoot":"","sources":["../../../src/dex/integral/utils-e2e.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { BytesLike } from 'ethers';
2
- import { MultiResult } from '../../lib/multi-wrapper';
3
- import { Address } from '@paraswap/core';
4
- import { PoolState as UniswapPoolState } from '../uniswap-v3/types';
5
- import { IntegralContext } from './context';
6
- import { PoolStates, RelayerPoolState } from './types';
7
- export declare function ceil_div(a: bigint, b: bigint): bigint;
8
- export declare const uint32ToNumber: (result: MultiResult<BytesLike> | BytesLike) => number;
9
- export declare function sortTokens(srcAddress: Address, destAddress: Address): string[];
10
- export declare function getDecimalsConverter(decimals0: number, decimals1: number, inverted: boolean): bigint;
11
- export declare function getPrice(states: PoolStates, inverted: boolean): bigint;
12
- export declare function getSpotPrice(pricing: UniswapPoolState, decimalsConverter: bigint): bigint;
13
- export declare function getAveragePrice(relayer: RelayerPoolState, pricing: UniswapPoolState, decimalsConverter: bigint): bigint;
14
- export declare function getTickCumulatives(poolState: UniswapPoolState, secondsAgos: bigint[]): bigint[];
15
- export declare function isInverted(tokenIn: Address, tokenOut: Address): boolean;
16
- export declare function getPoolIdentifier(dexKey: string, srcAddress: Address, destAddress: Address): string;
17
- export declare function getPoolBackReferencedFrom(context: IntegralContext, poolAddress: Address): [string, import("./types").IntegralPool] | undefined;