import EventEmitter from 'eventemitter3'; import { PublicKey, SendOptions } from '@solana/web3.js'; import { SolflareIframeMessage } from '../types'; export default abstract class WalletAdapter extends EventEmitter { abstract get publicKey (): PublicKey | null; abstract get connected (): boolean; abstract connect (): Promise; abstract disconnect (): Promise; abstract signTransaction (message: Uint8Array): Promise; abstract signAllTransactions (messages: Uint8Array[]): Promise; abstract signAndSendTransaction (transaction: Uint8Array, options?: SendOptions): Promise; abstract signMessage (data: Uint8Array, display: 'hex' | 'utf8'): Promise; abstract handleMessage (data: SolflareIframeMessage): void; }