@lifi/wallet-management
Version:
LI.FI Wallet Management solution.
44 lines (43 loc) • 1.76 kB
TypeScript
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 {};