#![allow(clippy::print_stdout)]
use alloy::{primitives::U256, providers::ProviderBuilder};
use erc8004::{Erc8004, Network};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let provider = ProviderBuilder::new().connect_http("https://eth.llamarpc.com".parse()?);
let client = Erc8004::new(provider).with_network(Network::EthereumMainnet);
let identity = client.identity()?;
let version = identity.get_version().await?;
println!("Identity Registry version: {version}");
let agent_id = U256::from(1);
let owner = identity.owner_of(agent_id).await?;
let uri = identity.token_uri(agent_id).await?;
let wallet = identity.get_agent_wallet(agent_id).await?;
println!("Agent #{agent_id}");
println!(" Owner: {owner}");
println!(" URI: {uri}");
println!(" Wallet: {wallet}");
Ok(())
}