1.0.3 • Published 6 months ago

@rathe/solana-signers v1.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

Solana Signers

Version License Downloads Downloads

Transaction signer implementation for Ledger devices and the standard Solana Keypair class. Both legacy and versioned transactions are supported.

Install with npm:

npm install --save @rathe/solana-signers

Usage

import {
  Connection,
  Keypair,
  SystemProgram,
  LAMPORTS_PER_SOL,
  Transaction
} from "@solana/web3.js";
import { LedgerTransactionSigner, NaclTransactionSigner } from "@rathe/solana-signers";

const connection = new Connection("http://127.0.0.1:8899", "confirmed");

const bip32Path = "LEDGER_BIP32_PATH";
const ledgerSigner = await LedgerTransactionSigner.create(bip32Path);

const keypair = Keypair.generate();
const naclSigner = new NaclTransactionSigner(keypair);

const isLedger = true;
const signer = isLedger ? ledgerSigner : naclSigner;
const fromAddress = signer.publicKey;
const toKeypair = Keypair.generate();
const lamportsToSend = 1_000_000;

const transferTransaction = new Transaction().add(
  SystemProgram.transfer({
    fromPubkey: fromAddress,
    toPubkey: toKeypair.publicKey,
    lamports: lamportsToSend
  })
);

await signer.signTransaction(transferTransaction);
const signature = await connection.sendRawTransaction(transferTransaction.serialize());

const result = await connection.confirmTransaction(signature);
if (result.value.err != null) {
  throw result.value.err;
} else {
  console.log("Transaction confirmed: %o", signature);
}

License

MIT

1.0.3

6 months ago

1.0.2

6 months ago

1.0.1

7 months ago

1.0.0

7 months ago