@instadapp/avocado-base 0.0.0-dev.a43ff53 → 0.0.0-dev.a52088d

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 (34) hide show
  1. package/.github/workflows/npm-publish-dev.yml +2 -5
  2. package/.vscode/settings.json +68 -0
  3. package/abi/multisigAgnosticForwarder.json +938 -0
  4. package/abi/multisigForwarder.json +697 -0
  5. package/assets/images/icons/check.svg +3 -0
  6. package/assets/images/icons/copy.svg +9 -2
  7. package/assets/images/icons/hammer.svg +5 -0
  8. package/assets/images/icons/info-2.svg +12 -0
  9. package/assets/images/icons/stars.svg +4 -0
  10. package/components/ActionLogo.vue +32 -28
  11. package/components/ActionMetadata.vue +45 -29
  12. package/components/Address.vue +74 -0
  13. package/components/AuthorityAvatar.vue +16 -5
  14. package/components/ChainLogo.vue +12 -218
  15. package/components/CopyClipboard.vue +16 -38
  16. package/components/metadata/Bridge.vue +1 -1
  17. package/components/metadata/CrossTransfer.vue +35 -30
  18. package/components/metadata/Signers.vue +12 -38
  19. package/components/metadata/Swap.vue +45 -53
  20. package/components/metadata/Transfer.vue +25 -27
  21. package/contracts/MultisigAgnosticForwarder.ts +1423 -0
  22. package/contracts/MultisigForwarder.ts +859 -0
  23. package/contracts/factories/MultisigAgnosticForwarder__factory.ts +2135 -0
  24. package/contracts/factories/MultisigForwarder__factory.ts +721 -0
  25. package/contracts/factories/index.ts +2 -0
  26. package/contracts/index.ts +4 -0
  27. package/eslint.config.mjs +19 -0
  28. package/nuxt.config.ts +7 -2
  29. package/package.json +18 -13
  30. package/utils/formatter.ts +1 -1
  31. package/utils/helper.ts +0 -11
  32. package/utils/metadata.ts +216 -58
  33. package/utils/network.ts +477 -201
  34. package/utils/utils.d.ts +22 -7
package/utils/network.ts CHANGED
@@ -1,291 +1,561 @@
1
- import { ethers } from "ethers";
1
+ import { ethers } from 'ethers'
2
+ import {
3
+ arbitrum,
4
+ aurora,
5
+ avalanche,
6
+ base,
7
+ blast,
8
+ bsc,
9
+ fantom,
10
+ fuse,
11
+ gnosis,
12
+ linea,
13
+ mainnet,
14
+ mode,
15
+ opBNB,
16
+ optimism,
17
+ polygon,
18
+ polygonZkEvm,
19
+ scroll,
20
+ } from 'viem/chains'
21
+ import { defineChain } from 'viem'
22
+ import {
23
+ AVO_PROD_CHAIN_ID,
24
+ AVO_PROD_CHAIN_NAME,
25
+ AVO_PROD_EXPLORER_URL,
26
+ AVO_PROD_RPC_URL,
27
+ AVO_STAGING_CHAIN_ID,
28
+ AVO_STAGING_CHAIN_NAME,
29
+ AVO_STAGING_EXPLORER_URL,
30
+ AVO_STAGING_RPC_URL,
31
+ } from './avocado'
2
32
 
3
- export const bridgeDisabledNetworks = [1101];
33
+ export const bridgeDisabledNetworks = []
34
+
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 },
66
+ },
67
+ })
4
68
 
