@paraswap/dex-lib 2.28.11-ramses-v2 → 2.28.11

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 (140) hide show
  1. package/build/config.d.ts +0 -1
  2. package/build/config.js +9 -1
  3. package/build/config.js.map +1 -1
  4. package/build/dex/algebra/algebra.d.ts +1 -1
  5. package/build/dex/algebra/algebra.js +2 -0
  6. package/build/dex/algebra/algebra.js.map +1 -1
  7. package/build/dex/algebra/config.js +0 -1
  8. package/build/dex/algebra/config.js.map +1 -1
  9. package/build/dex/algebra/lib/TickTable.js +51 -40
  10. package/build/dex/algebra/lib/TickTable.js.map +1 -1
  11. package/build/dex/{ramses-v2 → test-dex}/config.d.ts +1 -1
  12. package/build/dex/test-dex/config.js +15 -0
  13. package/build/dex/test-dex/config.js.map +1 -0
  14. package/build/dex/test-dex/test-dex-pool.d.ts +39 -0
  15. package/build/dex/test-dex/test-dex-pool.js +63 -0
  16. package/build/dex/test-dex/test-dex-pool.js.map +1 -0
  17. package/build/dex/test-dex/test-dex.d.ts +37 -0
  18. package/build/dex/test-dex/test-dex.js +126 -0
  19. package/build/dex/test-dex/test-dex.js.map +1 -0
  20. package/build/dex/test-dex/types.d.ts +6 -0
  21. package/build/dex/{pancakeswap-v3 → test-dex}/types.js.map +1 -1
  22. package/build/dex/uniswap-v3/config.js +0 -22
  23. package/build/dex/uniswap-v3/config.js.map +1 -1
  24. package/build/dex/uniswap-v3/types.d.ts +1 -6
  25. package/build/dex/uniswap-v3/types.js.map +1 -1
  26. package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +2 -3
  27. package/build/dex/uniswap-v3/uniswap-v3-pool.js +2 -5
  28. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  29. package/build/dex/uniswap-v3/uniswap-v3.js +3 -7
  30. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  31. package/build/dex/woo-fi-v2/woo-fi-math.d.ts +16 -0
  32. package/build/dex/woo-fi-v2/woo-fi-math.js +137 -0
  33. package/build/dex/woo-fi-v2/woo-fi-math.js.map +1 -0
  34. package/build/types.d.ts +1 -0
  35. package/package.json +1 -1
  36. package/src/config.ts +11 -1
  37. package/src/dex/algebra/algebra-integration.test.ts +194 -16
  38. package/src/dex/algebra/algebra.ts +5 -1
  39. package/src/dex/algebra/config.ts +0 -1
  40. package/src/dex/algebra/lib/TickTable.ts +75 -74
  41. package/src/dex/uniswap-v3/config.ts +0 -22
  42. package/src/dex/uniswap-v3/types.ts +1 -7
  43. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +354 -445
  44. package/src/dex/uniswap-v3/uniswap-v3-integration.test.ts +13 -171
  45. package/src/dex/uniswap-v3/uniswap-v3-pool.ts +4 -9
  46. package/src/dex/uniswap-v3/uniswap-v3.ts +2 -7
  47. package/src/types.ts +1 -0
  48. package/tests/constants-e2e.ts +5 -1
  49. package/.idea/aws.xml +0 -17
  50. package/.idea/codeStyles/Project.xml +0 -19
  51. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  52. package/.idea/misc.xml +0 -6
  53. package/.idea/modules.xml +0 -8
  54. package/.idea/paraswap-dex-lib.iml +0 -9
  55. package/.idea/vcs.xml +0 -6
  56. package/build/abi/RamsesV2StateMulticall.abi.json +0 -891
  57. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  58. package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
  59. package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
  60. package/build/abi/wBETH.json +0 -1527
  61. package/build/dex/algebra/algebra-pool.d.ts +0 -46
  62. package/build/dex/algebra/algebra-pool.js +0 -336
  63. package/build/dex/algebra/algebra-pool.js.map +0 -1
  64. package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
  65. package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
  66. package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
  67. package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
  68. package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
  69. package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
  70. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  71. package/build/dex/ramses-v2/config.js +0 -28
  72. package/build/dex/ramses-v2/config.js.map +0 -1
  73. package/build/dex/ramses-v2/constants.d.ts +0 -28
  74. package/build/dex/ramses-v2/constants.js +0 -35
  75. package/build/dex/ramses-v2/constants.js.map +0 -1
  76. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
  77. package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
  78. package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
  79. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
  80. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
  81. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
  82. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
  83. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
  84. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
  85. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
  86. package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
  87. package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
  88. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
  89. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
  90. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
  91. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
  92. package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
  93. package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
  94. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
  95. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
  96. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
  97. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
  98. package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
  99. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
  100. package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
  101. package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
  102. package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
  103. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
  104. package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
  105. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
  106. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
  107. package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
  108. package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
  109. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
  110. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
  111. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
  112. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
  113. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
  114. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
  115. package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
  116. package/build/dex/ramses-v2/contract-math/utils.js +0 -16
  117. package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
  118. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
  119. package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
  120. package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
  121. package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
  122. package/build/dex/ramses-v2/ramses-v2.js +0 -690
  123. package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
  124. package/build/dex/ramses-v2/types.d.ts +0 -154
  125. package/build/dex/ramses-v2/types.js +0 -9
  126. package/build/dex/ramses-v2/types.js.map +0 -1
  127. package/build/dex/ramses-v2/utils.d.ts +0 -6
  128. package/build/dex/ramses-v2/utils.js +0 -71
  129. package/build/dex/ramses-v2/utils.js.map +0 -1
  130. package/build/dex/solidly/forks-override/ramses.d.ts +0 -8
  131. package/build/dex/solidly/forks-override/ramses.js +0 -15
  132. package/build/dex/solidly/forks-override/ramses.js.map +0 -1
  133. package/build/dex/uniswap-v3/forks/ramses-v2/utils.d.ts +0 -4
  134. package/build/dex/uniswap-v3/forks/ramses-v2/utils.js +0 -63
  135. package/build/dex/uniswap-v3/forks/ramses-v2/utils.js.map +0 -1
  136. package/src/abi/RamsesV2Pool.abi.json +0 -1554
  137. package/src/abi/RamsesV2Quoter.abi.json +0 -274
  138. package/src/abi/RamsesV2StateMulticall.abi.json +0 -891
  139. package/src/dex/uniswap-v3/forks/ramses-v2/utils.ts +0 -72
  140. /package/build/dex/{pancakeswap-v3 → test-dex}/types.js +0 -0
