@paraswap/dex-lib 4.1.7-pub-sub.2 → 4.1.7-pub-sub.4

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 (96) hide show
  1. package/build/dex/angle-staked-stable/angle-staked-stable.js +2 -1
  2. package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -1
  3. package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -1
  4. package/build/dex/balancer-v1/config.js +2 -1
  5. package/build/dex/balancer-v1/config.js.map +1 -1
  6. package/build/dex/dexalot/dexalot.d.ts +2 -9
  7. package/build/dex/dexalot/dexalot.js +18 -62
  8. package/build/dex/dexalot/dexalot.js.map +1 -1
  9. package/build/dex/dexalot/rate-fetcher.d.ts +19 -4
  10. package/build/dex/dexalot/rate-fetcher.js +112 -8
  11. package/build/dex/dexalot/rate-fetcher.js.map +1 -1
  12. package/build/dex/dexalot/types.d.ts +0 -1
  13. package/build/dex/generic-rfq/rate-fetcher.js +0 -12
  14. package/build/dex/generic-rfq/rate-fetcher.js.map +1 -1
  15. package/build/dex/hashflow/constants.d.ts +2 -2
  16. package/build/dex/hashflow/constants.js +2 -2
  17. package/build/dex/hashflow/hashflow.d.ts +1 -6
  18. package/build/dex/hashflow/hashflow.js +9 -34
  19. package/build/dex/hashflow/hashflow.js.map +1 -1
  20. package/build/dex/hashflow/rate-fetcher.d.ts +12 -2
  21. package/build/dex/hashflow/rate-fetcher.js +54 -6
  22. package/build/dex/hashflow/rate-fetcher.js.map +1 -1
  23. package/build/dex/hashflow/types.d.ts +0 -1
  24. package/build/dex/weth/weth.js +2 -1
  25. package/build/dex/weth/weth.js.map +1 -1
  26. package/build/lib/pub-sub.d.ts +0 -2
  27. package/build/lib/pub-sub.js +0 -12
  28. package/build/lib/pub-sub.js.map +1 -1
  29. package/build/pricing-helper.d.ts +1 -1
  30. package/build/pricing-helper.js +13 -9
  31. package/build/pricing-helper.js.map +1 -1
  32. package/build/types.d.ts +1 -0
  33. package/package.json +1 -1
  34. package/src/dex/aave-gsm/aave-gsm-gas-estimation.test.ts +32 -0
  35. package/src/dex/aave-v2/aave-v2-gas-estimation.test.ts +28 -0
  36. package/src/dex/aave-v3/aave-v3-gas-estimation.test.ts +66 -0
  37. package/src/dex/aave-v3-stata/aave-v3-stata-gas-estimation.test.ts +41 -0
  38. package/src/dex/aave-v3-stata-v2/aave-v3-stata-v2-gas-estimation.test.ts +41 -0
  39. package/src/dex/angle-staked-stable/angle-staked-stable-gas-estimation.test.ts +29 -0
  40. package/src/dex/angle-staked-stable/angle-staked-stable.ts +2 -1
  41. package/src/dex/angle-transmuter/angle-transmuter-gas-estimation.test.ts +41 -0
  42. package/src/dex/angle-transmuter/angle-transmuter.ts +0 -1
  43. package/src/dex/balancer-v1/balancer-v1-gas-estimation.test.ts +29 -0
  44. package/src/dex/balancer-v1/config.ts +2 -1
  45. package/src/dex/balancer-v2/balancer-v2-gas-estimation.test.ts +98 -0
  46. package/src/dex/balancer-v3/balancer-v3-gas-estimation.test.ts +30 -0
  47. package/src/dex/bancor/bancor-gas-estimation.test.ts +30 -0
  48. package/src/dex/bebop/bebop-gas-estimation.test.ts +30 -0
  49. package/src/dex/concentrator-arusd/concentrator-arusd-gas-estimation.test.ts +29 -0
  50. package/src/dex/curve-v1/curve-v1-gas-estimation.test.ts +29 -0
  51. package/src/dex/curve-v2/curve-v2-gas-estimation.test.ts +29 -0
  52. package/src/dex/dexalot/dexalot.ts +27 -127
  53. package/src/dex/dexalot/rate-fetcher.ts +219 -9
  54. package/src/dex/dexalot/types.ts +0 -1
  55. package/src/dex/fluid-dex/fluid-dex-gas-estimation.test.ts +29 -0
  56. package/src/dex/fx-protocol-rusd/fx-protocol-rusd-gas-estimation.test.ts +29 -0
  57. package/src/dex/generic-rfq/rate-fetcher.ts +0 -30
  58. package/src/dex/hashflow/constants.ts +2 -2
  59. package/src/dex/hashflow/hashflow-gas-estimation.test.ts +30 -0
  60. package/src/dex/hashflow/hashflow.ts +11 -67
  61. package/src/dex/hashflow/rate-fetcher.ts +106 -8
  62. package/src/dex/hashflow/types.ts +0 -1
  63. package/src/dex/idle-dao/idle-dao--gas-estimation.test.ts +30 -0
  64. package/src/dex/lido/lido-gas-estimation.test.ts +29 -0
  65. package/src/dex/lite-psm/lite-psm-gas-estimation.test.ts +34 -0
  66. package/src/dex/maker-psm/maker-psm-gas-estimation.test.ts +34 -0
  67. package/src/dex/maverick-v1/maverick-v1-gas-estimation.test.ts +29 -0
  68. package/src/dex/maverick-v2/maverick-v2-gas-estimation.test.ts +29 -0
  69. package/src/dex/pancakeswap-v3/pancakeswap-v3-gas-estimation.test.ts +29 -0
  70. package/src/dex/polygon-migrator/polygon-migrator-gas-estimation.test.ts +41 -0
  71. package/src/dex/sky-converter/sky-converter-gas-estimation.test.ts +78 -0
  72. package/src/dex/solidly/solidly-gas-estimation.test.ts +29 -0
  73. package/src/dex/solidly-v3/solidly-v3-gas-estimation.test.ts +29 -0
  74. package/src/dex/spark/spark-gas-estimation.test.ts +29 -0
  75. package/src/dex/stader/stader-gas-estimation.test.ts +29 -0
  76. package/src/dex/stkgho/stkgho-gas-estimation.test.ts +29 -0
  77. package/src/dex/swaap-v2/swaap-v2-estimation.test.ts +29 -0
  78. package/src/dex/swell/swell-estimation.test.ts +29 -0
  79. package/src/dex/trader-joe-v2.1/trader-joe-v2.1-gas-estimation.test.ts +29 -0
  80. package/src/dex/uniswap-v2/uniswap-v2-gas-estimation.test.ts +98 -0
  81. package/src/dex/uniswap-v3/uniswap-v3-gas-estimation.test.ts +98 -0
  82. package/src/dex/usual/usual-gas-estimation.test.ts +54 -0
  83. package/src/dex/usual-pp/usual-pp-gas-estimation.test.ts +29 -0
  84. package/src/dex/weth/weth-gas-estimation.test.ts +42 -0
  85. package/src/dex/weth/weth.ts +3 -1
  86. package/src/dex/wombat/wombat-gas-estimation.test.ts +29 -0
  87. package/src/dex/wsteth/wsteth-gas-estimation.test.ts +41 -0
  88. package/src/dex/wusdm/wusdm-gas-estimation.test.ts +41 -0
  89. package/src/lib/pub-sub.ts +0 -27
  90. package/src/pricing-helper.ts +19 -11
  91. package/src/types.ts +1 -0
  92. package/tests/constants-e2e.ts +8 -0
  93. package/tests/tenderly-simulation-new.test.ts +151 -0
  94. package/tests/tenderly-simulation-new.ts +698 -0
  95. package/tests/token-storage-slots.json +532 -0
  96. package/tests/utils-e2e.ts +137 -1
