import type { WalletAdapter, WalletAdapterProps } from './adapter'; import { BaseWalletAdapter } from './adapter'; import { AleoDeployment } from './deployment'; import { AleoTransaction } from './transaction'; export type Adapter = WalletAdapter | SignerWalletAdapter | MessageSignerWalletAdapter; export interface SignerWalletAdapterProps extends WalletAdapterProps { } export type SignerWalletAdapter = WalletAdapter & SignerWalletAdapterProps; export abstract class BaseSignerWalletAdapter extends BaseWalletAdapter implements SignerWalletAdapter { } export interface MessageSignerWalletAdapterProps extends WalletAdapterProps { signMessage(message: Uint8Array): Promise; decrypt(cipherText: string, tpk?: string, programId?: string, functionName?: string, index?: number): Promise; requestRecords(program: string): Promise; requestTransaction(transaction: AleoTransaction): Promise; requestExecution(transaction: AleoTransaction): Promise; requestBulkTransactions(transactions: AleoTransaction[]): Promise; requestDeploy(deployment: AleoDeployment): Promise; transactionStatus(transactionId: string): Promise; transitionViewKeys(transactionId: string): Promise; getExecution(transactionId: string): Promise; requestRecordPlaintexts(program: string): Promise; requestTransactionHistory(program: string): Promise; } export type MessageSignerWalletAdapter = WalletAdapter & MessageSignerWalletAdapterProps; export abstract class BaseMessageSignerWalletAdapter extends BaseSignerWalletAdapter implements MessageSignerWalletAdapter { abstract signMessage(message: Uint8Array): Promise; abstract decrypt(cipherText: string, tpk?: string, programId?: string, functionName?: string, index?: number): Promise; abstract requestRecords(program: string): Promise; abstract requestTransaction(transaction: AleoTransaction): Promise; abstract requestExecution(transaction: AleoTransaction): Promise; abstract requestBulkTransactions(transactions: AleoTransaction[]): Promise; abstract requestDeploy(deployment: AleoDeployment): Promise; abstract transactionStatus(transactionId: string): Promise; abstract transitionViewKeys(transactionId: string): Promise; abstract getExecution(transactionId: string): Promise; abstract requestRecordPlaintexts(program: string): Promise; abstract requestTransactionHistory(program: string): Promise; }