@instadapp/avocado-base 0.0.0-dev.fd1507c → 0.0.0-dev.ff927bc

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 (42) hide show
  1. package/.github/workflows/npm-publish-dev.yml +2 -5
  2. package/abi/multisigForwarder.json +697 -0
  3. package/app.vue +7 -0
  4. package/assets/images/icons/change-threshold.svg +4 -0
  5. package/assets/images/icons/cross-transfer.svg +7 -0
  6. package/assets/images/icons/dapp.svg +4 -0
  7. package/assets/images/icons/deploy.svg +12 -0
  8. package/assets/images/icons/gas.svg +12 -5
  9. package/assets/images/icons/hammer.svg +5 -0
  10. package/assets/images/icons/info-2.svg +12 -0
  11. package/assets/images/icons/instadapp-pro.svg +4 -0
  12. package/assets/images/icons/multi-send.svg +7 -0
  13. package/assets/images/icons/permit-sign.svg +11 -0
  14. package/assets/images/icons/plus-circle.svg +6 -0
  15. package/assets/images/icons/refresh.svg +4 -4
  16. package/assets/images/icons/reject-proposal.svg +6 -0
  17. package/assets/images/icons/transfer.svg +5 -0
  18. package/assets/images/icons/trash-2.svg +8 -0
  19. package/assets/images/icons/upgrade.svg +4 -0
  20. package/components/ActionLogo.vue +40 -0
  21. package/components/ActionMetadata.vue +45 -17
  22. package/components/AuthorityAvatar.vue +37 -0
  23. package/components/ChainLogo.vue +14 -563
  24. package/components/CopyClipboard.vue +58 -0
  25. package/components/metadata/Bridge.vue +30 -8
  26. package/components/metadata/CrossTransfer.vue +19 -5
  27. package/components/metadata/GasTopup.vue +10 -2
  28. package/components/metadata/Permit2.vue +6 -1
  29. package/components/metadata/Signers.vue +66 -0
  30. package/components/metadata/Swap.vue +26 -25
  31. package/components/metadata/Transfer.vue +14 -7
  32. package/contracts/MultisigForwarder.ts +859 -0
  33. package/contracts/factories/MultisigForwarder__factory.ts +721 -0
  34. package/contracts/factories/index.ts +1 -0
  35. package/contracts/index.ts +2 -0
  36. package/package.json +14 -9
  37. package/utils/formatter.ts +2 -2
  38. package/utils/helper.ts +8 -0
  39. package/utils/metadata.ts +345 -191
  40. package/utils/network.ts +335 -74
  41. package/utils/services.ts +8 -1
  42. package/utils/utils.d.ts +136 -126
package/utils/network.ts CHANGED
@@ -1,30 +1,70 @@
1
1
  import { ethers } from "ethers";
2
+ import {
3
+ polygon,
4
+ arbitrum,
5
+ mainnet,
6
+ base,
7
+ optimism,
8
+ polygonZkEvm,
9
+ bsc,
10
+ avalanche,
11
+ fantom,
12
+ gnosis,
13
+ aurora,
14
+ fuse,
15
+ scroll,
16
+ opBNB,
17
+ mode,
18
+ } from "viem/chains";
19
+ import {
20
+ AVO_PROD_CHAIN_NAME,
21
+ AVO_PROD_CHAIN_ID,
22
+ AVO_PROD_RPC_URL,
23
+ AVO_PROD_EXPLORER_URL,
24
+ AVO_STAGING_CHAIN_NAME,
25
+ AVO_STAGING_CHAIN_ID,
26
+ AVO_STAGING_RPC_URL,
27
+ AVO_STAGING_EXPLORER_URL,
28
+ } from "./avocado";
29
+ import { defineChain } from "viem";
2
30
 
3
- export const bridgeDisabledNetworks = [1101];
31
+ export const bridgeDisabledNetworks = [];
4
32
 
