JavaScript Testing Framework for Solana

This is a beta version of the Solana Toolkit, and is still a WIP. Please post all feedback as a GitHub issue here.

Add Dependency

Navigate to your program directory and run:

npm install solana-bankrun

Bankrun Overview

Bankrun is a fast and lightweight framework for testing Solana programs in NodeJS.

It uses the solana-program-test crate under the hood and allows you to do things that are not possible with solana-test-validator, such as jumping back and forth in time or dynamically setting account data.

Bankrun works by spinning up a lightweight BanksServer that's like an RPC node but much faster, and creating a BanksClient to talk to the server. This runs the Solana Banks.

Minimal Example

import { start } from "solana-bankrun";
import { PublicKey, Transaction, SystemProgram } from "@solana/web3.js";
test("one transfer", async () => {
const context = await start([], []);
const client = context.banksClient;
const payer = context.payer;
const receiver = PublicKey.unique();
const blockhash = context.lastBlockhash;
const transferLamports = 1_000_000n;
const ixs = [
SystemProgram.transfer({
fromPubkey: payer.publicKey,
toPubkey: receiver,
lamports: transferLamports,
}),
];
const tx = new Transaction();
tx.recentBlockhash = blockhash;
tx.add(...ixs);
tx.sign(payer);
await client.processTransaction(tx);
const balanceAfter = await client.getBalance(receiver);
expect(balanceAfter).toEqual(transferLamports);
});

Additional Resources

Table of Contents

Edit Page