@paraswap/dex-lib 2.35.3-base-support.0 → 2.35.3-quick-perps-proxy.1

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 (87) hide show
  1. package/build/abi/api3-proxy.json +7 -0
  2. package/build/abi/quickPerps/fast-price-events.json +70 -0
  3. package/build/abi/quickPerps/fast-price-feed.json +748 -0
  4. package/build/abi/quickPerps/reader.json +313 -0
  5. package/build/abi/quickPerps/vault-price-feed.json +477 -0
  6. package/build/abi/quickPerps/vault.json +1953 -0
  7. package/build/abi/woo-fi/WooFeeManager.abi.json +318 -0
  8. package/build/abi/woo-fi/WooPP.abi.json +548 -0
  9. package/build/abi/woo-fi/Wooracle.abi.json +260 -0
  10. package/build/config.js +0 -26
  11. package/build/config.js.map +1 -1
  12. package/build/constants.d.ts +1 -2
  13. package/build/constants.js +0 -1
  14. package/build/constants.js.map +1 -1
  15. package/build/dex/aave-v3/tokens/arbitrum.json +50 -0
  16. package/build/dex/aave-v3/tokens/avalanche.json +74 -0
  17. package/build/dex/aave-v3/tokens/fantom.json +62 -0
  18. package/build/dex/aave-v3/tokens/optimism.json +50 -0
  19. package/build/dex/aave-v3/tokens/polygon.json +116 -0
  20. package/build/dex/quick-perps/pool.js +21 -6
  21. package/build/dex/quick-perps/pool.js.map +1 -1
  22. package/build/dex/quick-perps/quick-perps.js +34 -28
  23. package/build/dex/quick-perps/quick-perps.js.map +1 -1
  24. package/build/dex/quickswap/camelot-v3.d.ts +6 -0
  25. package/build/dex/quickswap/camelot-v3.js +19 -0
  26. package/build/dex/quickswap/camelot-v3.js.map +1 -0
  27. package/build/dex/quickswap-v3.d.ts +21 -0
  28. package/build/dex/quickswap-v3.js +40 -0
  29. package/build/dex/quickswap-v3.js.map +1 -0
  30. package/build/dex/test-dex/config.d.ts +4 -0
  31. package/build/dex/test-dex/config.js +15 -0
  32. package/build/dex/test-dex/config.js.map +1 -0
  33. package/build/dex/test-dex/test-dex-pool.d.ts +39 -0
  34. package/build/dex/test-dex/test-dex-pool.js +63 -0
  35. package/build/dex/test-dex/test-dex-pool.js.map +1 -0
  36. package/build/dex/test-dex/test-dex.d.ts +37 -0
  37. package/build/dex/test-dex/test-dex.js +126 -0
  38. package/build/dex/test-dex/test-dex.js.map +1 -0
  39. package/build/dex/test-dex/types.d.ts +6 -0
  40. package/build/dex/test-dex/types.js +3 -0
  41. package/build/dex/test-dex/types.js.map +1 -0
  42. package/build/dex/uniswap-v3/config.js +0 -16
  43. package/build/dex/uniswap-v3/config.js.map +1 -1
  44. package/build/dex/weth/config.js +0 -3
  45. package/build/dex/weth/config.js.map +1 -1
  46. package/build/dex/woo-fi/config.d.ts +4 -0
  47. package/build/dex/woo-fi/config.js +141 -0
  48. package/build/dex/woo-fi/config.js.map +1 -0
  49. package/build/dex/woo-fi/constants.d.ts +5 -0
  50. package/build/dex/woo-fi/constants.js +20 -0
  51. package/build/dex/woo-fi/constants.js.map +1 -0
  52. package/build/dex/woo-fi/types.d.ts +48 -0
  53. package/build/dex/woo-fi/types.js +3 -0
  54. package/build/dex/woo-fi/types.js.map +1 -0
  55. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +14 -0
  56. package/build/dex/woo-fi/woo-fi-decimal-math.js +42 -0
  57. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +1 -0
  58. package/build/dex/woo-fi/woo-fi-math.d.ts +31 -0
  59. package/build/dex/woo-fi/woo-fi-math.js +300 -0
  60. package/build/dex/woo-fi/woo-fi-math.js.map +1 -0
  61. package/build/dex/woo-fi/woo-fi.d.ts +65 -0
  62. package/build/dex/woo-fi/woo-fi.js +480 -0
  63. package/build/dex/woo-fi/woo-fi.js.map +1 -0
  64. package/build/dex/woo-fi-v2/woo-fi-math.d.ts +16 -0
  65. package/build/dex/woo-fi-v2/woo-fi-math.js +137 -0
  66. package/build/dex/woo-fi-v2/woo-fi-math.js.map +1 -0
  67. package/build/lib/api3-feed.d.ts +4 -0
  68. package/build/lib/api3-feed.js +18 -0
  69. package/build/lib/api3-feed.js.map +1 -1
  70. package/package.json +1 -1
  71. package/src/abi/api3-proxy.json +7 -0
  72. package/src/config.ts +1 -27
  73. package/src/constants.ts +0 -1
  74. package/src/dex/quick-perps/pool.ts +42 -7
  75. package/src/dex/quick-perps/quick-perps-events.test.ts +0 -1
  76. package/src/dex/quick-perps/quick-perps.ts +45 -35
  77. package/src/dex/uniswap-v3/config.ts +0 -17
  78. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +0 -95
  79. package/src/dex/weth/config.ts +0 -3
  80. package/src/lib/api3-feed.ts +35 -0
  81. package/tests/constants-e2e.ts +0 -17
  82. package/build/dex/pancakeswap-v3/types.d.ts +0 -137
  83. package/build/dex/pancakeswap-v3/types.js +0 -9
  84. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  85. package/build/web3-provider.d.ts +0 -3
  86. package/build/web3-provider.js +0 -13
  87. 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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"}
