scripts 0.1.0

A short description of your crate
Documentation
use solana_client::nonblocking::rpc_client::RpcClient;
use solana_sdk::pubkey::Pubkey;

#[derive(serde::Deserialize)]
struct Env {
    rpc_url: url::Url,
    wallet_pubkey: String,
    mint_account_pubkey: String,
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let env = envy::from_env::<Env>()?;
    let target: Pubkey = env.wallet_pubkey.parse()?;
    let mint_id: Pubkey = env.mint_account_pubkey.parse()?;

    let rpc = RpcClient::new(env.rpc_url.to_string());

    let addr = spl_associated_token_account_interface::address::get_associated_token_address(
        &target, &mint_id,
    );

    let balance = rpc.get_token_account_balance(&addr).await?;

    println!("Wallet pubkey: {}", target.to_string());
    println!("Mint account: {}", mint_id.to_string());
    println!("Associated token account: {}", addr.to_string());
    println!("Amount: {}", balance.ui_amount_string);
    println!("Decimals: {}", balance.decimals);

    Ok(())
}