@@ -12,493 +12,402 @@ import { StaticJsonRpcProvider } from '@ethersproject/providers';
12
12
  import { generateConfig } from '../../config';
13
13
 
14
14
  describe('UniswapV3 E2E', () => {
15
+ const dexKey = 'UniswapV3';
15
16
 
16
- describe('UniswapV3', () => {
17
- const dexKey = 'UniswapV3';
17
+ describe('UniswapV3 MAINNET', () => {
18
+ const network = Network.MAINNET;
19
+ const tokens = Tokens[network];
20
+ const holders = Holders[network];
21
+ const provider = new StaticJsonRpcProvider(
22
+ generateConfig(network).privateHttpProvider,
23
+ network,
24
+ );
18
25
 
19
- describe('UniswapV3 MAINNET', () => {
20
- const network = Network.MAINNET;
21
- const tokens = Tokens[network];
22
- const holders = Holders[network];
23
- const provider = new StaticJsonRpcProvider(
24
- generateConfig(network).privateHttpProvider,
26
+ it('BUY DAI -> USDC', async () => {
27
+ await testE2E(
28
+ tokens['DAI'],
29
+ tokens['USDC'],
30
+ holders['DAI'],
31
+ '100000000000',
32
+ SwapSide.BUY,
33
+ dexKey,
34
+ ContractMethod.simpleBuy,
25
35
  network,
36
+ provider,
37
+ );
38
+ });
39
+ it('SELL WETH -> SHIBA', async () => {
40
+ await testE2E(
41
+ tokens['WETH'],
42
+ tokens['SHIBA'],
43
+ holders['WETH'],
44
+ '1000000000000000000',
45
+ SwapSide.SELL,
46
+ dexKey,
47
+ ContractMethod.simpleSwap,
48
+ network,
49
+ provider,
26
50
  );
27
-
28
- it('BUY DAI -> USDC', async () => {
29
- await testE2E(
30
- tokens['DAI'],
31
- tokens['USDC'],
32
- holders['DAI'],
33
- '100000000000',
34
- SwapSide.BUY,
35
- dexKey,
36
- ContractMethod.simpleBuy,
37
- network,
38
- provider,
39
- );
40
- });
41
- it('SELL WETH -> SHIBA', async () => {
42
- await testE2E(
43
- tokens['WETH'],
44
- tokens['SHIBA'],
45
- holders['WETH'],
46
- '1000000000000000000',
47
- SwapSide.SELL,
48
- dexKey,
49
- ContractMethod.simpleSwap,
50
- network,
51
- provider,
52
- );
53
- });
54
-
55
- it('directSwap SELL WETH -> USDC', async () => {
56
- await testE2E(
57
- tokens['WETH'],
58
- tokens['USDC'],
59
- holders['WETH'],
60
- '1000000000000000000',
61
- SwapSide.SELL,
62
- dexKey,
63
- ContractMethod.directUniV3Swap,
64
- network,
65
- provider,
66
- );
67
- });
68
51
  });
69
52
 
70
- describe('UniswapV3 POLYGON', () => {
71
- const network = Network.POLYGON;
72
- const tokens = Tokens[network];
73
- const holders = Holders[network];
74
- const provider = new StaticJsonRpcProvider(
75
- generateConfig(network).privateHttpProvider,
53
+ it('directSwap SELL WETH -> USDC', async () => {
54
+ await testE2E(
55
+ tokens['WETH'],
56
+ tokens['USDC'],
57
+ holders['WETH'],
58
+ '1000000000000000000',
59
+ SwapSide.SELL,
60
+ dexKey,
61
+ ContractMethod.directUniV3Swap,
76
62
  network,
63
+ provider,
77
64
  );
65
+ });
66
+ });
67
+
68
+ describe('UniswapV3 POLYGON', () => {
69
+ const network = Network.POLYGON;
70
+ const tokens = Tokens[network];
71
+ const holders = Holders[network];
72
+ const provider = new StaticJsonRpcProvider(
73
+ generateConfig(network).privateHttpProvider,
74
+ network,
75
+ );
78
76
 
79
- const tokenASymbol: string = 'USDC';
80
- const tokenBSymbol: string = 'WETH';
81
- const nativeTokenSymbol = NativeTokenSymbols[network];
77
+ const tokenASymbol: string = 'USDC';
78
+ const tokenBSymbol: string = 'WETH';
79
+ const nativeTokenSymbol = NativeTokenSymbols[network];
82
80
 
83
- const tokenAAmount: string = '11000000';
84
- const tokenBAmount: string = '11000000000000000000';
85
- const nativeTokenAmount = '11000000000000000000';
81
+ const tokenAAmount: string = '11000000';
82
+ const tokenBAmount: string = '11000000000000000000';
83
+ const nativeTokenAmount = '11000000000000000000';
86
84
 
87
- const sideToContractMethods = new Map([
85
+ const sideToContractMethods = new Map([
86
+ [
87
+ SwapSide.SELL,
88
88
  [
89
- SwapSide.SELL,
90
- [
91
- ContractMethod.simpleSwap,
92
- ContractMethod.multiSwap,
93
- ContractMethod.megaSwap,
94
- ContractMethod.directUniV3Swap,
95
- ],
89
+ ContractMethod.simpleSwap,
90
+ ContractMethod.multiSwap,
91
+ ContractMethod.megaSwap,
92
+ ContractMethod.directUniV3Swap,
96
93
  ],
94
+ ],
95
+ [
96
+ SwapSide.BUY,
97
97
  [
98
- SwapSide.BUY,
99
- [
100
- ContractMethod.simpleBuy,
101
- ContractMethod.buy,
102
- ContractMethod.directUniV3Buy,
103
- ],
98
+ ContractMethod.simpleBuy,
99
+ ContractMethod.buy,
100
+ ContractMethod.directUniV3Buy,
104
101
  ],
105
- ]);
102
+ ],
103
+ ]);
106
104
 
107
- sideToContractMethods.forEach((contractMethods, side) =>
108
- contractMethods.forEach((contractMethod: ContractMethod) => {
109
- describe(`${contractMethod}`, () => {
110
- it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
111
- await testE2E(
112
- tokens[nativeTokenSymbol],
113
- tokens[tokenASymbol],
114
- holders[nativeTokenSymbol],
115
- side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
116
- side,
117
- dexKey,
118
- contractMethod,
119
- network,
120
- provider,
121
- );
122
- });
123
- it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
124
- await testE2E(
125
- tokens[tokenASymbol],
126
- tokens[nativeTokenSymbol],
127
- holders[tokenASymbol],
128
- side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
129
- side,
130
- dexKey,
131
- contractMethod,
132
- network,
133
- provider,
134
- );
135
- });
136
- it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
137
- await testE2E(
138
- tokens[tokenASymbol],
139
- tokens[tokenBSymbol],
140
- holders[tokenASymbol],
141
- side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
142
- side,
143
- dexKey,
144
- contractMethod,
145
- network,
146
- provider,
147
- );
148
- });
105
+ sideToContractMethods.forEach((contractMethods, side) =>
106
+ contractMethods.forEach((contractMethod: ContractMethod) => {
107
+ describe(`${contractMethod}`, () => {
108
+ it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
109
+ await testE2E(
110
+ tokens[nativeTokenSymbol],
111
+ tokens[tokenASymbol],
112
+ holders[nativeTokenSymbol],
113
+ side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
114
+ side,
115
+ dexKey,
116
+ contractMethod,
117
+ network,
118
+ provider,
119
+ );
149
120
  });
150
- }),
151
- );
152
- });
121
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
122
+ await testE2E(
123
+ tokens[tokenASymbol],
124
+ tokens[nativeTokenSymbol],
125
+ holders[tokenASymbol],
126
+ side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
127
+ side,
128
+ dexKey,
129
+ contractMethod,
130
+ network,
131
+ provider,
132
+ );
133
+ });
134
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
135
+ await testE2E(
136
+ tokens[tokenASymbol],
137
+ tokens[tokenBSymbol],
138
+ holders[tokenASymbol],
139
+ side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
140
+ side,
141
+ dexKey,
142
+ contractMethod,
143
+ network,
144
+ provider,
145
+ );
146
+ });
147
+ });
148
+ }),
149
+ );
150
+ });
153
151
 
