UNPKG

@reown/appkit-utils

Version:

The full stack toolkit to build onchain app UX.

57 lines (56 loc) 1.85 kB
import type UniversalProvider from '@walletconnect/universal-provider'; import type { W3mFrameProvider } from '@reown/appkit-wallet'; import type { BaseProvider } from './BaseProvider.js'; import type { CoinbaseWalletProvider } from './CoinbaseProvider.js'; import type { InjectedProvider } from './InjectedProvider.js'; import type { SafeProvider } from './SafeProvider.js'; export type Address = `0x${string}`; export type ProviderType = { injected?: InjectedProvider; baseAccount?: BaseProvider; coinbaseWallet?: CoinbaseWalletProvider; safe?: SafeProvider; EIP6963?: boolean; metadata: Metadata; }; export interface RequestArguments { readonly method: string; readonly params?: readonly unknown[] | object; } type ProviderEventListener = { connect: (connectParams: { chainId: number; }) => void; disconnect: (error: Error) => void; chainChanged: (chainId: string) => void; accountsChanged: (accounts: string[]) => void; message: (message: { type: string; data: unknown; }) => void; }; export interface Provider { request: <T>(args: RequestArguments) => Promise<T>; on<T extends keyof ProviderEventListener>(event: T, listener: ProviderEventListener[T]): void; removeListener: <T>(event: string, listener: (data: T) => void) => void; emit: (event: string) => void; } export type Metadata = { name: string; description: string; url: string; icons: string[]; }; export type CombinedProvider = W3mFrameProvider & Provider; export type UniversalProviderType = UniversalProvider & W3mFrameProvider & Provider; export type Chain = { id: string | number; chainId: string | number; name: string; currency: string; explorerUrl: string; rpcUrl: string; chain: string; imageId: string | undefined; }; export {};