UNPKG

@pushchain/ui-kit

Version:
52 lines (51 loc) 1.48 kB
import { CHAIN } from '@pushchain/core/src/lib/constants/enums'; import { TypedData, TypedDataDomain } from 'viem'; export declare enum ChainType { ETHEREUM = "sepolia", SOLANA = "solana", BINANCE = "bsc", ARBITRUM = "arbitrum", AVALANCHE = "avalanche", WALLET_CONNECT = "walletConnect", PUSH_WALLET = "pushWalletDonut" } export interface WalletInfo { address: string; chainType: ChainType; providerName: string; } export interface ITypedData { domain: TypedDataDomain; types: TypedData; primaryType: string; message: Record<string, unknown>; } export interface IWalletProvider { name: string; icon: string; supportedChains: ChainType[]; connect(chainType?: ChainType): Promise<{ caipAddress: string; }>; signMessage(message: Uint8Array): Promise<Uint8Array>; signAndSendTransaction(txn: Uint8Array): Promise<Uint8Array>; signTypedData(typedData: ITypedData): Promise<Uint8Array>; disconnect(): Promise<void>; getChainId(): Promise<unknown>; switchNetwork?(chainName: ChainType): Promise<void>; } export type UniversalAccount = { chain: CHAIN; address: string; }; export declare enum ConnectionStatus { NOT_CONNECTED = "notConnected", CONNECTING = "connecting", AUTHENTICATING = "authenticating", CONNECTED = "connected", RETRY = "retry" } export type WalletEventRespoonse = { signature?: Uint8Array; account?: UniversalAccount; };