Skip to content

LimeChain/litesvm

 
 

Repository files navigation


LiteSVM

github crates.io docs.rs build status

📍 Overview

litesvm is a fast and lightweight library for testing Solana programs. It works by creating an in-process Solana VM optimized for program developers. This makes it much faster to run and compile than alternatives like solana-program-test and solana-test-validator. In a further break from tradition, it has an ergonomic API with sane defaults and extensive configurability for those who want it.

🚀 Getting Started

🔧 Installation

cargo add --dev litesvm

🤖 Minimal Example

use litesvm::LiteSVM; use solana_keypair::Keypair; use solana_message::Message; use solana_pubkey::Pubkey; use solana_signer::Signer; use solana_system_interface::instruction::transfer; use solana_transaction::Transaction; let from_keypair = Keypair::new(); let from = from_keypair.pubkey(); let to = Pubkey::new_unique(); let mut svm = LiteSVM::new(); svm.airdrop(&from, 10_000).unwrap(); let instruction = transfer(&from, &to, 64); let tx = Transaction::new( &[&from_keypair], Message::new(&[instruction], Some(&from)), svm.latest_blockhash(), ); let tx_res = svm.send_transaction(tx).unwrap(); let from_account = svm.get_account(&from); let to_account = svm.get_account(&to); assert_eq!(from_account.unwrap().lamports, 4936); assert_eq!(to_account.unwrap().lamports, 64);

🛠️ Developing litesvm

Run the tests

The tests in this repo use some test programs you need to build first (Solana CLI >= 1.18.8 required):

cd crates/litesvm/test_programs && cargo build-sbf

Then just run cargo test.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 89.4%
  • TypeScript 7.5%
  • JavaScript 3.0%
  • Shell 0.1%