@paraswap/dex-lib 2.20.3 → 2.21.1-chronos

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 (144) hide show
  1. package/.idea/aws.xml +17 -0
  2. package/.idea/codeStyles/Project.xml +19 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/misc.xml +6 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/paraswap-dex-lib.iml +9 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/build/config.js +2 -4
  9. package/build/config.js.map +1 -1
  10. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  11. package/build/dex/aave-v3/tokens/avalanche.json +74 -0
  12. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  13. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  14. package/build/dex/aave-v3/tokens/polygon.json +116 -0
  15. package/build/dex/balancer-v2/balancer-v2.d.ts +3 -9
  16. package/build/dex/balancer-v2/balancer-v2.js +0 -83
  17. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  18. package/build/dex/balancer-v2/constants.d.ts +0 -4
  19. package/build/dex/balancer-v2/constants.js +1 -6
  20. package/build/dex/balancer-v2/constants.js.map +1 -1
  21. package/build/dex/balancer-v2/types.d.ts +1 -20
  22. package/build/dex/balancer-v2/types.js.map +1 -1
  23. package/build/dex/curve-v1/constants.d.ts +0 -1
  24. package/build/dex/curve-v1/constants.js +1 -2
  25. package/build/dex/curve-v1/constants.js.map +1 -1
  26. package/build/dex/curve-v1/curve-v1.d.ts +3 -9
  27. package/build/dex/curve-v1/curve-v1.js +4 -92
  28. package/build/dex/curve-v1/curve-v1.js.map +1 -1
  29. package/build/dex/curve-v1/types.d.ts +0 -24
  30. package/build/dex/curve-v1/types.js +1 -6
  31. package/build/dex/curve-v1/types.js.map +1 -1
  32. package/build/dex/curve-v1-factory/constants.d.ts +0 -1
  33. package/build/dex/curve-v1-factory/constants.js +1 -2
  34. package/build/dex/curve-v1-factory/constants.js.map +1 -1
  35. package/build/dex/curve-v1-factory/curve-v1-factory.d.ts +4 -11
  36. package/build/dex/curve-v1-factory/curve-v1-factory.js +0 -87
  37. package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
  38. package/build/dex/curve-v1-factory/types.d.ts +0 -24
  39. package/build/dex/curve-v1-factory/types.js +1 -6
  40. package/build/dex/curve-v1-factory/types.js.map +1 -1
  41. package/build/dex/curve-v2.d.ts +7 -29
  42. package/build/dex/curve-v2.js +1 -91
  43. package/build/dex/curve-v2.js.map +1 -1
  44. package/build/dex/idex.d.ts +1 -1
  45. package/build/dex/index.js +2 -2
  46. package/build/dex/index.js.map +1 -1
  47. package/build/dex/pancakeswap-v3/pancakeswap-v3.d.ts +2 -2
  48. package/build/dex/pancakeswap-v3/types.d.ts +14 -0
  49. package/build/dex/pancakeswap-v3/types.js +3 -0
  50. package/build/dex/pancakeswap-v3/types.js.map +1 -0
  51. package/build/dex/pancakeswap-v3/utils.js.map +1 -1
  52. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  53. package/build/dex/quickswap/camelot-v3.js +19 -0
  54. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  55. package/build/dex/simple-exchange.d.ts +0 -2
  56. package/build/dex/simple-exchange.js +0 -1
  57. package/build/dex/simple-exchange.js.map +1 -1
  58. package/build/dex/solidly/config.js +13 -0
  59. package/build/dex/solidly/config.js.map +1 -1
  60. package/build/dex/solidly/forks-override/chronos.d.ts +23 -0
  61. package/build/dex/solidly/forks-override/chronos.js +132 -0
  62. package/build/dex/solidly/forks-override/chronos.js.map +1 -0
  63. package/build/dex/solidly/solidly.js +1 -0
  64. package/build/dex/solidly/solidly.js.map +1 -1
  65. package/build/dex/uniswap-v2/uniswap-v2.d.ts +1 -1
  66. package/build/dex/uniswap-v2/uniswap-v2.js +1 -1
  67. package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
  68. package/build/dex/uniswap-v3/constants.d.ts +0 -4
  69. package/build/dex/uniswap-v3/constants.js +1 -6
  70. package/build/dex/uniswap-v3/constants.js.map +1 -1
  71. package/build/dex/uniswap-v3/types.d.ts +3 -20
  72. package/build/dex/uniswap-v3/types.js.map +1 -1
  73. package/build/dex/uniswap-v3/uniswap-v3.d.ts +1 -7
  74. package/build/dex/uniswap-v3/uniswap-v3.js +1 -85
  75. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  76. package/build/dex/woo-fi-v2/config.js +6 -6
  77. package/build/dex/zerox/index.d.ts +1 -1
  78. package/build/dex/zerox/index.js +1 -1
  79. package/build/dex/zerox/index.js.map +1 -1
  80. package/build/implementations/local-paraswap-sdk.js +1 -5
  81. package/build/implementations/local-paraswap-sdk.js.map +1 -1
  82. package/build/router/directswap.js +1 -7
  83. package/build/router/directswap.js.map +1 -1
  84. package/build/router/index.js.map +1 -1
  85. package/build/router/payload-encoder.js +6 -16
  86. package/build/router/payload-encoder.js.map +1 -1
  87. package/build/types.d.ts +0 -2
  88. package/build/utils.d.ts +0 -2
  89. package/build/utils.js +1 -5
  90. package/build/utils.js.map +1 -1
  91. package/package.json +4 -6
  92. package/src/config.ts +2 -5
  93. package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +0 -79
  94. package/src/dex/balancer-v2/balancer-v2.ts +4 -153
  95. package/src/dex/balancer-v2/constants.ts +0 -5
  96. package/src/dex/balancer-v2/types.ts +1 -21
  97. package/src/dex/curve-v1/constants.ts +0 -2
  98. package/src/dex/curve-v1/curve-v1-e2e.test.ts +0 -57
  99. package/src/dex/curve-v1/curve-v1.ts +5 -144
  100. package/src/dex/curve-v1/types.ts +0 -26
  101. package/src/dex/curve-v1-factory/constants.ts +0 -2
  102. package/src/dex/curve-v1-factory/curve-v1-factory-e2e.test.ts +0 -1
  103. package/src/dex/curve-v1-factory/curve-v1-factory.ts +4 -140
  104. package/src/dex/curve-v1-factory/types.ts +0 -26
  105. package/src/dex/curve-v2.ts +8 -169
  106. package/src/dex/idex.ts +0 -6
  107. package/src/dex/index.ts +2 -2
  108. package/src/dex/pancakeswap-v3/pancakeswap-v3-e2e.test.ts +6 -3
  109. package/src/dex/pancakeswap-v3/pancakeswap-v3-integration.test.ts +14 -3
  110. package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +3 -3
  111. package/src/dex/pancakeswap-v3/utils.ts +4 -1
  112. package/src/dex/simple-exchange.ts +0 -6
  113. package/src/dex/solidly/config.ts +14 -0
  114. package/src/dex/solidly/forks-override/chronos.ts +206 -0
  115. package/src/dex/solidly/solidly-e2e.test.ts +205 -31
  116. package/src/dex/solidly/solidly-integration.test.ts +141 -0
  117. package/src/dex/solidly/solidly.ts +1 -0
  118. package/src/dex/uniswap-v2/uniswap-v2.ts +0 -6
  119. package/src/dex/uniswap-v3/constants.ts +0 -5
  120. package/src/dex/uniswap-v3/types.ts +3 -23
  121. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +2 -100
  122. package/src/dex/uniswap-v3/uniswap-v3.ts +3 -138
  123. package/src/dex/woo-fi-v2/config.ts +6 -6
  124. package/src/dex/zerox/index.ts +0 -7
  125. package/src/implementations/local-paraswap-sdk.ts +1 -8
  126. package/src/router/directswap.ts +0 -23
  127. package/src/router/index.ts +2 -0
  128. package/src/router/payload-encoder.ts +5 -22
  129. package/src/types.ts +0 -2
  130. package/src/utils.ts +0 -5
  131. package/tests/constants-e2e.ts +9 -4
  132. package/tests/utils-e2e.ts +20 -140
  133. package/tests/utils.ts +0 -52
  134. package/src/abi/DirectSwap.json +0 -1018
  135. package/src/abi/swaap-v2/vault.json +0 -918
  136. package/src/dex/swaap-v2/config.ts +0 -19
  137. package/src/dex/swaap-v2/constants.ts +0 -37
  138. package/src/dex/swaap-v2/rate-fetcher.ts +0 -214
  139. package/src/dex/swaap-v2/swaap-v2-e2e.test.ts +0 -172
  140. package/src/dex/swaap-v2/swaap-v2-integration.test.ts +0 -142
  141. package/src/dex/swaap-v2/swaap-v2.ts +0 -901
  142. package/src/dex/swaap-v2/types.ts +0 -95
  143. package/src/dex/swaap-v2/utils.ts +0 -36
  144. package/src/dex/swaap-v2/validators.ts +0 -128