5
69
  export const networks: Network[] = [
6
70
  {
7
- name: "Ethereum",
8
- debankName: "eth",
9
- ankrName: "eth",
10
- zerionName: "ethereum",
11
- chainId: 1,
12
- explorerUrl: "https://etherscan.io",
13
- color: "#5D5FEF",
71
+ name: 'Polygon',
72
+ debankName: 'matic',
73
+ ankrName: 'polygon',
74
+ zerionName: 'polygon',
75
+ color: '#7A4ADD',
76
+ chainId: 137,
77
+ viemChain: polygon,
78
+ balanceResolverAddress: '0x58632D23120b20650262b8A629a14e4F4043E0D9',
79
+ usdcAddress: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
80
+ explorerUrl: 'https://polygonscan.com',
81
+ apiURL: 'https://api.polygonscan.com/api',
82
+ fakeTransactionHash:
83
+ '0x906c551abd5873a428505b6530ac14d91367820706c7ee525f6d7313265d1c92',
14
84
  get serverRpcUrl() {
15
- return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
85
+ return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0]
16
86
  },
17
- balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
18
- usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
19
87
  params: {
20
- rpcUrls: ["https://rpc.ankr.com/eth"],
88
+ chainName: 'Matic(Polygon) Mainnet',
21
89
  nativeCurrency: {
22
- name: "Ethereum",
23
- symbol: "ETH",
90
+ name: 'Matic',
91
+ symbol: 'MATIC',
24
92
  decimals: 18,
25
93
  },
94
+ rpcUrls: ['https://polygon-rpc.com'],
26
95
  },
27
96
  },
28
97
  {
29
- name: "Polygon",
30
- debankName: "matic",
31
- ankrName: "polygon",
32
- zerionName: "polygon",
33
- color: "#7A4ADD",
34
- chainId: 137,
35
- balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
36
- usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
37
- explorerUrl: "https://polygonscan.com",
98
+ name: 'Arbitrum',
99
+ debankName: 'arb',
100
+ ankrName: 'arbitrum',
101
+ zerionName: 'arbitrum',
102
+ viemChain: arbitrum,
103
+ color: '#2D374B',
104
+ chainId: 42161,
105
+ usdcAddress: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8',
106
+ balanceResolverAddress: '0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2',
107
+ fakeTransactionHash:
108
+ '0x9fa291c3b09d31f19b1fa5dd05f30169d1364036d5f7c14b026410bc07bd8843',
109
+ explorerUrl: 'https://arbiscan.io',
110
+ apiURL: 'https://api.arbiscan.io/api',
38
111
  get serverRpcUrl() {
39
- return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
112
+ return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0]
40
113
  },
41
114
  params: {
42
- chainName: "Matic(Polygon) Mainnet",
115
+ chainName: 'Arbitrum One',
43
116
  nativeCurrency: {
44
- name: "Matic",
45
- symbol: "MATIC",
117
+ name: 'Ethereum',
118
+ symbol: 'ETH',
46
119
  decimals: 18,
47
120
  },
48
- rpcUrls: ["https://polygon-rpc.com"],
121
+ rpcUrls: ['https://arb1.arbitrum.io/rpc'],
49
122
  },
50
123
  },
51
124
  {
52
- name: "Arbitrum",
53
- debankName: "arb",
54
- ankrName: "arbitrum",
55
- zerionName: "arbitrum",
56
- color: "#2D374B",
57
- chainId: 42161,
58
- usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
59
- balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
60
- explorerUrl: "https://arbiscan.io",
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',
61
160
  get serverRpcUrl() {
62
- return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
161
+ return process.env?.BASE_RPC_URL || this.params.rpcUrls[0]
63
162
  },
163
+ usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
164
+ balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
64
165
  params: {
65
- chainName: "Arbitrum One",
166
+ rpcUrls: ['https://rpc.ankr.com/base'],
167
+ chainName: 'Base',
66
168
  nativeCurrency: {
67
- name: "Ethereum",
68
- symbol: "ETH",
169
+ name: 'Ethereum',
170
+ symbol: 'ETH',
69
171
  decimals: 18,
70
172
  },
71
- rpcUrls: ["https://arb1.arbitrum.io/rpc"],
72
173
  },
73
174
  },
