use std::sync::Arc;
use notareum::{ClientConfig, ContractAddresses, Notareum};
use ethers::providers::{Http, Provider};
use ethers::signers::LocalWallet;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let rpc = std::env::var("RPC_URL")?;
let key = std::env::var("PRIVATE_KEY")?;
let provider = Arc::new(Provider::<Http>::try_from(rpc)?);
let signer: LocalWallet = key.parse()?;
let contracts = ContractAddresses {
access_manager: std::env::var("ACCESS_MANAGER")?,
nota_token: std::env::var("NOTA_TOKEN")?,
ve_nota: std::env::var("VE_NOTA")?,
validator_staking: std::env::var("VALIDATOR_STAKING")?,
nota_registry: std::env::var("NOTA_REGISTRY")?,
verification_engine: std::env::var("VERIFICATION_ENGINE")?,
slashing_manager: std::env::var("SLASHING_MANAGER")?,
fee_manager: std::env::var("FEE_MANAGER")?,
};
let ntm = Notareum::new(ClientConfig {
provider,
signer: Some(signer),
contracts,
})?;
// ...
Ok(())
}