@paraswap/dex-lib 2.13.1 → 2.14.0
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/build/config.js +5 -23
- package/build/config.js.map +1 -1
- package/build/dex/curve-v1/config.js +0 -2
- package/build/dex/curve-v1/config.js.map +1 -1
- package/build/dex/curve-v1/curve-v1.js +0 -2
- package/build/dex/curve-v1/curve-v1.js.map +1 -1
- package/build/dex/curve-v1/types.d.ts +0 -1
- package/build/dex/curve-v1/types.js.map +1 -1
- package/build/dex/generic-rfq/rate-fetcher.js +0 -2
- 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 +26 -36
- 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 +0 -1
- package/build/dex/simple-exchange.js +0 -2
- package/build/dex/simple-exchange.js.map +1 -1
- package/build/lib/decoders.d.ts +1 -2
- package/build/lib/decoders.js +1 -8
- package/build/lib/decoders.js.map +1 -1
- package/build/lib/fetcher/fetcher.js +0 -3
- package/build/lib/fetcher/fetcher.js.map +1 -1
- package/build/lib/multi-wrapper.d.ts +1 -2
- package/build/lib/multi-wrapper.js.map +1 -1
- package/build/lib/tokens/balancer-fetcher.js +5 -4
- 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 +0 -3
- package/dex-template/__DexName__-e2e.test.ts.template +0 -1
- package/dex-template/__DexName__-events.test.ts.template +0 -1
- package/dex-template/__DexName__-integration.test.ts.template +0 -1
- package/dex-template/__DexName__-pool.ts.template +5 -8
- package/package.json +1 -1
- package/scripts/generate-bytecode.ts +0 -2
- package/src/abi/woo-fi/WooFeeManager.abi.json +318 -0
- package/src/abi/{woo-fi-v2/WooPPV2.abi.json → woo-fi/WooPP.abi.json} +169 -201
- package/src/abi/{woo-fi-v2/WooOracleV2.abi.json → woo-fi/Wooracle.abi.json} +50 -148
- package/src/config.ts +5 -27
- package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +1 -0
- package/src/dex/curve-v1/config.ts +0 -2
- package/src/dex/curve-v1/curve-v1-e2e.test.ts +37 -18
- package/src/dex/curve-v1/curve-v1.ts +0 -2
- package/src/dex/curve-v1/types.ts +0 -1
- package/src/dex/generic-rfq/generic-rfq-e2e.test.ts +258 -63
- package/src/dex/generic-rfq/rate-fetcher.ts +0 -2
- package/src/dex/generic-rfq/validators.test.ts +32 -6
- package/src/dex/generic-rfq/validators.ts +32 -57
- package/src/dex/index.ts +2 -2
- package/src/dex/simple-exchange.ts +0 -3
- package/src/dex/woo-fi/config.ts +141 -0
- package/src/dex/woo-fi/constants.ts +21 -0
- package/src/dex/woo-fi/types.ts +55 -0
- package/src/dex/woo-fi/woo-fi-decimal-math.ts +45 -0
- package/src/dex/woo-fi/woo-fi-e2e.test.ts +183 -0
- package/src/dex/woo-fi/woo-fi-integration.test.ts +416 -0
- package/src/dex/woo-fi/woo-fi-math.ts +527 -0
- package/src/dex/woo-fi/woo-fi.ts +693 -0
- package/src/lib/decoders.ts +1 -12
- package/src/lib/fetcher/fetcher.ts +0 -6
- package/src/lib/multi-wrapper.ts +1 -2
- package/src/lib/tokens/balancer-fetcher.ts +6 -5
- package/src/lib/tokens/utils.ts +3 -5
- package/src/types.ts +0 -4
- package/tests/constants-e2e.ts +9 -11
- package/tests/tenderly-simulation.ts +1 -1
- package/tests/utils-e2e.ts +48 -61
- package/tests/utils.ts +0 -2
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -6
- package/.vscode/launch.json +0 -21
- package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
- package/build/dex/aave-v3/tokens/avalanche.json +0 -50
- package/build/dex/aave-v3/tokens/fantom.json +0 -62
- package/build/dex/aave-v3/tokens/mainnet.json +0 -44
- package/build/dex/aave-v3/tokens/optimism.json +0 -50
- package/build/dex/aave-v3/tokens/polygon.json +0 -98
- package/build/dex/balancer-v2/VirtualBoostedPool.d.ts +0 -79
- package/build/dex/balancer-v2/VirtualBoostedPool.js +0 -382
- package/build/dex/balancer-v2/VirtualBoostedPool.js.map +0 -1
- package/build/dex/generic-rfq/e2e-test-config.d.ts +0 -9
- package/build/dex/generic-rfq/e2e-test-config.js +0 -33
- package/build/dex/generic-rfq/e2e-test-config.js.map +0 -1
- package/build/dex/test-aave-v3/config.d.ts +0 -4
- package/build/dex/test-aave-v3/config.js +0 -15
- package/build/dex/test-aave-v3/config.js.map +0 -1
- package/build/dex/test-aave-v3/test-aave-v3-pool.d.ts +0 -39
- package/build/dex/test-aave-v3/test-aave-v3-pool.js +0 -63
- package/build/dex/test-aave-v3/test-aave-v3-pool.js.map +0 -1
- package/build/dex/test-aave-v3/test-aave-v3.d.ts +0 -37
- package/build/dex/test-aave-v3/test-aave-v3.js +0 -126
- package/build/dex/test-aave-v3/test-aave-v3.js.map +0 -1
- package/build/dex/test-aave-v3/types.d.ts +0 -6
- package/build/dex/test-aave-v3/types.js +0 -3
- package/build/dex/test-aave-v3/types.js.map +0 -1
- package/src/abi/woo-fi-v2/IntegrationHelper.abi.json +0 -116
- package/src/dex/generic-rfq/e2e-test-config.ts +0 -37
- package/src/dex/generic-rfq/generic-rfq-local-e2e.test.ts +0 -121
- package/src/dex/woo-fi-v2/config.ts +0 -87
- package/src/dex/woo-fi-v2/constants.ts +0 -22
- package/src/dex/woo-fi-v2/decoders.ts +0 -45
- package/src/dex/woo-fi-v2/types.ts +0 -63
- package/src/dex/woo-fi-v2/utils.ts +0 -19
- package/src/dex/woo-fi-v2/woo-fi-v2-e2e.test.ts +0 -216
- package/src/dex/woo-fi-v2/woo-fi-v2-integration.test.ts +0 -495
- package/src/dex/woo-fi-v2/woo-fi-v2-math.ts +0 -195
- package/src/dex/woo-fi-v2/woo-fi-v2-pool.ts +0 -112
- package/src/dex/woo-fi-v2/woo-fi-v2.ts +0 -487
- package/src/lib/log-messages-suppressor.ts +0 -173
- package/src/lib/stateful-rpc-poller/state-polling-manager.ts +0 -320
- package/src/lib/stateful-rpc-poller/stateful-rpc-poller.ts +0 -604
- package/src/lib/stateful-rpc-poller/types.ts +0 -66
- package/src/lib/stateful-rpc-poller/utils.ts +0 -23
|
@@ -76,12 +76,6 @@ export default class Fetcher<T> {
|
|
|
76
76
|
.map((_, i) => i)
|
|
77
77
|
.filter(i => results[i] instanceof Error);
|
|
78
78
|
|
|
79
|
-
results.map(result => {
|
|
80
|
-
this.logger.debug(
|
|
81
|
-
'Results Data:',
|
|
82
|
-
JSON.stringify((result as any).data, null, 4).substring(0, 500),
|
|
83
|
-
);
|
|
84
|
-
});
|
|
85
79
|
failures.forEach(i => {
|
|
86
80
|
this.logger.warn(
|
|
87
81
|
`failed polling ${this.requests[i].info.requestOptions.url} ${results[i]}`,
|
package/src/lib/multi-wrapper.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { BytesLike } from 'ethers';
|
|
2
1
|
import _ from 'lodash';
|
|
3
2
|
import { Logger } from 'log4js';
|
|
4
3
|
import { Contract } from 'web3-eth-contract';
|
|
@@ -11,7 +10,7 @@ export type MultiResult<T> = {
|
|
|
11
10
|
export type MultiCallParams<T> = {
|
|
12
11
|
target: string;
|
|
13
12
|
callData: string;
|
|
14
|
-
decodeFunction: (str: MultiResult<
|
|
13
|
+
decodeFunction: (str: MultiResult<string> | string) => T;
|
|
15
14
|
cb?: (data: T) => void;
|
|
16
15
|
};
|
|
17
16
|
|
|
@@ -59,6 +59,7 @@ export const getBalanceCallParams = (
|
|
|
59
59
|
}));
|
|
60
60
|
default:
|
|
61
61
|
throw new Error(`missing case for assetType ${req.assetType}`);
|
|
62
|
+
return [];
|
|
62
63
|
}
|
|
63
64
|
};
|
|
64
65
|
|
|
@@ -263,21 +264,21 @@ export const getBalances = async (
|
|
|
263
264
|
blockNumber,
|
|
264
265
|
);
|
|
265
266
|
|
|
266
|
-
const
|
|
267
|
+
const chuncks = [];
|
|
267
268
|
let j = 0;
|
|
268
269
|
for (let i = 0; i < results.length; ) {
|
|
269
270
|
const batchSize = decodingInfo[j].length;
|
|
270
|
-
const
|
|
271
|
-
|
|
271
|
+
const chunck = results.slice(i, i + batchSize);
|
|
272
|
+
chuncks.push(chunck);
|
|
272
273
|
j++;
|
|
273
274
|
i += batchSize;
|
|
274
275
|
}
|
|
275
276
|
|
|
276
|
-
return
|
|
277
|
+
return chuncks.map((chunck, index) =>
|
|
277
278
|
decodeBalanceAndAllowanceMultiResult(
|
|
278
279
|
reqs[index],
|
|
279
280
|
decodingInfo[index].spenders,
|
|
280
|
-
|
|
281
|
+
chunck,
|
|
281
282
|
),
|
|
282
283
|
);
|
|
283
284
|
};
|
package/src/lib/tokens/utils.ts
CHANGED
|
@@ -53,7 +53,7 @@ export const uint256ArrayDecode = (
|
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
export const booleanDecode = (
|
|
56
|
-
result: MultiResult<
|
|
56
|
+
result: MultiResult<string> | string,
|
|
57
57
|
): boolean => {
|
|
58
58
|
const [isSuccess, toDecode] = extractSuccessAndValue(result);
|
|
59
59
|
|
|
@@ -63,12 +63,10 @@ export const booleanDecode = (
|
|
|
63
63
|
return defaultAbiCoder.decode(['bool'], toDecode)[0];
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
export const addressDecode = (
|
|
67
|
-
result: MultiResult<BytesLike> | BytesLike,
|
|
68
|
-
): string => {
|
|
66
|
+
export const addressDecode = (result: MultiResult<string> | string): string => {
|
|
69
67
|
const [isSuccess, toDecode] = extractSuccessAndValue(result);
|
|
70
68
|
|
|
71
|
-
if (
|
|
69
|
+
if (isSuccess) {
|
|
72
70
|
return '';
|
|
73
71
|
}
|
|
74
72
|
return defaultAbiCoder.decode(['address'], toDecode)[0].toLowerCase();
|
package/src/types.ts
CHANGED
|
@@ -270,8 +270,6 @@ export type Config = {
|
|
|
270
270
|
adapterAddresses: { [name: string]: Address };
|
|
271
271
|
uniswapV2ExchangeRouterAddress: Address;
|
|
272
272
|
rfqConfigs: Record<string, RFQConfig>;
|
|
273
|
-
rpcPollingMaxAllowedStateDelayInBlocks: number;
|
|
274
|
-
rpcPollingBlocksBackToTriggerUpdate: number;
|
|
275
273
|
hashFlowAuthToken?: string;
|
|
276
274
|
hashFlowDisabledMMs: string[];
|
|
277
275
|
uniswapV3EventLoggingSampleRate?: number;
|
|
@@ -296,5 +294,3 @@ export type TransferFeeParams = {
|
|
|
296
294
|
srcDexFee: number;
|
|
297
295
|
destDexFee: number;
|
|
298
296
|
};
|
|
299
|
-
|
|
300
|
-
export type LogLevels = 'info' | 'warn' | 'error' | 'trace' | 'debug';
|
package/tests/constants-e2e.ts
CHANGED
|
@@ -33,6 +33,10 @@ export const Tokens: {
|
|
|
33
33
|
addBalance: balancesFn,
|
|
34
34
|
addAllowance: allowedFn,
|
|
35
35
|
},
|
|
36
|
+
CUSDC: {
|
|
37
|
+
address: '0x39AA39c021dfbaE8faC545936693aC917d5E7563',
|
|
38
|
+
decimals: 8,
|
|
39
|
+
},
|
|
36
40
|
WBTC: {
|
|
37
41
|
address: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',
|
|
38
42
|
decimals: 8,
|
|
@@ -46,8 +50,6 @@ export const Tokens: {
|
|
|
46
50
|
USDT: {
|
|
47
51
|
address: '0xdac17f958d2ee523a2206206994597c13d831ec7',
|
|
48
52
|
decimals: 6,
|
|
49
|
-
addBalance: balancesFn,
|
|
50
|
-
addAllowance: allowedFn,
|
|
51
53
|
},
|
|
52
54
|
STETH: {
|
|
53
55
|
address: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84',
|
|
@@ -468,10 +470,6 @@ export const Tokens: {
|
|
|
468
470
|
address: '0x841fad6eae12c286d1fd18d1d525dffa75c7effe',
|
|
469
471
|
decimals: 18,
|
|
470
472
|
},
|
|
471
|
-
ETH: {
|
|
472
|
-
address: '0x74b23882a30290451A17c44f4F05243b6b58C76d',
|
|
473
|
-
decimals: 18,
|
|
474
|
-
},
|
|
475
473
|
},
|
|
476
474
|
[Network.BSC]: {
|
|
477
475
|
POPS: {
|
|
@@ -807,7 +805,7 @@ export const Holders: {
|
|
|
807
805
|
CVX: '0x0aCA67Fa70B142A3b9bF2eD89A81B40ff85dACdC',
|
|
808
806
|
MIM: '0xa046a8660e66d178ee07ec97c585eeb6aa18c26c',
|
|
809
807
|
AnkETH: '0xF7260D4ADc48fEefd5a19a9Eb23f9747CeE15C92',
|
|
810
|
-
DAI: '
|
|
808
|
+
DAI: '0x60FaAe176336dAb62e284Fe19B885B095d29fB7F',
|
|
811
809
|
oldFRAX: '0x183d0dc5867c01bfb1dbbc41d6a9d3de6e044626',
|
|
812
810
|
newFRAX: '0x183d0dc5867c01bfb1dbbc41d6a9d3de6e044626',
|
|
813
811
|
FEI: '0x19c549357034d10db8d75ed812b45be1dd8a7218',
|
|
@@ -829,6 +827,7 @@ export const Holders: {
|
|
|
829
827
|
ADAIv1: '0x3021026e4ff227571a5a563ad19ea657c7027e59',
|
|
830
828
|
CETH: '0x712d0f306956a6a4b4f9319ad9b9de48c5345996',
|
|
831
829
|
CDAI: '0xab4ce310054a11328685ece1043211b68ba5d082',
|
|
830
|
+
CUSDC: '0xC2F61a6eEEC48d686901D325CDE9233b81c793F3',
|
|
832
831
|
EURS: '0xC1056Adeb61a01964Ea265cA95EffB7016f9Ed78',
|
|
833
832
|
EURT: '0x6914FC70fAC4caB20a8922E900C4BA57fEECf8E1',
|
|
834
833
|
CRV: '0x7a16fF8270133F063aAb6C9977183D9e72835428',
|
|
@@ -888,7 +887,7 @@ export const Holders: {
|
|
|
888
887
|
DAI: '0x370f4b2dcf75c94d8d4450b493661a9c6170d0b5',
|
|
889
888
|
FTM: '0x431e81E5dfB5A24541b5Ff8762bDEF3f32F96354',
|
|
890
889
|
WFTM: '0x431e81E5dfB5A24541b5Ff8762bDEF3f32F96354',
|
|
891
|
-
USDC: '
|
|
890
|
+
USDC: '0xd1e4a32679216f4a4dd38e45dab9bc4b8a45e592',
|
|
892
891
|
FUSDT: '0x9ade1c17d25246c405604344f89E8F23F8c1c632',
|
|
893
892
|
POPS: '0x4b78b52e7de4d8b7d367297cb8a87c1875a9d591',
|
|
894
893
|
aFanUSDT: '0x8EBc96fF91A30059E447bFC7C0a7394f8A5793E6',
|
|
@@ -901,7 +900,6 @@ export const Holders: {
|
|
|
901
900
|
wBOMB: '0x28aa4f9ffe21365473b64c161b566c3cdead0108',
|
|
902
901
|
TOR: '0x70de4b5ed310fd93da3c0bae824fb99cb4d44dd8',
|
|
903
902
|
BOO: '0xf778f4d7a14a8cb73d5261f9c61970ef4e7d7842',
|
|
904
|
-
ETH: '0xf48883940b4056801de30f12b934dcea90133ee6',
|
|
905
903
|
},
|
|
906
904
|
[Network.BSC]: {
|
|
907
905
|
DAI: '0xf68a4b64162906eff0ff6ae34e2bb1cd42fef62d',
|
|
@@ -921,10 +919,10 @@ export const Holders: {
|
|
|
921
919
|
[Network.AVALANCHE]: {
|
|
922
920
|
AVAX: '0xD6216fC19DB775Df9774a6E33526131dA7D19a2c',
|
|
923
921
|
avWAVAX: '0xc5ed2333f8a2C351fCA35E5EBAdb2A82F5d254C3',
|
|
924
|
-
WAVAX: '
|
|
922
|
+
WAVAX: '0xAc1F5F1eDBcAE771be00d0eC044deC5BEdbFd816',
|
|
925
923
|
sAVAX: '0xC73DF1e68FC203F6E4b6270240D6f82A850e8D38',
|
|
926
924
|
USDCe: '0x3a2434c698f8d79af1f5a9e43013157ca8b11a66',
|
|
927
|
-
USDC: '
|
|
925
|
+
USDC: '0x4aefa39caeadd662ae31ab0ce7c8c2c9c0a013e8',
|
|
928
926
|
USDTe: '0x84d34f4f83a87596cd3fb6887cff8f17bf5a7b83',
|
|
929
927
|
USDT: '0x715f3c533Cf264215Ba8BE00838a053284351086',
|
|
930
928
|
WETHe: '0xD291B51f7a1a1F4917D085F2a7731A447E4aF82D',
|
|
@@ -12,7 +12,7 @@ const TENDERLY_FORK_LAST_TX_ID = process.env.TENDERLY_FORK_LAST_TX_ID;
|
|
|
12
12
|
export class TenderlySimulation {
|
|
13
13
|
lastTx: string = '';
|
|
14
14
|
forkId: string = '';
|
|
15
|
-
maxGasLimit =
|
|
15
|
+
maxGasLimit = 8000000;
|
|
16
16
|
|
|
17
17
|
constructor(private network: Number = 1) {}
|
|
18
18
|
|
package/tests/utils-e2e.ts
CHANGED
|
@@ -45,7 +45,6 @@ const DEPLOYER_ADDRESS: { [nid: number]: string } = {
|
|
|
45
45
|
[Network.FANTOM]: '0x05182E579FDfCf69E4390c3411D8FeA1fb6467cf',
|
|
46
46
|
[Network.AVALANCHE]: '0xD6216fC19DB775Df9774a6E33526131dA7D19a2c',
|
|
47
47
|
[Network.OPTIMISM]: '0xf01121e808F782d7F34E857c27dA31AD1f151b39',
|
|
48
|
-
[Network.ARBITRUM]: '0xb38e8c17e38363af6ebdcb3dae12e0243582891d',
|
|
49
48
|
};
|
|
50
49
|
|
|
51
50
|
const MULTISIG: { [nid: number]: string } = {
|
|
@@ -55,7 +54,6 @@ const MULTISIG: { [nid: number]: string } = {
|
|
|
55
54
|
[Network.FANTOM]: '0xECaB2dac955b94e49Ec09D6d68672d3B397BbdAd',
|
|
56
55
|
[Network.AVALANCHE]: '0x1e2ECA5e812D08D2A7F8664D69035163ff5BfEC2',
|
|
57
56
|
[Network.OPTIMISM]: '0xf01121e808F782d7F34E857c27dA31AD1f151b39',
|
|
58
|
-
[Network.ARBITRUM]: '0x90DfD8a6454CFE19be39EaB42ac93CD850c7f339',
|
|
59
57
|
};
|
|
60
58
|
|
|
61
59
|
class APIParaswapSDK implements IParaSwapSDK {
|
|
@@ -299,7 +297,6 @@ export type TestParamE2E = {
|
|
|
299
297
|
destTokenBalanceOverrides?: Record<Address, string>;
|
|
300
298
|
destTokenAllowanceOverrides?: Record<Address, string>;
|
|
301
299
|
sleepMs?: number;
|
|
302
|
-
skipTenderly?: boolean;
|
|
303
300
|
};
|
|
304
301
|
|
|
305
302
|
const makeFakeTransferToSenderAddress = (
|
|
@@ -333,19 +330,14 @@ export async function newTestE2E({
|
|
|
333
330
|
limitOrderProvider,
|
|
334
331
|
transferFees,
|
|
335
332
|
sleepMs,
|
|
336
|
-
skipTenderly,
|
|
337
333
|
}: TestParamE2E) {
|
|
338
|
-
const useTenderly = !skipTenderly;
|
|
339
334
|
const amount = BigInt(_amount);
|
|
340
335
|
const twiceAmount = BigInt(_amount) * 2n;
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
ts = new TenderlySimulation(network);
|
|
344
|
-
await ts.setup();
|
|
345
|
-
}
|
|
336
|
+
const ts = new TenderlySimulation(network);
|
|
337
|
+
await ts.setup();
|
|
346
338
|
|
|
347
|
-
if (
|
|
348
|
-
const deployTx = await
|
|
339
|
+
if (adapterBytecode) {
|
|
340
|
+
const deployTx = await ts.simulate(
|
|
349
341
|
deployAdapterParams(adapterBytecode, network),
|
|
350
342
|
);
|
|
351
343
|
|
|
@@ -360,13 +352,13 @@ export async function newTestE2E({
|
|
|
360
352
|
'gas',
|
|
361
353
|
);
|
|
362
354
|
|
|
363
|
-
const whitelistTx = await
|
|
355
|
+
const whitelistTx = await ts.simulate(
|
|
364
356
|
whiteListAdapterParams(adapterAddress, network),
|
|
365
357
|
);
|
|
366
358
|
expect(whitelistTx.success).toEqual(true);
|
|
367
359
|
}
|
|
368
360
|
|
|
369
|
-
if (
|
|
361
|
+
if (thirdPartyAddress) {
|
|
370
362
|
const stateOverrides: StateOverrides = {
|
|
371
363
|
networkID: `${network}`,
|
|
372
364
|
stateOverrides: {},
|
|
@@ -383,15 +375,43 @@ export async function newTestE2E({
|
|
|
383
375
|
: (BigInt(MAX_UINT) / 4n).toString(),
|
|
384
376
|
);
|
|
385
377
|
|
|
386
|
-
await
|
|
378
|
+
await ts.simulate(giftTx, stateOverrides);
|
|
387
379
|
}
|
|
388
380
|
|
|
381
|
+
const stateOverrides: StateOverrides = {
|
|
382
|
+
networkID: `${network}`,
|
|
383
|
+
stateOverrides: {},
|
|
384
|
+
};
|
|
385
|
+
srcToken.applyOverrides(stateOverrides);
|
|
386
|
+
destToken.applyOverrides(stateOverrides);
|
|
387
|
+
|
|
388
|
+
if (swapSide === SwapSide.SELL) {
|
|
389
|
+
srcToken
|
|
390
|
+
.addBalance(senderAddress, twiceAmount.toString())
|
|
391
|
+
.addAllowance(
|
|
392
|
+
senderAddress,
|
|
393
|
+
config.tokenTransferProxyAddress,
|
|
394
|
+
amount.toString(),
|
|
395
|
+
);
|
|
396
|
+
} else {
|
|
397
|
+
srcToken
|
|
398
|
+
.addBalance(senderAddress, MAX_UINT)
|
|
399
|
+
.addAllowance(
|
|
400
|
+
senderAddress,
|
|
401
|
+
config.tokenTransferProxyAddress,
|
|
402
|
+
(BigInt(MAX_UINT) / 8n).toString(),
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
srcToken.applyOverrides(stateOverrides);
|
|
407
|
+
destToken.applyOverrides(stateOverrides);
|
|
408
|
+
|
|
389
409
|
const useAPI = testingEndpoint && !poolIdentifiers;
|
|
390
410
|
// The API currently doesn't allow for specifying poolIdentifiers
|
|
391
411
|
const paraswap: IParaSwapSDK = new LocalParaswapSDK(
|
|
392
412
|
network,
|
|
393
413
|
dexKey,
|
|
394
|
-
|
|
414
|
+
`https://rpc.tenderly.co/fork/${ts.forkId}`,
|
|
395
415
|
limitOrderProvider,
|
|
396
416
|
);
|
|
397
417
|
|
|
@@ -427,52 +447,19 @@ export async function newTestE2E({
|
|
|
427
447
|
senderAddress,
|
|
428
448
|
);
|
|
429
449
|
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
.addBalance(senderAddress, twiceAmount.toString())
|
|
441
|
-
.addAllowance(
|
|
442
|
-
senderAddress,
|
|
443
|
-
config.tokenTransferProxyAddress,
|
|
444
|
-
amount.toString(),
|
|
445
|
-
);
|
|
446
|
-
} else {
|
|
447
|
-
srcToken
|
|
448
|
-
.addBalance(senderAddress, MAX_UINT)
|
|
449
|
-
.addAllowance(
|
|
450
|
-
senderAddress,
|
|
451
|
-
config.tokenTransferProxyAddress,
|
|
452
|
-
(BigInt(MAX_UINT) / 8n).toString(),
|
|
453
|
-
);
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
srcToken.applyOverrides(stateOverrides);
|
|
457
|
-
destToken.applyOverrides(stateOverrides);
|
|
458
|
-
|
|
459
|
-
const swapTx = await (ts as TenderlySimulation).simulate(
|
|
460
|
-
swapParams,
|
|
461
|
-
stateOverrides,
|
|
450
|
+
const swapTx = await ts.simulate(swapParams, stateOverrides);
|
|
451
|
+
console.log(`${srcToken.address}_${destToken.address}_${dexKey!}`);
|
|
452
|
+
// Only log gas estimate if testing against API
|
|
453
|
+
if (useAPI)
|
|
454
|
+
console.log(
|
|
455
|
+
`Gas Estimate API: ${priceRoute.gasCost}, Simulated: ${
|
|
456
|
+
swapTx!.gasUsed
|
|
457
|
+
}, Difference: ${
|
|
458
|
+
parseInt(priceRoute.gasCost) - parseInt(swapTx!.gasUsed)
|
|
459
|
+
}`,
|
|
462
460
|
);
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
if (useAPI)
|
|
466
|
-
console.log(
|
|
467
|
-
`Gas Estimate API: ${priceRoute.gasCost}, Simulated: ${
|
|
468
|
-
swapTx!.gasUsed
|
|
469
|
-
}, Difference: ${
|
|
470
|
-
parseInt(priceRoute.gasCost) - parseInt(swapTx!.gasUsed)
|
|
471
|
-
}`,
|
|
472
|
-
);
|
|
473
|
-
console.log(`Tenderly URL: ${swapTx!.tenderlyUrl}`);
|
|
474
|
-
expect(swapTx!.success).toEqual(true);
|
|
475
|
-
}
|
|
461
|
+
console.log(`Tenderly URL: ${swapTx!.tenderlyUrl}`);
|
|
462
|
+
expect(swapTx!.success).toEqual(true);
|
|
476
463
|
} finally {
|
|
477
464
|
if (paraswap.releaseResources) {
|
|
478
465
|
await paraswap.releaseResources();
|
package/tests/utils.ts
CHANGED
|
@@ -57,8 +57,6 @@ export function checkPoolsLiquidity(
|
|
|
57
57
|
tokenAddress: Address,
|
|
58
58
|
dexKey: string,
|
|
59
59
|
) {
|
|
60
|
-
expect(poolsLiquidity.length).toBeGreaterThan(0);
|
|
61
|
-
|
|
62
60
|
poolsLiquidity.forEach(p => {
|
|
63
61
|
expect(p.exchange).toEqual(dexKey);
|
|
64
62
|
expect(p.liquidityUSD).toBeGreaterThanOrEqual(0);
|
package/.idea/misc.xml
DELETED
package/.idea/modules.xml
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/paraswap-dex-lib.iml" filepath="$PROJECT_DIR$/paraswap-dex-lib.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|
package/.idea/vcs.xml
DELETED
package/.vscode/launch.json
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Use IntelliSense to learn about possible attributes.
|
|
3
|
-
// Hover to view descriptions of existing attributes.
|
|
4
|
-
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
-
"version": "0.2.0",
|
|
6
|
-
"configurations": [
|
|
7
|
-
{
|
|
8
|
-
"type": "node",
|
|
9
|
-
"request": "launch",
|
|
10
|
-
"name": "Launch Program",
|
|
11
|
-
"skipFiles": [
|
|
12
|
-
"<node_internals>/**"
|
|
13
|
-
],
|
|
14
|
-
"program": "${workspaceFolder}/build/index.js",
|
|
15
|
-
"preLaunchTask": "tsc: build - tsconfig.json",
|
|
16
|
-
"outFiles": [
|
|
17
|
-
"${workspaceFolder}/build/**/*.js"
|
|
18
|
-
]
|
|
19
|
-
}
|
|
20
|
-
]
|
|
21
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"aSymbol": "aArbDAI",
|
|
4
|
-
"aAddress": "0x82E64f49Ed5EC1bC6e43DAD4FC8Af9bb3A2312EE",
|
|
5
|
-
"address": "0xda10009cbd5d07dd0cecc66161fc93d7c9000da1",
|
|
6
|
-
"decimals": 18
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
"aSymbol": "aArbLINK",
|
|
10
|
-
"aAddress": "0x191c10Aa4AF7C30e871E70C95dB0E4eb77237530",
|
|
11
|
-
"address": "0xf97f4df75117a78c1a5a0dbb814af92458539fb4",
|
|
12
|
-
"decimals": 18
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"aSymbol": "aArbUSDC",
|
|
16
|
-
"aAddress": "0x625E7708f30cA75bfd92586e17077590C60eb4cD",
|
|
17
|
-
"address": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
|
|
18
|
-
"decimals": 6
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"aSymbol": "aArbWBTC",
|
|
22
|
-
"aAddress": "0x078f358208685046a11C85e8ad32895DED33A249",
|
|
23
|
-
"address": "0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f",
|
|
24
|
-
"decimals": 8
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"aSymbol": "aArbWETH",
|
|
28
|
-
"aAddress": "0xe50fA9b3c56FfB159cB0FCA61F5c9D750e8128c8",
|
|
29
|
-
"address": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
|
|
30
|
-
"decimals": 18
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"aSymbol": "aArbUSDT",
|
|
34
|
-
"aAddress": "0x6ab707aca953edaefbc4fd23ba73294241490620",
|
|
35
|
-
"address": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
|
|
36
|
-
"decimals": 6
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"aSymbol": "aArbAAVE",
|
|
40
|
-
"aAddress": "0xf329e36C7bF6E5E86ce2150875a84Ce77f477375",
|
|
41
|
-
"address": "0xba5ddd1f9d7f570dc94a51479a000e3bce967196",
|
|
42
|
-
"decimals": 18
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"aSymbol": "aArbEURS",
|
|
46
|
-
"aAddress": "0x6d80113e533a2C0fe82EaBD35f1875DcEA89Ea97",
|
|
47
|
-
"address": "0xd22a58f79e9481d1a88e00c343885a588b34b68b",
|
|
48
|
-
"decimals": 2
|
|
49
|
-
}
|
|
50
|
-
]
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"aSymbol": "aWETH",
|
|
4
|
-
"aAddress": "0xe50fa9b3c56ffb159cb0fca61f5c9d750e8128c8",
|
|
5
|
-
"address": "0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab",
|
|
6
|
-
"decimals": 18
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
"aSymbol": "aDAI",
|
|
10
|
-
"aAddress": "0x82e64f49ed5ec1bc6e43dad4fc8af9bb3a2312ee",
|
|
11
|
-
"address": "0xd586e7f844cea2f87f50152665bcbc2c279d8d70",
|
|
12
|
-
"decimals": 18
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"aSymbol": "aLINK",
|
|
16
|
-
"aAddress": "0x191c10aa4af7c30e871e70c95db0e4eb77237530",
|
|
17
|
-
"address": "0x5947bb275c521040051d82396192181b413227a3",
|
|
18
|
-
"decimals": 18
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"aSymbol": "aUSDT",
|
|
22
|
-
"aAddress": "0x6ab707aca953edaefbc4fd23ba73294241490620",
|
|
23
|
-
"address": "0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7",
|
|
24
|
-
"decimals": 6
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"aSymbol": "aUSDC",
|
|
28
|
-
"aAddress": "0x625e7708f30ca75bfd92586e17077590c60eb4cd",
|
|
29
|
-
"address": "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
|
|
30
|
-
"decimals": 6
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"aSymbol": "aAAVE",
|
|
34
|
-
"aAddress": "0xf329e36c7bf6e5e86ce2150875a84ce77f477375",
|
|
35
|
-
"address": "0x63a72806098bd3d9520cc43356dd78afe5d386d9",
|
|
36
|
-
"decimals": 18
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"aSymbol": "aWBTC",
|
|
40
|
-
"aAddress": "0x078f358208685046a11c85e8ad32895ded33a249",
|
|
41
|
-
"address": "0x50b7545627a5162f82a992c33b87adc75187b218",
|
|
42
|
-
"decimals": 8
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"aSymbol": "aWAVAX",
|
|
46
|
-
"aAddress": "0x6d80113e533a2c0fe82eabd35f1875dcea89ea97",
|
|
47
|
-
"address": "0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7",
|
|
48
|
-
"decimals": 18
|
|
49
|
-
}
|
|
50
|
-
]
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"aSymbol": "aUSDT",
|
|
4
|
-
"aAddress": "0x6ab707aca953edaefbc4fd23ba73294241490620",
|
|
5
|
-
"address": "0x049d68029688eabf473097a2fc38ef61633a3c7a",
|
|
6
|
-
"decimals": 6
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
"aSymbol": "aWBTC",
|
|
10
|
-
"aAddress": "0x078f358208685046a11c85e8ad32895ded33a249",
|
|
11
|
-
"address": "0x321162cd933e2be498cd2267a90534a804051b11",
|
|
12
|
-
"decimals": 8
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"aSymbol": "aWETH",
|
|
16
|
-
"aAddress": "0xe50fa9b3c56ffb159cb0fca61f5c9d750e8128c8",
|
|
17
|
-
"address": "0x74b23882a30290451a17c44f4f05243b6b58c76d",
|
|
18
|
-
"decimals": 18
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"aSymbol": "aAAVE",
|
|
22
|
-
"aAddress": "0xf329e36c7bf6e5e86ce2150875a84ce77f477375",
|
|
23
|
-
"address": "0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b",
|
|
24
|
-
"decimals": 18
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"aSymbol": "aWFTM",
|
|
28
|
-
"aAddress": "0x6d80113e533a2c0fe82eabd35f1875dcea89ea97",
|
|
29
|
-
"address": "0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83",
|
|
30
|
-
"decimals": 18
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"aSymbol": "aDAI",
|
|
34
|
-
"aAddress": "0x82e64f49ed5ec1bc6e43dad4fc8af9bb3a2312ee",
|
|
35
|
-
"address": "0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e",
|
|
36
|
-
"decimals": 18
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"aSymbol": "aLINK",
|
|
40
|
-
"aAddress": "0x191c10aa4af7c30e871e70c95db0e4eb77237530",
|
|
41
|
-
"address": "0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8",
|
|
42
|
-
"decimals": 18
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"aSymbol": "aUSDC",
|
|
46
|
-
"aAddress": "0x625e7708f30ca75bfd92586e17077590c60eb4cd",
|
|
47
|
-
"address": "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
|
|
48
|
-
"decimals": 6
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"aSymbol": "aCRV",
|
|
52
|
-
"aAddress": "0x513c7e3a9c69ca3e22550ef58ac1c0088e918fff",
|
|
53
|
-
"address": "0x1e4f97b9f9f913c46f1632781732927b9019c68b",
|
|
54
|
-
"decimals": 18
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"aSymbol": "aSUSHI",
|
|
58
|
-
"aAddress": "0xc45a479877e1e9dfe9fcd4056c699575a1045daa",
|
|
59
|
-
"address": "0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc",
|
|
60
|
-
"decimals": 18
|
|
61
|
-
}
|
|
62
|
-
]
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"aSymbol": "aDAI",
|
|
4
|
-
"aAddress": "0x018008bfb33d285247A21d44E50697654f754e63",
|
|
5
|
-
"address": "0x6b175474e89094c44da98b954eedeac495271d0f",
|
|
6
|
-
"decimals": 18
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
"aSymbol": "aUSDC",
|
|
10
|
-
"aAddress": "0x98C23E9d8f34FEFb1B7BD6a91B7FF122F4e16F5c",
|
|
11
|
-
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
12
|
-
"decimals": 6
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"aSymbol": "aAAVE",
|
|
16
|
-
"aAddress": "0xA700b4eB416Be35b2911fd5Dee80678ff64fF6C9",
|
|
17
|
-
"address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9",
|
|
18
|
-
"decimals": 18
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"aSymbol": "aLINK",
|
|
22
|
-
"aAddress": "0x5E8C8A7243651DB1384C0dDfDbE39761E8e7E51a",
|
|
23
|
-
"address": "0x514910771af9ca656af840dff83e8264ecf986ca",
|
|
24
|
-
"decimals": 18
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"aSymbol": "aWBTC",
|
|
28
|
-
"aAddress": "0x5Ee5bf7ae06D1Be5997A1A72006FE6C607eC6DE8",
|
|
29
|
-
"address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
|
|
30
|
-
"decimals": 8
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"aSymbol": "aWETH",
|
|
34
|
-
"aAddress": "0x4d5F47FA6A74757f35C14fD3a6Ef8E3C9BC514E8",
|
|
35
|
-
"address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
|
|
36
|
-
"decimals": 18
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"aSymbol": "awstETH",
|
|
40
|
-
"aAddress": "0x0B925eD163218f6662a35e0f0371Ac234f9E9371",
|
|
41
|
-
"address": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0",
|
|
42
|
-
"decimals": 18
|
|
43
|
-
}
|
|
44
|
-
]
|