import {
address,
appendTransactionMessageInstructions,
assertIsTransactionWithinSizeLimit,
compileTransaction,
createKeyPairSignerFromBytes,
createSolanaRpc,
createSolanaRpcSubscriptions,
createTransactionMessage,
devnet,
getSignatureFromTransaction,
lamports,
pipe,
sendAndConfirmTransactionFactory,
setTransactionMessageFeePayerSigner,
setTransactionMessageLifetimeUsingBlockhash,
signTransactionMessageWithSigners,
type TransactionMessageBytesBase64,
} from "@solana/kit";
import { getTransferSolInstruction } from "@solana-program/system";
// import wallets
import wallet from "./mykeypair.json";
const LAMPORTS_PER_SOL = BigInt(1_000_000_000);
const keypair = await createKeyPairSignerFromBytes(new Uint8Array(wallet));
const turbin3Wallet = address("ELJgVp3cn4R8u4hmU3yyHqifB1LuXFTbEfSxwBDmqtyx");
// build connections
const rpc = createSolanaRpc("<https://api.devnet.solana.com>");
const rpcSubscriptions = createSolanaRpcSubscriptions(
devnet("ws://api.devnet.solana.com")
);
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
const transferInstruction = getTransferSolInstruction({
source: keypair,
destination: turbin3Wallet,
amount: lamports(1n * LAMPORTS_PER_SOL),
});
const transactionMessage = pipe(
createTransactionMessage({ version: 0 }),
(tx) => setTransactionMessageFeePayerSigner(keypair, tx),
(tx) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx),
(tx) => appendTransactionMessageInstructions([transferInstruction], tx)
);
const signedTransaction = await signTransactionMessageWithSigners(
transactionMessage
);
assertIsTransactionWithinSizeLimit(signedTransaction);
const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({
rpc,
rpcSubscriptions,
});
try {
await sendAndConfirmTransaction(signedTransaction, {
commitment: "confirmed",
});
const signature = getSignatureFromTransaction(signedTransaction);
console.log(
`Success! Check out your TX here : <https://explorer.solana.com/tx/${signature}?cluster=devnet`>
);
} catch (error) {
console.error("Transfer failed: ", error);
}
Transaction signature :
Transaction | 1Ao4LLQZmxX1ygQnx9nKv3CZW4HHvzXM4YHzUd3diqn4sXxNdTCZof5LweX44yAAjibDgWQqW5NPaKTtTeNSpEX | Solana