use crate::rpc::{Rpc, RpcSubscriptions};
use crate::utils::resolve_url;
use solana_commitment_config::CommitmentConfig;
pub struct SolanaClient {
pub rpc: Rpc,
pub rpc_subscriptions: RpcSubscriptions,
}
impl SolanaClient {
pub fn new(moniker_or_url: &str) -> Self {
let url = resolve_url(moniker_or_url);
Self::new_with_commitment(url, CommitmentConfig::confirmed())
}
pub fn new_with_commitment(moniker_or_url: &str, commitment_level: CommitmentConfig) -> Self {
let url = resolve_url(moniker_or_url);
let rpc = Rpc::new_with_commitment(url, commitment_level);
let rpc_subscriptions = RpcSubscriptions::new(url);
Self {
rpc,
rpc_subscriptions,
}
}
}