export interface OrdinalSafe { sign: (message: string, type?: "bip322-simple" | "ecdsa") => Promise requestAccounts: () => Promise render: () => JSX.Element getBalance: () => Promise name: "ordinalSafe" } export interface Unisat { sign: (message: string, type?: "bip322-simple" | "ecdsa") => Promise requestAccounts: () => Promise render: () => JSX.Element getBalance: () => Promise name: "unisat" } export interface Xverse { sign: ( message: string, address: string, type?: "bip322-simple" | "ecdsa" ) => Promise requestAccounts: () => Promise render: () => JSX.Element getBalance: () => Promise name: "xverse" } export interface Other { sign: (message: string, type?: "bip322-simple" | "ecdsa") => Promise requestAccounts: () => Promise render: () => JSX.Element getBalance: () => Promise name: "other" } export type Wallet = OrdinalSafe | Unisat | Xverse | Other export interface IWalletContext { wallets: Wallet[] connectedWallet: Wallet | null connectWallet: (wallet: Wallet) => Promise disconnectWallet: () => Promise }