Function fetch_splash_pool
pub async fn fetch_splash_pool(
rpc: &RpcClient,
token_1: Address,
token_2: Address,
whirlpool_deployment: Option<WhirlpoolDeployment>,
) -> Result<PoolInfo, Box<dyn Error>>Expand description
Fetches the details of a specific Splash Pool.
This function retrieves information about a pool with the predefined tick spacing for Splash Pools. It determines whether the pool is initialized or not and returns the corresponding details.
§Arguments
rpc- A reference to the Solana RPC client.token_1- The public key of the first token mint in the pool.token_2- The public key of the second token mint in the pool.whirlpool_deployment- The whirlpool program and config to query against. Defaults to the mutable whirlpool program and mainnet config ifNone.
§Returns
A Result containing PoolInfo:
PoolInfo::Initializedif the pool is initialized, including the pool’s state and price.PoolInfo::Uninitializedif the pool is not yet initialized, including configuration details.
§Errors
This function will return an error if:
- Any required account or mint information cannot be fetched.
- The pool or its configuration details are invalid.
§Example
use orca_whirlpools::{fetch_splash_pool, PoolInfo, WhirlpoolDeployment};
use solana_client::nonblocking::rpc_client::RpcClient;
use solana_pubkey::Pubkey;
use std::str::FromStr;
#[tokio::main]
async fn main() {
let rpc = RpcClient::new("https://api.devnet.solana.com".to_string());
let token_a = Pubkey::from_str("So11111111111111111111111111111111111111112").unwrap();
let token_b = Pubkey::from_str("BRjpCHtyQLNCo8gqRUr8jtdAj5AjPYQaoqbvcZiHok1k").unwrap(); // devUSDC
let pool_info = fetch_splash_pool(&rpc, token_a, token_b, Some(WhirlpoolDeployment::devnet()))
.await
.unwrap();
match pool_info {
PoolInfo::Initialized(pool) => println!("Pool is initialized: {:?}", pool),
PoolInfo::Uninitialized(pool) => println!("Pool is not initialized: {:?}", pool),
}
}