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