@instadapp/avocado-base 0.0.0-dev.8d2b9ac → 0.0.0-dev.8e9feac

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 (43) hide show
  1. package/.github/workflows/npm-publish-dev.yml +2 -5
  2. package/.vscode/settings.json +67 -0
  3. package/abi/avoFactoryProxy.json +1 -1
  4. package/abi/forwarder.json +1 -1
  5. package/abi/multisigAgnosticForwarder.json +937 -0
  6. package/abi/multisigForwarder.json +697 -0
  7. package/app.vue +5 -5
  8. package/assets/images/icons/check.svg +3 -0
  9. package/assets/images/icons/copy.svg +9 -2
  10. package/assets/images/icons/hammer.svg +5 -0
  11. package/assets/images/icons/info-2.svg +12 -0
  12. package/assets/images/icons/stars.svg +4 -0
  13. package/components/ActionLogo.vue +33 -29
  14. package/components/ActionMetadata.vue +45 -29
  15. package/components/Address.vue +74 -0
  16. package/components/AuthorityAvatar.vue +15 -2
  17. package/components/ChainLogo.vue +22 -224
  18. package/components/CopyClipboard.vue +16 -38
  19. package/components/metadata/Bridge.vue +22 -23
  20. package/components/metadata/CrossTransfer.vue +35 -30
  21. package/components/metadata/GasTopup.vue +14 -15
  22. package/components/metadata/Permit2.vue +12 -13
  23. package/components/metadata/Signers.vue +12 -38
  24. package/components/metadata/Swap.vue +45 -53
  25. package/components/metadata/Transfer.vue +26 -27
  26. package/contracts/MultisigAgnosticForwarder.ts +1423 -0
  27. package/contracts/MultisigForwarder.ts +859 -0
  28. package/contracts/factories/MultisigAgnosticForwarder__factory.ts +2135 -0
  29. package/contracts/factories/MultisigForwarder__factory.ts +721 -0
  30. package/contracts/factories/index.ts +2 -0
  31. package/contracts/index.ts +4 -0
  32. package/nuxt.config.ts +8 -13
  33. package/package.json +16 -18
  34. package/server/utils/index.ts +4 -4
  35. package/utils/avocado.ts +17 -17
  36. package/utils/bignumber.ts +47 -36
  37. package/utils/formatter.ts +55 -61
  38. package/utils/helper.ts +33 -41
  39. package/utils/metadata.ts +431 -310
  40. package/utils/network.ts +543 -193
  41. package/utils/services.ts +11 -13
  42. package/utils/utils.d.ts +122 -104
  43. package/components.d.ts +0 -13
package/utils/network.ts CHANGED
@@ -1,301 +1,645 @@
1
- import { ethers } from "ethers";
1
+ import { ethers } from 'ethers'
2
+ import { defineChain } from 'viem'
3
+ import {
4
+ arbitrum,
5
+ aurora,
6
+ avalanche,
7
+ base,
8
+ blast,
9
+ bsc,
10
+ fantom,
11
+ fuse,
12
+ gnosis,
13
+ linea,
14
+ mainnet,
15
+ mode,
16
+ opBNB,
17
+ optimism,
18
+ polygon,
19
+ polygonZkEvm,
20
+ scroll,
21
+ ink,
22
+ plasma,
23
+ } from 'viem/chains'
2
24
  import {
3
- AVO_PROD_CHAIN_NAME,
4
25
  AVO_PROD_CHAIN_ID,
5
- AVO_PROD_RPC_URL,
26
+ AVO_PROD_CHAIN_NAME,
6
27
  AVO_PROD_EXPLORER_URL,
7
- AVO_STAGING_CHAIN_NAME,
28
+ AVO_PROD_RPC_URL,
8
29
  AVO_STAGING_CHAIN_ID,
9
- AVO_STAGING_RPC_URL,
30
+ AVO_STAGING_CHAIN_NAME,
10
31
  AVO_STAGING_EXPLORER_URL,
32
+ AVO_STAGING_RPC_URL,
11
33
  } from './avocado'
12
34
 
13
- export const bridgeDisabledNetworks = [1101];
35
+ export const bridgeDisabledNetworks = []
36
+
37
+ export const networksSimulationNotSupported = [1313161554, 1101]
38
+
39
+ const avocado = defineChain({
40
+ id: AVO_PROD_CHAIN_ID,
41
+ name: AVO_PROD_CHAIN_NAME,
42
+ nativeCurrency: {
43
+ name: 'Avocado',
44
+ symbol: 'USDC',
45
+ decimals: 18,
46
+ },
47
+ rpcUrls: {
48
+ default: { http: [AVO_PROD_RPC_URL] },
49
+ },
50
+ blockExplorers: {
51
+ default: { name: 'Avoscan', url: AVO_PROD_EXPLORER_URL },
52
+ },
53
+ })
54
+
55
+ const avocadoStaging = defineChain({
56
+ id: AVO_STAGING_CHAIN_ID,
57
+ name: AVO_STAGING_CHAIN_NAME,
58
+ nativeCurrency: {
59
+ name: 'Avocado',
60
+ symbol: 'USDC',
61
+ decimals: 18,
62
+ },
63
+ rpcUrls: {
64
+ default: { http: [AVO_STAGING_RPC_URL] },
65
+ },
66
+ blockExplorers: {
67
+ default: { name: 'Avoscan', url: AVO_STAGING_EXPLORER_URL },
68
+ },
69
+
70
+ })
14
71
 
