Surfpool SDK käynnistää täyden Surfnet-ajonaikaisen ympäristön testiprosessisi
sisällä. Käytä sitä, kun haluat paikallisen Solana-yhteensopivan
RPC-päätepisteen, valmiiksi rahoitetun maksajan ja suoran tilamanipulaation
ilman surfpool start:n käynnistämistä erillisenä prosessina.
Sekä Rust-crate (surfpool-sdk) että JS-sidokset (@solana/surfpool) käyttävät
samaa ajonaikaista ympäristöä. JS-paketti toimittaa valmiiksi käännetyt
natiivibinaarit napi-rs:n kautta macOS:lle (Intel + Apple Silicon) ja Linux
x86-64:lle.
Pika-aloitus
Asenna SDK, käynnistä Surfnet, käytä RPC-päätepistettä ja pysäytä se. Rinnakkaiset testit jakavat saman prosessin turvallisesti, koska portit allokoidaan dynaamisesti.
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());}
Mitä pakettiin sisältyy
Asennus
Cargo- ja npm-asennus, tuetut alustat, natiivibinaarit
Konfiguraatio
Rakentajan asetukset: etä-RPC-varasiirtymä, lohkontuotanto, slot-ajoitus, ominaisuusportit, mukautetut maksajat
Cheatcodes
Rahoita SOL/tokeneita, muuta tilejä, nollaa ylävirtaustila, suoratoista mainnettistä
Aikamatkustus
Hyppää absoluuttiseen slottiin, epookkiin tai Unix-aikaleimaan
Ohjelmat
Anchor-työtilan automaattinen löytäminen, eksplisiittinen .so + IDL-käyttöönotto
Tapahtumat
Tyhjennä ajonaikaiset tapahtumat assertointia ja lokitusta varten
Rust-viite
Täydellinen surfpool-sdk-craten API
JS-viite
Täydellinen @solana/surfpool TypeScript API
Miten se eroaa surfpool start:stä
CLI ajaa pitkäikäistä Surfnettiä, johon yhdistät ulkopuolisista prosesseista. SDK ajaa Surfnetiä sisällä testissäsi, mikä tarkoittaa:
- Ei ulkoista porttien hallintaa — jokainen
Surfnet::start()sitoutuu vapaaseen porttiin, joten testipaketit voivat suorittaa rinnakkain ilman--port-lippuja. - Synkroninen alasajo —
stop()palaa, kun ajoympäristö on todella vapauttanut porttinsa. - Huijauskomennot tyypitettyinä metodteina — sama rajapinta, jonka
surfpool starttarjoaa JSON-RPC:n kautta, on saatavilla natiiveina Rust-metodeina ja napi-rs-sidoksina. - Suora tapahtumien tarkkailu — ajoympäristön tapahtumat ovat saatavilla prosessin sisäisen kanavan (Rust) tai drain-metodin (JS) kautta ilman WebSocket-tilausta.
Milloin SDK:ta kannattaa käyttää
Käytä SDK:ta, kun:
- Kirjoitat integraatiotestejä Anchor-ohjelmalle ja haluat tarkistaa tokenisaldot koodattujen asetusten sarjan jälkeen.
- Tarvitset rinnakkaisia testityöntekijöitä, joilla kullakin on oma eristetty Surfnet.
- Haluat haarauttaa mainnet-tilit (
remoteRpcUrl+streamAccount) testin sisällä. - Tarvitset deterministiset kellot siirtämällä ajoympäristön tiettyyn slot-arvoon tai aikaleimaan ennen vesting-, lukitus- tai vanhentumislogiikan testaamista.
Milloin CLI sopii paremmin
Käytä surfpool start sen sijaan, kun haluat Surfnetin, joka säilyy useiden
prosessien välillä — esimerkiksi silloin, kun CLI, selainlompakko ja
mukautetut asiakasohjelmat tarvitsevat kaikkia saman instanssin.
Is this page helpful?