74
175
  {
75
- name: "Optimism",
76
- debankName: "op",
77
- ankrName: "optimism",
78
- zerionName: "optimism",
79
- color: "#FF0420",
176
+ name: 'Optimism',
177
+ debankName: 'op',
178
+ ankrName: 'optimism',
179
+ zerionName: 'optimism',
180
+ color: '#FF0420',
181
+ viemChain: optimism,
80
182
  chainId: 10,
81
- usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
82
- balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
83
- explorerUrl: "https://optimistic.etherscan.io",
183
+ apiURL: 'https://api-optimistic.etherscan.io/api',
184
+ usdcAddress: '0x7f5c764cbc14f9669b88837ca1490cca17c31607',
185
+ balanceResolverAddress: '0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2',
186
+ fakeTransactionHash:
187
+ '0xee7311d68059732b05088f2144dfec6c7a4f5fd0433eb85306afcd6bdf17cebc',
188
+ explorerUrl: 'https://optimistic.etherscan.io',
84
189
  get serverRpcUrl() {
85
- return process.env?.OPTIMISM_RPC_URL || this.params.rpcUrls[0];
190
+ return process.env?.OPTIMISM_RPC_URL || this.params.rpcUrls[0]
86
191
  },
87
192
  params: {
88
- chainName: "Optimistic Ethereum",
193
+ chainName: 'Optimistic Ethereum',
89
194
  nativeCurrency: {
90
- name: "Ethereum",
91
- symbol: "ETH",
195
+ name: 'Ethereum',
196
+ symbol: 'ETH',
92
197
  decimals: 18,
93
198
  },
94
- rpcUrls: ["https://rpc.ankr.com/optimism"],
199
+ rpcUrls: ['https://rpc.ankr.com/optimism'],
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
  {
121
- name: "BSC",
122
- debankName: "bsc",
123
- ankrName: "bsc",
124
- zerionName: "binance-smart-chain",
125
- color: "#F3BA2F",
228
+ name: 'BSC',
229
+ debankName: 'bsc',
230
+ ankrName: 'bsc',
231
+ zerionName: 'binance-smart-chain',
232
+ color: '#F3BA2F',
126
233
  chainId: 56,
127
- explorerUrl: "https://bscscan.com",
128
- usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
129
- balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
234
+ explorerUrl: 'https://bscscan.com',
235
+ viemChain: bsc,
236
+ fakeTransactionHash:
237
+ '0x897d54bf8e492f840bd4d8f1e743bfcab8226ab4d5a899e47ee433dcd6d6abf7',
238
+ apiURL: 'https://api.bscscan.com/api',
239
+ usdcAddress: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d',
240
+ balanceResolverAddress: '0xb808cff38706e267067b0af427726aa099f69f89',
130
241
  get serverRpcUrl() {
131
- return process.env?.BSC_RPC_URL || this.params.rpcUrls[0];
242
+ return process.env?.BSC_RPC_URL || this.params.rpcUrls[0]
132
243
  },
133
244
  params: {
134
- chainName: "Binance Smart Chain",
135
- rpcUrls: ["https://rpc.ankr.com/bsc"],
245
+ chainName: 'Binance Smart Chain',
246
+ rpcUrls: ['https://rpc.ankr.com/bsc'],
136
247
  nativeCurrency: {
137
- name: "Binance Coin",
138
- symbol: "BNB",
248
+ name: 'Binance Coin',
249
+ symbol: 'BNB',
139
250
  decimals: 18,
140
251
  },
141
252
  },
142
253
  },
143
254
  {
144
- name: "Gnosis",
145
- debankName: "xdai",
146
- zerionName: "xdai",
147
- color: "#04795C",
148
- chainId: 100,
149
- balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
150
- explorerUrl: "https://gnosisscan.io",
151
- usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
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',
152
268
  get serverRpcUrl() {
153
- return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
269
+ return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0]
154
270
  },
155
271
  params: {
156
- chainName: "Gnosis Safe",
157
- rpcUrls: ["https://rpc.ankr.com/gnosis"],
272
+ chainName: 'Avalanche Network',
158
273
  nativeCurrency: {
159
- name: "xdaistable",
160
- symbol: "xDAI",
274
+ name: 'Avalanche',
275
+ symbol: 'AVAX',
161
276
  decimals: 18,
162
277
  },
278
+ rpcUrls: ['https://rpc.ankr.com/avalanche'],
163
279
  },
164
280
  },
165
281
  {
166
- name: "Polygon zkEVM",
167
- chainId: 1101,
168
- color: "#8544f6",
169
- explorerUrl: "https://zkevm.polygonscan.com",
170
- balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
171
- usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
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,
172
290
  get serverRpcUrl() {
173
- return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
291
+ return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0]
174
292
  },
293
+ usdcAddress: '0x04068da6c83afcfa0e13ba15a6696662335d5b75',
294
+ balanceResolverAddress: '0x929376c77a2fb8152375a089a4fccf84ff481479',
295
+ fakeTransactionHash:
296
+ '0x1e9a8405d660172314124e06896212c0786d7fb1550b89410d4bc87e9e8054e4',
175
297
  params: {
176
- chainName: "polygon zkEVM",
177
- rpcUrls: ["https://zkevm-rpc.com"],
298
+ rpcUrls: ['https://rpc.ankr.com/fantom'],
299
+ chainName: 'Fantom',
178
300
  nativeCurrency: {
179
- name: "Ethereum",
180
- symbol: "ETH",
301
+ name: 'Fantom',
302
+ symbol: 'FTM',
181
303
  decimals: 18,
182
304
  },
183
305
  },
184
306
  },
