API 参考

litesvm-go 的完整 API 文档。方法名称尽可能与 Rust LiteSVM 构建器保持一致;getter / setter 对遵循相同的 Go 命名约定(Clock / SetClockRent / 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() error将系统变量重置为默认值
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 表示是否已显式设置)

时间与系统变量

方法说明
WarpToSlot(slot uint64) error跳转至指定 slot
Clock() (Clock, error)读取 Clock 系统变量
SetClock(Clock) error覆写 Clock 系统变量
Rent() (Rent, error)读取 rent 系统变量
SetRent(Rent) error覆写 rent 系统变量
EpochSchedule() (EpochSchedule, error)读取 EpochSchedule 系统变量
SetEpochSchedule(EpochSchedule) error覆写 EpochSchedule 系统变量
EpochRewards() (EpochRewards, error)读取 EpochRewards 系统变量
SetEpochRewards(EpochRewards) error覆写 EpochRewards 系统变量
LastRestartSlot() (uint64, error)读取最后重启 slot
SetLastRestartSlot(uint64) error设置最后重启 slot
SlotHashes() ([]SlotHash, error)读取 SlotHashes 系统变量
SetSlotHashes([]SlotHash) error覆写 SlotHashes 系统变量
SlotHistory() (*SlotHistory, error)读取 SlotHistory 系统变量(句柄)
SetSlotHistory(*SlotHistory) error覆写 SlotHistory 系统变量
StakeHistory() ([]StakeHistoryItem, error)读取 StakeHistory 系统变量
SetStakeHistory([]StakeHistoryItem) error覆写 StakeHistory 系统变量

工具函数

方法说明
litesvm.Version() string底层 Rust litesvm crate 报告的版本字符串

Is this page helpful?

Table of Contents

Edit Page
©️ 2026 Solana 基金会版权所有