@instadapp/avocado-base 0.0.0-dev.261e34f → 0.0.0-dev.27376ed

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 (85) 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/sun.svg +3 -0
  52. package/assets/images/icons/transfer.svg +5 -0
  53. package/assets/images/icons/trash-2.svg +8 -0
  54. package/assets/images/icons/upgrade.svg +4 -0
  55. package/assets/images/icons/wave.svg +214 -0
  56. package/assets/images/icons/x.svg +5 -0
  57. package/components/ActionLogo.vue +40 -0
  58. package/components/ActionMetadata.vue +78 -0
  59. package/components/AuthorityAvatar.vue +37 -0
  60. package/components/ChainLogo.vue +14 -563
  61. package/components/CopyClipboard.vue +64 -0
  62. package/components/metadata/Bridge.vue +59 -0
  63. package/components/metadata/CrossTransfer.vue +79 -0
  64. package/components/metadata/GasTopup.vue +39 -0
  65. package/components/metadata/Permit2.vue +42 -0
  66. package/components/metadata/Signers.vue +63 -0
  67. package/components/metadata/Swap.vue +67 -0
  68. package/components/metadata/Transfer.vue +50 -0
  69. package/components.d.ts +13 -0
  70. package/contracts/Forwarder.ts +856 -2
  71. package/contracts/MultisigForwarder.ts +859 -0
  72. package/contracts/factories/Forwarder__factory.ts +816 -16
  73. package/contracts/factories/MultisigForwarder__factory.ts +721 -0
  74. package/contracts/factories/index.ts +1 -0
  75. package/contracts/index.ts +2 -0
  76. package/nuxt.config.ts +17 -1
  77. package/package.json +15 -8
  78. package/utils/avocado.ts +2 -0
  79. package/utils/bignumber.ts +20 -0
  80. package/utils/formatter.ts +49 -6
  81. package/utils/helper.ts +8 -0
  82. package/utils/metadata.ts +406 -134
  83. package/utils/network.ts +269 -75
  84. package/utils/services.ts +21 -0
  85. package/utils/utils.d.ts +132 -96
