import { AbstractProvider } from '@crisog/pocketjs-provider' import { TransactionResponse } from '@crisog/pocketjs-types' // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface TransactionRequest {} export abstract class AbstractSigner { readonly provider?: AbstractProvider // Provider that will send all calls readonly _isSigner: boolean // mark signer as a proper signer (useful for non-writable signers) constructor() { // Assume it's a void/readonly signer by default this._isSigner = false } abstract getAddress(): Promise abstract getBalance(address: string | Promise): Promise abstract getTransactionCount( address: string | Promise ): Promise // Txs abstract sendTransaction( signedTransaction: string | Promise ): Promise abstract sign(payload: string): Promise abstract signTransaction(transaction: TransactionRequest): Promise }