154
- describe('UniswapV3 BSC', () => {
155
- const network = Network.BSC;
156
- const tokens = Tokens[network];
157
- const holders = Holders[network];
158
- const provider = new StaticJsonRpcProvider(
159
- generateConfig(network).privateHttpProvider,
160
- network,
161
- );
152
+ describe('UniswapV3 BSC', () => {
153
+ const network = Network.BSC;
154
+ const tokens = Tokens[network];
155
+ const holders = Holders[network];
156
+ const provider = new StaticJsonRpcProvider(
157
+ generateConfig(network).privateHttpProvider,
158
+ network,
159
+ );
162
160
 
163
- const tokenASymbol: string = 'BUSD';
164
- const tokenBSymbol: string = 'WBNB';
165
- const nativeTokenSymbol = NativeTokenSymbols[network];
161
+ const tokenASymbol: string = 'BUSD';
162
+ const tokenBSymbol: string = 'WBNB';
163
+ const nativeTokenSymbol = NativeTokenSymbols[network];
166
164
 
167
- const tokenAAmount: string = '100000000000000000000';
168
- const tokenBAmount: string = '1000000000000000000';
169
- const nativeTokenAmount = '1000000000000000000';
165
+ const tokenAAmount: string = '100000000000000000000';
166
+ const tokenBAmount: string = '1000000000000000000';
167
+ const nativeTokenAmount = '1000000000000000000';
170
168
 
171
- const sideToContractMethods = new Map([
169
+ const sideToContractMethods = new Map([
170
+ [
171
+ SwapSide.SELL,
172
172
  [
173
- SwapSide.SELL,
174
- [
175
- ContractMethod.simpleSwap,
176
- ContractMethod.multiSwap,
177
- ContractMethod.megaSwap,
178
- ],
173
+ ContractMethod.simpleSwap,
174
+ ContractMethod.multiSwap,
175
+ ContractMethod.megaSwap,
179
176
  ],
180
- [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
181
- ]);
177
+ ],
178
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
179
+ ]);
182
180
 
183
- sideToContractMethods.forEach((contractMethods, side) =>
184
- contractMethods.forEach((contractMethod: ContractMethod) => {
185
- describe(`${contractMethod}`, () => {
186
- it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
187
- await testE2E(
188
- tokens[nativeTokenSymbol],
189
- tokens[tokenASymbol],
190
- holders[nativeTokenSymbol],
191
- side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
192
- side,
193
- dexKey,
194
- contractMethod,
195
- network,
196
- provider,
197
- );
198
- });
199
- it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
200
- await testE2E(
201
- tokens[tokenASymbol],
202
- tokens[nativeTokenSymbol],
203
- holders[tokenASymbol],
204
- side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
205
- side,
206
- dexKey,
207
- contractMethod,
208
- network,
209
- provider,
210
- );
211
- });
212
- it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
213
- await testE2E(
214
- tokens[tokenASymbol],
215
- tokens[tokenBSymbol],
216
- holders[tokenASymbol],
217
- side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
218
- side,
219
- dexKey,
220
- contractMethod,
221
- network,
222
- provider,
223
- );
224
- });
181
+ sideToContractMethods.forEach((contractMethods, side) =>
182
+ contractMethods.forEach((contractMethod: ContractMethod) => {
183
+ describe(`${contractMethod}`, () => {
184
+ it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
185
+ await testE2E(
186
+ tokens[nativeTokenSymbol],
187
+ tokens[tokenASymbol],
188
+ holders[nativeTokenSymbol],
189
+ side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
190
+ side,
191
+ dexKey,
192
+ contractMethod,
193
+ network,
194
+ provider,
195
+ );
225
196
  });
226
- }),
227
- );
228
- });
197
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
198
+ await testE2E(
199
+ tokens[tokenASymbol],
200
+ tokens[nativeTokenSymbol],
201
+ holders[tokenASymbol],
202
+ side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
203
+ side,
204
+ dexKey,
205
+ contractMethod,
206
+ network,
207
+ provider,
208
+ );
209
+ });
210
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
211
+ await testE2E(
212
+ tokens[tokenASymbol],
213
+ tokens[tokenBSymbol],
214
+ holders[tokenASymbol],
215
+ side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
216
+ side,
217
+ dexKey,
218
+ contractMethod,
219
+ network,
220
+ provider,
221
+ );
222
+ });
223
+ });
224
+ }),
225
+ );
226
+ });
229
227
 
