Surfpool SDK

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

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 sinkronstop() mengembalikan nilai ketika runtime benar-benar telah melepaskan portnya.
  • Cheatcode sebagai metode bertipe — permukaan yang sama yang diekspos melalui JSON-RPC oleh surfpool start tersedia 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?

Daftar Isi

Edit Halaman
© 2026 Yayasan Solana. Semua hak dilindungi.