@paraswap/dex-lib 2.23.4 → 2.24.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 (62) hide show
  1. package/build/abi/algebra/AlgebraPool.abi.json +727 -0
  2. package/build/abi/algebra/AlgebraQuoter.abi.json +138 -0
  3. package/build/abi/algebra/AlgebraStateMulticall.abi.json +801 -0
  4. package/build/config.js +2 -2
  5. package/build/dex/algebra/algebra-pool.d.ts +41 -0
  6. package/build/dex/algebra/algebra-pool.js +272 -0
  7. package/build/dex/algebra/algebra-pool.js.map +1 -0
  8. package/build/dex/algebra/algebra.d.ts +53 -0
  9. package/build/dex/algebra/algebra.js +460 -0
  10. package/build/dex/algebra/algebra.js.map +1 -0
  11. package/build/dex/algebra/config.d.ts +4 -0
  12. package/build/dex/algebra/config.js +41 -0
  13. package/build/dex/algebra/config.js.map +1 -0
  14. package/build/dex/algebra/lib/AlgebraMath.d.ts +13 -0
  15. package/build/dex/algebra/lib/AlgebraMath.js +440 -0
  16. package/build/dex/algebra/lib/AlgebraMath.js.map +1 -0
  17. package/build/dex/algebra/lib/AlgebraXUniV3.d.ts +5 -0
  18. package/build/dex/algebra/lib/AlgebraXUniV3.js +45 -0
  19. package/build/dex/algebra/lib/AlgebraXUniV3.js.map +1 -0
  20. package/build/dex/algebra/lib/Constants.d.ts +5 -0
  21. package/build/dex/algebra/lib/Constants.js +10 -0
  22. package/build/dex/algebra/lib/Constants.js.map +1 -0
  23. package/build/dex/algebra/lib/DataStorage.d.ts +19 -0
  24. package/build/dex/algebra/lib/DataStorage.js +466 -0
  25. package/build/dex/algebra/lib/DataStorage.js.map +1 -0
  26. package/build/dex/algebra/lib/DataStorageOperator.d.ts +10 -0
  27. package/build/dex/algebra/lib/DataStorageOperator.js +93 -0
  28. package/build/dex/algebra/lib/DataStorageOperator.js.map +1 -0
  29. package/build/dex/algebra/lib/Sqrt.d.ts +3 -0
  30. package/build/dex/algebra/lib/Sqrt.js +60 -0
  31. package/build/dex/algebra/lib/Sqrt.js.map +1 -0
  32. package/build/dex/algebra/lib/TickManager.d.ts +10 -0
  33. package/build/dex/algebra/lib/TickManager.js +3 -0
  34. package/build/dex/algebra/lib/TickManager.js.map +1 -0
  35. package/build/dex/algebra/types.d.ts +75 -0
  36. package/build/dex/{pancakeswap-v3 → algebra}/types.js.map +1 -1
  37. package/build/dex/algebra/utils.d.ts +4 -0
  38. package/build/dex/algebra/utils.js +60 -0
  39. package/build/dex/algebra/utils.js.map +1 -0
  40. package/build/dex/uniswap-v3/config.js +15 -0
  41. package/build/dex/uniswap-v3/config.js.map +1 -1
  42. package/package.json +1 -1
  43. package/src/config.ts +2 -2
  44. package/src/dex/uniswap-v3/config.ts +16 -0
  45. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +86 -0
  46. package/.idea/aws.xml +0 -17
  47. package/.idea/codeStyles/Project.xml +0 -19
  48. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  49. package/.idea/misc.xml +0 -6
  50. package/.idea/modules.xml +0 -8
  51. package/.idea/paraswap-dex-lib.iml +0 -9
  52. package/.idea/vcs.xml +0 -6
  53. package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
  54. package/build/dex/aave-v3/tokens/avalanche.json +0 -74
  55. package/build/dex/aave-v3/tokens/fantom.json +0 -62
  56. package/build/dex/aave-v3/tokens/optimism.json +0 -50
  57. package/build/dex/aave-v3/tokens/polygon.json +0 -116
  58. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  59. package/build/dex/solidly/forks-override/ramses.d.ts +0 -8
  60. package/build/dex/solidly/forks-override/ramses.js +0 -15
  61. package/build/dex/solidly/forks-override/ramses.js.map +0 -1
  62. /package/build/dex/{pancakeswap-v3 → algebra}/types.js +0 -0
