SolanaドキュメントLiteSVMGoAPIリファレンス

設定

各セッターは、RustのLiteSVM型に対応するビルダーメソッドを反映しています。 呼び出しは即座に反映され、errorを返します。

典型的なテストセットアップ

svm, err := litesvm.New()
if err != nil {
t.Fatal(err)
}
defer svm.Close()
// Each setter returns an error. The calls below are infallible in practice,
// so the docs use _ = ... for brevity; check the error in production code.
_ = svm.SetSigverify(false) // skip signature verification (faster)
_ = svm.SetBlockhashCheck(false) // skip blockhash validation (simpler)
_ = svm.SetSysvars() // reset Clock, Rent, etc. to defaults
_ = svm.SetBuiltins() // reload built-in programs
_ = svm.SetTransactionHistory(100) // keep the last 100 transactions

署名とブロックハッシュ

SetSigverify

func (s *LiteSVM) SetSigverify(enabled bool) error

トランザクションの署名検証を切り替えます。

if err := svm.SetSigverify(false); err != nil { // accept unsigned / badly-signed txs
t.Fatal(err)
}
if err := svm.SetSigverify(true); err != nil { // restore production-like behavior
t.Fatal(err)
}

署名検証を無効にするとテストは高速になりますが、現実の環境との乖離が生じます。

Sigverify

func (s *LiteSVM) Sigverify() (bool, error)

現在の設定を読み取ります。

SetBlockhashCheck

func (s *LiteSVM) SetBlockhashCheck(enabled bool) error

送信されたトランザクションに対するrecent-blockhashチェックを切り替えます。

if err := svm.SetBlockhashCheck(false); err != nil { // accept any blockhash
t.Fatal(err)
}

プログラムとSysvar

SetSysvars

func (s *LiteSVM) SetSysvars() error

組み込みのsysvar(Clock、rent、EpochScheduleなど)をデフォルト値に 再初期化します。

SetBuiltins

func (s *LiteSVM) SetBuiltins() error

デフォルトの組み込みプログラムセットをロードします。

SetDefaultPrograms

func (s *LiteSVM) SetDefaultPrograms() error

標準のSPLプログラム(System Program、SPL Token、Memoなど)をロードします。

SetPrecompiles

func (s *LiteSVM) SetPrecompiles() error

ed25519 / secp256k1プリコンパイル済みプログラムを有効にします。

WithNativeMints

func (s *LiteSVM) WithNativeMints() error

SPL Token / Token-2022のネイティブミントアカウント(ラップされたSOL)をseedします。対応するプログラムがロードされていない場合はno-opとなります。両方が必要な場合は、先にSetDefaultProgramsを呼び出してください。

リソース制限

SetLamports

func (s *LiteSVM) SetLamports(lamports uint64) error

内部エアドロッププールアカウントのデフォルトlamport残高を設定します。

if err := svm.SetLamports(1 << 40); err != nil { // ~1.1 trillion lamports (~1,100 SOL)
t.Fatal(err)
}

SetLogBytesLimit

func (s *LiteSVM) SetLogBytesLimit(limit int) error

トランザクションごとにキャプチャされるログバイトの合計を制限します。制限を解除するには負の値を渡してください。

if err := svm.SetLogBytesLimit(10_000); err != nil { // 10 KB cap
t.Fatal(err)
}
if err := svm.SetLogBytesLimit(-1); err != nil { // unlimited
t.Fatal(err)
}

SetTransactionHistory

func (s *LiteSVM) SetTransactionHistory(capacity int) error

インメモリトランザクション履歴のキャパシティを設定します。重複排除を無効にして同一トランザクションの再実行を許可するには0を渡してください。

if err := svm.SetTransactionHistory(100); err != nil { // cap at 100 entries
t.Fatal(err)
}
if err := svm.SetTransactionHistory(0); err != nil { // disable dedup entirely
t.Fatal(err)
}

コンピュートバジェット

type ComputeBudget struct {
// See litesvm-go/litesvm.go for the full field list.
// usize fields are normalized to uint64; HeapSize stays uint32.
ComputeUnitLimit uint64
HeapSize uint32
// ...
}

ComputeBudget

func (s *LiteSVM) ComputeBudget() (ComputeBudget, bool, error)

現在のコンピュートバジェットを読み取ります。2番目の戻り値はバジェットが明示的に設定されているかどうかを示します。falseの場合、構造体には使用されるデフォルト値が含まれます。

budget, set, err := svm.ComputeBudget()
if err != nil {
t.Fatal(err)
}
if !set {
budget.ComputeUnitLimit = 1_400_000
}
if err := svm.SetComputeBudget(budget); err != nil {
t.Fatal(err)
}

SetComputeBudget

func (s *LiteSVM) SetComputeBudget(b ComputeBudget) error

後続のトランザクションにコンピュートバジェットを設定します。

フィーチャーセット

FeatureSetは不透明なハンドルです。構築後、Activate / Deactivateで変更し、SetFeatureSetでインストールしてください。作成したハンドルはクローズしてください。

// Start with all features off, then activate what you care about.
fs, err := litesvm.NewFeatureSet()
if err != nil {
t.Fatal(err)
}
defer fs.Close()
if err := fs.Activate(featureID, 0); err != nil {
t.Fatal(err)
}
// Or start from "everything enabled" and flip specific features off.
fs2, err := litesvm.NewFeatureSetAllEnabled()
if err != nil {
t.Fatal(err)
}
defer fs2.Close()
if err := fs2.Deactivate(featureID); err != nil {
t.Fatal(err)
}
if err := svm.SetFeatureSet(fs); err != nil {
t.Fatal(err)
}
メソッド説明
litesvm.NewFeatureSet() (*FeatureSet, error)空のセット(全フィーチャーが無効)
litesvm.NewFeatureSetAllEnabled() (*FeatureSet, error)全フィーチャーが有効
fs.Activate(featureID, slot) error指定したslotでフィーチャーを有効化
fs.Deactivate(featureID) errorフィーチャーを無効化
fs.IsActive(featureID) bool有効状態の確認
fs.ActivatedSlot(featureID) (uint64, bool)フィーチャーが有効化されたslot
fs.ActiveCount() int有効なフィーチャーの数
fs.InactiveCount() int無効なフィーチャーの数
fs.ActiveFeatures() []solana.PublicKey有効なフィーチャーIDの一覧
fs.InactiveFeatures() []solana.PublicKey無効なフィーチャーIDの一覧
fs.Close()ハンドルを解放
svm.SetFeatureSet(*FeatureSet) errorSVMにインストール

フィーチャーゲーティングを使用して、特定のSolanaバージョン下でのプログラムの動作をテストできます。ターゲットとするリリースに含まれるフィーチャーを有効化し、それ以降に追加されたフィーチャーを無効化してください。

Is this page helpful?

© 2026 Solana Foundation. 無断転載を禁じます。