import { Keypair, PublicKey, Transaction } from '@solana/web3.js'; export interface Wallet { publicKey: PublicKey; signTransaction(tx: Transaction): Promise; signAllTransactions(txs: Transaction[]): Promise; } export class NodeWallet implements Wallet { constructor(readonly payer: Keypair) {} async signTransaction(tx: Transaction): Promise { tx.partialSign(this.payer); return tx; } async signAllTransactions(txs: Transaction[]): Promise { return txs.map((tx) => { tx.partialSign(this.payer); return tx; }); } get publicKey(): PublicKey { return this.payer.publicKey; } }