Example
Retrieves information about the specified Raydium launcher pool.
#[cfg(test)]
mod tests {
use crate::Raydium;
use solana_network_sdk::Solana;
use solana_network_sdk::types::Mode::MAIN;
use std::sync::Arc;
#[tokio::test]
async fn test_clmm_data_parsing() -> Result<(), Box<dyn std::error::Error>> {
let solana = Solana::new(MAIN).unwrap();
let raydium = Raydium::new(Arc::new(solana));
let pool_data = raydium
.get_liquidity_pool_launchpad("GSxb28CtEf9vJHEoB9D2NoNwbbkj8SxQN3WN86qvMULZ")
.await;
println!("Pool Info: {:?}", pool_data);
Ok(())
}
}
Parse Raydium CPMM pool data
#[cfg(test)]
mod tests {
use crate::{Raydium, Solana};
use solana_network_sdk::types::Mode::MAIN;
use std::sync::Arc;
#[tokio::test]
async fn test() -> Result<(), Box<dyn std::error::Error>> {
let solana = Solana::new(MAIN).unwrap();
let raydium = Raydium::new(Arc::new(solana));
let pool_data = raydium
.get_liquidity_pool_cpmm("8Lq7gz2aEzkMQNfLpYmjv3V8JbD26LRbFd11SnRicCE6")
.await;
println!("Pool Info: {:?}", pool_data);
Ok(())
}
}
Parse Raydium CLMM pool data
#[cfg(test)]
mod tests {
use crate::Raydium;
use super::*;
use solana_network_sdk::Solana;
use solana_network_sdk::types::Mode::MAIN;
use solana_sdk::signature::Keypair;
#[tokio::test]
async fn test_clmm_data_parsing() -> Result<(), Box<dyn std::error::Error>> {
let solana = Solana::new(MAIN).unwrap();
let raydium = Raydium::new(Arc::new(solana));
let pool_data = raydium
.get_liquidity_pool_clmm("DYZopjL34W4XpxbZaEjsCsXsrt6HbgE8WMCmPF1oPCwM")
.await;
println!("Pool Info: {:?}", pool_data);
Ok(())
}
}
create Raydium object
let rpc = RpcClient::new("rpc url");
let raydium = Raydium::new(Arc::new(rpc));
get the data of the V4 liquidity pool of the specified address
let rpc = RpcClient::new("rpc url");
let raydium = Raydium::new(Arc::new(rpc));
let pool_data = raydium.get_liquidity_pool_v4("58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2");
parsing the data structure of the Liquidity v4 pool
let address: &str = "public key";
match Pubkey::from_str(address) {
Ok(pool_address) => match self.client.get_account_data(&pool_address).await {
Ok(v) => match RaydiumLiquidityPoolV4::get_liquidity_pool_info(&v) {
Ok(pool) => return Ok(pool.clone()),
Err(e) => return Err(e),
},
Err(e) => Err(format!("{:?}", e)),
},
Err(e) => {
return Err(format!("{:?}", e));
}
}
get the current liquidity pool price
let rpc = RpcClient::new("".to_string());
let ray = Raydium::new(Arc::new(rpc));
let pool_data = ray.get_liquidity_pool_v4(pool_address).await.unwrap();
let price = pool_data.get_price(Arc::clone(&ray.client)).await;