@@ -905,38 +905,39 @@ describe('Solidly E2E', () => {
905
905
  ],
906
906
  ]);
907
907
 
908
- const pairs: { name: string; sellAmount: string }[][] = [
908
+ const pairs: { name: string; sellAmount: string; }[][] =
909
909
  [
910
- {
911
- name: 'BNB',
912
- sellAmount: '1000000000000000000',
913
- },
914
- {
915
- name: 'USDT',
916
- sellAmount: '10000000000000000000',
917
- },
918
- ],
919
- [
920
- {
921
- name: 'USDT',
922
- sellAmount: '10000000000000000000',
923
- },
924
- {
925
- name: 'USDC',
926
- sellAmount: '10000000000000000000',
927
- },
928
- ],
929
- [
930
- {
931
- name: 'ETH',
932
- sellAmount: '5000000000000000000',
933
- },
934
- {
935
- name: 'BNB',
936
- sellAmount: '1000000000000000000',
937
- },
938
- ],
939
- ];
910
+ [
911
+ {
912
+ name: 'BNB',
913
+ sellAmount: '1000000000000000000',
914
+ },
915
+ {
916
+ name: 'USDT',
917
+ sellAmount: '10000000000000000000',
918
+ },
919
+ ],
920
+ [
921
+ {
922
+ name: 'USDT',
923
+ sellAmount: '10000000000000000000',
924
+ },
925
+ {
926
+ name: 'USDC',
927
+ sellAmount: '10000000000000000000',
928
+ },
929
+ ],
930
+ [
931
+ {
932
+ name: 'ETH',
933
+ sellAmount: '5000000000000000000',
934
+ },
935
+ {
936
+ name: 'BNB',
937
+ sellAmount: '1000000000000000000',
938
+ },
939
+ ]
940
+ ];
940
941
 
