#![allow(clippy::print_stdout)]
use alloy_network::{AnyNetwork, ReceiptResponse};
use alloy_provider::ProviderBuilder;
use alloy_signer_local::PrivateKeySigner;
use trident_evm_aa::eip7702_installer::SelfInstaller;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let rpc_url = std::env::var("RPC_URL")?;
let signer: PrivateKeySigner = std::env::var("PRIVATE_KEY")?.parse()?;
let provider = ProviderBuilder::new()
.network::<AnyNetwork>()
.with_simple_nonce_management() .wallet(signer.clone())
.connect_http(rpc_url.parse()?);
let tx_hash = SelfInstaller::new()
.install(provider, &signer)
.await?
.get_receipt()
.await?
.transaction_hash();
println!("install tx: {tx_hash}");
Ok(())
}