@paraswap/dex-lib 2.42.30 → 2.42.31

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 (83) hide show
  1. package/build/abi/smardex/smardex-factory.json +185 -0
  2. package/build/abi/smardex/smardex-pool.json +578 -0
  3. package/build/abi/smardex/smardex-router.json +648 -0
  4. package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -0
  5. package/build/abi/trader-joe-v2_1/PairABI.json +1493 -0
  6. package/build/abi/trader-joe-v2_1/RouterABI.json +1489 -0
  7. package/build/abi/wombat/pool-v2.json +1289 -0
  8. package/build/abi/wombat/pool-v3.json +2013 -0
  9. package/build/dex/index.js +2 -2
  10. package/build/dex/index.js.map +1 -1
  11. package/build/dex/smardex/subgraph-queries.d.ts +1 -0
  12. package/build/dex/smardex/subgraph-queries.js +17 -0
  13. package/build/dex/smardex/subgraph-queries.js.map +1 -0
  14. package/build/dex/smardex/usd-reserves.d.ts +23 -0
  15. package/build/dex/smardex/usd-reserves.js +86 -0
  16. package/build/dex/smardex/usd-reserves.js.map +1 -0
  17. package/build/dex/trader-joe-v2-1-2/config.d.ts +4 -0
  18. package/build/dex/trader-joe-v2-1-2/config.js +43 -0
  19. package/build/dex/trader-joe-v2-1-2/config.js.map +1 -0
  20. package/build/dex/trader-joe-v2-1-2/constants.d.ts +17 -0
  21. package/build/dex/trader-joe-v2-1-2/constants.js +19 -0
  22. package/build/dex/trader-joe-v2-1-2/constants.js.map +1 -0
  23. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +60 -0
  24. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +199 -0
  25. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +1 -0
  26. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +49 -0
  27. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +269 -0
  28. package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +1 -0
  29. package/build/dex/trader-joe-v2-1-2/types.d.ts +81 -0
  30. package/build/dex/trader-joe-v2-1-2/types.js +9 -0
  31. package/build/dex/trader-joe-v2-1-2/types.js.map +1 -0
  32. package/build/dex/trader-joe-v2_1/config.d.ts +4 -0
  33. package/build/dex/trader-joe-v2_1/config.js +43 -0
  34. package/build/dex/trader-joe-v2_1/config.js.map +1 -0
  35. package/build/dex/trader-joe-v2_1/constants.d.ts +16 -0
  36. package/build/dex/trader-joe-v2_1/constants.js +18 -0
  37. package/build/dex/trader-joe-v2_1/constants.js.map +1 -0
  38. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
  39. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +384 -0
  40. package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +1 -0
  41. package/build/dex/trader-joe-v2_1/types.d.ts +39 -0
  42. package/build/dex/trader-joe-v2_1/types.js +3 -0
  43. package/build/dex/trader-joe-v2_1/types.js.map +1 -0
  44. package/build/dex/wombat/utils.d.ts +1 -0
  45. package/build/dex/wombat/utils.js +14 -1
  46. package/build/dex/wombat/utils.js.map +1 -1
  47. package/build/dex/wombat/wombat-bmw.d.ts +2 -2
  48. package/build/dex/wombat/wombat-bmw.js +8 -25
  49. package/build/dex/wombat/wombat-bmw.js.map +1 -1
  50. package/build/dex/wombat/wombat-pool-poller.d.ts +22 -0
  51. package/build/dex/wombat/wombat-pool-poller.js +164 -0
  52. package/build/dex/wombat/wombat-pool-poller.js.map +1 -0
  53. package/build/dex/wombat/wombat-pool.d.ts +51 -17
  54. package/build/dex/wombat/wombat-pool.js +398 -112
  55. package/build/dex/wombat/wombat-pool.js.map +1 -1
  56. package/build/dex/wombat/wombat.d.ts +1 -1
  57. package/build/dex/wombat/wombat.js +12 -18
  58. package/build/dex/wombat/wombat.js.map +1 -1
  59. package/package.json +1 -1
  60. package/src/abi/wombat/pool-v3.json +2013 -0
  61. package/src/dex/camelot/camelot-pool-discovery.test.ts +149 -0
  62. package/src/dex/index.ts +2 -2
  63. package/src/dex/wombat/utils.ts +20 -0
  64. package/src/dex/wombat/wombat-bmw.ts +8 -31
  65. package/src/dex/wombat/wombat-e2e.test.ts +13 -1
  66. package/src/dex/wombat/wombat-events.test.ts +147 -0
  67. package/src/dex/wombat/wombat-integration.test.ts +70 -111
  68. package/src/dex/wombat/wombat-pool.ts +623 -171
  69. package/src/dex/wombat/wombat.ts +13 -23
  70. package/tests/constants-e2e.ts +11 -1
  71. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  72. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  73. package/build/dex/algebra/algebra-pool.d.ts +0 -46
  74. package/build/dex/algebra/algebra-pool.js +0 -336
  75. package/build/dex/algebra/algebra-pool.js.map +0 -1
  76. package/build/dex/quickswap/camelot-v3.d.ts +0 -6
  77. package/build/dex/quickswap/camelot-v3.js +0 -19
  78. package/build/dex/quickswap/camelot-v3.js.map +0 -1
  79. package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
  80. package/build/dex/quickswap/zyberswap-v3.js +0 -19
  81. package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
  82. package/build/dex/uniswap-v2/rebase-tokens.json +0 -7
  83. /package/src/abi/wombat/{pool.json → pool-v2.json} +0 -0