5
- 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
- },
33
+ export const networksSimulationNotSupported = [1313161554, 1101];
34
+
35
+ const avocado = defineChain({
36
+ id: AVO_PROD_CHAIN_ID,
37
+ name: AVO_PROD_CHAIN_NAME,
38
+ nativeCurrency: {
39
+ name: "Avocado",
40
+ symbol: "USDC",
41
+ decimals: 18,
42
+ },
43
+ rpcUrls: {
44
+ default: { http: [AVO_PROD_RPC_URL] },
45
+ },
46
+ blockExplorers: {
47
+ default: { name: "Avoscan", url: AVO_PROD_EXPLORER_URL },
48
+ },
49
+ });
50
+
51
+ const avocadoStaging = defineChain({
52
+ id: AVO_STAGING_CHAIN_ID,
53
+ name: AVO_STAGING_CHAIN_NAME,
54
+ nativeCurrency: {
55
+ name: "Avocado",
56
+ symbol: "USDC",
57
+ decimals: 18,
27
58
  },
59
+ rpcUrls: {
60
+ default: { http: [AVO_STAGING_RPC_URL] },
61
+ },
62
+ blockExplorers: {
63
+ default: { name: "Avoscan", url: AVO_STAGING_EXPLORER_URL },
64
+ },
65
+ });
66
+
67
+ export const networks: Network[] = [
28
68
  {
29
69
  name: "Polygon",
30
70
  debankName: "matic",
@@ -32,9 +72,13 @@ export const networks: Network[] = [
32
72
  zerionName: "polygon",
33
73
  color: "#7A4ADD",
34
74
  chainId: 137,
75
+ viemChain: polygon,
35
76
  balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
36
77
  usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
37
78
  explorerUrl: "https://polygonscan.com",
79
+ apiURL: "https://api.polygonscan.com",
80
+ fakeTransactionHash:
81
+ "0x906c551abd5873a428505b6530ac14d91367820706c7ee525f6d7313265d1c92",
38
82
  get serverRpcUrl() {
39
83
  return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
40
84
  },
@@ -53,11 +97,15 @@ export const networks: Network[] = [
53
97
  debankName: "arb",
54
98
  ankrName: "arbitrum",
55
99
  zerionName: "arbitrum",
100
+ viemChain: arbitrum,
56
101
  color: "#2D374B",
57
102
  chainId: 42161,
58
103
  usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
59
104
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
105
+ fakeTransactionHash:
106
+ "0x9fa291c3b09d31f19b1fa5dd05f30169d1364036d5f7c14b026410bc07bd8843",
60
107
  explorerUrl: "https://arbiscan.io",
108
+ apiURL: "https://api.arbiscan.io",
61
109
  get serverRpcUrl() {
62
110
  return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
63
111
  },
@@ -71,15 +119,70 @@ export const networks: Network[] = [
71
119
  rpcUrls: ["https://arb1.arbitrum.io/rpc"],
72
120
  },
73
121
  },
122
+ {
123
+ name: "Ethereum",
124
+ debankName: "eth",
125
+ ankrName: "eth",
126
+ zerionName: "ethereum",
127
+ viemChain: mainnet,
128
+ chainId: 1,
129
+ explorerUrl: "https://etherscan.io",
130
+ fakeTransactionHash:
131
+ "0x13232dd32cef2f641ead890a507710c96560c8c9c3d5fab6facb5ec563c49433",
132
+ apiURL: "https://api.etherscan.io",
133
+ color: "#5D5FEF",
134
+ get serverRpcUrl() {
135
+ return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
136
+ },
137
+ balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
138
+ usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
139
+ params: {
140
+ rpcUrls: ["https://rpc.ankr.com/eth"],
141
+ nativeCurrency: {
142
+ name: "Ethereum",
143
+ symbol: "ETH",
144
+ decimals: 18,
145
+ },
146
+ },
147
+ },
148
+ {
149
+ name: "Base",
150
+ chainId: 8453,
151
+ color: "#1E2024",
152
+ ankrName: "base",
153
+ viemChain: base,
154
+ explorerUrl: "https://basescan.org",
155
+ fakeTransactionHash:
156
+ "0xf7833d80da33730c4fc5d4c64151f0eaa64c0c0535be022af0228a44cc4e9c8e",
157
+ apiURL: "https://api.basescan.org",
158
+ get serverRpcUrl() {
159
+ return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
160
+ },
161
+ usdcAddress: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA",
162
+ balanceResolverAddress: "0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C",
163
+ params: {
164
+ rpcUrls: ["https://rpc.ankr.com/base"],
165
+ chainName: "Base",
166
+ nativeCurrency: {
167
+ name: "Ethereum",
168
+ symbol: "ETH",
169
+ decimals: 18,
170
+ },
171
+ },
172
+ },
74
173
  {
75
174
  name: "Optimism",
76
175
  debankName: "op",
77
176
  ankrName: "optimism",
78
177
  zerionName: "optimism",
79
178
  color: "#FF0420",
179
+ viemChain: optimism,
80
180
  chainId: 10,
181
+ apiURL: "https://api-optimistic.etherscan.io",
81
182
  usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
82
183
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
184
+ fakeTransactionHash:
185
+ "0xee7311d68059732b05088f2144dfec6c7a4f5fd0433eb85306afcd6bdf17cebc",
83
186
  explorerUrl: "https://optimistic.etherscan.io",
84
187
  get serverRpcUrl() {
85
188
  return process.env?.OPTIMISM_RPC_URL || this.params.rpcUrls[0];
@@ -95,26 +198,28 @@ export const networks: Network[] = [
95
198
  },
96
199
  },
97
200
  {
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",
201
+ name: "Polygon zkEVM",
202
+ chainId: 1101,
203
+ color: "#8544f6",
204
+ ankrName: "polygon_zkevm",
205
+ viemChain: polygonZkEvm,
206
+ explorerUrl: "https://zkevm.polygonscan.com",
207
+ apiURL: "https://api-zkevm.polygonscan.com",
208
+ balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
209
+ fakeTransactionHash:
210
+ "0x1077130463ade91ad4e9c43c3195298e26a99970975238128912490eea12bf41",
211
+ usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
107
212
  get serverRpcUrl() {
108
- return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
213
+ return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
109
214
  },
110
215
  params: {
111
- chainName: "Avalanche Network",
216
+ chainName: "polygon zkEVM",
217
+ rpcUrls: ["https://zkevm-rpc.com"],
112
218
  nativeCurrency: {
113
- name: "Avalanche",
114
- symbol: "AVAX",
219
+ name: "Ethereum",
220
+ symbol: "ETH",
115
221
  decimals: 18,
116
222
  },
117
- rpcUrls: ["https://rpc.ankr.com/avalanche"],
118
223
  },
119
224
  },
120
225
  {
@@ -125,6 +230,10 @@ export const networks: Network[] = [
125
230
  color: "#F3BA2F",
126
231
  chainId: 56,
127
232
  explorerUrl: "https://bscscan.com",
233
+ viemChain: bsc,
234
+ fakeTransactionHash:
235
+ "0x897d54bf8e492f840bd4d8f1e743bfcab8226ab4d5a899e47ee433dcd6d6abf7",
236
+ apiURL: "https://api.bscscan.com",
128
237
  usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
129
238
  balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
130
239
  get serverRpcUrl() {
@@ -140,14 +249,71 @@ export const networks: Network[] = [
140
249
  },
141
250
  },
142
251
  },
252
+ {
253
+ name: "Avalanche",
254
+ debankName: "avax",
255
+ ankrName: "avalanche",
256
+ zerionName: "avalanche",
257
+ color: "#EB5757",
258
+ viemChain: avalanche,
259
+ chainId: 43114,
260
+ usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
261
+ balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
262
+ explorerUrl: "https://snowtrace.io",
263
+ fakeTransactionHash:
264
+ "0x233aac7402558dd4e23f938a50f983e67f5c9604233981c7ac74e63737b8294e",
265
+ apiURL: "https://api.snowtrace.io",
266
+ get serverRpcUrl() {
267
+ return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
268
+ },
269
+ params: {
270
+ chainName: "Avalanche Network",
271
+ nativeCurrency: {
272
+ name: "Avalanche",
273
+ symbol: "AVAX",
274
+ decimals: 18,
275
+ },
276
+ rpcUrls: ["https://rpc.ankr.com/avalanche"],
277
+ },
278
+ },
279
+ {
280
+ name: "Fantom",
281
+ chainId: 250,
282
+ zerionName: "fantom",
283
+ explorerUrl: "https://ftmscan.com",
284
+ ankrName: "fantom",
285
+ color: "#1969ff",
286
+ viemChain: fantom,
287
+ get serverRpcUrl() {
288
+ return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
289
+ },
290
+ usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
291
+ balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
292
+ fakeTransactionHash:
293
+ "0x1e9a8405d660172314124e06896212c0786d7fb1550b89410d4bc87e9e8054e4",
294
+ params: {
295
+ rpcUrls: ["https://rpc.ankr.com/fantom"],
296
+ chainName: "Fantom",
297
+ nativeCurrency: {
298
+ name: "Fantom",
299
+ symbol: "FTM",
300
+ decimals: 18,
301
+ },
302
+ },
303
+ },
143
304
  {
144
305
  name: "Gnosis",
145
306
  debankName: "xdai",
146
307
  zerionName: "xdai",
147
308
  color: "#04795C",
309
+ ankrName: "gnosis",
310
+ viemChain: gnosis,
148
311
  chainId: 100,
149
312
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
150
313
  explorerUrl: "https://gnosisscan.io",
314
+ fakeTransactionHash:
315
+ "0x1513033806310a2c3b29f2276f8aa7388461b0ef9f8499c297e68c12187c179b",
316
+ apiURL: "https://api.gnosisscan.io",
151
317
  usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
152
318
  get serverRpcUrl() {
153
319
  return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
@@ -162,33 +328,15 @@ export const networks: Network[] = [
162
328
  },
163
329
  },
164
330
  },
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
-
179
- nativeCurrency: {
180
- name: "Ethereum",
181
- symbol: "ETH",
182
- decimals: 18,
183
- },
184
- },
185
- },
186
331
  {
187
332
  name: "Aurora",
188
333
  chainId: 1313161554,
189
334
  zerionName: "aurora",
190
335
  color: "#78d64b",
336
+ viemChain: aurora,
191
337
  explorerUrl: "https://explorer.mainnet.aurora.dev",
338
+ fakeTransactionHash:
339
+ "0x0923401c5a80c39a5cd57c098a6c4729edbefd0db6894def7d349493f4ff3ec6",
192
340
  get serverRpcUrl() {
193
341
  return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
194
342
  },
@@ -205,32 +353,118 @@ export const networks: Network[] = [
205
353
  },
206
354
  },
207
355
  {
208
- name: "Fantom",
209
- chainId: 250,
210
- zerionName: "fantom",
211
- explorerUrl: "https://ftmscan.com",
212
- ankrName: "fantom",
213
- color: "#1969ff",
356
+ name: "Fuse",
357
+ chainId: 122,
358
+ zerionName: "fuse",
359
+ color: "#78d64b",
360
+ explorerUrl: "https://explorer.fuse.io",
361
+ viemChain: fuse,
362
+ fakeTransactionHash:
363
+ "0xf22a8031de9b978a57c728e18c6b54633356c39db4d0466e53b9b7c3ee7f8def",
214
364
  get serverRpcUrl() {
215
- return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
365
+ return process.env?.FUSE_RPC_URL || this.params.rpcUrls[0];
216
366
  },
217
- usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
218
- balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
367
+ usdcAddress: "",
368
+ balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
219
369
  params: {
220
- rpcUrls: ["https://rpc.ankr.com/fantom"],
221
- chainName: "Fantom",
370
+ rpcUrls: ["https://fuse-mainnet.chainstacklabs.com"],
371
+ chainName: "Fuse",
222
372
  nativeCurrency: {
223
- name: "Fantom",
224
- symbol: "FTM",
373
+ decimals: 18,
374
+ name: "Fuse",
375
+ symbol: "fuse",
376
+ },
377
+ },
378
+ },
379
+ {
380
+ name: "Scroll",
381
+ chainId: 534352,
382
+ color: "#78d64b",
383
+ ankrName: 'scroll',
384
+ explorerUrl: "https://scrollscan.com",
385
+ viemChain: scroll,
386
+ fakeTransactionHash:
387
+ "0x6bf297c414264fc8cddd47224632b4426a02138df2f50fe891eca87f6aefea01",
388
+ get serverRpcUrl() {
389
+ return process.env?.SCROLL_RPC_URL || this.params.rpcUrls[0];
390
+ },
391
+ params: {
392
+ rpcUrls: ["https://rpc.scroll.io"],
393
+ chainName: "Scroll",
394
+ nativeCurrency: {
395
+ name: "Ethereum",
396
+ symbol: "ETH",
397
+ decimals: 18,
398
+ },
399
+ },
400
+ },
401
+ {
402
+ name: "opBNB",
403
+ chainId: 204,
404
+ color: "#78d64b",
405
+ explorerUrl: "https://opbnbscan.com",
406
+ viemChain: opBNB,
407
+ fakeTransactionHash:
408
+ "0xb9438a3eae61442bc7d419d79930370ce09ac0f46e0695025751e3bfe1a931e7",
409
+ get serverRpcUrl() {
410
+ return process.env?.OPBNB_RPC_URL || this.params.rpcUrls[0];
411
+ },
412
+ params: {
413
+ rpcUrls: ["https://opbnb-mainnet-rpc.bnbchain.org"],
414
+ chainName: "opBNB",
415
+ nativeCurrency: {
416
+ name: "BNB",
417
+ symbol: "BNB",
225
418
  decimals: 18,
226
419
  },
227
420
  },
228
421
  },
422
+ {
423
+ chainId: 34443,
424
+ name: "Mode",
425
+ color: "#d7ff00",
426
+ explorerUrl: 'https://explorer.mode.network',
427
+ fakeTransactionHash: '0xb58002db3481f2c51855a91280ec940d0bebec075c4b362b9f90c21a2b14edbe',
428
+ params: {
429
+ rpcUrls: ["https://1rpc.io/mode"],
430
+ chainName: "Mode",
431
+ nativeCurrency: {
432
+ name: "Ethereum",
433
+ symbol: "ETH",
434
+ decimals: 18,
435
+ }
436
+ },
437
+ get serverRpcUrl() {
438
+ return process.env?.MODE_RPC_URL || this.params.rpcUrls[0];
439
+ },
440
+ viemChain: mode,
441
+ },
442
+ // {
443
+ // name: "Manta Pacific",
444
+ // chainId: 169,
445
+ // explorerUrl: "https://pacific-explorer.manta.network",
446
+ // params: {
447
+ // rpcUrls: ["https://pacific-rpc.manta.network/http"],
448
+ // chainName: "Manta Pacific",
449
+ // nativeCurrency: {
450
+ // name: "Ethereum",
451
+ // symbol: "ETH",
452
+ // decimals: 18,
453
+ // },
454
+ // },
455
+ // color: "#78d64b",
456
+ // fakeTransactionHash: "0x3fB128aA5AC254C8539996B11C587E521AE0d3ab",
457
+ // get serverRpcUrl() {
458
+ // return process.env?.MANTA_RPC_URL || this.params.rpcUrls[0];
459
+ // },
460
+ // },
229
461
  {
230
462
  name: AVO_PROD_CHAIN_NAME,
231
463
  chainId: AVO_PROD_CHAIN_ID,
232
464
  isAvocado: true,
233
465
  balanceResolverAddress: "",
466
+ fakeTransactionHash: "",
467
+ viemChain: avocado,
234
468
  color: "#16A34A",
235
469
  usdcAddress: "",
236
470
  serverRpcUrl: AVO_PROD_RPC_URL,
@@ -252,6 +486,8 @@ export const networks: Network[] = [
252
486
  serverRpcUrl: AVO_STAGING_RPC_URL,
253
487
  color: "#16A34A",
254
488
  explorerUrl: AVO_STAGING_EXPLORER_URL,
489
+ viemChain: avocadoStaging,
490
+ fakeTransactionHash: "",
255
491
  isAvocado: true,
256
492
  balanceResolverAddress: "",
257
493
  usdcAddress: "",
@@ -268,6 +504,26 @@ export const networks: Network[] = [
268
504
  },
269
505
  ];
270
506
 
507
+ export const chainUsdcAddresses = [
508
+ { chainId: 1, address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" },
509
+ { chainId: 10, address: "0x7f5c764cbc14f9669b88837ca1490cca17c31607" },
510
+ { chainId: 56, address: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d" },
511
+ { chainId: 100, address: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83" },
512
+ { chainId: 137, address: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174" },
513
+ { chainId: 137, address: "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359" },
514
+ { chainId: 250, address: "0x04068da6c83afcfa0e13ba15a6696662335d5b75" },
515
+ { chainId: 42161, address: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8" },
516
+ { chainId: 42161, address: "0xaf88d065e77c8cc2239327c5edb3a432268e5831" },
517
+ { chainId: 43114, address: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e" },
518
+ { chainId: 43114, address: "0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664" },
519
+ { chainId: 1101, address: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035" },
520
+ {
521
+ chainId: 1313161554,
522
+ address: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
523
+ },
524
+ { chainId: 8453, address: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA" },
525
+ ];
526
+
271
527
  export const getNetworkByChainId = (
272
528
  chainId: ChainId | number | string
273
529
  ): Network => {
@@ -280,12 +536,16 @@ export const availableNetworks = networks.filter(
280
536
 
281
537
  export const chainIdToName = (chainId: ChainId | number | string) => {
282
538
  const network = getNetworkByChainId(chainId);
283
- return network.name;
539
+ return network?.name;
284
540
  };
285
541
 
286
542
  export const getRpcURLByChainId = (chainId: ChainId | number | string) => {
287
- const network = getNetworkByChainId(chainId);
288
- return network.params.rpcUrls[0];
543
+ try {
544
+ const network = getNetworkByChainId(chainId);
545
+ return network.params.rpcUrls[0];
546
+ } catch (e) {
547
+ return "";
548
+ }
289
549
  };
290
550
 
291
551
  export const RPCMap = networks.reduce((acc, network) => {
@@ -327,5 +587,6 @@ export const getExplorerUrl = (
327
587
  suffix: `/${string}` = "/"
328
588
  ) => {
329
589
  const network = getNetworkByChainId(chainId);
590
+ if (!network) return "";
330
591
  return `${network.explorerUrl}${suffix}`;
331
592
  };
package/utils/services.ts CHANGED
@@ -1,8 +1,15 @@
1
1
  export const fetchTokenByAddress = async (
2
2
  address: string,
3
- chainId: string | number
3
+ chainId: string | number,
4
+ tokens?: ITokenPrice[]
4
5
  ) => {
5
6
  if (!address || !chainId) return null;
7
+
8
+ if (tokens?.length) {
9
+ const token = tokens.find((token) => token.address?.toLocaleLowerCase() === address?.toLocaleLowerCase() && token.chain_id == chainId);
10
+ if (token) return token;
11
+ }
12
+
6
13
  const [token] = (await $fetch(`${blockQueryURL}/${chainId}/tokens`, {
7
14
  params: {
8
15
  sparkline: false,