@paraswap/dex-lib 2.30.1 → 2.30.2

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 (149) hide show
  1. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
  2. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  3. package/build/abi/woo-fi/WooFeeManager.abi.json +318 -0
  4. package/build/abi/woo-fi/WooPP.abi.json +548 -0
  5. package/build/abi/woo-fi/Wooracle.abi.json +260 -0
  6. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  7. package/build/dex/aave-v3/tokens/avalanche.json +74 -0
  8. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  9. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  10. package/build/dex/aave-v3/tokens/polygon.json +116 -0
  11. package/build/dex/balancer-v2/LinearMath.d.ts +19 -0
  12. package/build/dex/balancer-v2/LinearMath.js +179 -0
  13. package/build/dex/balancer-v2/LinearMath.js.map +1 -0
  14. package/build/dex/balancer-v2/LinearPool.d.ts +47 -0
  15. package/build/dex/balancer-v2/LinearPool.js +324 -0
  16. package/build/dex/balancer-v2/LinearPool.js.map +1 -0
  17. package/build/dex/balancer-v2/PhantomStablePool.d.ts +47 -0
  18. package/build/dex/balancer-v2/PhantomStablePool.js +294 -0
  19. package/build/dex/balancer-v2/PhantomStablePool.js.map +1 -0
  20. package/build/dex/balancer-v2/StableMath.d.ts +9 -0
  21. package/build/dex/balancer-v2/StableMath.js +272 -0
  22. package/build/dex/balancer-v2/StableMath.js.map +1 -0
  23. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +75 -0
  24. package/build/dex/balancer-v2/balancer-v2-pool.js +417 -0
  25. package/build/dex/balancer-v2/balancer-v2-pool.js.map +1 -0
  26. package/build/dex/curve-v1-factory/config.js +17 -9
  27. package/build/dex/curve-v1-factory/config.js.map +1 -1
  28. package/build/dex/curve-v1-factory/curve-v1-factory.d.ts +1 -1
  29. package/build/dex/curve-v1-factory/curve-v1-factory.js +192 -177
  30. package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
  31. package/build/dex/curve-v1-factory/curve-v1-pool-manager.js +4 -1
  32. package/build/dex/curve-v1-factory/curve-v1-pool-manager.js.map +1 -1
  33. package/build/dex/curve-v1-factory/price-handlers/functions/_calc_withdraw_one_coin.js +1 -0
  34. package/build/dex/curve-v1-factory/price-handlers/functions/_calc_withdraw_one_coin.js.map +1 -1
  35. package/build/dex/curve-v1-factory/price-handlers/functions/_dynamic_fee.js +1 -0
  36. package/build/dex/curve-v1-factory/price-handlers/functions/_dynamic_fee.js.map +1 -1
  37. package/build/dex/curve-v1-factory/price-handlers/functions/_rates.js +1 -0
  38. package/build/dex/curve-v1-factory/price-handlers/functions/_rates.js.map +1 -1
  39. package/build/dex/curve-v1-factory/price-handlers/functions/_xp.js +1 -0
  40. package/build/dex/curve-v1-factory/price-handlers/functions/_xp.js.map +1 -1
  41. package/build/dex/curve-v1-factory/price-handlers/functions/_xp_mem.js +1 -0
  42. package/build/dex/curve-v1-factory/price-handlers/functions/_xp_mem.js.map +1 -1
  43. package/build/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.js +73 -1
  44. package/build/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.js.map +1 -1
  45. package/build/dex/curve-v1-factory/price-handlers/functions/calc_withdraw_one_coin.js +1 -0
  46. package/build/dex/curve-v1-factory/price-handlers/functions/calc_withdraw_one_coin.js.map +1 -1
  47. package/build/dex/curve-v1-factory/price-handlers/functions/constants.js +10 -0
  48. package/build/dex/curve-v1-factory/price-handlers/functions/constants.js.map +1 -1
  49. package/build/dex/curve-v1-factory/price-handlers/functions/get_D.js +1 -0
  50. package/build/dex/curve-v1-factory/price-handlers/functions/get_D.js.map +1 -1
  51. package/build/dex/curve-v1-factory/price-handlers/functions/get_D_mem.js +1 -0
  52. package/build/dex/curve-v1-factory/price-handlers/functions/get_D_mem.js.map +1 -1
  53. package/build/dex/curve-v1-factory/price-handlers/functions/get_D_precisions.js +1 -0
  54. package/build/dex/curve-v1-factory/price-handlers/functions/get_D_precisions.js.map +1 -1
  55. package/build/dex/curve-v1-factory/price-handlers/functions/get_dy.js +1 -0
  56. package/build/dex/curve-v1-factory/price-handlers/functions/get_dy.js.map +1 -1
  57. package/build/dex/curve-v1-factory/price-handlers/functions/get_dy_underlying.js +1 -0
  58. package/build/dex/curve-v1-factory/price-handlers/functions/get_dy_underlying.js.map +1 -1
  59. package/build/dex/curve-v1-factory/price-handlers/functions/get_y.js +1 -0
  60. package/build/dex/curve-v1-factory/price-handlers/functions/get_y.js.map +1 -1
  61. package/build/dex/curve-v1-factory/price-handlers/functions/get_y_D.js +1 -0
  62. package/build/dex/curve-v1-factory/price-handlers/functions/get_y_D.js.map +1 -1
  63. package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.d.ts +1 -1
  64. package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.js +2 -2
  65. package/build/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.js.map +1 -1
  66. package/build/dex/curve-v1-factory/types.d.ts +4 -1
  67. package/build/dex/curve-v1-factory/types.js +1 -0
  68. package/build/dex/curve-v1-factory/types.js.map +1 -1
  69. package/build/dex/quickswap-v3.d.ts +21 -0
  70. package/build/dex/quickswap-v3.js +40 -0
  71. package/build/dex/quickswap-v3.js.map +1 -0
  72. package/build/dex/solidly/forks-override/ramses.js +20 -8
  73. package/build/dex/solidly/forks-override/ramses.js.map +1 -1
  74. package/build/dex/solidly/solidly.js +1 -1
  75. package/build/dex/test-dex/config.d.ts +4 -0
  76. package/build/dex/test-dex/config.js +15 -0
  77. package/build/dex/test-dex/config.js.map +1 -0
  78. package/build/dex/test-dex/test-dex-pool.d.ts +39 -0
  79. package/build/dex/test-dex/test-dex-pool.js +63 -0
  80. package/build/dex/test-dex/test-dex-pool.js.map +1 -0
  81. package/build/dex/test-dex/test-dex.d.ts +37 -0
  82. package/build/dex/test-dex/test-dex.js +126 -0
  83. package/build/dex/test-dex/test-dex.js.map +1 -0
  84. package/build/dex/test-dex/types.d.ts +6 -0
  85. package/build/dex/test-dex/types.js +3 -0
  86. package/build/dex/test-dex/types.js.map +1 -0
  87. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +12 -0
  88. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +23 -0
  89. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +1 -0
  90. package/build/dex/uniswap-v3/types.js.map +1 -1
  91. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  92. package/build/dex/uniswap-v3/uniswap-v3.js +1 -1
  93. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  94. package/build/dex/woo-fi/config.d.ts +4 -0
  95. package/build/dex/woo-fi/config.js +141 -0
  96. package/build/dex/woo-fi/config.js.map +1 -0
  97. package/build/dex/woo-fi/constants.d.ts +5 -0
  98. package/build/dex/woo-fi/constants.js +20 -0
  99. package/build/dex/woo-fi/constants.js.map +1 -0
  100. package/build/dex/woo-fi/types.d.ts +48 -0
  101. package/build/dex/woo-fi/types.js +3 -0
  102. package/build/dex/woo-fi/types.js.map +1 -0
  103. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +14 -0
  104. package/build/dex/woo-fi/woo-fi-decimal-math.js +42 -0
  105. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +1 -0
  106. package/build/dex/woo-fi/woo-fi-math.d.ts +31 -0
  107. package/build/dex/woo-fi/woo-fi-math.js +300 -0
  108. package/build/dex/woo-fi/woo-fi-math.js.map +1 -0
  109. package/build/dex/woo-fi/woo-fi.d.ts +65 -0
  110. package/build/dex/woo-fi/woo-fi.js +480 -0
  111. package/build/dex/woo-fi/woo-fi.js.map +1 -0
  112. package/build/dex/woo-fi-v2/woo-fi-math.d.ts +16 -0
  113. package/build/dex/woo-fi-v2/woo-fi-math.js +137 -0
  114. package/build/dex/woo-fi-v2/woo-fi-math.js.map +1 -0
  115. package/package.json +1 -1
  116. package/src/dex/curve-v1-factory/config.ts +17 -9
  117. package/src/dex/curve-v1-factory/curve-v1-factory-e2e.test.ts +19 -0
  118. package/src/dex/curve-v1-factory/curve-v1-factory-integration.test.ts +108 -45
  119. package/src/dex/curve-v1-factory/curve-v1-factory.ts +415 -367
  120. package/src/dex/curve-v1-factory/curve-v1-pool-manager.ts +4 -1
  121. package/src/dex/curve-v1-factory/price-handlers/functions/_calc_withdraw_one_coin.ts +1 -0
  122. package/src/dex/curve-v1-factory/price-handlers/functions/_dynamic_fee.ts +1 -0
  123. package/src/dex/curve-v1-factory/price-handlers/functions/_rates.ts +1 -0
  124. package/src/dex/curve-v1-factory/price-handlers/functions/_xp.ts +1 -0
  125. package/src/dex/curve-v1-factory/price-handlers/functions/_xp_mem.ts +1 -0
  126. package/src/dex/curve-v1-factory/price-handlers/functions/calc_token_amount.ts +91 -1
  127. package/src/dex/curve-v1-factory/price-handlers/functions/calc_withdraw_one_coin.ts +1 -0
  128. package/src/dex/curve-v1-factory/price-handlers/functions/constants.ts +11 -0
  129. package/src/dex/curve-v1-factory/price-handlers/functions/get_D.ts +2 -0
  130. package/src/dex/curve-v1-factory/price-handlers/functions/get_D_mem.ts +1 -0
  131. package/src/dex/curve-v1-factory/price-handlers/functions/get_D_precisions.ts +1 -0
  132. package/src/dex/curve-v1-factory/price-handlers/functions/get_dy.ts +1 -0
  133. package/src/dex/curve-v1-factory/price-handlers/functions/get_dy_underlying.ts +1 -0
  134. package/src/dex/curve-v1-factory/price-handlers/functions/get_y.ts +1 -0
  135. package/src/dex/curve-v1-factory/price-handlers/functions/get_y_D.ts +1 -0
  136. package/src/dex/curve-v1-factory/state-polling-pools/factory-pool-polling.ts +2 -1
  137. package/src/dex/curve-v1-factory/types.ts +3 -1
  138. package/src/dex/solidly/forks-override/ramses.ts +105 -76
  139. package/src/dex/solidly/solidly.ts +1 -1
  140. package/src/dex/uniswap-v3/types.ts +4 -2
  141. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +50 -46
  142. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +2 -15
  143. package/src/dex/uniswap-v3/uniswap-v3-pool.ts +5 -2
  144. package/src/dex/uniswap-v3/uniswap-v3.ts +1 -1
  145. package/tests/constants-e2e.ts +10 -0
  146. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  147. package/build/dex/algebra/algebra-pool.d.ts +0 -46
  148. package/build/dex/algebra/algebra-pool.js +0 -336
  149. package/build/dex/algebra/algebra-pool.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/curve-v1-factory/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/curve-v1-factory/config.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export declare class CurveV1Factory extends SimpleExchange implements IDex<Curve
