@instadapp/avocado-base 0.0.0-dev.d695dce → 0.0.0-dev.d8050bd

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 (84) hide show
  1. package/abi/forwarder.json +8 -8
  2. package/abi/multisigForwarder.json +697 -0
  3. package/app.vue +7 -0
  4. package/assets/images/icons/arrow-left.svg +5 -0
  5. package/assets/images/icons/arrow-right.svg +5 -0
  6. package/assets/images/icons/avocado.svg +4 -0
  7. package/assets/images/icons/bridge-2.svg +3 -0
  8. package/assets/images/icons/bridge.svg +7 -0
  9. package/assets/images/icons/calendar.svg +8 -0
  10. package/assets/images/icons/change-threshold.svg +4 -0
  11. package/assets/images/icons/check-circle.svg +4 -0
  12. package/assets/images/icons/chevron-down.svg +4 -0
  13. package/assets/images/icons/clipboard.svg +7 -0
  14. package/assets/images/icons/clock-circle.svg +5 -0
  15. package/assets/images/icons/copy.svg +5 -0
  16. package/assets/images/icons/cross-transfer.svg +7 -0
  17. package/assets/images/icons/dapp.svg +4 -0
  18. package/assets/images/icons/deploy.svg +12 -0
  19. package/assets/images/icons/error-circle.svg +6 -0
  20. package/assets/images/icons/exclamation-circle.svg +13 -0
  21. package/assets/images/icons/exclamation-octagon.svg +13 -0
  22. package/assets/images/icons/exclamation-triangle.svg +5 -0
  23. package/assets/images/icons/external-link.svg +6 -0
  24. package/assets/images/icons/eye.svg +4 -0
  25. package/assets/images/icons/flowers.svg +8 -0
  26. package/assets/images/icons/gas-emoji.svg +193 -0
  27. package/assets/images/icons/gas.svg +14 -0
  28. package/assets/images/icons/gift.svg +153 -0
  29. package/assets/images/icons/globe.svg +110 -0
  30. package/assets/images/icons/hamburger.svg +6 -0
  31. package/assets/images/icons/hammer.svg +5 -0
  32. package/assets/images/icons/info-2.svg +12 -0
  33. package/assets/images/icons/instadapp-pro.svg +4 -0
  34. package/assets/images/icons/logout.svg +3 -0
  35. package/assets/images/icons/moon.svg +3 -0
  36. package/assets/images/icons/multi-send.svg +7 -0
  37. package/assets/images/icons/network.svg +13 -0
  38. package/assets/images/icons/options.svg +5 -0
  39. package/assets/images/icons/permit-sign.svg +11 -0
  40. package/assets/images/icons/plus-circle.svg +6 -0
  41. package/assets/images/icons/plus.svg +5 -0
  42. package/assets/images/icons/power-off-bg.svg +24 -0
  43. package/assets/images/icons/power-off.svg +19 -0
  44. package/assets/images/icons/power-on.svg +19 -0
  45. package/assets/images/icons/qr.svg +20 -0
  46. package/assets/images/icons/question-circle.svg +14 -0
  47. package/assets/images/icons/refresh.svg +6 -0
  48. package/assets/images/icons/reject-proposal.svg +6 -0
  49. package/assets/images/icons/search.svg +12 -0
  50. package/assets/images/icons/sun.svg +3 -0
  51. package/assets/images/icons/transfer.svg +5 -0
  52. package/assets/images/icons/trash-2.svg +8 -0
  53. package/assets/images/icons/upgrade.svg +4 -0
  54. package/assets/images/icons/wave.svg +214 -0
  55. package/assets/images/icons/x.svg +5 -0
  56. package/components/ActionLogo.vue +40 -0
  57. package/components/ActionMetadata.vue +78 -0
  58. package/components/AuthorityAvatar.vue +38 -0
  59. package/components/ChainLogo.vue +14 -556
  60. package/components/CopyClipboard.vue +64 -0
  61. package/components/metadata/Bridge.vue +59 -0
  62. package/components/metadata/CrossTransfer.vue +79 -0
  63. package/components/metadata/GasTopup.vue +39 -0
  64. package/components/metadata/Permit2.vue +42 -0
  65. package/components/metadata/Signers.vue +63 -0
  66. package/components/metadata/Swap.vue +74 -0
  67. package/components/metadata/Transfer.vue +50 -0
  68. package/components.d.ts +13 -0
  69. package/contracts/Forwarder.ts +4 -4
  70. package/contracts/MultisigForwarder.ts +859 -0
  71. package/contracts/factories/Forwarder__factory.ts +8 -8
  72. package/contracts/factories/MultisigForwarder__factory.ts +721 -0
  73. package/contracts/factories/index.ts +1 -0
  74. package/contracts/index.ts +2 -0
  75. package/nuxt.config.ts +17 -1
  76. package/package.json +9 -4
  77. package/utils/avocado.ts +2 -0
  78. package/utils/bignumber.ts +20 -0
  79. package/utils/formatter.ts +1 -1
  80. package/utils/helper.ts +8 -0
  81. package/utils/metadata.ts +360 -179
  82. package/utils/network.ts +227 -74
  83. package/utils/services.ts +21 -0
  84. package/utils/utils.d.ts +131 -114
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: "Mainnet",
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,9 @@ export const networks: Network[] = [
35
25
  balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
36
26
  usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
37
27
  explorerUrl: "https://polygonscan.com",
28
+ apiURL: "https://api.polygonscan.com",
29
+ fakeTransactionHash:
30
+ "0x906c551abd5873a428505b6530ac14d91367820706c7ee525f6d7313265d1c92",
38
31
  get serverRpcUrl() {
39
32
  return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
40
33
  },
@@ -57,7 +50,10 @@ export const networks: Network[] = [
57
50
  chainId: 42161,
58
51
  usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
59
52
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
53
+ fakeTransactionHash:
54
+ "0x9fa291c3b09d31f19b1fa5dd05f30169d1364036d5f7c14b026410bc07bd8843",
60
55
  explorerUrl: "https://arbiscan.io",
56
+ apiURL: "https://api.arbiscan.io",
61
57
  get serverRpcUrl() {
62
58
  return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
63
59
  },
@@ -71,6 +67,55 @@ export const networks: Network[] = [
71
67
  rpcUrls: ["https://arb1.arbitrum.io/rpc"],
72
68
  },
73
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
+ },
74
119
  {
75
120
  name: "Optimism",
76
121
  debankName: "op",
@@ -78,8 +123,11 @@ export const networks: Network[] = [
78
123
  zerionName: "optimism",
79
124
  color: "#FF0420",
80
125
  chainId: 10,
126
+ apiURL: "https://api-optimistic.etherscan.io",
81
127
  usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
82
128
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
129
+ fakeTransactionHash:
130
+ "0xee7311d68059732b05088f2144dfec6c7a4f5fd0433eb85306afcd6bdf17cebc",
83
131
  explorerUrl: "https://optimistic.etherscan.io",
84
132
  get serverRpcUrl() {
85
133
  return process.env?.OPTIMISM_RPC_URL || this.params.rpcUrls[0];
@@ -95,26 +143,27 @@ export const networks: Network[] = [
95
143
  },
96
144
  },
97
145
  {
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",
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",
107
156
  get serverRpcUrl() {
108
- return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
157
+ return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
109
158
  },
110
159
  params: {
111
- chainName: "Avalanche Network",
160
+ chainName: "polygon zkEVM",
161
+ rpcUrls: ["https://zkevm-rpc.com"],
112
162
  nativeCurrency: {
113
- name: "Avalanche",
114
- symbol: "AVAX",
163
+ name: "Ethereum",
164
+ symbol: "ETH",
115
165
  decimals: 18,
116
166
  },
117
- rpcUrls: ["https://rpc.ankr.com/avalanche"],
118
167
  },
119
168
  },
120
169
  {
@@ -125,6 +174,9 @@ export const networks: Network[] = [
125
174
  color: "#F3BA2F",
126
175
  chainId: 56,
127
176
  explorerUrl: "https://bscscan.com",
177
+ fakeTransactionHash:
178
+ "0x897d54bf8e492f840bd4d8f1e743bfcab8226ab4d5a899e47ee433dcd6d6abf7",
179
+ apiURL: "https://api.bscscan.com",
128
180
  usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
129
181
  balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
130
182
  get serverRpcUrl() {
@@ -140,14 +192,68 @@ export const networks: Network[] = [
140
192
  },
141
193
  },
142
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
+ },
143
245
  {
144
246
  name: "Gnosis",
145
247
  debankName: "xdai",
146
248
  zerionName: "xdai",
147
249
  color: "#04795C",
250
+ ankrName: "gnosis",
148
251
  chainId: 100,
149
252
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
150
253
  explorerUrl: "https://gnosisscan.io",
254
+ fakeTransactionHash:
255
+ "0x1513033806310a2c3b29f2276f8aa7388461b0ef9f8499c297e68c12187c179b",
256
+ apiURL: "https://api.gnosisscan.io",
151
257
  usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
152
258
  get serverRpcUrl() {
153
259
  return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
@@ -162,33 +268,14 @@ export const networks: Network[] = [
162
268
  },
163
269
  },
164
270
  },
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
271
  {
187
272
  name: "Aurora",
188
273
  chainId: 1313161554,
189
274
  zerionName: "aurora",
190
275
  color: "#78d64b",
191
276
  explorerUrl: "https://explorer.mainnet.aurora.dev",
277
+ fakeTransactionHash:
278
+ "0x0923401c5a80c39a5cd57c098a6c4729edbefd0db6894def7d349493f4ff3ec6",
192
279
  get serverRpcUrl() {
193
280
  return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
194
281
  },
@@ -205,23 +292,64 @@ export const networks: Network[] = [
205
292
  },
206
293
  },
207
294
  {
208
- name: "Fantom",
209
- chainId: 250,
210
- zerionName: "fantom",
211
- explorerUrl: "https://ftmscan.com",
212
- ankrName: "fantom",
213
- color: "#1969ff",
295
+ name: "Fuse",
296
+ chainId: 122,
297
+ zerionName: "fuse",
298
+ color: "#78d64b",
299
+ explorerUrl: "https://explorer.fuse.io",
300
+ fakeTransactionHash:
301
+ "0xf22a8031de9b978a57c728e18c6b54633356c39db4d0466e53b9b7c3ee7f8def",
214
302
  get serverRpcUrl() {
215
- return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
303
+ return process.env?.FUSE_RPC_URL || this.params.rpcUrls[0];
216
304
  },
217
- usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
218
- balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
305
+ usdcAddress: "",
306
+ balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
219
307
  params: {
220
- rpcUrls: ["https://rpc.ankr.com/fantom"],
221
- chainName: "Fantom",
308
+ rpcUrls: ["https://fuse-mainnet.chainstacklabs.com"],
309
+ chainName: "Fuse",
222
310
  nativeCurrency: {
223
- name: "Fantom",
224
- symbol: "FTM",
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",
330
+ nativeCurrency: {
331
+ name: "Ethereum",
332
+ symbol: "ETH",
333
+ decimals: 18,
334
+ },
335
+ },
336
+ },
337
+ {
338
+ name: "opBNB",
339
+ chainId: 204,
340
+ color: "#78d64b",
341
+ explorerUrl: "https://opbnbscan.com",
342
+ fakeTransactionHash:
343
+ "0xb9438a3eae61442bc7d419d79930370ce09ac0f46e0695025751e3bfe1a931e7",
344
+ get serverRpcUrl() {
345
+ return process.env?.OPBNB_RPC_URL || this.params.rpcUrls[0];
346
+ },
347
+ params: {
348
+ rpcUrls: ["https://opbnb-mainnet-rpc.bnbchain.org"],
349
+ chainName: "opBNB",
350
+ nativeCurrency: {
351
+ name: "BNB",
352
+ symbol: "BNB",
225
353
  decimals: 18,
226
354
  },
227
355
  },
@@ -231,6 +359,7 @@ export const networks: Network[] = [
231
359
  chainId: AVO_PROD_CHAIN_ID,
232
360
  isAvocado: true,
233
361
  balanceResolverAddress: "",
362
+ fakeTransactionHash: "",
234
363
  color: "#16A34A",
235
364
  usdcAddress: "",
236
365
  serverRpcUrl: AVO_PROD_RPC_URL,
@@ -252,6 +381,7 @@ export const networks: Network[] = [
252
381
  serverRpcUrl: AVO_STAGING_RPC_URL,
253
382
  color: "#16A34A",
254
383
  explorerUrl: AVO_STAGING_EXPLORER_URL,
384
+ fakeTransactionHash: "",
255
385
  isAvocado: true,
256
386
  balanceResolverAddress: "",
257
387
  usdcAddress: "",
@@ -268,6 +398,25 @@ export const networks: Network[] = [
268
398
  },
269
399
  ];
270
400
 
401
+ export const chainUsdcAddresses = [
402
+ { chainId: 1, address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" },
403
+ { chainId: 10, address: "0x7f5c764cbc14f9669b88837ca1490cca17c31607" },
404
+ { chainId: 56, address: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d" },
405
+ { chainId: 100, address: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83" },
406
+ { chainId: 137, address: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174" },
407
+ { chainId: 250, address: "0x04068da6c83afcfa0e13ba15a6696662335d5b75" },
408
+ { chainId: 42161, address: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8" },
409
+ { chainId: 42161, address: "0xaf88d065e77c8cc2239327c5edb3a432268e5831" },
410
+ { chainId: 43114, address: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e" },
411
+ { chainId: 43114, address: "0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664" },
412
+ { chainId: 1101, address: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035" },
413
+ {
414
+ chainId: 1313161554,
415
+ address: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
416
+ },
417
+ { chainId: 8453, address: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA" },
418
+ ];
419
+
271
420
  export const getNetworkByChainId = (
272
421
  chainId: ChainId | number | string
273
422
  ): Network => {
@@ -280,12 +429,16 @@ export const availableNetworks = networks.filter(
280
429
 
281
430
  export const chainIdToName = (chainId: ChainId | number | string) => {
282
431
  const network = getNetworkByChainId(chainId);
283
- return network.name;
432
+ return network?.name;
284
433
  };
285
434
 
286
435
  export const getRpcURLByChainId = (chainId: ChainId | number | string) => {
287
- const network = getNetworkByChainId(chainId);
288
- return network.params.rpcUrls[0];
436
+ try {
437
+ const network = getNetworkByChainId(chainId);
438
+ return network.params.rpcUrls[0];
439
+ } catch (e) {
440
+ return "";
441
+ }
289
442
  };
290
443
 
291
444
  export const RPCMap = networks.reduce((acc, network) => {
@@ -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
+ };
package/utils/utils.d.ts CHANGED
@@ -1,118 +1,135 @@
1
- type ChainId =
2
- | 1
3
- | 137
4
- | 42161
5
- | 10
6
- | 56
7
- | 43114
8
- | 100
9
- | 1101
10
- | 250
11
- | 634
12
- | 1313161554
13
- | 63400;
14
-
15
- type ISlackMessageType = "danger" | "error" | "success" | "banner";
16
-
17
- interface Network {
18
- name: string;
19
- debankName?: string;
20
- ankrName?: string;
21
- zerionName?: string;
22
- chainId: ChainId;
23
- color: string;
24
- isAvocado?: boolean;
25
- serverRpcUrl: string | undefined;
26
- balanceResolverAddress?: string;
27
- usdcAddress: string;
28
- explorerUrl: string;
29
- params: {
30
- chainName?: string;
31
- iconUrls?: string[];
32
- rpcUrls: string[];
33
- nativeCurrency?: {
34
- name: string;
35
- symbol: string;
36
- decimals: number;
1
+ declare global {
2
+ type ChainId =
3
+ | 1
4
+ | 137
5
+ | 42161
6
+ | 10
7
+ | 56
8
+ | 43114
9
+ | 100
10
+ | 1101
11
+ | 250
12
+ | 634
13
+ | 1313161554
14
+ | 8453
15
+ | 122
16
+ | 534352
17
+ | 204
18
+ | 63400;
19
+
20
+ type ISlackMessageType = "danger" | "error" | "success" | "banner";
21
+
22
+ type MetadataTypes = keyof typeof MetadataEnums;
23
+
24
+ type PayloadFunction = (data: any, type: MetadataTypes) => any;
25
+
26
+ type IPayload = Record<MetadataTypes, PayloadFunction>;
27
+
28
+ interface Network {
29
+ name: string;
30
+ debankName?: string;
31
+ ankrName?: string;
32
+ zerionName?: string;
33
+ chainId: ChainId;
34
+ color: string;
35
+ isAvocado?: boolean;
36
+ serverRpcUrl: string | undefined;
37
+ balanceResolverAddress?: string;
38
+ usdcAddress?: string;
39
+ explorerUrl: string;
40
+ fakeTransactionHash: string;
41
+ apiURL?: string;
42
+ params: {
43
+ chainName?: string;
44
+ iconUrls?: string[];
45
+ rpcUrls: string[];
46
+ nativeCurrency?: {
47
+ name: string;
48
+ symbol: string;
49
+ decimals: number;
50
+ };
37
51
  };
52
+ }
53
+
54
+ type SignMetadataProps = {
55
+ token: string;
56
+ spender: string;
57
+ amount: string;
58
+ expiration: string;
38
59
  };
60
+
61
+ type DappMetadataProps = {
62
+ name: string;
63
+ url: string;
64
+ };
65
+
66
+ type SendMetadataProps = {
67
+ token: string;
68
+ amount: string;
69
+ receiver: string;
70
+ };
71
+
72
+ type CrossSendMetadataProps = {
73
+ fromToken: string;
74
+ toToken: string;
75
+ toChainId: string;
76
+ amount: string;
77
+ receiver: string;
78
+ };
79
+
80
+ type AuthMetadataProps = {
81
+ address: string;
82
+ chainId: string;
83
+ remove: boolean;
84
+ };
85
+
86
+ type UpgradeMetadataProps = {
87
+ version: string;
88
+ walletImpl: string;
89
+ };
90
+
91
+ type TopupMetadataProps = {
92
+ amount: string;
93
+ token: string;
94
+ onBehalf: string;
95
+ };
96
+
97
+ type BridgeMetadataProps = {
98
+ amount: string;
99
+ receiver: string;
100
+ fromToken: string;
101
+ toToken: string;
102
+ toChainId: string;
103
+ bridgeFee: string;
104
+ nativeToken: string;
105
+ };
106
+
107
+ type SwapMetadataProps = {
108
+ sellToken: string;
109
+ buyToken: string;
110
+ sellAmount: string;
111
+ buyAmount: string;
112
+ receiver: string;
113
+ protocol?: string;
114
+ };
115
+
116
+ type MetadataProps = {
117
+ type: MetadataTypes;
118
+ encodedData: string;
119
+ version?: string;
120
+ };
121
+
122
+ interface ITokenPrice {
123
+ address: string;
124
+ chain_id: string;
125
+ name: string;
126
+ symbol: string;
127
+ decimals: number;
128
+ logo_url: string;
129
+ price: string;
130
+ coingecko_id: string;
131
+ sparkline_price_7d: number[];
132
+ }
39
133
  }
40
134
 
41
- type SignMetadataProps = {
42
- token: string;
43
- spender: string;
44
- amount: string;
45
- expiration: string;
46
- };
47
-
48
- type DappMetadataProps = {
49
- name: string;
50
- url: string;
51
- };
52
-
53
- type SendMetadataProps = {
54
- token: string;
55
- amount: string;
56
- receiver: string;
57
- };
58
-
59
- type CrossSendMetadataProps = {
60
- fromToken: string;
61
- toToken: string;
62
- toChainId: string;
63
- amount: string;
64
- receiver: string;
65
- };
66
-
67
- type AuthMetadataProps = {
68
- address: string;
69
- chainId: string;
70
- remove: boolean;
71
- };
72
-
73
- type UpgradeMetadataProps = {
74
- version: string;
75
- walletImpl: string;
76
- };
77
-
78
- type TopupMetadataProps = {
79
- amount: string;
80
- token: string;
81
- onBehalf: string;
82
- };
83
-
84
- type BridgeMetadataProps = {
85
- amount: string;
86
- receiver: string;
87
- fromToken: string;
88
- toToken: string;
89
- toChainId: string;
90
- bridgeFee: string;
91
- nativeToken: string;
92
- };
93
-
94
- type SwapMetadataProps = {
95
- sellToken: string;
96
- buyToken: string;
97
- sellAmount: string;
98
- buyAmount: string;
99
- receiver: string;
100
- protocol?: string;
101
- };
102
-
103
- type MetadataProps = {
104
- type:
105
- | "transfer"
106
- | "bridge"
107
- | "swap"
108
- | "multi"
109
- | "gas-topup"
110
- | "upgrade"
111
- | "dapp"
112
- | "deploy"
113
- | "permit2"
114
- | "cross-transfer"
115
- | "auth";
116
- encodedData: string;
117
- version?: string;
118
- };
135
+ export {};