@@ -0,0 +1,384 @@
1
+ "use strict";
2
+ // import { Network, SwapSide } from '../../constants';
3
+ // import {
4
+ // AdapterExchangeParam,
5
+ // Address,
6
+ // ExchangePrices,
7
+ // Logger,
8
+ // PoolPrices,
9
+ // SimpleExchangeParam,
10
+ // Token,
11
+ // } from '../../types';
12
+ // import { IDex, IDexTxBuilder } from '../idex';
13
+ // import { IDexHelper } from '../../dex-helper';
14
+ // import {
15
+ // getLocalDeadlineAsFriendlyPlaceholder,
16
+ // SimpleExchange,
17
+ // } from '../simple-exchange';
18
+ // import { NumberAsString } from '@paraswap/core';
19
+ // import { AsyncOrSync } from 'ts-essentials';
20
+ // import { Interface, JsonFragment } from '@ethersproject/abi';
21
+ // import TraderJoeV21RouterABI from '../../abi/TraderJoeV21Router.json';
22
+ // import { getBigIntPow, getDexKeysWithNetwork, interpolate } from '../../utils';
23
+ // import { Adapters, TraderJoeV2_1Config } from './config';
24
+ // // import * as CALLDATA_GAS_COST from '../calldata-gas-cost';
25
+ // import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
26
+ // import {
27
+ // TRADER_JOE_V2_CHUNKS,
28
+ // TRADER_JOE_V2_QUOTE_GASLIMIT,
29
+ // } from './constants';
30
+ // import { LBPairsAvailable } from './types';
31
+ // type RouterPath = [
32
+ // pairBinSteps: NumberAsString[],
33
+ // versions: NumberAsString[],
34
+ // tokenPath: Address[],
35
+ // ];
36
+ // type TraderJoeV2RouterSellParams = [
37
+ // _amountIn: NumberAsString,
38
+ // _amountOutMin: NumberAsString,
39
+ // _routerPath: RouterPath,
40
+ // to: Address,
41
+ // _deadline: string,
42
+ // ];
43
+ // type TraderJoeV2RouterBuyParams = [
44
+ // _amountOut: NumberAsString,
45
+ // _amountInMax: NumberAsString,
46
+ // _routerPath: RouterPath,
47
+ // to: Address,
48
+ // _deadline: string,
49
+ // ];
50
+ // type TraderJoeV2RouterParam =
51
+ // | TraderJoeV2RouterSellParams
52
+ // | TraderJoeV2RouterBuyParams;
53
+ // export type TraderJoeV2Data = {
54
+ // tokenIn: string; // redundant
55
+ // tokenOut: string; // redundant
56
+ // binStep: string;
57
+ // };
58
+ // enum TraderJoeV2RouterFunctions {
59
+ // swapExactTokensForTokens = 'swapExactTokensForTokens',
60
+ // swapTokensForExactTokens = 'swapTokensForExactTokens',
61
+ // }
62
+ // export class TraderJoeV21
63
+ // extends SimpleExchange
64
+ // implements IDex<TraderJoeV2Data, TraderJoeV2RouterParam>
65
+ // {
66
+ // availablePools: { [key: string]: string } = {};
67
+ // // pairs: { [key: string]: SmardexPair } = {};
68
+ // // factory: Contract;
69
+ // // routerInterface: Interface;
70
+ // exchangeRouterInterface: Interface;
71
+ // factoryAddress: string;
72
+ // routerAddress: string;
73
+ // protected subgraphURL: string | undefined;
74
+ // logger: Logger;
75
+ // needWrapNative = true;
76
+ // public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
77
+ // getDexKeysWithNetwork(TraderJoeV2_1Config);
78
+ // constructor(
79
+ // protected network: Network,
80
+ // dexKey: string,
81
+ // public dexHelper: IDexHelper,
82
+ // protected adapters = Adapters[network] || {},
83
+ // ) {
84
+ // super(dexHelper, dexKey);
85
+ // this.logger = dexHelper.getLogger(dexKey);
86
+ // const config = TraderJoeV2_1Config[dexKey];
87
+ // this.routerAddress = config[network].routerAddress!;
88
+ // this.factoryAddress = config[network].factoryAddress;
89
+ // // const factoryAbi = this.isLayer1()
90
+ // // ? SmardexFactoryLayerOneABI
91
+ // // : SmardexFactoryLayerTwoABI;
92
+ // // this.factory = new dexHelper.web3Provider.eth.Contract(
93
+ // // factoryAbi as any,
94
+ // // this.factoryAddress,
95
+ // // );
96
+ // // this.routerInterface = new Interface(ParaSwapABI);
97
+ // this.exchangeRouterInterface = new Interface(
98
+ // TraderJoeV21RouterABI as JsonFragment[],
99
+ // );
100
+ // // super(dexHelper, 'traderjoev2.1');
101
+ // // this.routerAddress =
102
+ // // TraderJoeV2_1Config[dexHelper.config.data.network].routerAddress;
103
+ // // // this.routerAddress =
104
+ // // // TRADERJOE_V2_1_ROUTER_ADDRESS[dexHelper.config.data.network];
105
+ // // this.exchangeRouterInterface = new Interface(
106
+ // // TraderJoeV21RouterABI as JsonFragment[],
107
+ // // );
108
+ // }
109
+ // getAdapterParam(
110
+ // srcToken: Address,
111
+ // destToken: Address,
112
+ // srcAmount: NumberAsString,
113
+ // destAmount: NumberAsString,
114
+ // data: TraderJoeV2Data,
115
+ // side: SwapSide,
116
+ // ): AdapterExchangeParam {
117
+ // let payload = this.abiCoder.encodeParameters(
118
+ // ['tuple(tuple(uint256[],uint8[],address[]),uint256)'],
119
+ // [
120
+ // [
121
+ // [
122
+ // [
123
+ // data.binStep, // _pairBinSteps: uint256[]
124
+ // ],
125
+ // [
126
+ // 2, // _versions: uint8[]
127
+ // ],
128
+ // [
129
+ // data.tokenIn,
130
+ // data.tokenOut, // _tokenPath: address[]
131
+ // ],
132
+ // ],
133
+ // getLocalDeadlineAsFriendlyPlaceholder(), // _deadline: uint256
134
+ // ],
135
+ // ],
136
+ // );
137
+ // return {
138
+ // targetExchange: this.routerAddress,
139
+ // payload,
140
+ // networkFee: '0',
141
+ // };
142
+ // }
143
+ // getSimpleParam(
144
+ // srcToken: Address,
145
+ // destToken: Address,
146
+ // srcAmount: NumberAsString,
147
+ // destAmount: NumberAsString,
148
+ // data: TraderJoeV2Data,
149
+ // side: SwapSide,
150
+ // ): AsyncOrSync<SimpleExchangeParam> {
151
+ // const swapFunction =
152
+ // side === SwapSide.SELL
153
+ // ? TraderJoeV2RouterFunctions.swapExactTokensForTokens
154
+ // : TraderJoeV2RouterFunctions.swapTokensForExactTokens;
155
+ // const swapFunctionParams: TraderJoeV2RouterParam =
156
+ // side === SwapSide.SELL
157
+ // ? [
158
+ // srcAmount,
159
+ // destAmount,
160
+ // [[data.binStep], ['2'], [srcToken, destToken]],
161
+ // this.augustusAddress,
162
+ // getLocalDeadlineAsFriendlyPlaceholder(),
163
+ // ]
164
+ // : [
165
+ // destAmount,
166
+ // srcAmount,
167
+ // [[data.binStep], ['2'], [srcToken, destToken]],
168
+ // this.augustusAddress,
169
+ // getLocalDeadlineAsFriendlyPlaceholder(),
170
+ // ];
171
+ // const swapData = this.exchangeRouterInterface.encodeFunctionData(
172
+ // swapFunction,
173
+ // swapFunctionParams,
174
+ // );
175
+ // return this.buildSimpleParamWithoutWETHConversion(
176
+ // srcToken,
177
+ // srcAmount,
178
+ // destToken,
179
+ // destAmount,
180
+ // swapData,
181
+ // this.routerAddress,
182
+ // );
183
+ // }
184
+ // async getPricesVolume(
185
+ // from: Token,
186
+ // to: Token,
187
+ // amounts: bigint[],
188
+ // side: SwapSide,
189
+ // routeID: number,
190
+ // usedPools: { [poolIdentifier: string]: number } | null,
191
+ // ): Promise<null | ExchangePrices<TraderJoeV2Data>> {
192
+ // try {
193
+ // const _from = this.dexHelper.config.wrapETH(from);
194
+ // const _to = this.dexHelper.config.wrapETH(to);
195
+ // const pools = await this.getPools(_from, _to);
196
+ // if (!pools || !pools.length) return null;
197
+ // const filteredPools = !usedPools
198
+ // ? pools
199
+ // : pools.filter(p => usedPools[this.getPoolIdentifier(p)] === routeID);
200
+ // if (!filteredPools.length) return null;
201
+ // const unitVolume = getBigIntPow(
202
+ // (side === SwapSide.SELL ? _from : _to).decimals,
203
+ // );
204
+ // const chunks = amounts.length - 1;
205
+ // const _width = Math.floor(chunks / TRADER_JOE_V2_CHUNKS);
206
+ // const _amounts = [unitVolume].concat(
207
+ // Array.from(Array(TRADER_JOE_V2_CHUNKS).keys()).map(
208
+ // i => amounts[(i + 1) * _width],
209
+ // ),
210
+ // );
211
+ // const calldata = filteredPools.flatMap(pool =>
212
+ // _amounts.map(_amount => ({
213
+ // target: this.routerAddress,
214
+ // gasLimit: TRADER_JOE_V2_QUOTE_GASLIMIT,
215
+ // callData: (side === SwapSide.SELL
216
+ // ? this.router.methods.getSwapOut(
217
+ // pool.LBPair,
218
+ // _amount.toString(),
219
+ // _from.address === pool.tokenX,
220
+ // )
221
+ // : this.router.methods.getSwapIn(
222
+ // pool.LBPair,
223
+ // _amount.toString(),
224
+ // _from.address === pool.tokenX,
225
+ // )
226
+ // ).encodeABI(),
227
+ // })),
228
+ // );
229
+ // const data = await this.uniswapMulti.methods.multicall(calldata).call();
230
+ // const quoteIndex = side === SwapSide.SELL ? 1 : 0;
231
+ // const quoteLeftIndex = side === SwapSide.SELL ? 0 : 1;
232
+ // const prices = filteredPools.map((pool, i) => {
233
+ // const rates = _amounts.map((_, j) => {
234
+ // if (!data.returnData[i * _amounts.length + j].success) {
235
+ // return 0n;
236
+ // }
237
+ // const decoded = defaultAbiCoder.decode(
238
+ // // amountInLeft amountOut fee
239
+ // ['uint128', 'uint128', 'uint128'],
240
+ // data.returnData[i * _amounts.length + j].returnData,
241
+ // );
242
+ // if (BigInt(decoded[quoteLeftIndex]).valueOf() !== 0n) {
243
+ // return BigInt(0);
244
+ // }
245
+ // return BigInt(decoded[quoteIndex].toString());
246
+ // });
247
+ // // index of pools, isolate pool
248
+ // const unit: bigint = rates[0];
249
+ // const prices = interpolate(
250
+ // _amounts.slice(1),
251
+ // rates.slice(1),
252
+ // amounts,
253
+ // side,
254
+ // );
255
+ // return {
256
+ // prices,
257
+ // unit,
258
+ // data: {
259
+ // tokenIn: _from.address, // redundant, fix by contract change
260
+ // tokenOut: _to.address, // same
261
+ // binStep: pool.binStep.toString(),
262
+ // },
263
+ // poolIdentifier: this.getPoolIdentifier(pool),
264
+ // exchange: this.routerAddress,
265
+ // gasCost: TRADER_JOE_V2_QUOTE_GASLIMIT,
266
+ // poolAddresses: [pool.LBPair],
267
+ // };
268
+ // });
269
+ // return prices;
270
+ // } catch (e) {
271
+ // this.logger.error(
272
+ // `Error_getPrices: ${this.dexKey} for pair (${
273
+ // from.symbol || from.address
274
+ // }, ${to.symbol || to.address}) and side=${side}:`,
275
+ // e,
276
+ // );
277
+ // return null;
278
+ // }
279
+ // }
280
+ // private async getPools(
281
+ // tokenA: Token,
282
+ // tokenB: Token,
283
+ // ): Promise<LBPairsAvailable[] | undefined> {
284
+ // try {
285
+ // const cacheKey = this.computeCacheKey(tokenA.address, tokenB.address);
286
+ // // TODO: Improve
287
+ // const poolsInCache = await this.dexHelper.cache.rawget(cacheKey);
288
+ // if (!!poolsInCache) {
289
+ // return JSON.parse(poolsInCache);
290
+ // }
291
+ // // warning: order between tokenX and tokenY is not guranteed on LBPairs
292
+ // const [tokenX, tokenY] = this._sortTokens(tokenA.address, tokenB.address);
293
+ // const pools: LBPairsAvailable[] =
294
+ // (await this.factory.methods.getAllLBPairs(tokenX, tokenY).call()) || [];
295
+ // if (!pools.length) {
296
+ // await this.dexHelper.cache.setex(cacheKey, EMPTY_POOL_CACHE_TTL, '[]');
297
+ // return [];
298
+ // }
299
+ // const getTokenXCallData = pools.map(pool => ({
300
+ // target: pool.LBPair,
301
+ // gasLimit: TRADER_JOE_V2_QUOTE_GASLIMIT,
302
+ // callData: this.pair.methods.getTokenX().encodeABI(),
303
+ // }));
304
+ // const data = await this.uniswapMulti.methods
305
+ // .multicall(getTokenXCallData)
306
+ // .call();
307
+ // const _pools = pools.map((pool, i) => {
308
+ // const decodedTokenX = defaultAbiCoder
309
+ // .decode(['address'], data.returnData[i].returnData)[0]
310
+ // .toString()
311
+ // .toLowerCase();
312
+ // return {
313
+ // ...pool,
314
+ // tokenX: decodedTokenX,
315
+ // };
316
+ // });
317
+ // await RedisWrapper.setex(
318
+ // cacheKey,
319
+ // POPULATED_POOL_CACHE_TTL,
320
+ // JSON.stringify(_pools),
321
+ // );
322
+ // return _pools;
323
+ // } catch (e) {
324
+ // logger.error(
325
+ // `${EXCHANGES.TRADERJOE_V2_1} Error 'poolByPair' reading from factory for pair: ${tokenA.address} and ${tokenA.address}:`,
326
+ // e,
327
+ // );
328
+ // return;
329
+ // }
330
+ // }
331
+ // protected getPoolIdentifier(pool: LBPairsAvailable) {
332
+ // return `${EXCHANGES.TRADERJOE_V2_1}_${pool.LBPair}`;
333
+ // }
334
+ // // FIXME
335
+ // getCalldataGasCost(
336
+ // poolPrices: PoolPrices<TraderJoeV2Data>,
337
+ // ): number | number[] {
338
+ // return (
339
+ // CALLDATA_GAS_COST.DEX_OVERHEAD +
340
+ // CALLDATA_GAS_COST.LENGTH_SMALL +
341
+ // // ParentStruct header
342
+ // CALLDATA_GAS_COST.OFFSET_SMALL +
343
+ // // ParentStruct -> path header
344
+ // CALLDATA_GAS_COST.OFFSET_SMALL +
345
+ // // ParentStruct -> deadline
346
+ // CALLDATA_GAS_COST.TIMESTAMP +
347
+ // // ParentStruct -> path (20+3+20 = 43 = 32+11 bytes)
348
+ // CALLDATA_GAS_COST.LENGTH_SMALL +
349
+ // CALLDATA_GAS_COST.FULL_WORD +
350
+ // CALLDATA_GAS_COST.wordNonZeroBytes(11)
351
+ // );
352
+ // }
353
+ // async getPoolIdentifiers(
354
+ // _from: Token,
355
+ // _to: Token,
356
+ // side: SwapSide,
357
+ // blockNumber: number,
358
+ // ): Promise<string[]> {
359
+ // const from = this.dexHelper.config.wrapETH(_from);
360
+ // const to = this.dexHelper.config.wrapETH(_to);
361
+ // if (from.address.toLowerCase() === to.address.toLowerCase()) {
362
+ // return [];
363
+ // }
364
+ // const tokenAddress = [from.address.toLowerCase(), to.address.toLowerCase()]
365
+ // .sort((a, b) => (a > b ? 1 : -1))
366
+ // .join('_');
367
+ // const poolIdentifier = `${this.dexKey}_${tokenAddress}`;
368
+ // return [poolIdentifier];
369
+ // }
370
+ // protected computeCacheKey(from: Address, to: Address): string {
371
+ // return `${this.dexKey}_${this.network}_${this._sortTokens(from, to).join(
372
+ // '_',
373
+ // )}_2`;
374
+ // }
375
+ // private _sortTokens(srcAddress: Address, destAddress: Address) {
376
+ // return [srcAddress.toLowerCase(), destAddress.toLowerCase()].sort((a, b) =>
377
+ // a < b ? -1 : 1,
378
+ // );
379
+ // }
380
+ // // protected getPoolIdentifier(pool: LBPairsAvailable) {
381
+ // // return `${EXCHANGES.TRADERJOE_V2_1}_${pool.LBPair}`;
382
+ // // }
383
+ // }
384
+ //# sourceMappingURL=trader-joe-v2.1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trader-joe-v2.1.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2_1/trader-joe-v2.1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { BigNumber } from 'ethers';
2
+ import { NumberAsString } from '@paraswap/core';
3
+ import { Address } from '../../types';
4
+ export declare type TraderJoeV2Data = {
5
+ tokenIn: string;
6
+ tokenOut: string;
7
+ binStep: string;
8
+ };
9
+ export declare type LBPairsAvailable = {
10
+ binStep: BigNumber;
11
+ LBPair: string;
12
+ createdByOwner: boolean;
13
+ ignoredForRouting: boolean;
14
+ tokenX: string;
15
+ };
16
+ export declare type RouterPath = [
17
+ pairBinSteps: NumberAsString[],
18
+ versions: NumberAsString[],
19
+ tokenPath: Address[]
20
+ ];
21
+ export declare type TraderJoeV2RouterSellParams = [
22
+ _amountIn: NumberAsString,
23
+ _amountOutMin: NumberAsString,
24
+ _routerPath: RouterPath,
25
+ to: Address,
26
+ _deadline: string
27
+ ];
28
+ export declare type TraderJoeV2RouterBuyParams = [
29
+ _amountOut: NumberAsString,
30
+ _amountInMax: NumberAsString,
31
+ _routerPath: RouterPath,
32
+ to: Address,
33
+ _deadline: string
34
+ ];
35
+ export declare type TraderJoeV2RouterParam = TraderJoeV2RouterSellParams | TraderJoeV2RouterBuyParams;
36
+ export declare type DexParams = {
37
+ factoryAddress: Address;
38
+ routerAddress: Address;
39
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/trader-joe-v2_1/types.ts"],"names":[],"mappings":""}
@@ -7,3 +7,4 @@ export declare function toWad(x: bigint, d: bigint): bigint;
7
7
  export declare function fromWad(x: bigint, d: bigint): bigint;
8
8
  export declare function sqrt(y: bigint, guess: bigint): bigint;
9
9
  export declare const uint120ToBigInt: (result: MultiResult<BytesLike> | BytesLike) => bigint;
10
+ export declare function convertUint256ToInt256(uint256Value: bigint): bigint;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uint120ToBigInt = exports.sqrt = exports.fromWad = exports.toWad = exports.wdiv = exports.wmul = exports.WAD = void 0;
3
+ exports.convertUint256ToInt256 = exports.uint120ToBigInt = exports.sqrt = exports.fromWad = exports.toWad = exports.wdiv = exports.wmul = exports.WAD = void 0;
4
4
  const bigint_constants_1 = require("../../bigint-constants");
5
5
  const decoders_1 = require("../../lib/decoders");
6
6
  exports.WAD = bigint_constants_1.BI_POWS[18];
@@ -63,4 +63,17 @@ const uint120ToBigInt = (result) => {
63
63
  return (0, decoders_1.generalDecoder)(result, ['uint120'], 0n, value => value[0].toBigInt());
64
64
  };
65
65
  exports.uint120ToBigInt = uint120ToBigInt;
66
+ function convertUint256ToInt256(uint256Value) {
67
+ const isNegative = (uint256Value &
68
+ BigInt('0x8000000000000000000000000000000000000000000000000000000000000000')) !==
69
+ BigInt(0);
70
+ if (isNegative) {
71
+ return (uint256Value -
72
+ BigInt('0x10000000000000000000000000000000000000000000000000000000000000000'));
73
+ }
74
+ else {
75
+ return uint256Value;
76
+ }
77
+ }
78
+ exports.convertUint256ToInt256 = convertUint256ToInt256;
66
79
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/wombat/utils.ts"],"names":[],"mappings":";;;AAAA,6DAAiD;AAGjD,iDAAoD;AAEvC,QAAA,GAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAE/B,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,WAAG,GAAG,EAAE,CAAC,GAAG,WAAG,CAAC;AAClC,CAAC;AAFD,oBAEC;AAED,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,WAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAFD,oBAEC;AAED,kDAAkD;AAClD,SAAgB,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,sBAOC;AACD,kDAAkD;AAClD,SAAgB,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,0BAOC;AAED,yDAAyD;AACzD,SAAgB,IAAI,CAAC,CAAS,EAAE,KAAa;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;YAC3B,CAAC,GAAG,KAAK,CAAC;SACX;aAAM,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACnC,CAAC,GAAG,CAAC,KAAK,CAAC;SACZ;aAAM;YACL,CAAC,GAAG,CAAC,CAAC;SACP;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACtB;KACF;SAAM,IAAI,CAAC,IAAI,EAAE,EAAE;QAClB,CAAC,GAAG,EAAE,CAAC;KACR;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AApBD,oBAoBC;AAEM,MAAM,eAAe,GAAG,CAC7B,MAA0C,EAClC,EAAE;IACV,OAAO,IAAA,yBAAc,EAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/wombat/utils.ts"],"names":[],"mappings":";;;AAAA,6DAAiD;AAGjD,iDAAoD;AAEvC,QAAA,GAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAE/B,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,WAAG,GAAG,EAAE,CAAC,GAAG,WAAG,CAAC;AAClC,CAAC;AAFD,oBAEC;AAED,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,WAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAFD,oBAEC;AAED,kDAAkD;AAClD,SAAgB,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,sBAOC;AACD,kDAAkD;AAClD,SAAgB,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,0BAOC;AAED,yDAAyD;AACzD,SAAgB,IAAI,CAAC,CAAS,EAAE,KAAa;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;YAC3B,CAAC,GAAG,KAAK,CAAC;SACX;aAAM,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACnC,CAAC,GAAG,CAAC,KAAK,CAAC;SACZ;aAAM;YACL,CAAC,GAAG,CAAC,CAAC;SACP;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACtB;KACF;SAAM,IAAI,CAAC,IAAI,EAAE,EAAE;QAClB,CAAC,GAAG,EAAE,CAAC;KACR;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AApBD,oBAoBC;AAEM,MAAM,eAAe,GAAG,CAC7B,MAA0C,EAClC,EAAE;IACV,OAAO,IAAA,yBAAc,EAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEF,SAAgB,sBAAsB,CAAC,YAAoB;IACzD,MAAM,UAAU,GACd,CAAC,YAAY;QACX,MAAM,CACJ,oEAAoE,CACrE,CAAC;QACJ,MAAM,CAAC,CAAC,CAAC,CAAC;IAEZ,IAAI,UAAU,EAAE;QACd,OAAO,CACL,YAAY;YACZ,MAAM,CACJ,qEAAqE,CACtE,CACF,CAAC;KACH;SAAM;QACL,OAAO,YAAY,CAAC;KACrB;AACH,CAAC;AAlBD,wDAkBC"}
@@ -9,14 +9,14 @@ export declare class WombatBmw extends StatefulEventSubscriber<BmwState> {
9
9
  protected network: number;
10
10
  protected dexHelper: IDexHelper;
11
11
  protected bmwAddress: Address;
12
- protected onAssetAdded: (pool: Address, asset2TokenMap: Map<Address, Address>, blockNumber: number) => Promise<void>;
12
+ protected onAssetAdded: (pool: Address, blockNumber: number) => Promise<void>;
13
13
  static readonly bmwInterface: Interface;
14
14
  static readonly assetInterface: Interface;
15
15
  static readonly poolInterface: Interface;
16
16
  private readonly logDecoder;
17
17
  private bmwContract;
18
18
  private handlers;
19
- constructor(dexKey: string, name: string, network: number, dexHelper: IDexHelper, logger: Logger, bmwAddress: Address, onAssetAdded: (pool: Address, asset2TokenMap: Map<Address, Address>, blockNumber: number) => Promise<void>);
19
+ constructor(dexKey: string, name: string, network: number, dexHelper: IDexHelper, logger: Logger, bmwAddress: Address, onAssetAdded: (pool: Address, blockNumber: number) => Promise<void>);
20
20
  /**
21
21
  * The function is called every time any of the subscribed
22
22
  * addresses release log. The function accepts the current
@@ -9,10 +9,10 @@ const utils_1 = require("../../utils");
9
9
  const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
10
10
  const bmw_json_1 = __importDefault(require("../../abi/wombat/bmw.json"));
11
11
  const asset_json_1 = __importDefault(require("../../abi/wombat/asset.json"));
12
- const pool_json_1 = __importDefault(require("../../abi/wombat/pool.json"));
12
+ const pool_v2_json_1 = __importDefault(require("../../abi/wombat/pool-v2.json"));
13
13
  class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
14
14
  constructor(dexKey, name, network, dexHelper, logger, bmwAddress, onAssetAdded) {
15
- super(`${dexKey} ${name}`, `${dexKey}-${network} ${name}`, dexHelper, logger);
15
+ super(`${dexKey}-${name}`, `${dexKey}-${network}-${name}`, dexHelper, logger);
16
16
  this.network = network;
17
17
  this.dexHelper = dexHelper;
18
18
  this.bmwAddress = bmwAddress;
@@ -73,10 +73,6 @@ class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
73
73
  .toLowerCase());
74
74
  inputs = [];
75
75
  for (const lpToken of lpTokens) {
76
- inputs.push({
77
- target: lpToken,
78
- callData: WombatBmw.assetInterface.encodeFunctionData('underlyingToken'),
79
- });
80
76
  inputs.push({
81
77
  target: lpToken,
82
78
  callData: WombatBmw.assetInterface.encodeFunctionData('pool'),
@@ -85,24 +81,18 @@ class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
85
81
  returnData = (await this.dexHelper.multiContract.methods
86
82
  .aggregate(inputs)
87
83
  .call({}, blockNumber)).returnData;
88
- const pool2AssetInfo = new Map();
84
+ const poolAddressSet = new Set();
89
85
  let i = 0;
90
86
  for (const lpToken of lpTokens) {
91
- const underlyingToken = WombatBmw.assetInterface
92
- .decodeFunctionResult('underlyingToken', returnData[i++])[0]
93
- .toLowerCase();
94
87
  const pool = WombatBmw.assetInterface
95
88
  .decodeFunctionResult('pool', returnData[i++])[0]
96
89
  .toLowerCase();
97
- if (!pool2AssetInfo.has(pool)) {
98
- pool2AssetInfo.set(pool, new Map());
99
- }
100
- pool2AssetInfo.get(pool).set(lpToken, underlyingToken);
90
+ poolAddressSet.add(pool);
101
91
  }
102
92
  const promises = [];
103
- pool2AssetInfo.forEach((asset2TokenMap, pool) => {
93
+ poolAddressSet.forEach(pool => {
104
94
  bmwState.pools.push(pool);
105
- promises.push(this.onAssetAdded(pool, asset2TokenMap, blockNumber));
95
+ promises.push(this.onAssetAdded(pool, blockNumber));
106
96
  });
107
97
  await Promise.all(promises);
108
98
  return bmwState;
@@ -114,20 +104,13 @@ class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
114
104
  target: lpToken,
115
105
  callData: WombatBmw.assetInterface.encodeFunctionData('pool'),
116
106
  });
117
- multiCallInputs.push({
118
- target: lpToken,
119
- callData: WombatBmw.assetInterface.encodeFunctionData('underlyingToken'),
120
- });
121
107
  const returnData = (await this.dexHelper.multiContract.methods
122
108
  .aggregate(multiCallInputs)
123
109
  .call({}, log.blockNumber)).returnData;
124
110
  const pool = WombatBmw.assetInterface
125
111
  .decodeFunctionResult('pool', returnData[0])[0]
126
112
  .toLowerCase();
127
- const underlyingToken = WombatBmw.assetInterface
128
- .decodeFunctionResult('underlyingToken', returnData[1])[0]
129
- .toLowerCase();
130
- await this.onAssetAdded(pool, new Map().set(lpToken, underlyingToken), log.blockNumber);
113
+ await this.onAssetAdded(pool, log.blockNumber);
131
114
  if (!state.pools.includes(pool)) {
132
115
  return {
133
116
  pools: [...state.pools, pool],
@@ -143,5 +126,5 @@ class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
143
126
  exports.WombatBmw = WombatBmw;
144
127
  WombatBmw.bmwInterface = new abi_1.Interface(bmw_json_1.default);
145
128
  WombatBmw.assetInterface = new abi_1.Interface(asset_json_1.default);
146
- WombatBmw.poolInterface = new abi_1.Interface(pool_json_1.default);
129
+ WombatBmw.poolInterface = new abi_1.Interface(pool_v2_json_1.default);
147
130
  //# sourceMappingURL=wombat-bmw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wombat-bmw.js","sourceRoot":"","sources":["../../../src/dex/wombat/wombat-bmw.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAM/C,uCAAiD;AACjD,+EAA0E;AAG1E,yEAA+C;AAC/C,6EAAmD;AACnD,2EAAiD;AAEjD,MAAa,SAAU,SAAQ,mDAAiC;IAe9D,YACE,MAAc,EACd,IAAY,EACF,OAAe,EACf,SAAqB,EAC/B,MAAc,EACJ,UAAmB,EACnB,YAIQ;QAElB,KAAK,CACH,GAAG,MAAM,IAAI,IAAI,EAAE,EACnB,GAAG,MAAM,IAAI,OAAO,IAAI,IAAI,EAAE,EAC9B,SAAS,EACT,MAAM,CACP,CAAC;QAfQ,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAY;QAErB,eAAU,GAAV,UAAU,CAAS;QACnB,iBAAY,GAAZ,YAAY,CAIJ;QAnBZ,aAAQ,GAMZ,EAAE,CAAC;QAsBL,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAC7D,kBAAa,EACb,IAAI,CAAC,UAAU,CAChB,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;OAQG;IACO,KAAK,CAAC,UAAU,CACxB,KAA6B,EAC7B,GAAkB;QAElB,IAAI;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAC/B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aAC3D;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAA,0BAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,MAAM,QAAQ,GAAa,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACzC,IAAI,MAAM,GAAqB,EAAE,CAAC;QAElC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO;aAC9C,UAAU,EAAE;aACZ,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;aACrE,CAAC,CAAC;SACJ;QACD,IAAI,UAAU,GAAG,CACf,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO;aACvC,SAAS,CAAC,MAAM,CAAC;aACjB,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CACzB,CAAC,UAAU,CAAC;QAEb,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAe,EAAE,EAAE,CAClD,SAAS,CAAC,YAAY;aACnB,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aACzC,WAAW,EAAE,CACjB,CAAC;QAEF,MAAM,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,OAAO;gBACf,QAAQ,EACN,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;aACjE,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC;aAC9D,CAAC,CAAC;SACJ;QAED,UAAU,GAAG,CACX,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO;aACvC,SAAS,CAAC,MAAM,CAAC;aACjB,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CACzB,CAAC,UAAU,CAAC;QAEb,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkC,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc;iBAC7C,oBAAoB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3D,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,SAAS,CAAC,cAAc;iBAClC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChD,WAAW,EAAE,CAAC;YAEjB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC7B,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAoB,CAAC,CAAC;aACvD;YACD,cAAc,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;SACzD;QAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,cAAc,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE;YAC9C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAAqB,EACrB,KAA6B,EAC7B,GAAkB;QAElB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,eAAe,GAAqB,EAAE,CAAC;QAE3C,eAAe,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC;SAC9D,CAAC,CAAC;QACH,eAAe,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;SACzE,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,CACjB,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO;aACvC,SAAS,CAAC,eAAe,CAAC;aAC1B,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,CAC7B,CAAC,UAAU,CAAC;QAEb,MAAM,IAAI,GAAG,SAAS,CAAC,cAAc;aAClC,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C,WAAW,EAAE,CAAC;QACjB,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc;aAC7C,oBAAoB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzD,WAAW,EAAE,CAAC;QAEjB,MAAM,IAAI,CAAC,YAAY,CACrB,IAAI,EACJ,IAAI,GAAG,EAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,EACzD,GAAG,CAAC,WAAW,CAChB,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC/B,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;aAC9B,CAAC;SACH;aAAM;YACL,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC;SACH;IACH,CAAC;;AAjMH,8BAkMC;AAjMiB,sBAAY,GAAG,IAAI,eAAS,CAAC,kBAAM,CAAC,CAAC;AACrC,wBAAc,GAAG,IAAI,eAAS,CAAC,oBAAQ,CAAC,CAAC;AACzC,uBAAa,GAAG,IAAI,eAAS,CAAC,mBAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"wombat-bmw.js","sourceRoot":"","sources":["../../../src/dex/wombat/wombat-bmw.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { Address } from '@paraswap/core';
3
+ import { MultiCallParams, MultiResult } from '../../lib/multi-wrapper';
4
+ import { IDexHelper } from '../../dex-helper';
5
+ import { StatefulRpcPoller } from '../../lib/stateful-rpc-poller/stateful-rpc-poller';
6
+ import { ObjWithUpdateInfo } from '../../lib/stateful-rpc-poller/types';
7
+ import { MulticallResultOutputs, PoolState } from './types';
8
+ export declare class WombatPool extends StatefulRpcPoller<PoolState, MulticallResultOutputs> {
9
+ protected poolAddress: Address;
10
+ protected asset2TokenMap: Map<Address, Address>;
11
+ static readonly poolInterface: Interface;
12
+ static readonly assetInterface: Interface;
13
+ constructor(dexKey: string, poolIdentifier: string, dexHelper: IDexHelper, poolAddress: Address, asset2TokenMap: Map<Address, Address>);
14
+ protected _getFetchStateMultiCalls(): MultiCallParams<MulticallResultOutputs>[];
15
+ protected _parseStateFromMultiResults(multiOutputs: MulticallResultOutputs[]): PoolState;
16
+ fetchLatestStateFromRpc(): Promise<ObjWithUpdateInfo<PoolState> | null>;
17
+ parseStateFromMultiResultsWithBlockInfo(multiOutputs: [
18
+ MultiResult<number>,
19
+ ...MultiResult<MulticallResultOutputs>[]
20
+ ], lastUpdatedAtMs: number): ObjWithUpdateInfo<PoolState>;
21
+ addAssets(asset2TokenMap: Map<Address, Address>): void;
22
+ }