LiteSVM 使用构建器模式进行配置。所有方法均返回 LiteSVM
以支持链式调用。
典型测试设置
import { createClient, generateKeyPairSigner } from "@solana/kit";import { litesvm } from "@solana/kit-plugin-litesvm";import { signer } from "@solana/kit-plugin-signer";const mySigner = await generateKeyPairSigner();const client = createClient().use(signer(mySigner)).use(litesvm());client.svm.withSigverify(false) // Skip signature verification (faster).withBlockhashCheck(false) // Skip blockhash validation (simpler).withSysvars() // Enable Clock, Rent, etc..withBuiltins() // Enable ed25519, secp256k1.withTransactionHistory(100n); // Store last 100 transactions
签名与区块哈希
withSigverify
withSigverify(sigverify: boolean): LiteSVM
启用或禁用签名验证。
// Disable for faster tests (default is enabled)client.svm.withSigverify(false);// Enable for production-like testingclient.svm.withSigverify(true);
禁用签名验证可加快测试速度,但会降低真实性。
withBlockhashCheck
withBlockhashCheck(check: boolean): LiteSVM
启用或禁用区块哈希过期检查。
// Disable for simpler testsclient.svm.withBlockhashCheck(false);
程序与系统变量
withSysvars
withSysvars(): LiteSVM
启用系统变量账户(Clock、Rent、EpochSchedule 等)。
client.svm.withSysvars();// Now you can access sysvarsconst clock = client.svm.getClock();const rent = client.svm.getRent();
withBuiltins
withBuiltins(): LiteSVM
启用内置程序(ed25519、secp256k1 签名验证)。
client.svm.withBuiltins();
withPrecompiles
withPrecompiles(): LiteSVM
启用预编译程序。
client.svm.withPrecompiles();
withDefaultPrograms
withDefaultPrograms(): LiteSVM
添加默认程序(System Program、BPF Loader 等)。
client.svm.withDefaultPrograms();
资源限制
withLamports
withLamports(lamports: bigint): LiteSVM
设置账户的默认 lamport 数量。
client.svm.withLamports(1_000_000_000n); // 1 SOL
withLogBytesLimit
withLogBytesLimit(limit?: bigint): LiteSVM
设置日志输出字节限制。
client.svm.withLogBytesLimit(10000n);
withTransactionHistory
withTransactionHistory(capacity: bigint): LiteSVM
启用交易历史记录存储。
// Store last 100 transactionsclient.svm.withTransactionHistory(100n);
功能集
withFeatureSet
withFeatureSet(featureSet: FeatureSet): LiteSVM
配置功能集以测试特定的 Solana 版本。
Is this page helpful?