@paraswap/dex-lib 4.1.7-pub-sub → 4.1.7-pub-sub.3
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/build/dex/angle-staked-stable/angle-staked-stable.js +2 -1
- package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -1
- package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -1
- package/build/dex/balancer-v1/config.js +2 -1
- package/build/dex/balancer-v1/config.js.map +1 -1
- package/build/dex/weth/weth.js +2 -1
- package/build/dex/weth/weth.js.map +1 -1
- package/build/lib/pub-sub.js +5 -5
- package/build/lib/pub-sub.js.map +1 -1
- package/build/pricing-helper.d.ts +1 -1
- package/build/pricing-helper.js +13 -9
- package/build/pricing-helper.js.map +1 -1
- package/build/types.d.ts +1 -0
- package/package.json +1 -1
- package/src/dex/aave-gsm/aave-gsm-gas-estimation.test.ts +32 -0
- package/src/dex/aave-v2/aave-v2-gas-estimation.test.ts +28 -0
- package/src/dex/aave-v3/aave-v3-gas-estimation.test.ts +66 -0
- package/src/dex/aave-v3-stata/aave-v3-stata-gas-estimation.test.ts +41 -0
- package/src/dex/aave-v3-stata-v2/aave-v3-stata-v2-gas-estimation.test.ts +41 -0
- package/src/dex/angle-staked-stable/angle-staked-stable-gas-estimation.test.ts +29 -0
- package/src/dex/angle-staked-stable/angle-staked-stable.ts +2 -1
- package/src/dex/angle-transmuter/angle-transmuter-gas-estimation.test.ts +41 -0
- package/src/dex/angle-transmuter/angle-transmuter.ts +0 -1
- package/src/dex/balancer-v1/balancer-v1-gas-estimation.test.ts +29 -0
- package/src/dex/balancer-v1/config.ts +2 -1
- package/src/dex/balancer-v2/balancer-v2-gas-estimation.test.ts +98 -0
- package/src/dex/balancer-v3/balancer-v3-gas-estimation.test.ts +30 -0
- package/src/dex/bancor/bancor-gas-estimation.test.ts +30 -0
- package/src/dex/bebop/bebop-gas-estimation.test.ts +30 -0
- package/src/dex/concentrator-arusd/concentrator-arusd-gas-estimation.test.ts +29 -0
- package/src/dex/curve-v1/curve-v1-gas-estimation.test.ts +29 -0
- package/src/dex/curve-v2/curve-v2-gas-estimation.test.ts +29 -0
- package/src/dex/fluid-dex/fluid-dex-gas-estimation.test.ts +29 -0
- package/src/dex/fx-protocol-rusd/fx-protocol-rusd-gas-estimation.test.ts +29 -0
- package/src/dex/hashflow/hashflow-gas-estimation.test.ts +30 -0
- package/src/dex/idle-dao/idle-dao--gas-estimation.test.ts +30 -0
- package/src/dex/lido/lido-gas-estimation.test.ts +29 -0
- package/src/dex/lite-psm/lite-psm-gas-estimation.test.ts +34 -0
- package/src/dex/maker-psm/maker-psm-gas-estimation.test.ts +34 -0
- package/src/dex/maverick-v1/maverick-v1-gas-estimation.test.ts +29 -0
- package/src/dex/maverick-v2/maverick-v2-gas-estimation.test.ts +29 -0
- package/src/dex/pancakeswap-v3/pancakeswap-v3-gas-estimation.test.ts +29 -0
- package/src/dex/polygon-migrator/polygon-migrator-gas-estimation.test.ts +41 -0
- package/src/dex/sky-converter/sky-converter-gas-estimation.test.ts +78 -0
- package/src/dex/solidly/solidly-gas-estimation.test.ts +29 -0
- package/src/dex/solidly-v3/solidly-v3-gas-estimation.test.ts +29 -0
- package/src/dex/spark/spark-gas-estimation.test.ts +29 -0
- package/src/dex/stader/stader-gas-estimation.test.ts +29 -0
- package/src/dex/stkgho/stkgho-gas-estimation.test.ts +29 -0
- package/src/dex/swaap-v2/swaap-v2-estimation.test.ts +29 -0
- package/src/dex/swell/swell-estimation.test.ts +29 -0
- package/src/dex/trader-joe-v2.1/trader-joe-v2.1-gas-estimation.test.ts +29 -0
- package/src/dex/uniswap-v2/uniswap-v2-gas-estimation.test.ts +98 -0
- package/src/dex/uniswap-v3/uniswap-v3-gas-estimation.test.ts +98 -0
- package/src/dex/usual/usual-gas-estimation.test.ts +54 -0
- package/src/dex/usual-pp/usual-pp-gas-estimation.test.ts +29 -0
- package/src/dex/weth/weth-gas-estimation.test.ts +42 -0
- package/src/dex/weth/weth.ts +3 -1
- package/src/dex/wombat/wombat-gas-estimation.test.ts +29 -0
- package/src/dex/wsteth/wsteth-gas-estimation.test.ts +41 -0
- package/src/dex/wusdm/wusdm-gas-estimation.test.ts +41 -0
- package/src/lib/pub-sub.ts +9 -5
- package/src/pricing-helper.ts +19 -11
- package/src/types.ts +1 -0
- package/tests/constants-e2e.ts +8 -0
- package/tests/tenderly-simulation-new.test.ts +151 -0
- package/tests/tenderly-simulation-new.ts +698 -0
- package/tests/token-storage-slots.json +532 -0
- package/tests/utils-e2e.ts +137 -1
|
@@ -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('PancakeswapV3 Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'PancakeswapV3';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const USDT = Tokens[network]['USDT'];
|
|
14
|
+
const USDC = Tokens[network]['USDC'];
|
|
15
|
+
const amount = 100000000n;
|
|
16
|
+
|
|
17
|
+
it('exactInput', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
USDT,
|
|
21
|
+
USDC,
|
|
22
|
+
amount,
|
|
23
|
+
SwapSide.SELL,
|
|
24
|
+
dexKey,
|
|
25
|
+
ContractMethodV6.swapExactAmountIn,
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -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('PolygonMigrator Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'PolygonMigrator';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const POL = Tokens[network]['POL'];
|
|
14
|
+
const MATIC = Tokens[network]['MATIC'];
|
|
15
|
+
const amount = 10000000000000000000n;
|
|
16
|
+
|
|
17
|
+
it('unmigrate', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
POL,
|
|
21
|
+
MATIC,
|
|
22
|
+
amount,
|
|
23
|
+
SwapSide.SELL,
|
|
24
|
+
dexKey,
|
|
25
|
+
ContractMethodV6.swapExactAmountIn,
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('migrate', async () => {
|
|
30
|
+
await testGasEstimation(
|
|
31
|
+
network,
|
|
32
|
+
MATIC,
|
|
33
|
+
POL,
|
|
34
|
+
amount,
|
|
35
|
+
SwapSide.SELL,
|
|
36
|
+
dexKey,
|
|
37
|
+
ContractMethodV6.swapExactAmountIn,
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
});
|
|
@@ -0,0 +1,78 @@
|
|
|
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('SkyConverter Gas Estimation', () => {
|
|
9
|
+
const network = Network.MAINNET;
|
|
10
|
+
|
|
11
|
+
describe('DaiUsds', () => {
|
|
12
|
+
const dexKey = 'DaiUsds';
|
|
13
|
+
|
|
14
|
+
describe('swapExactAmountIn', () => {
|
|
15
|
+
const DAI = Tokens[network]['DAI'];
|
|
16
|
+
const USDS = Tokens[network]['USDS'];
|
|
17
|
+
const amount = 10000000000000000000n;
|
|
18
|
+
|
|
19
|
+
it('daiToUsds', async () => {
|
|
20
|
+
await testGasEstimation(
|
|
21
|
+
network,
|
|
22
|
+
DAI,
|
|
23
|
+
USDS,
|
|
24
|
+
amount,
|
|
25
|
+
SwapSide.SELL,
|
|
26
|
+
dexKey,
|
|
27
|
+
ContractMethodV6.swapExactAmountIn,
|
|
28
|
+
);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('usdsToDai', async () => {
|
|
32
|
+
await testGasEstimation(
|
|
33
|
+
network,
|
|
34
|
+
USDS,
|
|
35
|
+
DAI,
|
|
36
|
+
amount,
|
|
37
|
+
SwapSide.SELL,
|
|
38
|
+
dexKey,
|
|
39
|
+
ContractMethodV6.swapExactAmountIn,
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
describe('MkrSky', () => {
|
|
46
|
+
const dexKey = 'MkrSky';
|
|
47
|
+
|
|
48
|
+
describe('swapExactAmountIn', () => {
|
|
49
|
+
const MKR = Tokens[network]['MKR'];
|
|
50
|
+
const SKY = Tokens[network]['SKY'];
|
|
51
|
+
const amount = 10000000000000000000n;
|
|
52
|
+
|
|
53
|
+
it('mkrToSky', async () => {
|
|
54
|
+
await testGasEstimation(
|
|
55
|
+
network,
|
|
56
|
+
MKR,
|
|
57
|
+
SKY,
|
|
58
|
+
amount,
|
|
59
|
+
SwapSide.SELL,
|
|
60
|
+
dexKey,
|
|
61
|
+
ContractMethodV6.swapExactAmountIn,
|
|
62
|
+
);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('skyToMkr', async () => {
|
|
66
|
+
await testGasEstimation(
|
|
67
|
+
network,
|
|
68
|
+
SKY,
|
|
69
|
+
MKR,
|
|
70
|
+
amount,
|
|
71
|
+
SwapSide.SELL,
|
|
72
|
+
dexKey,
|
|
73
|
+
ContractMethodV6.swapExactAmountIn,
|
|
74
|
+
);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
@@ -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('Solidly Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'SolidlyV2';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const USDT = Tokens[network]['USDT'];
|
|
14
|
+
const USDC = Tokens[network]['USDC'];
|
|
15
|
+
const amount = 100000000n;
|
|
16
|
+
|
|
17
|
+
it('swap', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
USDT,
|
|
21
|
+
USDC,
|
|
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('SolidlyV3 Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'SolidlyV3';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const USDT = Tokens[network]['USDT'];
|
|
14
|
+
const USDC = Tokens[network]['USDC'];
|
|
15
|
+
const amount = 100000000n;
|
|
16
|
+
|
|
17
|
+
it('swap', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
USDT,
|
|
21
|
+
USDC,
|
|
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('Spark Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'Spark';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const DAI = Tokens[network]['DAI'];
|
|
14
|
+
const sDAI = Tokens[network]['sDAI'];
|
|
15
|
+
const amount = 1000000000000000000n;
|
|
16
|
+
|
|
17
|
+
it('deposit', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
DAI,
|
|
21
|
+
sDAI,
|
|
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('Stader Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'Stader';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const ETH = Tokens[network]['ETH'];
|
|
14
|
+
const ETHx = Tokens[network]['ETHx'];
|
|
15
|
+
const amount = 1000000000000000000n;
|
|
16
|
+
|
|
17
|
+
it('deposit', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
ETH,
|
|
21
|
+
ETHx,
|
|
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('StkGHO Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'StkGHO';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const GHO = Tokens[network]['GHO'];
|
|
14
|
+
const stkGHO = Tokens[network]['stkGHO'];
|
|
15
|
+
const amount = 1000000000000000000n;
|
|
16
|
+
|
|
17
|
+
it('stake', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
GHO,
|
|
21
|
+
stkGHO,
|
|
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('SwaapV2 Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'SwaapV2';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const USDC = Tokens[network]['USDC'];
|
|
14
|
+
const WETH = Tokens[network]['WETH'];
|
|
15
|
+
const amount = 45410357n;
|
|
16
|
+
|
|
17
|
+
it('swap', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
USDC,
|
|
21
|
+
WETH,
|
|
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('Swell Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'Swell';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const ETH = Tokens[network]['ETH'];
|
|
14
|
+
const SWETH = Tokens[network]['SWETH'];
|
|
15
|
+
const amount = 45410357n;
|
|
16
|
+
|
|
17
|
+
it('deposit', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
ETH,
|
|
21
|
+
SWETH,
|
|
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('TraderJoeV2.1 Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'traderjoev2.1';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const USDT = Tokens[network]['USDT'];
|
|
14
|
+
const USDC = Tokens[network]['USDC'];
|
|
15
|
+
const amount = 100000000n;
|
|
16
|
+
|
|
17
|
+
it('swapExactTokensForTokens', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
USDT,
|
|
21
|
+
USDC,
|
|
22
|
+
amount,
|
|
23
|
+
SwapSide.SELL,
|
|
24
|
+
dexKey,
|
|
25
|
+
ContractMethodV6.swapExactAmountIn,
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -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('UniswapV2 Gas Estimation', () => {
|
|
12
|
+
const dexKey = 'UniswapV2';
|
|
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.swapExactAmountInOnUniswapV2,
|
|
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,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('UniswapV3 Gas Estimation', () => {
|
|
12
|
+
const dexKey = 'UniswapV3';
|
|
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.swapExactAmountInOnUniswapV3,
|
|
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,54 @@
|
|
|
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('Usual Gas Estimation', () => {
|
|
9
|
+
const network = Network.MAINNET;
|
|
10
|
+
|
|
11
|
+
describe('UsualBond', () => {
|
|
12
|
+
const dexKey = 'UsualBond';
|
|
13
|
+
|
|
14
|
+
describe('swapExactAmountIn', () => {
|
|
15
|
+
const USD0 = Tokens[network]['USD0'];
|
|
16
|
+
const USD0pp = Tokens[network]['USD0++'];
|
|
17
|
+
const amount = 100000n;
|
|
18
|
+
|
|
19
|
+
it('mint', async () => {
|
|
20
|
+
await testGasEstimation(
|
|
21
|
+
network,
|
|
22
|
+
USD0,
|
|
23
|
+
USD0pp,
|
|
24
|
+
amount,
|
|
25
|
+
SwapSide.SELL,
|
|
26
|
+
dexKey,
|
|
27
|
+
ContractMethodV6.swapExactAmountIn,
|
|
28
|
+
);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
describe('UsualMUsd0', () => {
|
|
34
|
+
const dexKey = 'UsualMUsd0';
|
|
35
|
+
|
|
36
|
+
describe('swapExactAmountIn', () => {
|
|
37
|
+
const UsualM = Tokens[network]['UsualM'];
|
|
38
|
+
const USD0 = Tokens[network]['USD0'];
|
|
39
|
+
const amount = 100000n;
|
|
40
|
+
|
|
41
|
+
it('swap', async () => {
|
|
42
|
+
await testGasEstimation(
|
|
43
|
+
network,
|
|
44
|
+
UsualM,
|
|
45
|
+
USD0,
|
|
46
|
+
amount,
|
|
47
|
+
SwapSide.SELL,
|
|
48
|
+
dexKey,
|
|
49
|
+
ContractMethodV6.swapExactAmountIn,
|
|
50
|
+
);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
});
|
|
@@ -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('UsualPP Gas Estimation', () => {
|
|
9
|
+
const dexKey = 'UsualPP';
|
|
10
|
+
const network = Network.MAINNET;
|
|
11
|
+
|
|
12
|
+
describe('swapExactAmountIn', () => {
|
|
13
|
+
const USD0pp = Tokens[network]['USD0++'];
|
|
14
|
+
const USD0 = Tokens[network]['USD0'];
|
|
15
|
+
const amount = 100000000n;
|
|
16
|
+
|
|
17
|
+
it('unlockUsd0ppFloorPrice', async () => {
|
|
18
|
+
await testGasEstimation(
|
|
19
|
+
network,
|
|
20
|
+
USD0pp,
|
|
21
|
+
USD0,
|
|
22
|
+
amount,
|
|
23
|
+
SwapSide.SELL,
|
|
24
|
+
dexKey,
|
|
25
|
+
ContractMethodV6.swapExactAmountIn,
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|