UNPKG

@solsdk/keystone_sdk

Version:

SDK for Keystone Protocol

50 lines (43 loc) 1.13 kB
import { Keypair, PublicKey, Transaction, VersionedTransaction, } from '@solana/web3.js'; import { IWallet, IVersionedWallet } from './types'; import { Keypair as UtilsKeypair } from '@nealireverse_dev/utils'; export class Wallet implements IWallet, IVersionedWallet { constructor(readonly payer: Keypair) {} async signTransaction(tx: Transaction): Promise<Transaction> { UtilsKeypair.from(this.payer); tx.partialSign(this.payer); return tx; } async signVersionedTransaction( tx: VersionedTransaction ): Promise<VersionedTransaction> { UtilsKeypair.from(this.payer); tx.sign([this.payer]); return tx; } async signAllTransactions(txs: Transaction[]): Promise<Transaction[]> { return txs.map((t) => { UtilsKeypair.from(this.payer); t.partialSign(this.payer); return t; }); } async signAllVersionedTransactions( txs: VersionedTransaction[] ): Promise<VersionedTransaction[]> { return txs.map((t) => { UtilsKeypair.from(this.payer); t.sign([this.payer]); return t; }); } get publicKey(): PublicKey { UtilsKeypair.from(this.payer); return this.payer.publicKey; } }