@@ -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;
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "2.35.3-base-support.0",
3
+ "version": "2.35.3-quick-perps-proxy.1",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -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
@@ -38,7 +38,6 @@ export enum Network {
38
38
  FANTOM = 250,
39
39
  ARBITRUM = 42161,
40
40
  OPTIMISM = 10,
41
- BASE = 8453,
42
41
  }
43
42
  export const SUBGRAPH_TIMEOUT = 20 * 1000;
44
43
 
@@ -104,6 +104,7 @@ export class QuickPerpsEventPool extends ComposedEventSubscriber<PoolState> {
104
104
  const evenState = this.getState(blockNumber);
105
105
  if (evenState) return evenState;
106
106
  const onChainState = await this.generateState(blockNumber);
107
+ this.logger.warn(`State is generated in RPC fallback call`);
107
108
  this.setState(onChainState, blockNumber);
108
109
  return onChainState;
109
110
  }
@@ -283,7 +284,8 @@ export class QuickPerpsEventPool extends ComposedEventSubscriber<PoolState> {
283
284
  for (let priceFeed of priceFeeds) {
284
285
  const api3ServerAddressCallData =
285
286
  Api3FeedSubscriber.getApi3ServerV1MultiCallInput(priceFeed);
286
- const dataFeedIdCallData = Api3FeedSubscriber.getDataFeedId(priceFeed);
287
+ const dataFeedIdCallData =
288
+ Api3FeedSubscriber.getDapiNameHashMultiCallInput(priceFeed);
287
289
  multiCallData.push(...[api3ServerAddressCallData, dataFeedIdCallData]);
288
290
  multicallSlices.push([i, i + 2]);
289
291
  i += 2;
@@ -315,24 +317,31 @@ export class QuickPerpsEventPool extends ComposedEventSubscriber<PoolState> {
315
317
  await multiContract.methods.aggregate(multiCallData).call({}, blockNumber)
316
318
  ).returnData;
317
319
 
318
- const api3ServerV1: {
320
+ const api3ServerV1Prep: {
319
321
  [address: string]: {
320
322
  proxy: Address;
321
323
  api3ServerV1: Address;
322
- dataFeedId: string;
323
324
  };
324
325
  } = {};
326
+ const getFeedIdRequests: MultiCallInput[] = [];
327
+
325
328
  for (let token of tokens) {
326
- const [api3ServerAddressRes, dataFeedIdRes] = configResults.slice(
329
+ const [api3ServerAddressRes, dapiNameHashRes] = configResults.slice(
327
330
  ...multicallSlices.shift()!,
328
331
  );
329
332
  const serverV1Address =
330
333
  Api3FeedSubscriber.decodeApi3ServerV1Result(api3ServerAddressRes);
331
- const dataFeedId = Api3FeedSubscriber.decodeDataFeedId(dataFeedIdRes);
332
- api3ServerV1[token] = {
334
+ const dapiNameHash =
335
+ Api3FeedSubscriber.decodeDapiNameHash(dapiNameHashRes);
336
+ getFeedIdRequests.push(
337
+ Api3FeedSubscriber.getFeedIdFromDapiNameHash(
338
+ serverV1Address,
339
+ dapiNameHash,
340
+ ),
341
+ );
342
+ api3ServerV1Prep[token] = {
333
343
  proxy: priceFeeds.shift(),
334
344
  api3ServerV1: serverV1Address,
335
- dataFeedId,
336
345
  };
337
346
  }
338
347
 
@@ -355,6 +364,32 @@ export class QuickPerpsEventPool extends ComposedEventSubscriber<PoolState> {
355
364
  const vaultConfigResults = configResults.slice(...multicallSlices.shift()!);
356
365
  const vaultConfig = Vault.getConfig(vaultConfigResults, tokens);
357
366
 
367
+ const feedIdResults = (
368
+ await multiContract.methods
369
+ .aggregate(getFeedIdRequests)
370
+ .call({}, blockNumber)
371
+ ).returnData;
372
+
373
+ const api3ServerV1: {
374
+ [address: string]: {
375
+ proxy: Address;
376
+ api3ServerV1: Address;
377
+ dataFeedId: string;
378
+ };
379
+ } = {};
380
+ for (let [i, token] of tokens.entries()) {
381
+ const { proxy, api3ServerV1: api3ServerAddress } =
382
+ api3ServerV1Prep[token];
383
+ const dataFeedId = Api3FeedSubscriber.decodeFeedIdFromDapiNameHash(
384
+ feedIdResults[i],
385
+ );
386
+ api3ServerV1[token] = {
387
+ proxy,
388
+ api3ServerV1: api3ServerAddress,
389
+ dataFeedId,
390
+ };
391
+ }
392
+
358
393
  return {
359
394
  vaultAddress: dexParams.vault,
360
395
  readerAddress: dexParams.reader,
@@ -81,7 +81,6 @@ describe('QuickPerps Event', function () {
81
81
  dexKey,
82
82
  network,
83
83
  dexHelper,
84
- logger,
85
84
  config,
86
85
  );
87
86
  await testEventSubscriber(
@@ -117,45 +117,55 @@ export class QuickPerps extends SimpleExchange implements IDex<QuickPerpsData> {
117
117
  limitPools?: string[],
118
118
  ): Promise<null | ExchangePrices<QuickPerpsData>> {
119
119
  if (side === SwapSide.BUY || !this.pool) return null;
120
- const srcAddress = this.dexHelper.config
121
- .wrapETH(srcToken)
122
- .address.toLowerCase();
123
- const destAddress = this.dexHelper.config
124
- .wrapETH(destToken)
125
- .address.toLowerCase();
126
- if (
127
- srcAddress === destAddress ||
128
- !(
129
- this.supportedTokensMap[srcAddress] &&
130
- this.supportedTokensMap[destAddress]
120
+ try {
121
+ const srcAddress = this.dexHelper.config
122
+ .wrapETH(srcToken)
123
+ .address.toLowerCase();
124
+ const destAddress = this.dexHelper.config
125
+ .wrapETH(destToken)
126
+ .address.toLowerCase();
127
+ if (
128
+ srcAddress === destAddress ||
129
+ !(
130
+ this.supportedTokensMap[srcAddress] &&
131
+ this.supportedTokensMap[destAddress]
132
+ )
131
133
  )
132
- )
133
- return null;
134
- const srcPoolIdentifier = `${this.dexKey}_${srcAddress}`;
135
- const destPoolIdentifier = `${this.dexKey}_${destAddress}`;
136
- const pools = [srcPoolIdentifier, destPoolIdentifier];
137
- if (limitPools && pools.some(p => !limitPools.includes(p))) return null;
134
+ return null;
135
+ const srcPoolIdentifier = `${this.dexKey}_${srcAddress}`;
136
+ const destPoolIdentifier = `${this.dexKey}_${destAddress}`;
137
+ const pools = [srcPoolIdentifier, destPoolIdentifier];
138
+ if (limitPools && pools.some(p => !limitPools.includes(p))) return null;
138
139
 
139
- const unitVolume = getBigIntPow(srcToken.decimals);
140
- const prices = await this.pool.getAmountOut(
141
- srcAddress,
142
- destAddress,
143
- [unitVolume, ...amounts],
144
- blockNumber,
145
- );
140
+ const unitVolume = getBigIntPow(srcToken.decimals);
141
+ const prices = await this.pool.getAmountOut(
142
+ srcAddress,
143
+ destAddress,
144
+ [unitVolume, ...amounts],
145
+ blockNumber,
146
+ );
146
147
 
147
- if (!prices) return null;
148
+ if (!prices) return null;
148
149
 
149
- return [
150
- {
151
- prices: prices.slice(1),
152
- unit: prices[0],
153
- gasCost: QuickPerpsGasCost,
154
- exchange: this.dexKey,
155
- data: {},
156
- poolAddresses: [this.params.vault],
157
- },
158
- ];
150
+ return [
151
+ {
152
+ prices: prices.slice(1),
153
+ unit: prices[0],
154
+ gasCost: QuickPerpsGasCost,
155
+ exchange: this.dexKey,
156
+ data: {},
157
+ poolAddresses: [this.params.vault],
158
+ },
159
+ ];
160
+ } catch (e) {
161
+ this.logger.error(
162
+ `Error_getPrices ${srcToken.symbol || srcToken.address}, ${
163
+ destToken.symbol || destToken.address
164
+ }, ${side}: `,
165
+ e,
166
+ );
167
+ return null;
168
+ }
159
169
  }
160
170
 
161
171
  // Returns estimated gas cost of calldata for this DEX in multiSwap
@@ -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];
@@ -25,9 +25,6 @@ export const WethConfig: DexConfigMap<DexParams> = {
25
25
  [Network.ZKEVM]: {
26
26
  poolGasCost: WethGasCost,
27
27
  },
28
- [Network.BASE]: {
29
- poolGasCost: WethGasCost,
30
- },
31
28
  },
32
29
  Wbnb: {
33
30
  [Network.BSC]: {
@@ -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',
@@ -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
  };