Surfpool SDK

De Surfpool SDK start een volledige Surfnet-runtime binnen uw testproces. Gebruik het wanneer u een lokaal Solana-compatibel RPC-eindpunt wilt, een vooraf gefinancierde betaler, en directe statusmanipulatie zonder surfpool start als een apart proces te starten.

Zowel de Rust-crate (surfpool-sdk) als de JS-bindingen (@solana/surfpool) omhullen dezelfde runtime. Het JS-pakket wordt geleverd met vooraf gebouwde native binaries via napi-rs voor macOS (Intel + Apple Silicon) en Linux x86-64.

Snelstart

Installeer de SDK, start een Surfnet, gebruik het RPC-eindpunt en stop het vervolgens. Parallelle tests delen hetzelfde proces veilig, omdat poorten dynamisch worden toegewezen.

use surfpool_sdk::{Signer, Surfnet};
#[tokio::test]
async fn starts_a_local_surfnet() {
let surfnet = Surfnet::start().await.unwrap();
let rpc = surfnet.rpc_client();
let balance = rpc.get_balance(&surfnet.payer().pubkey()).unwrap();
assert!(balance > 0);
println!("rpc: {}", surfnet.rpc_url());
println!("ws: {}", surfnet.ws_url());
}

Wat zit er in de doos

Hoe het verschilt van surfpool start

De CLI voert een langlopende Surfnet uit waarmee u verbinding maakt vanuit externe processen. De SDK voert Surfnet binnen uw test uit, wat betekent:

  • Geen extern poortenbeleid — elke Surfnet::start() bindt aan een vrije poort, zodat testsuites parallel kunnen draaien zonder --port vlaggen.
  • Synchrone afbouwstop() keert terug wanneer de runtime zijn poorten daadwerkelijk heeft vrijgegeven.
  • Cheatcodes als getypeerde methoden — hetzelfde oppervlak dat via JSON-RPC wordt blootgesteld door surfpool start is beschikbaar als native Rust-methoden en napi-rs-bindingen.
  • Directe gebeurtenisobservatie — runtime-gebeurtenissen worden blootgesteld via een in-process kanaal (Rust) of een drain-methode (JS) zonder een WebSocket-abonnement.

Wanneer De SDK Gebruiken

Gebruik de SDK wanneer:

  • Je integratietests schrijft voor een Anchor-programma en wilt controleren op tokensaldo's na een reeks cheatcoded setups.
  • Je parallelle testwerkers nodig hebt die elk een geïsoleerde Surfnet hebben.
  • Je mainnet-specifieke accounts wilt forken (remoteRpcUrl + streamAccount) binnen een test.
  • Je deterministische klokken nodig hebt door de runtime naar een vaste slot of tijdstempel te springen vóór het testen van vesting-, vergrendelings- of verlooplogica.

Wanneer de CLI de betere keuze is

Gebruik surfpool start in plaats daarvan wanneer je een Surfnet wilt die meerdere processen overleeft — bijvoorbeeld wanneer een CLI, browserportemonnee en aangepaste clientscripts allemaal dezelfde instantie moeten delen.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken
© 2026 Solana Foundation. Alle rechten voorbehouden.