From 4b280cdf1b7e6619a0ea0c7fa28b805581ea1e4c Mon Sep 17 00:00:00 2001 From: Danil Nemirovsky Date: Fri, 6 Dec 2024 12:50:43 +0000 Subject: [PATCH 1/4] feat: Retrieve gas payments by sequence for scraping Sealevel (#4942) ### Description - Retrieve gas payment by origin, interchain_gas_paymaster and sequence - Add Sealevel to Scraper in E2E Ethereum and Sealevel tests ### Related issues - Contributes into https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/4271 ### Backward compatibility Yes (after backfill of origin, destination, interchain_gas_paymaster) ### Testing E2E Ethereum and Sealevel tests (including scraping Sealevel) --------- Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com> --- .../m20230309_000001_create_table_domain.rs | 16 +++++ ...0230309_000004_create_table_gas_payment.rs | 30 ++++++--- rust/main/agents/scraper/src/agent.rs | 6 +- rust/main/agents/scraper/src/conversions.rs | 28 +++++++++ .../scraper/src/db/generated/gas_payment.rs | 19 ++---- rust/main/agents/scraper/src/db/payment.rs | 63 +++++++++++++++++-- .../main/agents/scraper/src/store/payments.rs | 36 ++++++++++- rust/main/config/test_sealevel_config.json | 4 +- rust/main/hyperlane-base/src/settings/base.rs | 58 ++++++++++------- rust/main/utils/run-locally/src/config.rs | 1 + .../src/invariants/termination_invariants.rs | 27 +++----- rust/main/utils/run-locally/src/main.rs | 11 +++- .../environments/local-e2e/chain-config.json | 4 +- 13 files changed, 225 insertions(+), 78 deletions(-) diff --git a/rust/main/agents/scraper/migration/src/m20230309_000001_create_table_domain.rs b/rust/main/agents/scraper/migration/src/m20230309_000001_create_table_domain.rs index 848bb05e48..5e35e14792 100644 --- a/rust/main/agents/scraper/migration/src/m20230309_000001_create_table_domain.rs +++ b/rust/main/agents/scraper/migration/src/m20230309_000001_create_table_domain.rs @@ -462,6 +462,22 @@ const DOMAINS: &[RawDomain] = &[ is_test_net: true, is_deprecated: false, }, + RawDomain { + name: "sealeveltest1", + token: "SOL", + domain: 13375, + chain_id: 13375, + is_test_net: true, + is_deprecated: false, + }, + RawDomain { + name: "sealeveltest2", + token: "SOL", + domain: 13376, + chain_id: 13376, + is_test_net: true, + is_deprecated: false, + }, ]; #[derive(DeriveMigrationName)] diff --git a/rust/main/agents/scraper/migration/src/m20230309_000004_create_table_gas_payment.rs b/rust/main/agents/scraper/migration/src/m20230309_000004_create_table_gas_payment.rs index 90e2e9fa25..9285c83468 100644 --- a/rust/main/agents/scraper/migration/src/m20230309_000004_create_table_gas_payment.rs +++ b/rust/main/agents/scraper/migration/src/m20230309_000004_create_table_gas_payment.rs @@ -1,5 +1,3 @@ -use std::borrow::BorrowMut as _; - use sea_orm::ConnectionTrait; use sea_orm_migration::prelude::*; @@ -41,11 +39,15 @@ impl MigrationTrait for Migration { .big_unsigned() .not_null(), ) - .col(ColumnDef::new(GasPayment::Origin).unsigned()) - .col(ColumnDef::new(GasPayment::Destination).unsigned()) + .col(ColumnDef::new(GasPayment::Origin).unsigned().not_null()) + .col( + ColumnDef::new(GasPayment::Destination) + .unsigned() + .not_null(), + ) .col( ColumnDef::new_with_type(GasPayment::InterchainGasPaymaster, Address) - .borrow_mut(), + .not_null(), ) .col(ColumnDef::new(GasPayment::Sequence).big_integer()) .foreign_key( @@ -63,11 +65,6 @@ impl MigrationTrait for Migration { .from_col(GasPayment::Origin) .to(Domain::Table, Domain::Id), ) - .foreign_key( - ForeignKey::create() - .from_col(GasPayment::Destination) - .to(Domain::Table, Domain::Id), - ) .index( Index::create() // don't need domain because TxId includes it @@ -90,6 +87,19 @@ impl MigrationTrait for Migration { ) .await?; + manager + .create_index( + Index::create() + .table(GasPayment::Table) + .name("gas_payment_origin_interchain_gas_paymaster_sequence_idx") + .col(GasPayment::Origin) + .col(GasPayment::InterchainGasPaymaster) + .col(GasPayment::Sequence) + .index_type(IndexType::BTree) + .to_owned(), + ) + .await?; + manager .get_connection() .execute_unprepared(&format!( diff --git a/rust/main/agents/scraper/src/agent.rs b/rust/main/agents/scraper/src/agent.rs index 04bf0973b7..d1ded9010e 100644 --- a/rust/main/agents/scraper/src/agent.rs +++ b/rust/main/agents/scraper/src/agent.rs @@ -231,7 +231,7 @@ impl Scraper { let sync = self .as_ref() .settings - .watermark_contract_sync::( + .contract_sync::( &domain, &metrics.clone(), &contract_sync_metrics.clone(), @@ -264,11 +264,11 @@ impl Scraper { let sync = self .as_ref() .settings - .watermark_contract_sync::( + .contract_sync::( &domain, &metrics.clone(), &contract_sync_metrics.clone(), - Arc::new(store.clone()), + Arc::new(store.clone()) as _, true, ) .await diff --git a/rust/main/agents/scraper/src/conversions.rs b/rust/main/agents/scraper/src/conversions.rs index 9252d5cd44..33bbbc229e 100644 --- a/rust/main/agents/scraper/src/conversions.rs +++ b/rust/main/agents/scraper/src/conversions.rs @@ -8,3 +8,31 @@ pub fn u256_to_decimal(v: U256) -> BigDecimal { v.to_little_endian(&mut buf); BigDecimal::from(BigInt::from_bytes_le(Sign::Plus, &buf as &[u8])) } + +pub fn decimal_to_u256(v: BigDecimal) -> U256 { + let (i, _) = v.into_bigint_and_exponent(); + let (_, b) = i.to_bytes_le(); + U256::from_little_endian(&b) +} + +#[cfg(test)] +mod tests { + use hyperlane_core::U256; + + use crate::conversions::{decimal_to_u256, u256_to_decimal}; + + #[test] + fn test() { + // given + let u = U256::from_dec_str( + "76418673493495739447102571088210420170780567439841463646292940247514478199569", + ) + .unwrap(); + + // when + let r = decimal_to_u256(u256_to_decimal(u)); + + // then + assert_eq!(u, r); + } +} diff --git a/rust/main/agents/scraper/src/db/generated/gas_payment.rs b/rust/main/agents/scraper/src/db/generated/gas_payment.rs index 0ec04960be..5df74b084a 100644 --- a/rust/main/agents/scraper/src/db/generated/gas_payment.rs +++ b/rust/main/agents/scraper/src/db/generated/gas_payment.rs @@ -21,9 +21,9 @@ pub struct Model { pub gas_amount: BigDecimal, pub tx_id: i64, pub log_index: i64, - pub origin: Option, - pub destination: Option, - pub interchain_gas_paymaster: Option>, + pub origin: i32, + pub destination: i32, + pub interchain_gas_paymaster: Vec, pub sequence: Option, } @@ -57,7 +57,6 @@ impl PrimaryKeyTrait for PrimaryKey { #[derive(Copy, Clone, Debug, EnumIter)] pub enum Relation { - Destination, Domain, Origin, Transaction, @@ -75,12 +74,10 @@ impl ColumnTrait for Column { Self::GasAmount => ColumnType::Decimal(Some((78u32, 0u32))).def(), Self::TxId => ColumnType::BigInteger.def(), Self::LogIndex => ColumnType::BigInteger.def(), - Self::Origin => ColumnType::Integer.def().null(), - Self::Destination => ColumnType::Integer.def().null(), + Self::Origin => ColumnType::Integer.def(), + Self::Destination => ColumnType::Integer.def(), Self::InterchainGasPaymaster => { - ColumnType::Binary(sea_orm::sea_query::BlobSize::Blob(None)) - .def() - .null() + ColumnType::Binary(sea_orm::sea_query::BlobSize::Blob(None)).def() } Self::Sequence => ColumnType::BigInteger.def().null(), } @@ -90,10 +87,6 @@ impl ColumnTrait for Column { impl RelationTrait for Relation { fn def(&self) -> RelationDef { match self { - Self::Destination => Entity::belongs_to(super::domain::Entity) - .from(Column::Destination) - .to(super::domain::Column::Id) - .into(), Self::Domain => Entity::belongs_to(super::domain::Entity) .from(Column::Domain) .to(super::domain::Column::Id) diff --git a/rust/main/agents/scraper/src/db/payment.rs b/rust/main/agents/scraper/src/db/payment.rs index c4b04f5372..61f521aa27 100644 --- a/rust/main/agents/scraper/src/db/payment.rs +++ b/rust/main/agents/scraper/src/db/payment.rs @@ -6,7 +6,7 @@ use tracing::{debug, instrument}; use hyperlane_core::{address_to_bytes, h256_to_bytes, InterchainGasPayment, LogMeta, H256}; use migration::OnConflict; -use crate::conversions::u256_to_decimal; +use crate::conversions::{decimal_to_u256, u256_to_decimal}; use crate::date_time; use crate::db::ScraperDb; @@ -22,6 +22,61 @@ pub struct StorablePayment<'a> { } impl ScraperDb { + /// Get the payment associated with a sequence. + #[instrument(skip(self))] + pub async fn retrieve_payment_by_sequence( + &self, + origin: u32, + interchain_gas_paymaster: &H256, + sequence: u32, + ) -> Result> { + if let Some(payment) = gas_payment::Entity::find() + .filter(gas_payment::Column::Origin.eq(origin)) + .filter( + gas_payment::Column::InterchainGasPaymaster + .eq(address_to_bytes(interchain_gas_paymaster)), + ) + .filter(gas_payment::Column::Sequence.eq(sequence)) + .one(&self.0) + .await? + { + let payment = InterchainGasPayment { + message_id: H256::from_slice(&payment.msg_id), + destination: payment.destination as u32, + payment: decimal_to_u256(payment.payment), + gas_amount: decimal_to_u256(payment.gas_amount), + }; + Ok(Some(payment)) + } else { + Ok(None) + } + } + + /// Get the transaction id of the gas payment associated with a sequence. + #[instrument(skip(self))] + pub async fn retrieve_payment_tx_id( + &self, + origin: u32, + interchain_gas_paymaster: &H256, + sequence: u32, + ) -> Result> { + if let Some(payment) = gas_payment::Entity::find() + .filter(gas_payment::Column::Origin.eq(origin)) + .filter( + gas_payment::Column::InterchainGasPaymaster + .eq(address_to_bytes(interchain_gas_paymaster)), + ) + .filter(gas_payment::Column::Sequence.eq(sequence)) + .one(&self.0) + .await? + { + let txn_id = payment.tx_id; + Ok(Some(txn_id)) + } else { + Ok(None) + } + } + #[instrument(skip_all)] pub async fn store_payments( &self, @@ -44,9 +99,9 @@ impl ScraperDb { gas_amount: Set(u256_to_decimal(storable.payment.gas_amount)), tx_id: Unchanged(storable.txn_id), log_index: Unchanged(storable.meta.log_index.as_u64() as i64), - origin: Set(Some(domain as i32)), - destination: Set(Some(storable.payment.destination as i32)), - interchain_gas_paymaster: Set(Some(interchain_gas_paymaster.clone())), + origin: Set(domain as i32), + destination: Set(storable.payment.destination as i32), + interchain_gas_paymaster: Set(interchain_gas_paymaster.clone()), sequence: Set(storable.sequence), }) .collect_vec(); diff --git a/rust/main/agents/scraper/src/store/payments.rs b/rust/main/agents/scraper/src/store/payments.rs index 6c988dddda..9fe4888c8b 100644 --- a/rust/main/agents/scraper/src/store/payments.rs +++ b/rust/main/agents/scraper/src/store/payments.rs @@ -5,7 +5,10 @@ use eyre::Result; use itertools::Itertools; use tracing::debug; -use hyperlane_core::{HyperlaneLogStore, Indexed, InterchainGasPayment, LogMeta, H512}; +use hyperlane_core::{ + unwrap_or_none_result, HyperlaneLogStore, HyperlaneSequenceAwareIndexerStoreReader, Indexed, + InterchainGasPayment, LogMeta, H512, +}; use crate::db::StorablePayment; use crate::store::storage::HyperlaneDbStore; @@ -65,3 +68,34 @@ impl HyperlaneLogStore for HyperlaneDbStore { Ok(stored as u32) } } + +#[async_trait] +impl HyperlaneSequenceAwareIndexerStoreReader for HyperlaneDbStore { + /// Gets a gas payment by sequence + async fn retrieve_by_sequence(&self, sequence: u32) -> Result> { + let message = self + .db + .retrieve_payment_by_sequence( + self.domain.id(), + &self.interchain_gas_paymaster_address, + sequence, + ) + .await?; + Ok(message) + } + + /// Gets the block number at which the log occurred. + async fn retrieve_log_block_number_by_sequence(&self, sequence: u32) -> Result> { + let tx_id = unwrap_or_none_result!( + self.db + .retrieve_payment_tx_id( + self.domain.id(), + &self.interchain_gas_paymaster_address, + sequence, + ) + .await? + ); + let block_id = unwrap_or_none_result!(self.db.retrieve_block_id(tx_id).await?); + Ok(self.db.retrieve_block_number(block_id).await?) + } +} diff --git a/rust/main/config/test_sealevel_config.json b/rust/main/config/test_sealevel_config.json index 5eebd592a3..7b7cc1c8a7 100644 --- a/rust/main/config/test_sealevel_config.json +++ b/rust/main/config/test_sealevel_config.json @@ -15,7 +15,7 @@ }, "rpcUrls": [ { - "http": "http://localhost:8899" + "http": "http://127.0.0.1:8899" } ], "index": { @@ -38,7 +38,7 @@ }, "rpcUrls": [ { - "http": "http://localhost:8899" + "http": "http://127.0.0.1:8899" } ], "index": { diff --git a/rust/main/hyperlane-base/src/settings/base.rs b/rust/main/hyperlane-base/src/settings/base.rs index e32771b0e2..7024d67cc6 100644 --- a/rust/main/hyperlane-base/src/settings/base.rs +++ b/rust/main/hyperlane-base/src/settings/base.rs @@ -225,28 +225,10 @@ impl Settings { // TODO: parallelize these calls again let mut syncs = vec![]; for domain in domains { - let sync = match T::indexing_cursor(domain.domain_protocol()) { - CursorType::SequenceAware => self - .sequenced_contract_sync( - domain, - metrics, - sync_metrics, - stores.get(domain).unwrap().clone(), - advanced_log_meta, - ) - .await - .map(|r| r as Arc>)?, - CursorType::RateLimited => self - .watermark_contract_sync( - domain, - metrics, - sync_metrics, - stores.get(domain).unwrap().clone(), - advanced_log_meta, - ) - .await - .map(|r| r as Arc>)?, - }; + let store = stores.get(domain).unwrap().clone(); + let sync = self + .contract_sync(domain, metrics, sync_metrics, store, advanced_log_meta) + .await?; syncs.push(sync); } @@ -255,4 +237,36 @@ impl Settings { .map(|i| Ok((i.domain().clone(), i))) .collect() } + + /// Build single contract sync. + /// All contracts have to implement both sequenced and + /// watermark trait bounds + pub async fn contract_sync( + &self, + domain: &HyperlaneDomain, + metrics: &CoreMetrics, + sync_metrics: &ContractSyncMetrics, + store: Arc, + advanced_log_meta: bool, + ) -> Result>> + where + T: Indexable + Debug + Send + Sync + Clone + Eq + Hash + 'static, + SequenceIndexer: TryFromWithMetrics, + S: HyperlaneLogStore + + HyperlaneSequenceAwareIndexerStoreReader + + HyperlaneWatermarkedLogStore + + 'static, + { + let sync = match T::indexing_cursor(domain.domain_protocol()) { + CursorType::SequenceAware => self + .sequenced_contract_sync(domain, metrics, sync_metrics, store, advanced_log_meta) + .await + .map(|r| r as Arc>)?, + CursorType::RateLimited => self + .watermark_contract_sync(domain, metrics, sync_metrics, store, advanced_log_meta) + .await + .map(|r| r as Arc>)?, + }; + Ok(sync) + } } diff --git a/rust/main/utils/run-locally/src/config.rs b/rust/main/utils/run-locally/src/config.rs index 476a10725d..c03f859ba8 100644 --- a/rust/main/utils/run-locally/src/config.rs +++ b/rust/main/utils/run-locally/src/config.rs @@ -1,6 +1,7 @@ use std::env; use std::sync::Arc; +#[derive(Debug)] pub struct Config { pub is_ci_env: bool, pub ci_mode: bool, diff --git a/rust/main/utils/run-locally/src/invariants/termination_invariants.rs b/rust/main/utils/run-locally/src/invariants/termination_invariants.rs index 67bbbb9ac8..cb851af8d2 100644 --- a/rust/main/utils/run-locally/src/invariants/termination_invariants.rs +++ b/rust/main/utils/run-locally/src/invariants/termination_invariants.rs @@ -126,16 +126,6 @@ pub fn termination_invariants_met( "Verbose logs not expected at the log level set in e2e" ); - let gas_payment_sealevel_events_count = fetch_metric( - RELAYER_METRICS_PORT, - "hyperlane_contract_sync_stored_events", - &hashmap! { - "data_type" => "gas_payments", - "chain" => "sealeveltest", - }, - )? - .iter() - .sum::(); // TestSendReceiver randomly breaks gas payments up into // two. So we expect at least as many gas payments as messages. if gas_payment_events_count < total_messages_expected { @@ -163,11 +153,12 @@ pub fn termination_invariants_met( )? .iter() .sum::(); - if dispatched_messages_scraped != eth_messages_expected + ZERO_MERKLE_INSERTION_KATHY_MESSAGES { + if dispatched_messages_scraped != total_messages_expected + ZERO_MERKLE_INSERTION_KATHY_MESSAGES + { log!( "Scraper has scraped {} dispatched messages, expected {}", dispatched_messages_scraped, - eth_messages_expected + total_messages_expected + ZERO_MERKLE_INSERTION_KATHY_MESSAGES, ); return Ok(false); } @@ -179,15 +170,11 @@ pub fn termination_invariants_met( )? .iter() .sum::(); - // The relayer and scraper should have the same number of gas payments. - // TODO: Sealevel gas payments are not yet included in the event count. - // For now, treat as an exception in the invariants. - let expected_gas_payments = gas_payment_events_count - gas_payment_sealevel_events_count; - if gas_payments_scraped != expected_gas_payments { + if gas_payments_scraped != gas_payment_events_count { log!( "Scraper has scraped {} gas payments, expected {}", gas_payments_scraped, - expected_gas_payments + gas_payment_events_count ); return Ok(false); } @@ -199,11 +186,11 @@ pub fn termination_invariants_met( )? .iter() .sum::(); - if delivered_messages_scraped != eth_messages_expected { + if delivered_messages_scraped != total_messages_expected { log!( "Scraper has scraped {} delivered messages, expected {}", delivered_messages_scraped, - eth_messages_expected + total_messages_expected ); return Ok(false); } diff --git a/rust/main/utils/run-locally/src/main.rs b/rust/main/utils/run-locally/src/main.rs index ac91660633..4686c15446 100644 --- a/rust/main/utils/run-locally/src/main.rs +++ b/rust/main/utils/run-locally/src/main.rs @@ -153,6 +153,8 @@ fn main() -> ExitCode { .unwrap(); let config = Config::load(); + log!("Running with config: {:?}", config); + let mut validator_origin_chains = ["test1", "test2", "test3"].to_vec(); let mut validator_keys = ETH_VALIDATOR_KEYS.to_vec(); let mut validator_count: usize = validator_keys.len(); @@ -286,12 +288,19 @@ fn main() -> ExitCode { .hyp_env("CHAINS_TEST2_CUSTOMRPCURLS", "http://127.0.0.1:8545") .hyp_env("CHAINS_TEST3_RPCCONSENSUSTYPE", "quorum") .hyp_env("CHAINS_TEST3_CUSTOMRPCURLS", "http://127.0.0.1:8545") - .hyp_env("CHAINSTOSCRAPE", "test1,test2,test3") .hyp_env("METRICSPORT", SCRAPER_METRICS_PORT) .hyp_env( "DB", "postgresql://postgres:47221c18c610@localhost:5432/postgres", ); + let scraper_env = if config.sealevel_enabled { + scraper_env.hyp_env( + "CHAINSTOSCRAPE", + "test1,test2,test3,sealeveltest1,sealeveltest2", + ) + } else { + scraper_env.hyp_env("CHAINSTOSCRAPE", "test1,test2,test3") + }; let mut state = State::default(); diff --git a/rust/sealevel/environments/local-e2e/chain-config.json b/rust/sealevel/environments/local-e2e/chain-config.json index eadbdf9404..5dd2834a36 100644 --- a/rust/sealevel/environments/local-e2e/chain-config.json +++ b/rust/sealevel/environments/local-e2e/chain-config.json @@ -4,7 +4,7 @@ "name": "sealeveltest1", "rpcUrls": [ { - "http": "http://localhost:8899" + "http": "http://127.0.0.1:8899" } ] }, @@ -13,7 +13,7 @@ "name": "sealeveltest2", "rpcUrls": [ { - "http": "http://localhost:8899" + "http": "http://127.0.0.1:8899" } ] } From aeb2596f7b0494808a9d5e3e45bf995d6321c65f Mon Sep 17 00:00:00 2001 From: Danil Nemirovsky Date: Fri, 6 Dec 2024 14:08:35 +0000 Subject: [PATCH 2/4] feat: Upgrade Scraper (#4960) ### Description Upgrade Scraper ### Related issues - Contributes into https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/4271 ### Backward compatibility Yes ### Testing E2E Ethereum and Sealevel test Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com> --- typescript/infra/config/environments/mainnet3/agent.ts | 2 +- typescript/infra/config/environments/testnet4/agent.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/typescript/infra/config/environments/mainnet3/agent.ts b/typescript/infra/config/environments/mainnet3/agent.ts index 4dc07088e5..58c42ffd81 100644 --- a/typescript/infra/config/environments/mainnet3/agent.ts +++ b/typescript/infra/config/environments/mainnet3/agent.ts @@ -488,7 +488,7 @@ const hyperlane: RootAgentConfig = { rpcConsensusType: RpcConsensusType.Fallback, docker: { repo, - tag: 'a7f3967-20241205-163733', + tag: '4b280cd-20241206-130519', }, resources: scraperResources, }, diff --git a/typescript/infra/config/environments/testnet4/agent.ts b/typescript/infra/config/environments/testnet4/agent.ts index 6460b5aace..4f984ebfe8 100644 --- a/typescript/infra/config/environments/testnet4/agent.ts +++ b/typescript/infra/config/environments/testnet4/agent.ts @@ -252,7 +252,7 @@ const hyperlane: RootAgentConfig = { rpcConsensusType: RpcConsensusType.Fallback, docker: { repo, - tag: 'a65422d-20241204-225119', + tag: '4b280cd-20241206-130519', }, resources: scraperResources, }, From d04390938e5d98660e494149f857eafbc114a2e1 Mon Sep 17 00:00:00 2001 From: Danil Nemirovsky Date: Fri, 6 Dec 2024 14:35:59 +0000 Subject: [PATCH 3/4] fix: Add index to cursor table (#4961) ### Description Add index to cursor table so than Scraper starts quickly ### Backward compatibility Yes ### Testing Manual Co-authored-by: Danil Nemirovsky <4614623+ameten@users.noreply.github.com> --- .../src/m20230309_000003_create_table_cursor.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/rust/main/agents/scraper/migration/src/m20230309_000003_create_table_cursor.rs b/rust/main/agents/scraper/migration/src/m20230309_000003_create_table_cursor.rs index 2b50414f81..dd8c1d2e96 100644 --- a/rust/main/agents/scraper/migration/src/m20230309_000003_create_table_cursor.rs +++ b/rust/main/agents/scraper/migration/src/m20230309_000003_create_table_cursor.rs @@ -35,7 +35,20 @@ impl MigrationTrait for Migration { ) .to_owned(), ) - .await + .await?; + + manager + .create_index( + Index::create() + .table(Cursor::Table) + .name("cursor_domain_idx") + .col(Cursor::Domain) + .index_type(IndexType::BTree) + .to_owned(), + ) + .await?; + + Ok(()) } async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { From 5e9b8ba7ab0f54e92b3cf32806fae95eb23ad0f8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 7 Dec 2024 04:52:45 +0000 Subject: [PATCH 4/4] Version Packages (#4907) This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @hyperlane-xyz/cli@7.3.0 ### Minor Changes - aa1ea9a48: updates the warp deployment config schema to be closer to the ica routing schema - 323f0f158: Add ICAs management in core apply command ### Patch Changes - 455a897fb: Fix a bug where it would try to relay the incorrect message from a transaction that dispatches multiple messages. - Updated dependencies [2054f4f5b] - Updated dependencies [a96448fa6] - Updated dependencies [170a0fc73] - Updated dependencies [9a09afcc7] - Updated dependencies [24784af95] - Updated dependencies [3e8dd70ac] - Updated dependencies [aa1ea9a48] - Updated dependencies [665a7b8d8] - Updated dependencies [f0b98fdef] - Updated dependencies [ff9e8a72b] - Updated dependencies [97c1f80b7] - Updated dependencies [323f0f158] - Updated dependencies [61157097b] - @hyperlane-xyz/sdk@7.3.0 - @hyperlane-xyz/utils@7.3.0 ## @hyperlane-xyz/sdk@7.3.0 ### Minor Changes - 2054f4f5b: Require Sealevel native transfers to cover the rent of the recipient - a96448fa6: Add logic into SDK to enable warp route unenrollment - 170a0fc73: Add `createHookUpdateTxs()` to `WarpModule.update()` such that it 1) deploys a hook for a warp route _without_ an existing hook, or 2) update an existing hook. - 9a09afcc7: Deploy to appchain, treasure, zklink. - 24784af95: Introduce GcpValidator for retrieving announcements, checkpoints and metadata for a Validator posting to a GCP bucket. Uses GcpStorageWrapper for bucket operations. - 3e8dd70ac: Update validators for boba, duckchain, unichain, vana, bsquared, superseed. Update oort's own validator. Update blockpi's viction validator. Adad luganodes/dsrv to flame validator set. - aa1ea9a48: updates the warp deployment config schema to be closer to the ica routing schema - f0b98fdef: Updated the derivation logic to enable ICA ISM metdata building from on chain data to enable self relaying of ICA messages - ff9e8a72b: Added a getter to derive ATA payer accounts on Sealevel warp routes - 97c1f80b7: Implement Sealevel IGP quoting - 323f0f158: Add ICAs management in core apply command - 61157097b: Deploy to swell & lumiaprism. Parallelise router enrollment in HyperlaneRouterDeployer. ### Patch Changes - 665a7b8d8: Added decimal consistency checks to the Token checker - @hyperlane-xyz/utils@7.3.0 - @hyperlane-xyz/core@5.8.3 ## @hyperlane-xyz/core@5.8.3 ### Patch Changes - @hyperlane-xyz/utils@7.3.0 ## @hyperlane-xyz/helloworld@7.3.0 ### Patch Changes - Updated dependencies [2054f4f5b] - Updated dependencies [a96448fa6] - Updated dependencies [170a0fc73] - Updated dependencies [9a09afcc7] - Updated dependencies [24784af95] - Updated dependencies [3e8dd70ac] - Updated dependencies [aa1ea9a48] - Updated dependencies [665a7b8d8] - Updated dependencies [f0b98fdef] - Updated dependencies [ff9e8a72b] - Updated dependencies [97c1f80b7] - Updated dependencies [323f0f158] - Updated dependencies [61157097b] - @hyperlane-xyz/sdk@7.3.0 - @hyperlane-xyz/core@5.8.3 ## @hyperlane-xyz/widgets@7.3.0 ### Patch Changes - Updated dependencies [2054f4f5b] - Updated dependencies [a96448fa6] - Updated dependencies [170a0fc73] - Updated dependencies [9a09afcc7] - Updated dependencies [24784af95] - Updated dependencies [3e8dd70ac] - Updated dependencies [aa1ea9a48] - Updated dependencies [665a7b8d8] - Updated dependencies [f0b98fdef] - Updated dependencies [ff9e8a72b] - Updated dependencies [97c1f80b7] - Updated dependencies [323f0f158] - Updated dependencies [61157097b] - @hyperlane-xyz/sdk@7.3.0 - @hyperlane-xyz/utils@7.3.0 ## @hyperlane-xyz/utils@7.3.0 ## @hyperlane-xyz/infra@7.3.0 ### Minor Changes - 1ca857451: add USDC, USDT, cbBTC and ETH zeronetwork warp routes support in infra - 323f0f158: Add ICAs management in core apply command ### Patch Changes - Updated dependencies [2054f4f5b] - Updated dependencies [a96448fa6] - Updated dependencies [170a0fc73] - Updated dependencies [9a09afcc7] - Updated dependencies [24784af95] - Updated dependencies [3e8dd70ac] - Updated dependencies [aa1ea9a48] - Updated dependencies [665a7b8d8] - Updated dependencies [f0b98fdef] - Updated dependencies [ff9e8a72b] - Updated dependencies [97c1f80b7] - Updated dependencies [323f0f158] - Updated dependencies [61157097b] - @hyperlane-xyz/sdk@7.3.0 - @hyperlane-xyz/helloworld@7.3.0 - @hyperlane-xyz/utils@7.3.0 ## @hyperlane-xyz/ccip-server@7.3.0 ## @hyperlane-xyz/github-proxy@7.3.0 --------- Co-authored-by: github-actions[bot] --- .changeset/clever-melons-sell.md | 5 ---- .changeset/fifty-meals-appear.md | 5 ---- .changeset/nice-oranges-glow.md | 5 ---- .changeset/orange-parrots-beg.md | 5 ---- .changeset/polite-beds-begin.md | 5 ---- .changeset/seven-lemons-care.md | 5 ---- .changeset/silver-peas-mate.md | 6 ----- .changeset/sixty-plants-tie.md | 5 ---- .changeset/sour-wasps-own.md | 5 ---- .changeset/ten-pigs-double.md | 5 ---- .changeset/tough-roses-allow.md | 5 ---- .changeset/tricky-clocks-retire.md | 5 ---- .changeset/twenty-bulldogs-flash.md | 7 ------ .changeset/warm-starfishes-carry.md | 5 ---- .changeset/yellow-swans-join.md | 5 ---- solidity/CHANGELOG.md | 6 +++++ solidity/contracts/PackageVersioned.sol | 2 +- solidity/package.json | 4 ++-- typescript/ccip-server/CHANGELOG.md | 2 ++ typescript/ccip-server/package.json | 2 +- typescript/cli/CHANGELOG.md | 26 ++++++++++++++++++++ typescript/cli/package.json | 6 ++--- typescript/cli/src/version.ts | 2 +- typescript/github-proxy/CHANGELOG.md | 2 ++ typescript/github-proxy/package.json | 2 +- typescript/helloworld/CHANGELOG.md | 20 ++++++++++++++++ typescript/helloworld/package.json | 6 ++--- typescript/infra/CHANGELOG.md | 26 ++++++++++++++++++++ typescript/infra/package.json | 8 +++---- typescript/sdk/CHANGELOG.md | 23 ++++++++++++++++++ typescript/sdk/package.json | 6 ++--- typescript/utils/CHANGELOG.md | 2 ++ typescript/utils/package.json | 2 +- typescript/widgets/CHANGELOG.md | 20 ++++++++++++++++ typescript/widgets/package.json | 6 ++--- yarn.lock | 32 ++++++++++++------------- 36 files changed, 166 insertions(+), 117 deletions(-) delete mode 100644 .changeset/clever-melons-sell.md delete mode 100644 .changeset/fifty-meals-appear.md delete mode 100644 .changeset/nice-oranges-glow.md delete mode 100644 .changeset/orange-parrots-beg.md delete mode 100644 .changeset/polite-beds-begin.md delete mode 100644 .changeset/seven-lemons-care.md delete mode 100644 .changeset/silver-peas-mate.md delete mode 100644 .changeset/sixty-plants-tie.md delete mode 100644 .changeset/sour-wasps-own.md delete mode 100644 .changeset/ten-pigs-double.md delete mode 100644 .changeset/tough-roses-allow.md delete mode 100644 .changeset/tricky-clocks-retire.md delete mode 100644 .changeset/twenty-bulldogs-flash.md delete mode 100644 .changeset/warm-starfishes-carry.md delete mode 100644 .changeset/yellow-swans-join.md diff --git a/.changeset/clever-melons-sell.md b/.changeset/clever-melons-sell.md deleted file mode 100644 index f84c5c2ecb..0000000000 --- a/.changeset/clever-melons-sell.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Require Sealevel native transfers to cover the rent of the recipient diff --git a/.changeset/fifty-meals-appear.md b/.changeset/fifty-meals-appear.md deleted file mode 100644 index 7e754f3ec9..0000000000 --- a/.changeset/fifty-meals-appear.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Add logic into SDK to enable warp route unenrollment diff --git a/.changeset/nice-oranges-glow.md b/.changeset/nice-oranges-glow.md deleted file mode 100644 index 2b844bcf99..0000000000 --- a/.changeset/nice-oranges-glow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Add `createHookUpdateTxs()` to `WarpModule.update()` such that it 1) deploys a hook for a warp route _without_ an existing hook, or 2) update an existing hook. diff --git a/.changeset/orange-parrots-beg.md b/.changeset/orange-parrots-beg.md deleted file mode 100644 index 1b2e6424af..0000000000 --- a/.changeset/orange-parrots-beg.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Deploy to appchain, treasure, zklink. diff --git a/.changeset/polite-beds-begin.md b/.changeset/polite-beds-begin.md deleted file mode 100644 index b710426be0..0000000000 --- a/.changeset/polite-beds-begin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Introduce GcpValidator for retrieving announcements, checkpoints and metadata for a Validator posting to a GCP bucket. Uses GcpStorageWrapper for bucket operations. diff --git a/.changeset/seven-lemons-care.md b/.changeset/seven-lemons-care.md deleted file mode 100644 index 423c7f511e..0000000000 --- a/.changeset/seven-lemons-care.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Update validators for boba, duckchain, unichain, vana, bsquared, superseed. Update oort's own validator. Update blockpi's viction validator. Adad luganodes/dsrv to flame validator set. diff --git a/.changeset/silver-peas-mate.md b/.changeset/silver-peas-mate.md deleted file mode 100644 index 54a188eeda..0000000000 --- a/.changeset/silver-peas-mate.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@hyperlane-xyz/cli': minor -'@hyperlane-xyz/sdk': minor ---- - -updates the warp deployment config schema to be closer to the ica routing schema diff --git a/.changeset/sixty-plants-tie.md b/.changeset/sixty-plants-tie.md deleted file mode 100644 index 117b32c160..0000000000 --- a/.changeset/sixty-plants-tie.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': patch ---- - -Added decimal consistency checks to the Token checker diff --git a/.changeset/sour-wasps-own.md b/.changeset/sour-wasps-own.md deleted file mode 100644 index 648d956e27..0000000000 --- a/.changeset/sour-wasps-own.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Updated the derivation logic to enable ICA ISM metdata building from on chain data to enable self relaying of ICA messages diff --git a/.changeset/ten-pigs-double.md b/.changeset/ten-pigs-double.md deleted file mode 100644 index 842ae825b9..0000000000 --- a/.changeset/ten-pigs-double.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/infra': minor ---- - -add USDC, USDT, cbBTC and ETH zeronetwork warp routes support in infra diff --git a/.changeset/tough-roses-allow.md b/.changeset/tough-roses-allow.md deleted file mode 100644 index 5a0d535345..0000000000 --- a/.changeset/tough-roses-allow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Added a getter to derive ATA payer accounts on Sealevel warp routes diff --git a/.changeset/tricky-clocks-retire.md b/.changeset/tricky-clocks-retire.md deleted file mode 100644 index 1ab12df18f..0000000000 --- a/.changeset/tricky-clocks-retire.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Implement Sealevel IGP quoting diff --git a/.changeset/twenty-bulldogs-flash.md b/.changeset/twenty-bulldogs-flash.md deleted file mode 100644 index 59a6510f85..0000000000 --- a/.changeset/twenty-bulldogs-flash.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@hyperlane-xyz/infra': minor -'@hyperlane-xyz/cli': minor -'@hyperlane-xyz/sdk': minor ---- - -Add ICAs management in core apply command diff --git a/.changeset/warm-starfishes-carry.md b/.changeset/warm-starfishes-carry.md deleted file mode 100644 index 5dfc281e5b..0000000000 --- a/.changeset/warm-starfishes-carry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/sdk': minor ---- - -Deploy to swell & lumiaprism. Parallelise router enrollment in HyperlaneRouterDeployer. diff --git a/.changeset/yellow-swans-join.md b/.changeset/yellow-swans-join.md deleted file mode 100644 index 9f0f3e4e07..0000000000 --- a/.changeset/yellow-swans-join.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperlane-xyz/cli': patch ---- - -Fix a bug where it would try to relay the incorrect message from a transaction that dispatches multiple messages. diff --git a/solidity/CHANGELOG.md b/solidity/CHANGELOG.md index c896646514..a0babee028 100644 --- a/solidity/CHANGELOG.md +++ b/solidity/CHANGELOG.md @@ -1,5 +1,11 @@ # @hyperlane-xyz/core +## 5.8.3 + +### Patch Changes + +- @hyperlane-xyz/utils@7.3.0 + ## 5.8.2 ### Patch Changes diff --git a/solidity/contracts/PackageVersioned.sol b/solidity/contracts/PackageVersioned.sol index 19ee043e4e..ced404fe92 100644 --- a/solidity/contracts/PackageVersioned.sol +++ b/solidity/contracts/PackageVersioned.sol @@ -7,5 +7,5 @@ pragma solidity >=0.6.11; **/ abstract contract PackageVersioned { // GENERATED CODE - DO NOT EDIT - string public constant PACKAGE_VERSION = "5.8.2"; + string public constant PACKAGE_VERSION = "5.8.3"; } diff --git a/solidity/package.json b/solidity/package.json index b7da3c521e..b80646bd24 100644 --- a/solidity/package.json +++ b/solidity/package.json @@ -1,11 +1,11 @@ { "name": "@hyperlane-xyz/core", "description": "Core solidity contracts for Hyperlane", - "version": "5.8.2", + "version": "5.8.3", "dependencies": { "@arbitrum/nitro-contracts": "^1.2.1", "@eth-optimism/contracts": "^0.6.0", - "@hyperlane-xyz/utils": "7.2.0", + "@hyperlane-xyz/utils": "7.3.0", "@layerzerolabs/lz-evm-oapp-v2": "2.0.2", "@openzeppelin/contracts": "^4.9.3", "@openzeppelin/contracts-upgradeable": "^4.9.3", diff --git a/typescript/ccip-server/CHANGELOG.md b/typescript/ccip-server/CHANGELOG.md index 19fb8981b6..a259236246 100644 --- a/typescript/ccip-server/CHANGELOG.md +++ b/typescript/ccip-server/CHANGELOG.md @@ -1,5 +1,7 @@ # @hyperlane-xyz/ccip-server +## 7.3.0 + ## 7.2.0 ## 7.1.0 diff --git a/typescript/ccip-server/package.json b/typescript/ccip-server/package.json index abf2fd2522..0795edf956 100644 --- a/typescript/ccip-server/package.json +++ b/typescript/ccip-server/package.json @@ -1,6 +1,6 @@ { "name": "@hyperlane-xyz/ccip-server", - "version": "7.2.0", + "version": "7.3.0", "description": "CCIP server", "typings": "dist/index.d.ts", "typedocMain": "src/index.ts", diff --git a/typescript/cli/CHANGELOG.md b/typescript/cli/CHANGELOG.md index e56e03eb2b..a7d9962b84 100644 --- a/typescript/cli/CHANGELOG.md +++ b/typescript/cli/CHANGELOG.md @@ -1,5 +1,31 @@ # @hyperlane-xyz/cli +## 7.3.0 + +### Minor Changes + +- aa1ea9a48: updates the warp deployment config schema to be closer to the ica routing schema +- 323f0f158: Add ICAs management in core apply command + +### Patch Changes + +- 455a897fb: Fix a bug where it would try to relay the incorrect message from a transaction that dispatches multiple messages. +- Updated dependencies [2054f4f5b] +- Updated dependencies [a96448fa6] +- Updated dependencies [170a0fc73] +- Updated dependencies [9a09afcc7] +- Updated dependencies [24784af95] +- Updated dependencies [3e8dd70ac] +- Updated dependencies [aa1ea9a48] +- Updated dependencies [665a7b8d8] +- Updated dependencies [f0b98fdef] +- Updated dependencies [ff9e8a72b] +- Updated dependencies [97c1f80b7] +- Updated dependencies [323f0f158] +- Updated dependencies [61157097b] + - @hyperlane-xyz/sdk@7.3.0 + - @hyperlane-xyz/utils@7.3.0 + ## 7.2.0 ### Minor Changes diff --git a/typescript/cli/package.json b/typescript/cli/package.json index 669f5796f2..ed849904dd 100644 --- a/typescript/cli/package.json +++ b/typescript/cli/package.json @@ -1,13 +1,13 @@ { "name": "@hyperlane-xyz/cli", - "version": "7.2.0", + "version": "7.3.0", "description": "A command-line utility for common Hyperlane operations", "dependencies": { "@aws-sdk/client-kms": "^3.577.0", "@aws-sdk/client-s3": "^3.577.0", "@hyperlane-xyz/registry": "6.1.0", - "@hyperlane-xyz/sdk": "7.2.0", - "@hyperlane-xyz/utils": "7.2.0", + "@hyperlane-xyz/sdk": "7.3.0", + "@hyperlane-xyz/utils": "7.3.0", "@inquirer/core": "9.0.10", "@inquirer/figures": "1.0.5", "@inquirer/prompts": "3.3.2", diff --git a/typescript/cli/src/version.ts b/typescript/cli/src/version.ts index 4d429cc34d..af959132f7 100644 --- a/typescript/cli/src/version.ts +++ b/typescript/cli/src/version.ts @@ -1 +1 @@ -export const VERSION = '7.2.0'; +export const VERSION = '7.3.0'; diff --git a/typescript/github-proxy/CHANGELOG.md b/typescript/github-proxy/CHANGELOG.md index 4bf7cd4056..a5237280ae 100644 --- a/typescript/github-proxy/CHANGELOG.md +++ b/typescript/github-proxy/CHANGELOG.md @@ -1,5 +1,7 @@ # @hyperlane-xyz/github-proxy +## 7.3.0 + ## 7.2.0 ## 7.1.0 diff --git a/typescript/github-proxy/package.json b/typescript/github-proxy/package.json index f25270af33..848f3dcafc 100644 --- a/typescript/github-proxy/package.json +++ b/typescript/github-proxy/package.json @@ -1,7 +1,7 @@ { "name": "@hyperlane-xyz/github-proxy", "description": "Github proxy that adds the API key to requests", - "version": "7.2.0", + "version": "7.3.0", "private": true, "scripts": { "deploy": "wrangler deploy", diff --git a/typescript/helloworld/CHANGELOG.md b/typescript/helloworld/CHANGELOG.md index 4ff380704f..89cedf4d32 100644 --- a/typescript/helloworld/CHANGELOG.md +++ b/typescript/helloworld/CHANGELOG.md @@ -1,5 +1,25 @@ # @hyperlane-xyz/helloworld +## 7.3.0 + +### Patch Changes + +- Updated dependencies [2054f4f5b] +- Updated dependencies [a96448fa6] +- Updated dependencies [170a0fc73] +- Updated dependencies [9a09afcc7] +- Updated dependencies [24784af95] +- Updated dependencies [3e8dd70ac] +- Updated dependencies [aa1ea9a48] +- Updated dependencies [665a7b8d8] +- Updated dependencies [f0b98fdef] +- Updated dependencies [ff9e8a72b] +- Updated dependencies [97c1f80b7] +- Updated dependencies [323f0f158] +- Updated dependencies [61157097b] + - @hyperlane-xyz/sdk@7.3.0 + - @hyperlane-xyz/core@5.8.3 + ## 7.2.0 ### Patch Changes diff --git a/typescript/helloworld/package.json b/typescript/helloworld/package.json index 027782383a..a63e984271 100644 --- a/typescript/helloworld/package.json +++ b/typescript/helloworld/package.json @@ -1,11 +1,11 @@ { "name": "@hyperlane-xyz/helloworld", "description": "A basic skeleton of an Hyperlane app", - "version": "7.2.0", + "version": "7.3.0", "dependencies": { - "@hyperlane-xyz/core": "5.8.2", + "@hyperlane-xyz/core": "5.8.3", "@hyperlane-xyz/registry": "6.1.0", - "@hyperlane-xyz/sdk": "7.2.0", + "@hyperlane-xyz/sdk": "7.3.0", "@openzeppelin/contracts-upgradeable": "^4.9.3", "ethers": "^5.7.2" }, diff --git a/typescript/infra/CHANGELOG.md b/typescript/infra/CHANGELOG.md index 67f5a826cc..1e8ec17676 100644 --- a/typescript/infra/CHANGELOG.md +++ b/typescript/infra/CHANGELOG.md @@ -1,5 +1,31 @@ # @hyperlane-xyz/infra +## 7.3.0 + +### Minor Changes + +- 1ca857451: add USDC, USDT, cbBTC and ETH zeronetwork warp routes support in infra +- 323f0f158: Add ICAs management in core apply command + +### Patch Changes + +- Updated dependencies [2054f4f5b] +- Updated dependencies [a96448fa6] +- Updated dependencies [170a0fc73] +- Updated dependencies [9a09afcc7] +- Updated dependencies [24784af95] +- Updated dependencies [3e8dd70ac] +- Updated dependencies [aa1ea9a48] +- Updated dependencies [665a7b8d8] +- Updated dependencies [f0b98fdef] +- Updated dependencies [ff9e8a72b] +- Updated dependencies [97c1f80b7] +- Updated dependencies [323f0f158] +- Updated dependencies [61157097b] + - @hyperlane-xyz/sdk@7.3.0 + - @hyperlane-xyz/helloworld@7.3.0 + - @hyperlane-xyz/utils@7.3.0 + ## 7.2.0 ### Patch Changes diff --git a/typescript/infra/package.json b/typescript/infra/package.json index cecef43323..4cf0adf3c5 100644 --- a/typescript/infra/package.json +++ b/typescript/infra/package.json @@ -1,7 +1,7 @@ { "name": "@hyperlane-xyz/infra", "description": "Infrastructure utilities for the Hyperlane Network", - "version": "7.2.0", + "version": "7.3.0", "dependencies": { "@arbitrum/sdk": "^4.0.0", "@aws-sdk/client-iam": "^3.74.0", @@ -13,10 +13,10 @@ "@ethersproject/hardware-wallets": "^5.7.0", "@ethersproject/providers": "*", "@google-cloud/secret-manager": "^5.5.0", - "@hyperlane-xyz/helloworld": "7.2.0", + "@hyperlane-xyz/helloworld": "7.3.0", "@hyperlane-xyz/registry": "6.1.0", - "@hyperlane-xyz/sdk": "7.2.0", - "@hyperlane-xyz/utils": "7.2.0", + "@hyperlane-xyz/sdk": "7.3.0", + "@hyperlane-xyz/utils": "7.3.0", "@inquirer/prompts": "3.3.2", "@nomiclabs/hardhat-etherscan": "^3.0.3", "@safe-global/api-kit": "1.3.0", diff --git a/typescript/sdk/CHANGELOG.md b/typescript/sdk/CHANGELOG.md index 32548ed297..c30550797a 100644 --- a/typescript/sdk/CHANGELOG.md +++ b/typescript/sdk/CHANGELOG.md @@ -1,5 +1,28 @@ # @hyperlane-xyz/sdk +## 7.3.0 + +### Minor Changes + +- 2054f4f5b: Require Sealevel native transfers to cover the rent of the recipient +- a96448fa6: Add logic into SDK to enable warp route unenrollment +- 170a0fc73: Add `createHookUpdateTxs()` to `WarpModule.update()` such that it 1) deploys a hook for a warp route _without_ an existing hook, or 2) update an existing hook. +- 9a09afcc7: Deploy to appchain, treasure, zklink. +- 24784af95: Introduce GcpValidator for retrieving announcements, checkpoints and metadata for a Validator posting to a GCP bucket. Uses GcpStorageWrapper for bucket operations. +- 3e8dd70ac: Update validators for boba, duckchain, unichain, vana, bsquared, superseed. Update oort's own validator. Update blockpi's viction validator. Adad luganodes/dsrv to flame validator set. +- aa1ea9a48: updates the warp deployment config schema to be closer to the ica routing schema +- f0b98fdef: Updated the derivation logic to enable ICA ISM metdata building from on chain data to enable self relaying of ICA messages +- ff9e8a72b: Added a getter to derive ATA payer accounts on Sealevel warp routes +- 97c1f80b7: Implement Sealevel IGP quoting +- 323f0f158: Add ICAs management in core apply command +- 61157097b: Deploy to swell & lumiaprism. Parallelise router enrollment in HyperlaneRouterDeployer. + +### Patch Changes + +- 665a7b8d8: Added decimal consistency checks to the Token checker + - @hyperlane-xyz/utils@7.3.0 + - @hyperlane-xyz/core@5.8.3 + ## 7.2.0 ### Minor Changes diff --git a/typescript/sdk/package.json b/typescript/sdk/package.json index 98c9679bd3..47bb713b13 100644 --- a/typescript/sdk/package.json +++ b/typescript/sdk/package.json @@ -1,7 +1,7 @@ { "name": "@hyperlane-xyz/sdk", "description": "The official SDK for the Hyperlane Network", - "version": "7.2.0", + "version": "7.3.0", "dependencies": { "@arbitrum/sdk": "^4.0.0", "@aws-sdk/client-s3": "^3.577.0", @@ -9,8 +9,8 @@ "@cosmjs/cosmwasm-stargate": "^0.32.4", "@cosmjs/stargate": "^0.32.4", "@google-cloud/storage": "7.14.0", - "@hyperlane-xyz/core": "5.8.2", - "@hyperlane-xyz/utils": "7.2.0", + "@hyperlane-xyz/core": "5.8.3", + "@hyperlane-xyz/utils": "7.3.0", "@safe-global/api-kit": "1.3.0", "@safe-global/protocol-kit": "1.3.0", "@safe-global/safe-deployments": "1.37.8", diff --git a/typescript/utils/CHANGELOG.md b/typescript/utils/CHANGELOG.md index 62f8c89399..3cf2756603 100644 --- a/typescript/utils/CHANGELOG.md +++ b/typescript/utils/CHANGELOG.md @@ -1,5 +1,7 @@ # @hyperlane-xyz/utils +## 7.3.0 + ## 7.2.0 ### Minor Changes diff --git a/typescript/utils/package.json b/typescript/utils/package.json index 327ec241aa..8b24cb7106 100644 --- a/typescript/utils/package.json +++ b/typescript/utils/package.json @@ -1,7 +1,7 @@ { "name": "@hyperlane-xyz/utils", "description": "General utilities and types for the Hyperlane network", - "version": "7.2.0", + "version": "7.3.0", "dependencies": { "@cosmjs/encoding": "^0.32.4", "@solana/web3.js": "^1.95.4", diff --git a/typescript/widgets/CHANGELOG.md b/typescript/widgets/CHANGELOG.md index ba6dd93bd1..be73ca35c6 100644 --- a/typescript/widgets/CHANGELOG.md +++ b/typescript/widgets/CHANGELOG.md @@ -1,5 +1,25 @@ # @hyperlane-xyz/widgets +## 7.3.0 + +### Patch Changes + +- Updated dependencies [2054f4f5b] +- Updated dependencies [a96448fa6] +- Updated dependencies [170a0fc73] +- Updated dependencies [9a09afcc7] +- Updated dependencies [24784af95] +- Updated dependencies [3e8dd70ac] +- Updated dependencies [aa1ea9a48] +- Updated dependencies [665a7b8d8] +- Updated dependencies [f0b98fdef] +- Updated dependencies [ff9e8a72b] +- Updated dependencies [97c1f80b7] +- Updated dependencies [323f0f158] +- Updated dependencies [61157097b] + - @hyperlane-xyz/sdk@7.3.0 + - @hyperlane-xyz/utils@7.3.0 + ## 7.2.0 ### Patch Changes diff --git a/typescript/widgets/package.json b/typescript/widgets/package.json index 90e1e6778a..607cb5648a 100644 --- a/typescript/widgets/package.json +++ b/typescript/widgets/package.json @@ -1,7 +1,7 @@ { "name": "@hyperlane-xyz/widgets", "description": "Common react components for Hyperlane projects", - "version": "7.2.0", + "version": "7.3.0", "peerDependencies": { "react": "^18", "react-dom": "^18" @@ -9,8 +9,8 @@ "dependencies": { "@cosmos-kit/react": "^2.18.0", "@headlessui/react": "^2.1.8", - "@hyperlane-xyz/sdk": "7.2.0", - "@hyperlane-xyz/utils": "7.2.0", + "@hyperlane-xyz/sdk": "7.3.0", + "@hyperlane-xyz/utils": "7.3.0", "@interchain-ui/react": "^1.23.28", "@rainbow-me/rainbowkit": "^2.2.0", "@solana/wallet-adapter-react": "^0.15.32", diff --git a/yarn.lock b/yarn.lock index fa67f8b2c0..9256427c46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7368,8 +7368,8 @@ __metadata: "@ethersproject/abi": "npm:*" "@ethersproject/providers": "npm:*" "@hyperlane-xyz/registry": "npm:6.1.0" - "@hyperlane-xyz/sdk": "npm:7.2.0" - "@hyperlane-xyz/utils": "npm:7.2.0" + "@hyperlane-xyz/sdk": "npm:7.3.0" + "@hyperlane-xyz/utils": "npm:7.3.0" "@inquirer/core": "npm:9.0.10" "@inquirer/figures": "npm:1.0.5" "@inquirer/prompts": "npm:3.3.2" @@ -7406,13 +7406,13 @@ __metadata: languageName: unknown linkType: soft -"@hyperlane-xyz/core@npm:5.8.2, @hyperlane-xyz/core@workspace:solidity": +"@hyperlane-xyz/core@npm:5.8.3, @hyperlane-xyz/core@workspace:solidity": version: 0.0.0-use.local resolution: "@hyperlane-xyz/core@workspace:solidity" dependencies: "@arbitrum/nitro-contracts": "npm:^1.2.1" "@eth-optimism/contracts": "npm:^0.6.0" - "@hyperlane-xyz/utils": "npm:7.2.0" + "@hyperlane-xyz/utils": "npm:7.3.0" "@layerzerolabs/lz-evm-oapp-v2": "npm:2.0.2" "@layerzerolabs/solidity-examples": "npm:^1.1.0" "@nomiclabs/hardhat-ethers": "npm:^2.2.3" @@ -7463,14 +7463,14 @@ __metadata: languageName: unknown linkType: soft -"@hyperlane-xyz/helloworld@npm:7.2.0, @hyperlane-xyz/helloworld@workspace:typescript/helloworld": +"@hyperlane-xyz/helloworld@npm:7.3.0, @hyperlane-xyz/helloworld@workspace:typescript/helloworld": version: 0.0.0-use.local resolution: "@hyperlane-xyz/helloworld@workspace:typescript/helloworld" dependencies: "@eslint/js": "npm:^9.15.0" - "@hyperlane-xyz/core": "npm:5.8.2" + "@hyperlane-xyz/core": "npm:5.8.3" "@hyperlane-xyz/registry": "npm:6.1.0" - "@hyperlane-xyz/sdk": "npm:7.2.0" + "@hyperlane-xyz/sdk": "npm:7.3.0" "@nomiclabs/hardhat-ethers": "npm:^2.2.3" "@nomiclabs/hardhat-waffle": "npm:^2.0.6" "@openzeppelin/contracts-upgradeable": "npm:^4.9.3" @@ -7519,10 +7519,10 @@ __metadata: "@ethersproject/hardware-wallets": "npm:^5.7.0" "@ethersproject/providers": "npm:*" "@google-cloud/secret-manager": "npm:^5.5.0" - "@hyperlane-xyz/helloworld": "npm:7.2.0" + "@hyperlane-xyz/helloworld": "npm:7.3.0" "@hyperlane-xyz/registry": "npm:6.1.0" - "@hyperlane-xyz/sdk": "npm:7.2.0" - "@hyperlane-xyz/utils": "npm:7.2.0" + "@hyperlane-xyz/sdk": "npm:7.3.0" + "@hyperlane-xyz/utils": "npm:7.3.0" "@inquirer/prompts": "npm:3.3.2" "@nomiclabs/hardhat-ethers": "npm:^2.2.3" "@nomiclabs/hardhat-etherscan": "npm:^3.0.3" @@ -7592,7 +7592,7 @@ __metadata: languageName: node linkType: hard -"@hyperlane-xyz/sdk@npm:7.2.0, @hyperlane-xyz/sdk@workspace:typescript/sdk": +"@hyperlane-xyz/sdk@npm:7.3.0, @hyperlane-xyz/sdk@workspace:typescript/sdk": version: 0.0.0-use.local resolution: "@hyperlane-xyz/sdk@workspace:typescript/sdk" dependencies: @@ -7603,8 +7603,8 @@ __metadata: "@cosmjs/stargate": "npm:^0.32.4" "@eslint/js": "npm:^9.15.0" "@google-cloud/storage": "npm:7.14.0" - "@hyperlane-xyz/core": "npm:5.8.2" - "@hyperlane-xyz/utils": "npm:7.2.0" + "@hyperlane-xyz/core": "npm:5.8.3" + "@hyperlane-xyz/utils": "npm:7.3.0" "@nomiclabs/hardhat-ethers": "npm:^2.2.3" "@nomiclabs/hardhat-waffle": "npm:^2.0.6" "@safe-global/api-kit": "npm:1.3.0" @@ -7647,7 +7647,7 @@ __metadata: languageName: unknown linkType: soft -"@hyperlane-xyz/utils@npm:7.2.0, @hyperlane-xyz/utils@workspace:typescript/utils": +"@hyperlane-xyz/utils@npm:7.3.0, @hyperlane-xyz/utils@workspace:typescript/utils": version: 0.0.0-use.local resolution: "@hyperlane-xyz/utils@workspace:typescript/utils" dependencies: @@ -7689,8 +7689,8 @@ __metadata: "@eslint/js": "npm:^9.15.0" "@headlessui/react": "npm:^2.1.8" "@hyperlane-xyz/registry": "npm:6.1.0" - "@hyperlane-xyz/sdk": "npm:7.2.0" - "@hyperlane-xyz/utils": "npm:7.2.0" + "@hyperlane-xyz/sdk": "npm:7.3.0" + "@hyperlane-xyz/utils": "npm:7.3.0" "@interchain-ui/react": "npm:^1.23.28" "@rainbow-me/rainbowkit": "npm:^2.2.0" "@solana/wallet-adapter-react": "npm:^0.15.32"