@@ -0,0 +1,28 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('AaveV2 Gas Estimation', () => {
9
+ const dexKey = 'AaveV2';
10
+ const network = Network.MAINNET;
11
+
12
+ it('swapExactAmountIn', async () => {
13
+ const srcToken = Tokens[network]['WETH'];
14
+ const destToken = Tokens[network]['AWETH'];
15
+
16
+ const amount = 1000000000000000000n;
17
+
18
+ await testGasEstimation(
19
+ network,
20
+ srcToken,
21
+ destToken,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountIn,
26
+ );
27
+ });
28
+ });
@@ -0,0 +1,66 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('AaveV3 Gas Estimation', () => {
9
+ const dexKey = 'AaveV3';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const ETH = Tokens[network]['ETH'];
14
+ const WETH = Tokens[network]['WETH'];
15
+ const aEthWETH = Tokens[network]['aEthWETH'];
16
+ const amount = 1000000000000000000n;
17
+
18
+ it('supply', async () => {
19
+ await testGasEstimation(
20
+ network,
21
+ WETH,
22
+ aEthWETH,
23
+ amount,
24
+ SwapSide.SELL,
25
+ dexKey,
26
+ ContractMethodV6.swapExactAmountIn,
27
+ );
28
+ });
29
+
30
+ it('withdraw', async () => {
31
+ await testGasEstimation(
32
+ network,
33
+ aEthWETH,
34
+ WETH,
35
+ amount,
36
+ SwapSide.SELL,
37
+ dexKey,
38
+ ContractMethodV6.swapExactAmountIn,
39
+ );
40
+ });
41
+
42
+ it('depositETH', async () => {
43
+ await testGasEstimation(
44
+ network,
45
+ ETH,
46
+ aEthWETH,
47
+ amount,
48
+ SwapSide.SELL,
49
+ dexKey,
50
+ ContractMethodV6.swapExactAmountIn,
51
+ );
52
+ });
53
+
54
+ it('withdrawETH', async () => {
55
+ await testGasEstimation(
56
+ network,
57
+ aEthWETH,
58
+ ETH,
59
+ amount,
60
+ SwapSide.SELL,
61
+ dexKey,
62
+ ContractMethodV6.swapExactAmountIn,
63
+ );
64
+ });
65
+ });
66
+ });
@@ -0,0 +1,41 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('AaveV3Stata Gas Estimation', () => {
9
+ const dexKey = 'AaveV3Stata';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const WETH = Tokens[network]['WETH'];
14
+ const stataEthWETH = Tokens[network]['stataEthWETH'];
15
+ const amount = 1000000000000000000n;
16
+
17
+ it('redeem', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ stataEthWETH,
21
+ WETH,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountIn,
26
+ );
27
+ });
28
+
29
+ it('deposit', async () => {
30
+ await testGasEstimation(
31
+ network,
32
+ WETH,
33
+ stataEthWETH,
34
+ amount,
35
+ SwapSide.SELL,
36
+ dexKey,
37
+ ContractMethodV6.swapExactAmountIn,
38
+ );
39
+ });
40
+ });
41
+ });
@@ -0,0 +1,41 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('AaveV3StataV2 Gas Estimation', () => {
9
+ const dexKey = 'AaveV3StataV2';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const WETH = Tokens[network]['WETH'];
14
+ const waEthWETH = Tokens[network]['waEthWETH'];
15
+ const amount = 1000000000000000000n; // 1 eth
16
+
17
+ it('redeem', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ waEthWETH,
21
+ WETH,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountIn,
26
+ );
27
+ });
28
+
29
+ it('deposit', async () => {
30
+ await testGasEstimation(
31
+ network,
32
+ WETH,
33
+ waEthWETH,
34
+ amount,
35
+ SwapSide.SELL,
36
+ dexKey,
37
+ ContractMethodV6.swapExactAmountIn,
38
+ );
39
+ });
40
+ });
41
+ });
@@ -0,0 +1,29 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('AngleStakedStable Gas Estimation', () => {
9
+ const dexKey = 'AngleStakedStableUSD';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const USDA = Tokens[network]['USDA'];
14
+ const stUSD = Tokens[network]['stUSD'];
15
+ const amount = 990000000000000000n;
16
+
17
+ it('deposit', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ USDA,
21
+ stUSD,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountIn,
26
+ );
27
+ });
28
+ });
29
+ });
@@ -22,7 +22,8 @@ import { SimpleExchange } from '../simple-exchange';
22
22
  import { AngleStakedStableConfig, Adapters } from './config';
