@paraswap/dex-lib 4.2.31 → 4.2.32

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 (50) hide show
  1. package/build/dex/bebop/bebop.js +15 -2
  2. package/build/dex/bebop/bebop.js.map +1 -1
  3. package/build/dex/cables/cables.js +15 -2
  4. package/build/dex/cables/cables.js.map +1 -1
  5. package/build/dex/dexalot/dexalot.js +41 -30
  6. package/build/dex/dexalot/dexalot.js.map +1 -1
  7. package/build/dex/generic-rfq/generic-rfq.js +28 -14
  8. package/build/dex/generic-rfq/generic-rfq.js.map +1 -1
  9. package/build/dex/hashflow/hashflow.js +53 -65
  10. package/build/dex/hashflow/hashflow.js.map +1 -1
  11. package/build/dex/miro-migrator/constants.d.ts +1 -1
  12. package/build/dex/miro-migrator/constants.js +1 -1
  13. package/build/dex/miro-migrator/miro-migrator-pool.d.ts +5 -5
  14. package/build/dex/miro-migrator/miro-migrator-pool.js +22 -13
  15. package/build/dex/miro-migrator/miro-migrator-pool.js.map +1 -1
  16. package/build/dex/miro-migrator/miro-migrator.js +2 -4
  17. package/build/dex/miro-migrator/miro-migrator.js.map +1 -1
  18. package/build/dex/swaap-v2/swaap-v2.js +59 -67
  19. package/build/dex/swaap-v2/swaap-v2.js.map +1 -1
  20. package/build/dex/uniswap-v2/rpc-pool-tracker.d.ts +14 -9
  21. package/build/dex/uniswap-v2/rpc-pool-tracker.js +163 -51
  22. package/build/dex/uniswap-v2/rpc-pool-tracker.js.map +1 -1
  23. package/build/dex/uniswap-v4/encoder.d.ts +6 -5
  24. package/build/dex/uniswap-v4/encoder.js +121 -30
  25. package/build/dex/uniswap-v4/encoder.js.map +1 -1
  26. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +31 -2
  27. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  28. package/build/dex/uniswap-v4/uniswap-v4.js +25 -22
  29. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  30. package/build/executor/Executor02BytecodeBuilder.d.ts +6 -0
  31. package/build/executor/Executor02BytecodeBuilder.js +104 -15
  32. package/build/executor/Executor02BytecodeBuilder.js.map +1 -1
  33. package/build/generic-swap-transaction-builder.d.ts +3 -2
  34. package/build/generic-swap-transaction-builder.js +27 -2
  35. package/build/generic-swap-transaction-builder.js.map +1 -1
  36. package/package.json +1 -1
  37. package/build/abi/algebra-integral/Quoter.abi.json +0 -231
  38. package/build/abi/algebra-integral/SwapRouter.abi.json +0 -810
  39. package/build/dex/algebra-integral/algebra-integral.d.ts +0 -43
  40. package/build/dex/algebra-integral/algebra-integral.js +0 -446
  41. package/build/dex/algebra-integral/algebra-integral.js.map +0 -1
  42. package/build/dex/algebra-integral/config.d.ts +0 -3
  43. package/build/dex/algebra-integral/config.js +0 -17
  44. package/build/dex/algebra-integral/config.js.map +0 -1
  45. package/build/dex/algebra-integral/types.d.ts +0 -33
  46. package/build/dex/algebra-integral/types.js +0 -10
  47. package/build/dex/algebra-integral/types.js.map +0 -1
  48. package/build/dex/miro-migrator/miro-migrator-state.d.ts +0 -27
  49. package/build/dex/miro-migrator/miro-migrator-state.js +0 -89
  50. package/build/dex/miro-migrator/miro-migrator-state.js.map +0 -1
@@ -5,9 +5,14 @@ const abi_1 = require("@ethersproject/abi");
5
5
  const constants_1 = require("../../constants");
6
6
  const decoders_1 = require("../../lib/decoders");
7
7
  const uniswap_v2_1 = require("./uniswap-v2");
