@instadapp/avocado-base 0.0.0-dev.4ee8c59 → 0.0.0-dev.608fae8

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.
@@ -6,9 +6,11 @@ export type { BalanceResolver } from "./BalanceResolver";
6
6
  export type { Erc20 } from "./Erc20";
7
7
  export type { Forwarder } from "./Forwarder";
8
8
  export type { GaslessWallet } from "./GaslessWallet";
9
+ export type { MultisigForwarder } from "./MultisigForwarder";
9
10
  export * as factories from "./factories";
10
11
  export { AvoFactoryProxy__factory } from "./factories/AvoFactoryProxy__factory";
11
12
  export { BalanceResolver__factory } from "./factories/BalanceResolver__factory";
12
13
  export { Erc20__factory } from "./factories/Erc20__factory";
13
14
  export { Forwarder__factory } from "./factories/Forwarder__factory";
14
15
  export { GaslessWallet__factory } from "./factories/GaslessWallet__factory";
16
+ export { MultisigForwarder__factory } from "./factories/MultisigForwarder__factory";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instadapp/avocado-base",
3
- "version": "0.0.0-dev.4ee8c59",
3
+ "version": "0.0.0-dev.608fae8",
4
4
  "type": "module",
5
5
  "main": "./nuxt.config.ts",
6
6
  "types": "global.d.ts",
@@ -20,11 +20,13 @@
20
20
  "nuxt-svgo": "^3.1.0",
21
21
  "rimraf": "^3.0.2",
22
22
  "typechain": "^8.1.1",
23
- "unplugin-vue-components": "^0.25.1"
23
+ "unplugin-vue-components": "^0.25.1",
24
+ "vue-tippy": "^6.0.0"
24
25
  },
25
26
  "dependencies": {
26
27
  "@vueuse/nuxt": "^10.2.0",
27
28
  "bignumber.js": "^9.1.1",
28
- "ethers": "^5.7.2"
29
+ "ethers": "^5.7.2",
30
+ "xxhashjs": "^0.2.2"
29
31
  }
30
32
  }
package/utils/helper.ts CHANGED
@@ -58,4 +58,5 @@ export function formatMultipleAddresses(addresses: string[], shorten = true) {
58
58
  const formattedString = formatter.format(addresses.map(i => shorten ? shortenHash(i) || '' : i))
59
59
 
60
60
  return formattedString
61
- }
61
+ }
62
+
package/utils/metadata.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ethers, utils } from "ethers";
2
- import { Forwarder__factory } from "../contracts";
2
+ import { Forwarder__factory, MultisigForwarder__factory } from "../contracts";
3
+ import { toBN } from "./bignumber";
3
4
 
4
5
  export const MetadataEnums = {
5
6
  "transfer": "transfer",
@@ -17,6 +18,7 @@ import { Forwarder__factory } from "../contracts";
17
18
  "add-signers": "add-signers",
18
19
  "remove-signers": "remove-signers",
19
20
  "change-threshold": "change-threshold",
21
+ "import": "import",
20
22
  } as const;
21
23
 
22
24
  const multiMetadataTypes = ["bytes[]"];