15
72
  export const networks: Network[] = [
16
73
  {
17
- name: "Polygon",
18
- debankName: "matic",
19
- ankrName: "polygon",
20
- zerionName: "polygon",
21
- color: "#7A4ADD",
74
+ name: 'Polygon',
75
+ debankName: 'matic',
76
+ ankrName: 'polygon',
77
+ zerionName: 'polygon',
78
+ color: '#7A4ADD',
22
79
  chainId: 137,
23
- balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
24
- usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
25
- explorerUrl: "https://polygonscan.com",
80
+ legacySupported: true,
81
+ viemChain: polygon,
82
+ balanceResolverAddress: '0x58632D23120b20650262b8A629a14e4F4043E0D9',
83
+ usdcAddress: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
84
+ explorerUrl: 'https://polygonscan.com',
85
+ apiURL: 'https://api.polygonscan.com/api',
86
+ fakeTransactionHash:
87
+ '0x906c551abd5873a428505b6530ac14d91367820706c7ee525f6d7313265d1c92',
26
88
  get serverRpcUrl() {
27
- return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
89
+ return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0]
28
90
  },
29
91
  params: {
30
- chainName: "Matic(Polygon) Mainnet",
92
+ chainName: 'Matic(Polygon) Mainnet',
31
93
  nativeCurrency: {
32
- name: "Matic",
33
- symbol: "MATIC",
94
+ name: 'POL (ex-MATIC)',
95
+ symbol: 'POL',
34
96
  decimals: 18,
35
97
  },
36
- rpcUrls: ["https://polygon-rpc.com"],
98
+ rpcUrls: ['https://polygon-rpc.com'],
37
99
  },
38
100
  },
39
101
  {
40
- name: "Arbitrum",
41
- debankName: "arb",
42
- ankrName: "arbitrum",
43
- zerionName: "arbitrum",
44
- color: "#2D374B",
102
+ name: 'Arbitrum',
103
+ debankName: 'arb',
104
+ ankrName: 'arbitrum',
105
+ zerionName: 'arbitrum',
106
+ legacySupported: true,
107
+ viemChain: arbitrum,
108
+ color: '#2D374B',
45
109
  chainId: 42161,
46
- usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
47
- balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
48
- explorerUrl: "https://arbiscan.io",
110
+ usdcAddress: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8',
111
+ balanceResolverAddress: '0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2',
112
+ fakeTransactionHash:
113
+ '0x9fa291c3b09d31f19b1fa5dd05f30169d1364036d5f7c14b026410bc07bd8843',
114
+ explorerUrl: 'https://arbiscan.io',
115
+ apiURL: 'https://api.arbiscan.io/api',
49
116
  get serverRpcUrl() {
50
- return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
117
+ return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0]
51
118
  },
52
119
  params: {
53
- chainName: "Arbitrum One",
120
+ chainName: 'Arbitrum One',
54
121
  nativeCurrency: {
55
- name: "Ethereum",
56
- symbol: "ETH",
122
+ name: 'Ethereum',
123
+ symbol: 'ETH',
57
124
  decimals: 18,
58
125
  },
59
- rpcUrls: ["https://arb1.arbitrum.io/rpc"],
126
+ rpcUrls: ['https://arb1.arbitrum.io/rpc'],
60
127
  },
61
128
  },
62
129
  {
63
- name: "Ethereum",
64
- debankName: "eth",
65
- ankrName: "eth",
66
- zerionName: "ethereum",
130
+ name: 'Ethereum',
131
+ debankName: 'eth',
132
+ ankrName: 'eth',
133
+ zerionName: 'ethereum',
134
+ viemChain: mainnet,
67
135
  chainId: 1,
68
- explorerUrl: "https://etherscan.io",
69
- color: "#5D5FEF",
136
+ explorerUrl: 'https://etherscan.io',
137
+ legacySupported: true,
138
+ fakeTransactionHash:
139
+ '0x13232dd32cef2f641ead890a507710c96560c8c9c3d5fab6facb5ec563c49433',
140
+ apiURL: 'https://api.etherscan.io/api',
141
+ color: '#5D5FEF',
70
142
  get serverRpcUrl() {
71
- return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
143
+ return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0]
72
144
  },
73
- balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
74
- usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
145
+ balanceResolverAddress: '0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43',
146
+ usdcAddress: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
75
147
  params: {
76
- rpcUrls: ["https://rpc.ankr.com/eth"],
148
+ rpcUrls: ['https://rpc.ankr.com/eth'],
77
149
  nativeCurrency: {
78
- name: "Ethereum",
79
- symbol: "ETH",
150
+ name: 'Ethereum',
151
+ symbol: 'ETH',
80
152
  decimals: 18,
81
153
  },
82
154
  },
