@paraswap/dex-lib 2.16.5-direct-swaps.0 → 2.16.6
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/abi/AugustusRFQRouter.abi.json +1248 -0
- package/build/dex/aave-v3/tokens/arbitrum.json +20 -20
- package/build/dex/aave-v3/tokens/avalanche.json +20 -44
- package/build/dex/aave-v3/tokens/fantom.json +30 -30
- package/build/dex/aave-v3/tokens/mainnet.json +44 -0
- package/build/dex/aave-v3/tokens/optimism.json +18 -18
- package/build/dex/aave-v3/tokens/polygon.json +42 -60
- 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/balancer-v2/balancer-v2.d.ts +3 -9
- package/build/dex/balancer-v2/balancer-v2.js +0 -81
- package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
- package/build/dex/balancer-v2/constants.d.ts +0 -4
- package/build/dex/balancer-v2/constants.js +1 -6
- package/build/dex/balancer-v2/constants.js.map +1 -1
- package/build/dex/balancer-v2/types.d.ts +1 -18
- package/build/dex/balancer-v2/types.js.map +1 -1
- package/build/dex/curve-v1/constants.d.ts +0 -1
- package/build/dex/curve-v1/constants.js +1 -2
- package/build/dex/curve-v1/constants.js.map +1 -1
- package/build/dex/curve-v1/curve-v1.d.ts +3 -9
- package/build/dex/curve-v1/curve-v1.js +4 -90
- package/build/dex/curve-v1/curve-v1.js.map +1 -1
- package/build/dex/curve-v1/types.d.ts +0 -23
- package/build/dex/curve-v1/types.js +1 -6
- package/build/dex/curve-v1/types.js.map +1 -1
- package/build/dex/curve-v1-factory/constants.d.ts +0 -1
- package/build/dex/curve-v1-factory/constants.js +1 -2
- package/build/dex/curve-v1-factory/constants.js.map +1 -1
- package/build/dex/curve-v1-factory/curve-v1-factory.d.ts +4 -11
- package/build/dex/curve-v1-factory/curve-v1-factory.js +0 -85
- package/build/dex/curve-v1-factory/curve-v1-factory.js.map +1 -1
- package/build/dex/curve-v1-factory/types.d.ts +0 -23
- package/build/dex/curve-v1-factory/types.js +1 -6
- package/build/dex/curve-v1-factory/types.js.map +1 -1
- package/build/dex/curve-v2.d.ts +7 -28
- package/build/dex/curve-v2.js +1 -89
- package/build/dex/curve-v2.js.map +1 -1
- package/build/dex/generic-rfq/generic-rfq.js +0 -1
- package/build/dex/generic-rfq/generic-rfq.js.map +1 -1
- package/build/dex/idex.d.ts +1 -1
- package/build/dex/simple-exchange.d.ts +0 -2
- package/build/dex/simple-exchange.js +0 -1
- package/build/dex/simple-exchange.js.map +1 -1
- package/build/dex/{test-dex → test-aave-v3}/config.d.ts +1 -1
- package/build/dex/{test-dex → test-aave-v3}/config.js +3 -3
- package/build/dex/test-aave-v3/config.js.map +1 -0
- package/build/dex/{test-dex/test-dex-pool.d.ts → test-aave-v3/test-aave-v3-pool.d.ts} +3 -3
- package/build/dex/{test-dex/test-dex-pool.js → test-aave-v3/test-aave-v3-pool.js} +7 -7
- package/build/dex/test-aave-v3/test-aave-v3-pool.js.map +1 -0
- package/build/dex/{test-dex/test-dex.d.ts → test-aave-v3/test-aave-v3.d.ts} +8 -8
- package/build/dex/{test-dex/test-dex.js → test-aave-v3/test-aave-v3.js} +7 -7
- package/build/dex/test-aave-v3/test-aave-v3.js.map +1 -0
- package/build/dex/{test-dex → test-aave-v3}/types.d.ts +1 -1
- package/build/dex/{test-dex → test-aave-v3}/types.js.map +1 -1
- package/build/dex/uniswap-v2/config.js +1 -1
- package/build/dex/uniswap-v2/config.js.map +1 -1
- package/build/dex/uniswap-v2/uniswap-v2.d.ts +1 -1
- package/build/dex/uniswap-v2/uniswap-v2.js +1 -1
- package/build/dex/uniswap-v2/uniswap-v2.js.map +1 -1
- package/build/dex/uniswap-v3/constants.d.ts +0 -4
- package/build/dex/uniswap-v3/constants.js +1 -6
- package/build/dex/uniswap-v3/constants.js.map +1 -1
- package/build/dex/uniswap-v3/types.d.ts +3 -20
- package/build/dex/uniswap-v3/types.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3.d.ts +1 -7
- package/build/dex/uniswap-v3/uniswap-v3.js +1 -85
- package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
- package/build/dex/zerox/index.d.ts +1 -1
- package/build/dex/zerox/index.js +1 -1
- package/build/dex/zerox/index.js.map +1 -1
- package/build/implementations/local-paraswap-sdk.js +1 -5
- package/build/implementations/local-paraswap-sdk.js.map +1 -1
- package/build/router/directswap.js +1 -3
- package/build/router/directswap.js.map +1 -1
- package/build/router/index.js.map +1 -1
- package/build/types.d.ts +0 -1
- package/package.json +3 -5
- package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +0 -71
- package/src/dex/balancer-v2/balancer-v2.ts +3 -150
- package/src/dex/balancer-v2/constants.ts +0 -5
- package/src/dex/balancer-v2/types.ts +1 -19
- package/src/dex/curve-v1/constants.ts +0 -2
- package/src/dex/curve-v1/curve-v1-e2e.test.ts +0 -57
- package/src/dex/curve-v1/curve-v1.ts +5 -142
- package/src/dex/curve-v1/types.ts +0 -25
- package/src/dex/curve-v1-factory/constants.ts +0 -2
- package/src/dex/curve-v1-factory/curve-v1-factory-e2e.test.ts +0 -1
- package/src/dex/curve-v1-factory/curve-v1-factory.ts +4 -138
- package/src/dex/curve-v1-factory/types.ts +0 -25
- package/src/dex/curve-v2.ts +8 -166
- package/src/dex/generic-rfq/generic-rfq.ts +0 -1
- package/src/dex/idex.ts +0 -6
- package/src/dex/simple-exchange.ts +0 -6
- package/src/dex/uniswap-v2/config.ts +2 -1
- package/src/dex/uniswap-v2/uniswap-v2.ts +0 -6
- package/src/dex/uniswap-v3/constants.ts +0 -5
- package/src/dex/uniswap-v3/types.ts +3 -23
- package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +2 -100
- package/src/dex/uniswap-v3/uniswap-v3.ts +3 -138
- package/src/dex/zerox/index.ts +0 -7
- package/src/implementations/local-paraswap-sdk.ts +1 -8
- package/src/router/directswap.ts +0 -9
- package/src/router/index.ts +2 -0
- package/src/types.ts +0 -1
- package/tests/constants-e2e.ts +3 -3
- package/tests/utils-e2e.ts +20 -135
- package/tests/utils.ts +0 -52
- package/build/abi/DirectSwap.json +0 -970
- package/build/dex/test-dex/config.js.map +0 -1
- package/build/dex/test-dex/test-dex-pool.js.map +0 -1
- package/build/dex/test-dex/test-dex.js.map +0 -1
- package/build/dex/woo-fi-v2/woo-fi-math.d.ts +0 -16
- package/build/dex/woo-fi-v2/woo-fi-math.js +0 -137
- package/build/dex/woo-fi-v2/woo-fi-math.js.map +0 -1
- package/src/abi/DirectSwap.json +0 -970
- /package/build/dex/{test-dex → test-aave-v3}/types.js +0 -0
|
@@ -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 = '
|
|
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,82 +202,6 @@ 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
|
});
|
|
304
206
|
|
|
305
207
|
describe('PancakeswapV3 E2E', () => {
|
|
@@ -11,9 +11,6 @@ import {
|
|
|
11
11
|
Logger,
|
|
12
12
|
NumberAsString,
|
|
13
13
|
PoolPrices,
|
|
14
|
-
TxInfo,
|
|
15
|
-
PreprocessTransactionOptions,
|
|
16
|
-
ExchangeTxInfo,
|
|
17
14
|
} from '../../types';
|
|
18
15
|
import { SwapSide, Network, CACHE_PREFIX } from '../../constants';
|
|
19
16
|
import * as CALLDATA_GAS_COST from '../../calldata-gas-cost';
|
|
@@ -22,7 +19,6 @@ import {
|
|
|
22
19
|
getDexKeysWithNetwork,
|
|
23
20
|
interpolate,
|
|
24
21
|
isTruthy,
|
|
25
|
-
uuidToBytes16,
|
|
26
22
|
} from '../../utils';
|
|
27
23
|
import { IDex } from '../../dex/idex';
|
|
28
24
|
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
@@ -33,7 +29,6 @@ import {
|
|
|
33
29
|
UniswapV3Data,
|
|
34
30
|
UniswapV3Functions,
|
|
35
31
|
UniswapV3Param,
|
|
36
|
-
UniswapV3SimpleSwapParams,
|
|
37
32
|
} from './types';
|
|
38
33
|
import {
|
|
39
34
|
getLocalDeadlineAsFriendlyPlaceholder,
|
|
@@ -44,15 +39,13 @@ import { UniswapV3EventPool } from './uniswap-v3-pool';
|
|
|
44
39
|
import UniswapV3RouterABI from '../../abi/uniswap-v3/UniswapV3Router.abi.json';
|
|
45
40
|
import UniswapV3QuoterABI from '../../abi/uniswap-v3/UniswapV3Quoter.abi.json';
|
|
46
41
|
import UniswapV3MultiABI from '../../abi/uniswap-v3/UniswapMulti.abi.json';
|
|
47
|
-
import DirectSwapABI from '../../abi/DirectSwap.json';
|
|
48
42
|
import UniswapV3StateMulticallABI from '../../abi/uniswap-v3/UniswapV3StateMulticall.abi.json';
|
|
49
43
|
import {
|
|
50
|
-
DirectMethods,
|
|
51
44
|
UNISWAPV3_EFFICIENCY_FACTOR,
|
|
52
45
|
UNISWAPV3_FUNCTION_CALL_GAS_COST,
|
|
53
46
|
UNISWAPV3_TICK_GAS_COST,
|
|
54
47
|
} from './constants';
|
|
55
|
-
import {
|
|
48
|
+
import { DeepReadonly } from 'ts-essentials';
|
|
56
49
|
import { uniswapV3Math } from './contract-math/uniswap-v3-math';
|
|
57
50
|
import { Contract } from 'web3-eth-contract';
|
|
58
51
|
import { AbiItem } from 'web3-utils';
|
|
@@ -62,7 +55,6 @@ import {
|
|
|
62
55
|
DEFAULT_ID_ERC20,
|
|
63
56
|
DEFAULT_ID_ERC20_AS_STRING,
|
|
64
57
|
} from '../../lib/tokens/types';
|
|
65
|
-
import { OptimalSwapExchange } from '@paraswap/core';
|
|
66
58
|
|
|
67
59
|
type PoolPairsInfo = {
|
|
68
60
|
token0: Address;
|
|
@@ -84,8 +76,6 @@ export class UniswapV3
|
|
|
84
76
|
readonly hasConstantPriceLargeAmounts = false;
|
|
85
77
|
readonly needWrapNative = true;
|
|
86
78
|
|
|
87
|
-
readonly directSwapIface = new Interface(DirectSwapABI);
|
|
88
|
-
|
|
89
79
|
intervalTask?: NodeJS.Timeout;
|
|
90
80
|
|
|
91
81
|
public static dexKeysWithNetwork: { key: string; networks: Network[] }[] =
|
|
@@ -122,7 +112,7 @@ export class UniswapV3
|
|
|
122
112
|
// To receive revert reasons
|
|
123
113
|
this.dexHelper.web3Provider.eth.handleRevert = false;
|
|
124
114
|
|
|
125
|
-
//
|
|
115
|
+
// Normalise once all config addresses and use across all scenarios
|
|
126
116
|
this.config = this._toLowerForAllConfigAddresses();
|
|
127
117
|
|
|
128
118
|
this.notExistingPoolSetKey =
|
|
@@ -455,7 +445,6 @@ export class UniswapV3
|
|
|
455
445
|
fee: pool.feeCodeAsString,
|
|
456
446
|
},
|
|
457
447
|
],
|
|
458
|
-
exchange: pool.poolAddress,
|
|
459
448
|
},
|
|
460
449
|
poolIdentifier: this.getPoolIdentifier(
|
|
461
450
|
pool.token0,
|
|
@@ -737,130 +726,6 @@ export class UniswapV3
|
|
|
737
726
|
return arr;
|
|
738
727
|
}
|
|
739
728
|
|
|
740
|
-
getTokenFromAddress(address: Address): Token {
|
|
741
|
-
// In this Dex decimals are not used
|
|
742
|
-
return { address, decimals: 0 };
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
async preProcessTransaction(
|
|
746
|
-
optimalSwapExchange: OptimalSwapExchange<UniswapV3Data>,
|
|
747
|
-
srcToken: Token,
|
|
748
|
-
_0: Token,
|
|
749
|
-
_1: SwapSide,
|
|
750
|
-
options: PreprocessTransactionOptions,
|
|
751
|
-
): Promise<[OptimalSwapExchange<UniswapV3Data>, ExchangeTxInfo]> {
|
|
752
|
-
if (!options.isDirectMethod) {
|
|
753
|
-
return [
|
|
754
|
-
optimalSwapExchange,
|
|
755
|
-
{
|
|
756
|
-
deadline: BigInt(getLocalDeadlineAsFriendlyPlaceholder()),
|
|
757
|
-
},
|
|
758
|
-
];
|
|
759
|
-
}
|
|
760
|
-
|
|
761
|
-
assert(
|
|
762
|
-
optimalSwapExchange.data !== undefined,
|
|
763
|
-
`preProcessTransaction: data field is missing`,
|
|
764
|
-
);
|
|
765
|
-
|
|
766
|
-
let isApproved: boolean | undefined;
|
|
767
|
-
|
|
768
|
-
try {
|
|
769
|
-
this.erc20Contract.options.address =
|
|
770
|
-
this.dexHelper.config.wrapETH(srcToken).address;
|
|
771
|
-
const allowance = await this.erc20Contract.methods
|
|
772
|
-
.allowance(this.augustusAddress, this.config.router)
|
|
773
|
-
.call(undefined, 'latest');
|
|
774
|
-
isApproved =
|
|
775
|
-
BigInt(allowance.toString()) >= BigInt(optimalSwapExchange.srcAmount);
|
|
776
|
-
} catch (e) {
|
|
777
|
-
this.logger.error(
|
|
778
|
-
`preProcessTransaction failed to retrieve allowance info: `,
|
|
779
|
-
e,
|
|
780
|
-
);
|
|
781
|
-
}
|
|
782
|
-
|
|
783
|
-
return [
|
|
784
|
-
{
|
|
785
|
-
...optimalSwapExchange,
|
|
786
|
-
data: {
|
|
787
|
-
...optimalSwapExchange.data,
|
|
788
|
-
isApproved,
|
|
789
|
-
},
|
|
790
|
-
},
|
|
791
|
-
{
|
|
792
|
-
deadline: BigInt(getLocalDeadlineAsFriendlyPlaceholder()),
|
|
793
|
-
},
|
|
794
|
-
];
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
getDirectParam(
|
|
798
|
-
srcToken: Address,
|
|
799
|
-
destToken: Address,
|
|
800
|
-
srcAmount: NumberAsString,
|
|
801
|
-
destAmount: NumberAsString,
|
|
802
|
-
expectedAmount: NumberAsString,
|
|
803
|
-
data: UniswapV3Data,
|
|
804
|
-
side: SwapSide,
|
|
805
|
-
permit: string,
|
|
806
|
-
uuid: string,
|
|
807
|
-
feePercent: NumberAsString,
|
|
808
|
-
deadline: NumberAsString,
|
|
809
|
-
partner: string,
|
|
810
|
-
beneficiary: string,
|
|
811
|
-
contractMethod?: string,
|
|
812
|
-
): TxInfo<UniswapV3Param> {
|
|
813
|
-
if (
|
|
814
|
-
contractMethod !== DirectMethods.directSell &&
|
|
815
|
-
contractMethod !== DirectMethods.directBuy
|
|
816
|
-
) {
|
|
817
|
-
throw new Error(`Invalid contract method ${contractMethod}`);
|
|
818
|
-
}
|
|
819
|
-
|
|
820
|
-
let isApproved: boolean = !!data.isApproved;
|
|
821
|
-
if (data.isApproved === undefined) {
|
|
822
|
-
this.logger.warn(`isApproved is undefined, defaulting to false`);
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
const path = this._encodePath(data.path, side);
|
|
826
|
-
|
|
827
|
-
const swapParams: UniswapV3Param = [
|
|
828
|
-
srcToken,
|
|
829
|
-
destToken,
|
|
830
|
-
this.config.router,
|
|
831
|
-
srcAmount,
|
|
832
|
-
destAmount,
|
|
833
|
-
expectedAmount,
|
|
834
|
-
feePercent,
|
|
835
|
-
deadline,
|
|
836
|
-
partner,
|
|
837
|
-
isApproved,
|
|
838
|
-
beneficiary,
|
|
839
|
-
path,
|
|
840
|
-
permit,
|
|
841
|
-
uuidToBytes16(uuid),
|
|
842
|
-
];
|
|
843
|
-
|
|
844
|
-
const encoder = (...params: UniswapV3Param) => {
|
|
845
|
-
return this.directSwapIface.encodeFunctionData(
|
|
846
|
-
side === SwapSide.SELL
|
|
847
|
-
? DirectMethods.directSell
|
|
848
|
-
: DirectMethods.directBuy,
|
|
849
|
-
[params],
|
|
850
|
-
);
|
|
851
|
-
};
|
|
852
|
-
|
|
853
|
-
return {
|
|
854
|
-
params: swapParams,
|
|
855
|
-
encoder,
|
|
856
|
-
networkFee: '0',
|
|
857
|
-
};
|
|
858
|
-
}
|
|
859
|
-
|
|
860
|
-
static getDirectFunctionName(): string[] {
|
|
861
|
-
return [DirectMethods.directSell, DirectMethods.directBuy];
|
|
862
|
-
}
|
|
863
|
-
|
|
864
729
|
async getSimpleParam(
|
|
865
730
|
srcToken: string,
|
|
866
731
|
destToken: string,
|
|
@@ -875,7 +740,7 @@ export class UniswapV3
|
|
|
875
740
|
: UniswapV3Functions.exactOutput;
|
|
876
741
|
|
|
877
742
|
const path = this._encodePath(data.path, side);
|
|
878
|
-
const swapFunctionParams:
|
|
743
|
+
const swapFunctionParams: UniswapV3Param =
|
|
879
744
|
side === SwapSide.SELL
|
|
880
745
|
? {
|
|
881
746
|
recipient: this.augustusAddress,
|
package/src/dex/zerox/index.ts
CHANGED
|
@@ -269,16 +269,9 @@ export class ZeroX
|
|
|
269
269
|
destToken: Address,
|
|
270
270
|
srcAmount: NumberAsString,
|
|
271
271
|
destAmount: NumberAsString,
|
|
272
|
-
expectedAmount: NumberAsString,
|
|
273
272
|
data: ZeroXData,
|
|
274
273
|
side: SwapSide,
|
|
275
274
|
permit: string,
|
|
276
|
-
uuid: string,
|
|
277
|
-
feePercent: NumberAsString,
|
|
278
|
-
deadline: NumberAsString,
|
|
279
|
-
partner: string,
|
|
280
|
-
beneficiary: string,
|
|
281
|
-
contractMethod?: string,
|
|
282
275
|
): TxInfo<ZeroXParam> {
|
|
283
276
|
const usePermit = permit !== '0x';
|
|
284
277
|
const encoder = (...params: ZeroXParam) => {
|
|
@@ -17,8 +17,6 @@ import {
|
|
|
17
17
|
} from '../types';
|
|
18
18
|
import { SwapSide, NULL_ADDRESS, ContractMethod } from '../constants';
|
|
19
19
|
import { LimitOrderExchange } from '../dex/limit-order-exchange';
|
|
20
|
-
import { v4 as uuid } from 'uuid';
|
|
21
|
-
import { DirectContractMethods } from '@paraswap/core/build/constants';
|
|
22
20
|
|
|
23
21
|
export interface IParaSwapSDK {
|
|
24
22
|
getPrices(
|
|
@@ -198,8 +196,6 @@ export class LocalParaswapSDK implements IParaSwapSDK {
|
|
|
198
196
|
: priceRoute.srcAmount,
|
|
199
197
|
);
|
|
200
198
|
|
|
201
|
-
const contractMethod = priceRoute.contractMethod;
|
|
202
|
-
|
|
203
199
|
// Call preprocessTransaction for each exchange before we build transaction
|
|
204
200
|
try {
|
|
205
201
|
priceRoute.bestRoute = await Promise.all(
|
|
@@ -229,9 +225,6 @@ export class LocalParaswapSDK implements IParaSwapSDK {
|
|
|
229
225
|
{
|
|
230
226
|
slippageFactor,
|
|
231
227
|
txOrigin: userAddress,
|
|
232
|
-
isDirectMethod: DirectContractMethods.includes(
|
|
233
|
-
contractMethod as ContractMethod,
|
|
234
|
-
),
|
|
235
228
|
},
|
|
236
229
|
);
|
|
237
230
|
|
|
@@ -262,7 +255,7 @@ export class LocalParaswapSDK implements IParaSwapSDK {
|
|
|
262
255
|
partnerAddress: NULL_ADDRESS,
|
|
263
256
|
partnerFeePercent: '0',
|
|
264
257
|
deadline: deadline.toString(),
|
|
265
|
-
uuid:
|
|
258
|
+
uuid: '00000000-0000-0000-0000-000000000000',
|
|
266
259
|
});
|
|
267
260
|
}
|
|
268
261
|
}
|
package/src/router/directswap.ts
CHANGED
|
@@ -3,7 +3,6 @@ import { IDex } from '../dex/idex';
|
|
|
3
3
|
import { Address, OptimalRate, TxInfo, Adapters } from '../types';
|
|
4
4
|
import { SwapSide } from '../constants';
|
|
5
5
|
import { DexAdapterService } from '../dex';
|
|
6
|
-
import { assert } from 'ts-essentials';
|
|
7
6
|
|
|
8
7
|
export class DirectSwap<DexDirectReturn> implements IRouter<DexDirectReturn> {
|
|
9
8
|
// This is just psuedo name as the DirectSwap
|
|
@@ -52,7 +51,6 @@ export class DirectSwap<DexDirectReturn> implements IRouter<DexDirectReturn> {
|
|
|
52
51
|
);
|
|
53
52
|
|
|
54
53
|
const swapExchange = priceRoute.bestRoute[0].swaps[0].swapExchanges[0];
|
|
55
|
-
|
|
56
54
|
const srcAmount =
|
|
57
55
|
priceRoute.side === SwapSide.SELL ? swapExchange.srcAmount : minMaxAmount;
|
|
58
56
|
const destAmount =
|
|
@@ -65,16 +63,9 @@ export class DirectSwap<DexDirectReturn> implements IRouter<DexDirectReturn> {
|
|
|
65
63
|
priceRoute.destToken,
|
|
66
64
|
srcAmount,
|
|
67
65
|
destAmount,
|
|
68
|
-
minMaxAmount,
|
|
69
66
|
swapExchange.data,
|
|
70
67
|
priceRoute.side,
|
|
71
68
|
permit,
|
|
72
|
-
uuid,
|
|
73
|
-
// TODO: CLARIFY BEFORE PUTTING TO PROD IF PARTNER FEE IS EQUAL TO FEE PERCENT IN CONTRACT
|
|
74
|
-
partnerFeePercent,
|
|
75
|
-
deadline,
|
|
76
|
-
partnerAddress,
|
|
77
|
-
beneficiary,
|
|
78
69
|
priceRoute.contractMethod,
|
|
79
70
|
);
|
|
80
71
|
}
|
package/src/router/index.ts
CHANGED
|
@@ -5,7 +5,9 @@ import { Buy } from './buy';
|
|
|
5
5
|
import { SimpleSwap, SimpleBuy } from './simpleswap';
|
|
6
6
|
import { SimpleBuyNFT } from './simpleswapnft';
|
|
7
7
|
import { DirectSwap } from './directswap';
|
|
8
|
+
import { Adapters } from '../types';
|
|
8
9
|
import { DexAdapterService } from '../dex';
|
|
10
|
+
import { SwapSide } from '../constants';
|
|
9
11
|
|
|
10
12
|
export class RouterService {
|
|
11
13
|
hybridRouters = [
|
package/src/types.ts
CHANGED
package/tests/constants-e2e.ts
CHANGED
|
@@ -875,10 +875,10 @@ export const Holders: {
|
|
|
875
875
|
[Network.POLYGON]: {
|
|
876
876
|
MATIC: '0xe7804c37c13166fF0b37F5aE0BB07A3aEbb6e245',
|
|
877
877
|
DAI: '0x06959153B974D0D5fDfd87D561db6d8d4FA0bb0B',
|
|
878
|
-
WETH: '
|
|
878
|
+
WETH: '0x72a53cdbbcc1b9efa39c834a540550e23463aacb',
|
|
879
879
|
WMATIC: '0xFffbCD322cEace527C8ec6Da8de2461C6D9d4e6e',
|
|
880
880
|
AMWMATIC: '0x8832924854e3Cedb0a6Abf372e6CCFF9F7654332',
|
|
881
|
-
USDC: '
|
|
881
|
+
USDC: '0x06959153B974D0D5fDfd87D561db6d8d4FA0bb0B',
|
|
882
882
|
POPS: '0x2693b57ee51f4e2a26dfb339a911fa8731061f49',
|
|
883
883
|
MUST: '0x9f2a409848fb9b7bd058b24a23e8dbf1e166a109',
|
|
884
884
|
AMDAI: '0xFA0DCe8280FCDf369a4cbFc1830d3302789307a6',
|
|
@@ -894,7 +894,7 @@ export const Holders: {
|
|
|
894
894
|
RADIO: '0x60531b9c3645546d864604ee0fc5b7d6adc81cc2',
|
|
895
895
|
HANZO: '0x8a151b6ec99c7b90b342ab401d511b480309b220',
|
|
896
896
|
RVLT: '0x815f87ca3db2b9491115a7769aeacb140361c5a9',
|
|
897
|
-
stMATIC: '
|
|
897
|
+
stMATIC: '0x3b39669766fe815aa91834b3bd258dea3edbb6d5',
|
|
898
898
|
axlUSDC: '0x42875ae5766dfd4d70772a3a956842e4b708d59a',
|
|
899
899
|
deUSDC: '0x94d5ead1f80cf0b4d3480ab59dff16d47c93e9fe',
|
|
900
900
|
amUSDT: '0x832b11846a27b3ba25d68ae80c39fab155d18c49',
|