Files
solana-agent-kit/src/utils/keypair.ts
calintje e5e25b0ab0 Fix
2025-01-10 20:39:43 +01:00

35 lines
943 B
TypeScript

import { Keypair, PublicKey, Transaction, VersionedTransaction } from "@solana/web3.js";
import bs58 from "bs58";
export const keypair = Keypair.generate();
console.log(keypair.publicKey.toString());
console.log(bs58.encode(keypair.secretKey));
export class Wallet {
private _signer: Keypair;
constructor(signer: Keypair) {
this._signer = signer;
}
async signTransaction<T extends Transaction | VersionedTransaction>(tx: T): Promise<T> {
if (tx instanceof Transaction) {
tx.sign(this._signer);
} else if (tx instanceof VersionedTransaction) {
tx.sign([this._signer]);
} else {
throw new Error("Unsupported transaction type");
}
return tx;
}
async signAllTransactions<T extends Transaction | VersionedTransaction>(txs: T[]): Promise<T[]> {
return Promise.all(txs.map((tx) => this.signTransaction(tx)));
}
get publicKey(): PublicKey {
return this._signer.publicKey;
}
}