use lichen_client_sdk::{Client, Keypair};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("🦞 Lichen Rust SDK Example\n");
let client = Client::new("http://localhost:8899");
println!("🔑 Generating keypair...");
let keypair = Keypair::new();
println!(" Public key: {}", keypair.pubkey().to_base58());
match client.get_slot().await {
Ok(slot) => println!("\n📍 Current slot: {}", slot),
Err(e) => eprintln!("Failed to get slot: {}", e),
}
match client.get_network_info().await {
Ok(info) => {
println!("\n⛓️ Network Info:");
println!(" Chain ID: {}", info.chain_id);
println!(" Version: {}", info.version);
println!(" Validators: {}", info.validator_count);
}
Err(e) => eprintln!("Failed to get network info: {}", e),
}
match client.get_balance(&keypair.pubkey()).await {
Ok(balance) => {
println!("\n💰 Balance: {} LICN", balance.licn());
}
Err(_e) => {
println!("\n💰 Balance: 0 LICN (account not found)");
}
}
match client.get_validators().await {
Ok(validators) => {
println!("\n👥 Validators: {}", validators.len());
}
Err(e) => eprintln!("Failed to get validators: {}", e),
}
println!("\n✅ Example complete!");
Ok(())
}