@paraswap/dex-lib 4.7.25-0 → 4.7.25-add-origin-arms.0

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 (159) hide show
  1. package/build/abi/PendleRouterStatic.json +19 -0
  2. package/build/abi/apex-defi/ApexDefiFactory.abi.json +1749 -0
  3. package/build/abi/apex-defi/ApexDefiRouter.abi.json +1120 -0
  4. package/build/abi/apex-defi/ApexDefiToken.abi.json +229 -0
  5. package/build/abi/apex-defi/ApexDefiWrapper.abi.json +92 -0
  6. package/build/abi/apex-defi/ApexDefiWrapperFactory.abi.json +1107 -0
  7. package/build/abi/pangolin-v3/PangolinV3StateMulticall.abi.json +796 -0
  8. package/build/abi/pendle/pendle-deployer.abi.json +520 -0
  9. package/build/abi/pendle/pendle-oracle.abi.json +413 -0
  10. package/build/abi/ring-v2/few-wrapped-token.json +587 -0
  11. package/build/abi/ring-v2/ring-v2-factory.json +125 -0
  12. package/build/abi/ring-v2/ring-v2-pool.json +461 -0
  13. package/build/abi/ring-v2/ring-v2-router.json +332 -0
  14. package/build/abi/stabull/stabull-curve.json +738 -0
  15. package/build/abi/stabull/stabull-router.json +76 -0
  16. package/build/abi/uniswap-v4/hooks/SpotDynamicFeeManager.json +26 -0
  17. package/build/abi/uniswap-v4/hooks/SpotHook.json +54 -0
  18. package/build/abi/uniswap-v4/hooks/SpotPolicyManager.json +45 -0
  19. package/build/abi/uniswap-v4/hooks/cabalcoin-hook.abi.json +682 -0
  20. package/build/abi/uniswap-v4/hooks/fee-hook.abi.json +1335 -0
  21. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.d.ts +29 -0
  22. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js +153 -0
  23. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying-factory.js.map +1 -0
  24. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.d.ts +40 -0
  25. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js +323 -0
  26. package/build/dex/aave-pt-to-underlying/aave-pt-to-underlying.js.map +1 -0
  27. package/build/dex/aave-pt-to-underlying/config.d.ts +3 -0
  28. package/build/dex/aave-pt-to-underlying/config.js +24 -0
  29. package/build/dex/aave-pt-to-underlying/config.js.map +1 -0
  30. package/build/dex/aave-pt-to-underlying/constants.d.ts +2 -0
  31. package/build/dex/aave-pt-to-underlying/constants.js +6 -0
  32. package/build/dex/aave-pt-to-underlying/constants.js.map +1 -0
  33. package/build/dex/aave-pt-to-underlying/types.d.ts +24 -0
  34. package/build/dex/aave-pt-to-underlying/types.js +3 -0
  35. package/build/dex/aave-pt-to-underlying/types.js.map +1 -0
  36. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.d.ts +39 -0
  37. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js +244 -0
  38. package/build/dex/aave-pt-to-usdc/aave-pt-to-usdc.js.map +1 -0
  39. package/build/dex/aave-pt-to-usdc/config.d.ts +3 -0
  40. package/build/dex/aave-pt-to-usdc/config.js +47 -0
  41. package/build/dex/aave-pt-to-usdc/config.js.map +1 -0
  42. package/build/dex/aave-pt-to-usdc/constants.d.ts +2 -0
  43. package/build/dex/aave-pt-to-usdc/constants.js +6 -0
  44. package/build/dex/aave-pt-to-usdc/constants.js.map +1 -0
  45. package/build/dex/aave-pt-to-usdc/types.d.ts +22 -0
  46. package/build/dex/aave-pt-to-usdc/types.js +3 -0
  47. package/build/dex/aave-pt-to-usdc/types.js.map +1 -0
  48. package/build/dex/apex-defi/apex-defi-factory.d.ts +26 -0
  49. package/build/dex/apex-defi/apex-defi-factory.js +53 -0
  50. package/build/dex/apex-defi/apex-defi-factory.js.map +1 -0
  51. package/build/dex/apex-defi/apex-defi-pool.d.ts +55 -0
  52. package/build/dex/apex-defi/apex-defi-pool.js +247 -0
  53. package/build/dex/apex-defi/apex-defi-pool.js.map +1 -0
  54. package/build/dex/apex-defi/apex-defi-wrapper-factory.d.ts +57 -0
  55. package/build/dex/apex-defi/apex-defi-wrapper-factory.js +250 -0
  56. package/build/dex/apex-defi/apex-defi-wrapper-factory.js.map +1 -0
  57. package/build/dex/apex-defi/apex-defi.d.ts +97 -0
  58. package/build/dex/apex-defi/apex-defi.js +1021 -0
  59. package/build/dex/apex-defi/apex-defi.js.map +1 -0
  60. package/build/dex/apex-defi/config.d.ts +4 -0
  61. package/build/dex/apex-defi/config.js +138 -0
  62. package/build/dex/apex-defi/config.js.map +1 -0
  63. package/build/dex/apex-defi/types.d.ts +32 -0
  64. package/build/dex/apex-defi/types.js +3 -0
  65. package/build/dex/apex-defi/types.js.map +1 -0
  66. package/build/dex/apex-defi/utils.d.ts +46 -0
  67. package/build/dex/apex-defi/utils.js +133 -0
  68. package/build/dex/apex-defi/utils.js.map +1 -0
  69. package/build/dex/idle-dao/idle-dao.d.ts +0 -1
  70. package/build/dex/idle-dao/idle-dao.js +11 -23
  71. package/build/dex/idle-dao/idle-dao.js.map +1 -1
  72. package/build/dex/infusion/infusion-stable-pool.d.ts +1 -1
  73. package/build/dex/infusion/infusion-stable-pool.js +1 -1
  74. package/build/dex/infusion/infusion-stable-pool.js.map +1 -1
  75. package/build/dex/infusion/infusion.d.ts +3 -4
  76. package/build/dex/infusion/infusion.js +72 -114
  77. package/build/dex/infusion/infusion.js.map +1 -1
  78. package/build/dex/maker-psm/maker-psm.d.ts +41 -4
  79. package/build/dex/maker-psm/maker-psm.js +143 -40
  80. package/build/dex/maker-psm/maker-psm.js.map +1 -1
  81. package/build/dex/miro-migrator/miro-migrator-state.d.ts +27 -0
  82. package/build/dex/miro-migrator/miro-migrator-state.js +89 -0
  83. package/build/dex/miro-migrator/miro-migrator-state.js.map +1 -0
  84. package/build/dex/oswap/config.js +16 -0
  85. package/build/dex/oswap/config.js.map +1 -1
  86. package/build/dex/oswap/oswap-pool.d.ts +17 -1
  87. package/build/dex/oswap/oswap-pool.js +95 -2
  88. package/build/dex/oswap/oswap-pool.js.map +1 -1
  89. package/build/dex/oswap/oswap.d.ts +3 -2
  90. package/build/dex/oswap/oswap.js +59 -3
  91. package/build/dex/oswap/oswap.js.map +1 -1
  92. package/build/dex/oswap/types.d.ts +8 -1
  93. package/build/dex/stabull/config.d.ts +3 -0
  94. package/build/dex/stabull/config.js +177 -0
  95. package/build/dex/stabull/config.js.map +1 -0
  96. package/build/dex/stabull/stabull-pool.d.ts +46 -0
  97. package/build/dex/stabull/stabull-pool.js +113 -0
  98. package/build/dex/stabull/stabull-pool.js.map +1 -0
  99. package/build/dex/stabull/stabull.d.ts +55 -0
  100. package/build/dex/stabull/stabull.js +286 -0
  101. package/build/dex/stabull/stabull.js.map +1 -0
  102. package/build/dex/stabull/types.d.ts +21 -0
  103. package/build/dex/stabull/types.js +3 -0
  104. package/build/dex/stabull/types.js.map +1 -0
  105. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.d.ts +4 -0
  106. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js +56 -0
  107. package/build/dex/uniswap-v3/forks/pangolin-v3/utils.js.map +1 -0
  108. package/build/dex/uniswap-v4/hooks/arena.d.ts +6 -0
  109. package/build/dex/uniswap-v4/hooks/arena.js +10 -0
  110. package/build/dex/uniswap-v4/hooks/arena.js.map +1 -0
  111. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.d.ts +0 -0
  112. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js +2 -0
  113. package/build/dex/uniswap-v4/hooks/base-fee/base-fee-hook.js.map +1 -0
  114. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.d.ts +7 -0
  115. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js +28 -0
  116. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/cabalcoin-hook-pool.js.map +1 -0
  117. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.d.ts +0 -0
  118. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js +2 -0
  119. package/build/dex/uniswap-v4/hooks/cabalcoin-hook/types.js.map +1 -0
  120. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.d.ts +7 -0
  121. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js +28 -0
  122. package/build/dex/uniswap-v4/hooks/fee-hook/fee-hook-pool.js.map +1 -0
  123. package/build/dex/uniswap-v4/hooks/fee-hook/types.d.ts +0 -0
  124. package/build/dex/uniswap-v4/hooks/fee-hook/types.js +2 -0
  125. package/build/dex/uniswap-v4/hooks/fee-hook/types.js.map +1 -0
  126. package/build/dex/uniswap-v4/hooks/index.d.ts +1 -0
  127. package/build/dex/uniswap-v4/hooks/index.js +18 -0
  128. package/build/dex/uniswap-v4/hooks/index.js.map +1 -0
  129. package/build/dex/uniswap-v4/hooks/spot.d.ts +15 -0
  130. package/build/dex/uniswap-v4/hooks/spot.js +109 -0
  131. package/build/dex/uniswap-v4/hooks/spot.js.map +1 -0
  132. package/build/dex/uniswap-v4/hooks/template.d.ts +150 -0
  133. package/build/dex/uniswap-v4/hooks/template.js +104 -0
  134. package/build/dex/uniswap-v4/hooks/template.js.map +1 -0
  135. package/build/dex/usdc-transmuter/usdc-transmuter-pool.d.ts +26 -0
  136. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js +75 -0
  137. package/build/dex/usdc-transmuter/usdc-transmuter-pool.js.map +1 -0
  138. package/build/dex/usual/usual-usdc-usdc.d.ts +17 -0
  139. package/build/dex/usual/usual-usdc-usdc.js +59 -0
  140. package/build/dex/usual/usual-usdc-usdc.js.map +1 -0
  141. package/build/dex/yo/config.d.ts +3 -0
  142. package/build/dex/yo/config.js +21 -0
  143. package/build/dex/yo/config.js.map +1 -0
  144. package/build/dex/yo/types.d.ts +13 -0
  145. package/build/dex/yo/types.js +3 -0
  146. package/build/dex/yo/types.js.map +1 -0
  147. package/build/dex/yo/yo-pool.d.ts +13 -0
  148. package/build/dex/yo/yo-pool.js +26 -0
  149. package/build/dex/yo/yo-pool.js.map +1 -0
  150. package/build/dex/yo/yo.d.ts +39 -0
  151. package/build/dex/yo/yo.js +248 -0
  152. package/build/dex/yo/yo.js.map +1 -0
  153. package/build/implementations/api-paraswap-sdk.d.ts +25 -0
  154. package/build/implementations/api-paraswap-sdk.js +102 -0
  155. package/build/implementations/api-paraswap-sdk.js.map +1 -0
  156. package/package.json +1 -1
  157. package/build/executor/Executor02BytecodeBuilderMultiRoute.d.ts +0 -101
  158. package/build/executor/Executor02BytecodeBuilderMultiRoute.js +0 -877
  159. package/build/executor/Executor02BytecodeBuilderMultiRoute.js.map +0 -1
