API 레퍼런스

litesvm-go의 완전한 API 문서입니다. 메서드 이름은 가능한 한 Rust LiteSVM 빌더를 그대로 반영하며, getter/setter 쌍은 동일한 Go 규칙을 사용합니다 (Clock / SetClock, Rent / SetRent, ...).

API 섹션

빠른 참조

핸들 설정

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() errorSysvar를 기본값으로 초기화
SetBuiltins() error내장 프로그램 다시 로드
SetDefaultPrograms() errorSPL Token, Memo 등 다시 로드
SetPrecompiles() errored25519 / 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) errorClock sysvar 덮어쓰기
Rent() (Rent, error)Rent sysvar 읽기
SetRent(Rent) errorRent sysvar 덮어쓰기
EpochSchedule() (EpochSchedule, error)EpochSchedule sysvar 읽기
SetEpochSchedule(EpochSchedule) errorEpochSchedule sysvar 덮어쓰기
EpochRewards() (EpochRewards, error)EpochRewards sysvar 읽기
SetEpochRewards(EpochRewards) errorEpochRewards sysvar 덮어쓰기
LastRestartSlot() (uint64, error)마지막 재시작 slot 읽기
SetLastRestartSlot(uint64) error마지막 재시작 slot 설정
SlotHashes() ([]SlotHash, error)SlotHashes sysvar 읽기
SetSlotHashes([]SlotHash) errorSlotHashes sysvar 덮어쓰기
SlotHistory() (*SlotHistory, error)SlotHistory sysvar 읽기 (핸들)
SetSlotHistory(*SlotHistory) errorSlotHistory sysvar 덮어쓰기
StakeHistory() ([]StakeHistoryItem, error)StakeHistory sysvar 읽기
SetStakeHistory([]StakeHistoryItem) errorStakeHistory sysvar 덮어쓰기

유틸리티

메서드설명
litesvm.Version() string기반 Rust litesvm 크레이트가 보고하는 버전 문자열

Is this page helpful?

목차

페이지 편집