@paraswap/dex-lib 2.35.3-base-support.0 → 2.35.3-quick-perps-proxy.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/abi/api3-proxy.json +7 -0
- package/build/abi/quickPerps/fast-price-events.json +70 -0
- package/build/abi/quickPerps/fast-price-feed.json +748 -0
- package/build/abi/quickPerps/reader.json +313 -0
- package/build/abi/quickPerps/vault-price-feed.json +477 -0
- package/build/abi/quickPerps/vault.json +1953 -0
- package/build/abi/woo-fi/WooFeeManager.abi.json +318 -0
- package/build/abi/woo-fi/WooPP.abi.json +548 -0
- package/build/abi/woo-fi/Wooracle.abi.json +260 -0
- package/build/config.js +0 -26
- package/build/config.js.map +1 -1
- package/build/constants.d.ts +1 -2
- package/build/constants.js +0 -1
- package/build/constants.js.map +1 -1
- package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
- package/build/dex/aave-v3/tokens/avalanche.json +74 -0
- package/build/dex/aave-v3/tokens/fantom.json +62 -0
- package/build/dex/aave-v3/tokens/optimism.json +50 -0
- package/build/dex/aave-v3/tokens/polygon.json +116 -0
- package/build/dex/quick-perps/pool.js +20 -6
- package/build/dex/quick-perps/pool.js.map +1 -1
- package/build/dex/quickswap/camelot-v3.d.ts +6 -0
- package/build/dex/quickswap/camelot-v3.js +19 -0
- package/build/dex/quickswap/camelot-v3.js.map +1 -0
- package/build/dex/quickswap-v3.d.ts +21 -0
- package/build/dex/quickswap-v3.js +40 -0
- package/build/dex/quickswap-v3.js.map +1 -0
- package/build/dex/test-dex/config.d.ts +4 -0
- package/build/dex/test-dex/config.js +15 -0
- package/build/dex/test-dex/config.js.map +1 -0
- package/build/dex/test-dex/test-dex-pool.d.ts +39 -0
- package/build/dex/test-dex/test-dex-pool.js +63 -0
- package/build/dex/test-dex/test-dex-pool.js.map +1 -0
- package/build/dex/test-dex/test-dex.d.ts +37 -0
- package/build/dex/test-dex/test-dex.js +126 -0
- package/build/dex/test-dex/test-dex.js.map +1 -0
- package/build/dex/test-dex/types.d.ts +6 -0
- package/build/dex/test-dex/types.js +3 -0
- package/build/dex/test-dex/types.js.map +1 -0
- package/build/dex/uniswap-v3/config.js +0 -16
- package/build/dex/uniswap-v3/config.js.map +1 -1
- package/build/dex/weth/config.js +0 -3
- package/build/dex/weth/config.js.map +1 -1
- package/build/dex/woo-fi/config.d.ts +4 -0
- package/build/dex/woo-fi/config.js +141 -0
- package/build/dex/woo-fi/config.js.map +1 -0
- package/build/dex/woo-fi/constants.d.ts +5 -0
- package/build/dex/woo-fi/constants.js +20 -0
- package/build/dex/woo-fi/constants.js.map +1 -0
- package/build/dex/woo-fi/types.d.ts +48 -0
- package/build/dex/woo-fi/types.js +3 -0
- package/build/dex/woo-fi/types.js.map +1 -0
- package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +14 -0
- package/build/dex/woo-fi/woo-fi-decimal-math.js +42 -0
- package/build/dex/woo-fi/woo-fi-decimal-math.js.map +1 -0
- package/build/dex/woo-fi/woo-fi-math.d.ts +31 -0
- package/build/dex/woo-fi/woo-fi-math.js +300 -0
- package/build/dex/woo-fi/woo-fi-math.js.map +1 -0
- package/build/dex/woo-fi/woo-fi.d.ts +65 -0
- package/build/dex/woo-fi/woo-fi.js +480 -0
- package/build/dex/woo-fi/woo-fi.js.map +1 -0
- package/build/dex/woo-fi-v2/woo-fi-math.d.ts +16 -0
- package/build/dex/woo-fi-v2/woo-fi-math.js +137 -0
- package/build/dex/woo-fi-v2/woo-fi-math.js.map +1 -0
- package/build/lib/api3-feed.d.ts +4 -0
- package/build/lib/api3-feed.js +18 -0
- package/build/lib/api3-feed.js.map +1 -1
- package/package.json +1 -1
- package/src/abi/api3-proxy.json +7 -0
- package/src/config.ts +1 -27
- package/src/constants.ts +0 -1
- package/src/dex/quick-perps/pool.ts +41 -7
- package/src/dex/quick-perps/quick-perps-events.test.ts +0 -1
- package/src/dex/uniswap-v3/config.ts +0 -17
- package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +0 -95
- package/src/dex/weth/config.ts +0 -3
- package/src/lib/api3-feed.ts +35 -0
- package/tests/constants-e2e.ts +0 -17
- package/build/dex/pancakeswap-v3/types.d.ts +0 -137
- package/build/dex/pancakeswap-v3/types.js +0 -9
- package/build/dex/pancakeswap-v3/types.js.map +0 -1
- package/build/web3-provider.d.ts +0 -3
- package/build/web3-provider.js +0 -13
- package/build/web3-provider.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"woo-fi-math.js","sourceRoot":"","sources":["../../../src/dex/woo-fi-v2/woo-fi-math.ts"],"names":[],"mappings":"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"}
|
package/build/lib/api3-feed.d.ts
CHANGED
|
@@ -16,7 +16,11 @@ export declare class Api3FeedSubscriber<State> extends PartialEventSubscriber<St
|
|
|
16
16
|
static readonly ANSWER_UPDATED_BEACON_SET_DATA: string;
|
|
17
17
|
constructor(proxy: Address, api3Server: Address, dataFeedId: string, lens: Lens<DeepReadonly<State>, DeepReadonly<Api3FeedSubscriberState>>, logger: Logger);
|
|
18
18
|
static getApi3ServerV1MultiCallInput(proxy: Address): MultiCallInput;
|
|
19
|
+
static getDapiNameHashMultiCallInput(proxy: Address): MultiCallInput;
|
|
19
20
|
static getDataFeedId(proxy: Address): MultiCallInput;
|
|
21
|
+
static getFeedIdFromDapiNameHash(api3Server: Address, dapiNameHash: string): MultiCallInput;
|
|
22
|
+
static decodeFeedIdFromDapiNameHash(multicallOutput: MultiCallOutput): any;
|
|
23
|
+
static decodeDapiNameHash(multicallOutput: MultiCallOutput): any;
|
|
20
24
|
static decodeDataFeedId(multicallOutput: MultiCallOutput): any;
|
|
21
25
|
static decodeApi3ServerV1Result(multicallOutput: MultiCallOutput): Address;
|
|
22
26
|
processLog(state: DeepReadonly<Api3FeedSubscriberState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<Api3FeedSubscriberState> | null;
|
package/build/lib/api3-feed.js
CHANGED
|
@@ -20,12 +20,30 @@ class Api3FeedSubscriber extends composed_event_subscriber_1.PartialEventSubscri
|
|
|
20
20
|
callData: Api3FeedSubscriber.proxyInterface.encodeFunctionData('api3ServerV1'),
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
+
static getDapiNameHashMultiCallInput(proxy) {
|
|
24
|
+
return {
|
|
25
|
+
target: proxy,
|
|
26
|
+
callData: Api3FeedSubscriber.proxyInterface.encodeFunctionData('dapiNameHash'),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
23
29
|
static getDataFeedId(proxy) {
|
|
24
30
|
return {
|
|
25
31
|
target: proxy,
|
|
26
32
|
callData: Api3FeedSubscriber.proxyInterface.encodeFunctionData('dataFeedId'),
|
|
27
33
|
};
|
|
28
34
|
}
|
|
35
|
+
static getFeedIdFromDapiNameHash(api3Server, dapiNameHash) {
|
|
36
|
+
return {
|
|
37
|
+
target: api3Server,
|
|
38
|
+
callData: Api3FeedSubscriber.api3ServerV1Iface.encodeFunctionData('dapiNameHashToDataFeedId', [dapiNameHash]),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
static decodeFeedIdFromDapiNameHash(multicallOutput) {
|
|
42
|
+
return Api3FeedSubscriber.api3ServerV1Iface.decodeFunctionResult('dapiNameHashToDataFeedId', multicallOutput)[0];
|
|
43
|
+
}
|
|
44
|
+
static decodeDapiNameHash(multicallOutput) {
|
|
45
|
+
return Api3FeedSubscriber.proxyInterface.decodeFunctionResult('dapiNameHash', multicallOutput)[0];
|
|
46
|
+
}
|
|
29
47
|
static decodeDataFeedId(multicallOutput) {
|
|
30
48
|
return Api3FeedSubscriber.proxyInterface.decodeFunctionResult('dataFeedId', multicallOutput)[0];
|
|
31
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api3-feed.js","sourceRoot":"","sources":["../../src/lib/api3-feed.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api3-feed.js","sourceRoot":"","sources":["../../src/lib/api3-feed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/abi/api3-proxy.json
CHANGED
|
@@ -42,5 +42,12 @@
|
|
|
42
42
|
],
|
|
43
43
|
"stateMutability": "view",
|
|
44
44
|
"type": "function"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"inputs": [],
|
|
48
|
+
"name": "dapiNameHash",
|
|
49
|
+
"outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }],
|
|
50
|
+
"stateMutability": "view",
|
|
51
|
+
"type": "function"
|
|
45
52
|
}
|
|
46
53
|
]
|
package/src/config.ts
CHANGED
|
@@ -317,6 +317,7 @@ const baseConfigs: { [network: number]: BaseConfig } = {
|
|
|
317
317
|
rpcPollingBlocksBackToTriggerUpdate: 3,
|
|
318
318
|
forceRpcFallbackDexs: [],
|
|
319
319
|
},
|
|
320
|
+
|
|
320
321
|
[Network.ZKEVM]: {
|
|
321
322
|
network: Network.ZKEVM,
|
|
322
323
|
networkName: 'Polygon zkEVM',
|
|
@@ -346,33 +347,6 @@ const baseConfigs: { [network: number]: BaseConfig } = {
|
|
|
346
347
|
// FIXME: Not set properly
|
|
347
348
|
uniswapV2ExchangeRouterAddress: '',
|
|
348
349
|
},
|
|
349
|
-
[Network.BASE]: {
|
|
350
|
-
network: Network.BASE,
|
|
351
|
-
networkName: 'Base',
|
|
352
|
-
isTestnet: false,
|
|
353
|
-
nativeTokenName: 'Ether',
|
|
354
|
-
nativeTokenSymbol: 'ETH',
|
|
355
|
-
wrappedNativeTokenAddress: '0x4200000000000000000000000000000000000006',
|
|
356
|
-
hasEIP1559: false,
|
|
357
|
-
augustusAddress: '0x793a0Bb089c6787e84277f08179DAC594eDb9443',
|
|
358
|
-
augustusRFQAddress: '0xa003dFBA51C9e1e56C67ae445b852bdEd7aC5EEd',
|
|
359
|
-
tokenTransferProxyAddress: '0xCADa28FC80ceB3baF3BEa4C2d7a819e69435907E',
|
|
360
|
-
multicallV2Address: '0xeDF6D2a16e8081F777eB623EeB4411466556aF3d',
|
|
361
|
-
privateHttpProvider: process.env.HTTP_PROVIDER_8453,
|
|
362
|
-
hashFlowAuthToken: process.env.API_KEY_HASHFLOW_AUTH_TOKEN || '',
|
|
363
|
-
hashFlowDisabledMMs: [],
|
|
364
|
-
adapterAddresses: {
|
|
365
|
-
BaseAdapter01: '0x9F77bb28e97F093Aa6CbE37cE095C18605d98Af2',
|
|
366
|
-
BaseBuyAdapter: '0x8DE036910e34b0d8447Dd0D34C742636de1DDfEb',
|
|
367
|
-
},
|
|
368
|
-
uniswapV2ExchangeRouterAddress:
|
|
369
|
-
'0x75d199EfB540e47D27D52c62Da3E7daC2B9e834F',
|
|
370
|
-
uniswapV3EventLoggingSampleRate: 0,
|
|
371
|
-
rfqConfigs: {},
|
|
372
|
-
rpcPollingMaxAllowedStateDelayInBlocks: 5,
|
|
373
|
-
rpcPollingBlocksBackToTriggerUpdate: 3,
|
|
374
|
-
forceRpcFallbackDexs: [],
|
|
375
|
-
},
|
|
376
350
|
};
|
|
377
351
|
|
|
378
352
|
// Should not be used, except by internal test code
|
package/src/constants.ts
CHANGED
|
@@ -283,7 +283,8 @@ export class QuickPerpsEventPool extends ComposedEventSubscriber<PoolState> {
|
|
|
283
283
|
for (let priceFeed of priceFeeds) {
|
|
284
284
|
const api3ServerAddressCallData =
|
|
285
285
|
Api3FeedSubscriber.getApi3ServerV1MultiCallInput(priceFeed);
|
|
286
|
-
const dataFeedIdCallData =
|
|
286
|
+
const dataFeedIdCallData =
|
|
287
|
+
Api3FeedSubscriber.getDapiNameHashMultiCallInput(priceFeed);
|
|
287
288
|
multiCallData.push(...[api3ServerAddressCallData, dataFeedIdCallData]);
|
|
288
289
|
multicallSlices.push([i, i + 2]);
|
|
289
290
|
i += 2;
|
|
@@ -315,24 +316,31 @@ export class QuickPerpsEventPool extends ComposedEventSubscriber<PoolState> {
|
|
|
315
316
|
await multiContract.methods.aggregate(multiCallData).call({}, blockNumber)
|
|
316
317
|
).returnData;
|
|
317
318
|
|
|
318
|
-
const
|
|
319
|
+
const api3ServerV1Prep: {
|
|
319
320
|
[address: string]: {
|
|
320
321
|
proxy: Address;
|
|
321
322
|
api3ServerV1: Address;
|
|
322
|
-
dataFeedId: string;
|
|
323
323
|
};
|
|
324
324
|
} = {};
|
|
325
|
+
const getFeedIdRequests: MultiCallInput[] = [];
|
|
326
|
+
|
|
325
327
|
for (let token of tokens) {
|
|
326
|
-
const [api3ServerAddressRes,
|
|
328
|
+
const [api3ServerAddressRes, dapiNameHashRes] = configResults.slice(
|
|
327
329
|
...multicallSlices.shift()!,
|
|
328
330
|
);
|
|
329
331
|
const serverV1Address =
|
|
330
332
|
Api3FeedSubscriber.decodeApi3ServerV1Result(api3ServerAddressRes);
|
|
331
|
-
const
|
|
332
|
-
|
|
333
|
+
const dapiNameHash =
|
|
334
|
+
Api3FeedSubscriber.decodeDapiNameHash(dapiNameHashRes);
|
|
335
|
+
getFeedIdRequests.push(
|
|
336
|
+
Api3FeedSubscriber.getFeedIdFromDapiNameHash(
|
|
337
|
+
serverV1Address,
|
|
338
|
+
dapiNameHash,
|
|
339
|
+
),
|
|
340
|
+
);
|
|
341
|
+
api3ServerV1Prep[token] = {
|
|
333
342
|
proxy: priceFeeds.shift(),
|
|
334
343
|
api3ServerV1: serverV1Address,
|
|
335
|
-
dataFeedId,
|
|
336
344
|
};
|
|
337
345
|
}
|
|
338
346
|
|
|
@@ -355,6 +363,32 @@ export class QuickPerpsEventPool extends ComposedEventSubscriber<PoolState> {
|
|
|
355
363
|
const vaultConfigResults = configResults.slice(...multicallSlices.shift()!);
|
|
356
364
|
const vaultConfig = Vault.getConfig(vaultConfigResults, tokens);
|
|
357
365
|
|
|
366
|
+
const feedIdResults = (
|
|
367
|
+
await multiContract.methods
|
|
368
|
+
.aggregate(getFeedIdRequests)
|
|
369
|
+
.call({}, blockNumber)
|
|
370
|
+
).returnData;
|
|
371
|
+
|
|
372
|
+
const api3ServerV1: {
|
|
373
|
+
[address: string]: {
|
|
374
|
+
proxy: Address;
|
|
375
|
+
api3ServerV1: Address;
|
|
376
|
+
dataFeedId: string;
|
|
377
|
+
};
|
|
378
|
+
} = {};
|
|
379
|
+
for (let [i, token] of tokens.entries()) {
|
|
380
|
+
const { proxy, api3ServerV1: api3ServerAddress } =
|
|
381
|
+
api3ServerV1Prep[token];
|
|
382
|
+
const dataFeedId = Api3FeedSubscriber.decodeFeedIdFromDapiNameHash(
|
|
383
|
+
feedIdResults[i],
|
|
384
|
+
);
|
|
385
|
+
api3ServerV1[token] = {
|
|
386
|
+
proxy,
|
|
387
|
+
api3ServerV1: api3ServerAddress,
|
|
388
|
+
dataFeedId,
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
|
|
358
392
|
return {
|
|
359
393
|
vaultAddress: dexParams.vault,
|
|
360
394
|
readerAddress: dexParams.reader,
|
|
@@ -106,19 +106,6 @@ export const UniswapV3Config: DexConfigMap<DexParams> = {
|
|
|
106
106
|
subgraphURL:
|
|
107
107
|
'https://api.thegraph.com/subgraphs/name/lynnshaoyu/uniswap-v3-avax',
|
|
108
108
|
},
|
|
109
|
-
[Network.BASE]: {
|
|
110
|
-
factory: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',
|
|
111
|
-
quoter: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
|
|
112
|
-
router: '0xaeE2b8d4A154e36f479dAeCe3FB3e6c3c03d396E',
|
|
113
|
-
supportedFees: SUPPORTED_FEES,
|
|
114
|
-
stateMulticall: '0x7160f736c52e1e78e92FD4eE4D73e21A7Cf4F950',
|
|
115
|
-
uniswapMulticall: '0x091e99cb1C49331a94dD62755D168E941AbD0693',
|
|
116
|
-
chunksCount: 10,
|
|
117
|
-
initRetryFrequency: 10,
|
|
118
|
-
initHash: `0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54`,
|
|
119
|
-
subgraphURL:
|
|
120
|
-
'https://api.thegraph.com/subgraphs/name/lynnshaoyu/uniswap-v3-base',
|
|
121
|
-
},
|
|
122
109
|
},
|
|
123
110
|
SushiSwapV3: {
|
|
124
111
|
[Network.MAINNET]: {
|
|
@@ -296,8 +283,4 @@ export const Adapters: Record<number, AdapterMappings> = {
|
|
|
296
283
|
[SwapSide.SELL]: [{ name: 'AvalancheAdapter02', index: 5 }],
|
|
297
284
|
[SwapSide.BUY]: [{ name: 'AvalancheBuyAdapter', index: 6 }],
|
|
298
285
|
},
|
|
299
|
-
[Network.BASE]: {
|
|
300
|
-
[SwapSide.SELL]: [{ name: 'BaseAdapter01', index: 1 }],
|
|
301
|
-
[SwapSide.BUY]: [{ name: 'BaseBuyAdapter', index: 1 }],
|
|
302
|
-
},
|
|
303
286
|
};
|
|
@@ -403,101 +403,6 @@ describe('UniswapV3 E2E', () => {
|
|
|
403
403
|
);
|
|
404
404
|
});
|
|
405
405
|
|
|
406
|
-
describe('UniswapV3 Base', () => {
|
|
407
|
-
const network = Network.BASE;
|
|
408
|
-
const tokens = Tokens[network];
|
|
409
|
-
const holders = Holders[network];
|
|
410
|
-
const provider = new StaticJsonRpcProvider(
|
|
411
|
-
generateConfig(network).privateHttpProvider,
|
|
412
|
-
network,
|
|
413
|
-
);
|
|
414
|
-
|
|
415
|
-
const tokenASymbol: string = 'PRIME';
|
|
416
|
-
const tokenBSymbol: string = 'WETH';
|
|
417
|
-
const nativeTokenSymbol = NativeTokenSymbols[network];
|
|
418
|
-
|
|
419
|
-
const tokenAAmount: string = '1000000000000000000';
|
|
420
|
-
const tokenBAmount: string = '1000000000000000000';
|
|
421
|
-
const nativeTokenAmount = '1000000000000000000';
|
|
422
|
-
|
|
423
|
-
const sideToContractMethods = new Map([
|
|
424
|
-
[
|
|
425
|
-
SwapSide.SELL,
|
|
426
|
-
[
|
|
427
|
-
// ContractMethod.simpleSwap,
|
|
428
|
-
ContractMethod.multiSwap,
|
|
429
|
-
// ContractMethod.megaSwap,
|
|
430
|
-
],
|
|
431
|
-
],
|
|
432
|
-
[
|
|
433
|
-
SwapSide.BUY,
|
|
434
|
-
[
|
|
435
|
-
// ContractMethod.simpleBuy,
|
|
436
|
-
// ContractMethod.buy
|
|
437
|
-
],
|
|
438
|
-
],
|
|
439
|
-
]);
|
|
440
|
-
|
|
441
|
-
sideToContractMethods.forEach((contractMethods, side) =>
|
|
442
|
-
contractMethods.forEach((contractMethod: ContractMethod) => {
|
|
443
|
-
describe(`${contractMethod}`, () => {
|
|
444
|
-
it(`${network} ${side} ${contractMethod} ${nativeTokenSymbol} -> ${tokenASymbol}`, async () => {
|
|
445
|
-
await testE2E(
|
|
446
|
-
tokens[nativeTokenSymbol],
|
|
447
|
-
tokens[tokenASymbol],
|
|
448
|
-
holders[nativeTokenSymbol],
|
|
449
|
-
side === SwapSide.SELL ? nativeTokenAmount : tokenAAmount,
|
|
450
|
-
side,
|
|
451
|
-
dexKey,
|
|
452
|
-
contractMethod,
|
|
453
|
-
network,
|
|
454
|
-
provider,
|
|
455
|
-
);
|
|
456
|
-
});
|
|
457
|
-
it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${nativeTokenSymbol}`, async () => {
|
|
458
|
-
await testE2E(
|
|
459
|
-
tokens[tokenASymbol],
|
|
460
|
-
tokens[nativeTokenSymbol],
|
|
461
|
-
holders[tokenASymbol],
|
|
462
|
-
side === SwapSide.SELL ? tokenAAmount : nativeTokenAmount,
|
|
463
|
-
side,
|
|
464
|
-
dexKey,
|
|
465
|
-
contractMethod,
|
|
466
|
-
network,
|
|
467
|
-
provider,
|
|
468
|
-
);
|
|
469
|
-
});
|
|
470
|
-
it(`${network} ${side} ${contractMethod} ${tokenBSymbol} -> ${tokenASymbol}`, async () => {
|
|
471
|
-
await testE2E(
|
|
472
|
-
tokens[tokenBSymbol],
|
|
473
|
-
tokens[tokenASymbol],
|
|
474
|
-
holders[tokenASymbol],
|
|
475
|
-
side === SwapSide.SELL ? tokenBAmount : tokenAAmount,
|
|
476
|
-
side,
|
|
477
|
-
dexKey,
|
|
478
|
-
contractMethod,
|
|
479
|
-
network,
|
|
480
|
-
provider,
|
|
481
|
-
);
|
|
482
|
-
});
|
|
483
|
-
it(`${network} ${side} ${contractMethod} ${tokenASymbol} -> ${tokenBSymbol}`, async () => {
|
|
484
|
-
await testE2E(
|
|
485
|
-
tokens[tokenASymbol],
|
|
486
|
-
tokens[tokenBSymbol],
|
|
487
|
-
holders[tokenASymbol],
|
|
488
|
-
side === SwapSide.SELL ? tokenAAmount : tokenBAmount,
|
|
489
|
-
side,
|
|
490
|
-
dexKey,
|
|
491
|
-
contractMethod,
|
|
492
|
-
network,
|
|
493
|
-
provider,
|
|
494
|
-
);
|
|
495
|
-
});
|
|
496
|
-
});
|
|
497
|
-
}),
|
|
498
|
-
);
|
|
499
|
-
});
|
|
500
|
-
|
|
501
406
|
describe('UniswapV3 Avalanche', () => {
|
|
502
407
|
const network = Network.AVALANCHE;
|
|
503
408
|
const tokens = Tokens[network];
|
package/src/dex/weth/config.ts
CHANGED
package/src/lib/api3-feed.ts
CHANGED
|
@@ -51,6 +51,14 @@ export class Api3FeedSubscriber<State> extends PartialEventSubscriber<
|
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
static getDapiNameHashMultiCallInput(proxy: Address): MultiCallInput {
|
|
55
|
+
return {
|
|
56
|
+
target: proxy,
|
|
57
|
+
callData:
|
|
58
|
+
Api3FeedSubscriber.proxyInterface.encodeFunctionData('dapiNameHash'),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
54
62
|
static getDataFeedId(proxy: Address): MultiCallInput {
|
|
55
63
|
return {
|
|
56
64
|
target: proxy,
|
|
@@ -59,6 +67,33 @@ export class Api3FeedSubscriber<State> extends PartialEventSubscriber<
|
|
|
59
67
|
};
|
|
60
68
|
}
|
|
61
69
|
|
|
70
|
+
static getFeedIdFromDapiNameHash(
|
|
71
|
+
api3Server: Address,
|
|
72
|
+
dapiNameHash: string,
|
|
73
|
+
): MultiCallInput {
|
|
74
|
+
return {
|
|
75
|
+
target: api3Server,
|
|
76
|
+
callData: Api3FeedSubscriber.api3ServerV1Iface.encodeFunctionData(
|
|
77
|
+
'dapiNameHashToDataFeedId',
|
|
78
|
+
[dapiNameHash],
|
|
79
|
+
),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
static decodeFeedIdFromDapiNameHash(multicallOutput: MultiCallOutput) {
|
|
84
|
+
return Api3FeedSubscriber.api3ServerV1Iface.decodeFunctionResult(
|
|
85
|
+
'dapiNameHashToDataFeedId',
|
|
86
|
+
multicallOutput,
|
|
87
|
+
)[0];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
static decodeDapiNameHash(multicallOutput: MultiCallOutput) {
|
|
91
|
+
return Api3FeedSubscriber.proxyInterface.decodeFunctionResult(
|
|
92
|
+
'dapiNameHash',
|
|
93
|
+
multicallOutput,
|
|
94
|
+
)[0];
|
|
95
|
+
}
|
|
96
|
+
|
|
62
97
|
static decodeDataFeedId(multicallOutput: MultiCallOutput) {
|
|
63
98
|
return Api3FeedSubscriber.proxyInterface.decodeFunctionResult(
|
|
64
99
|
'dataFeedId',
|
package/tests/constants-e2e.ts
CHANGED
|
@@ -883,17 +883,6 @@ export const Tokens: {
|
|
|
883
883
|
decimals: 6,
|
|
884
884
|
},
|
|
885
885
|
},
|
|
886
|
-
[Network.BASE]: {
|
|
887
|
-
PRIME: {
|
|
888
|
-
address: '0xfA980cEd6895AC314E7dE34Ef1bFAE90a5AdD21b',
|
|
889
|
-
decimals: 18,
|
|
890
|
-
},
|
|
891
|
-
WETH: {
|
|
892
|
-
address: '0x4200000000000000000000000000000000000006',
|
|
893
|
-
decimals: 18,
|
|
894
|
-
},
|
|
895
|
-
ETH: { address: ETHER_ADDRESS, decimals: 18 },
|
|
896
|
-
},
|
|
897
886
|
};
|
|
898
887
|
|
|
899
888
|
export const Holders: {
|
|
@@ -1113,11 +1102,6 @@ export const Holders: {
|
|
|
1113
1102
|
WBTC: '0x99b31498b0a1dae01fc3433e3cb60f095340935c',
|
|
1114
1103
|
USDC: '0x99b31498b0a1dae01fc3433e3cb60f095340935c',
|
|
1115
1104
|
},
|
|
1116
|
-
[Network.BASE]: {
|
|
1117
|
-
WETH: '0x4bb6b2efe7036020ba6f02a05602546c9f25bf28',
|
|
1118
|
-
PRIME: '0x956bcc6b56c99db382d9d97a30ba5f1402144b3e',
|
|
1119
|
-
ETH: '0xdd9176ea3e7559d6b68b537ef555d3e89403f742',
|
|
1120
|
-
},
|
|
1121
1105
|
};
|
|
1122
1106
|
|
|
1123
1107
|
export const SmartTokens = Object.keys(Tokens).reduce((acc, _network) => {
|
|
@@ -1142,5 +1126,4 @@ export const NativeTokenSymbols: { [network: number]: string } = {
|
|
|
1142
1126
|
[Network.FANTOM]: 'FTM',
|
|
1143
1127
|
[Network.ARBITRUM]: 'ETH',
|
|
1144
1128
|
[Network.OPTIMISM]: 'ETH',
|
|
1145
|
-
[Network.BASE]: 'ETH',
|
|
1146
1129
|
};
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { BigNumber } from 'ethers';
|
|
2
|
-
import { NumberAsString } from '../../types';
|
|
3
|
-
import { Address } from '../../types';
|
|
4
|
-
export declare type OracleObservation = {
|
|
5
|
-
blockTimestamp: bigint;
|
|
6
|
-
tickCumulative: bigint;
|
|
7
|
-
secondsPerLiquidityCumulativeX128: bigint;
|
|
8
|
-
initialized: boolean;
|
|
9
|
-
};
|
|
10
|
-
export declare type OracleObservationCandidates = {
|
|
11
|
-
beforeOrAt: OracleObservation;
|
|
12
|
-
atOrAfter: OracleObservation;
|
|
13
|
-
};
|
|
14
|
-
export declare type TickInfo = {
|
|
15
|
-
liquidityGross: bigint;
|
|
16
|
-
liquidityNet: bigint;
|
|
17
|
-
tickCumulativeOutside: bigint;
|
|
18
|
-
secondsPerLiquidityOutsideX128: bigint;
|
|
19
|
-
secondsOutside: bigint;
|
|
20
|
-
initialized: boolean;
|
|
21
|
-
};
|
|
22
|
-
export declare type Slot0 = {
|
|
23
|
-
sqrtPriceX96: bigint;
|
|
24
|
-
tick: bigint;
|
|
25
|
-
observationIndex: number;
|
|
26
|
-
observationCardinality: number;
|
|
27
|
-
observationCardinalityNext: number;
|
|
28
|
-
feeProtocol: bigint;
|
|
29
|
-
};
|
|
30
|
-
export declare type PoolState = {
|
|
31
|
-
pool: string;
|
|
32
|
-
blockTimestamp: bigint;
|
|
33
|
-
tickSpacing: bigint;
|
|
34
|
-
fee: bigint;
|
|
35
|
-
slot0: Slot0;
|
|
36
|
-
liquidity: bigint;
|
|
37
|
-
maxLiquidityPerTick: bigint;
|
|
38
|
-
tickBitmap: Record<NumberAsString, bigint>;
|
|
39
|
-
ticks: Record<NumberAsString, TickInfo>;
|
|
40
|
-
observations: Record<number, OracleObservation>;
|
|
41
|
-
isValid: boolean;
|
|
42
|
-
startTickBitmap: bigint;
|
|
43
|
-
lowestKnownTick: bigint;
|
|
44
|
-
highestKnownTick: bigint;
|
|
45
|
-
balance0: bigint;
|
|
46
|
-
balance1: bigint;
|
|
47
|
-
};
|
|
48
|
-
export declare type UniswapV3Data = {
|
|
49
|
-
path: {
|
|
50
|
-
tokenIn: Address;
|
|
51
|
-
tokenOut: Address;
|
|
52
|
-
fee: NumberAsString;
|
|
53
|
-
}[];
|
|
54
|
-
};
|
|
55
|
-
export declare type DexParams = {
|
|
56
|
-
router: Address;
|
|
57
|
-
quoter: Address;
|
|
58
|
-
factory: Address;
|
|
59
|
-
stateMulticall: Address;
|
|
60
|
-
uniswapMulticall: Address;
|
|
61
|
-
supportedFees: bigint[];
|
|
62
|
-
chunksCount: number;
|
|
63
|
-
deployer?: Address;
|
|
64
|
-
subgraphURL: string;
|
|
65
|
-
initHash: string;
|
|
66
|
-
};
|
|
67
|
-
export declare type UniswapV3SellParam = {
|
|
68
|
-
path: string;
|
|
69
|
-
recipient: Address;
|
|
70
|
-
deadline: string;
|
|
71
|
-
amountIn: NumberAsString;
|
|
72
|
-
amountOutMinimum: NumberAsString;
|
|
73
|
-
};
|
|
74
|
-
export declare type UniswapV3BuyParam = {
|
|
75
|
-
path: string;
|
|
76
|
-
recipient: Address;
|
|
77
|
-
deadline: string;
|
|
78
|
-
amountOut: NumberAsString;
|
|
79
|
-
amountInMaximum: NumberAsString;
|
|
80
|
-
};
|
|
81
|
-
export declare type UniswapV3Param = UniswapV3SellParam | UniswapV3BuyParam;
|
|
82
|
-
export declare enum UniswapV3Functions {
|
|
83
|
-
exactInput = "exactInput",
|
|
84
|
-
exactOutput = "exactOutput"
|
|
85
|
-
}
|
|
86
|
-
export declare type TickInfoMappings = {
|
|
87
|
-
index: number;
|
|
88
|
-
value: TickInfo;
|
|
89
|
-
};
|
|
90
|
-
export declare type TickBitMapMappings = {
|
|
91
|
-
index: number;
|
|
92
|
-
value: bigint;
|
|
93
|
-
};
|
|
94
|
-
export declare type OutputResult = {
|
|
95
|
-
outputs: bigint[];
|
|
96
|
-
tickCounts: number[];
|
|
97
|
-
};
|
|
98
|
-
export declare type TickBitMapMappingsWithBigNumber = {
|
|
99
|
-
index: number;
|
|
100
|
-
value: BigNumber;
|
|
101
|
-
};
|
|
102
|
-
export declare type TickInfoWithBigNumber = {
|
|
103
|
-
initialized: boolean;
|
|
104
|
-
liquidityGross: BigNumber;
|
|
105
|
-
liquidityNet: BigNumber;
|
|
106
|
-
secondsOutside: number;
|
|
107
|
-
secondsPerLiquidityOutsideX128: BigNumber;
|
|
108
|
-
tickCumulativeOutside: BigNumber;
|
|
109
|
-
};
|
|
110
|
-
export declare type TickInfoMappingsWithBigNumber = {
|
|
111
|
-
index: number;
|
|
112
|
-
value: TickInfoWithBigNumber;
|
|
113
|
-
};
|
|
114
|
-
export declare type DecodedStateMultiCallResultWithRelativeBitmaps = {
|
|
115
|
-
pool: Address;
|
|
116
|
-
blockTimestamp: BigNumber;
|
|
117
|
-
slot0: {
|
|
118
|
-
feeProtocol: number;
|
|
119
|
-
observationCardinality: number;
|
|
120
|
-
observationCardinalityNext: number;
|
|
121
|
-
observationIndex: number;
|
|
122
|
-
sqrtPriceX96: BigNumber;
|
|
123
|
-
tick: number;
|
|
124
|
-
unlocked: boolean;
|
|
125
|
-
};
|
|
126
|
-
liquidity: BigNumber;
|
|
127
|
-
tickSpacing: number;
|
|
128
|
-
maxLiquidityPerTick: BigNumber;
|
|
129
|
-
observation: {
|
|
130
|
-
blockTimestamp: number;
|
|
131
|
-
initialized: boolean;
|
|
132
|
-
secondsPerLiquidityCumulativeX128: BigNumber;
|
|
133
|
-
tickCumulative: BigNumber;
|
|
134
|
-
};
|
|
135
|
-
tickBitmap: TickBitMapMappingsWithBigNumber[];
|
|
136
|
-
ticks: TickInfoMappingsWithBigNumber[];
|
|
137
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UniswapV3Functions = void 0;
|
|
4
|
-
var UniswapV3Functions;
|
|
5
|
-
(function (UniswapV3Functions) {
|
|
6
|
-
UniswapV3Functions["exactInput"] = "exactInput";
|
|
7
|
-
UniswapV3Functions["exactOutput"] = "exactOutput";
|
|
8
|
-
})(UniswapV3Functions = exports.UniswapV3Functions || (exports.UniswapV3Functions = {}));
|
|
9
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-v3/types.ts"],"names":[],"mappings":";;;AA4FA,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,iDAA2B,CAAA;AAC7B,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B"}
|
package/build/web3-provider.d.ts
DELETED
package/build/web3-provider.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRpcProvider = void 0;
|
|
4
|
-
const providers_1 = require("@ethersproject/providers");
|
|
5
|
-
const config_1 = require("./config");
|
|
6
|
-
function getRpcProvider(network, url) {
|
|
7
|
-
return new providers_1.StaticJsonRpcProvider({
|
|
8
|
-
url: url ?? (0, config_1.generateConfig)(network).privateHttpProvider,
|
|
9
|
-
allowGzip: true,
|
|
10
|
-
}, network);
|
|
11
|
-
}
|
|
12
|
-
exports.getRpcProvider = getRpcProvider;
|
|
13
|
-
//# sourceMappingURL=web3-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"web3-provider.js","sourceRoot":"","sources":["../src/web3-provider.ts"],"names":[],"mappings":";;;AACA,wDAAiE;AACjE,qCAA0C;AAG1C,SAAgB,cAAc,CAAC,OAAgB,EAAE,GAAY;IAC3D,OAAO,IAAI,iCAAqB,CAC9B;QACE,GAAG,EAAE,GAAG,IAAI,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC,mBAAmB;QACvD,SAAS,EAAE,IAAI;KAChB,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AARD,wCAQC"}
|