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

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