Cartão de receita de referência rápida - pronto para copiar e colar.
import {
createSolanaRpc,
createTransactionMessage,
setTransactionMessageFeePayerSigner,
setTransactionMessageLifetimeUsingBlockhash,
appendTransactionMessageInstruction,
signTransactionMessageWithSigners,
getSignatureFromTransaction,
address,
} from "@solana/kit" ;
import { getTransferSolInstruction } from "@solana-program/system" ;
import { createKeyPairSignerFromBytes } from "@solana/signers" ;
import fs from "node:fs" ;
const rpc = createSolanaRpc ( "https://api.devnet.solana.com" );
const secret = Uint8Array. from ( JSON . parse (fs. readFileSync (process.env. KEYPAIR ! , "utf8" )));
const payer = await createKeyPairSignerFromBytes (secret);
const { value : latestBlockhash } = await rpc. getLatestBlockhash (). send ();
let message = createTransactionMessage ({ version: 0 });
message = setTransactionMessageFeePayerSigner (payer, message);
message = setTransactionMessageLifetimeUsingBlockhash (latestBlockhash, message);
message = appendTransactionMessageInstruction (
getTransferSolInstruction ({
source: payer,
destination: address ( "11111111111111111111111111111111" ),
amount: 1_000 n ,
}),
message,
);
const signed = await signTransactionMessageWithSigners (message);
const sig = getSignatureFromTransaction (signed);
await rpc. sendTransaction (signed, { encoding: "base64" }). send ();
console. log (sig);
Versões da Pilha: Esta página foi escrita para Agave 4.1.1 , Solana CLI 3.0.10 , Anchor 0.32.1 , anchor-lang 0.32.1 , Rust 1.91.1 , @solana/kit 7.0.0 , Surfpool 0.12.0 , e LiteSVM 0.6.x .