8
- const UPDATE_POOL_INTERVAL = 10 * 60 * 1000; // 10 minutes
9
- const INIT_BATCH_SIZE = 1000;
8
+ // also used to check if reserves should be updated
9
+ const UPDATE_NEW_POOLS_INTERVAL = 10 * 60 * 1000; // 10 minutes
10
+ const UPDATE_POOLS_AGE_INTERVAL = 24 * 60 * 60 * 1000; // 24 hours
11
+ const WRITE_BATCH_SIZE = 1_000;
10
12
  const READ_BATCH_SIZE = 10_000;
13
+ // pool is valid if last update was less than 180 days ago, otherwise pool is considered stale and will not be used on pt
14
+ const VALID_POOLS_AGE = 1000 * 60 * 60 * 24 * 180; // 180 days
15
+ const MAX_RESERVES_POOLS_UPDATE = 5_000;
11
16
  const FactoryABI = [
12
17
  {
13
18
  constant: true,
@@ -104,28 +109,44 @@ class UniswapV2RpcPoolTracker extends uniswap_v2_1.UniswapV2 {
104
109
  dexHelper;
105
110
  isDynamicFees;
106
111
  cacheKey;
112
+ allPoolsLength = 0;
107
113
  pools = {};
108
114
  isStatePollingDex = true;
109
- updateInterval = null;
115
+ newPoolsUpdateInterval = null;
116
+ poolsAgeUpdateInterval = null;
110
117
  constructor(network, dexKey, dexHelper, isDynamicFees = false) {
111
118
  super(network, dexKey, dexHelper, isDynamicFees);
112
119
  this.network = network;
113
120
  this.dexHelper = dexHelper;
114
121
  this.isDynamicFees = isDynamicFees;
115
122
  this.cacheKey =
116
- `${constants_1.CACHE_PREFIX}_${this.dexKey}_${this.network}_pools`.toLowerCase();
123
+ `${constants_1.CACHE_PREFIX}_${this.network}_${this.dexKey}_pools`.toLowerCase();
117
124
  }
118
125
  async initializePricing() {
119
126
  this.logger.info(`PancakeSwapV2: Initializing pools for ${this.dexKey} on ${this.network}...`);
120
127
  if (!this.dexHelper.config.isSlave) {
121
128
  await this.updatePools(true);
122
- this.updateInterval = setInterval(async () => {
123
- await this.updatePools();
124
- }, UPDATE_POOL_INTERVAL);
129
+ await this.updatePoolsAge();
130
+ this.newPoolsUpdateInterval = setInterval(async () => {
131
+ try {
132
+ await this.updatePools();
133
+ }
134
+ catch (error) {
135
+ this.logger.error(`Error updating new pools for ${this.dexKey} on ${this.network}: ${error}`);
136
+ }
137
+ }, UPDATE_NEW_POOLS_INTERVAL);
138
+ this.poolsAgeUpdateInterval = setInterval(async () => {
139
+ try {
140
+ await this.updatePoolsAge();
141
+ }
142
+ catch (error) {
143
+ this.logger.error(`Error updating pools age for ${this.dexKey} on ${this.network}: ${error}`);
144
+ }
145
+ }, UPDATE_POOLS_AGE_INTERVAL);
125
146
  }
126
147
  }
127
148
  async updatePools(initialize = false) {
128
- const allPools = await this.getAllPoolsLength();
149
+ const allPools = await this.getOnChainPoolsLength();
129
150
  const allCachedPools = await this.dexHelper.cache.hlen(this.cacheKey);
130
151
  const missingPools = allPools - allCachedPools;
131
152
  if (!initialize && missingPools > 1_000) {
@@ -137,9 +158,9 @@ class UniswapV2RpcPoolTracker extends uniswap_v2_1.UniswapV2 {
137
158
  }
138
159
  async initPools(fromIndex, toIndex) {
139
160
  this.logger.info(`Initializing pools from ${fromIndex} to ${toIndex}...`);
140
- for (let i = fromIndex; i < toIndex; i += INIT_BATCH_SIZE) {
141
- this.logger.info(`Fetching pools from ${i} to ${Math.min(i + INIT_BATCH_SIZE, toIndex)}`);
142
- const fetchedPools = await this.fetchPools(i, Math.min(i + INIT_BATCH_SIZE, toIndex));
161
+ for (let i = fromIndex; i < toIndex; i += WRITE_BATCH_SIZE) {
162
+ this.logger.info(`Fetching pools from ${i} to ${Math.min(i + WRITE_BATCH_SIZE, toIndex)}`);
163
+ const fetchedPools = await this.fetchPools(i, Math.min(i + WRITE_BATCH_SIZE, toIndex));
143
164
  const pools = Object.fromEntries(Object.entries(fetchedPools).map(([key, value]) => [
144
165
  key,
145
166
  JSON.stringify(value),
@@ -157,30 +178,92 @@ class UniswapV2RpcPoolTracker extends uniswap_v2_1.UniswapV2 {
157
178
  }
158
179
  this.logger.info(`Getting cached pools from ${batchStart} to ${batchEnd}`);
159
180
  const pools = await this.dexHelper.cache.hmget(this.cacheKey, keys);
181
+ const minValidUpdatedAt = Date.now() - VALID_POOLS_AGE;
160
182
  pools.forEach((pool, idx) => {
161
- const index = batchStart + idx;
162
- this.pools[index] = pool
163
- ? {
164
- ...JSON.parse(pool),
165
- reserves: {
183
+ if (pool) {
184
+ const index = batchStart + idx;
185
+ const parsedPool = JSON.parse(pool);
186
+ if (parsedPool && parsedPool.updatedAt > minValidUpdatedAt) {
187
+ this.pools[index] = {
188
+ address: parsedPool.address,
189
+ token0Address: parsedPool.token0.address,
190
+ token0Decimals: parsedPool.token0.decimals,
191
+ token1Address: parsedPool.token1.address,
192
+ token1Decimals: parsedPool.token1.decimals,
193
+ updatedAt: parsedPool.updatedAt,
166
194
  reserve0: 0n,
167
195
  reserve1: 0n,
168
- updatedAt: null,
169
- },
196
+ reservesUpdatedAt: null,
197
+ };
170
198
  }
171
- : null;
199
+ }
200
+ else {
201
+ this.logger.warn(`Pool with index ${batchStart + idx} not found in cache`);
202
+ }
203
+ this.allPoolsLength++;
172
204
  });
173
205
  }
174
206
  }
175
207
  async updatePoolState() {
176
208
  await this.updatePools();
177
- const allPools = Object.keys(this.pools).length;
209
+ const allPools = this.allPoolsLength;
178
210
  const allCachedPools = await this.dexHelper.cache.hlen(this.cacheKey);
179
211
  if (allPools < allCachedPools) {
180
212
  await this.getCachedPools(allPools, allCachedPools);
181
213
  }
182
214
  }
183
- async getAllPoolsLength() {
215
+ async updatePoolsAge() {
216
+ this.logger.info(`Starting update pools age for ${this.dexKey} on ${this.network}...`);
217
+ const allPools = this.allPoolsLength;
218
+ const allCachedPools = await this.dexHelper.cache.hlen(this.cacheKey);
219
+ if (allPools < allCachedPools) {
220
+ await this.getCachedPools(allPools, allCachedPools);
221
+ }
222
+ const poolsIndexes = Object.keys(this.pools);
223
+ this.logger.info(`Updating pools age for ${poolsIndexes.length} pools on ${this.network}...`);
224
+ // batch poolsCalldata and process in chunks to avoid huge amounts of multi-calls
225
+ for (let batchStart = 0; batchStart < poolsIndexes.length; batchStart += WRITE_BATCH_SIZE) {
226
+ const batchEnd = Math.min(batchStart + WRITE_BATCH_SIZE, poolsIndexes.length);
227
+ const batchIndexes = poolsIndexes.slice(batchStart, batchEnd);
228
+ this.logger.info(`Updating pools age for ${batchStart}-${batchEnd} pools on ${this.network}...`);
229
+ const batchCalldata = batchIndexes.map(poolIndex => ({
230
+ target: this.pools[poolIndex].address,
231
+ callData: factoryIface.encodeFunctionData('getReserves', []),
232
+ decodeFunction: (result) => {
233
+ return (0, decoders_1.generalDecoder)(result, ['uint112', 'uint112', 'uint32'], 0, res => Number(res[2]));
234
+ },
235
+ }));
236
+ const batchPoolsData = await this.dexHelper.multiWrapper.tryAggregate(true, batchCalldata, undefined,
237
+ // as calls are small, should be affordable to use a larger batch size
238
+ WRITE_BATCH_SIZE);
239
+ const poolsToUpdate = {};
240
+ for (let i = 0; i < batchPoolsData.length; i++) {
241
+ const poolIndex = batchIndexes[i];
242
+ const updatedAt = batchPoolsData[i].returnData * 1000;
243
+ if (updatedAt !== this.pools[poolIndex].updatedAt) {
244
+ this.pools[poolIndex].updatedAt = updatedAt;
245
+ const pool = {
246
+ address: this.pools[poolIndex].address,
247
+ updatedAt,
248
+ token0: {
249
+ address: this.pools[poolIndex].token0Address,
250
+ decimals: this.pools[poolIndex].token0Decimals,
251
+ },
252
+ token1: {
253
+ address: this.pools[poolIndex].token1Address,
254
+ decimals: this.pools[poolIndex].token1Decimals,
255
+ },
256
+ };
257
+ poolsToUpdate[poolIndex] = JSON.stringify(pool);
258
+ }
259
+ }
260
+ if (Object.keys(poolsToUpdate).length > 0) {
261
+ await this.dexHelper.cache.hmset(this.cacheKey, poolsToUpdate);
262
+ }
263
+ }
264
+ this.logger.info(`Finished update pools age for ${poolsIndexes.length} pools on ${this.network}.`);
265
+ }
266
+ async getOnChainPoolsLength() {
184
267
  const allPoolsCallData = {
185
268
  target: this.factoryAddress,
186
269
  callData: factoryIface.encodeFunctionData('allPairsLength', []),
@@ -214,13 +297,19 @@ class UniswapV2RpcPoolTracker extends uniswap_v2_1.UniswapV2 {
214
297
  target: poolResult.returnData,
215
298
  callData: factoryIface.encodeFunctionData('token1', []),
216
299
  decodeFunction: decoders_1.addressDecode,
300
+ }, {
301
+ target: poolResult.returnData,
302
+ callData: factoryIface.encodeFunctionData('getReserves', []),
303
+ decodeFunction: (result) => {
304
+ return (0, decoders_1.generalDecoder)(result, ['uint112', 'uint112', 'uint32'], 0, res => Number(res[2]));
305
+ },
217
306
  });
218
307
  }
219
308
  const poolsData = await this.dexHelper.multiWrapper.tryAggregate(true, poolsCalldata);
220
309
  const tokensSet = new Set();
221
310
  for (let i = 0; i < allPoolsResults.length; i++) {
222
- const token0 = poolsData[i * 2].returnData.toLowerCase();
223
- const token1 = poolsData[i * 2 + 1].returnData.toLowerCase();
311
+ const token0 = poolsData[i * 3].returnData.toLowerCase();
312
+ const token1 = poolsData[i * 3 + 1].returnData.toLowerCase();
224
313
  tokensSet.add(token0.toLowerCase());
225
314
  tokensSet.add(token1.toLowerCase());
226
315
  }
@@ -242,11 +331,12 @@ class UniswapV2RpcPoolTracker extends uniswap_v2_1.UniswapV2 {
242
331
  const pools = {};
243
332
  for (let i = 0; i < allPoolsResults.length; i++) {
244
333
  const poolAddress = allPoolsResults[i].returnData.toLowerCase();
245
- const token0 = poolsData[i * 2].returnData.toLowerCase();
246
- const token1 = poolsData[i * 2 + 1].returnData.toLowerCase();
247
- // const [reserve0, reserve1] = pools[i * 3 + 2].returnData as bigint[];
334
+ const token0 = poolsData[i * 3].returnData.toLowerCase();
335
+ const token1 = poolsData[i * 3 + 1].returnData.toLowerCase();
336
+ const updatedAt = poolsData[i * 3 + 2].returnData;
248
337
  pools[i + fromIndex] = {
249
338
  address: poolAddress,
339
+ updatedAt: updatedAt * 1000,
250
340
  token0: {
251
341
  address: token0,
252
342
  decimals: decimals[token0],
@@ -266,50 +356,60 @@ class UniswapV2RpcPoolTracker extends uniswap_v2_1.UniswapV2 {
266
356
  target: pool.address,
267
357
  callData: factoryIface.encodeFunctionData('getReserves', []),
268
358
  decodeFunction: (result) => {
269
- return (0, decoders_1.generalDecoder)(result, ['uint112', 'uint112'], [0n, 0n], res => [BigInt(res[0]), BigInt(res[1])]);
359
+ return (0, decoders_1.generalDecoder)(result, ['uint112', 'uint112', 'uint32'], [0n, 0n, 0], res => [BigInt(res[0]), BigInt(res[1]), Number(res[2])]);
270
360
  },
271
361
  });
272
362
  }
273
363
  const results = await this.dexHelper.multiWrapper.tryAggregate(true, callData);
274
364
  for (let i = 0; i < pools.length; i++) {
275
- const [reserve0, reserve1] = results[i].returnData;
365
+ const [reserve0, reserve1, updatedAt] = results[i].returnData;
276
366
  const pool = pools[i];
277
- pool.reserves = {
278
- updatedAt: Date.now(),
279
- reserve0: reserve0,
280
- reserve1: reserve1,
281
- };
367
+ pool.updatedAt = updatedAt * 1000; // convert to ms
368
+ pool.reserve0 = reserve0;
369
+ pool.reserve1 = reserve1;
370
+ pool.reservesUpdatedAt = Date.now();
282
371
  }
283
372
  }
284
373
  async getTopPoolsForToken(tokenAddress, limit) {
285
374
  const token = tokenAddress.toLowerCase();
286
- let pools = Object.values(this.pools).filter(pool => pool.token0.address === token || pool.token1.address === token);
375
+ // sort by updateAt with the assumption that pools with good liquidity are updated more frequently
376
+ let pools = Object.values(this.pools)
377
+ .filter(pool => pool.token0Address === token || pool.token1Address === token)
378
+ .sort((a, b) => {
379
+ return b.updatedAt - a.updatedAt;
380
+ });
287
381
  if (pools.length === 0) {
288
382
  return [];
289
383
  }
290
384
  const now = Date.now();
291
- const poolsToUpdate = pools.filter(pool => !pool.reserves.updatedAt ||
292
- now - pool.reserves.updatedAt > UPDATE_POOL_INTERVAL);
385
+ const poolsToUpdate = pools
386
+ .filter(pool => !pool.reservesUpdatedAt ||
387
+ now - pool.reservesUpdatedAt > UPDATE_NEW_POOLS_INTERVAL)
388
+ .slice(0, MAX_RESERVES_POOLS_UPDATE);
293
389
  if (poolsToUpdate.length > 0) {
294
- await this.updatePoolsReserves(pools);
390
+ try {
391
+ this.logger.info(`Started updating reserves for ${poolsToUpdate.length} pools for token ${token} on ${this.network}...`);
392
+ await this.updatePoolsReserves(poolsToUpdate);
393
+ this.logger.info(`Finished updating reserves for ${poolsToUpdate.length} pools for token ${token} on ${this.network}...`);
394
+ }
395
+ catch (error) {
396
+ this.logger.error(`Error updating reserves for pools for token ${token} on ${this.network}: ${error}`);
397
+ return [];
398
+ }
295
399
  }
296
400
  pools = pools
297
401
  .sort((a, b) => {
298
- const aReserve = token === a.token0.address
299
- ? a.reserves.reserve0
300
- : a.reserves.reserve1;
301
- const bReserve = token === b.token0.address
302
- ? b.reserves.reserve0
303
- : b.reserves.reserve1;
402
+ const aReserve = token === a.token0Address ? a.reserve0 : a.reserve1;
403
+ const bReserve = token === b.token0Address ? b.reserve0 : b.reserve1;
304
404
  return Number(bReserve - aReserve);
305
405
  })
306
406
  .slice(0, limit);
307
407
  const tokensAmounts = pools
308
408
  .map(pool => {
309
- const token0 = pool.token0.address;
310
- const token1 = pool.token1.address;
311
- const reserve0 = pool.reserves.reserve0;
312
- const reserve1 = pool.reserves.reserve1;
409
+ const token0 = pool.token0Address;
410
+ const token1 = pool.token1Address;
411
+ const reserve0 = pool.reserve0;
412
+ const reserve1 = pool.reserve1;
313
413
  return [
314
414
  [token0, reserve0],
315
415
  [token1, reserve1],
@@ -318,7 +418,15 @@ class UniswapV2RpcPoolTracker extends uniswap_v2_1.UniswapV2 {
318
418
  .flat();
319
419
  const usdTokenAmounts = await this.dexHelper.getUsdTokenAmounts(tokensAmounts);
320
420
  const poolsWithLiquidity = pools.map((pool, i) => {
321
- const connectorToken = token === pool.token0.address ? pool.token1 : pool.token0;
421
+ const connectorToken = token === pool.token0Address
422
+ ? {
423
+ address: pool.token1Address,
424
+ decimals: pool.token1Decimals,
425
+ }
426
+ : {
427
+ address: pool.token0Address,
428
+ decimals: pool.token0Decimals,
429
+ };
322
430
  let token0ReserveUSD = usdTokenAmounts[i * 2];
323
431
  let token1ReserveUSD = usdTokenAmounts[i * 2 + 1];
324
432
  // fallback to non-empty usd reserves
@@ -340,9 +448,13 @@ class UniswapV2RpcPoolTracker extends uniswap_v2_1.UniswapV2 {
340
448
  .slice(0, limit);
341
449
  }
342
450
  releaseResources() {
343
- if (this.updateInterval) {
344
- clearInterval(this.updateInterval);
345
- this.updateInterval = null;
451
+ if (this.newPoolsUpdateInterval) {
452
+ clearInterval(this.newPoolsUpdateInterval);
453
+ this.newPoolsUpdateInterval = null;
454
+ }
455
+ if (this.poolsAgeUpdateInterval) {
456
+ clearInterval(this.poolsAgeUpdateInterval);
457
+ this.poolsAgeUpdateInterval = null;
346
458
  }
347
459
  }
348
460
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-pool-tracker.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v2/rpc-pool-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-pool-tracker.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v2/rpc-pool-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { PoolKey, UniswapV4Data } from './types';
1
+ import { UniswapV4Data } from './types';
2
2
  import { Address } from '../../types';
3
+ import { IDexHelper } from '../../dex-helper';
3
4
  export declare enum Actions {
4
5
  SWAP_EXACT_IN_SINGLE = 6,// 0x06 -> 6
5
6
  SWAP_EXACT_IN = 7,// 0x07 -> 7
@@ -13,7 +14,7 @@ export declare enum Actions {
13
14
  TAKE_PORTION = 16,// 0x10 -> 16
14
15
  TAKE_PAIR = 17
15
16
  }
16
- export declare function swapExactInputSingleCalldata(srcToken: Address, destToken: Address, poolKey: PoolKey, zeroForOne: boolean, amountIn: bigint, amountOutMinimum: bigint, recipient: Address): string;
17
- export declare function swapExactInputCalldata(srcToken: Address, destToken: Address, data: UniswapV4Data, amountIn: bigint, amountOutMinimum: bigint, recipient: Address): string;
18
- export declare function swapExactOutputSingleCalldata(srcToken: Address, destToken: Address, poolKey: PoolKey, zeroForOne: boolean, amountOut: bigint, recipient: Address): string;
19
- export declare function swapExactOutputCalldata(srcToken: Address, destToken: Address, data: UniswapV4Data, amountOut: bigint, recipient: Address): string;
17
+ export declare function swapExactInputSingleCalldata(srcToken: Address, destToken: Address, data: UniswapV4Data, amountIn: bigint, amountOutMinimum: bigint, recipient: Address, dexHelper: IDexHelper): string;
18
+ export declare function swapExactInputCalldata(srcToken: Address, destToken: Address, data: UniswapV4Data, amountIn: bigint, amountOutMinimum: bigint, recipient: Address, dexHelper: IDexHelper): string;
19
+ export declare function swapExactOutputSingleCalldata(srcToken: Address, destToken: Address, data: UniswapV4Data, amountIn: bigint, amountOut: bigint, recipient: Address, dexHelper: IDexHelper): string;
20
+ export declare function swapExactOutputCalldata(srcToken: Address, destToken: Address, data: UniswapV4Data, amountIn: bigint, amountOut: bigint, recipient: Address, dexHelper: IDexHelper): string;