83
- },
155
+ },
84
156
  {
85
157
  name: 'Base',
86
158
  chainId: 8453,
87
159
  color: '#1E2024',
160
+ ankrName: 'base',
161
+ viemChain: base,
88
162
  explorerUrl: 'https://basescan.org',
163
+ legacySupported: true,
164
+ fakeTransactionHash:
165
+ '0xf7833d80da33730c4fc5d4c64151f0eaa64c0c0535be022af0228a44cc4e9c8e',
166
+ apiURL: 'https://api.basescan.org/api',
89
167
  get serverRpcUrl() {
90
- return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
91
- },
92
- usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
93
- balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
94
- params: {
168
+ return process.env?.BASE_RPC_URL || this.params.rpcUrls[0]
169
+ },
170
+ usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
171
+ balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
172
+ params: {
95
173
  rpcUrls: ['https://rpc.ankr.com/base'],
96
- chainName: "Base",
174
+ chainName: 'Base',
97
175
  nativeCurrency: {
98
- name: "Ethereum",
99
- symbol: "ETH",
176
+ name: 'Ethereum',
177
+ symbol: 'ETH',
100
178
  decimals: 18,
101
179
  },
102
- }
180
+ },
103
181
  },
104
182
  {
105
- name: "Optimism",
106
- debankName: "op",
107
- ankrName: "optimism",
108
- zerionName: "optimism",
109
- color: "#FF0420",
183
+ name: 'Optimism',
184
+ debankName: 'op',
185
+ ankrName: 'optimism',
186
+ zerionName: 'optimism',
187
+ color: '#FF0420',
188
+ legacySupported: true,
189
+ viemChain: optimism,
110
190
  chainId: 10,
111
- usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
112
- balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
113
- explorerUrl: "https://optimistic.etherscan.io",
191
+ apiURL: 'https://api-optimistic.etherscan.io/api',
192
+ usdcAddress: '0x7f5c764cbc14f9669b88837ca1490cca17c31607',
193
+ balanceResolverAddress: '0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2',
194
+ fakeTransactionHash:
195
+ '0xee7311d68059732b05088f2144dfec6c7a4f5fd0433eb85306afcd6bdf17cebc',
196
+ explorerUrl: 'https://optimistic.etherscan.io',
114
197
  get serverRpcUrl() {
115
- return process.env?.OPTIMISM_RPC_URL || this.params.rpcUrls[0];
198
+ return process.env?.OPTIMISM_RPC_URL || this.params.rpcUrls[0]
116
199
  },
117
200
  params: {
118
- chainName: "Optimistic Ethereum",
201
+ chainName: 'Optimistic Ethereum',
119
202
  nativeCurrency: {
120
- name: "Ethereum",
121
- symbol: "ETH",
203
+ name: 'Ethereum',
204
+ symbol: 'ETH',
122
205
  decimals: 18,
123
206
  },
124
- rpcUrls: ["https://rpc.ankr.com/optimism"],
207
+ rpcUrls: ['https://rpc.ankr.com/optimism'],
125
208
  },
126
209
  },
127
210
  {
128
- name: "Polygon zkEVM",
211
+ name: 'Polygon zkEVM',
129
212
  chainId: 1101,
130
- color: "#8544f6",
131
- explorerUrl: "https://zkevm.polygonscan.com",
132
- balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
133
- usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
213
+ color: '#8544f6',
214
+ ankrName: 'polygon_zkevm',
215
+ viemChain: polygonZkEvm,
216
+ legacySupported: true,
217
+ explorerUrl: 'https://zkevm.polygonscan.com',
218
+ apiURL: 'https://api-zkevm.polygonscan.com/api',
219
+ balanceResolverAddress: '0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01',
220
+ fakeTransactionHash:
221
+ '0x1077130463ade91ad4e9c43c3195298e26a99970975238128912490eea12bf41',
222
+ usdcAddress: '0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035',
134
223
  get serverRpcUrl() {
135
- return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
224
+ return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0]
136
225
  },
137
226
  params: {
138
- chainName: "polygon zkEVM",
139
- rpcUrls: ["https://zkevm-rpc.com"],
227
+ chainName: 'polygon zkEVM',
228
+ rpcUrls: ['https://zkevm-rpc.com'],
140
229
  nativeCurrency: {
141
- name: "Ethereum",
142
- symbol: "ETH",
230
+ name: 'Ethereum',
231
+ symbol: 'ETH',
143
232
  decimals: 18,
144
233
  },
145
234
  },
146
235
  },
