@paraswap/dex-lib 2.14.1 → 2.14.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 (46) hide show
  1. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  2. package/.idea/misc.xml +6 -0
  3. package/.idea/modules.xml +8 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/.vscode/launch.json +21 -0
  6. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  7. package/build/dex/aave-v3/tokens/avalanche.json +50 -0
  8. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  9. package/build/dex/aave-v3/tokens/mainnet.json +44 -0
  10. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  11. package/build/dex/aave-v3/tokens/polygon.json +98 -0
  12. package/build/dex/balancer-v2/VirtualBoostedPool.d.ts +79 -0
  13. package/build/dex/balancer-v2/VirtualBoostedPool.js +382 -0
  14. package/build/dex/balancer-v2/VirtualBoostedPool.js.map +1 -0
  15. package/build/dex/generic-rfq/e2e-test-config.d.ts +9 -0
  16. package/build/dex/generic-rfq/e2e-test-config.js +33 -0
  17. package/build/dex/generic-rfq/e2e-test-config.js.map +1 -0
  18. package/build/dex/generic-rfq/rate-fetcher.js +2 -0
  19. package/build/dex/generic-rfq/rate-fetcher.js.map +1 -1
  20. package/build/dex/generic-rfq/validators.d.ts +1 -1
  21. package/build/dex/generic-rfq/validators.js +36 -26
  22. package/build/dex/generic-rfq/validators.js.map +1 -1
  23. package/build/dex/test-aave-v3/config.d.ts +4 -0
  24. package/build/dex/test-aave-v3/config.js +15 -0
  25. package/build/dex/test-aave-v3/config.js.map +1 -0
  26. package/build/dex/test-aave-v3/test-aave-v3-pool.d.ts +39 -0
  27. package/build/dex/test-aave-v3/test-aave-v3-pool.js +63 -0
  28. package/build/dex/test-aave-v3/test-aave-v3-pool.js.map +1 -0
  29. package/build/dex/test-aave-v3/test-aave-v3.d.ts +37 -0
  30. package/build/dex/test-aave-v3/test-aave-v3.js +126 -0
  31. package/build/dex/test-aave-v3/test-aave-v3.js.map +1 -0
  32. package/build/dex/test-aave-v3/types.d.ts +6 -0
  33. package/build/dex/test-aave-v3/types.js +3 -0
  34. package/build/dex/test-aave-v3/types.js.map +1 -0
  35. package/build/lib/fetcher/fetcher.js +3 -0
  36. package/build/lib/fetcher/fetcher.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/dex/generic-rfq/e2e-test-config.ts +37 -0
  39. package/src/dex/generic-rfq/generic-rfq-e2e.test.ts +63 -258
  40. package/src/dex/generic-rfq/generic-rfq-local-e2e.test.ts +121 -0
  41. package/src/dex/generic-rfq/rate-fetcher.ts +2 -0
  42. package/src/dex/generic-rfq/validators.test.ts +6 -32
  43. package/src/dex/generic-rfq/validators.ts +57 -32
  44. package/src/lib/fetcher/fetcher.ts +6 -0
  45. package/tests/constants-e2e.ts +2 -0
  46. package/tests/utils-e2e.ts +59 -48
@@ -50,6 +50,8 @@ export const Tokens: {
50
50
  USDT: {
51
51
  address: '0xdac17f958d2ee523a2206206994597c13d831ec7',
52
52
  decimals: 6,
53
+ addBalance: balancesFn,
54
+ addAllowance: allowedFn,
53
55
  },
54
56
  STETH: {
55
57
  address: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84',
@@ -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
- const ts = new TenderlySimulation(network);
339
- await ts.setup();
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
- `https://rpc.tenderly.co/fork/${ts.forkId}`,
394
+ '',
417
395
  limitOrderProvider,
418
396
  );
419
397
 
@@ -449,19 +427,52 @@ export async function newTestE2E({
449
427
  senderAddress,
450
428
  );
451
429
 
452
- const swapTx = await ts.simulate(swapParams, stateOverrides);
453
- console.log(`${srcToken.address}_${destToken.address}_${dexKey!}`);
454
- // Only log gas estimate if testing against API
455
- if (useAPI)
456
- console.log(
457
- `Gas Estimate API: ${priceRoute.gasCost}, Simulated: ${
458
- swapTx!.gasUsed
459
- }, Difference: ${
460
- parseInt(priceRoute.gasCost) - parseInt(swapTx!.gasUsed)
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
- console.log(`Tenderly URL: ${swapTx!.tenderlyUrl}`);
464
- expect(swapTx!.success).toEqual(true);
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();