230
- describe('UniswapV3 Optimism', () => {
231
- const network = Network.OPTIMISM;
232
- const tokens = Tokens[network];
233
- const holders = Holders[network];
234
- const provider = new StaticJsonRpcProvider(
235
- generateConfig(network).privateHttpProvider,
236
- network,
237
- );
228
+ describe('UniswapV3 Optimism', () => {
229
+ const network = Network.OPTIMISM;
230
+ const tokens = Tokens[network];
231
+ const holders = Holders[network];
232
+ const provider = new StaticJsonRpcProvider(
233
+ generateConfig(network).privateHttpProvider,
234
+ network,
235
+ );
238
236
 
239
- const tokenASymbol: string = 'OP';
240
- const tokenBSymbol: string = 'ETH';
241
- const nativeTokenSymbol = NativeTokenSymbols[network];
237
+ const tokenASymbol: string = 'OP';
238
+ const tokenBSymbol: string = 'ETH';
239
+ const nativeTokenSymbol = NativeTokenSymbols[network];
242
240
 
243
- const tokenAAmount: string = '1000000000000000000';
244
- const tokenBAmount: string = '1000000000000000000';
245
- const nativeTokenAmount = '1000000000000000000';
241
+ const tokenAAmount: string = '1000000000000000000';
242
+ const tokenBAmount: string = '1000000000000000000';
243
+ const nativeTokenAmount = '1000000000000000000';
246
244
 
247
- const sideToContractMethods = new Map([
245
+ const sideToContractMethods = new Map([
246
+ [
247
+ SwapSide.SELL,
248
248
  [
249
- SwapSide.SELL,
250
- [
251
- ContractMethod.simpleSwap,
252
- ContractMethod.multiSwap,
253
- ContractMethod.megaSwap,
254
- ],
249
+ ContractMethod.simpleSwap,
250
+ ContractMethod.multiSwap,
251
+ ContractMethod.megaSwap,
255
252
  ],
256
- [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
257
- ]);
253
+ ],
254
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
255
+ ]);
258
256
 
259
- sideToContractMethods.forEach((contractMethods, side) =>
260
- contractMethods.forEach((contractMethod: ContractMethod) => {
261
- describe(`${contractMethod}`, () => {
262
- it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
263
- await testE2E(
264
- tokens[nativeTokenSymbol],
265
- tokens[tokenASymbol],
266
- holders[nativeTokenSymbol],
267
- side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
268
- side,
269
- dexKey,
270
- contractMethod,
271
- network,
272
- provider,
273
- );
274
- });
275
- it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
276
- await testE2E(
277
- tokens[tokenASymbol],
278
- tokens[nativeTokenSymbol],
279
- holders[tokenASymbol],
280
- side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
281
- side,
282
- dexKey,
283
- contractMethod,
284
- network,
285
- provider,
286
- );
287
- });
288
- it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
289
- await testE2E(
290
- tokens[tokenASymbol],
291
- tokens[tokenBSymbol],
292
- holders[tokenASymbol],
293
- side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
294
- side,
295
- dexKey,
296
- contractMethod,
297
- network,
298
- provider,
299
- );
300
- });
257
+ sideToContractMethods.forEach((contractMethods, side) =>
258
+ contractMethods.forEach((contractMethod: ContractMethod) => {
259
+ describe(`${contractMethod}`, () => {
260
+ it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
261
+ await testE2E(
262
+ tokens[nativeTokenSymbol],
263
+ tokens[tokenASymbol],
264
+ holders[nativeTokenSymbol],
265
+ side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
266
+ side,
267
+ dexKey,
268
+ contractMethod,
269
+ network,
270
+ provider,
271
+ );
301
272
  });
302
- }),
303
- );
304
- });
305
-
306
- describe('UniswapV3 Avalanche', () => {
307
- const network = Network.AVALANCHE;
308
- const tokens = Tokens[network];
309
- const holders = Holders[network];
310
- const provider = new StaticJsonRpcProvider(
311
- generateConfig(network).privateHttpProvider,
312
- network,
313
- );
314
-
315
- const sideToContractMethods = new Map([
316
- [
317
- SwapSide.SELL,
318
- [
319
- ContractMethod.simpleSwap,
320
- ContractMethod.multiSwap,
321
- ContractMethod.megaSwap,
322
- ],
323
- ],
324
- [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
325
- ]);
326
-
327
- const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
328
- [
329
- {
330
- name: 'AVAX',
331
- sellAmount: '1000000000000000000',
332
- buyAmount: '500000',
333
- },
334
- {
335
- name: 'USDT',
336
- sellAmount: '1000000',
337
- buyAmount: '10000000000000000000',
338
- },
339
- ],
340
- [
341
- {
342
- name: 'AVAX',
343
- sellAmount: '1000000000000000000',
344
- buyAmount: '500000',
345
- },
346
- {
347
- name: 'USDC',
348
- sellAmount: '1000000',
349
- buyAmount: '1000000000000000000',
350
- },
351
- ],
352
- [
353
- {
354
- name: 'WAVAX',
355
- sellAmount: '1000000000000000000',
356
- buyAmount: '500000',
357
- },
358
- { name: 'USDC', sellAmount: '1000000', buyAmount: '20000000000000000' },
359
- ],
360
- [
361
- {
362
- name: 'WAVAX',
363
- sellAmount: '1000000000000000000',
364
- buyAmount: '10000000',
365
- },
366
- { name: 'USDT', sellAmount: '1000000', buyAmount: '2000000000000' },
367
- ],
368
- [
369
- { name: 'USDC', sellAmount: '1000000', buyAmount: '100000000' },
370
- { name: 'USDT', sellAmount: '100000000', buyAmount: '100000000' },
371
- ],
372
- ];
373
-
374
- sideToContractMethods.forEach((contractMethods, side) =>
375
- describe(`${side}`, () => {
376
- contractMethods.forEach((contractMethod: ContractMethod) => {
377
- pairs.forEach(pair => {
378
- describe(`${contractMethod}`, () => {
379
- it(`${pair[0].name} -> ${pair[1].name}`, async () => {
380
- await testE2E(
381
- tokens[pair[0].name],
382
- tokens[pair[1].name],
383
- holders[pair[0].name],
384
- side === SwapSide.SELL
385
- ? pair[0].sellAmount
386
- : pair[0].buyAmount,
387
- side,
388
- dexKey,
389
- contractMethod,
390
- network,
391
- provider,
392
- );
393
- });
394
- it(`${pair[1].name} -> ${pair[0].name}`, async () => {
395
- await testE2E(
396
- tokens[pair[1].name],
397
- tokens[pair[0].name],
398
- holders[pair[1].name],
399
- side === SwapSide.SELL
400
- ? pair[1].sellAmount
401
- : pair[1].buyAmount,
402
- side,
403
- dexKey,
404
- contractMethod,
405
- network,
406
- provider,
407
- );
408
- });
409
- });
410
- });
273
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
274
+ await testE2E(
275
+ tokens[tokenASymbol],
276
+ tokens[nativeTokenSymbol],
277
+ holders[tokenASymbol],
278
+ side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
279
+ side,
280
+ dexKey,
281
+ contractMethod,
282
+ network,
283
+ provider,
284
+ );
411
285
  });
412
- }),
413
- );
414
- });
286
+ it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
287
+ await testE2E(
288
+ tokens[tokenASymbol],
289
+ tokens[tokenBSymbol],
290
+ holders[tokenASymbol],
291
+ side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
292
+ side,
293
+ dexKey,
294
+ contractMethod,
295
+ network,
296
+ provider,
297
+ );
298
+ });
299
+ });
300
+ }),
301
+ );
415
302
  });
