@instadapp/avocado-base 0.0.0-dev.6df86d5 → 0.0.0-dev.6ff6bcb

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