@openocean.finance/wallet-management
Version:
Openocean Wallet Management solution.
53 lines (52 loc) • 2.13 kB
TypeScript
import { ChainType } from '@openocean.finance/widget-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 NVMAccount = AccountBase<ChainType.NVM, {
id: string;
name: string;
}>;
export type DefaultAccount = AccountBase<ChainType>;
export type Account = EVMAccount | SVMAccount | UTXOAccount | NVMAccount | 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>>;
interface NearAccountStore {
nearAccount: NVMAccount | null;
setNearAccount: (account: NVMAccount | null) => void;
}
export declare const useNearAccountStore: import("zustand").UseBoundStore<import("zustand").StoreApi<NearAccountStore>>;
/**
* @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 {};