@@ -52,6 +54,7 @@ const actionMetadataTypes: Record<MetadataTypes, string[]> = {
52
54
  "gas-topup": ["uint256 amount", "address token", "address onBehalf"],
53
55
  upgrade: ["bytes32 version", "address walletImpl"],
54
56
  dapp: ["string name", "string url"],
57
+ "import": ["bytes32 protocol", "uint256 valueInUsd"],
55
58
  auth: ["address address", "uint256 chainId", "bool remove"],
56
59
  deploy: [],
57
60
  permit2: [
@@ -306,6 +309,24 @@ export const encodeRemoveSignersMetadata = (
306
309
  return single ? encodeMultipleActions(data) : data;
307
310
  };
308
311
 
312
+ export const encodeImportMetadata = (
313
+ protocol: string,
314
+ valueInUsd: string,
315
+ single = true
316
+ ) => {
317
+ const encodedData = ethers.utils.defaultAbiCoder.encode(
318
+ actionMetadataTypes["import"],
319
+ [protocol, valueInUsd]
320
+ );
321
+
322
+ const data = encodeMetadata({
323
+ type: MetadataEnums["import"],
324
+ encodedData,
325
+ });
326
+
327
+ return single ? encodeMultipleActions(data) : data;
328
+ };
329
+
309
330
  export const encodeAddSignersMetadata = (
310
331
  addresses: string[],
311
332
  single = true
@@ -346,8 +367,10 @@ export const decodeMetadata = (metadata: string) => {
346
367
  }
347
368
  };
348
369
 
370
+ const iface = Forwarder__factory.createInterface();
371
+ const ifaceMultisig = MultisigForwarder__factory.createInterface();
372
+
349
373
  const getMetadataFromData = (data: string) => {
350
- const iface = Forwarder__factory.createInterface();
351
374
  let metadata = "0x";
352
375
 
353
376
  if (data.startsWith("0x18e7f485")) {
@@ -367,28 +390,18 @@ const getMetadataFromData = (data: string) => {
367
390
  } else {
368
391
  metadata = executeDataV2.params_.metadata;
369
392
  }
370
- } else if (data.startsWith("0x85114d53")) {
371
- const executeDataV3 = iface.decodeFunctionData("executeV3", data);
372
- if (
373
- executeDataV3.params_.metadata === "0x" ||
374
- !executeDataV3.params_.metadata
375
- ) {
376
- return null;
377
- } else {
378
- metadata = executeDataV3.params_.metadata;
379
- }
380
393
  } else {
381
- const executeDataMultisigV3 = iface.decodeFunctionData(
382
- "executeMultisigV3",
394
+ const executeDataMultisig = ifaceMultisig.decodeFunctionData(
395
+ "executeV1",
383
396
  data
384
397
  );
385
398
  if (
386
- executeDataMultisigV3.params_.metadata === "0x" ||
387
- !executeDataMultisigV3.params_.metadata
399
+ executeDataMultisig.params_.metadata === "0x" ||
400
+ !executeDataMultisig.params_.metadata
388
401
  ) {
389
402
  return null;
390
403
  } else {
391
- metadata = executeDataMultisigV3.params_.metadata;
404
+ metadata = executeDataMultisig.params_.metadata;
392
405
  }
393
406
  }
394
407
 
@@ -397,6 +410,11 @@ const getMetadataFromData = (data: string) => {
397
410
 
398
411
 
399
412
  const typesPayload: IPayload = {
413
+ import: (data, type) => ({
414
+ type,
415
+ protocol: utils.parseBytes32String(data.protocol || ""),
416
+ valueInUsd: toBN(data.valueInUsd).toFixed(),
417
+ }),
400
418
  transfer: (data, type) => ({
401
419
  type,
402
420
  token: data.token,
package/utils/network.ts CHANGED
@@ -1,30 +1,20 @@
1
1
  import { ethers } from "ethers";
2
+ import {
3
+ AVO_PROD_CHAIN_NAME,
4
+ AVO_PROD_CHAIN_ID,
5
+ AVO_PROD_RPC_URL,
6
+ AVO_PROD_EXPLORER_URL,
7
+ AVO_STAGING_CHAIN_NAME,
8
+ AVO_STAGING_CHAIN_ID,
9
+ AVO_STAGING_RPC_URL,
10
+ AVO_STAGING_EXPLORER_URL,
11
+ } from "./avocado";
2
12
 
3
- export const bridgeDisabledNetworks = [1101];
13
+ export const bridgeDisabledNetworks = [];
14
+
15
+ export const networksSimulationNotSupported = [1313161554, 1101];
4
16
 
5
17
  export const networks: Network[] = [
6
- {
7
- name: "Ethereum",
8
- debankName: "eth",
9
- ankrName: "eth",
10
- zerionName: "ethereum",
11
- chainId: 1,
12
- explorerUrl: "https://etherscan.io",
13
- color: "#5D5FEF",
14
- get serverRpcUrl() {
15
- return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
16
- },
17
- balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
18
- usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
19
- params: {
20
- rpcUrls: ["https://rpc.ankr.com/eth"],
21
- nativeCurrency: {
22
- name: "Ethereum",
23
- symbol: "ETH",
24
- decimals: 18,
25
- },
26
- },
27
- },
28
18
  {
29
19
  name: "Polygon",
30
20
  debankName: "matic",
@@ -35,6 +25,7 @@ export const networks: Network[] = [
35
25
  balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
36
26
  usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
37
27
  explorerUrl: "https://polygonscan.com",
28
+ apiURL: "https://api.polygonscan.com",
38
29
  get serverRpcUrl() {
39
30
  return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
40
31
  },
@@ -58,6 +49,7 @@ export const networks: Network[] = [
58
49
  usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
59
50
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
60
51
  explorerUrl: "https://arbiscan.io",
52
+ apiURL: "https://api.arbiscan.io",
61
53
  get serverRpcUrl() {
62
54
  return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
63
55
  },
@@ -71,6 +63,51 @@ export const networks: Network[] = [
71
63
  rpcUrls: ["https://arb1.arbitrum.io/rpc"],
72
64
  },
73
65
  },
66
+ {
67
+ name: "Ethereum",
68
+ debankName: "eth",
69
+ ankrName: "eth",
70
+ zerionName: "ethereum",
71
+ chainId: 1,
72
+ explorerUrl: "https://etherscan.io",
73
+ apiURL: "https://api.etherscan.io",
74
+ color: "#5D5FEF",
75
+ get serverRpcUrl() {
76
+ return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
77
+ },
78
+ balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
79
+ usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
80
+ params: {
81
+ rpcUrls: ["https://rpc.ankr.com/eth"],
82
+ nativeCurrency: {
83
+ name: "Ethereum",
84
+ symbol: "ETH",
85
+ decimals: 18,
86
+ },
87
+ },
88
+ },
89
+ {
90
+ name: "Base",
91
+ chainId: 8453,
92
+ color: "#1E2024",
93
+ ankrName: "base",
94
+ explorerUrl: "https://basescan.org",
95
+ apiURL: "https://api.basescan.org",
96
+ get serverRpcUrl() {
97
+ return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
98
+ },
99
+ usdcAddress: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA",
100
+ balanceResolverAddress: "0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C",
101
+ params: {
102
+ rpcUrls: ["https://rpc.ankr.com/base"],
103
+ chainName: "Base",
104
+ nativeCurrency: {
105
+ name: "Ethereum",
106
+ symbol: "ETH",
107
+ decimals: 18,
108
+ },
109
+ },
110
+ },
74
111
  {
75
112
  name: "Optimism",
76
113
  debankName: "op",
@@ -78,6 +115,7 @@ export const networks: Network[] = [
78
115
  zerionName: "optimism",
79
116
  color: "#FF0420",
80
117
  chainId: 10,
118
+ apiURL: "https://api-optimistic.etherscan.io",
81
119
  usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
82
120
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
83
121
  explorerUrl: "https://optimistic.etherscan.io",
@@ -95,26 +133,25 @@ export const networks: Network[] = [
95
133
  },
96
134
  },
97
135
  {
98
- name: "Avalanche",
99
- debankName: "avax",
100
- ankrName: "avalanche",
101
- zerionName: "avalanche",
102
- color: "#EB5757",
103
- chainId: 43114,
104
- usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
105
- balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
106
- explorerUrl: "https://snowtrace.io",
136
+ name: "Polygon zkEVM",
137
+ chainId: 1101,
138
+ color: "#8544f6",
139
+ ankrName: "polygon_zkevm",
140
+ explorerUrl: "https://zkevm.polygonscan.com",
141
+ apiURL: "https://api-zkevm.polygonscan.com",
142
+ balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
143
+ usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
107
144
  get serverRpcUrl() {
108
- return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
145
+ return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
109
146
  },
110
147
  params: {
111
- chainName: "Avalanche Network",
148
+ chainName: "polygon zkEVM",
149
+ rpcUrls: ["https://zkevm-rpc.com"],
112
150
  nativeCurrency: {
113
- name: "Avalanche",
114
- symbol: "AVAX",
151
+ name: "Ethereum",
152
+ symbol: "ETH",
115
153
  decimals: 18,
116
154
  },
117
- rpcUrls: ["https://rpc.ankr.com/avalanche"],
118
155
  },
119
156
  },
120
157
  {
@@ -125,6 +162,7 @@ export const networks: Network[] = [
125
162
  color: "#F3BA2F",
126
163
  chainId: 56,
127
164
  explorerUrl: "https://bscscan.com",
165
+ apiURL: "https://api.bscscan.com",
128
166
  usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
129
167
  balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
130
168
  get serverRpcUrl() {
@@ -140,14 +178,62 @@ export const networks: Network[] = [
140
178
  },
141
179
  },
142
180
  },
181
+ {
182
+ name: "Avalanche",
183
+ debankName: "avax",
184
+ ankrName: "avalanche",
185
+ zerionName: "avalanche",
186
+ color: "#EB5757",
187
+ chainId: 43114,
188
+ usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
189
+ balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
190
+ explorerUrl: "https://snowtrace.io",
191
+ apiURL: "https://api.snowtrace.io",
192
+ get serverRpcUrl() {
193
+ return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
194
+ },
195
+ params: {
196
+ chainName: "Avalanche Network",
197
+ nativeCurrency: {
198
+ name: "Avalanche",
199
+ symbol: "AVAX",
200
+ decimals: 18,
201
+ },
202
+ rpcUrls: ["https://rpc.ankr.com/avalanche"],
203
+ },
204
+ },
205
+ {
206
+ name: "Fantom",
207
+ chainId: 250,
208
+ zerionName: "fantom",
209
+ explorerUrl: "https://ftmscan.com",
210
+ ankrName: "fantom",
211
+ color: "#1969ff",
212
+ get serverRpcUrl() {
213
+ return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
214
+ },
215
+ usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
216
+ balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
217
+ params: {
218
+ rpcUrls: ["https://rpc.ankr.com/fantom"],
219
+ chainName: "Fantom",
220
+ nativeCurrency: {
221
+ name: "Fantom",
222
+ symbol: "FTM",
223
+ decimals: 18,
224
+ },
225
+ },
226
+ },
143
227
  {
144
228
  name: "Gnosis",
145
229
  debankName: "xdai",
146
230
  zerionName: "xdai",
147
231
  color: "#04795C",
232
+ ankrName: "gnosis",
148
233
  chainId: 100,
149
234
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
150
235
  explorerUrl: "https://gnosisscan.io",
236
+ apiURL: "https://api.gnosisscan.io",
151
237
  usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
152
238
  get serverRpcUrl() {
153
239
  return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
@@ -162,26 +248,6 @@ export const networks: Network[] = [
162
248
  },
163
249
  },
164
250
  },
165
- {
166
- name: "Polygon zkEVM",
167
- chainId: 1101,
168
- color: "#8544f6",
169
- explorerUrl: "https://zkevm.polygonscan.com",
170
- balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
171
- usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
172
- get serverRpcUrl() {
173
- return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
174
- },
175
- params: {
176
- chainName: "polygon zkEVM",
177
- rpcUrls: ["https://zkevm-rpc.com"],
178
- nativeCurrency: {
179
- name: "Ethereum",
180
- symbol: "ETH",
181
- decimals: 18,
182
- },
183
- },
184
- },
185
251
  {
186
252
  name: "Aurora",
187
253
  chainId: 1313161554,
@@ -204,46 +270,25 @@ export const networks: Network[] = [
204
270
  },
205
271
  },
206
272
  {
207
- name: "Fantom",
208
- chainId: 250,
209
- zerionName: "fantom",
210
- explorerUrl: "https://ftmscan.com",
211
- ankrName: "fantom",
212
- color: "#1969ff",
273
+ name: "Fuse",
274
+ chainId: 122,
275
+ zerionName: "fuse",
276
+ color: "#78d64b",
277
+ explorerUrl: "https://explorer.fuse.io",
213
278
  get serverRpcUrl() {
214
- return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
279
+ return process.env?.FUSE_RPC_URL || this.params.rpcUrls[0];
215
280
  },
216
- usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
217
- balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
281
+ usdcAddress: "",
282
+ balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
218
283
  params: {
219
- rpcUrls: ["https://rpc.ankr.com/fantom"],
220
- chainName: "Fantom",
284
+ rpcUrls: ["https://fuse-mainnet.chainstacklabs.com"],
285
+ chainName: "Fuse",
221
286
  nativeCurrency: {
222
- name: "Fantom",
223
- symbol: "FTM",
224
287
  decimals: 18,
288
+ name: "Fuse",
289
+ symbol: "fuse",
225
290
  },
226
291
  },
227
- },
228
- {
229
- name: 'Base',
230
- chainId: 8453,
231
- color: '#1E2024',
232
- explorerUrl: 'https://basescan.org',
233
- get serverRpcUrl() {
234
- return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
235
- },
236
- usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
237
- balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
238
- params: {
239
- rpcUrls: ['https://rpc.ankr.com/base'],
240
- chainName: "Base",
241
- nativeCurrency: {
242
- name: "Ethereum",
243
- symbol: "ETH",
244
- decimals: 18,
245
- },
246
- }
247
292
  },
248
293
  {
249
294
  name: AVO_PROD_CHAIN_NAME,
@@ -288,19 +333,22 @@ export const networks: Network[] = [
288
333
  ];
289
334
 
290
335
  export const chainUsdcAddresses = [
291
- { chainId: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },
292
- { chainId: 10, address: '0x7f5c764cbc14f9669b88837ca1490cca17c31607' },
293
- { chainId: 56, address: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d' },
294
- { chainId: 100, address: '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83' },
295
- { chainId: 137, address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' },
296
- { chainId: 250, address: '0x04068da6c83afcfa0e13ba15a6696662335d5b75' },
297
- { chainId: 42161, address: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8' },
298
- { chainId: 42161, address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831' },
299
- { chainId: 43114, address: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e' },
300
- { chainId: 43114, address: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664' },
301
- { chainId: 1101, address: '0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035' },
302
- { chainId: 1313161554, address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802' },
303
- { chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'}
336
+ { chainId: 1, address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" },
337
+ { chainId: 10, address: "0x7f5c764cbc14f9669b88837ca1490cca17c31607" },
338
+ { chainId: 56, address: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d" },
339
+ { chainId: 100, address: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83" },
340
+ { chainId: 137, address: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174" },
341
+ { chainId: 250, address: "0x04068da6c83afcfa0e13ba15a6696662335d5b75" },
342
+ { chainId: 42161, address: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8" },
343
+ { chainId: 42161, address: "0xaf88d065e77c8cc2239327c5edb3a432268e5831" },
344
+ { chainId: 43114, address: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e" },
345
+ { chainId: 43114, address: "0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664" },
346
+ { chainId: 1101, address: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035" },
347
+ {
348
+ chainId: 1313161554,
349
+ address: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
350
+ },
351
+ { chainId: 8453, address: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA" },
304
352
  ];
305
353
 
306
354
  export const getNetworkByChainId = (
package/utils/utils.d.ts CHANGED
@@ -12,8 +12,9 @@ declare global {
12
12
  | 634
13
13
  | 1313161554
14
14
  | 8453
15
+ | 122
15
16
  | 63400;
16
-
17
+
17
18
  type ISlackMessageType = "danger" | "error" | "success" | "banner";
18
19
 
19
20
  type MetadataTypes = keyof typeof MetadataEnums;
@@ -34,6 +35,7 @@ declare global {
34
35
  balanceResolverAddress?: string;
35
36
  usdcAddress: string;
36
37
  explorerUrl: string;
38
+ apiURL?: string;
37
39
  params: {
38
40
  chainName?: string;
39
41
  iconUrls?: string[];
@@ -109,7 +111,7 @@ declare global {
109
111
  };
110
112
 
111
113
  type MetadataProps = {
112
- type: MetadataTypes,
114
+ type: MetadataTypes;
113
115
  encodedData: string;
114
116
  version?: string;
115
117
  };
@@ -125,8 +127,6 @@ declare global {
125
127
  coingecko_id: string;
126
128
  sparkline_price_7d: number[];
127
129
  }
128
-
129
130
  }
130
131
 
131
- export { }
132
-
132
+ export {};