litesvm-go의 완전한 API 문서입니다. 메서드 이름은 가능한 한 Rust LiteSVM 빌더를 그대로 반영하며, getter/setter 쌍은 동일한 Go 규칙을 사용합니다 (Clock / SetClock, Rent / SetRent, ...).
API 섹션
계정 관리
Airdrop, Balance, GetAccount, SetAccount, NewAccount, 프로그램
트랜잭션
레거시 + 버전 트랜잭션 전송 / 시뮬레이션, TxOutcome
구성
sigverify, blockhash 검사, 히스토리, 로그 제한, 기본 프로그램 토글
시간 및 Sysvar
WarpToSlot, Clock, Rent, EpochSchedule, EpochRewards, SlotHashes, SlotHistory, StakeHistory
빠른 참조
핸들 설정
import (litesvm "github.com/LiteSVM/litesvm-go"solana "github.com/gagliardetto/solana-go")svm, err := litesvm.New()if err != nil {// handle error}defer svm.Close()
계정 관리
| 메서드 | 설명 |
|---|---|
Airdrop(pubkey, lamports) error | 계정에 자금 지급 |
Balance(pubkey) (uint64, bool, error) | SOL 잔액; bool은 계정 존재 여부를 나타냄 |
GetAccount(pubkey) *Account | 계정 핸들 조회 (없으면 nil 반환) |
SetAccount(pubkey, *Account) error | 계정 상태를 직접 저장 |
MinimumBalanceForRentExemption(dataLen int) (uint64, error) | rent 면제 최소 잔액 계산 |
NewAccount(lamports, data, owner, executable, rentEpoch) (*Account, error) | SetAccount용 Account 핸들 생성 |
프로그램 관리
| 메서드 | 설명 |
|---|---|
AddProgram(programID, bytes) error | 바이트에서 프로그램 로드 |
AddProgramFromFile(programID, path) error | .so 파일에서 프로그램 로드 |
AddProgramWithLoader(programID, bytes, loaderID) error | 특정 로더로 로드 (고급) |
트랜잭션
| 메서드 | 설명 |
|---|---|
SendLegacyTransaction(txBytes) (*TxOutcome, error) | 레거시 트랜잭션 실행 |
SendVersionedTransaction(txBytes) (*TxOutcome, error) | v0+ 트랜잭션 실행 |
SimulateLegacyTransaction(txBytes) (*TxOutcome, error) | 상태 변경 없이 시뮬레이션 |
SimulateVersionedTransaction(txBytes) (*TxOutcome, error) | 상태 변경 없이 v0+ 시뮬레이션 |
LatestBlockhash() (solana.Hash, error) | 현재 블록해시 |
ExpireBlockhash() error | 새 블록해시로 갱신 |
GetTransaction(signature) *TxOutcome | 히스토리에서 트랜잭션 조회 (없으면 nil 반환) |
litesvm.BuildTransferTx(payerSeed, to, lamports, blockhash) ([]byte, error) | solana-go 없이 서명된 레거시 전송을 빌드하는 테스트 헬퍼 |
구성
| 메서드 | 설명 |
|---|---|
SetSigverify(bool) error | 서명 검증 활성화 / 비활성화 |
Sigverify() (bool, error) | 현재 설정 읽기 |
SetBlockhashCheck(bool) error | 블록해시 유효성 검사 활성화 / 비활성화 |
SetTransactionHistory(int) error | 인메모리 트랜잭션 히스토리 용량 (0이면 비활성화) |
SetLogBytesLimit(int) error | 트랜잭션별 로그 바이트 상한 (음수 = 무제한) |
SetLamports(uint64) error | 새 에어드롭 풀 계정의 기본 lamport 값 |
SetSysvars() error | Sysvar를 기본값으로 초기화 |
SetBuiltins() error | 내장 프로그램 다시 로드 |
SetDefaultPrograms() error | SPL Token, Memo 등 다시 로드 |
SetPrecompiles() error | ed25519 / secp256k1 프리컴파일 활성화 |
WithNativeMints() error | 래핑된 SOL 민트를 seed로 초기화 |
SetFeatureSet(*FeatureSet) error | 피처 게이트 세트 설치 |
SetComputeBudget(ComputeBudget) error | 컴퓨트 버짓 적용 |
ComputeBudget() (ComputeBudget, bool, error) | 현재 버짓 읽기 (bool은 "명시적 설정 여부"를 나타냄) |
시간 및 Sysvar
| 메서드 | 설명 |
|---|---|
WarpToSlot(slot uint64) error | 특정 slot으로 이동 |
Clock() (Clock, error) | Clock sysvar 읽기 |
SetClock(Clock) error | Clock sysvar 덮어쓰기 |
Rent() (Rent, error) | Rent sysvar 읽기 |
SetRent(Rent) error | Rent sysvar 덮어쓰기 |
EpochSchedule() (EpochSchedule, error) | EpochSchedule sysvar 읽기 |
SetEpochSchedule(EpochSchedule) error | EpochSchedule sysvar 덮어쓰기 |
EpochRewards() (EpochRewards, error) | EpochRewards sysvar 읽기 |
SetEpochRewards(EpochRewards) error | EpochRewards sysvar 덮어쓰기 |
LastRestartSlot() (uint64, error) | 마지막 재시작 slot 읽기 |
SetLastRestartSlot(uint64) error | 마지막 재시작 slot 설정 |
SlotHashes() ([]SlotHash, error) | SlotHashes sysvar 읽기 |
SetSlotHashes([]SlotHash) error | SlotHashes sysvar 덮어쓰기 |
SlotHistory() (*SlotHistory, error) | SlotHistory sysvar 읽기 (핸들) |
SetSlotHistory(*SlotHistory) error | SlotHistory sysvar 덮어쓰기 |
StakeHistory() ([]StakeHistoryItem, error) | StakeHistory sysvar 읽기 |
SetStakeHistory([]StakeHistoryItem) error | StakeHistory sysvar 덮어쓰기 |
유틸리티
| 메서드 | 설명 |
|---|---|
litesvm.Version() string | 기반 Rust litesvm 크레이트가 보고하는 버전 문자열 |
Is this page helpful?