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