34
34
  logger: Logger;
35
35
  constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings, config?: import("./types").DexParams, coinsTypeTemplate?: AbiItem);
36
36
  initializePricing(blockNumber: number): Promise<void>;
37
- initializeCustomPollingPools(blockNumber?: number, initializeInitialState?: boolean): Promise<void>;
37
+ initializeCustomPollingPools(factoryAddresses: string[], blockNumber?: number, initializeInitialState?: boolean): Promise<void>;
38
38
  fetchFactoryPools(blockNumber?: number, initializeInitialState?: boolean): Promise<void>;
39
39
  getAdapters(side: SwapSide): {
40
40
  name: string;
@@ -85,7 +85,7 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
85
85
  this.SRC_TOKEN_DEX_TRANSFERS = 1;
86
86
  this.DEST_TOKEN_DEX_TRANSFERS = 1;
87
87
  this.directSwapIface = new abi_1.Interface(DirectSwap_json_1.default);
88
- this.logger = dexHelper.getLogger(dexKey);
88
+ this.logger = dexHelper.getLogger(`${this.dexKey}-${this.network}`);
89
89
  this.ifaces = {
90
90
  exchangeRouter: new abi_1.Interface(Curve_json_1.default),
91
91
  factory: new abi_1.Interface(FactoryCurveV1_json_1.default),
@@ -123,59 +123,62 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
123
123
  await this.fetchFactoryPools(blockNumber);
124
124
  this.logger.info(`${this.dexKey}: successfully initialized`);
125
125
  }
126
- async initializeCustomPollingPools(blockNumber,
126
+ async initializeCustomPollingPools(factoryAddresses, blockNumber,
127
127
  // We don't want to initialize state for PoolTracker. It doesn't make any sense
128
128
  initializeInitialState = true) {
129
129
  if (this.areCustomPoolsFetched) {
130
130
  return;
131
131
  }
132
- const { factoryAddress } = this.config;
133
- if (!factoryAddress) {
134
- this.logger.warn(`${this.dexKey}: No factory address specified for ${this.network}`);
135
- return;
136
- }
137
- await Promise.all(Object.values(this.config.customPools).map(async (customPool) => {
138
- const poolIdentifier = this.getPoolIdentifier(customPool.address, false);
139
- const poolContextConstants = constants_3.default[customPool.name];
140
- const { N_COINS: nCoins, USE_LENDING: useLending, isLending, } = poolContextConstants;
141
- const coinsAndImplementations = await this.dexHelper.multiWrapper.aggregate(lodash_1.default.range(0, nCoins)
142
- .map(i => ({
143
- target: customPool.address,
144
- callData: this.abiCoder.encodeFunctionCall(this._getCoinsABI(customPool.coinsInputType), [i.toString()]),
145
- decodeFunction: decoders_1.addressDecode,
146
- }))
147
- .concat([
148
- {
149
- target: factoryAddress,
150
- callData: this.ifaces.factory.encodeFunctionData('get_implementation_address', [customPool.address]),
151
- decodeFunction: decoders_1.addressDecode,
152
- },
153
- ]));
154
- const COINS = coinsAndImplementations.slice(0, -1);
155
- const implementationAddress = coinsAndImplementations.slice(-1)[0];
156
- const coins_decimals = (await this.dexHelper.multiWrapper.tryAggregate(true, COINS.map(c => ({
157
- target: c,
158
- callData: this.ifaces.erc20.encodeFunctionData('decimals', []),
159
- decodeFunction: decoders_1.uint8ToNumber,
160
- })))).map(r => r.returnData);
161
- const poolConstants = {
162
- COINS,
163
- coins_decimals,
164
- rate_multipliers: this._calcRateMultipliers(coins_decimals),
165
- lpTokenAddress: customPool.lpTokenAddress,
166
- };
167
- let newPool;
168
- if (Object.values(types_1.CustomImplementationNames).includes(customPool.name)) {
169
- // We don't want custom pools to be used for pricing, unless explicitly specified
170
- newPool = new custom_pool_polling_1.CustomBasePoolForFactory(this.logger, this.dexKey, this.dexHelper.config.data.network, this.cacheStateKey, customPool.name, implementationAddress, customPool.address, this.config.stateUpdatePeriodMs, poolIdentifier, poolConstants, poolContextConstants, customPool.liquidityApiSlug, customPool.lpTokenAddress, isLending, customPool.balancesInputType, useLending, customPool.useForPricing);
171
- }
172
- else {
173
- // Use for pricing pools from factory
174
- newPool = new custom_pool_polling_1.CustomBasePoolForFactory(this.logger, this.dexKey, this.dexHelper.config.data.network, this.cacheStateKey, customPool.name, implementationAddress, customPool.address, this.config.stateUpdatePeriodMs, poolIdentifier, poolConstants, poolContextConstants, customPool.liquidityApiSlug, customPool.lpTokenAddress, isLending, customPool.balancesInputType, useLending, true);
132
+ await Promise.all(factoryAddresses.map(async (factoryAddress) => {
133
+ try {
134
+ await Promise.all(Object.values(this.config.customPools).map(async (customPool) => {
135
+ const poolIdentifier = this.getPoolIdentifier(customPool.address, false);
136
+ const poolContextConstants = constants_3.default[customPool.name];
137
+ const { N_COINS: nCoins, USE_LENDING: useLending, isLending, } = poolContextConstants;
138
+ const coinsAndImplementations = await this.dexHelper.multiWrapper.aggregate(lodash_1.default.range(0, nCoins)
139
+ .map(i => ({
140
+ target: customPool.address,
141
+ callData: this.abiCoder.encodeFunctionCall(this._getCoinsABI(customPool.coinsInputType), [i.toString()]),
142
+ decodeFunction: decoders_1.addressDecode,
143
+ }))
144
+ .concat([
145
+ {
146
+ target: factoryAddress,
147
+ callData: this.ifaces.factory.encodeFunctionData('get_implementation_address', [customPool.address]),
148
+ decodeFunction: decoders_1.addressDecode,
149
+ },
150
+ ]));
151
+ const COINS = coinsAndImplementations.slice(0, -1);
152
+ const implementationAddress = coinsAndImplementations.slice(-1)[0];
153
+ const coins_decimals = (await this.dexHelper.multiWrapper.tryAggregate(true, COINS.map(c => ({
154
+ target: c,
155
+ callData: this.ifaces.erc20.encodeFunctionData('decimals', []),
156
+ decodeFunction: decoders_1.uint8ToNumber,
157
+ })))).map(r => r.returnData);
158
+ const poolConstants = {
159
+ COINS,
160
+ coins_decimals,
161
+ rate_multipliers: this._calcRateMultipliers(coins_decimals),
162
+ lpTokenAddress: customPool.lpTokenAddress,
163
+ };
164
+ let newPool;
165
+ if (Object.values(types_1.CustomImplementationNames).includes(customPool.name)) {
166
+ // We don't want custom pools to be used for pricing, unless explicitly specified
167
+ newPool = new custom_pool_polling_1.CustomBasePoolForFactory(this.logger, this.dexKey, this.dexHelper.config.data.network, this.cacheStateKey, customPool.name, implementationAddress, customPool.address, this.config.stateUpdatePeriodMs, poolIdentifier, poolConstants, poolContextConstants, customPool.liquidityApiSlug, customPool.lpTokenAddress, isLending, customPool.balancesInputType, useLending, customPool.useForPricing);
168
+ }
169
+ else {
170
+ // Use for pricing pools from factory
171
+ newPool = new custom_pool_polling_1.CustomBasePoolForFactory(this.logger, this.dexKey, this.dexHelper.config.data.network, this.cacheStateKey, customPool.name, implementationAddress, customPool.address, this.config.stateUpdatePeriodMs, poolIdentifier, poolConstants, poolContextConstants, customPool.liquidityApiSlug, customPool.lpTokenAddress, isLending, customPool.balancesInputType, useLending, true);
172
+ }
173
+ this.poolManager.initializeNewPoolForState(poolIdentifier, newPool);
174
+ if (initializeInitialState) {
175
+ await this.poolManager.initializeIndividualPollingPoolState(poolIdentifier, custom_pool_polling_1.CustomBasePoolForFactory.IS_SRC_FEE_ON_TRANSFER_SUPPORTED, blockNumber);
176
+ }
177
+ }));
175
178
  }
176
- this.poolManager.initializeNewPoolForState(poolIdentifier, newPool);
177
- if (initializeInitialState) {
178
- await this.poolManager.initializeIndividualPollingPoolState(poolIdentifier, custom_pool_polling_1.CustomBasePoolForFactory.IS_SRC_FEE_ON_TRANSFER_SUPPORTED, blockNumber);
179
+ catch (e) {
180
+ this.logger.error(`Error initializing custom polling pools for factory ${factoryAddress}: `, e);
181
+ throw e;
179
182
  }
180
183
  }));
181
184
  this.areCustomPoolsFetched = true;
@@ -188,140 +191,152 @@ class CurveV1Factory extends simple_exchange_1.SimpleExchange {
188
191
  if (this.areFactoryPoolsFetched) {
189
192
  return;
190
193
  }
194
+ if (!this.config.factoryAddresses ||
195
+ this.config.factoryAddresses.length == 0) {
196
+ this.logger.warn(`No factory address specified in configs`);
197
+ return;
198
+ }
191
199
  // There is no scenario when we need to call initialize custom pools without factory pools
192
200
  // So I put it here to not forget call, because custom pools must be initialised before factory pools
193
201
  // This function may be called multiple times, but will execute only once
194
- await this.initializeCustomPollingPools(blockNumber, initializeInitialState);
195
- const { factoryAddress } = this.config;
196
- if (!factoryAddress) {
197
- this.logger.warn(`${this.dexKey}: No factory address specified for ${this.network}`);
198
- return;
199
- }
200
- const poolCountResult = await this.dexHelper.multiWrapper.tryAggregate(true, [
201
- {
202
- target: factoryAddress,
203
- callData: this.ifaces.factory.encodeFunctionData('pool_count'),
204
- decodeFunction: decoders_1.uint256DecodeToNumber,
205
- },
206
- // This is used later to request all available implementations. In particular meta implementations
207
- {
208
- target: factoryAddress,
209
- callData: this.ifaces.factory.encodeFunctionData('base_pool_count'),
210
- decodeFunction: decoders_1.uint256DecodeToNumber,
211
- },
212
- ]);
213
- const poolCount = poolCountResult[0].returnData;
214
- const basePoolCount = poolCountResult[1].returnData;
215
- const calldataGetPoolAddresses = lodash_1.default.range(0, poolCount).map(i => ({
216
- target: factoryAddress,
217
- callData: this.ifaces.factory.encodeFunctionData('pool_list', [i]),
218
- decodeFunction: decoders_1.addressDecode,
219
- }));
220
- const calldataGetBasePoolAddresses = lodash_1.default.range(0, basePoolCount).map(i => ({
221
- target: factoryAddress,
222
- callData: this.ifaces.factory.encodeFunctionData('base_pool_list', [i]),
223
- decodeFunction: decoders_1.addressDecode,
224
- }));
225
- const allPoolAddresses = (await this.dexHelper.multiWrapper.tryAggregate(true, calldataGetPoolAddresses.concat(calldataGetBasePoolAddresses))).map(e => e.returnData);
226
- const poolAddresses = allPoolAddresses.slice(0, poolCount);
227
- const basePoolAddresses = allPoolAddresses.slice(poolCount);
228
- const customPoolAddresses = Object.values(this.config.customPools).map(customPool => customPool.address);
229
- basePoolAddresses.forEach(basePool => {
230
- if (!customPoolAddresses.includes(basePool) &&
231
- !this.config.disabledPools.has(basePool)) {
232
- this._reportForUnspecifiedCustomPool(basePool);
233
- }
234
- });
235
- let callDataFromFactoryPools = poolAddresses
236
- .map(p => [
237
- {
238
- target: factoryAddress,
239
- callData: this.ifaces.factory.encodeFunctionData('get_implementation_address', [p]),
240
- decodeFunction: decoders_1.addressDecode,
241
- },
242
- {
243
- target: factoryAddress,
244
- callData: this.ifaces.factory.encodeFunctionData('get_coins', [p]),
245
- decodeFunction: (result) => (0, decoders_1.generalDecoder)(result, ['address[4]'], new Array(4).fill(constants_1.NULL_ADDRESS), parsed => parsed[0].map((p) => p.toLowerCase())),
246
- },
247
- {
248
- target: factoryAddress,
249
- callData: this.ifaces.factory.encodeFunctionData('get_decimals', [p]),
250
- decodeFunction: (result) => (0, decoders_1.generalDecoder)(result, ['uint256[4]'], [0, 0, 0, 0], parsed => parsed[0].map((p) => Number(p.toString()))),
251
- },
252
- ])
253
- .flat();
254
- // This is divider between pools related results and implementations
255
- const factoryResultsDivider = callDataFromFactoryPools.length;
256
- // Implementations must be requested from factory, but it accepts as arg basePool address
257
- // for metaPools
258
- callDataFromFactoryPools = callDataFromFactoryPools.concat(...basePoolAddresses.map(basePoolAddress => ({
259
- target: factoryAddress,
260
- callData: this.ifaces.factory.encodeFunctionData('metapool_implementations', [basePoolAddress]),
261
- decodeFunction: (result) => (0, decoders_1.generalDecoder)(result, ['address[10]'], new Array(10).fill(constants_1.NULL_ADDRESS), parsed => parsed[0].map((p) => p.toLowerCase())),
262
- })),
263
- // To receive plain pool implementation address, you have to call plain_implementations
264
- // with two variables: N_COINS and implementations_index
265
- // N_COINS is between 2-4. Currently more than 4 coins is not supported
266
- // as for implementation index, there are only 0-9 indexes
267
- ...lodash_1.default.flattenDeep(lodash_1.default.range(2, constants_2.FACTORY_MAX_PLAIN_COINS + 1).map(coinNumber => lodash_1.default.range(constants_2.FACTORY_MAX_PLAIN_IMPLEMENTATIONS_FOR_COIN).map(implInd => ({
268
- target: factoryAddress,
269
- callData: this.ifaces.factory.encodeFunctionData('plain_implementations', [coinNumber, implInd]),
270
- decodeFunction: decoders_1.addressDecode,
271
- })))));
272
- const allResultsFromFactory = (await this.dexHelper.multiWrapper.tryAggregate(true, callDataFromFactoryPools)).map(r => r.returnData);
273
- const resultsFromFactory = allResultsFromFactory.slice(0, factoryResultsDivider);
274
- const allAvailableImplementations = lodash_1.default.flattenDeep(allResultsFromFactory.slice(factoryResultsDivider)).filter(implementation => implementation !== constants_1.NULL_ADDRESS &&
275
- !this.config.disabledImplementations.has(implementation));
276
- allAvailableImplementations.forEach(implementation => {
277
- const currentImplementation = this.config.factoryPoolImplementations[implementation];
278
- if (currentImplementation === undefined) {
279
- this._reportForUnspecifiedImplementation(implementation);
280
- }
281
- });
282
- const stateInitializePromises = [];
283
- lodash_1.default.chunk(resultsFromFactory, 3).forEach((result, i) => {
284
- if (this.config.disabledPools.has(poolAddresses[i])) {
285
- this.logger.trace(`Filtering disabled pool ${poolAddresses[i]}`);
286
- return;
287
- }
288
- let [implementationAddress, coins, coins_decimals] = result;
289
- implementationAddress = implementationAddress.toLowerCase();
290
- coins = coins.map(c => c.toLowerCase()).filter(c => c !== constants_1.NULL_ADDRESS);
291
- coins_decimals = coins_decimals.filter(cd => cd !== 0);
292
- const factoryImplementationFromConfig = this.config.factoryPoolImplementations[implementationAddress];
293
- if (factoryImplementationFromConfig === undefined &&
294
- !this.config.disabledImplementations.has(implementationAddress)) {
295
- this._reportForUnspecifiedImplementation(implementationAddress, poolAddresses[i]);
296
- return;
297
- }
298
- const factoryImplementationConstants = constants_3.default[factoryImplementationFromConfig.name];
299
- let isMeta = false;
300
- let basePoolStateFetcher;
301
- if (factoryImplementationFromConfig.basePoolAddress !== undefined) {
302
- isMeta = true;
303
- const basePoolIdentifier = this.getPoolIdentifier(factoryImplementationFromConfig.basePoolAddress, false);
304
- const basePool = this.poolManager.getPool(basePoolIdentifier, false);
305
- if (basePool === null) {
306
- this.logger.error(`${this.dexKey}_${this.dexHelper.config.data.network}: custom base pool ${basePoolIdentifier} was not initialized properly. ` +
307
- `You must call initializeCustomPollingPools before fetching factory`);
308
- return;
309
- }
310
- basePoolStateFetcher = basePool;
202
+ await this.initializeCustomPollingPools(this.config.factoryAddresses, blockNumber, initializeInitialState);
203
+ await Promise.all(this.config.factoryAddresses.map(async (factoryAddress) => {
204
+ try {
205
+ const poolCountResult = await this.dexHelper.multiWrapper.tryAggregate(true, [
206
+ {
207
+ target: factoryAddress,
208
+ callData: this.ifaces.factory.encodeFunctionData('pool_count'),
209
+ decodeFunction: decoders_1.uint256DecodeToNumber,
210
+ },
211
+ // This is used later to request all available implementations. In particular meta implementations
212
+ {
213
+ target: factoryAddress,
214
+ callData: this.ifaces.factory.encodeFunctionData('base_pool_count'),
215
+ decodeFunction: decoders_1.uint256DecodeToNumber,
216
+ },
217
+ ]);
218
+ const poolCount = poolCountResult[0].returnData;
219
+ const basePoolCount = poolCountResult[1].returnData;
220
+ const calldataGetPoolAddresses = lodash_1.default.range(0, poolCount).map(i => ({
221
+ target: factoryAddress,
222
+ callData: this.ifaces.factory.encodeFunctionData('pool_list', [i]),
223
+ decodeFunction: decoders_1.addressDecode,
224
+ }));
225
+ const calldataGetBasePoolAddresses = lodash_1.default.range(0, basePoolCount).map(i => ({
226
+ target: factoryAddress,
227
+ callData: this.ifaces.factory.encodeFunctionData('base_pool_list', [i]),
228
+ decodeFunction: decoders_1.addressDecode,
229
+ }));
230
+ const allPoolAddresses = (await this.dexHelper.multiWrapper.tryAggregate(true, calldataGetPoolAddresses.concat(calldataGetBasePoolAddresses))).map(e => e.returnData);
231
+ const poolAddresses = allPoolAddresses.slice(0, poolCount);
232
+ const basePoolAddresses = allPoolAddresses.slice(poolCount);
233
+ const customPoolAddresses = Object.values(this.config.customPools).map(customPool => customPool.address);
234
+ basePoolAddresses.forEach(basePool => {
235
+ if (!customPoolAddresses.includes(basePool) &&
236
+ !this.config.disabledPools.has(basePool)) {
237
+ this._reportForUnspecifiedCustomPool(basePool);
238
+ }
239
+ });
240
+ let callDataFromFactoryPools = poolAddresses
241
+ .map(p => [
242
+ {
243
+ target: factoryAddress,
244
+ callData: this.ifaces.factory.encodeFunctionData('get_implementation_address', [p]),
245
+ decodeFunction: decoders_1.addressDecode,
246
+ },
247
+ {
248
+ target: factoryAddress,
249
+ callData: this.ifaces.factory.encodeFunctionData('get_coins', [
250
+ p,
251
+ ]),
252
+ decodeFunction: (result) => (0, decoders_1.generalDecoder)(result, ['address[4]'], new Array(4).fill(constants_1.NULL_ADDRESS), parsed => parsed[0].map((p) => p.toLowerCase())),
253
+ },
254
+ {
255
+ target: factoryAddress,
256
+ callData: this.ifaces.factory.encodeFunctionData('get_decimals', [p]),
257
+ decodeFunction: (result) => (0, decoders_1.generalDecoder)(result, ['uint256[4]'], [0, 0, 0, 0], parsed => parsed[0].map((p) => Number(p.toString()))),
258
+ },
259
+ ])
260
+ .flat();
261
+ // This is divider between pools related results and implementations
262
+ const factoryResultsDivider = callDataFromFactoryPools.length;
263
+ // Implementations must be requested from factory, but it accepts as arg basePool address
264
+ // for metaPools
265
+ callDataFromFactoryPools = callDataFromFactoryPools.concat(...basePoolAddresses.map(basePoolAddress => ({
266
+ target: factoryAddress,
267
+ callData: this.ifaces.factory.encodeFunctionData('metapool_implementations', [basePoolAddress]),
268
+ decodeFunction: (result) => (0, decoders_1.generalDecoder)(result, ['address[10]'], new Array(10).fill(constants_1.NULL_ADDRESS), parsed => parsed[0].map((p) => p.toLowerCase())),
269
+ })),
270
+ // To receive plain pool implementation address, you have to call plain_implementations
271
+ // with two variables: N_COINS and implementations_index
272
+ // N_COINS is between 2-4. Currently more than 4 coins is not supported
273
+ // as for implementation index, there are only 0-9 indexes
274
+ ...lodash_1.default.flattenDeep(lodash_1.default.range(2, constants_2.FACTORY_MAX_PLAIN_COINS + 1).map(coinNumber => lodash_1.default.range(constants_2.FACTORY_MAX_PLAIN_IMPLEMENTATIONS_FOR_COIN).map(implInd => ({
275
+ target: factoryAddress,
276
+ callData: this.ifaces.factory.encodeFunctionData('plain_implementations', [coinNumber, implInd]),
277
+ decodeFunction: decoders_1.addressDecode,
278
+ })))));
279
+ const allResultsFromFactory = (await this.dexHelper.multiWrapper.tryAggregate(true, callDataFromFactoryPools)).map(r => r.returnData);
280
+ const resultsFromFactory = allResultsFromFactory.slice(0, factoryResultsDivider);
281
+ const allAvailableImplementations = lodash_1.default.flattenDeep(allResultsFromFactory.slice(factoryResultsDivider)).filter(implementation => implementation !== constants_1.NULL_ADDRESS &&
282
+ !this.config.disabledImplementations.has(implementation));
283
+ allAvailableImplementations.forEach(implementation => {
284
+ const currentImplementation = this.config.factoryPoolImplementations[implementation];
285
+ if (currentImplementation === undefined) {
286
+ this._reportForUnspecifiedImplementation(implementation);
287
+ }
288
+ });
289
+ const stateInitializePromises = [];
290
+ lodash_1.default.chunk(resultsFromFactory, 3).forEach((result, i) => {
291
+ if (this.config.disabledPools.has(poolAddresses[i])) {
292
+ this.logger.trace(`Filtering disabled pool ${poolAddresses[i]}`);
293
+ return;
294
+ }
295
+ let [implementationAddress, coins, coins_decimals] = result;
296
+ implementationAddress = implementationAddress.toLowerCase();
297
+ coins = coins
298
+ .map(c => c.toLowerCase())
299
+ .filter(c => c !== constants_1.NULL_ADDRESS);
300
+ coins_decimals = coins_decimals.filter(cd => cd !== 0);
301
+ const factoryImplementationFromConfig = this.config.factoryPoolImplementations[implementationAddress];
302
+ if (factoryImplementationFromConfig === undefined &&
303
+ !this.config.disabledImplementations.has(implementationAddress)) {
304
+ this._reportForUnspecifiedImplementation(implementationAddress, poolAddresses[i]);
305
+ return;
306
+ }
307
+ const factoryImplementationConstants = constants_3.default[factoryImplementationFromConfig.name];
308
+ let isMeta = false;
309
+ let basePoolStateFetcher;
310
+ if (factoryImplementationFromConfig.basePoolAddress !== undefined) {
311
+ isMeta = true;
312
+ const basePoolIdentifier = this.getPoolIdentifier(factoryImplementationFromConfig.basePoolAddress, false);
313
+ const basePool = this.poolManager.getPool(basePoolIdentifier, false);
314
+ if (basePool === null) {
315
+ this.logger.error(`${this.dexKey}_${this.dexHelper.config.data.network}: custom base pool ${basePoolIdentifier} was not initialized properly. ` +
316
+ `You must call initializeCustomPollingPools before fetching factory`);
317
+ return;
318
+ }
319
+ basePoolStateFetcher = basePool;
320
+ }
321
+ const poolConstants = {
322
+ COINS: coins,
323
+ coins_decimals,
324
+ rate_multipliers: this._calcRateMultipliers(coins_decimals),
325
+ };
326
+ const poolIdentifier = this.getPoolIdentifier(poolAddresses[i], isMeta);
327
+ const newPool = new factory_pool_polling_1.FactoryStateHandler(this.logger, this.dexKey, this.dexHelper.config.data.network, this.cacheStateKey, factoryImplementationFromConfig.name, implementationAddress.toLowerCase(), poolAddresses[i], this.config.stateUpdatePeriodMs, factoryAddress, poolIdentifier, poolConstants, factoryImplementationConstants, factoryImplementationConstants.isFeeOnTransferSupported, factoryImplementationFromConfig.liquidityApiSlug ?? '/factory', basePoolStateFetcher, factoryImplementationFromConfig.customGasCost, factoryImplementationFromConfig.isStoreRateSupported);
328
+ this.poolManager.initializeNewPool(poolIdentifier, newPool);
329
+ if (initializeInitialState) {
330
+ stateInitializePromises.push(this.poolManager.initializeIndividualPollingPoolState(poolIdentifier, factoryImplementationConstants.isFeeOnTransferSupported));
331
+ }
332
+ });
333
+ await Promise.all(stateInitializePromises);
311
334
  }
312
- const poolConstants = {
313
- COINS: coins,
314
- coins_decimals,
315
- rate_multipliers: this._calcRateMultipliers(coins_decimals),
316
- };
317
- const poolIdentifier = this.getPoolIdentifier(poolAddresses[i], isMeta);
318
- const newPool = new factory_pool_polling_1.FactoryStateHandler(this.logger, this.dexKey, this.dexHelper.config.data.network, this.cacheStateKey, factoryImplementationFromConfig.name, implementationAddress.toLowerCase(), poolAddresses[i], this.config.stateUpdatePeriodMs, factoryAddress, poolIdentifier, poolConstants, factoryImplementationConstants, factoryImplementationConstants.isFeeOnTransferSupported, basePoolStateFetcher, factoryImplementationFromConfig.customGasCost, factoryImplementationFromConfig.isStoreRateSupported);
319
- this.poolManager.initializeNewPool(poolIdentifier, newPool);
320
- if (initializeInitialState) {
321
- stateInitializePromises.push(this.poolManager.initializeIndividualPollingPoolState(poolIdentifier, factoryImplementationConstants.isFeeOnTransferSupported));
335
+ catch (e) {
336
+ this.logger.error(`Error fetching factory pools for ${factoryAddress}: `, e);
337
+ throw e;
322
338
  }
323
- });
324
- await Promise.all(stateInitializePromises);
339
+ }));
325
340
  this.areFactoryPoolsFetched = true;
326
341
  }
327
342
  getAdapters(side) {