185
307
  {
186
- name: "Aurora",
308
+ name: 'Gnosis',
309
+ debankName: 'xdai',
310
+ zerionName: 'xdai',
311
+ color: '#04795C',
312
+ ankrName: 'gnosis',
313
+ viemChain: gnosis,
314
+ chainId: 100,
315
+ balanceResolverAddress: '0xfaa244e276b1597f663975ed007ee4ff70d27849',
316
+ explorerUrl: 'https://gnosisscan.io',
317
+ fakeTransactionHash:
318
+ '0x1513033806310a2c3b29f2276f8aa7388461b0ef9f8499c297e68c12187c179b',
319
+ apiURL: 'https://api.gnosisscan.io/api',
320
+ usdcAddress: '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83',
321
+ get serverRpcUrl() {
322
+ return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0]
323
+ },
324
+ params: {
325
+ chainName: 'Gnosis Safe',
326
+ rpcUrls: ['https://rpc.ankr.com/gnosis'],
327
+ nativeCurrency: {
328
+ name: 'xdaistable',
329
+ symbol: 'xDAI',
330
+ decimals: 18,
331
+ },
332
+ },
333
+ },
334
+ {
335
+ name: 'Aurora',
187
336
  chainId: 1313161554,
188
- zerionName: "aurora",
189
- color: "#78d64b",
190
- explorerUrl: "https://explorer.mainnet.aurora.dev",
337
+ zerionName: 'aurora',
338
+ color: '#78d64b',
339
+ viemChain: aurora,
340
+ explorerUrl: 'https://explorer.mainnet.aurora.dev',
341
+ apiURL: 'https://explorer.mainnet.aurora.dev/api/v2',
342
+ fakeTransactionHash:
343
+ '0x0923401c5a80c39a5cd57c098a6c4729edbefd0db6894def7d349493f4ff3ec6',
191
344
  get serverRpcUrl() {
192
- return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
345
+ return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0]
193
346
  },
194
- usdcAddress: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
195
- balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
347
+ usdcAddress: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802',
348
+ balanceResolverAddress: '0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474',
196
349
  params: {
197
- rpcUrls: ["https://mainnet.aurora.dev"],
198
- chainName: "Aurora",
350
+ rpcUrls: ['https://mainnet.aurora.dev'],
351
+ chainName: 'Aurora',
199
352
  nativeCurrency: {
200
353
  decimals: 18,
201
- name: "Aurora ETH",
202
- symbol: "AETH",
354
+ name: 'Aurora ETH',
355
+ symbol: 'AETH',
203
356
  },
204
357
  },
205
358
  },
206
359
  {
207
- name: "Fantom",
208
- chainId: 250,
209
- zerionName: "fantom",
210
- explorerUrl: "https://ftmscan.com",
211
- ankrName: "fantom",
212
- 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',
213
369
  get serverRpcUrl() {
214
- return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
370
+ return process.env?.FUSE_RPC_URL || this.params.rpcUrls[0]
215
371
  },
216
- usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
217
- balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
372
+ usdcAddress: '',
373
+ balanceResolverAddress: '0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474',
218
374
  params: {
219
- rpcUrls: ["https://rpc.ankr.com/fantom"],
220
- chainName: "Fantom",
375
+ rpcUrls: ['https://fuse-mainnet.chainstacklabs.com'],
376
+ chainName: 'Fuse',
221
377
  nativeCurrency: {
222
- name: "Fantom",
223
- symbol: "FTM",
224
378
  decimals: 18,
379
+ name: 'Fuse',
380
+ symbol: 'fuse',
225
381
  },
226
382
  },
227
383
  },