147
236
  {
148
- name: "BSC",
149
- debankName: "bsc",
150
- ankrName: "bsc",
151
- zerionName: "binance-smart-chain",
152
- color: "#F3BA2F",
237
+ name: 'BSC',
238
+ debankName: 'bsc',
239
+ ankrName: 'bsc',
240
+ zerionName: 'binance-smart-chain',
241
+ color: '#F3BA2F',
153
242
  chainId: 56,
154
- explorerUrl: "https://bscscan.com",
155
- usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
156
- balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
243
+ legacySupported: true,
244
+ explorerUrl: 'https://bscscan.com',
245
+ viemChain: bsc,
246
+ fakeTransactionHash:
247
+ '0x897d54bf8e492f840bd4d8f1e743bfcab8226ab4d5a899e47ee433dcd6d6abf7',
248
+ apiURL: 'https://api.bscscan.com/api',
249
+ usdcAddress: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d',
250
+ balanceResolverAddress: '0xb808cff38706e267067b0af427726aa099f69f89',
157
251
  get serverRpcUrl() {
158
- return process.env?.BSC_RPC_URL || this.params.rpcUrls[0];
252
+ return process.env?.BSC_RPC_URL || this.params.rpcUrls[0]
159
253
  },
160
254
  params: {
161
- chainName: "Binance Smart Chain",
162
- rpcUrls: ["https://rpc.ankr.com/bsc"],
255
+ chainName: 'Binance Smart Chain',
256
+ rpcUrls: ['https://rpc.ankr.com/bsc'],
163
257
  nativeCurrency: {
164
- name: "Binance Coin",
165
- symbol: "BNB",
258
+ name: 'Binance Coin',
259
+ symbol: 'BNB',
166
260
  decimals: 18,
167
261
  },
168
262
  },
169
263
  },
170
264
  {
171
- name: "Avalanche",
172
- debankName: "avax",
173
- ankrName: "avalanche",
174
- zerionName: "avalanche",
175
- color: "#EB5757",
265
+ name: 'Avalanche',
266
+ debankName: 'avax',
267
+ ankrName: 'avalanche',
268
+ zerionName: 'avalanche',
269
+ color: '#EB5757',
270
+ viemChain: avalanche,
271
+ legacySupported: true,
176
272
  chainId: 43114,
177
- usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
178
- balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
179
- explorerUrl: "https://snowtrace.io",
273
+ usdcAddress: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e',
274
+ balanceResolverAddress: '0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E',
275
+ explorerUrl: 'https://snowtrace.io',
276
+ fakeTransactionHash:
277
+ '0x233aac7402558dd4e23f938a50f983e67f5c9604233981c7ac74e63737b8294e',
278
+ apiURL: 'https://api.routescan.io/v2/network/mainnet/evm/43114/etherscan/api',
180
279
  get serverRpcUrl() {
181
- return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
280
+ return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0]
182
281
  },
183
282
  params: {
184
- chainName: "Avalanche Network",
283
+ chainName: 'Avalanche Network',
185
284
  nativeCurrency: {
186
- name: "Avalanche",
187
- symbol: "AVAX",
285
+ name: 'Avalanche',
286
+ symbol: 'AVAX',
188
287
  decimals: 18,
189
288
  },
190
- rpcUrls: ["https://rpc.ankr.com/avalanche"],
289
+ rpcUrls: ['https://rpc.ankr.com/avalanche'],
191
290
  },
192
291
  },
193
292
  {
194
- name: "Fantom",
293
+ name: 'Fantom',
195
294
  chainId: 250,
196
- zerionName: "fantom",
197
- explorerUrl: "https://ftmscan.com",
198
- ankrName: "fantom",
199
- color: "#1969ff",
295
+ zerionName: 'fantom',
296
+ explorerUrl: 'https://ftmscan.com',
297
+ apiURL: 'https://api.ftmscan.com/api',
298
+ ankrName: 'fantom',
299
+ color: '#1969ff',
300
+ legacySupported: true,
301
+ viemChain: fantom,
200
302
  get serverRpcUrl() {
201
- return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
303
+ return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0]
202
304
  },
203
- usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
204
- balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
305
+ usdcAddress: '0x04068da6c83afcfa0e13ba15a6696662335d5b75',
306
+ balanceResolverAddress: '0x929376c77a2fb8152375a089a4fccf84ff481479',
307
+ fakeTransactionHash:
308
+ '0x1e9a8405d660172314124e06896212c0786d7fb1550b89410d4bc87e9e8054e4',
205
309
  params: {
206
- rpcUrls: ["https://rpc.ankr.com/fantom"],
207
- chainName: "Fantom",
310
+ rpcUrls: ['https://rpc.ankr.com/fantom'],
311
+ chainName: 'Fantom',
208
312
  nativeCurrency: {
209
- name: "Fantom",
210
- symbol: "FTM",
313
+ name: 'Fantom',
314
+ symbol: 'FTM',
211
315
  decimals: 18,
212
316
  },
213
317
  },
214
318
  },
