The home for Hyperlane core contracts, sdk packages, and other infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hyperlane-monorepo/rust/agents/relayer/src/main.rs

52 lines
1.1 KiB

//! The relayer forwards signed checkpoints from the outbox to chain to inboxes
//!
//! At a regular interval, the relayer polls Outbox for signed checkpoints and
//! submits them as checkpoints on the inbox.
#![forbid(unsafe_code)]
#![warn(missing_docs)]
#![warn(unused_extern_crates)]
use eyre::Result;
use abacus_base::Agent;
use crate::relayer::Relayer;
mod checkpoint_fetcher;
mod merkle_tree_builder;
mod message_processor;
mod prover;
mod relayer;
mod settings;
async fn _main() -> Result<()> {
#[cfg(feature = "oneline-errors")]
abacus_base::oneline_eyre::install()?;
#[cfg(not(feature = "oneline-errors"))]
color_eyre::install()?;
let settings = settings::RelayerSettings::new()?;
let agent = Relayer::from_settings(settings).await?;
agent
.as_ref()
.settings
.tracing
.start_tracing(&agent.metrics())?;
let _ = agent.metrics().run_http_server();
agent.run().await??;
Ok(())
}
fn main() -> Result<()> {
tokio::runtime::Builder::new_current_thread()
.enable_all()
.build()
.unwrap()
.block_on(_main())
}