UNPKG

@lifi/wallet-management

Version:

LI.FI Wallet Management solution.

42 lines 1.73 kB
import { disconnect as bigmiDisconnect, getAccount as bigmiGetAccount, } from '@bigmi/client'; import { useConfig as useBigmiConfig } from '@bigmi/react'; import { ChainType } from '@lifi/sdk'; import { useDisconnectWallet } from '@mysten/dapp-kit'; import { useWallet } from '@solana/wallet-adapter-react'; import { useConfig as useWagmiConfig } from 'wagmi'; import { disconnect, getAccount } from 'wagmi/actions'; export const useAccountDisconnect = () => { const bigmiConfig = useBigmiConfig(); const wagmiConfig = useWagmiConfig(); const { disconnect: solanaDisconnect } = useWallet(); const { mutateAsync: disconnectWallet } = useDisconnectWallet(); const handleDisconnectEVM = async (config) => { const connectedAccount = getAccount(config); if (connectedAccount.connector) { await disconnect(config, { connector: connectedAccount.connector }); } }; const handleDisconnectUTXO = async (config) => { const connectedAccount = bigmiGetAccount(config); if (connectedAccount.connector) { await bigmiDisconnect(config, { connector: connectedAccount.connector }); } }; return async (account) => { switch (account.chainType) { case ChainType.EVM: await handleDisconnectEVM(wagmiConfig); break; case ChainType.UTXO: await handleDisconnectUTXO(bigmiConfig); break; case ChainType.SVM: await solanaDisconnect(); break; case ChainType.MVM: await disconnectWallet(); break; } }; }; //# sourceMappingURL=useAccountDisconnect.js.map