forked from paraswap/paraswap-dex-lib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdodo-v1-e2e.test.ts
101 lines (89 loc) · 2.46 KB
/
dodo-v1-e2e.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import dotenv from 'dotenv';
dotenv.config();
import { testE2E } from '../../../tests/utils-e2e';
import {
Tokens,
Holders,
NativeTokenSymbols,
} from '../../../tests/constants-e2e';
import { ContractMethod, Network, SwapSide } from '../../constants';
import { StaticJsonRpcProvider } from '@ethersproject/providers';
import { generateConfig } from '../../config';
const dexKey = 'dodov1';
const testForNetwork = (
network: Network,
swapMap: Map<SwapSide, ContractMethod[]>,
) => {
const tokens = Tokens[network];
const holders = Holders[network];
const nativeSymbol = NativeTokenSymbols[network];
const provider = new StaticJsonRpcProvider(
generateConfig(network).privateHttpProvider,
network,
);
const tokensToTest = [
[
{
symbol: 'USDC',
amount: (10 ** 8).toString(),
},
{
symbol: 'USDT',
amount: (10 ** 8).toString(),
},
],
[
{
symbol: 'USDT',
amount: (10 ** 8).toString(),
},
{
symbol: 'DAI',
amount: (10 ** 8).toString(),
},
],
];
swapMap.forEach((contractMethods, side) =>
contractMethods.forEach((contractMethod: string) => {
tokensToTest.forEach(pair => {
describe(`${contractMethod}`, () => {
it(`${pair[0].symbol} -> ${pair[1].symbol}`, async () => {
await testE2E(
tokens[pair[0].symbol],
tokens[pair[1].symbol],
holders[pair[0].symbol],
side === SwapSide.SELL ? pair[0].amount : pair[1].amount,
side,
dexKey,
contractMethod as any,
network,
provider,
);
});
it(`${nativeSymbol} -> ${pair[0].symbol}`, async () => {
await testE2E(
tokens[nativeSymbol],
tokens[pair[0].symbol],
holders[nativeSymbol],
side === SwapSide.SELL ? '1000000000000000000' : pair[0].amount,
side,
dexKey,
contractMethod as any,
network,
provider,
);
});
});
});
}),
);
};
// Ensure you have the E2E_ENDPOINT_URL env variable set.
describe('Dodo V1 E2E', () => {
describe('Mainnet V6', () => {
const swapMap = new Map<SwapSide, ContractMethod[]>([
[SwapSide.SELL, [ContractMethod.swapExactAmountIn]],
]);
testForNetwork(Network.MAINNET, swapMap);
});
});