Полная документация API для litesvm-go. Названия методов по возможности повторяют builder-интерфейс Rust LiteSVM; пары геттер / сеттер следуют соглашениям Go (Clock / SetClock, Rent / SetRent, ...).
Разделы API
Управление аккаунтами
Airdrop, Balance, GetAccount, SetAccount, NewAccount, программы
Транзакции
Отправка / симуляция legacy- и версионированных транзакций, TxOutcome
Конфигурация
Переключатели для sigverify, проверки blockhash, истории, лимитов логов, программ по умолчанию
Время и Sysvars
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 |
Управление программами
| Метод | Описание |
|---|---|
AddProgram(programID, bytes) error | Загрузить программу из байтов |
AddProgramFromFile(programID, path) error | Загрузить программу из файла .so |
AddProgramWithLoader(programID, bytes, loaderID) error | Загрузить с указанным загрузчиком (расширенный режим) |
Транзакции
| Метод | Описание |
|---|---|
SendLegacyTransaction(txBytes) (*TxOutcome, error) | Выполнить legacy-транзакцию |
SendVersionedTransaction(txBytes) (*TxOutcome, error) | Выполнить транзакцию версии v0+ |
SimulateLegacyTransaction(txBytes) (*TxOutcome, error) | Симулировать без изменения состояния |
SimulateVersionedTransaction(txBytes) (*TxOutcome, error) | Симулировать транзакцию v0+ без изменения состояния |
LatestBlockhash() (solana.Hash, error) | Текущий blockhash |
ExpireBlockhash() error | Перейти к новому blockhash |
GetTransaction(signature) *TxOutcome | Найти транзакцию в истории (nil, если отсутствует) |
litesvm.BuildTransferTx(payerSeed, to, lamports, blockhash) ([]byte, error) | Тестовый хелпер для построения подписанного legacy-перевода без подключения solana-go |
Конфигурация
| Метод | Описание |
|---|---|
SetSigverify(bool) error | Включить / отключить проверку подписи |
Sigverify() (bool, error) | Прочитать текущее значение настройки |
SetBlockhashCheck(bool) error | Включить / отключить проверку blockhash |
SetTransactionHistory(int) error | Ёмкость хранилища истории транзакций в памяти (0 — отключить) |
SetLogBytesLimit(int) error | Лимит байт лога на транзакцию (отрицательное значение — без ограничений) |
SetLamports(uint64) error | Lamport по умолчанию для новых аккаунтов в пуле airdrop |
SetSysvars() error | Сбросить sysvars к значениям по умолчанию |
SetBuiltins() error | Перезагрузить встроенные программы |
SetDefaultPrograms() error | Перезагрузить SPL Token, Memo и др. |
SetPrecompiles() error | Включить прекомпилируемые функции ed25519 / secp256k1 |
WithNativeMints() error | Инициализировать wrapped-SOL mint (seed) |
SetFeatureSet(*FeatureSet) error | Установить набор feature gate |
SetComputeBudget(ComputeBudget) error | Применить бюджет вычислений |
ComputeBudget() (ComputeBudget, bool, error) | Прочитать текущий бюджет (bool указывает на явную установку) |
Время и Sysvars
| Метод | Описание |
|---|---|
WarpToSlot(slot uint64) error | Перейти к указанному slot |
Clock() (Clock, error) | Прочитать sysvar Clock |
SetClock(Clock) error | Перезаписать sysvar Clock |
Rent() (Rent, error) | Прочитать sysvar Rent |
SetRent(Rent) error | Перезаписать sysvar Rent |
EpochSchedule() (EpochSchedule, error) | Прочитать sysvar EpochSchedule |
SetEpochSchedule(EpochSchedule) error | Перезаписать sysvar EpochSchedule |
EpochRewards() (EpochRewards, error) | Прочитать sysvar EpochRewards |
SetEpochRewards(EpochRewards) error | Перезаписать sysvar EpochRewards |
LastRestartSlot() (uint64, error) | Прочитать last-restart-slot |
SetLastRestartSlot(uint64) error | Установить last-restart-slot |
SlotHashes() ([]SlotHash, error) | Прочитать sysvar SlotHashes |
SetSlotHashes([]SlotHash) error | Перезаписать sysvar SlotHashes |
SlotHistory() (*SlotHistory, error) | Прочитать sysvar SlotHistory (дескриптор) |
SetSlotHistory(*SlotHistory) error | Перезаписать sysvar SlotHistory |
StakeHistory() ([]StakeHistoryItem, error) | Прочитать sysvar StakeHistory |
SetStakeHistory([]StakeHistoryItem) error | Перезаписать sysvar StakeHistory |
Утилиты
| Метод | Описание |
|---|---|
litesvm.Version() string | Строка версии, возвращаемая базовым Rust-крейтом litesvm |
Is this page helpful?