@paraswap/dex-lib 2.13.0 → 2.13.1
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.
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/.vscode/launch.json +21 -0
- package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
- package/build/dex/aave-v3/tokens/avalanche.json +50 -0
- package/build/dex/aave-v3/tokens/fantom.json +62 -0
- package/build/dex/aave-v3/tokens/mainnet.json +44 -0
- package/build/dex/aave-v3/tokens/optimism.json +50 -0
- package/build/dex/aave-v3/tokens/polygon.json +98 -0
- package/build/dex/balancer-v2/VirtualBoostedPool.d.ts +79 -0
- package/build/dex/balancer-v2/VirtualBoostedPool.js +382 -0
- package/build/dex/balancer-v2/VirtualBoostedPool.js.map +1 -0
- package/build/dex/generic-rfq/e2e-test-config.d.ts +9 -0
- package/build/dex/generic-rfq/e2e-test-config.js +33 -0
- package/build/dex/generic-rfq/e2e-test-config.js.map +1 -0
- package/build/dex/generic-rfq/rate-fetcher.js +2 -0
- package/build/dex/generic-rfq/rate-fetcher.js.map +1 -1
- package/build/dex/generic-rfq/validators.d.ts +1 -1
- package/build/dex/generic-rfq/validators.js +36 -26
- package/build/dex/generic-rfq/validators.js.map +1 -1
- package/build/dex/simple-exchange.js +1 -1
- package/build/dex/simple-exchange.js.map +1 -1
- package/build/dex/test-aave-v3/config.d.ts +4 -0
- package/build/dex/test-aave-v3/config.js +15 -0
- package/build/dex/test-aave-v3/config.js.map +1 -0
- package/build/dex/test-aave-v3/test-aave-v3-pool.d.ts +39 -0
- package/build/dex/test-aave-v3/test-aave-v3-pool.js +63 -0
- package/build/dex/test-aave-v3/test-aave-v3-pool.js.map +1 -0
- package/build/dex/test-aave-v3/test-aave-v3.d.ts +37 -0
- package/build/dex/test-aave-v3/test-aave-v3.js +126 -0
- package/build/dex/test-aave-v3/test-aave-v3.js.map +1 -0
- package/build/dex/test-aave-v3/types.d.ts +6 -0
- package/build/dex/test-aave-v3/types.js +3 -0
- package/build/dex/test-aave-v3/types.js.map +1 -0
- package/build/lib/fetcher/fetcher.js +3 -0
- package/build/lib/fetcher/fetcher.js.map +1 -1
- package/package.json +1 -1
- package/src/dex/generic-rfq/e2e-test-config.ts +37 -0
- package/src/dex/generic-rfq/generic-rfq-e2e.test.ts +63 -258
- package/src/dex/generic-rfq/generic-rfq-local-e2e.test.ts +121 -0
- package/src/dex/generic-rfq/rate-fetcher.ts +2 -0
- package/src/dex/generic-rfq/validators.test.ts +6 -32
- package/src/dex/generic-rfq/validators.ts +57 -32
- package/src/dex/simple-exchange.ts +1 -1
- package/src/lib/fetcher/fetcher.ts +6 -0
- package/tests/constants-e2e.ts +2 -0
- package/tests/utils-e2e.ts +59 -48
|
@@ -76,6 +76,12 @@ export default class Fetcher<T> {
|
|
|
76
76
|
.map((_, i) => i)
|
|
77
77
|
.filter(i => results[i] instanceof Error);
|
|
78
78
|
|
|
79
|
+
results.map(result => {
|
|
80
|
+
this.logger.debug(
|
|
81
|
+
'Results Data:',
|
|
82
|
+
JSON.stringify((result as any).data, null, 4).substring(0, 500),
|
|
83
|
+
);
|
|
84
|
+
});
|
|
79
85
|
failures.forEach(i => {
|
|
80
86
|
this.logger.warn(
|
|
81
87
|
`failed polling ${this.requests[i].info.requestOptions.url} ${results[i]}`,
|
package/tests/constants-e2e.ts
CHANGED
package/tests/utils-e2e.ts
CHANGED
|
@@ -299,6 +299,7 @@ export type TestParamE2E = {
|
|
|
299
299
|
destTokenBalanceOverrides?: Record<Address, string>;
|
|
300
300
|
destTokenAllowanceOverrides?: Record<Address, string>;
|
|
301
301
|
sleepMs?: number;
|
|
302
|
+
skipTenderly?: boolean;
|
|
302
303
|
};
|
|
303
304
|
|
|
304
305
|
const makeFakeTransferToSenderAddress = (
|
|
@@ -332,14 +333,19 @@ export async function newTestE2E({
|
|
|
332
333
|
limitOrderProvider,
|
|
333
334
|
transferFees,
|
|
334
335
|
sleepMs,
|
|
336
|
+
skipTenderly,
|
|
335
337
|
}: TestParamE2E) {
|
|
338
|
+
const useTenderly = !skipTenderly;
|
|
336
339
|
const amount = BigInt(_amount);
|
|
337
340
|
const twiceAmount = BigInt(_amount) * 2n;
|
|
338
|
-
|
|
339
|
-
|
|
341
|
+
let ts: TenderlySimulation | undefined = undefined;
|
|
342
|
+
if (useTenderly) {
|
|
343
|
+
ts = new TenderlySimulation(network);
|
|
344
|
+
await ts.setup();
|
|
345
|
+
}
|
|
340
346
|
|
|
341
|
-
if (adapterBytecode) {
|
|
342
|
-
const deployTx = await ts.simulate(
|
|
347
|
+
if (useTenderly && adapterBytecode) {
|
|
348
|
+
const deployTx = await (ts as TenderlySimulation).simulate(
|
|
343
349
|
deployAdapterParams(adapterBytecode, network),
|
|
344
350
|
);
|
|
345
351
|
|
|
@@ -354,13 +360,13 @@ export async function newTestE2E({
|
|
|
354
360
|
'gas',
|
|
355
361
|
);
|
|
356
362
|
|
|
357
|
-
const whitelistTx = await ts.simulate(
|
|
363
|
+
const whitelistTx = await (ts as TenderlySimulation).simulate(
|
|
358
364
|
whiteListAdapterParams(adapterAddress, network),
|
|
359
365
|
);
|
|
360
366
|
expect(whitelistTx.success).toEqual(true);
|
|
361
367
|
}
|
|
362
368
|
|
|
363
|
-
if (thirdPartyAddress) {
|
|
369
|
+
if (useTenderly && thirdPartyAddress) {
|
|
364
370
|
const stateOverrides: StateOverrides = {
|
|
365
371
|
networkID: `${network}`,
|
|
366
372
|
stateOverrides: {},
|
|
@@ -377,43 +383,15 @@ export async function newTestE2E({
|
|
|
377
383
|
: (BigInt(MAX_UINT) / 4n).toString(),
|
|
378
384
|
);
|
|
379
385
|
|
|
380
|
-
await ts.simulate(giftTx, stateOverrides);
|
|
386
|
+
await (ts as TenderlySimulation).simulate(giftTx, stateOverrides);
|
|
381
387
|
}
|
|
382
388
|
|
|
383
|
-
const stateOverrides: StateOverrides = {
|
|
384
|
-
networkID: `${network}`,
|
|
385
|
-
stateOverrides: {},
|
|
386
|
-
};
|
|
387
|
-
srcToken.applyOverrides(stateOverrides);
|
|
388
|
-
destToken.applyOverrides(stateOverrides);
|
|
389
|
-
|
|
390
|
-
if (swapSide === SwapSide.SELL) {
|
|
391
|
-
srcToken
|
|
392
|
-
.addBalance(senderAddress, twiceAmount.toString())
|
|
393
|
-
.addAllowance(
|
|
394
|
-
senderAddress,
|
|
395
|
-
config.tokenTransferProxyAddress,
|
|
396
|
-
amount.toString(),
|
|
397
|
-
);
|
|
398
|
-
} else {
|
|
399
|
-
srcToken
|
|
400
|
-
.addBalance(senderAddress, MAX_UINT)
|
|
401
|
-
.addAllowance(
|
|
402
|
-
senderAddress,
|
|
403
|
-
config.tokenTransferProxyAddress,
|
|
404
|
-
(BigInt(MAX_UINT) / 8n).toString(),
|
|
405
|
-
);
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
srcToken.applyOverrides(stateOverrides);
|
|
409
|
-
destToken.applyOverrides(stateOverrides);
|
|
410
|
-
|
|
411
389
|
const useAPI = testingEndpoint && !poolIdentifiers;
|
|
412
390
|
// The API currently doesn't allow for specifying poolIdentifiers
|
|
413
391
|
const paraswap: IParaSwapSDK = new LocalParaswapSDK(
|
|
414
392
|
network,
|
|
415
393
|
dexKey,
|
|
416
|
-
|
|
394
|
+
'',
|
|
417
395
|
limitOrderProvider,
|
|
418
396
|
);
|
|
419
397
|
|
|
@@ -449,19 +427,52 @@ export async function newTestE2E({
|
|
|
449
427
|
senderAddress,
|
|
450
428
|
);
|
|
451
429
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
430
|
+
if (useTenderly) {
|
|
431
|
+
const stateOverrides: StateOverrides = {
|
|
432
|
+
networkID: `${network}`,
|
|
433
|
+
stateOverrides: {},
|
|
434
|
+
};
|
|
435
|
+
srcToken.applyOverrides(stateOverrides);
|
|
436
|
+
destToken.applyOverrides(stateOverrides);
|
|
437
|
+
|
|
438
|
+
if (swapSide === SwapSide.SELL) {
|
|
439
|
+
srcToken
|
|
440
|
+
.addBalance(senderAddress, twiceAmount.toString())
|
|
441
|
+
.addAllowance(
|
|
442
|
+
senderAddress,
|
|
443
|
+
config.tokenTransferProxyAddress,
|
|
444
|
+
amount.toString(),
|
|
445
|
+
);
|
|
446
|
+
} else {
|
|
447
|
+
srcToken
|
|
448
|
+
.addBalance(senderAddress, MAX_UINT)
|
|
449
|
+
.addAllowance(
|
|
450
|
+
senderAddress,
|
|
451
|
+
config.tokenTransferProxyAddress,
|
|
452
|
+
(BigInt(MAX_UINT) / 8n).toString(),
|
|
453
|
+
);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
srcToken.applyOverrides(stateOverrides);
|
|
457
|
+
destToken.applyOverrides(stateOverrides);
|
|
458
|
+
|
|
459
|
+
const swapTx = await (ts as TenderlySimulation).simulate(
|
|
460
|
+
swapParams,
|
|
461
|
+
stateOverrides,
|
|
462
462
|
);
|
|
463
|
-
|
|
464
|
-
|
|
463
|
+
console.log(`${srcToken.address}_${destToken.address}_${dexKey!}`);
|
|
464
|
+
// Only log gas estimate if testing against API
|
|
465
|
+
if (useAPI)
|
|
466
|
+
console.log(
|
|
467
|
+
`Gas Estimate API: ${priceRoute.gasCost}, Simulated: ${
|
|
468
|
+
swapTx!.gasUsed
|
|
469
|
+
}, Difference: ${
|
|
470
|
+
parseInt(priceRoute.gasCost) - parseInt(swapTx!.gasUsed)
|
|
471
|
+
}`,
|
|
472
|
+
);
|
|
473
|
+
console.log(`Tenderly URL: ${swapTx!.tenderlyUrl}`);
|
|
474
|
+
expect(swapTx!.success).toEqual(true);
|
|
475
|
+
}
|
|
465
476
|
} finally {
|
|
466
477
|
if (paraswap.releaseResources) {
|
|
467
478
|
await paraswap.releaseResources();
|