litesvm-go 的完整 API 文档。方法名称尽可能与 Rust LiteSVM 构建器保持一致;getter / setter 对遵循相同的 Go 命名约定(Clock / SetClock、Rent / SetRent,以此类推)。
API 章节
账户管理
Airdrop、Balance、GetAccount、SetAccount、NewAccount、程序
交易
发送/模拟旧版及版本化交易,TxOutcome
配置
签名验证、区块哈希校验、历史记录、日志限制、默认程序的开关选项
时间与系统变量
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 | 将系统变量重置为默认值 |
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?