@@ -21,12 +21,13 @@ import {
2121} from '@/solana/index' ;
2222import { bsc , mainnet , dfk } from 'viem/chains' ;
2323import { QueryClient , QueryClientProvider } from '@tanstack/react-query' ;
24- import { useAccount , useDisconnect } from 'wagmi' ;
24+ import { useAccount , useConnect , useConnectors , useDisconnect } from 'wagmi' ;
2525import { defaultTronConfig , tronLink , useTronWallet } from '@/tron/index' ;
2626import { uxuyWallet } from '@/evm/wallets/uxuyWallet' ;
2727import { useEvmSwitchChain } from '@/evm/hooks/useEvmSwitchChain' ;
2828import { codexFieldWallet } from '@/evm/wallets/codexFieldWallet' ;
2929import { SwitchNetworkModal } from '@/core/modals/SwitchNetworkModal' ;
30+ import { useCallback } from 'react' ;
3031
3132new VConsole ( ) ;
3233
@@ -96,9 +97,12 @@ function ConnectButton() {
9697 const { address : tronAddress , disconnect : tronDisconnect } = useTronWallet ( ) ;
9798 const { switchChain } = useEvmSwitchChain ( ) ;
9899
100+ const connectBinanceWallet = useBinanceWallet ( ) ;
101+
99102 return (
100103 < >
101104 < div >
105+ < button onClick = { ( ) => connectBinanceWallet ( ) } > connect binance wallet</ button >
102106 < button
103107 onClick = { ( ) =>
104108 onOpen ( {
@@ -148,3 +152,28 @@ function ConnectButton() {
148152 </ >
149153 ) ;
150154}
155+
156+ export function useBinanceWallet ( ) {
157+ const connectors = useConnectors ( ) ;
158+ const { connect } = useConnect ( ) ;
159+ const { disconnectAsync, reset } = useDisconnect ( ) ;
160+
161+ return useCallback ( async ( ) => {
162+ const connector = connectors ?. find ( ( connector ) => connector . id === binanceWallet ( ) . id ) ;
163+ if ( connector ) {
164+ reset ( ) ;
165+ await disconnectAsync ( ) ;
166+
167+ setTimeout ( ( ) => {
168+ try {
169+ connect ( {
170+ connector,
171+ chainId : 56 ,
172+ } ) ;
173+ } catch ( err ) {
174+ console . error ( err ) ;
175+ }
176+ } , 1000 ) ;
177+ }
178+ } , [ connect , connectors , disconnectAsync , reset ] ) ;
179+ }
0 commit comments