215
319
  {
216
- name: "Gnosis",
217
- debankName: "xdai",
218
- zerionName: "xdai",
219
- color: "#04795C",
320
+ name: 'Gnosis',
321
+ debankName: 'xdai',
322
+ zerionName: 'xdai',
323
+ color: '#04795C',
324
+ ankrName: 'gnosis',
325
+ viemChain: gnosis,
326
+ legacySupported: true,
220
327
  chainId: 100,
221
- balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
222
- explorerUrl: "https://gnosisscan.io",
223
- usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
328
+ balanceResolverAddress: '0xfaa244e276b1597f663975ed007ee4ff70d27849',
329
+ explorerUrl: 'https://gnosisscan.io',
330
+ fakeTransactionHash:
331
+ '0x1513033806310a2c3b29f2276f8aa7388461b0ef9f8499c297e68c12187c179b',
332
+ apiURL: 'https://api.gnosisscan.io/api',
333
+ usdcAddress: '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83',
224
334
  get serverRpcUrl() {
225
- return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
335
+ return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0]
226
336
  },
227
337
  params: {
228
- chainName: "Gnosis Safe",
229
- rpcUrls: ["https://rpc.ankr.com/gnosis"],
338
+ chainName: 'Gnosis Safe',
339
+ rpcUrls: ['https://rpc.ankr.com/gnosis'],
230
340
  nativeCurrency: {
231
- name: "xdaistable",
232
- symbol: "xDAI",
341
+ name: 'xdaistable',
342
+ symbol: 'xDAI',
233
343
  decimals: 18,
234
344
  },
235
345
  },
236
346
  },
237
347
  {
238
- name: "Aurora",
348
+ name: 'Aurora',
239
349
  chainId: 1313161554,
240
- zerionName: "aurora",
241
- color: "#78d64b",
242
- explorerUrl: "https://explorer.mainnet.aurora.dev",
350
+ zerionName: 'aurora',
351
+ color: '#78d64b',
352
+ viemChain: aurora,
353
+ legacySupported: true,
354
+ explorerUrl: 'https://explorer.mainnet.aurora.dev',
355
+ apiURL: 'https://explorer.mainnet.aurora.dev/api/v2',
356
+ fakeTransactionHash:
357
+ '0x0923401c5a80c39a5cd57c098a6c4729edbefd0db6894def7d349493f4ff3ec6',
358
+ get serverRpcUrl() {
359
+ return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0]
360
+ },
361
+ usdcAddress: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802',
362
+ balanceResolverAddress: '0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474',
363
+ params: {
364
+ rpcUrls: ['https://mainnet.aurora.dev'],
365
+ chainName: 'Aurora',
366
+ nativeCurrency: {
367
+ decimals: 18,
368
+ name: 'Aurora ETH',
369
+ symbol: 'AETH',
370
+ },
371
+ },
372
+ },
373
+ {
374
+ name: 'Fuse',
375
+ chainId: 122,
376
+ zerionName: 'fuse',
377
+ color: '#78d64b',
378
+ explorerUrl: 'https://explorer.fuse.io',
379
+ apiURL: 'https://explorer.fuse.io/api/v2',
380
+ viemChain: fuse,
381
+ legacySupported: false,
382
+ fakeTransactionHash:
383
+ '0xf22a8031de9b978a57c728e18c6b54633356c39db4d0466e53b9b7c3ee7f8def',
384
+ get serverRpcUrl() {
385
+ return process.env?.FUSE_RPC_URL || this.params.rpcUrls[0]
386
+ },
387
+ usdcAddress: '',
388
+ balanceResolverAddress: '0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474',
389
+ params: {
390
+ rpcUrls: ['https://fuse-mainnet.chainstacklabs.com'],
391
+ chainName: 'Fuse',
392
+ nativeCurrency: {
393
+ decimals: 18,
394
+ name: 'Fuse',
395
+ symbol: 'fuse',
396
+ },
397
+ },
398
+ },
399
+ {
400
+ name: 'Scroll',
401
+ chainId: 534352,
402
+ color: '#78d64b',
403
+ ankrName: 'scroll',
404
+ legacySupported: false,
405
+ explorerUrl: 'https://scrollscan.com',
406
+ apiURL: 'https://api.scrollscan.com/api',
407
+ viemChain: scroll,
408
+ fakeTransactionHash:
409
+ '0x6bf297c414264fc8cddd47224632b4426a02138df2f50fe891eca87f6aefea01',
410
+ get serverRpcUrl() {
411
+ return process.env?.SCROLL_RPC_URL || this.params.rpcUrls[0]
412
+ },
413
+ params: {
414
+ rpcUrls: ['https://rpc.scroll.io'],
415
+ chainName: 'Scroll',
416
+ nativeCurrency: {
417
+ name: 'Ethereum',
418
+ symbol: 'ETH',
419
+ decimals: 18,
420
+ },
421
+ },
422
+ },
423
+ {
424
+ name: 'opBNB',
425
+ chainId: 204,
426
+ color: '#78d64b',
427
+ explorerUrl: 'https://opbnbscan.com',
428
+ apiURL: null,
429
+ viemChain: opBNB,
430
+ legacySupported: false,
431
+ fakeTransactionHash:
432
+ '0xb9438a3eae61442bc7d419d79930370ce09ac0f46e0695025751e3bfe1a931e7',
243
433
  get serverRpcUrl() {
244
- return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
434
+ return process.env?.OPBNB_RPC_URL || this.params.rpcUrls[0]
245
435
  },
246
- usdcAddress: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
247
- balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
248
436
  params: {
249
- rpcUrls: ["https://mainnet.aurora.dev"],
250
- chainName: "Aurora",
437
+ rpcUrls: ['https://opbnb-mainnet-rpc.bnbchain.org'],
438
+ chainName: 'opBNB',
251
439
  nativeCurrency: {
440
+ name: 'BNB',
441
+ symbol: 'BNB',
252
442
  decimals: 18,
253
- name: "Aurora ETH",
254
- symbol: "AETH",
255
443
  },
256
444
  },
257
445
  },
