use amp_rs::ApiClient;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
dotenvy::from_filename_override(".env").ok();
if env::var("AMP_USERNAME").is_err() || env::var("AMP_PASSWORD").is_err() {
eprintln!("Error: AMP_USERNAME and AMP_PASSWORD must be set");
std::process::exit(1);
}
let client = ApiClient::new().await?;
println!("Fetching assets...");
let assets = client.get_assets().await?;
if assets.is_empty() {
println!("No assets found.");
return Ok(());
}
let asset = &assets[0];
println!("Using asset: {} ({})", asset.name, asset.asset_uuid);
println!("\nFetching current treasury addresses...");
let current_addresses = client
.get_asset_treasury_addresses(&asset.asset_uuid)
.await?;
println!("Current treasury addresses: {:?}", current_addresses);
let new_addresses = vec![
"vjU2i2EM2viGEzSywpStMPkTX9U9QSDsLSN63kJJYVpxKJZuxaph8v5r5Jf11aqnfBVdjSbrvcJ2pw26"
.to_string(),
"vjU2i2EM2viGEzSywpStMPkTX9U9QSDsLSN63kJJYVpxKJZuxaph8v5r5Jf11aqnfBVdjSbrvcJ2pw27"
.to_string(),
];
println!("\nAdding treasury addresses...");
client
.add_asset_treasury_addresses(&asset.asset_uuid, &new_addresses)
.await?;
println!(
"Successfully added {} treasury addresses",
new_addresses.len()
);
println!("\nFetching updated treasury addresses...");
let updated_addresses = client
.get_asset_treasury_addresses(&asset.asset_uuid)
.await?;
println!("Updated treasury addresses: {:?}", updated_addresses);
println!("\nTreasury addresses management completed successfully!");
Ok(())
}