Surfpool SDK khởi động toàn bộ runtime Surfnet bên trong tiến trình kiểm thử của
bạn. Sử dụng nó khi bạn muốn có một endpoint RPC tương thích Solana cục bộ, một
payer được nạp sẵn tiền, và thao tác trạng thái trực tiếp mà không cần khởi chạy
surfpool start như một tiến trình riêng biệt.
Cả thư viện Rust (surfpool-sdk) và các binding JS (@solana/surfpool) đều bọc
cùng một runtime. Gói JS được vận chuyển kèm các binary native được biên dịch
sẵn thông qua napi-rs cho macOS (Intel + Apple Silicon) và Linux x86-64.
Bắt đầu nhanh
Cài đặt SDK, khởi động Surfnet, gọi endpoint RPC, rồi dừng lại. Các bài kiểm thử chạy song song dùng chung một tiến trình một cách an toàn vì các cổng được cấp phát động.
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());}
Có Gì Trong Hộp
Cài đặt
Thiết lập Cargo và npm, các nền tảng được hỗ trợ, binary native
Cấu hình
Tùy chọn builder: RPC fallback từ xa, sản xuất block, định thời slot, feature gate, payer tùy chỉnh
Cheatcodes
Nạp SOL/token, thay đổi tài khoản, đặt lại trạng thái upstream, stream từ mainnet
Du Hành Thời Gian
Nhảy đến một slot tuyệt đối, epoch, hoặc timestamp Unix
Chương trình
Tự động khám phá workspace Anchor, triển khai .so + IDL tường minh
Sự kiện
Lấy các sự kiện runtime để kiểm định và ghi log
Tài liệu tham khảo Rust
API đầy đủ của crate surfpool-sdk
Tài liệu tham khảo JS
API TypeScript đầy đủ của @solana/surfpool
Sự Khác Biệt So Với surfpool start
CLI chạy một Surfnet tồn tại lâu dài mà bạn kết nối từ các tiến trình bên ngoài. SDK chạy Surfnet bên trong bài kiểm thử của bạn, điều đó có nghĩa là:
- Không cần quản lý cổng bên ngoài — mỗi
Surfnet::start()đều liên kết với một cổng trống, vì vậy các bộ kiểm thử có thể chạy song song mà không cần cờ--port. - Teardown đồng bộ —
stop()trả về khi runtime đã thực sự giải phóng các cổng của nó. - Cheatcode dưới dạng các phương thức có kiểu — cùng một giao diện được
expose qua JSON-RPC bởi
surfpool startcũng có sẵn dưới dạng các phương thức Rust gốc và binding napi-rs. - Quan sát sự kiện trực tiếp — các sự kiện runtime được expose qua kênh trong tiến trình (Rust) hoặc phương thức drain (JS) mà không cần đăng ký WebSocket.
Khi Nào Nên Sử Dụng SDK
Hãy dùng SDK khi:
- Bạn đang viết kiểm thử tích hợp cho một chương trình Anchor và muốn kiểm tra số dư token sau một chuỗi các thiết lập cheatcode.
- Bạn cần các worker kiểm thử song song để mỗi worker có một Surfnet riêng biệt.
- Bạn muốn fork mainnet các tài khoản cụ thể (
remoteRpcUrl+streamAccount) bên trong một bài kiểm thử. - Bạn cần đồng hồ xác định bằng cách nhảy runtime đến một slot hoặc timestamp cố định trước khi kiểm tra logic vesting, lockup hoặc hết hạn.
Khi CLI phù hợp hơn
Thay vào đó hãy dùng surfpool start khi bạn muốn một Surfnet tồn tại qua
nhiều tiến trình — ví dụ, khi một CLI, ví trình duyệt và các script client tùy
chỉnh đều cần chia sẻ cùng một instance.
Is this page helpful?