pub mod contracts;
pub mod framework;
pub use contracts::deploy::deploy_contract;
pub use contracts::abi::parse_abi;
pub use contracts::gas::{estimate_gas, check_gas_limit, optimize_gas_dynamically};
pub use contracts::interaction::{call_contract_function, fetch_contract_data};
pub use contracts::watch::watch_contract_transactions;
pub use contracts::contract_update::update_contract;
pub use contracts::monitor::monitor_contract_activity;
pub use crate::framework::async_operations::perform_optimized_operations;
pub use log::{info, warn};
pub use std::time::{Instant, Duration};
pub use chrono::Local;
use env_logger;
use log::LevelFilter;
use std::io::Write;
pub fn init_logging() {
env_logger::builder()
.filter(None, LevelFilter::Info) .format(|buf, record| {
writeln!(
buf,
"[{}] - {} - {}", Local::now().format("%Y-%m-%d %H:%M:%S"),
record.level(),
record.args()
)
})
.init(); }
#[tokio::main]
async fn main() {
init_logging();
info!("Starting the application...");
if let Err(e) = monitor_contract_activity(
"0x1234567890abcdef1234567890abcdef12345678",
"EventName",
Duration::from_secs(5)
) {
log::error!("Monitoring failed: {:?}", e); } else {
info!("Monitoring successful.");
}
perform_optimized_operations().await;
info!("Application completed successfully.");
}