416
303
 
417
- describe('RamsesV2', () => {
418
- const dexKey = 'RamsesV2';
419
-
420
- describe('Arbitrum', () => {
421
- const network = Network.ARBITRUM;
422
- const tokens = Tokens[network];
423
- const holders = Holders[network];
424
- const provider = new StaticJsonRpcProvider(
425
- generateConfig(network).privateHttpProvider,
426
- network,
427
- );
428
-
429
- const tokenASymbol: string = 'USDCe';
430
- const tokenBSymbol: string = 'USDT';
431
- const nativeTokenSymbol = NativeTokenSymbols[network];
432
-
433
- const tokenAAmount: string = '1100000';
434
- const tokenBAmount: string = '1000000';
435
- const nativeTokenAmount = '1100000000000';
304
+ describe('UniswapV3 Avalanche', () => {
305
+ const network = Network.AVALANCHE;
306
+ const tokens = Tokens[network];
307
+ const holders = Holders[network];
308
+ const provider = new StaticJsonRpcProvider(
309
+ generateConfig(network).privateHttpProvider,
310
+ network,
311
+ );
436
312
 
437
- const sideToContractMethods = new Map([
313
+ const sideToContractMethods = new Map([
314
+ [
315
+ SwapSide.SELL,
438
316
  [
439
- SwapSide.SELL,
440
- [
441
- ContractMethod.simpleSwap,
442
- ContractMethod.multiSwap,
443
- ContractMethod.megaSwap,
444
- ContractMethod.directUniV3Swap,
445
- ],
446
- ],
447
- [
448
- SwapSide.BUY,
449
- [
450
- ContractMethod.simpleBuy,
451
- ContractMethod.buy,
452
- ContractMethod.directUniV3Buy,
453
- ],
317
+ ContractMethod.simpleSwap,
318
+ ContractMethod.multiSwap,
319
+ ContractMethod.megaSwap,
454
320
  ],
455
- ]);
321
+ ],
322
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
323
+ ]);
456
324
 
457
- sideToContractMethods.forEach((contractMethods, side) =>
325
+ const pairs: { name: string; sellAmount: string; buyAmount: string }[][] = [
326
+ [
327
+ {
328
+ name: 'AVAX',
329
+ sellAmount: '1000000000000000000',
330
+ buyAmount: '500000',
331
+ },
332
+ {
333
+ name: 'USDT',
334
+ sellAmount: '1000000',
335
+ buyAmount: '10000000000000000000',
336
+ },
337
+ ],
338
+ [
339
+ {
340
+ name: 'AVAX',
341
+ sellAmount: '1000000000000000000',
342
+ buyAmount: '500000',
343
+ },
344
+ {
345
+ name: 'USDC',
346
+ sellAmount: '1000000',
347
+ buyAmount: '1000000000000000000',
348
+ },
349
+ ],
350
+ [
351
+ {
352
+ name: 'WAVAX',
353
+ sellAmount: '1000000000000000000',
354
+ buyAmount: '500000',
355
+ },
356
+ { name: 'USDC', sellAmount: '1000000', buyAmount: '20000000000000000' },
357
+ ],
358
+ [
359
+ {
360
+ name: 'WAVAX',
361
+ sellAmount: '1000000000000000000',
362
+ buyAmount: '10000000',
363
+ },
364
+ { name: 'USDT', sellAmount: '1000000', buyAmount: '2000000000000' },
365
+ ],
366
+ [
367
+ { name: 'USDC', sellAmount: '1000000', buyAmount: '100000000' },
368
+ { name: 'USDT', sellAmount: '100000000', buyAmount: '100000000' },
369
+ ],
370
+ ];
371
+
372
+ sideToContractMethods.forEach((contractMethods, side) =>
373
+ describe(`${side}`, () => {
458
374
  contractMethods.forEach((contractMethod: ContractMethod) => {
459
- describe(`${contractMethod}`, () => {
460
- it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
461
- await testE2E(
462
- tokens[nativeTokenSymbol],
463
- tokens[tokenASymbol],
464
- holders[nativeTokenSymbol],
465
- side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
466
- side,
467
- dexKey,
468
- contractMethod,
469
- network,
470
- provider,
471
- );
472
- });
473
- it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
474
- await testE2E(
475
- tokens[tokenASymbol],
476
- tokens[nativeTokenSymbol],
477
- holders[tokenASymbol],
478
- side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
479
- side,
480
- dexKey,
481
- contractMethod,
482
- network,
483
- provider,
484
- );
485
- });
486
- it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
487
- await testE2E(
488
- tokens[tokenASymbol],
489
- tokens[tokenBSymbol],
490
- holders[tokenASymbol],
491
- side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
492
- side,
493
- dexKey,
494
- contractMethod,
495
- network,
496
- provider,
497
- );
375
+ pairs.forEach(pair => {
376
+ describe(`${contractMethod}`, () => {
377
+ it(`${pair[0].name} -> ${pair[1].name}`, async () => {
378
+ await testE2E(
379
+ tokens[pair[0].name],
380
+ tokens[pair[1].name],
381
+ holders[pair[0].name],
382
+ side === SwapSide.SELL
383
+ ? pair[0].sellAmount
384
+ : pair[0].buyAmount,
385
+ side,
386
+ dexKey,
387
+ contractMethod,
388
+ network,
389
+ provider,
390
+ );
391
+ });
392
+ it(`${pair[1].name} -> ${pair[0].name}`, async () => {
393
+ await testE2E(
394
+ tokens[pair[1].name],
395
+ tokens[pair[0].name],
396
+ holders[pair[1].name],
397
+ side === SwapSide.SELL
398
+ ? pair[1].sellAmount
399
+ : pair[1].buyAmount,
400
+ side,
401
+ dexKey,
402
+ contractMethod,
403
+ network,
404
+ provider,
405
+ );
406
+ });
498
407
  });
499
408
  });
500
- }),
501
- );
502
- });
409
+ });
410
+ }),
411
+ );
503
412
  });
504
413
  });