228
- {
229
- name: 'Base',
230
- chainId: 8453,
231
- color: '#1E2024',
232
- explorerUrl: 'https://basescan.org',
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',
233
394
  get serverRpcUrl() {
234
- return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
235
- },
236
- usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
237
- balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
238
- params: {
239
- rpcUrls: ['https://rpc.ankr.com/base'],
240
- chainName: "Base",
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',
241
422
  nativeCurrency: {
242
- name: "Ethereum",
243
- symbol: "ETH",
423
+ name: 'BNB',
424
+ symbol: 'BNB',
244
425
  decimals: 18,
245
426
  },
246
- }
427
+ },
247
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
+ // },
248
512
  {
249
513
  name: AVO_PROD_CHAIN_NAME,
250
514
  chainId: AVO_PROD_CHAIN_ID,
515
+ apiURL: null,
251
516
  isAvocado: true,
252
- balanceResolverAddress: "",
253
- color: "#16A34A",
254
- usdcAddress: "",
517
+ balanceResolverAddress: '',
518
+ fakeTransactionHash: '',
519
+ viemChain: avocado,
520
+ color: '#16A34A',
521
+ usdcAddress: '',
255
522
  serverRpcUrl: AVO_PROD_RPC_URL,
256
523
  explorerUrl: AVO_PROD_EXPLORER_URL,
257
524
  params: {
258
525
  chainName: AVO_PROD_CHAIN_NAME,
259
526
  nativeCurrency: {
260
- name: "Avocado",
261
- symbol: "USDC",
527
+ name: 'Avocado',
528
+ symbol: 'USDC',
262
529
  decimals: 18,
263
530
  },
264
- iconUrls: ["https://avocado.instadapp.io/logo.svg"],
531
+ iconUrls: ['https://avocado.instadapp.io/logo.svg'],
265
532
  rpcUrls: [AVO_PROD_RPC_URL],
266
533
  },
267
534
  },
268
535
  {
269
536
  name: AVO_STAGING_CHAIN_NAME,
537
+ apiURL: null,
270
538
  chainId: AVO_STAGING_CHAIN_ID,
271
539
  serverRpcUrl: AVO_STAGING_RPC_URL,
272
- color: "#16A34A",
540
+ color: '#16A34A',
273
541
  explorerUrl: AVO_STAGING_EXPLORER_URL,
542
+ viemChain: avocadoStaging,
543
+ fakeTransactionHash: '',
274
544
  isAvocado: true,
275
- balanceResolverAddress: "",
276
- usdcAddress: "",
545
+ balanceResolverAddress: '',
546
+ usdcAddress: '',
277
547
  params: {
278
548
  chainName: AVO_STAGING_CHAIN_NAME,
279
549
  nativeCurrency: {
280
- name: "Avocado",
281
- symbol: "USDC",
550
+ name: 'Avocado',
551
+ symbol: 'USDC',
282
552
  decimals: 18,
283
553
  },
284
- iconUrls: ["https://avocado.instadapp.io/logo.svg"],
554
+ iconUrls: ['https://avocado.instadapp.io/logo.svg'],
285
555
  rpcUrls: [AVO_STAGING_RPC_URL],
286
556
  },
287
557
  },
288
- ];
558
+ ]
289
559
 