941
942
  sideToContractMethods.forEach((contractMethods, side) =>
942
943
  describe(`${side}`, () => {
@@ -1075,4 +1076,177 @@ describe('Solidly E2E', () => {
1075
1076
  });
1076
1077
  });
1077
1078
  });
1079
+
1080
+ describe('Arbitrum', () => {
1081
+ const network = Network.ARBITRUM;
1082
+ const tokens = Tokens[network];
1083
+ const holders = Holders[network];
1084
+ const provider = new StaticJsonRpcProvider(
1085
+ generateConfig(network).privateHttpProvider,
1086
+ network,
1087
+ );
1088
+
1089
+ describe(`Chronos`, () => {
1090
+ const dexKey = 'Chronos';
1091
+
1092
+ const sideToContractMethods = new Map([
1093
+ [
1094
+ SwapSide.SELL,
1095
+ [
1096
+ ContractMethod.simpleSwap,
1097
+ ContractMethod.multiSwap,
1098
+ ContractMethod.megaSwap,
1099
+ ],
1100
+ ],
1101
+ ]);
1102
+
1103
+ const pairs: { name: string; sellAmount: string; }[][] =
1104
+ [
1105
+ [
1106
+ {
1107
+ name: 'ETH',
1108
+ sellAmount: '1000000000000000000',
1109
+ },
1110
+ {
1111
+ name: 'USDC',
1112
+ sellAmount: '100000000',
1113
+ },
1114
+ ],
1115
+ [
1116
+ {
1117
+ name: 'USDT',
1118
+ sellAmount: '100000000',
1119
+ },
1120
+ {
1121
+ name: 'USDC',
1122
+ sellAmount: '100000000',
1123
+ },
1124
+ ],
1125
+ [
1126
+ {
1127
+ name: 'USDC',
1128
+ sellAmount: '100000000',
1129
+ },
1130
+ {
1131
+ name: 'DAI',
1132
+ sellAmount: '100000000000000000000',
1133
+ },
1134
+ ],
1135
+ [
1136
+ {
1137
+ name: 'ARB',
1138
+ sellAmount: '100000000',
1139
+ },
1140
+ {
1141
+ name: 'ETH',
1142
+ sellAmount: '100000000000000000000',
1143
+ },
1144
+ ]
1145
+ ];
1146
+
1147
+ sideToContractMethods.forEach((contractMethods, side) =>
1148
+ describe(`${side}`, () => {
1149
+ contractMethods.forEach((contractMethod: ContractMethod) => {
1150
+ pairs.forEach(pair => {
1151
+ describe(`${contractMethod}`, () => {
1152
+ it(`${pair[0].name} -> ${pair[1].name}`, async () => {
1153
+ await testE2E(
1154
+ tokens[pair[0].name],
1155
+ tokens[pair[1].name],
1156
+ holders[pair[0].name],
1157
+ pair[0].sellAmount,
1158
+ side,
1159
+ dexKey,
1160
+ contractMethod,
1161
+ network,
1162
+ provider,
1163
+ );
1164
+ });
1165
+ it(`${pair[1].name} -> ${pair[0].name}`, async () => {
1166
+ await testE2E(
1167
+ tokens[pair[1].name],
1168
+ tokens[pair[0].name],
1169
+ holders[pair[1].name],
1170
+ pair[1].sellAmount,
1171
+ side,
1172
+ dexKey,
1173
+ contractMethod,
1174
+ network,
1175
+ provider,
1176
+ );
1177
+ });
1178
+ });
1179
+ });
1180
+ });
1181
+ }),
1182
+ );
1183
+ });
1184
+
1185
+ // describe(`simpleSwap`, () => {
1186
+ // describe(`Volatile`, () => {
1187
+ // it('ETH -> USDC', async () => {
1188
+ // await testE2E(
1189
+ // tokens.ETH,
1190
+ // tokens.USDC,
1191
+ // holders.ETH,
1192
+ // '1000000000000000000',
1193
+ // SwapSide.SELL,
1194
+ // dexKey,
1195
+ // ContractMethod.simpleSwap,
1196
+ // network,
1197
+ // provider,
1198
+ // );
1199
+ // });
1200
+ // });
1201
+ // describe(`Stable`, () => {
1202
+ // it('USDC -> USDT', async () => {
1203
+ // await testE2E(
1204
+ // tokens.USDC,
1205
+ // tokens.USDT,
1206
+ // holders.USDC,
1207
+ // '10000000',
1208
+ // SwapSide.SELL,
1209
+ // dexKey,
1210
+ // ContractMethod.simpleSwap,
1211
+ // network,
1212
+ // provider,
1213
+ // );
1214
+ // });
1215
+ // });
1216
+ // });
1217
+ //
1218
+ // describe(`multiSwap`, () => {
1219
+ // describe(`Volatile`, () => {
1220
+ // it('ETH -> USDC', async () => {
1221
+ // await testE2E(
1222
+ // tokens.ETH,
1223
+ // tokens.USDC,
1224
+ // holders.ETH,
1225
+ // '1000000000000000000',
1226
+ // SwapSide.SELL,
1227
+ // dexKey,
1228
+ // ContractMethod.multiSwap,
1229
+ // network,
1230
+ // provider,
1231
+ // );
1232
+ // });
1233
+ // });
1234
+ // describe(`Stable`, () => {
1235
+ // it('USDC -> USDT', async () => {
1236
+ // await testE2E(
1237
+ // tokens.USDC,
1238
+ // tokens.USDT,
1239
+ // holders.USDC,
1240
+ // '10000000',
1241
+ // SwapSide.SELL,
1242
+ // dexKey,
1243
+ // ContractMethod.multiSwap,
1244
+ // network,
1245
+ // provider,
1246
+ // );
1247
+ // });
1248
+ // });
1249
+ // });
1250
+ // });
1251
+ });
1078
1252
  });
