pub struct SolanaClient { /* private fields */ }Expand description
Solana blockchain client.
Supports balance queries via JSON-RPC and optional transaction history via Solscan API.
Implementations§
Source§impl SolanaClient
impl SolanaClient
Sourcepub fn new(config: &ChainsConfig) -> Result<Self>
👎Deprecated since 0.8.0: pass the transport: use SolanaClient::new_with_http
pub fn new(config: &ChainsConfig) -> Result<Self>
pass the transport: use SolanaClient::new_with_http
Creates a new Solana client with the given configuration.
§Arguments
config- Chain configuration containing RPC endpoint and API keys
§Returns
Returns a configured SolanaClient instance.
§Examples
use scope::chains::SolanaClient;
use scope::config::ChainsConfig;
let config = ChainsConfig::default();
let client = SolanaClient::new(&config).unwrap();Sourcepub fn new_with_http(
config: &ChainsConfig,
http: Arc<dyn HttpClient>,
) -> Result<Self>
pub fn new_with_http( config: &ChainsConfig, http: Arc<dyn HttpClient>, ) -> Result<Self>
Creates a new Solana client with a pre-built HTTP transport.
Sourcepub fn with_rpc_url(rpc_url: &str) -> Self
pub fn with_rpc_url(rpc_url: &str) -> Self
Sourcepub fn chain_name(&self) -> &str
pub fn chain_name(&self) -> &str
Returns the chain name.
Sourcepub fn native_token_symbol(&self) -> &str
pub fn native_token_symbol(&self) -> &str
Returns the native token symbol.
Sourcepub async fn get_balance(&self, address: &str) -> Result<Balance>
pub async fn get_balance(&self, address: &str) -> Result<Balance>
Fetches the SOL balance for an address.
§Arguments
address- The Solana address (base58 encoded)
§Returns
Returns a Balance struct with the balance in multiple formats.
§Errors
Returns ScopeError::InvalidAddress if the address format is invalid.
Returns ScopeError::Request if the API request fails.
Sourcepub async fn get_token_info(&self, mint_address: &str) -> Result<Token>
pub async fn get_token_info(&self, mint_address: &str) -> Result<Token>
Fetches SPL token (mint) info from RPC.
Parses decimals from the mint account data. Symbol and name use placeholders (Solscan Pro API would provide full metadata).
Sourcepub async fn enrich_balance_usd(&self, balance: &mut Balance)
pub async fn enrich_balance_usd(&self, balance: &mut Balance)
Enriches a balance with a USD value using DexScreener price lookup.
Sourcepub async fn get_token_balances(
&self,
address: &str,
) -> Result<Vec<TokenBalance>>
pub async fn get_token_balances( &self, address: &str, ) -> Result<Vec<TokenBalance>>
Fetches all SPL token balances for an address.
§Arguments
address- The Solana wallet address to query
§Returns
Returns a vector of TokenBalance containing all SPL tokens held by the address.
§Errors
Returns ScopeError::InvalidAddress if the address format is invalid.
Returns ScopeError::Request if the API request fails.
Sourcepub async fn get_transaction(&self, signature: &str) -> Result<Transaction>
pub async fn get_transaction(&self, signature: &str) -> Result<Transaction>
Fetches transaction details by signature.
§Arguments
signature- The transaction signature (base58 encoded)
§Returns
Returns Transaction details.
Sourcepub async fn get_transactions(
&self,
address: &str,
limit: u32,
) -> Result<Vec<Transaction>>
pub async fn get_transactions( &self, address: &str, limit: u32, ) -> Result<Vec<Transaction>>
Fetches recent transactions for an address.
§Arguments
address- The address to querylimit- Maximum number of transactions
§Returns
Returns a vector of Transaction objects.