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; }