446
+ {
447
+ chainId: 34443,
448
+ name: 'Mode',
449
+ color: '#d7ff00',
450
+ explorerUrl: 'https://explorer.mode.network',
451
+ legacySupported: false,
452
+ fakeTransactionHash: '0xb58002db3481f2c51855a91280ec940d0bebec075c4b362b9f90c21a2b14edbe',
453
+ apiURL: 'https://explorer.mode.network/api/v2',
454
+ params: {
455
+ rpcUrls: ['https://1rpc.io/mode'],
456
+ chainName: 'Mode',
457
+ nativeCurrency: {
458
+ name: 'Ethereum',
459
+ symbol: 'ETH',
460
+ decimals: 18,
461
+ },
462
+ },
463
+ get serverRpcUrl() {
464
+ return process.env?.MODE_RPC_URL || this.params.rpcUrls[0]
465
+ },
466
+ viemChain: mode,
467
+ },
468
+ {
469
+ chainId: 81457,
470
+ name: 'Blast',
471
+ color: '#78d64b',
472
+ explorerUrl: 'https://blastscan.io',
473
+ apiURL: 'https://api.blastscan.io/api',
474
+ legacySupported: false,
475
+ fakeTransactionHash: '0x934ed8516242f8c08bb9e0e90bb1f989d92ceb6b0333e86ac2d555f25ac27e58',
476
+ params: {
477
+ rpcUrls: ['https://rpc.ankr.com/blast'],
478
+ chainName: 'Blast',
479
+ nativeCurrency: {
480
+ name: 'Ethereum',
481
+ symbol: 'ETH',
482
+ decimals: 18,
483
+ },
484
+ },
485
+ get serverRpcUrl() {
486
+ return process.env?.BLAST_RPC_URL || this.params.rpcUrls[0]
487
+ },
488
+ viemChain: blast,
489
+ },
490
+ {
491
+ chainId: 59144,
492
+ name: 'Linea',
493
+ apiURL: 'https://api.lineascan.build/api',
494
+ color: '#78d64b',
495
+ explorerUrl: 'https://lineascan.build',
496
+ legacySupported: false,
497
+ params: {
498
+ rpcUrls: ['https://linea-mainnet.public.blastapi.io'],
499
+ chainName: 'Linea',
500
+ nativeCurrency: {
501
+ name: 'Linea Ether',
502
+ symbol: 'ETH',
503
+ decimals: 18,
504
+ },
505
+ },
506
+ fakeTransactionHash: '0x62d068a66eb1515a09e993200e8a495c7fead512689ba78e50523c8e83bbf5b5',
507
+ get serverRpcUrl() {
508
+ return process.env?.LINEA_RPC_URL || this.params.rpcUrls[0]
509
+ },
510
+ viemChain: linea,
511
+ ankrName: 'linea',
512
+ },
513
+ {
514
+ chainId: plasma.id,
515
+ name: plasma.name,
516
+ apiURL: null,
517
+ color: '#78d64b',
518
+ explorerUrl: plasma.blockExplorers.default.url,
519
+ fakeTransactionHash: '0x3523aad6a790c81ef57e1afd4320760b7cea6dd3424ccd582e00ffc9bdc316e6',
520
+ legacySupported: false,
521
+ get serverRpcUrl() {
522
+ return process.env?.PLASMA_RPC_URL || this.params.rpcUrls[0]
523
+ },
524
+ viemChain: plasma,
525
+ params: {
526
+ rpcUrls: plasma.rpcUrls.default.http,
527
+ chainName: plasma.name,
528
+ nativeCurrency: {
529
+ name: plasma.nativeCurrency.name,
530
+ symbol: plasma.nativeCurrency.symbol,
531
+ decimals: plasma.nativeCurrency.decimals,
532
+ },
533
+ },
534
+ },
535
+ {
536
+ chainId: ink.id,
537
+ name: ink.name,
538
+ apiURL: null,
539
+ color: '#78d64b',
540
+ explorerUrl: 'https://inkonscan.xyz',
541
+ fakeTransactionHash: '0x3523aad6a790c81ef57e1afd4320760b7cea6dd3424ccd582e00ffc9bdc316e6',
542
+ legacySupported: false,
543
+ get serverRpcUrl() {
544
+ return process.env?.INK_RPC_URL || this.params.rpcUrls[0]
545
+ },
546
+ viemChain: ink,
547
+ params: {
548
+ rpcUrls: ink.rpcUrls.default.http,
549
+ chainName: ink.name,
550
+ nativeCurrency: {
551
+ name: ink.nativeCurrency.name,
552
+ symbol: ink.nativeCurrency.symbol,
553
+ decimals: ink.nativeCurrency.decimals,
554
+ },
555
+ },
556
+ },
557
+ // {
558
+ // name: sonic.name,
559
+ // chainId: sonic.id,
560
+ // explorerUrl: sonic.blockExplorers.default.url,
561
+ // legacySupported: false,
562
+ // viemChain: sonic,
563
+ // color: '#78d64b',
564
+ // apiURL: null,
565
+ // fakeTransactionHash: '0xc8fe01a980987295c36e898b4681fa8c937eb8dfd48a3ae080956b36a66195ee',
566
+ // get serverRpcUrl() {
567
+ // return process.env?.SONIC_RPC_URL || this.params.rpcUrls[0]
568
+ // },
569
+ // params: {
570
+ // rpcUrls: sonic.rpcUrls.default.http as any,
571
+ // chainName: sonic.name,
572
+ // nativeCurrency: sonic.nativeCurrency,
573
+ // },
574
+ // },
575
+ // {
576
+ // name: "Manta Pacific",
577
+ // chainId: 169,
578
+ // explorerUrl: "https://pacific-explorer.manta.network",
579
+ // params: {
580
+ // rpcUrls: ["https://pacific-rpc.manta.network/http"],
581
+ // chainName: "Manta Pacific",
582
+ // nativeCurrency: {
583
+ // name: "Ethereum",
584
+ // symbol: "ETH",
585
+ // decimals: 18,
586
+ // },
587
+ // },
588
+ // color: "#78d64b",
589
+ // fakeTransactionHash: "0x3fB128aA5AC254C8539996B11C587E521AE0d3ab",
590
+ // get serverRpcUrl() {
591
+ // return process.env?.MANTA_RPC_URL || this.params.rpcUrls[0];
592
+ // },
593
+ // },
258
594
  {
259
595
  name: AVO_PROD_CHAIN_NAME,
260
596
  chainId: AVO_PROD_CHAIN_ID,
597
+ apiURL: null,
261
598
  isAvocado: true,
262
- balanceResolverAddress: "",
263
- color: "#16A34A",
264
- usdcAddress: "",
599
+ balanceResolverAddress: '',
600
+ fakeTransactionHash: '',
601
+ legacySupported: false,
602
+ viemChain: avocado,
603
+ color: '#16A34A',
604
+ usdcAddress: '',
265
605
  serverRpcUrl: AVO_PROD_RPC_URL,
266
606
  explorerUrl: AVO_PROD_EXPLORER_URL,
267
607
  params: {
268
608
  chainName: AVO_PROD_CHAIN_NAME,
269
609
  nativeCurrency: {
270
- name: "Avocado",
271
- symbol: "USDC",
610
+ name: 'Avocado',
611
+ symbol: 'USDC',
272
612
  decimals: 18,
273
613
  },
274
- iconUrls: ["https://avocado.instadapp.io/logo.svg"],
614
+ iconUrls: ['https://avocado.instadapp.io/logo.svg'],
275
615
  rpcUrls: [AVO_PROD_RPC_URL],
276
616
  },
277
617
  },