@@ -19,8 +19,6 @@ const uniswap_v2_constant_product_pool_1 = require("../uniswap-v2/uniswap-v2-con
19
19
  const config_1 = require("./config");
20
20
  const token_transfer_fee_1 = require("../../lib/token-transfer-fee");
21
21
  const isStablePair_1 = require("./utils/isStablePair");
22
- const decoders_1 = require("../../lib/decoders");
23
- const INFUSION_RECHECK_PAIR_EXISTENCE_AFTER_MS = 3 * 24 * 60 * 60 * 1000; // 3 days
24
22
  var InfusionRouterFunctions;
25
23
  (function (InfusionRouterFunctions) {
26
24
  InfusionRouterFunctions["sellExactEth"] = "swapExactETHForTokens";
@@ -76,84 +74,41 @@ class Infusion extends uniswap_v2_1.UniswapV2 {
76
74
  this.feeFactor =
77
75
  config_1.InfusionConfig[dexKey][network].feeFactor || this.feeFactor;
78
76
  }
79
- getPoolIdentifier(token0, token1, stable = false) {
80
- const tokenAddress = [token0.toLowerCase(), token1.toLowerCase()]
81
- .sort((a, b) => (a > b ? 1 : -1))
82
- .join('_');
83
- const poolIdentifier = `${this.dexKey}_${tokenAddress}`;
84
- return poolIdentifier + this.poolPostfix(stable);
85
- }
86
- async findInfusionPairs(from, to) {
77
+ async findInfusionPair(from, to, stable) {
78
+ if (from.address.toLowerCase() === to.address.toLowerCase())
79
+ return null;
87
80
  const [token0, token1] = from.address.toLowerCase() < to.address.toLowerCase()
88
81
  ? [from, to]
89
82
  : [to, from];
90
- const stableValues = [false, true];
91
- const pairKeys = stableValues.map(stable => this.getPoolIdentifier(token0.address, token1.address, stable));
92
- // get cached pairs
93
- const pairs = pairKeys.map(key => this.pairs[key]);
94
- if (pairs.every(Boolean))
95
- return pairs;
96
- const cachedPairsRaw = await this.dexHelper.cache.hmget(this.pairsHashCacheKey, pairKeys);
97
- const cachedPairs = cachedPairsRaw.map(p => p ? JSON.parse(p) : null);
98
- const shouldFetchFromRpc = cachedPairs.some((cachedPair, i) => {
99
- if (cachedPair &&
100
- (cachedPair.exchange ||
101
- (cachedPair.checkExistenceAfter &&
102
- cachedPair.checkExistenceAfter > Date.now()))) {
103
- // prevent wiping initialized pool
104
- if (!pairs[i]?.pool) {
105
- pairs[i] = cachedPair;
106
- this.pairs[pairKeys[i]] = cachedPair;
107
- }
108
- return false;
109
- }
110
- return true;
111
- });
112
- if (!shouldFetchFromRpc)
113
- return pairs;
114
- const calldata = stableValues.map(stable => {
115
- return {
116
- target: this.factoryAddress,
117
- callData: this.factory.methods
118
- .getPair(token0.address, token1.address, stable)
119
- .encodeABI(),
120
- };
121
- });
122
- const data = await this.dexHelper.multiContract.methods.aggregate(calldata).call({});
123
- const exchanges = data.returnData.map(decoders_1.addressDecode);
124
- // cache and return
125
- stableValues.forEach((stable, i) => {
126
- // prevent wiping initialized pool
127
- if (pairs[i]?.pool) {
128
- return;
129
- }
130
- const exchange = exchanges[i];
131
- if (exchange === constants_1.NULL_ADDRESS) {
132
- pairs[i] = {
133
- token0,
134
- token1,
135
- stable,
136
- checkExistenceAfter: Date.now() + INFUSION_RECHECK_PAIR_EXISTENCE_AFTER_MS,
137
- };
138
- }
139
- else {
140
- pairs[i] = { token0, token1, stable, exchange };
141
- }
142
- this.pairs[pairKeys[i]] = pairs[i];
143
- });
144
- const pairsToCache = pairKeys
145
- .map((key, i) => [key, pairs[i]])
146
- .filter(([_, pair]) => !pair.pool);
147
- await this.dexHelper.cache.hmset(this.pairsHashCacheKey, Object.fromEntries(pairsToCache.map(([key, pair]) => [key, JSON.stringify(pair)])));
148
- return pairs;
83
+ const typePostfix = this.poolPostfix(stable);
84
+ const key = `${token0.address.toLowerCase()}-${token1.address.toLowerCase()}-${typePostfix}`;
85
+ let pair = this.pairs[key];
86
+ if (pair)
87
+ return pair;
88
+ let exchange = await this.factory.methods
89
+ // Infusion has additional boolean parameter "StablePool"
90
+ // At first we look for uniswap-like volatile pool
91
+ .getPair(token0.address, token1.address, stable)
92
+ .call();
93
+ if (exchange === constants_1.NULL_ADDRESS) {
94
+ pair = { token0, token1, stable };
95
+ }
96
+ else {
97
+ pair = { token0, token1, exchange, stable };
98
+ }
99
+ this.pairs[key] = pair;
100
+ return pair;
149
101
  }
150
102
  async batchCatchUpPairs(pairs, blockNumber) {
151
103
  if (!blockNumber)
152
104
  return;
153
105
  const pairsToFetch = [];
154
106
  for (const _pair of pairs) {
155
- const infusionPairs = await this.findInfusionPairs(_pair[0], _pair[1]);
156
- for (const pair of infusionPairs) {
107
+ const pairs = await Promise.all([
108
+ this.findInfusionPair(_pair[0], _pair[1], true),
109
+ this.findInfusionPair(_pair[0], _pair[1], false),
110
+ ]);
111
+ for (const pair of pairs) {
157
112
  if (!(pair && pair.exchange))
158
113
  continue;
159
114
  if (!pair.pool) {
@@ -225,7 +180,7 @@ class Infusion extends uniswap_v2_1.UniswapV2 {
225
180
  return [];
226
181
  }
227
182
  }
228
- getSellPrice(priceParams, srcAmount) {
183
+ async getSellPrice(priceParams, srcAmount) {
229
184
  return priceParams.stable
230
185
  ? infusion_stable_pool_1.InfusionStablePool.getSellPrice(priceParams, srcAmount, this.feeFactor)
231
186
  : uniswap_v2_constant_product_pool_1.Uniswapv2ConstantProductPool.getSellPrice(priceParams, srcAmount, this.feeFactor);
@@ -253,11 +208,7 @@ class Infusion extends uniswap_v2_1.UniswapV2 {
253
208
  .sort((a, b) => (a > b ? 1 : -1))
254
209
  .join('_');
255
210
  await this.batchCatchUpPairs([[from, to]], blockNumber);
256
- const pairParams = await this.getInfusionPairOrderedParams(from, to, blockNumber, transferFees.srcDexFee);
257
- const resultPools = pairParams.map(pairParam => {
258
- if (!pairParam)
259
- return null;
260
- const stable = pairParam.stable;
211
+ const resultPromises = [false, true].map(async (stable) => {
261
212
  // We don't support fee on transfer for stable pools yet
262
213
  if (stable &&
263
214
  (transferFees.srcFee !== 0 || transferFees.srcDexFee !== 0)) {
@@ -267,10 +218,15 @@ class Infusion extends uniswap_v2_1.UniswapV2 {
267
218
  if (limitPools && limitPools.every(p => p !== poolIdentifier))
268
219
  return null;
269
220
  const isSell = side === core_1.SwapSide.SELL;
221
+ const pairParam = await this.getInfusionPairOrderedParams(from, to, blockNumber, stable, transferFees.srcDexFee);
222
+ if (!pairParam)
223
+ return null;
270
224
  const unitAmount = (0, utils_1.getBigIntPow)(from.decimals);
271
225
  const [unitVolumeWithFee, ...amountsWithFee] = (0, token_transfer_fee_1.applyTransferFee)([unitAmount, ...amounts], side, isSell ? transferFees.srcFee : transferFees.destFee, isSell ? constants_1.SRC_TOKEN_PARASWAP_TRANSFERS : constants_1.DEST_TOKEN_PARASWAP_TRANSFERS);
272
- const unit = this.getSellPricePath(unitVolumeWithFee, [pairParam]);
273
- const prices = amountsWithFee.map(amount => amount === 0n ? 0n : this.getSellPricePath(amount, [pairParam]));
226
+ const unit = await this.getSellPricePath(unitVolumeWithFee, [
227
+ pairParam,
228
+ ]);
229
+ const prices = await Promise.all(amountsWithFee.map(amount => amount === 0n ? 0n : this.getSellPricePath(amount, [pairParam])));
274
230
  const [unitOutWithFee, ...outputsWithFee] = (0, token_transfer_fee_1.applyTransferFee)([unit, ...prices], side,
275
231
  // This part is confusing, because we treat differently SELL and BUY fees
276
232
  // If Buy, we should apply transfer fee on srcToken on top of dexFee applied earlier
@@ -300,6 +256,7 @@ class Infusion extends uniswap_v2_1.UniswapV2 {
300
256
  poolAddresses: [pairParam.exchange],
301
257
  };
302
258
  });
259
+ const resultPools = (await Promise.all(resultPromises));
303
260
  const resultPoolsFiltered = resultPools.filter(item => !!item); // filter null elements
304
261
  return resultPoolsFiltered.length > 0 ? resultPoolsFiltered : null;
305
262
  }
@@ -375,45 +332,43 @@ class Infusion extends uniswap_v2_1.UniswapV2 {
375
332
  return lodash_1.default.slice(lodash_1.default.sortBy(lodash_1.default.concat(pools0, pools1), [pool => -1 * pool.liquidityUSD]), 0, count);
376
333
  }
377
334
  // Same as at uniswap-v2-pool.json, but extended with decimals and stable
378
- async getInfusionPairOrderedParams(from, to, blockNumber, tokenDexTransferFee) {
379
- const pairs = await this.findInfusionPairs(from, to);
380
- return pairs.map(pair => {
381
- if (!(pair && pair.pool && pair.exchange))
382
- return null;
383
- const pairState = pair.pool.getState(blockNumber);
384
- if (!pairState) {
385
- this.logger.error(`Error_orderPairParams expected reserves, got none (maybe the pool doesn't exist) ${from.symbol || from.address} ${to.symbol || to.address}`);
386
- return null;
387
- }
388
- const fee = (pairState.feeCode + tokenDexTransferFee).toString();
389
- const pairReversed = pair.token1.address.toLowerCase() === from.address.toLowerCase();
390
- if (pairReversed) {
391
- return {
392
- tokenIn: from.address,
393
- tokenOut: to.address,
394
- reservesIn: pairState.reserves1,
395
- reservesOut: pairState.reserves0,
396
- fee,
397
- direction: false,
398
- exchange: pair.exchange,
399
- decimalsIn: from.decimals,
400
- decimalsOut: to.decimals,
401
- stable: pair.stable,
402
- };
403
- }
335
+ async getInfusionPairOrderedParams(from, to, blockNumber, stable, tokenDexTransferFee) {
336
+ const pair = await this.findInfusionPair(from, to, stable);
337
+ if (!(pair && pair.pool && pair.exchange))
338
+ return null;
339
+ const pairState = pair?.pool.getState(blockNumber);
340
+ if (!pairState) {
341
+ this.logger.error(`Error_orderPairParams expected reserves, got none (maybe the pool doesn't exist) ${from.symbol || from.address} ${to.symbol || to.address}`);
342
+ return null;
343
+ }
344
+ const fee = (pairState.feeCode + tokenDexTransferFee).toString();
345
+ const pairReversed = pair.token1.address.toLowerCase() === from.address.toLowerCase();
346
+ if (pairReversed) {
404
347
  return {
405
348
  tokenIn: from.address,
406
349
  tokenOut: to.address,
407
- reservesIn: pairState.reserves0,
408
- reservesOut: pairState.reserves1,
350
+ reservesIn: pairState.reserves1,
351
+ reservesOut: pairState.reserves0,
409
352
  fee,
410
- direction: true,
353
+ direction: false,
411
354
  exchange: pair.exchange,
412
355
  decimalsIn: from.decimals,
413
356
  decimalsOut: to.decimals,
414
- stable: pair.stable,
357
+ stable,
415
358
  };
416
- });
359
+ }
360
+ return {
361
+ tokenIn: from.address,
362
+ tokenOut: to.address,
363
+ reservesIn: pairState.reserves0,
364
+ reservesOut: pairState.reserves1,
365
+ fee,
366
+ direction: true,
367
+ exchange: pair.exchange,
368
+ decimalsIn: from.decimals,
369
+ decimalsOut: to.decimals,
370
+ stable,
371
+ };
417
372
  }
418
373
  async getPoolIdentifiers(_from, _to, side, blockNumber) {
419
374
  if (side === core_1.SwapSide.BUY)
@@ -423,10 +378,13 @@ class Infusion extends uniswap_v2_1.UniswapV2 {
423
378
  if (from.address.toLowerCase() === to.address.toLowerCase()) {
424
379
  return [];
425
380
  }
426
- return [
427
- this.getPoolIdentifier(from.address, to.address, false),
428
- this.getPoolIdentifier(from.address, to.address, true),
429
- ];
381
+ const tokenAddress = [from.address.toLowerCase(), to.address.toLowerCase()]
382
+ .sort((a, b) => (a > b ? 1 : -1))
383
+ .join('_');
384
+ const poolIdentifier = `${this.dexKey}_${tokenAddress}`;
385
+ const poolIdentifierUniswap = poolIdentifier + this.poolPostfix(false);
386
+ const poolIdentifierStable = poolIdentifier + this.poolPostfix(true);
387
+ return [poolIdentifierUniswap, poolIdentifierStable];
430
388
  }
431
389
  poolPostfix(stable) {
432
390
  return stable ? 'S' : 'V';
@@ -1 +1 @@
1
- {"version":3,"file":"infusion.js","sourceRoot":"","sources":["../../../src/dex/infusion/infusion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infusion.js","sourceRoot":"","sources":["../../../src/dex/infusion/infusion.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,50 @@
1
- import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam, ExchangeTxInfo, PreprocessTransactionOptions } from '../../types';
1
+ import { DeepReadonly } from 'ts-essentials';
2
+ import { Token, Address, ExchangePrices, PoolPrices, Log, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, DexExchangeParam, ExchangeTxInfo, PreprocessTransactionOptions } from '../../types';
2
3
  import { SwapSide, Network } from '../../constants';
4
+ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
3
5
  import { IDex } from '../../dex/idex';
4
6
  import { IDexHelper } from '../../dex-helper/idex-helper';
5
7
  import { MakerPsmData, PoolState, PoolConfig, MakerPsmDirectPayload } from './types';
6
8
  import { SimpleExchange } from '../simple-exchange';
7
9
  import { OptimalSwapExchange } from '@paraswap/core';
8
- import { MakerPsmEventPool } from './maker-psm-event-pool';
10
+ export declare class MakerPsmEventPool extends StatefulEventSubscriber<PoolState> {
11
+ protected network: number;
12
+ protected dexHelper: IDexHelper;
13
+ poolConfig: PoolConfig;
14
+ protected vatAddress: Address;
15
+ handlers: {
16
+ [event: string]: (event: any, pool: PoolState, log: Log) => PoolState;
17
+ };
18
+ logDecoder: (log: Log) => any;
19
+ to18ConversionFactor: bigint;
20
+ bytes32Tout: string;
21
+ bytes32Tin: string;
22
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, poolConfig: PoolConfig, vatAddress: Address);
23
+ handleFile(event: any, pool: PoolState, log: Log): PoolState;
24
+ handleSellGem(event: any, pool: PoolState, log: Log): PoolState;
25
+ handleBuyGem(event: any, pool: PoolState, log: Log): PoolState;
26
+ getIdentifier(): string;
27
+ /**
28
+ * The function is called every time any of the subscribed
29
+ * addresses release log. The function accepts the current
30
+ * state, updates the state according to the log, and returns
31
+ * the updated state.
32
+ * @param state - Current state of event subscriber
33
+ * @param log - Log released by one of the subscribed addresses
34
+ * @returns Updates state of the event subscriber after the log
35
+ */
36
+ protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>): DeepReadonly<PoolState> | null;
37
+ /**
38
+ * The function generates state using on-chain calls. This
39
+ * function is called to regenerate state if the event based
40
+ * system fails to fetch events and the local state is no
41
+ * more correct.
42
+ * @param blockNumber - Blocknumber for which the state should
43
+ * should be generated
44
+ * @returns state of the event subscriber at blocknumber
45
+ */
46
+ generateState(blockNumber: number): Promise<Readonly<PoolState>>;
47
+ }
9
48
  export declare class MakerPsm extends SimpleExchange implements IDex<MakerPsmData, MakerPsmDirectPayload> {
10
49
  protected network: Network;
11
50
  protected dexHelper: IDexHelper;
@@ -36,7 +75,6 @@ export declare class MakerPsm extends SimpleExchange implements IDex<MakerPsmDat
36
75
  }, dai?: Token, vatAddress?: Address, poolConfigs?: PoolConfig[]);
37
76
  static getDirectFunctionNameV6(): string[];
38
77
  initializePricing(blockNumber: number): Promise<void>;
39
- private initializeEventPools;
40
78
  getAdapters(side: SwapSide): {
41
79
  name: string;
42
80
  index: number;
@@ -61,6 +99,5 @@ export declare class MakerPsm extends SimpleExchange implements IDex<MakerPsmDat
61
99
  encoder: (...params: (string | MakerPsmDirectPayload)[]) => string;
62
100
  networkFee: string;
63
101
  };
64
- updatePoolState(): Promise<void>;
65
102
  getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
66
103
  }
@@ -36,23 +36,143 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.MakerPsm = void 0;
39
+ exports.MakerPsm = exports.MakerPsmEventPool = void 0;
40
40
  const abi_1 = require("@ethersproject/abi");
41
41
  const constants_1 = require("../../constants");
42
42
  const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
43
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
43
44
  const utils_1 = require("../../utils");
44
45
  const simple_exchange_1 = require("../simple-exchange");
45
46
  const config_1 = require("./config");
46
47
  const psm_json_1 = __importDefault(require("../../abi/maker-psm/psm.json"));
48
+ const vat_json_1 = __importDefault(require("../../abi/maker-psm/vat.json"));
47
49
  const bigint_constants_1 = require("../../bigint-constants");
48
50
  const types_1 = require("../../executor/types");
49
51
  const bytes_1 = require("@ethersproject/bytes");
50
52
  const core_1 = require("@paraswap/core");
51
53
  const ethers_1 = require("ethers");
52
- const maker_psm_event_pool_1 = require("./maker-psm-event-pool");
54
+ const vatInterface = new abi_1.Interface(vat_json_1.default);
53
55
  const psmInterface = new abi_1.Interface(psm_json_1.default);
54
56
  const WAD = bigint_constants_1.BI_POWS[18];
57
+ const bigIntify = (b) => BigInt(b.toString());
55
58
  const ceilDiv = (a, b) => (a + b - 1n) / b;
59
+ async function getOnChainState(multiContract, poolConfigs, vatAddress, blockNumber) {
60
+ const callData = poolConfigs
61
+ .map(c => [
62
+ {
63
+ target: c.psmAddress,
64
+ callData: psmInterface.encodeFunctionData('tin', []),
65
+ },
66
+ {
67
+ target: c.psmAddress,
68
+ callData: psmInterface.encodeFunctionData('tout', []),
69
+ },
70
+ {
71
+ target: vatAddress,
72
+ callData: vatInterface.encodeFunctionData('ilks', [c.identifier]),
73
+ },
74
+ ])
75
+ .flat();
76
+ const res = await multiContract.methods
77
+ .aggregate(callData)
78
+ .call({}, blockNumber);
79
+ let i = 0;
80
+ return poolConfigs.map(c => {
81
+ const tin = bigIntify(psmInterface.decodeFunctionResult('tin', res.returnData[i++])[0]);
82
+ const tout = bigIntify(psmInterface.decodeFunctionResult('tout', res.returnData[i++])[0]);
83
+ const ilks = vatInterface.decodeFunctionResult('ilks', res.returnData[i++]);
84
+ const Art = bigIntify(ilks.Art);
85
+ const line = bigIntify(ilks.line);
86
+ const rate = bigIntify(ilks.rate);
87
+ return {
88
+ tin,
89
+ tout,
90
+ Art,
91
+ line,
92
+ rate,
93
+ };
94
+ });
95
+ }
96
+ class MakerPsmEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
97
+ network;
98
+ dexHelper;
99
+ poolConfig;
100
+ vatAddress;
101
+ handlers = {};
102
+ logDecoder;
103
+ to18ConversionFactor;
104
+ bytes32Tout = '0x746f757400000000000000000000000000000000000000000000000000000000'; // bytes32('tout')
105
+ bytes32Tin = '0x74696e0000000000000000000000000000000000000000000000000000000000'; // bytes32('tin')
106
+ constructor(parentName, network, dexHelper, logger, poolConfig, vatAddress) {
107
+ super(parentName, poolConfig.identifier, dexHelper, logger);
108
+ this.network = network;
109
+ this.dexHelper = dexHelper;
110
+ this.poolConfig = poolConfig;
111
+ this.vatAddress = vatAddress;
112
+ this.logDecoder = (log) => psmInterface.parseLog(log);
113
+ this.addressesSubscribed = [poolConfig.psmAddress];
114
+ this.to18ConversionFactor = (0, utils_1.getBigIntPow)(18 - poolConfig.gem.decimals);
115
+ // Add handlers
116
+ this.handlers['File'] = this.handleFile.bind(this);
117
+ this.handlers['SellGem'] = this.handleSellGem.bind(this);
118
+ this.handlers['BuyGem'] = this.handleBuyGem.bind(this);
119
+ }
120
+ handleFile(event, pool, log) {
121
+ if (event.args.what === this.bytes32Tin) {
122
+ pool.tin = bigIntify(event.args.data);
123
+ }
124
+ else if (event.args.what === this.bytes32Tout) {
125
+ pool.tout = bigIntify(event.args.data);
126
+ }
127
+ return pool;
128
+ }
129
+ handleSellGem(event, pool, log) {
130
+ pool.Art += bigIntify(event.args.value) * this.to18ConversionFactor;
131
+ return pool;
132
+ }
133
+ handleBuyGem(event, pool, log) {
134
+ pool.Art -= bigIntify(event.args.value) * this.to18ConversionFactor;
135
+ return pool;
136
+ }
137
+ getIdentifier() {
138
+ return `${this.parentName}_${this.poolConfig.psmAddress}`.toLowerCase();
139
+ }
140
+ /**
141
+ * The function is called every time any of the subscribed
142
+ * addresses release log. The function accepts the current
143
+ * state, updates the state according to the log, and returns
144
+ * the updated state.
145
+ * @param state - Current state of event subscriber
146
+ * @param log - Log released by one of the subscribed addresses
147
+ * @returns Updates state of the event subscriber after the log
148
+ */
149
+ processLog(state, log) {
150
+ try {
151
+ const event = this.logDecoder(log);
152
+ if (event.name in this.handlers) {
153
+ return this.handlers[event.name](event, state, log);
154
+ }
155
+ return state;
156
+ }
157
+ catch (e) {
158
+ this.logger.error(`Error_${this.parentName}_processLog could not parse the log with topic ${log.topics}:`, e);
159
+ return null;
160
+ }
161
+ }
162
+ /**
163
+ * The function generates state using on-chain calls. This
164
+ * function is called to regenerate state if the event based
165
+ * system fails to fetch events and the local state is no
166
+ * more correct.
167
+ * @param blockNumber - Blocknumber for which the state should
168
+ * should be generated
169
+ * @returns state of the event subscriber at blocknumber
170
+ */
171
+ async generateState(blockNumber) {
172
+ return (await getOnChainState(this.dexHelper.multiContract, [this.poolConfig], this.vatAddress, blockNumber))[0];
173
+ }
174
+ }
175
+ exports.MakerPsmEventPool = MakerPsmEventPool;
56
176
  class MakerPsm extends simple_exchange_1.SimpleExchange {
57
177
  network;
58
178
  dexHelper;
@@ -76,23 +196,18 @@ class MakerPsm extends simple_exchange_1.SimpleExchange {
76
196
  this.poolConfigs = poolConfigs;
77
197
  this.logger = dexHelper.getLogger(dexKey);
78
198
  this.eventPools = {};
79
- poolConfigs.forEach(p => (this.eventPools[p.gem.address.toLowerCase()] = new maker_psm_event_pool_1.MakerPsmEventPool(dexKey, network, dexHelper, this.logger, p, this.vatAddress)));
199
+ poolConfigs.forEach(p => (this.eventPools[p.gem.address.toLowerCase()] = new MakerPsmEventPool(dexKey, network, dexHelper, this.logger, p, this.vatAddress)));
80
200
  }
81
201
  static getDirectFunctionNameV6() {
82
202
  return [core_1.ContractMethodV6.swapExactAmountInOutOnMakerPSM];
83
203
  }
84
204
  async initializePricing(blockNumber) {
85
- await this.initializeEventPools(blockNumber);
86
- }
87
- async initializeEventPools(blockNumber, subscribe = true) {
88
- await Promise.all(Object.values(this.eventPools).map(async (eventPool) => {
89
- if (subscribe) {
90
- await eventPool.initialize(blockNumber);
91
- }
92
- else {
93
- const state = await eventPool.generateState(blockNumber);
94
- eventPool.setState(state, blockNumber);
95
- }
205
+ const poolStates = await getOnChainState(this.dexHelper.multiContract, this.poolConfigs, this.vatAddress, blockNumber);
206
+ await Promise.all(this.poolConfigs.map(async (p, i) => {
207
+ const eventPool = this.eventPools[p.gem.address.toLowerCase()];
208
+ await eventPool.initialize(blockNumber, {
209
+ state: poolStates[i],
210
+ });
96
211
  }));
97
212
  }
98
213
  // Returns the list of contract adapters (name and index)
@@ -345,45 +460,33 @@ class MakerPsm extends simple_exchange_1.SimpleExchange {
345
460
  };
346
461
  return { params: payload, encoder, networkFee: '0' };
347
462
  }
348
- async updatePoolState() {
349
- const blockNumber = await this.dexHelper.web3Provider.eth.getBlockNumber();
350
- await this.initializeEventPools(blockNumber, false);
351
- }
352
463
  // Returns list of top pools based on liquidity. Max
353
464
  // limit number pools should be returned.
354
465
  async getTopPoolsForToken(tokenAddress, limit) {
355
- const token = tokenAddress.toLowerCase();
356
- const isDAI = this.dai.address.toLowerCase() === token;
466
+ const _tokenAddress = tokenAddress.toLowerCase();
357
467
  // Liquidity depends on the swapping side hence we simply use the min
358
468
  // Its always in terms of stable coin hence liquidityUSD = liquidity
359
469
  const minLiq = (poolState) => {
360
470
  const buyLimit = poolState.Art;
361
471
  const sellLimit = (poolState.line - poolState.Art * poolState.rate) / poolState.rate;
362
- const minLimit = buyLimit < sellLimit ? buyLimit : sellLimit;
363
- const liquidity = Number(minLimit) / Number(bigint_constants_1.BI_POWS[18]);
364
- return liquidity > 0 ? 2 * liquidity : 0;
472
+ return (2 *
473
+ parseInt(((buyLimit > sellLimit ? sellLimit : buyLimit) / bigint_constants_1.BI_POWS[18]).toString()));
365
474
  };
366
- const validPoolConfigs = isDAI
475
+ const isDai = _tokenAddress === this.dai.address;
476
+ const validPoolConfigs = isDai
367
477
  ? this.poolConfigs
368
- : this.eventPools[token]
369
- ? [this.eventPools[token].poolConfig]
478
+ : this.eventPools[_tokenAddress]
479
+ ? [this.eventPools[_tokenAddress].poolConfig]
370
480
  : [];
371
481
  if (!validPoolConfigs.length)
372
482
  return [];
373
- const pools = validPoolConfigs.map(config => {
374
- const eventPoolKey = config.gem.address.toLowerCase();
375
- const eventPool = this.eventPools[eventPoolKey];
376
- const state = eventPool?.getStaleState();
377
- if (!state)
378
- return null;
379
- return {
380
- exchange: this.dexKey,
381
- address: config.psmAddress,
382
- liquidityUSD: minLiq(state),
383
- connectorTokens: [isDAI ? config.gem : this.dai],
384
- };
385
- });
386
- return pools.filter(p => !!p).slice(0, limit);
483
+ const poolStates = await getOnChainState(this.dexHelper.multiContract, validPoolConfigs, this.vatAddress, 'latest');
484
+ return validPoolConfigs.map((p, i) => ({
485
+ exchange: this.dexKey,
486
+ address: p.psmAddress,
487
+ liquidityUSD: minLiq(poolStates[i]),
488
+ connectorTokens: [isDai ? p.gem : this.dai],
489
+ }));
387
490
  }
388
491
  }
389
492
  exports.MakerPsm = MakerPsm;