@@ -11,6 +11,7 @@ import { Interface, Result } from '@ethersproject/abi';
11
11
  import solidlyPairABI from '../../abi/solidly/SolidlyPair.json';
12
12
  import { SpiritSwapV2 } from './forks-override/spiritSwapV2';
13
13
  import { Cone } from './forks-override/cone';
14
+ import { Chronos } from './forks-override/chronos';
14
15
 
15
16
  const amounts18 = [0n, BI_POWS[18], 2000000000000000000n];
16
17
  const amounts6 = [0n, BI_POWS[6], 2000000n];
@@ -628,4 +629,144 @@ describe('Solidly integration tests', () => {
628
629
  });
629
630
  });
630
631
  });
632
+
633
+ describe('Arbitrum', () => {
634
+ const network = Network.ARBITRUM;
635
+ const dexHelper = new DummyDexHelper(network);
636
+ const checkOnChainPricing = constructCheckOnChainPricing(dexHelper);
637
+
638
+ describe('Chronos', function () {
639
+ const dexKey = 'Chronos';
640
+ const chronos = new Chronos(network, dexKey, dexHelper);
641
+
642
+ describe('UniswapV2 like pool', function () {
643
+ const TokenASymbol = 'USDC';
644
+ const tokenA = Tokens[network][TokenASymbol];
645
+ const TokenBSymbol = 'WETH';
646
+ const tokenB = Tokens[network][TokenBSymbol];
647
+
648
+ const amounts = amounts18;
649
+
650
+ it('getPoolIdentifiers and getPricesVolume', async function () {
651
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
652
+ const pools = await chronos.getPoolIdentifiers(
653
+ tokenA,
654
+ tokenB,
655
+ SwapSide.SELL,
656
+ blocknumber,
657
+ );
658
+ console.log(
659
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
660
+ pools,
661
+ );
662
+
663
+ expect(pools.length).toBeGreaterThan(0);
664
+
665
+ const poolPrices = await chronos.getPricesVolume(
666
+ tokenA,
667
+ tokenB,
668
+ amounts,
669
+ SwapSide.SELL,
670
+ blocknumber,
671
+ pools,
672
+ );
673
+ console.log(
674
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
675
+ poolPrices,
676
+ );
677
+
678
+ expect(poolPrices).not.toBeNull();
679
+ checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
680
+
681
+ // Check if onchain pricing equals to calculated ones
682
+
683
+ for (const i in poolPrices || []) {
684
+ await checkOnChainPricing(
685
+ chronos,
686
+ 'getAmountOut',
687
+ blocknumber,
688
+ poolPrices![i].prices,
689
+ poolPrices![i].poolAddresses![0],
690
+ tokenA.address,
691
+ amounts,
692
+ );
693
+ }
694
+ });
695
+
696
+ it('getTopPoolsForToken', async function () {
697
+ const poolLiquidity = await chronos.getTopPoolsForToken(
698
+ tokenA.address,
699
+ 10,
700
+ );
701
+ console.log(`${TokenASymbol} Top Pools:`, poolLiquidity);
702
+
703
+ checkPoolsLiquidity(poolLiquidity, tokenA.address, dexKey);
704
+ });
705
+ });
706
+
707
+ describe('Curve like stable pool', function () {
708
+ const TokenASymbol = 'USDT';
709
+ const tokenA = Tokens[network][TokenASymbol];
710
+ const TokenBSymbol = 'USDC';
711
+ const tokenB = Tokens[network][TokenBSymbol];
712
+
713
+ const amounts = amounts6;
714
+
715
+ it('getPoolIdentifiers and getPricesVolume', async function () {
716
+ const blocknumber = await dexHelper.web3Provider.eth.getBlockNumber();
717
+ const pools = await chronos.getPoolIdentifiers(
718
+ tokenA,
719
+ tokenB,
720
+ SwapSide.SELL,
721
+ blocknumber,
722
+ );
723
+ console.log(
724
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Identifiers: `,
725
+ pools,
726
+ );
727
+
728
+ expect(pools.length).toBeGreaterThan(0);
729
+
730
+ const poolPrices = await chronos.getPricesVolume(
731
+ tokenA,
732
+ tokenB,
733
+ amounts,
734
+ SwapSide.SELL,
735
+ blocknumber,
736
+ pools,
737
+ );
738
+ console.log(
739
+ `${TokenASymbol} <> ${TokenBSymbol} Pool Prices: `,
740
+ poolPrices,
741
+ );
742
+
743
+ expect(poolPrices).not.toBeNull();
744
+ checkPoolPrices(poolPrices!, amounts, SwapSide.SELL, dexKey);
745
+
746
+ // Check if onchain pricing equals to calculated ones
747
+ for (const i in poolPrices || []) {
748
+ await checkOnChainPricing(
749
+ chronos,
750
+ 'getAmountOut',
751
+ blocknumber,
752
+ poolPrices![i].prices,
753
+ poolPrices![i].poolAddresses![0],
754
+ tokenA.address,
755
+ amounts,
756
+ );
757
+ }
758
+ });
759
+
760
+ it('getTopPoolsForToken', async function () {
761
+ const poolLiquidity = await chronos.getTopPoolsForToken(
762
+ tokenA.address,
763
+ 10,
764
+ );
765
+ console.log(`${TokenASymbol} Top Pools:`, poolLiquidity);
766
+
767
+ checkPoolsLiquidity(poolLiquidity, tokenA.address, dexKey);
768
+ });
769
+ });
770
+ });
771
+ });
631
772
  });
@@ -71,6 +71,7 @@ export class Solidly extends UniswapV2 {
71
71
  'SolidlyV2',
72
72
  'Thena',
73
73
  'SoliSnek',
74
+ 'Chronos',
74
75
  ]),
75
76
  );
76
77
 
@@ -788,15 +788,9 @@ export class UniswapV2
788
788
  destToken: Address,
789
789
  srcAmount: NumberAsString,
790
790
  destAmount: NumberAsString,
791
- expectedAmount: NumberAsString,
792
791
  _data: UniswapData,
793
792
  side: SwapSide,
794
793
  permit: string,
795
- uuid: string,
796
- feePercent: NumberAsString,
797
- deadline: NumberAsString,
798
- partner: string,
799
- beneficiary: string,
800
794
  contractMethod?: string,
801
795
  ): TxInfo<UniswapParam> {
802
796
  if (!contractMethod) throw new Error(`contractMethod need to be passed`);
@@ -34,8 +34,3 @@ export const ZERO_ORACLE_OBSERVATION = {
34
34
  export const OUT_OF_RANGE_ERROR_POSTFIX = `INVALID_TICK_BIT_MAP_RANGES`;
35
35
 
36
36
  export const DEFAULT_POOL_INIT_CODE_HASH = `0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`;
37
-
38
- export enum DirectMethods {
39
- directSell = 'directUniV3Swap',
40
- directBuy = 'directUniV3Buy',
41
- }
@@ -57,7 +57,6 @@ export type UniswapV3Data = {
57
57
  tokenOut: Address;
58
58
  fee: NumberAsString;
59
59
  }[];
60
- isApproved?: boolean;
61
60
  };
62
61
 
63
62
  export type DexParams = {
@@ -73,7 +72,7 @@ export type DexParams = {
73
72
  initHash: string;
74
73
  };
75
74
 
76
- export type UniswapV3SimpleSwapSellParam = {
75
+ export type UniswapV3SellParam = {
77
76
  path: string;
78
77
  recipient: Address;
79
78
  deadline: string;
@@ -81,7 +80,7 @@ export type UniswapV3SimpleSwapSellParam = {
81
80
  amountOutMinimum: NumberAsString;
82
81
  };
83
82
 
84
- export type UniswapV3SimpleSwapBuyParam = {
83
+ export type UniswapV3BuyParam = {
85
84
  path: string;
86
85
  recipient: Address;
87
86
  deadline: string;
@@ -89,26 +88,7 @@ export type UniswapV3SimpleSwapBuyParam = {
89
88
  amountInMaximum: NumberAsString;
90
89
  };
91
90
 
92
- export type UniswapV3SimpleSwapParams =
93
- | UniswapV3SimpleSwapSellParam
94
- | UniswapV3SimpleSwapBuyParam;
95
-
96
- export type UniswapV3Param = [
97
- fromToken: Address,
98
- toToken: Address,
99
- exchange: Address,
100
- fromAmount: NumberAsString,
101
- toAmount: NumberAsString,
102
- expectedAmount: NumberAsString,
103
- feePercent: NumberAsString,
104
- deadline: NumberAsString,
105
- partner: Address,
106
- isApproved: boolean,
107
- beneficiary: Address,
108
- path: string,
109
- permit: string,
110
- uuid: string,
111
- ];
91
+ export type UniswapV3Param = UniswapV3SellParam | UniswapV3BuyParam;
112
92
 
113
93
  export enum UniswapV3Functions {
114
94
  exactInput = 'exactInput',
@@ -49,20 +49,6 @@ describe('UniswapV3 E2E', () => {
49
49
  provider,
50
50
  );
51
51
  });
52
-
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,
62
- network,
63
- provider,
64
- );
65
- });
66
52
  });
67
53
 
68
54
  describe('UniswapV3 POLYGON', () => {
@@ -78,7 +64,7 @@ describe('UniswapV3 E2E', () => {
78
64
  const tokenBSymbol: string = 'WETH';
79
65
  const nativeTokenSymbol = NativeTokenSymbols[network];
80
66
 
81
- const tokenAAmount: string = '11000000';
67
+ const tokenAAmount: string = '11111000000';
82
68
  const tokenBAmount: string = '11000000000000000000';
83
69
  const nativeTokenAmount = '11000000000000000000';
84
70
 
@@ -89,17 +75,9 @@ describe('UniswapV3 E2E', () => {
89
75
  ContractMethod.simpleSwap,
90
76
  ContractMethod.multiSwap,
91
77
  ContractMethod.megaSwap,
92
- ContractMethod.directUniV3Swap,
93
- ],
94
- ],
95
- [
96
- SwapSide.BUY,
97
- [
98
- ContractMethod.simpleBuy,
99
- ContractMethod.buy,
100
- ContractMethod.directUniV3Buy,
101
78
  ],
102
79
  ],
80
+ [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
103
81
  ]);
104
82
 
105
83
  sideToContractMethods.forEach((contractMethods, side) =>
@@ -224,80 +202,4 @@ describe('UniswapV3 E2E', () => {
224
202
  }),
225
203
  );
226
204
  });
227
-
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
- );
236
-
237
- const tokenASymbol: string = 'OP';
238
- const tokenBSymbol: string = 'ETH';
239
- const nativeTokenSymbol = NativeTokenSymbols[network];
240
-
241
- const tokenAAmount: string = '1000000000000000000';
242
- const tokenBAmount: string = '1000000000000000000';
243
- const nativeTokenAmount = '1000000000000000000';
244
-
245
- const sideToContractMethods = new Map([
246
- [
247
- SwapSide.SELL,
248
- [
249
- ContractMethod.simpleSwap,
250
- ContractMethod.multiSwap,
251
- ContractMethod.megaSwap,
252
- ],
253
- ],
254
- [SwapSide.BUY, [ContractMethod.simpleBuy, ContractMethod.buy]],
255
- ]);
256
-
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
- );
272
- });
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
- );
285
- });
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
- );
302
- });
303
205
  });