33 lines
743 B
JavaScript
Raw Normal View History

2025-02-17 15:21:20 +07:00
import { Keypair, 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 {
constructor(signer) {
this._signer = signer
}
async signTransaction(tx) {
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(txs) {
return Promise.all(txs.map(tx => this.signTransaction(tx)))
}
get publicKey() {
return this._signer.publicKey
}
}