UNPKG

@lifi/wallet-management

Version:

LI.FI Wallet Management solution.

44 lines (43 loc) 1.76 kB
import { ChainType } from '@lifi/sdk'; import type { WalletAdapter } from '@solana/wallet-adapter-base'; import type { Connector } from 'wagmi'; import type { CreateConnectorFnExtended } from '../connectors/types.js'; export interface AccountBase<CT extends ChainType, ConnectorType = undefined> { address?: string; addresses?: readonly string[]; chainId?: number; chainType: CT; connector?: ConnectorType; isConnected: boolean; isConnecting: boolean; isDisconnected: boolean; isReconnecting: boolean; status: 'connected' | 'reconnecting' | 'connecting' | 'disconnected'; } export type EVMAccount = AccountBase<ChainType.EVM, Connector>; export type SVMAccount = AccountBase<ChainType.SVM, WalletAdapter>; export type UTXOAccount = AccountBase<ChainType.UTXO, Connector>; export type DefaultAccount = AccountBase<ChainType>; export type Account = EVMAccount | SVMAccount | UTXOAccount | DefaultAccount; export interface AccountResult { account: Account; /** * Connected accounts */ accounts: Account[]; } interface UseAccountArgs { chainType?: ChainType; } export type LastConnectedAccount = WalletAdapter | Connector | CreateConnectorFnExtended | null; interface LastConnectedAccountStore { lastConnectedAccount: LastConnectedAccount; setLastConnectedAccount: (account: LastConnectedAccount) => void; } export declare const useLastConnectedAccount: import("zustand").UseBoundStore<import("zustand").StoreApi<LastConnectedAccountStore>>; /** * @param args When we provide args we want to return either account with corresponding chainType or default disconnected one * @returns - Account result */ export declare const useAccount: (args?: UseAccountArgs) => AccountResult; export {};