278
618
  {
279
619
  name: AVO_STAGING_CHAIN_NAME,
620
+ apiURL: null,
280
621
  chainId: AVO_STAGING_CHAIN_ID,
281
622
  serverRpcUrl: AVO_STAGING_RPC_URL,
282
- color: "#16A34A",
623
+ color: '#16A34A',
283
624
  explorerUrl: AVO_STAGING_EXPLORER_URL,
625
+ legacySupported: false,
626
+ viemChain: avocadoStaging,
627
+ fakeTransactionHash: '',
284
628
  isAvocado: true,
285
- balanceResolverAddress: "",
286
- usdcAddress: "",
629
+ balanceResolverAddress: '',
630
+ usdcAddress: '',
287
631
  params: {
288
632
  chainName: AVO_STAGING_CHAIN_NAME,
289
633
  nativeCurrency: {
290
- name: "Avocado",
291
- symbol: "USDC",
634
+ name: 'Avocado',
635
+ symbol: 'USDC',
292
636
  decimals: 18,
293
637
  },
294
- iconUrls: ["https://avocado.instadapp.io/logo.svg"],
638
+ iconUrls: ['https://avocado.instadapp.io/logo.svg'],
295
639
  rpcUrls: [AVO_STAGING_RPC_URL],
296
640
  },
297
641
  },
