솔라나 문서LiteSVMTypeScript예시

SOL 전송

가장 기본적인 Solana 트랜잭션: 한 계정에서 다른 계정으로 SOL을 이동합니다. 더 복잡한 프로그램 로직을 테스트하기 전에 LiteSVM 설정이 올바르게 작동하는지 확인하는 데 좋은 첫 번째 테스트입니다.

전체 예제

import { createClient, generateKeyPairSigner, lamports } from "@solana/kit";
import { litesvm } from "@solana/kit-plugin-litesvm";
import { signer } from "@solana/kit-plugin-signer";
import { systemProgram } from "@solana-program/system";
// Payer first, then the LiteSVM transport, then program plugins.
const mySigner = await generateKeyPairSigner();
const client = createClient()
.use(signer(mySigner))
.use(litesvm())
.use(systemProgram());
const recipient = await generateKeyPairSigner();
// Airdrop SOL to the payer
client.svm.airdrop(client.payer.address, lamports(10_000_000_000n));
// Check initial balance
const senderInitial = client.svm.getBalance(client.payer.address) ?? 0n;
console.log("Sender initial:", Number(senderInitial) / 1e9, "SOL");
// Build and send the transfer
await client.system.instructions
.transferSol({
source: client.payer,
destination: recipient.address,
amount: lamports(1_000_000_000n) // 1 SOL
})
.sendTransaction();
// Check final balances
const senderFinal = client.svm.getBalance(client.payer.address) ?? 0n;
const recipientFinal = client.svm.getBalance(recipient.address) ?? 0n;
console.log("Sender final:", Number(senderFinal) / 1e9, "SOL");
console.log("Recipient final:", Number(recipientFinal) / 1e9, "SOL");

예상 출력

Sender initial: 10 SOL
Sender final: 8.999995 SOL
Recipient final: 1 SOL

발신자의 최종 잔액은 트랜잭션 수수료(서명당 5,000 lamport)로 인해 9 SOL보다 약간 적습니다.

이 내용은 가장 단순한 트랜잭션 유형을 다룹니다. 커스텀 프로그램으로 테스트하려면 프로그램 테스트를 참조하세요. 토큰 전송(민트, ATA)에 대해서는 토큰 테스트를 참조하세요.

Is this page helpful?

목차

페이지 편집