surfpool_sdk/lib.rs
1//! # Surfpool SDK
2//!
3//! Embed a full Surfpool instance directly in your Rust integration tests.
4//! No external process needed — just spin up a `Surfnet`, point your RPC client at it,
5//! and test against a real Solana-compatible runtime.
6//!
7//! ```rust
8//! use surfpool_sdk::Surfnet;
9//!
10//! #[tokio::test]
11//! async fn my_test() {
12//! let surfnet = Surfnet::start().await.unwrap();
13//!
14//! let rpc = surfnet.rpc_client();
15//! let balance = rpc.get_balance(&surfnet.payer().pubkey()).unwrap();
16//! assert!(balance > 0);
17//! }
18//! ```
19
20pub mod cheatcodes;
21mod error;
22mod surfnet;
23
24pub use cheatcodes::Cheatcodes;
25pub use error::{SurfnetError, SurfnetResult};
26// Re-export key Solana types for convenience
27pub use solana_keypair::Keypair;
28pub use solana_pubkey::Pubkey;
29pub use solana_rpc_client::rpc_client::RpcClient;
30pub use solana_signer::Signer;
31pub use surfnet::{Surfnet, SurfnetBuilder};
32pub use surfpool_types::{BlockProductionMode, SimnetCommand, SimnetEvent, SvmFeatureConfig};