23
23
  import { AngleStakedStableEventPool } from './angle-staked-stable-pool';
24
24
 
25
- const AngleStakedGasCost = 80000;
25
+ // https://dashboard.tenderly.co/paraswap/paraswap/simulator/51688afb-c603-48cf-aa2c-9629c65b1bf9/gas-usage
26
+ const AngleStakedGasCost = 70_000;
26
27
 
27
28
  export class AngleStakedStable
28
29
  extends SimpleExchange
@@ -0,0 +1,41 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('AngleTransmuter Gas Estimation', () => {
9
+ const dexKey = 'AngleTransmuter';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const USDC = Tokens[network]['USDC'];
14
+ const USDA = Tokens[network]['USDA'];
15
+ const amount = 99000000000000000n;
16
+
17
+ it('swapExactInput - from collateral', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ USDC,
21
+ USDA,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountIn,
26
+ );
27
+ });
28
+
29
+ it('swapExactInput - to collateral', async () => {
30
+ await testGasEstimation(
31
+ network,
32
+ USDA,
33
+ USDC,
34
+ amount,
35
+ SwapSide.SELL,
36
+ dexKey,
37
+ ContractMethodV6.swapExactAmountIn,
38
+ );
39
+ });
40
+ });
41
+ });
@@ -5,7 +5,6 @@ import {
5
5
  ExchangePrices,
6
6
  PoolPrices,
7
7
  AdapterExchangeParam,
8
- SimpleExchangeParam,
9
8
  PoolLiquidity,
10
9
  Logger,
11
10
  NumberAsString,
@@ -0,0 +1,29 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('BalancerV1 Gas Estimation', () => {
9
+ const dexKey = 'BalancerV1';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const USDC = Tokens[network]['USDC'];
14
+ const WBTC = Tokens[network]['WBTC'];
15
+ const amount = 3333000000n;
16
+
17
+ it('batchSwapExactIn', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ USDC,
21
+ WBTC,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountIn,
26
+ );
27
+ });
28
+ });
29
+ });
@@ -6,7 +6,8 @@ export const MAX_POOL_CNT = 1000;
6
6
  export const MIN_USD_LIQUIDITY_TO_FETCH = 100;