298
- ];
642
+ ]
299
643
 
300
644
  export const chainUsdcAddresses = [
301
645
  { chainId: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },
@@ -303,74 +647,80 @@ export const chainUsdcAddresses = [
303
647
  { chainId: 56, address: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d' },
304
648
  { chainId: 100, address: '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83' },
305
649
  { chainId: 137, address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' },
650
+ { chainId: 137, address: '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359' },
306
651
  { chainId: 250, address: '0x04068da6c83afcfa0e13ba15a6696662335d5b75' },
307
652
  { chainId: 42161, address: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8' },
308
653
  { chainId: 42161, address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831' },
309
654
  { chainId: 43114, address: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e' },
310
655
  { chainId: 43114, address: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664' },
311
656
  { chainId: 1101, address: '0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035' },
312
- { chainId: 1313161554, address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802' },
313
- { chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'}
314
- ];
657
+ {
658
+ chainId: 1313161554,
659
+ address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802',
660
+ },
661
+ { chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA' },
662
+ ]
315
663
 
316
- export const getNetworkByChainId = (
317
- chainId: ChainId | number | string
318
- ): Network => {
319
- return networks.find((i) => i.chainId == chainId)!;
320
- };
664
+ export function getNetworkByChainId(chainId: ChainId | number | string): Network {
665
+ return networks.find(i => i.chainId == chainId)!
666
+ }
321
667
 
322
668
  export const availableNetworks = networks.filter(
323
- (network) => !network.isAvocado
324
- );
669
+ network => !network.isAvocado,
670
+ )
325
671
 
326
- export const chainIdToName = (chainId: ChainId | number | string) => {
327
- const network = getNetworkByChainId(chainId);
328
- return network.name;
329
- };
672
+ export function chainIdToName(chainId: ChainId | number | string) {
673
+ const network = getNetworkByChainId(chainId)
674
+ return network?.name
675
+ }
330
676
 
331
- export const getRpcURLByChainId = (chainId: ChainId | number | string) => {
332
- const network = getNetworkByChainId(chainId);
333
- return network.params.rpcUrls[0];
334
- };
677
+ export function getRpcURLByChainId(chainId: ChainId | number | string) {
678
+ try {
679
+ const network = getNetworkByChainId(chainId)
680
+ return network.params.rpcUrls[0]
681
+ }
682
+ catch {
683
+ return ''
684
+ }
685
+ }
335
686
 
336
687
  export const RPCMap = networks.reduce((acc, network) => {
337
- acc[network.chainId] = network.params.rpcUrls[0];
338
- return acc;
339
- }, {} as Record<number, string>);
688
+ acc[network.chainId] = network.params.rpcUrls[0]
689
+ return acc
690
+ }, {} as Record<number, string>)
340
691
 
341
- export const networkIds = networks.map((network) => network.chainId);
692
+ export const networkIds = networks.map(network => network.chainId)
342
693
 
343
- const rpcInstances: Record<string, ethers.providers.StaticJsonRpcProvider> = {};
694
+ const rpcInstances: Record<string, ethers.providers.StaticJsonRpcProvider> = {}
344
695
  const serverRpcInstances: Record<
345
696
  string,
346
697
  ethers.providers.StaticJsonRpcProvider
347
- > = {};
698
+ > = {}
348
699
 
349
- export const getServerRpcProvider = (chainId: number | string) => {
700
+ export function getServerRpcProvider(chainId: number | string) {
350
701
  if (!rpcInstances[chainId]) {
351
- const network = networks.find((n) => n.chainId == chainId);
702
+ const network = networks.find(n => n.chainId == chainId)
352
703
  serverRpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
353
- network?.serverRpcUrl
354
- );
704
+ network?.serverRpcUrl,
705
+ )
355
706
  }
356
707
 
357
- return serverRpcInstances[chainId];
358
- };
708
+ return serverRpcInstances[chainId]
709
+ }
359
710
 
360
- export const getRpcProvider = (chainId: number | string) => {
711
+ export function getRpcProvider(chainId: number | string) {
361
712
  if (!rpcInstances[chainId]) {
362
713
  rpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
363
- getRpcURLByChainId(Number(chainId))
364
- );
714
+ getRpcURLByChainId(Number(chainId)),
715
+ )
365
716
  }
366
717
 
367
- return rpcInstances[chainId];
368
- };
718
+ return rpcInstances[chainId]
719
+ }
369
720
 
370
- export const getExplorerUrl = (
371
- chainId: ChainId | number | string,
372
- suffix: `/${string}` = "/"
373
- ) => {
374
- const network = getNetworkByChainId(chainId);
375
- return `${network.explorerUrl}${suffix}`;
376
- };
721
+ export function getExplorerUrl(chainId: ChainId | number | string, suffix: `/${string}` = '/') {
722
+ const network = getNetworkByChainId(chainId)
723
+ if (!network)
724
+ return ''
725
+ return `${network.explorerUrl}${suffix}`
726
+ }