package/utils/network.ts CHANGED
@@ -1,36 +1,33 @@
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: "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
- },
25
- },
26
18
  {
27
19
  name: "Polygon",
28
20
  debankName: "matic",
29
21
  ankrName: "polygon",
22
+ zerionName: "polygon",
23
+ color: "#7A4ADD",
30
24
  chainId: 137,
31
25
  balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
32
26
  usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
33
27
  explorerUrl: "https://polygonscan.com",
28
+ apiURL: "https://api.polygonscan.com",
29
+ fakeTransactionHash:
30
+ "0x906c551abd5873a428505b6530ac14d91367820706c7ee525f6d7313265d1c92",
34
31
  get serverRpcUrl() {
35
32
  return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
36
33
  },
@@ -48,10 +45,15 @@ export const networks: Network[] = [
48
45
  name: "Arbitrum",
49
46
  debankName: "arb",
50
47
  ankrName: "arbitrum",
48
+ zerionName: "arbitrum",
49
+ color: "#2D374B",
51
50
  chainId: 42161,
52
51
  usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
53
52
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
53
+ fakeTransactionHash:
54
+ "0x9fa291c3b09d31f19b1fa5dd05f30169d1364036d5f7c14b026410bc07bd8843",
54
55
  explorerUrl: "https://arbiscan.io",
56
+ apiURL: "https://api.arbiscan.io",
55
57
  get serverRpcUrl() {
56
58
  return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
57
59
  },
@@ -65,13 +67,67 @@ export const networks: Network[] = [
65
67
  rpcUrls: ["https://arb1.arbitrum.io/rpc"],
66
68
  },
67
69
  },
70
+ {
71
+ name: "Ethereum",
72
+ debankName: "eth",
73
+ ankrName: "eth",
74
+ zerionName: "ethereum",
75
+ chainId: 1,
76
+ explorerUrl: "https://etherscan.io",
77
+ fakeTransactionHash:
78
+ "0x13232dd32cef2f641ead890a507710c96560c8c9c3d5fab6facb5ec563c49433",
79
+ apiURL: "https://api.etherscan.io",
80
+ color: "#5D5FEF",
81
+ get serverRpcUrl() {
82
+ return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
83
+ },
84
+ balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
85
+ usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
86
+ params: {
87
+ rpcUrls: ["https://rpc.ankr.com/eth"],
88
+ nativeCurrency: {
89
+ name: "Ethereum",
90
+ symbol: "ETH",
91
+ decimals: 18,
92
+ },
93
+ },
94
+ },
95
+ {
96
+ name: "Base",
97
+ chainId: 8453,
98
+ color: "#1E2024",
99
+ ankrName: "base",
100
+ explorerUrl: "https://basescan.org",
101
+ fakeTransactionHash:
102
+ "0xf7833d80da33730c4fc5d4c64151f0eaa64c0c0535be022af0228a44cc4e9c8e",
103
+ apiURL: "https://api.basescan.org",
104
+ get serverRpcUrl() {
105
+ return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
106
+ },
107
+ usdcAddress: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA",
108
+ balanceResolverAddress: "0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C",
109
+ params: {
110
+ rpcUrls: ["https://rpc.ankr.com/base"],
111
+ chainName: "Base",
112
+ nativeCurrency: {
113
+ name: "Ethereum",
114
+ symbol: "ETH",
115
+ decimals: 18,
116
+ },
117
+ },
118
+ },
68
119
  {
69
120
  name: "Optimism",
70
121
  debankName: "op",
71
122
  ankrName: "optimism",
123
+ zerionName: "optimism",
124
+ color: "#FF0420",
72
125
  chainId: 10,
126
+ apiURL: "https://api-optimistic.etherscan.io",
73
127
  usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
74
128
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
129
+ fakeTransactionHash:
130
+ "0xee7311d68059732b05088f2144dfec6c7a4f5fd0433eb85306afcd6bdf17cebc",
75
131
  explorerUrl: "https://optimistic.etherscan.io",
76
132
  get serverRpcUrl() {
77
133
  return process.env?.OPTIMISM_RPC_URL || this.params.rpcUrls[0];
@@ -87,32 +143,40 @@ export const networks: Network[] = [
87
143
  },
88
144
  },
89
145
  {
90
- name: "Avalanche",
91
- debankName: "avax",
92
- ankrName: "avalanche",
93
- chainId: 43114,
94
- usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
95
- balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
96
- explorerUrl: "https://snowtrace.io",
146
+ name: "Polygon zkEVM",
147
+ chainId: 1101,
148
+ color: "#8544f6",
149
+ ankrName: "polygon_zkevm",
150
+ explorerUrl: "https://zkevm.polygonscan.com",
151
+ apiURL: "https://api-zkevm.polygonscan.com",
152
+ balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
153
+ fakeTransactionHash:
154
+ "0x1077130463ade91ad4e9c43c3195298e26a99970975238128912490eea12bf41",
155
+ usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
97
156
  get serverRpcUrl() {
98
- return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
157
+ return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
99
158
  },
100
159
  params: {
101
- chainName: "Avalanche Network",
160
+ chainName: "polygon zkEVM",
161
+ rpcUrls: ["https://zkevm-rpc.com"],
102
162
  nativeCurrency: {
103
- name: "Avalanche",
104
- symbol: "AVAX",
163
+ name: "Ethereum",
164
+ symbol: "ETH",
105
165
  decimals: 18,
106
166
  },
107
- rpcUrls: ["https://api.avax.network/ext/bc/C/rpc"],
108
167
  },
109
168
  },
110
169
  {
111
170
  name: "BSC",
112
171
  debankName: "bsc",
113
172
  ankrName: "bsc",
173
+ zerionName: "binance-smart-chain",
174
+ color: "#F3BA2F",
114
175
  chainId: 56,
115
176
  explorerUrl: "https://bscscan.com",
177
+ fakeTransactionHash:
178
+ "0x897d54bf8e492f840bd4d8f1e743bfcab8226ab4d5a899e47ee433dcd6d6abf7",
179
+ apiURL: "https://api.bscscan.com",
116
180
  usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
117
181
  balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
118
182
  get serverRpcUrl() {
@@ -128,13 +192,68 @@ export const networks: Network[] = [
128
192
  },
129
193
  },
130
194
  },
195
+ {
196
+ name: "Avalanche",
197
+ debankName: "avax",
198
+ ankrName: "avalanche",
199
+ zerionName: "avalanche",
200
+ color: "#EB5757",
201
+ chainId: 43114,
202
+ usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
203
+ balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
204
+ explorerUrl: "https://snowtrace.io",
205
+ fakeTransactionHash:
206
+ "0x233aac7402558dd4e23f938a50f983e67f5c9604233981c7ac74e63737b8294e",
207
+ apiURL: "https://api.snowtrace.io",
208
+ get serverRpcUrl() {
209
+ return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
210
+ },
211
+ params: {
212
+ chainName: "Avalanche Network",
213
+ nativeCurrency: {
214
+ name: "Avalanche",
215
+ symbol: "AVAX",
216
+ decimals: 18,
217
+ },
218
+ rpcUrls: ["https://rpc.ankr.com/avalanche"],
219
+ },
220
+ },
221
+ {
222
+ name: "Fantom",
223
+ chainId: 250,
224
+ zerionName: "fantom",
225
+ explorerUrl: "https://ftmscan.com",
226
+ ankrName: "fantom",
227
+ color: "#1969ff",
228
+ get serverRpcUrl() {
229
+ return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
230
+ },
231
+ usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
232
+ balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
233
+ fakeTransactionHash:
234
+ "0x1e9a8405d660172314124e06896212c0786d7fb1550b89410d4bc87e9e8054e4",
235
+ params: {
236
+ rpcUrls: ["https://rpc.ankr.com/fantom"],
237
+ chainName: "Fantom",
238
+ nativeCurrency: {
239
+ name: "Fantom",
240
+ symbol: "FTM",
241
+ decimals: 18,
242
+ },
243
+ },
244
+ },
131
245
  {
132
246
  name: "Gnosis",
133
247
  debankName: "xdai",
248
+ zerionName: "xdai",
249
+ color: "#04795C",
134
250
  ankrName: "gnosis",
135
251
  chainId: 100,
136
252
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
137
253
  explorerUrl: "https://gnosisscan.io",
254
+ fakeTransactionHash:
255
+ "0x1513033806310a2c3b29f2276f8aa7388461b0ef9f8499c297e68c12187c179b",
256
+ apiURL: "https://api.gnosisscan.io",
138
257
  usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
139
258
  get serverRpcUrl() {
140
259
  return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
@@ -150,18 +269,64 @@ export const networks: Network[] = [
150
269
  },
151
270
  },
152
271
  {
153
- name: "Polygon zkEVM",
154
- chainId: 1101,
155
- explorerUrl: "https://zkevm.polygonscan.com",
156
- balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
157
- usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
272
+ name: "Aurora",
273
+ chainId: 1313161554,
274
+ zerionName: "aurora",
275
+ color: "#78d64b",
276
+ explorerUrl: "https://explorer.mainnet.aurora.dev",
277
+ fakeTransactionHash:
278
+ "0x0923401c5a80c39a5cd57c098a6c4729edbefd0db6894def7d349493f4ff3ec6",
158
279
  get serverRpcUrl() {
159
- return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
280
+ return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
160
281
  },
282
+ usdcAddress: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
283
+ balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
161
284
  params: {
162
- chainName: "polygon zkEVM",
163
- rpcUrls: ["https://rpc.ankr.com/polygon_zkevm"],
164
-
285
+ rpcUrls: ["https://mainnet.aurora.dev"],
286
+ chainName: "Aurora",
287
+ nativeCurrency: {
288
+ decimals: 18,
289
+ name: "Aurora ETH",
290
+ symbol: "AETH",
291
+ },
292
+ },
293
+ },
294
+ {
295
+ name: "Fuse",
296
+ chainId: 122,
297
+ zerionName: "fuse",
298
+ color: "#78d64b",
299
+ explorerUrl: "https://explorer.fuse.io",
300
+ fakeTransactionHash:
301
+ "0xf22a8031de9b978a57c728e18c6b54633356c39db4d0466e53b9b7c3ee7f8def",
302
+ get serverRpcUrl() {
303
+ return process.env?.FUSE_RPC_URL || this.params.rpcUrls[0];
304
+ },
305
+ usdcAddress: "",
306
+ balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
307
+ params: {
308
+ rpcUrls: ["https://fuse-mainnet.chainstacklabs.com"],
309
+ chainName: "Fuse",
310
+ nativeCurrency: {
311
+ decimals: 18,
312
+ name: "Fuse",
313
+ symbol: "fuse",
314
+ },
315
+ },
316
+ },
317
+ {
318
+ name: "Scroll",
319
+ chainId: 534352,
320
+ color: "#78d64b",
321
+ explorerUrl: "https://scrollscan.com",
322
+ fakeTransactionHash:
323
+ "0x6bf297c414264fc8cddd47224632b4426a02138df2f50fe891eca87f6aefea01",
324
+ get serverRpcUrl() {
325
+ return process.env?.SCROLL_RPC_URL || this.params.rpcUrls[0];
326
+ },
327
+ params: {
328
+ rpcUrls: ["https://rpc.scroll.io"],
329
+ chainName: "Scroll",
165
330
  nativeCurrency: {
166
331
  name: "Ethereum",
167
332
  symbol: "ETH",
@@ -169,50 +334,52 @@ export const networks: Network[] = [
169
334
  },
170
335
  },
171
336
  },
172
- // {
173
- // name: "Aurora",
174
- // chainId: 1313161554,
175
- // explorerUrl: "https://explorer.mainnet.aurora.dev",
176
- // get serverRpcUrl() {
177
- // return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
178
- // },
179
- // usdcAddress: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
180
- // balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
181
- // params: {
182
- // rpcUrls: ["https://mainnet.aurora.dev"],
183
- // chainName: "Aurora",
184
- // nativeCurrency: {
185
- // decimals: 18,
186
- // name: "Aurora ETH",
187
- // symbol: "AETH",
188
- // },
189
- // },
190
- // },
191
337
  {
192
- name: "Fantom",
193
- chainId: 250,
194
- explorerUrl: "https://ftmscan.com",
195
- ankrName: "fantom",
338
+ name: "opBNB",
339
+ chainId: 204,
340
+ color: "#78d64b",
341
+ explorerUrl: "https://opbnbscan.com",
342
+ fakeTransactionHash:
343
+ "0xb9438a3eae61442bc7d419d79930370ce09ac0f46e0695025751e3bfe1a931e7",
196
344
  get serverRpcUrl() {
197
- return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
345
+ return process.env?.OPBNB_RPC_URL || this.params.rpcUrls[0];
198
346
  },
199
- usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
200
- balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
201
347
  params: {
202
- rpcUrls: ["https://rpc.ankr.com/fantom"],
203
- chainName: "Fantom",
348
+ rpcUrls: ["https://opbnb-mainnet-rpc.bnbchain.org"],
349
+ chainName: "opBNB",
204
350
  nativeCurrency: {
205
- name: "Fantom",
206
- symbol: "FTM",
351
+ name: "BNB",
352
+ symbol: "BNB",
207
353
  decimals: 18,
208
354
  },
209
355
  },
210
356
  },
357
+ // {
358
+ // name: "Manta Pacific",
359
+ // chainId: 169,
360
+ // explorerUrl: "https://pacific-explorer.manta.network",
361
+ // params: {
362
+ // rpcUrls: ["https://pacific-rpc.manta.network/http"],
363
+ // chainName: "Manta Pacific",
364
+ // nativeCurrency: {
365
+ // name: "Ethereum",
366
+ // symbol: "ETH",
367
+ // decimals: 18,
368
+ // },
369
+ // },
370
+ // color: "#78d64b",
371
+ // fakeTransactionHash: "0x3fB128aA5AC254C8539996B11C587E521AE0d3ab",
372
+ // get serverRpcUrl() {
373
+ // return process.env?.MANTA_RPC_URL || this.params.rpcUrls[0];
374
+ // },
375
+ // },
211
376
  {
212
377
  name: AVO_PROD_CHAIN_NAME,
213
378
  chainId: AVO_PROD_CHAIN_ID,
214
379
  isAvocado: true,
215
380
  balanceResolverAddress: "",
381
+ fakeTransactionHash: "",
382
+ color: "#16A34A",
216
383
  usdcAddress: "",
217
384
  serverRpcUrl: AVO_PROD_RPC_URL,
218
385
  explorerUrl: AVO_PROD_EXPLORER_URL,
@@ -231,7 +398,9 @@ export const networks: Network[] = [
231
398
  name: AVO_STAGING_CHAIN_NAME,
232
399
  chainId: AVO_STAGING_CHAIN_ID,
233
400
  serverRpcUrl: AVO_STAGING_RPC_URL,
401
+ color: "#16A34A",
234
402
  explorerUrl: AVO_STAGING_EXPLORER_URL,
403
+ fakeTransactionHash: "",
235
404
  isAvocado: true,
236
405
  balanceResolverAddress: "",
237
406
  usdcAddress: "",
@@ -248,6 +417,26 @@ export const networks: Network[] = [
248
417
  },
249
418
  ];
250
419
 
420
+ export const chainUsdcAddresses = [
421
+ { chainId: 1, address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" },
422
+ { chainId: 10, address: "0x7f5c764cbc14f9669b88837ca1490cca17c31607" },
423
+ { chainId: 56, address: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d" },
424
+ { chainId: 100, address: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83" },
425
+ { chainId: 137, address: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174" },
426
+ { chainId: 137, address: "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359" },
427
+ { chainId: 250, address: "0x04068da6c83afcfa0e13ba15a6696662335d5b75" },
428
+ { chainId: 42161, address: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8" },
429
+ { chainId: 42161, address: "0xaf88d065e77c8cc2239327c5edb3a432268e5831" },
430
+ { chainId: 43114, address: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e" },
431
+ { chainId: 43114, address: "0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664" },
432
+ { chainId: 1101, address: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035" },
433
+ {
434
+ chainId: 1313161554,
435
+ address: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
436
+ },
437
+ { chainId: 8453, address: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA" },
438
+ ];
439
+
251
440
  export const getNetworkByChainId = (
252
441
  chainId: ChainId | number | string
253
442
  ): Network => {
@@ -260,12 +449,16 @@ export const availableNetworks = networks.filter(
260
449
 
261
450
  export const chainIdToName = (chainId: ChainId | number | string) => {
262
451
  const network = getNetworkByChainId(chainId);
263
- return network.name;
452
+ return network?.name;
264
453
  };
265
454
 
266
455
  export const getRpcURLByChainId = (chainId: ChainId | number | string) => {
267
- const network = getNetworkByChainId(chainId);
268
- return network.params.rpcUrls[0];
456
+ try {
457
+ const network = getNetworkByChainId(chainId);
458
+ return network.params.rpcUrls[0];
459
+ } catch (e) {
460
+ return "";
461
+ }
269
462
  };
270
463
 
271
464
  export const RPCMap = networks.reduce((acc, network) => {
@@ -307,5 +500,6 @@ export const getExplorerUrl = (
307
500
  suffix: `/${string}` = "/"
308
501
  ) => {
309
502
  const network = getNetworkByChainId(chainId);
503
+ if (!network) return "";
310
504
  return `${network.explorerUrl}${suffix}`;
311
505
  };
@@ -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
+ };