@instadapp/avocado-base 0.0.0-dev.bf2fef7 → 0.0.0-dev.c2f5e67

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