package/build/config.js CHANGED
@@ -176,8 +176,8 @@ const baseConfigs = {
176
176
  hashFlowDisabledMMs: process.env[`HASHFLOW_DISABLED_MMS_43114`]?.split(',') || [],
177
177
  adapterAddresses: {
178
178
  AvalancheAdapter01: '0x745Ec73855CeC7249E5fF4c9DD81cc65b4D297a9',
179
- AvalancheAdapter02: '0xa003dFBA51C9e1e56C67ae445b852bdEd7aC5EEd',
180
- AvalancheBuyAdapter: '0xfa072107a2CCfE5664794282EF36400735ABB70F',
179
+ AvalancheAdapter02: '0xDCf4EE5B700e2a5Fec458e06B763A4a3E3004494',
180
+ AvalancheBuyAdapter: '0xeBF40A40CA3D4310Bf53048F48e860656e1D7C81',
181
181
  },
182
182
  uniswapV2ExchangeRouterAddress: '0x53e693c6C7FFC4446c53B205Cf513105Bf140D7b',
183
183
  rfqConfigs: {},
@@ -0,0 +1,41 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { DeepReadonly } from 'ts-essentials';
3
+ import { Address, BlockHeader, Log, Logger } from '../../types';
4
+ import { InitializeStateOptions, StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
+ import { IDexHelper } from '../../dex-helper/idex-helper';
6
+ import { PoolState } from './types';
7
+ import { Contract } from 'web3-eth-contract';
8
+ export declare class AlgebraEventPool extends StatefulEventSubscriber<PoolState> {
9
+ readonly dexHelper: IDexHelper;
10
+ readonly stateMultiContract: Contract;
11
+ readonly erc20Interface: Interface;
12
+ protected readonly factoryAddress: Address;
13
+ readonly poolInitCodeHash: string;
14
+ readonly poolDeployer: string;
15
+ handlers: {
16
+ [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: BlockHeader) => DeepReadonly<PoolState> | null;
17
+ };
18
+ logDecoder: (log: Log) => any;
19
+ addressesSubscribed: string[];
20
+ private _poolAddress?;
21
+ readonly token0: Address;
22
+ readonly token1: Address;
23
+ readonly poolIface: Interface;
24
+ constructor(dexHelper: IDexHelper, parentName: string, stateMultiContract: Contract, erc20Interface: Interface, factoryAddress: Address, token0: Address, token1: Address, logger: Logger, mapKey: string | undefined, poolInitCodeHash: string, poolDeployer: string);
25
+ get poolAddress(): Address;
26
+ set poolAddress(address: Address);
27
+ initialize(blockNumber: number, options?: InitializeStateOptions<PoolState>): Promise<void>;
28
+ protected processBlockLogs(state: DeepReadonly<PoolState>, logs: Readonly<Log>[], blockHeader: Readonly<BlockHeader>): Promise<DeepReadonly<PoolState> | null>;
29
+ protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<PoolState> | null;
30
+ private _getStateRequestCallData;
31
+ getBitmapRangeToRequest(): bigint;
32
+ generateState(blockNumber: number): Promise<Readonly<PoolState>>;
33
+ handleSwapEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
34
+ handleMintEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
35
+ handleBurnEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
36
+ handleNewFee(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
37
+ handleCollectEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
38
+ handleFlashEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
39
+ handleCommunityFee(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
40
+ private _computePoolAddress;
41
+ }
@@ -0,0 +1,272 @@
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.AlgebraEventPool = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const abi_1 = require("@ethersproject/abi");
9
+ const ts_essentials_1 = require("ts-essentials");
10
+ const utils_1 = require("../../utils");
11
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
12
+ const ethers_1 = require("ethers");
13
+ const AlgebraPool_abi_json_1 = __importDefault(require("../../abi/algebra/AlgebraPool.abi.json"));
14
+ const constants_1 = require("../uniswap-v3/constants");
15
+ const decoders_1 = require("../../lib/decoders");
16
+ const utils_2 = require("./utils");
17
+ const AlgebraMath_1 = require("./lib/AlgebraMath");
18
+ const TickBitMap_1 = require("../uniswap-v3/contract-math/TickBitMap");
19
+ const utils_3 = require("../uniswap-v3/contract-math/utils");
20
+ const Constants_1 = require("./lib/Constants");
21
+ class AlgebraEventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
22
+ constructor(dexHelper, parentName, stateMultiContract, erc20Interface, factoryAddress, token0, token1, logger, mapKey = '', poolInitCodeHash, poolDeployer) {
23
+ super(parentName, `${token0}_${token1}`, dexHelper, logger, true, mapKey);
24
+ this.dexHelper = dexHelper;
25
+ this.stateMultiContract = stateMultiContract;
26
+ this.erc20Interface = erc20Interface;
27
+ this.factoryAddress = factoryAddress;
28
+ this.poolInitCodeHash = poolInitCodeHash;
29
+ this.poolDeployer = poolDeployer;
30
+ this.handlers = {};
31
+ this.poolIface = new abi_1.Interface(AlgebraPool_abi_json_1.default);
32
+ this.token0 = token0.toLowerCase();
33
+ this.token1 = token1.toLowerCase();
34
+ this.logDecoder = (log) => this.poolIface.parseLog(log);
35
+ this.addressesSubscribed = new Array(1);
36
+ this.handlers['Fee'] = this.handleNewFee.bind(this);
37
+ this.handlers['Swap'] = this.handleSwapEvent.bind(this);
38
+ this.handlers['Mint'] = this.handleMintEvent.bind(this);
39
+ this.handlers['Burn'] = this.handleBurnEvent.bind(this);
40
+ this.handlers['Flash'] = this.handleFlashEvent.bind(this);
41
+ this.handlers['Collect'] = this.handleCollectEvent.bind(this);
42
+ this.handlers['CommunityFee'] = this.handleCommunityFee.bind(this);
43
+ }
44
+ get poolAddress() {
45
+ if (this._poolAddress === undefined) {
46
+ this._poolAddress = this._computePoolAddress(this.token0, this.token1);
47
+ }
48
+ return this._poolAddress;
49
+ }
50
+ set poolAddress(address) {
51
+ this._poolAddress = address.toLowerCase();
52
+ }
53
+ async initialize(blockNumber, options) {
54
+ await super.initialize(blockNumber, options);
55
+ }
56
+ async processBlockLogs(state, logs, blockHeader) {
57
+ const newState = await super.processBlockLogs(state, logs, blockHeader);
58
+ if (newState && !newState.isValid) {
59
+ return await this.generateState(blockHeader.number);
60
+ }
61
+ return newState;
62
+ }
63
+ processLog(state, log, blockHeader) {
64
+ try {
65
+ const event = this.logDecoder(log);
66
+ if (event.name in this.handlers) {
67
+ // Because we have observations in array which is mutable by nature, there is a
68
+ // ts compile error: https://stackoverflow.com/questions/53412934/disable-allowing-assigning-readonly-types-to-non-readonly-types
69
+ // And there is no good workaround, so turn off the type checker for this line
70
+ const _state = lodash_1.default.cloneDeep(state);
71
+ try {
72
+ const newState = this.handlers[event.name](event, _state, log, blockHeader);
73
+ return newState;
74
+ }
75
+ catch (e) {
76
+ if (e instanceof Error &&
77
+ e.message.endsWith(constants_1.OUT_OF_RANGE_ERROR_POSTFIX)) {
78
+ this.logger.warn(`${this.parentName}: Pool ${this.poolAddress} on ${this.dexHelper.config.data.network} is out of TickBitmap requested range. Re-query the state. ${JSON.stringify(event)}`, e);
79
+ }
80
+ else {
81
+ this.logger.error(`${this.parentName}: Pool ${this.poolAddress}, ` +
82
+ `network=${this.dexHelper.config.data.network}: Unexpected ` +
83
+ `error while handling event on blockNumber=${blockHeader.number}, ` +
84
+ `blockHash=${blockHeader.hash} and parentHash=${blockHeader.parentHash} for QuickSwapV3, ${JSON.stringify(event)}`, e);
85
+ }
86
+ _state.isValid = false;
87
+ return _state;
88
+ }
89
+ }
90
+ }
91
+ catch (e) {
92
+ (0, utils_1.catchParseLogError)(e, this.logger);
93
+ }
94
+ return null; // ignore unrecognized event
95
+ }
96
+ _getStateRequestCallData() {
97
+ const callData = [
98
+ {
99
+ target: this.token0,
100
+ callData: this.erc20Interface.encodeFunctionData('balanceOf', [
101
+ this.poolAddress,
102
+ ]),
103
+ decodeFunction: decoders_1.uint256ToBigInt,
104
+ },
105
+ {
106
+ target: this.token1,
107
+ callData: this.erc20Interface.encodeFunctionData('balanceOf', [
108
+ this.poolAddress,
109
+ ]),
110
+ decodeFunction: decoders_1.uint256ToBigInt,
111
+ },
112
+ {
113
+ target: this.stateMultiContract.options.address,
114
+ callData: this.stateMultiContract.methods
115
+ .getFullStateWithRelativeBitmaps(this.factoryAddress, this.token0, this.token1, this.getBitmapRangeToRequest(), this.getBitmapRangeToRequest())
116
+ .encodeABI(),
117
+ decodeFunction: utils_2.decodeStateMultiCallResultWithRelativeBitmaps,
118
+ },
119
+ ];
120
+ return callData;
121
+ }
122
+ getBitmapRangeToRequest() {
123
+ return constants_1.TICK_BITMAP_TO_USE + constants_1.TICK_BITMAP_BUFFER;
124
+ }
125
+ async generateState(blockNumber) {
126
+ const callData = this._getStateRequestCallData();
127
+ const [resBalance0, resBalance1, resState] = await this.dexHelper.multiWrapper.tryAggregate(false, callData, blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
128
+ (0, ts_essentials_1.assert)(resState.success, 'Pool does not exist');
129
+ const [balance0, balance1, _state] = [
130
+ resBalance0.returnData,
131
+ resBalance1.returnData,
132
+ resState.returnData,
133
+ ];
134
+ const tickBitmap = {};
135
+ const ticks = {};
136
+ (0, utils_3._reduceTickBitmap)(tickBitmap, _state.tickBitmap);
137
+ (0, utils_3._reduceTicks)(ticks, _state.ticks);
138
+ const globalState = {
139
+ communityFeeToken0: (0, utils_1.bigIntify)(_state.globalState.communityFeeToken0),
140
+ communityFeeToken1: (0, utils_1.bigIntify)(_state.globalState.communityFeeToken1),
141
+ fee: (0, utils_1.bigIntify)(_state.globalState.fee),
142
+ price: (0, utils_1.bigIntify)(_state.globalState.price),
143
+ tick: (0, utils_1.bigIntify)(_state.globalState.tick),
144
+ };
145
+ const currentTick = globalState.tick;
146
+ const startTickBitmap = TickBitMap_1.TickBitMap.position(BigInt(currentTick) / Constants_1.Constants.TICK_SPACING)[0];
147
+ return {
148
+ pool: _state.pool,
149
+ blockTimestamp: (0, utils_1.bigIntify)(_state.blockTimestamp),
150
+ globalState,
151
+ liquidity: (0, utils_1.bigIntify)(_state.liquidity),
152
+ tickSpacing: Constants_1.Constants.TICK_SPACING,
153
+ maxLiquidityPerTick: Constants_1.Constants.MAX_LIQUIDITY_PER_TICK,
154
+ tickBitmap,
155
+ ticks,
156
+ startTickBitmap,
157
+ isValid: true,
158
+ balance0,
159
+ balance1,
160
+ };
161
+ }
162
+ handleSwapEvent(event, pool, log, blockHeader) {
163
+ const newSqrtPriceX96 = (0, utils_1.bigIntify)(event.args.price);
164
+ const amount0 = (0, utils_1.bigIntify)(event.args.amount0);
165
+ const amount1 = (0, utils_1.bigIntify)(event.args.amount1);
166
+ const newTick = (0, utils_1.bigIntify)(event.args.tick);
167
+ const newLiquidity = (0, utils_1.bigIntify)(event.args.liquidity);
168
+ pool.blockTimestamp = (0, utils_1.bigIntify)(blockHeader.timestamp);
169
+ if (amount0 <= 0n && amount1 <= 0n) {
170
+ this.logger.error(`${this.parentName}: amount0 <= 0n && amount1 <= 0n for ` +
171
+ `${this.poolAddress} and ${blockHeader.number}. Check why it happened`);
172
+ pool.isValid = false;
173
+ return pool;
174
+ }
175
+ else {
176
+ const zeroForOne = amount0 > 0n;
177
+ const [, , , , , communityFee] = AlgebraMath_1.AlgebraMath._calculateSwapAndLock(pool, zeroForOne, newSqrtPriceX96, newTick, newLiquidity);
178
+ if (zeroForOne) {
179
+ if (amount1 < 0n) {
180
+ pool.balance1 -= BigInt.asUintN(256, -amount1);
181
+ }
182
+ else {
183
+ this.logger.error(`In swapEvent for pool ${pool.pool} received incorrect values ${zeroForOne} and ${amount1}`);
184
+ pool.isValid = false;
185
+ }
186
+ // This is not correct fully, because pool may get more tokens then it needs, but
187
+ // it is not accounted in internal state, it should be good enough
188
+ pool.balance0 += BigInt.asUintN(256, amount0);
189
+ }
190
+ else {
191
+ if (amount0 < 0n) {
192
+ pool.balance0 -= BigInt.asUintN(256, -amount0);
193
+ }
194
+ else {
195
+ this.logger.error(`In swapEvent for pool ${pool.pool} received incorrect values ${zeroForOne} and ${amount0}`);
196
+ pool.isValid = false;
197
+ }
198
+ pool.balance1 += BigInt.asUintN(256, amount1);
199
+ }
200
+ if (communityFee > 0n) {
201
+ // _payCommunityFee
202
+ if (zeroForOne) {
203
+ pool.balance0 -= communityFee;
204
+ }
205
+ else {
206
+ pool.balance1 -= communityFee;
207
+ }
208
+ }
209
+ return pool;
210
+ }
211
+ }
212
+ handleMintEvent(event, pool, log, blockHeader) {
213
+ const bottomTick = (0, utils_1.bigIntify)(event.args.bottomTick);
214
+ const topTick = (0, utils_1.bigIntify)(event.args.topTick);
215
+ const liquidityActual = (0, utils_1.bigIntify)(event.args.liquidityAmount);
216
+ const amount0 = (0, utils_1.bigIntify)(event.args.amount0);
217
+ const amount1 = (0, utils_1.bigIntify)(event.args.amount1);
218
+ pool.blockTimestamp = (0, utils_1.bigIntify)(blockHeader.timestamp);
219
+ AlgebraMath_1.AlgebraMath._updatePositionTicksAndFees(pool, bottomTick, topTick, liquidityActual);
220
+ pool.balance0 += amount0;
221
+ pool.balance1 += amount1;
222
+ return pool;
223
+ }
224
+ handleBurnEvent(event, pool, log, blockHeader) {
225
+ const bottomTick = (0, utils_1.bigIntify)(event.args.bottomTick);
226
+ const topTick = (0, utils_1.bigIntify)(event.args.topTick);
227
+ const amount = (0, utils_1.bigIntify)(event.args.liquidityAmount);
228
+ pool.blockTimestamp = (0, utils_1.bigIntify)(blockHeader.timestamp);
229
+ AlgebraMath_1.AlgebraMath._updatePositionTicksAndFees(pool, bottomTick, topTick, -BigInt.asIntN(128, BigInt.asIntN(256, amount)));
230
+ // no balance change
231
+ return pool;
232
+ }
233
+ handleNewFee(event, pool, log, blockHeader) {
234
+ const fee = (0, utils_1.bigIntify)(event.args.fee);
235
+ pool.globalState.fee = fee;
236
+ pool.blockTimestamp = (0, utils_1.bigIntify)(blockHeader.timestamp);
237
+ return pool;
238
+ }
239
+ handleCollectEvent(event, pool, log, blockHeader) {
240
+ const amount0 = (0, utils_1.bigIntify)(event.args.amount0);
241
+ const amount1 = (0, utils_1.bigIntify)(event.args.amount1);
242
+ pool.balance0 -= amount0;
243
+ pool.balance1 -= amount1;
244
+ pool.blockTimestamp = (0, utils_1.bigIntify)(blockHeader.timestamp);
245
+ return pool;
246
+ }
247
+ handleFlashEvent(event, pool, log, blockHeader) {
248
+ const paid0 = (0, utils_1.bigIntify)(event.args.paid0);
249
+ const paid1 = (0, utils_1.bigIntify)(event.args.paid1);
250
+ pool.balance0 += paid0;
251
+ pool.balance1 += paid1;
252
+ pool.blockTimestamp = (0, utils_1.bigIntify)(blockHeader.timestamp);
253
+ return pool;
254
+ }
255
+ handleCommunityFee(event, pool, log, blockHeader) {
256
+ const communityFeeToken0 = (0, utils_1.bigIntify)(event.ags.communityFee0New);
257
+ const communityFeeToken1 = (0, utils_1.bigIntify)(event.ags.communityFee1New);
258
+ pool.globalState.communityFeeToken0 = communityFeeToken0;
259
+ pool.globalState.communityFeeToken1 = communityFeeToken1;
260
+ pool.blockTimestamp = (0, utils_1.bigIntify)(blockHeader.timestamp);
261
+ return pool;
262
+ }
263
+ _computePoolAddress(token0, token1) {
264
+ // https://github.com/Uniswap/v3-periphery/blob/main/contracts/libraries/PoolAddress.sol
265
+ if (token0 > token1)
266
+ [token0, token1] = [token1, token0];
267
+ const encodedKey = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address'], [token0, token1]));
268
+ return ethers_1.ethers.utils.getCreate2Address(this.poolDeployer, encodedKey, this.poolInitCodeHash);
269
+ }
270
+ }
271
+ exports.AlgebraEventPool = AlgebraEventPool;
272
+ //# sourceMappingURL=algebra-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"algebra-pool.js","sourceRoot":"","sources":["../../../src/dex/algebra/algebra-pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /// <reference types="node" />
2
+ import { Token, Address, ExchangePrices, PoolPrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger } from '../../types';
3
+ import { SwapSide, Network } from '../../constants';
4
+ import { IDex } from '../../dex/idex';
5
+ import { IDexHelper } from '../../dex-helper/idex-helper';
6
+ import { AlgebraData, DexParams } from './types';
7
+ import { SimpleExchange } from '../simple-exchange';
8
+ import { AlgebraEventPool } from './algebra-pool';
9
+ import { Interface } from 'ethers/lib/utils';
10
+ export declare class Algebra extends SimpleExchange implements IDex<AlgebraData> {
11
+ protected network: Network;
12
+ protected dexHelper: IDexHelper;
13
+ protected adapters: import("../../types").AdapterMappings;
14
+ readonly routerIface: Interface;
15
+ readonly quoterIface: Interface;
16
+ protected config: DexParams;
17
+ readonly isFeeOnTransferSupported: boolean;
18
+ protected eventPools: Record<string, AlgebraEventPool | null>;
19
+ readonly hasConstantPriceLargeAmounts = false;
20
+ readonly needWrapNative = true;
21
+ intervalTask?: NodeJS.Timeout;
22
+ static dexKeysWithNetwork: {
23
+ key: string;
24
+ networks: Network[];
25
+ }[];
26
+ logger: Logger;
27
+ private uniswapMulti;
28
+ private stateMultiContract;
29
+ private notExistingPoolSetKey;
30
+ constructor(network: Network, dexKey: string, dexHelper: IDexHelper, adapters?: import("../../types").AdapterMappings, routerIface?: Interface, // same abi as uniswapV3
31
+ quoterIface?: Interface, config?: DexParams);
32
+ getAdapters(side: SwapSide): {
33
+ name: string;
34
+ index: number;
35
+ }[] | null;
36
+ getPoolIdentifier(srcAddress: Address, destAddress: Address): string;
37
+ initializePricing(blockNumber: number): Promise<void>;
38
+ getPool(srcAddress: Address, destAddress: Address, blockNumber: number): Promise<AlgebraEventPool | null>;
39
+ addMasterPool(poolKey: string, blockNumber: number): Promise<boolean>;
40
+ getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
41
+ getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<AlgebraData>>;
42
+ getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: AlgebraData, side: SwapSide): AdapterExchangeParam;
43
+ getCalldataGasCost(poolPrices: PoolPrices<AlgebraData>): number | number[];
44
+ getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: AlgebraData, side: SwapSide): Promise<SimpleExchangeParam>;
45
+ getTopPoolsForToken(tokenAddress: Address, limit: number): Promise<PoolLiquidity[]>;
46
+ private _getLoweredAddresses;
47
+ private _sortTokens;
48
+ private _toLowerForAllConfigAddresses;
49
+ private _getOutputs;
50
+ private _querySubgraph;
51
+ private _encodePath;
52
+ releaseResources(): void;
53
+ }