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
Installatie
Cargo- en npm-installatie, ondersteunde platforms, native binaries
Configuratie
Builder-opties: externe RPC-fallback, blokkproductie, slottiming, feature gates, aangepaste betalers
Cheatcodes
SOL/tokens financieren, accounts muteren, upstream-status resetten, streamen vanuit mainnet
Tijdreizen
Spring naar een absoluut slot, epoch of Unix-tijdstempel
Programma's
Automatische detectie van Anchor-werkruimte, expliciete .so + IDL-implementatie
Gebeurtenissen
Runtime-gebeurtenissen afvoeren voor assertions en logging
Rust-referentie
Volledige surfpool-sdk crate API
JS-referentie
Volledige @solana/surfpool TypeScript API
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--portvlaggen. - Synchrone afbouw —
stop()keert terug wanneer de runtime zijn poorten daadwerkelijk heeft vrijgegeven. - Cheatcodes als getypeerde methoden — hetzelfde oppervlak dat via JSON-RPC
wordt blootgesteld door
surfpool startis 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?