import { PublicKey } from '@solana/web3.js'; import { SolanaSignInInput } from "@solana/wallet-standard-features"; type DisplayEncoding = 'utf8' | 'hex'; type PhantomEvent = 'connect' | 'disconnect' | 'accountChanged'; type PhantomRequestMethod = | 'connect' | 'disconnect' | 'signMessage' | 'signIn'; interface ConnectOpts { onlyIfTrusted: boolean; } export interface Provider { publicKey: PublicKey | null; isConnected: boolean | null; signMessage: (message: Uint8Array | string, display?: DisplayEncoding) => Promise; signIn: (signInData: SolanaSignInInput) => Promise<{ address: PublicKey, signedMessage: Uint8Array, signature: Buffer }>; connect: (opts?: Partial) => Promise<{ publicKey: PublicKey }>; disconnect: () => Promise; on: (event: PhantomEvent, handler: (args: any) => void) => void; request: (method: PhantomRequestMethod, params: any) => Promise; } export type Status = 'success' | 'warning' | 'error' | 'info'; export interface TLog { status: Status; method?: PhantomRequestMethod | Extract; confirmation?: {signature: string, link: string}; message: string; messageTwo?: string; }