7
7
  export const BALANCES_MULTICALL_POOLS_LIMIT = 200;
8
8
  export const MAX_POOLS_FOR_PRICING = 5;
9
- export const BALANCER_SWAP_GAS_COST = 120 * 1000;
9
+ // https://dashboard.tenderly.co/paraswap/paraswap/simulator/2ae61b00-ad00-41e7-bfcd-a7e4fb3534ca?trace=0.3.0.0
10
+ export const BALANCER_SWAP_GAS_COST = 150 * 1000;
10
11
 
11
12
  export const BalancerV1Config: DexConfigMap<DexParams> = {
12
13
  BalancerV1: {
@@ -0,0 +1,98 @@
1
+ /* eslint-disable no-console */
2
+ import dotenv from 'dotenv';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+ import { ethers } from 'ethers';
8
+
9
+ dotenv.config();
10
+
11
+ describe('BalancerV2 Gas Estimation', () => {
12
+ const dexKey = 'BalancerV2';
13
+ const network = Network.MAINNET;
14
+ const tokens = Tokens[network];
15
+ const ETH = tokens['ETH'];
16
+ const WETH = tokens['WETH'];
17
+ const USDT = tokens['USDT'];
18
+ const USDC = tokens['USDC'];
19
+ const WBTC = tokens['WBTC'];
20
+ const amount = 100000000n; // 100 usdt
21
+
22
+ const methods: ContractMethodV6[] = [
23
+ ContractMethodV6.swapExactAmountInOnBalancerV2,
24
+ ContractMethodV6.swapExactAmountIn,
25
+ ];
26
+
27
+ methods.forEach(async method => {
28
+ describe(method, () => {
29
+ it('one swap', async () => {
30
+ await testGasEstimation(
31
+ network,
32
+ USDT,
33
+ USDC,
34
+ amount,
35
+ SwapSide.SELL,
36
+ dexKey,
37
+ method,
38
+ );
39
+ });
40
+
41
+ it('one swap with unwrap', async () => {
42
+ await testGasEstimation(
43
+ network,
44
+ USDT,
45
+ ETH,
46
+ amount,
47
+ SwapSide.SELL,
48
+ dexKey,
49
+ method,
50
+ );
51
+ });
52
+
53
+ it('one swap with wrap', async () => {
54
+ const oneEth = ethers.utils.parseEther('1').toBigInt();
55
+
56
+ await testGasEstimation(
57
+ network,
58
+ ETH,
59
+ USDT,
60
+ oneEth,
61
+ SwapSide.SELL,
62
+ dexKey,
63
+ method,
64
+ );
65
+ });
66
+
67
+ it('two swaps', async () => {
68
+ const route = [USDT.address, WETH.address, USDC.address];
69
+
70
+ await testGasEstimation(
71
+ network,
72
+ USDT,
73
+ USDC,
74
+ amount,
75
+ SwapSide.SELL,
76
+ dexKey,
77
+ method,
78
+ route,
79
+ );
80
+ });
81
+
82
+ it('three swaps', async () => {
83
+ const route = [USDT.address, WETH.address, WBTC.address, USDC.address];
84
+
85
+ await testGasEstimation(
86
+ network,
87
+ USDT,
88
+ USDC,
89
+ amount,
90
+ SwapSide.SELL,
91
+ dexKey,
92
+ method,
93
+ route,
94
+ );
95
+ });
96
+ });
97
+ });
98
+ });
@@ -0,0 +1,30 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('BalancerV3 Gas Estimation', () => {
9
+ const dexKey = 'BalancerV3';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const USDC = Tokens[network]['USDC'];
14
+ const WBTC = Tokens[network]['WBTC'];
15
+ const amount = 3333000000n;
16
+
17
+ // todo: add more cases
18
+ it('swapExactIn', async () => {
19
+ await testGasEstimation(
20
+ network,
21
+ USDC,
22
+ WBTC,
23
+ amount,
24
+ SwapSide.SELL,
25
+ dexKey,
26
+ ContractMethodV6.swapExactAmountIn,
27
+ );
28
+ });
29
+ });
30
+ });
@@ -0,0 +1,30 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('Bancor Gas Estimation', () => {
9
+ const dexKey = 'Bancor';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const USDT = Tokens[network]['USDT'];
14
+ const BNT = Tokens[network]['BNT'];
15
+ const amount = 100000000n;
16
+
17
+ // https://dashboard.tenderly.co/paraswap/paraswap/simulator/bcb58187-2a53-4d7f-b0b7-f1cce81ef0c8/gas-usage
18
+ it('convert2', async () => {
19
+ await testGasEstimation(
20
+ network,
21
+ USDT,
22
+ BNT,
23
+ amount,
24
+ SwapSide.SELL,
25
+ dexKey,
26
+ ContractMethodV6.swapExactAmountIn,
27
+ );
28
+ });
29
+ });
30
+ });
@@ -0,0 +1,30 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('Bebop Gas Estimation', () => {
9
+ const dexKey = 'Bebop';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const USDC = Tokens[network]['USDC'];
14
+ const WETH = Tokens[network]['WETH'];
15
+ const amount = 1000000000n;
16
+
17
+ // todo: debug build fail in this test case
18
+ it('swapSingle', async () => {
19
+ await testGasEstimation(
20
+ network,
21
+ USDC,
22
+ WETH,
23
+ amount,
24
+ SwapSide.SELL,
25
+ dexKey,
26
+ ContractMethodV6.swapExactAmountIn,
27
+ );
28
+ });
29
+ });
30
+ });
@@ -0,0 +1,29 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('ConcentratorArusd Gas Estimation', () => {
9
+ const dexKey = 'ConcentratorArusd';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountIn', () => {
13
+ const rUSD = Tokens[network]['rUSD'];
14
+ const arUSD = Tokens[network]['arUSD'];
15
+ const amount = 1000000000000000n;
16
+
17
+ it('deposit', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ rUSD,
21
+ arUSD,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountIn,
26
+ );
27
+ });
28
+ });
29
+ });
@@ -0,0 +1,29 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('CurveV1 Gas Estimation', () => {
9
+ const dexKey = 'CurveV1';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountInOnCurveV1', () => {
13
+ const USDT = Tokens[network]['USDT'];
14
+ const USDC = Tokens[network]['USDC'];
15
+ const amount = 100000000n; // 100 usdt
16
+
17
+ it('exchange_underlying', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ USDT,
21
+ USDC,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountInOnCurveV1,
26
+ );
27
+ });
28
+ });
29
+ });
@@ -0,0 +1,29 @@
1
+ /* eslint-disable no-console */
2
+ import 'dotenv/config';
3
+ import { testGasEstimation } from '../../../tests/utils-e2e';
4
+ import { Tokens } from '../../../tests/constants-e2e';
5
+ import { Network, SwapSide } from '../../constants';
6
+ import { ContractMethodV6 } from '@paraswap/core';
7
+
8
+ describe('CurveV2 Gas Estimation', () => {
9
+ const dexKey = 'CurveV2';
10
+ const network = Network.MAINNET;
11
+
12
+ describe('swapExactAmountInOnCurveV2', () => {
13
+ const USDC = Tokens[network]['USDC'];
14
+ const USDT = Tokens[network]['USDT'];
15
+ const amount = 1000000n; // 1 usdc
16
+
17
+ it('exchange_underlying', async () => {
18
+ await testGasEstimation(
19
+ network,
20
+ USDC,
21
+ USDT,
22
+ amount,
23
+ SwapSide.SELL,
24
+ dexKey,
25
+ ContractMethodV6.swapExactAmountInOnCurveV2,
26
+ );
27
+ });
28
+ });
29
+ });