@@ -18,9 +18,12 @@ export const useChain = (): [number | undefined, (chain: Chain) => void] => {
18
18
19
19
const addEthChain = ( chain : Chain ) => {
20
20
if ( ! enable ) return
21
+
21
22
const params : AddEthereumChainParameter = {
22
23
chainId : hexValue ( chain . chainId ) ,
23
- blockExplorerUrls : [ chain . infoURL ] ,
24
+ blockExplorerUrls : chain . explorers ?. length
25
+ ? [ chain . explorers [ 0 ] . url ]
26
+ : [ chain . infoURL ] ,
24
27
chainName : chain . name ,
25
28
nativeCurrency : {
26
29
name : chain . nativeCurrency . name ,
@@ -29,26 +32,30 @@ export const useChain = (): [number | undefined, (chain: Chain) => void] => {
29
32
} ,
30
33
rpcUrls : chain . rpc ,
31
34
}
35
+
32
36
try {
33
37
updateNetworkRecord ( chain . chainId )
34
38
} catch ( error ) {
35
39
//
36
40
}
37
- window . ethereum . request ( {
38
- method : 'wallet_addEthereumChain' ,
39
- params : [ params ] ,
40
- } ) . then ( ( ) => {
41
- setToast ( {
42
- text : 'add network successfully!' ,
41
+ window . ethereum
42
+ . request ( {
43
+ method : 'wallet_addEthereumChain' ,
44
+ params : [ params ] ,
45
+ } )
46
+ . then ( ( ) => {
47
+ setToast ( {
48
+ text : 'add network successfully!' ,
49
+ } )
50
+ const prev = window . localStorage . getItem ( EVM_BOX_PERSIST )
51
+ const persist = [ chain . chainId , prev ] . filter ( Boolean ) . join ( ',' )
52
+ window . localStorage . setItem ( EVM_BOX_PERSIST , persist )
43
53
} )
44
- const prev = window . localStorage . getItem ( EVM_BOX_PERSIST )
45
- const persist = [ chain . chainId , prev ] . filter ( Boolean ) . join ( ',' )
46
- window . localStorage . setItem ( EVM_BOX_PERSIST , persist )
47
- } ) . catch ( ( e : Error ) => {
48
- setToast ( {
49
- text : 'add network failed: ' + e . message ,
54
+ . catch ( ( e : Error ) => {
55
+ setToast ( {
56
+ text : 'add network failed: ' + e . message ,
57
+ } )
50
58
} )
51
- } )
52
59
}
53
60
54
61
return [ currentChainId , addEthChain ]
0 commit comments