Skip to content

Commit

Permalink
last round of PR remediations (#2791)
Browse files Browse the repository at this point in the history
Remediations for
#2746, in
addition to
#2780
  • Loading branch information
daniel-savu authored Dec 20, 2023
1 parent 5c8d483 commit f73ee0b
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 71 deletions.
7 changes: 3 additions & 4 deletions rust/agents/relayer/src/processor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use derive_new::new;
use eyre::Result;
use hyperlane_core::HyperlaneDomain;
use tokio::task::JoinHandle;
use tracing::{info_span, instrument, instrument::Instrumented, Instrument};
use tracing::instrument;

#[async_trait]
pub trait ProcessorExt: Send + Debug {
Expand All @@ -23,9 +23,8 @@ pub struct Processor {
}

impl Processor {
pub fn spawn(self) -> Instrumented<JoinHandle<Result<()>>> {
let span = info_span!("MessageProcessor");
tokio::spawn(async move { self.main_loop().await }).instrument(span)
pub fn spawn(self) -> JoinHandle<Result<()>> {
tokio::spawn(async move { self.main_loop().await })
}

#[instrument(ret, err, skip(self), level = "info", fields(domain=%self.ticker.domain()))]
Expand Down
92 changes: 47 additions & 45 deletions rust/config/test_sealevel_config.json
Original file line number Diff line number Diff line change
@@ -1,48 +1,50 @@
{
"chains": {
"sealeveltest1": {
"name": "sealeveltest1",
"chainId": 13375,
"domainId": 13375,
"mailbox": "692KZJaoe2KRcD6uhCQDLLXnLNA5ZLnfvdqjE4aX9iu1",
"interchainGasPaymaster": "DrFtxirPPsfdY4HQiNZj2A9o4Ux7JaL3gELANgAoihhp",
"validatorAnnounce": "DH43ae1LwemXAboWwSh8zc9pG8j72gKUEXNi57w8fEnn",
"protocol": "sealevel",
"blocks": {
"reorgPeriod": 0,
"confirmations": 0
},
"rpcUrls": [
{
"http": "http://localhost:8899"
}
],
"index": {
"from": 1,
"mode": "sequence"
}
},
"sealeveltest2": {
"name": "sealeveltest2",
"chainId": 13376,
"domainId": 13376,
"mailbox": "9tCUWNjpqcf3NUSrtp7vquYVCwbEByvLjZUrhG5dgvhj",
"interchainGasPaymaster": "G5rGigZBL8NmxCaukK2CAKr9Jq4SUfAhsjzeri7GUraK",
"validatorAnnounce": "3Uo5j2Bti9aZtrDqJmAyuwiFaJFPFoNL5yxTpVCNcUhb",
"protocol": "sealevel",
"blocks": {
"reorgPeriod": 0,
"confirmations": 0
},
"rpcUrls": [
{
"http": "http://localhost:8899"
}
],
"index": {
"from": 1,
"mode": "sequence"
}
"chains": {
"sealeveltest1": {
"name": "sealeveltest1",
"chainId": 13375,
"domainId": 13375,
"mailbox": "692KZJaoe2KRcD6uhCQDLLXnLNA5ZLnfvdqjE4aX9iu1",
"merkleTreeHook": "692KZJaoe2KRcD6uhCQDLLXnLNA5ZLnfvdqjE4aX9iu1",
"interchainGasPaymaster": "DrFtxirPPsfdY4HQiNZj2A9o4Ux7JaL3gELANgAoihhp",
"validatorAnnounce": "DH43ae1LwemXAboWwSh8zc9pG8j72gKUEXNi57w8fEnn",
"protocol": "sealevel",
"blocks": {
"reorgPeriod": 0,
"confirmations": 0
},
"rpcUrls": [
{
"http": "http://localhost:8899"
}
],
"index": {
"from": 1,
"mode": "sequence"
}
},
"sealeveltest2": {
"name": "sealeveltest2",
"chainId": 13376,
"domainId": 13376,
"mailbox": "9tCUWNjpqcf3NUSrtp7vquYVCwbEByvLjZUrhG5dgvhj",
"merkleTreeHook": "9tCUWNjpqcf3NUSrtp7vquYVCwbEByvLjZUrhG5dgvhj",
"interchainGasPaymaster": "G5rGigZBL8NmxCaukK2CAKr9Jq4SUfAhsjzeri7GUraK",
"validatorAnnounce": "3Uo5j2Bti9aZtrDqJmAyuwiFaJFPFoNL5yxTpVCNcUhb",
"protocol": "sealevel",
"blocks": {
"reorgPeriod": 0,
"confirmations": 0
},
"rpcUrls": [
{
"http": "http://localhost:8899"
}
],
"index": {
"from": 1,
"mode": "sequence"
}
}
}
}
}
28 changes: 8 additions & 20 deletions rust/hyperlane-base/src/settings/chains.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ pub struct CoreContractAddresses {
/// Address of the ValidatorAnnounce contract
pub validator_announce: H256,
/// Address of the MerkleTreeHook contract
pub merkle_tree_hook: Option<H256>,
pub merkle_tree_hook: H256,
}

/// Indexing settings
Expand Down Expand Up @@ -173,13 +173,7 @@ impl ChainConf {
metrics: &CoreMetrics,
) -> Result<Box<dyn MerkleTreeHook>> {
let ctx = "Building merkle tree hook";
// TODO: if the merkle tree hook is set for sealevel, it's still a mailbox program
// that the connection is made to using the pda seeds, which will not be usable.
let address = self
.addresses
.merkle_tree_hook
.unwrap_or(self.addresses.mailbox);
let locator = self.locator(address);
let locator = self.locator(self.addresses.merkle_tree_hook);

match &self.connection {
ChainConnectionConf::Ethereum(conf) => {
Expand Down Expand Up @@ -368,11 +362,7 @@ impl ChainConf {
metrics: &CoreMetrics,
) -> Result<Box<dyn SequenceIndexer<MerkleTreeInsertion>>> {
let ctx = "Building merkle tree hook indexer";
let address = self
.addresses
.merkle_tree_hook
.unwrap_or(self.addresses.mailbox);
let locator = self.locator(address);
let locator = self.locator(self.addresses.merkle_tree_hook);

match &self.connection {
ChainConnectionConf::Ethereum(conf) => {
Expand Down Expand Up @@ -704,13 +694,11 @@ impl ChainConf {
self.addresses.interchain_gas_paymaster,
EthereumInterchainGasPaymasterAbi::fn_map_owned(),
);
if let Some(address) = self.addresses.merkle_tree_hook {
register_contract(
"merkle_tree_hook",
address,
EthereumInterchainGasPaymasterAbi::fn_map_owned(),
);
}
register_contract(
"merkle_tree_hook",
self.addresses.merkle_tree_hook,
EthereumInterchainGasPaymasterAbi::fn_map_owned(),
);

cfg
}
Expand Down
4 changes: 2 additions & 2 deletions rust/hyperlane-base/src/settings/parser/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ fn parse_chain(
.end();
let merkle_tree_hook = chain
.chain(&mut err)
.get_opt_key("merkleTreeHook")
.get_key("merkleTreeHook")
.parse_address_hash()
.end();

Expand All @@ -234,7 +234,7 @@ fn parse_chain(
default_rpc_consensus_type,
);

cfg_unwrap_all!(&chain.cwp, err: [connection, mailbox, interchain_gas_paymaster, validator_announce]);
cfg_unwrap_all!(&chain.cwp, err: [connection, mailbox, interchain_gas_paymaster, validator_announce, merkle_tree_hook]);
err.into_result(ChainConf {
domain,
signer,
Expand Down

0 comments on commit f73ee0b

Please sign in to comment.