UNPKG

@lifi/wallet-management

Version:

LI.FI Wallet Management solution.

34 lines (30 loc) 1.05 kB
import { useConfig as useBigmiConfig } from '@bigmi/react' import { ChainType } from '@lifi/sdk' import { useWallet } from '@solana/wallet-adapter-react' import type { Config } from 'wagmi' import { useConfig as useWagmiConfig } from 'wagmi' import { disconnect, getAccount } from 'wagmi/actions' import type { Account } from './useAccount.js' export const useAccountDisconnect = () => { const bigmiConfig = useBigmiConfig() const wagmiConfig = useWagmiConfig() const { disconnect: solanaDisconnect } = useWallet() const handleDisconnect = async (config: Config) => { const connectedAccount = getAccount(config) if (connectedAccount.connector) { await disconnect(config, { connector: connectedAccount.connector }) } } return async (account: Account) => { switch (account.chainType) { case ChainType.EVM: await handleDisconnect(wagmiConfig) break case ChainType.UTXO: await handleDisconnect(bigmiConfig) break default: await solanaDisconnect() } } }