Surfpool SDK menjalankan runtime Surfnet penuh di dalam proses pengujian Anda.
Gunakan ini ketika Anda menginginkan endpoint RPC yang kompatibel dengan Solana
secara lokal, payer yang telah didanai, dan manipulasi status langsung tanpa
menjalankan surfpool start sebagai proses terpisah.
Baik crate Rust (surfpool-sdk) maupun binding JS (@solana/surfpool)
membungkus runtime yang sama. Paket JS dilengkapi dengan binary native yang
telah dikompilasi melalui napi-rs untuk macOS (Intel + Apple Silicon) dan Linux
x86-64.
Mulai Cepat
Instal SDK, jalankan Surfnet, akses endpoint RPC, lalu hentikan. Pengujian paralel berbagi proses yang sama dengan aman karena port dialokasikan secara dinamis.
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());}
Apa Yang Ada Di Dalamnya
Instalasi
Pengaturan Cargo dan npm, platform yang didukung, binary native
Konfigurasi
Opsi builder: fallback RPC jarak jauh, produksi blok, pengaturan waktu slot, feature gate, payer kustom
Cheatcodes
Dana SOL/token, ubah akun, reset status upstream, streaming dari mainnet
Perjalanan Waktu
Lompat ke slot absolut, epoch, atau timestamp Unix
Program
Penemuan otomatis workspace Anchor, deployment .so + IDL secara eksplisit
Event
Ambil event runtime untuk asersi dan logging
Referensi Rust
API crate surfpool-sdk yang lengkap
Referensi JS
API TypeScript @solana/surfpool yang lengkap
Perbedaannya Dengan surfpool start
CLI menjalankan Surfnet yang berjalan lama dan Anda hubungkan dari proses eksternal. SDK menjalankan Surfnet di dalam pengujian Anda, yang berarti:
- Tidak perlu manajemen port eksternal — setiap
Surfnet::start()terikat ke port yang bebas, sehingga rangkaian pengujian dapat berjalan secara paralel tanpa flag--port. - Teardown sinkron —
stop()mengembalikan nilai ketika runtime benar-benar telah melepaskan portnya. - Cheatcode sebagai metode bertipe — permukaan yang sama yang diekspos
melalui JSON-RPC oleh
surfpool starttersedia sebagai metode Rust native dan binding napi-rs. - Observasi event langsung — event runtime diekspos melalui channel dalam proses (Rust) atau metode drain (JS) tanpa langganan WebSocket.
Kapan Menggunakan SDK
Gunakan SDK ketika:
- Anda sedang menulis pengujian integrasi untuk program Anchor dan ingin memverifikasi saldo token setelah serangkaian pengaturan cheatcode.
- Anda membutuhkan worker pengujian paralel yang masing-masing memiliki Surfnet terisolasi.
- Anda ingin melakukan fork mainnet untuk akun tertentu (
remoteRpcUrl+streamAccount) di dalam sebuah pengujian. - Anda membutuhkan clock deterministik dengan melompat ke slot atau timestamp tetap sebelum menguji logika vesting, lockup, atau kedaluwarsa.
Kapan CLI lebih cocok digunakan
Gunakan surfpool start sebagai gantinya ketika Anda menginginkan Surfnet
yang bertahan di berbagai proses — misalnya, ketika CLI, dompet browser, dan
skrip klien kustom semuanya perlu berbagi instance yang sama.
Is this page helpful?