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