wallet_balance/
wallet_balance.rs1use anyhow::Result;
20use privy_rs::{
21 PrivyClient,
22 generated::types::{
23 GetWalletBalanceAsset, GetWalletBalanceAssetString, GetWalletBalanceChain,
24 GetWalletBalanceChainString, GetWalletBalanceIncludeCurrency,
25 },
26};
27use tracing_subscriber::EnvFilter;
28
29#[tokio::main]
30async fn main() -> Result<()> {
31 tracing_subscriber::fmt()
32 .with_env_filter(
33 EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")),
34 )
35 .init();
36
37 let wallet_id =
39 std::env::var("PRIVY_WALLET_ID").expect("PRIVY_WALLET_ID environment variable not set");
40 let client = PrivyClient::new_from_env()?;
41
42 tracing::info!(
43 "initialized privy client from environment, wallet_id: {}",
44 wallet_id
45 );
46
47 let balance = client
49 .wallets()
50 .balance()
51 .get(
52 &wallet_id,
53 &GetWalletBalanceAsset::String(GetWalletBalanceAssetString::Sol),
54 &GetWalletBalanceChain::String(GetWalletBalanceChainString::Solana),
55 Some(GetWalletBalanceIncludeCurrency::Usd),
56 )
57 .await?;
58
59 tracing::info!("got wallet balance: {:?}", balance);
60
61 Ok(())
62}