290
560
  export const chainUsdcAddresses = [
291
561
  { chainId: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },
@@ -293,74 +563,80 @@ export const chainUsdcAddresses = [
293
563
  { chainId: 56, address: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d' },
294
564
  { chainId: 100, address: '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83' },
295
565
  { chainId: 137, address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' },
566
+ { chainId: 137, address: '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359' },
296
567
  { chainId: 250, address: '0x04068da6c83afcfa0e13ba15a6696662335d5b75' },
297
568
  { chainId: 42161, address: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8' },
298
569
  { chainId: 42161, address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831' },
299
570
  { chainId: 43114, address: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e' },
300
571
  { chainId: 43114, address: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664' },
301
572
  { chainId: 1101, address: '0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035' },
302
- { chainId: 1313161554, address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802' },
303
- { chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'}
304
- ];
573
+ {
574
+ chainId: 1313161554,
575
+ address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802',
576
+ },
577
+ { chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA' },
578
+ ]
305
579
 
306
- export const getNetworkByChainId = (
307
- chainId: ChainId | number | string
308
- ): Network => {
309
- return networks.find((i) => i.chainId == chainId)!;
310
- };
580
+ export function getNetworkByChainId(chainId: ChainId | number | string): Network {
581
+ return networks.find(i => i.chainId == chainId)!
582
+ }
311
583
 
312
584
  export const availableNetworks = networks.filter(
313
- (network) => !network.isAvocado
314
- );
585
+ network => !network.isAvocado,
586
+ )
315
587
 
316
- export const chainIdToName = (chainId: ChainId | number | string) => {
317
- const network = getNetworkByChainId(chainId);
318
- return network.name;
319
- };
588
+ export function chainIdToName(chainId: ChainId | number | string) {
589
+ const network = getNetworkByChainId(chainId)
590
+ return network?.name
591
+ }
320
592
 
321
- export const getRpcURLByChainId = (chainId: ChainId | number | string) => {
322
- const network = getNetworkByChainId(chainId);
323
- return network.params.rpcUrls[0];
324
- };
593
+ export function getRpcURLByChainId(chainId: ChainId | number | string) {
594
+ try {
595
+ const network = getNetworkByChainId(chainId)
596
+ return network.params.rpcUrls[0]
597
+ }
598
+ catch (e) {
599
+ return ''
600
+ }
601
+ }
325
602
 
326
603
  export const RPCMap = networks.reduce((acc, network) => {
327
- acc[network.chainId] = network.params.rpcUrls[0];
328
- return acc;
329
- }, {} as Record<number, string>);
604
+ acc[network.chainId] = network.params.rpcUrls[0]
605
+ return acc
606
+ }, {} as Record<number, string>)
330
607
 
331
- export const networkIds = networks.map((network) => network.chainId);
608
+ export const networkIds = networks.map(network => network.chainId)
332
609
 
333
- const rpcInstances: Record<string, ethers.providers.StaticJsonRpcProvider> = {};
610
+ const rpcInstances: Record<string, ethers.providers.StaticJsonRpcProvider> = {}
334
611
  const serverRpcInstances: Record<
335
612
  string,
336
613
  ethers.providers.StaticJsonRpcProvider
337
- > = {};
614
+ > = {}
338
615
 
339
- export const getServerRpcProvider = (chainId: number | string) => {
616
+ export function getServerRpcProvider(chainId: number | string) {
340
617
  if (!rpcInstances[chainId]) {
341
- const network = networks.find((n) => n.chainId == chainId);
618
+ const network = networks.find(n => n.chainId == chainId)
342
619
  serverRpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
343
- network?.serverRpcUrl
344
- );
620
+ network?.serverRpcUrl,
621
+ )
345
622
  }
346
623
 
347
- return serverRpcInstances[chainId];
348
- };
624
+ return serverRpcInstances[chainId]
625
+ }
349
626
 
350
- export const getRpcProvider = (chainId: number | string) => {
627
+ export function getRpcProvider(chainId: number | string) {
351
628
  if (!rpcInstances[chainId]) {
352
629
  rpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
353
- getRpcURLByChainId(Number(chainId))
354
- );
630
+ getRpcURLByChainId(Number(chainId)),
631
+ )
355
632
  }
356
633
 
357
- return rpcInstances[chainId];
358
- };
634
+ return rpcInstances[chainId]
635
+ }
359
636
 
360
- export const getExplorerUrl = (
361
- chainId: ChainId | number | string,
362
- suffix: `/${string}` = "/"
363
- ) => {
364
- const network = getNetworkByChainId(chainId);
365
- return `${network.explorerUrl}${suffix}`;
366
- };
637
+ export function getExplorerUrl(chainId: ChainId | number | string, suffix: `/${string}` = '/') {
638
+ const network = getNetworkByChainId(chainId)
639
+ if (!network)
640
+ return ''
641
+ return `${network.explorerUrl}${suffix}`
642
+ }