@paraswap/dex-lib 2.14.0 → 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.
- 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/config.js +23 -5
- package/build/config.js.map +1 -1
- 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/index.js +2 -2
- package/build/dex/index.js.map +1 -1
- package/build/dex/simple-exchange.d.ts +1 -0
- package/build/dex/simple-exchange.js +2 -0
- 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/decoders.d.ts +2 -1
- package/build/lib/decoders.js +8 -1
- package/build/lib/decoders.js.map +1 -1
- package/build/lib/fetcher/fetcher.js +3 -0
- package/build/lib/fetcher/fetcher.js.map +1 -1
- package/build/lib/multi-wrapper.d.ts +2 -1
- package/build/lib/multi-wrapper.js.map +1 -1
- package/build/lib/tokens/balancer-fetcher.js +4 -5
- package/build/lib/tokens/balancer-fetcher.js.map +1 -1
- package/build/lib/tokens/utils.d.ts +2 -2
- package/build/lib/tokens/utils.js +1 -1
- package/build/lib/tokens/utils.js.map +1 -1
- package/build/types.d.ts +3 -0
- package/dex-template/__DexName__-e2e.test.ts.template +1 -0
- package/dex-template/__DexName__-events.test.ts.template +1 -0
- package/dex-template/__DexName__-integration.test.ts.template +1 -0
- package/dex-template/__DexName__-pool.ts.template +8 -5
- package/package.json +1 -1
- package/scripts/generate-bytecode.ts +2 -0
- package/src/abi/woo-fi-v2/IntegrationHelper.abi.json +116 -0
- package/src/abi/{woo-fi/Wooracle.abi.json → woo-fi-v2/WooOracleV2.abi.json} +148 -50
- package/src/abi/{woo-fi/WooPP.abi.json → woo-fi-v2/WooPPV2.abi.json} +201 -169
- package/src/config.ts +27 -5
- package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +0 -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/index.ts +2 -2
- package/src/dex/simple-exchange.ts +3 -0
- package/src/dex/woo-fi-v2/config.ts +87 -0
- package/src/dex/woo-fi-v2/constants.ts +22 -0
- package/src/dex/woo-fi-v2/decoders.ts +45 -0
- package/src/dex/woo-fi-v2/types.ts +63 -0
- package/src/dex/woo-fi-v2/utils.ts +19 -0
- package/src/dex/woo-fi-v2/woo-fi-v2-e2e.test.ts +216 -0
- package/src/dex/woo-fi-v2/woo-fi-v2-integration.test.ts +495 -0
- package/src/dex/woo-fi-v2/woo-fi-v2-math.ts +195 -0
- package/src/dex/woo-fi-v2/woo-fi-v2-pool.ts +112 -0
- package/src/dex/woo-fi-v2/woo-fi-v2.ts +487 -0
- package/src/lib/decoders.ts +12 -1
- package/src/lib/fetcher/fetcher.ts +6 -0
- package/src/lib/log-messages-suppressor.ts +173 -0
- package/src/lib/multi-wrapper.ts +2 -1
- package/src/lib/stateful-rpc-poller/state-polling-manager.ts +320 -0
- package/src/lib/stateful-rpc-poller/stateful-rpc-poller.ts +604 -0
- package/src/lib/stateful-rpc-poller/types.ts +66 -0
- package/src/lib/stateful-rpc-poller/utils.ts +23 -0
- package/src/lib/tokens/balancer-fetcher.ts +5 -6
- package/src/lib/tokens/utils.ts +5 -3
- package/src/types.ts +4 -0
- package/tests/constants-e2e.ts +10 -3
- package/tests/tenderly-simulation.ts +1 -1
- package/tests/utils-e2e.ts +61 -48
- package/tests/utils.ts +2 -0
- package/src/abi/woo-fi/WooFeeManager.abi.json +0 -318
- package/src/dex/woo-fi/config.ts +0 -141
- package/src/dex/woo-fi/constants.ts +0 -21
- package/src/dex/woo-fi/types.ts +0 -55
- package/src/dex/woo-fi/woo-fi-decimal-math.ts +0 -45
- package/src/dex/woo-fi/woo-fi-e2e.test.ts +0 -183
- package/src/dex/woo-fi/woo-fi-integration.test.ts +0 -416
- package/src/dex/woo-fi/woo-fi-math.ts +0 -527
- package/src/dex/woo-fi/woo-fi.ts +0 -693
package/src/dex/woo-fi/config.ts
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { DexParams } from './types';
|
|
2
|
-
import { DexConfigMap, AdapterMappings } from '../../types';
|
|
3
|
-
import { Network, SwapSide } from '../../constants';
|
|
4
|
-
|
|
5
|
-
export const WooFiConfig: DexConfigMap<DexParams> = {
|
|
6
|
-
WooFi: {
|
|
7
|
-
[Network.BSC]: {
|
|
8
|
-
wooPPAddress: '0xbf365Ce9cFcb2d5855521985E351bA3bcf77FD3F',
|
|
9
|
-
wooOracleAddress: '0x6b6fBEc7934b104e81b2046D24A990e03e17afDC',
|
|
10
|
-
wooFeeManagerAddress: '0xaA6c60D638d34261B764fEDB551E50Ab02c34C90',
|
|
11
|
-
wooGuardianAddress: '0x910723e3c6a68276687b50613a1a9e42cc6589b4',
|
|
12
|
-
quoteToken: {
|
|
13
|
-
// USDT
|
|
14
|
-
address: '0x55d398326f99059ff775485246999027b3197955',
|
|
15
|
-
decimals: 18,
|
|
16
|
-
},
|
|
17
|
-
baseTokens: {
|
|
18
|
-
WBNB: {
|
|
19
|
-
address: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
|
|
20
|
-
decimals: 18,
|
|
21
|
-
},
|
|
22
|
-
BTCB: {
|
|
23
|
-
address: '0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c',
|
|
24
|
-
decimals: 18,
|
|
25
|
-
},
|
|
26
|
-
ETH: {
|
|
27
|
-
address: '0x2170ed0880ac9a755fd29b2688956bd959f933f8',
|
|
28
|
-
decimals: 18,
|
|
29
|
-
},
|
|
30
|
-
WOO: {
|
|
31
|
-
address: '0x4691937a7508860f876c9c0a2a617e7d9e945d4b',
|
|
32
|
-
decimals: 18,
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
rebateTo: '0xcbb65ad3e64f404b5411486e15561bfb645ce642',
|
|
36
|
-
},
|
|
37
|
-
[Network.AVALANCHE]: {
|
|
38
|
-
wooPPAddress: '0x1df3009c57a8B143c6246149F00B090Bce3b8f88',
|
|
39
|
-
wooOracleAddress: '0x25a4d4a094A084c7ad45Ac273cF7D6B6bfae7D4E',
|
|
40
|
-
wooFeeManagerAddress: '0x209102c0D2E34282494114ea76D5251c8e7Ea7ab',
|
|
41
|
-
wooGuardianAddress: '0x58c73f7e102bc6bcdc6b092ef0399b3e06d6b3e3',
|
|
42
|
-
quoteToken: {
|
|
43
|
-
// USDC
|
|
44
|
-
address: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e',
|
|
45
|
-
decimals: 6,
|
|
46
|
-
},
|
|
47
|
-
baseTokens: {
|
|
48
|
-
WAVAX: {
|
|
49
|
-
address: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',
|
|
50
|
-
decimals: 18,
|
|
51
|
-
},
|
|
52
|
-
['BTC.b']: {
|
|
53
|
-
address: '0x152b9d0FdC40C096757F570A51E494bd4b943E50',
|
|
54
|
-
decimals: 8,
|
|
55
|
-
},
|
|
56
|
-
['WETH.e']: {
|
|
57
|
-
address: '0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB',
|
|
58
|
-
decimals: 18,
|
|
59
|
-
},
|
|
60
|
-
['WOO.e']: {
|
|
61
|
-
address: '0xaBC9547B534519fF73921b1FBA6E672b5f58D083',
|
|
62
|
-
decimals: 18,
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
rebateTo: '0x1bf4c97384e7bdc609017305edb23fd28c13e76a',
|
|
66
|
-
},
|
|
67
|
-
[Network.FANTOM]: {
|
|
68
|
-
wooPPAddress: '0x9503E7517D3C5bc4f9E4A1c6AE4f8B33AC2546f2',
|
|
69
|
-
wooOracleAddress: '0x209102c0D2E34282494114ea76D5251c8e7Ea7ab',
|
|
70
|
-
wooFeeManagerAddress: '0xBE1a0FccCFA9c9065152B7770B918f7C59914E8D',
|
|
71
|
-
wooGuardianAddress: '0x128758d0e909624841AB29D53919646BFBDa5dB2',
|
|
72
|
-
quoteToken: {
|
|
73
|
-
// USDC
|
|
74
|
-
address: '0x04068da6c83afcfa0e13ba15a6696662335d5b75',
|
|
75
|
-
decimals: 6,
|
|
76
|
-
},
|
|
77
|
-
baseTokens: {
|
|
78
|
-
WFTM: {
|
|
79
|
-
address: '0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83',
|
|
80
|
-
decimals: 18,
|
|
81
|
-
},
|
|
82
|
-
BTC: {
|
|
83
|
-
address: '0x321162Cd933E2Be498Cd2267a90534A804051b11',
|
|
84
|
-
decimals: 8,
|
|
85
|
-
},
|
|
86
|
-
ETH: {
|
|
87
|
-
address: '0x74b23882a30290451A17c44f4F05243b6b58C76d',
|
|
88
|
-
decimals: 18,
|
|
89
|
-
},
|
|
90
|
-
WOO: {
|
|
91
|
-
address: '0x6626c47c00F1D87902fc13EECfaC3ed06D5E8D8a',
|
|
92
|
-
decimals: 18,
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
rebateTo: '0xced122f9b99d224675eeda13f0c14639c5633f91',
|
|
96
|
-
},
|
|
97
|
-
[Network.POLYGON]: {
|
|
98
|
-
wooPPAddress: '0x7400B665C8f4f3a951a99f1ee9872efb8778723d',
|
|
99
|
-
wooOracleAddress: '0x2Fe5E5D341cFFa606a5d9DA1B6B646a381B0f7ec',
|
|
100
|
-
wooFeeManagerAddress: '0x7214833BE05Ce39f6dCd97668e521162e6C18937',
|
|
101
|
-
wooGuardianAddress: '0xF5d215d9C84778F85746D15762DaF39B9E83a2d6',
|
|
102
|
-
quoteToken: {
|
|
103
|
-
// USDC
|
|
104
|
-
address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
|
|
105
|
-
decimals: 6,
|
|
106
|
-
},
|
|
107
|
-
baseTokens: {
|
|
108
|
-
WMATIC: {
|
|
109
|
-
address: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
|
|
110
|
-
decimals: 18,
|
|
111
|
-
},
|
|
112
|
-
WBTC: {
|
|
113
|
-
address: '0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6',
|
|
114
|
-
decimals: 8,
|
|
115
|
-
},
|
|
116
|
-
WETH: {
|
|
117
|
-
address: '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',
|
|
118
|
-
decimals: 18,
|
|
119
|
-
},
|
|
120
|
-
WOO: {
|
|
121
|
-
address: '0x1B815d120B3eF02039Ee11dC2d33DE7aA4a8C603',
|
|
122
|
-
decimals: 18,
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
rebateTo: '0x0c84cd406b8a4e07df9a1b15ef348023a1dcd075',
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
export const Adapters: Record<number, AdapterMappings> = {
|
|
131
|
-
[Network.BSC]: { [SwapSide.SELL]: [{ name: 'BscAdapter01', index: 13 }] },
|
|
132
|
-
[Network.AVALANCHE]: {
|
|
133
|
-
[SwapSide.SELL]: [{ name: 'AvalancheAdapter01', index: 12 }],
|
|
134
|
-
},
|
|
135
|
-
[Network.FANTOM]: {
|
|
136
|
-
[SwapSide.SELL]: [{ name: 'FantomAdapter01', index: 8 }],
|
|
137
|
-
},
|
|
138
|
-
[Network.POLYGON]: {
|
|
139
|
-
[SwapSide.SELL]: [{ name: 'PolygonAdapter02', index: 4 }],
|
|
140
|
-
},
|
|
141
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { PoolState } from './types';
|
|
2
|
-
|
|
3
|
-
export const WOO_FI_GAS_COST = 270 * 1000;
|
|
4
|
-
|
|
5
|
-
export const USD_PRECISION = 2;
|
|
6
|
-
|
|
7
|
-
export const MIN_CONVERSION_RATE = 1;
|
|
8
|
-
|
|
9
|
-
export const NULL_STATE: PoolState = {
|
|
10
|
-
feeRates: {},
|
|
11
|
-
tokenInfos: {},
|
|
12
|
-
tokenStates: {},
|
|
13
|
-
oracleTimestamp: 0n,
|
|
14
|
-
isPaused: false,
|
|
15
|
-
guardian: {
|
|
16
|
-
globalBound: 0n,
|
|
17
|
-
refInfos: {},
|
|
18
|
-
},
|
|
19
|
-
chainlink: { latestRoundDatas: {} },
|
|
20
|
-
wooPPBalances: {},
|
|
21
|
-
};
|
package/src/dex/woo-fi/types.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Address, Token } from '../../types';
|
|
2
|
-
|
|
3
|
-
export type TokenInfo = {
|
|
4
|
-
reserve: bigint;
|
|
5
|
-
R: bigint;
|
|
6
|
-
threshold: bigint;
|
|
7
|
-
target: bigint;
|
|
8
|
-
lastResetTimestamp: bigint;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export type TokenState = {
|
|
12
|
-
priceNow: bigint;
|
|
13
|
-
spreadNow: bigint;
|
|
14
|
-
coeffNow: bigint;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export type RefInfo = {
|
|
18
|
-
chainlinkRefOracle: Address;
|
|
19
|
-
refPriceFixCoeff: bigint;
|
|
20
|
-
minInputAmount: bigint;
|
|
21
|
-
maxInputAmount: bigint;
|
|
22
|
-
bound: bigint;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export type LatestRoundData = {
|
|
26
|
-
answer: bigint;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export type PoolState = {
|
|
30
|
-
feeRates: Record<Address, bigint>;
|
|
31
|
-
tokenInfos: Record<Address, TokenInfo>;
|
|
32
|
-
tokenStates: Record<Address, TokenState>;
|
|
33
|
-
oracleTimestamp: bigint;
|
|
34
|
-
isPaused: boolean;
|
|
35
|
-
guardian: {
|
|
36
|
-
globalBound: bigint;
|
|
37
|
-
refInfos: Record<Address, RefInfo>;
|
|
38
|
-
};
|
|
39
|
-
chainlink: {
|
|
40
|
-
latestRoundDatas: Record<Address, LatestRoundData>;
|
|
41
|
-
};
|
|
42
|
-
wooPPBalances: Record<Address, bigint>;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export type WooFiData = {};
|
|
46
|
-
|
|
47
|
-
export type DexParams = {
|
|
48
|
-
wooPPAddress: Address;
|
|
49
|
-
wooOracleAddress: Address;
|
|
50
|
-
wooFeeManagerAddress: Address;
|
|
51
|
-
wooGuardianAddress: Address;
|
|
52
|
-
quoteToken: Token;
|
|
53
|
-
baseTokens: Record<string, Token>;
|
|
54
|
-
rebateTo: Address;
|
|
55
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { BI_POWS } from '../../bigint-constants';
|
|
2
|
-
|
|
3
|
-
class WooFiDecimalMath {
|
|
4
|
-
readonly ONE = BI_POWS[18];
|
|
5
|
-
readonly TWO = 2n * BI_POWS[18];
|
|
6
|
-
readonly ONE2 = BI_POWS[36];
|
|
7
|
-
|
|
8
|
-
mulFloor(target: bigint, d: bigint): bigint {
|
|
9
|
-
// target.mul(d) / (10**18);
|
|
10
|
-
return (target * d) / BI_POWS[18];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
mulCeil(target: bigint, d: bigint): bigint {
|
|
14
|
-
// _divCeil(target.mul(d), 10 ** 18);
|
|
15
|
-
return this._divCeil(target * d, BI_POWS[18]);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
divFloor(target: bigint, d: bigint): bigint {
|
|
19
|
-
// target.mul(10 ** 18).div(d);
|
|
20
|
-
return (target * BI_POWS[18]) / d;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
divCeil(target: bigint, d: bigint): bigint {
|
|
24
|
-
// _divCeil(target.mul(10 ** 18), d);
|
|
25
|
-
return this._divCeil(target * BI_POWS[18], d);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
reciprocalFloor(target: bigint): bigint {
|
|
29
|
-
// uint256(10 ** 36).div(target);
|
|
30
|
-
return BI_POWS[36] / target;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
reciprocalCeil(target: bigint): bigint {
|
|
34
|
-
// _divCeil(uint256(10 ** 36), target);
|
|
35
|
-
return this._divCeil(BI_POWS[36], target);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
private _divCeil(a: bigint, b: bigint): bigint {
|
|
39
|
-
const quotient = a / b;
|
|
40
|
-
const remainder = a - quotient * b;
|
|
41
|
-
return remainder > 0n ? quotient + 1n : quotient;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export const wooFiDecimalMath = new WooFiDecimalMath();
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import dotenv from 'dotenv';
|
|
2
|
-
dotenv.config();
|
|
3
|
-
|
|
4
|
-
import { testE2E } from '../../../tests/utils-e2e';
|
|
5
|
-
import {
|
|
6
|
-
Tokens,
|
|
7
|
-
Holders,
|
|
8
|
-
NativeTokenSymbols,
|
|
9
|
-
} from '../../../tests/constants-e2e';
|
|
10
|
-
import { Network, ContractMethod, SwapSide } from '../../constants';
|
|
11
|
-
import { StaticJsonRpcProvider } from '@ethersproject/providers';
|
|
12
|
-
import { generateConfig } from '../../config';
|
|
13
|
-
|
|
14
|
-
const dexKey = 'WooFi';
|
|
15
|
-
|
|
16
|
-
async function testForNetwork(
|
|
17
|
-
network: Network,
|
|
18
|
-
tokenASymbol: string,
|
|
19
|
-
tokenBSymbol: string,
|
|
20
|
-
tokenAAmount: string,
|
|
21
|
-
tokenBAmount: string,
|
|
22
|
-
nativeTokenAmount: string,
|
|
23
|
-
) {
|
|
24
|
-
const tokens = Tokens[network];
|
|
25
|
-
const holders = Holders[network];
|
|
26
|
-
const provider = new StaticJsonRpcProvider(
|
|
27
|
-
generateConfig(network).privateHttpProvider,
|
|
28
|
-
network,
|
|
29
|
-
);
|
|
30
|
-
const nativeTokenSymbol = NativeTokenSymbols[network];
|
|
31
|
-
|
|
32
|
-
const sideToContractMethods = new Map([
|
|
33
|
-
[
|
|
34
|
-
SwapSide.SELL,
|
|
35
|
-
[
|
|
36
|
-
ContractMethod.simpleSwap,
|
|
37
|
-
ContractMethod.multiSwap,
|
|
38
|
-
ContractMethod.megaSwap,
|
|
39
|
-
],
|
|
40
|
-
],
|
|
41
|
-
]);
|
|
42
|
-
|
|
43
|
-
sideToContractMethods.forEach((contractMethods, side) =>
|
|
44
|
-
contractMethods.forEach((contractMethod: ContractMethod) => {
|
|
45
|
-
describe(`${contractMethod}`, () => {
|
|
46
|
-
it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> QUOTE TOKEN`, async () => {
|
|
47
|
-
await testE2E(
|
|
48
|
-
tokens[nativeTokenSymbol],
|
|
49
|
-
tokens[tokenBSymbol],
|
|
50
|
-
holders[nativeTokenSymbol],
|
|
51
|
-
side === SwapSide.SELL ? nativeTokenAmount : tokenBAmount,
|
|
52
|
-
side,
|
|
53
|
-
dexKey,
|
|
54
|
-
contractMethod,
|
|
55
|
-
network,
|
|
56
|
-
provider,
|
|
57
|
-
);
|
|
58
|
-
});
|
|
59
|
-
it(`${network} ${side} ${contractMethod} QUOTE TOKEN -> ${nativeTokenSymbol}`, async () => {
|
|
60
|
-
await testE2E(
|
|
61
|
-
tokens[tokenBSymbol],
|
|
62
|
-
tokens[nativeTokenSymbol],
|
|
63
|
-
holders[tokenBSymbol],
|
|
64
|
-
side === SwapSide.SELL ? tokenBAmount : nativeTokenAmount,
|
|
65
|
-
side,
|
|
66
|
-
dexKey,
|
|
67
|
-
contractMethod,
|
|
68
|
-
network,
|
|
69
|
-
provider,
|
|
70
|
-
);
|
|
71
|
-
});
|
|
72
|
-
it(`${network} ${side} ${contractMethod} BASE TOKEN -> QUOTE TOKEN`, async () => {
|
|
73
|
-
await testE2E(
|
|
74
|
-
tokens[tokenASymbol],
|
|
75
|
-
tokens[tokenBSymbol],
|
|
76
|
-
holders[tokenASymbol],
|
|
77
|
-
side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
|
|
78
|
-
side,
|
|
79
|
-
dexKey,
|
|
80
|
-
contractMethod,
|
|
81
|
-
network,
|
|
82
|
-
provider,
|
|
83
|
-
);
|
|
84
|
-
});
|
|
85
|
-
it(`${network} ${side} ${contractMethod} QUOTE TOKEN -> BASE TOKEN`, async () => {
|
|
86
|
-
await testE2E(
|
|
87
|
-
tokens[tokenBSymbol],
|
|
88
|
-
tokens[tokenASymbol],
|
|
89
|
-
holders[tokenBSymbol],
|
|
90
|
-
side === SwapSide.SELL ? tokenBAmount : tokenAAmount,
|
|
91
|
-
side,
|
|
92
|
-
dexKey,
|
|
93
|
-
contractMethod,
|
|
94
|
-
network,
|
|
95
|
-
provider,
|
|
96
|
-
);
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
}),
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
describe('WooFi E2E', () => {
|
|
104
|
-
describe('WooFi BSC', () => {
|
|
105
|
-
const network = Network.BSC;
|
|
106
|
-
|
|
107
|
-
const tokenASymbol: string = 'WBNB';
|
|
108
|
-
const tokenBSymbol: string = 'USDT';
|
|
109
|
-
|
|
110
|
-
const tokenAAmount: string = '3000000000000000000';
|
|
111
|
-
const tokenBAmount: string = '111000000000000000000';
|
|
112
|
-
const nativeTokenAmount = '3000000000000000000';
|
|
113
|
-
|
|
114
|
-
testForNetwork(
|
|
115
|
-
network,
|
|
116
|
-
tokenASymbol,
|
|
117
|
-
tokenBSymbol,
|
|
118
|
-
tokenAAmount,
|
|
119
|
-
tokenBAmount,
|
|
120
|
-
nativeTokenAmount,
|
|
121
|
-
);
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
describe('WooFi Avalanche', () => {
|
|
125
|
-
const network = Network.AVALANCHE;
|
|
126
|
-
|
|
127
|
-
const tokenASymbol: string = 'WAVAX';
|
|
128
|
-
const tokenBSymbol: string = 'USDC';
|
|
129
|
-
|
|
130
|
-
const tokenAAmount: string = '3000000000000000000';
|
|
131
|
-
const tokenBAmount: string = '111000000';
|
|
132
|
-
const nativeTokenAmount = '3000000000000000000';
|
|
133
|
-
|
|
134
|
-
testForNetwork(
|
|
135
|
-
network,
|
|
136
|
-
tokenASymbol,
|
|
137
|
-
tokenBSymbol,
|
|
138
|
-
tokenAAmount,
|
|
139
|
-
tokenBAmount,
|
|
140
|
-
nativeTokenAmount,
|
|
141
|
-
);
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
describe('WooFi Fantom', () => {
|
|
145
|
-
const network = Network.FANTOM;
|
|
146
|
-
|
|
147
|
-
const tokenASymbol: string = 'WFTM';
|
|
148
|
-
const tokenBSymbol: string = 'USDC';
|
|
149
|
-
|
|
150
|
-
const tokenAAmount: string = '333000000000000000000';
|
|
151
|
-
const tokenBAmount: string = '111000000';
|
|
152
|
-
const nativeTokenAmount = '333000000000000000000';
|
|
153
|
-
|
|
154
|
-
testForNetwork(
|
|
155
|
-
network,
|
|
156
|
-
tokenASymbol,
|
|
157
|
-
tokenBSymbol,
|
|
158
|
-
tokenAAmount,
|
|
159
|
-
tokenBAmount,
|
|
160
|
-
nativeTokenAmount,
|
|
161
|
-
);
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
describe('WooFi Polygon', () => {
|
|
165
|
-
const network = Network.POLYGON;
|
|
166
|
-
|
|
167
|
-
const tokenASymbol: string = 'WMATIC';
|
|
168
|
-
const tokenBSymbol: string = 'USDC';
|
|
169
|
-
|
|
170
|
-
const tokenAAmount: string = '3000000000000000000';
|
|
171
|
-
const tokenBAmount: string = '1000000';
|
|
172
|
-
const nativeTokenAmount = '3000000000000000000';
|
|
173
|
-
|
|
174
|
-
testForNetwork(
|
|
175
|
-
network,
|
|
176
|
-
tokenASymbol,
|
|
177
|
-
tokenBSymbol,
|
|
178
|
-
tokenAAmount,
|
|
179
|
-
tokenBAmount,
|
|
180
|
-
nativeTokenAmount,
|
|
181
|
-
);
|
|
182
|
-
});
|
|
183
|
-
});
|