From ee4a742f1386d73caee02fbe594d03e2d9bfcf0f Mon Sep 17 00:00:00 2001 From: Runchao Han Date: Tue, 18 Feb 2025 14:48:13 +1100 Subject: [PATCH] init --- Cargo.lock | 12 ++++++++++++ Cargo.toml | 1 + contracts/babylon/Cargo.toml | 1 + contracts/babylon/src/utils/cosmos_store.rs | 4 ++-- contracts/babylon/src/utils/mod.rs | 1 - packages/ics23_commitment/Cargo.toml | 15 +++++++++++++++ .../utils => packages}/ics23_commitment/README.md | 0 .../ics23_commitment/src}/error.rs | 0 .../ics23_commitment/src/lib.rs | 0 .../ics23_commitment/src}/merkle.rs | 4 ++-- .../ics23_commitment/src}/specs.rs | 0 packages/proto/babylon | 2 +- 12 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 packages/ics23_commitment/Cargo.toml rename {contracts/babylon/src/utils => packages}/ics23_commitment/README.md (100%) rename {contracts/babylon/src/utils/ics23_commitment => packages/ics23_commitment/src}/error.rs (100%) rename contracts/babylon/src/utils/ics23_commitment/mod.rs => packages/ics23_commitment/src/lib.rs (100%) rename {contracts/babylon/src/utils/ics23_commitment => packages/ics23_commitment/src}/merkle.rs (95%) rename {contracts/babylon/src/utils/ics23_commitment => packages/ics23_commitment/src}/specs.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 1ae96079..a9908985 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -315,6 +315,7 @@ dependencies = [ "derivative", "hex", "ics23", + "ics23-commitment", "pbjson-types", "prost 0.11.9", "sha2", @@ -1806,6 +1807,17 @@ dependencies = [ "sha3", ] +[[package]] +name = "ics23-commitment" +version = "0.13.0" +dependencies = [ + "anyhow", + "ics23", + "prost 0.11.9", + "tendermint-proto", + "thiserror", +] + [[package]] name = "ident_case" version = "1.0.1" diff --git a/Cargo.toml b/Cargo.toml index c40a58bb..9852c391 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,6 +28,7 @@ babylon-bitcoin = { path = "./packages/bitcoin" } babylon-btcstaking = { path = "./packages/btcstaking" } babylon-contract = { path = "./contracts/babylon" } eots = { path = "./packages/eots" } +ics23-commitment = { path = "./packages/ics23_commitment" } anyhow = "1.0.82" bech32 = "0.9.1" bitcoin = "0.31.1" diff --git a/contracts/babylon/Cargo.toml b/contracts/babylon/Cargo.toml index b829268f..58ac15c6 100644 --- a/contracts/babylon/Cargo.toml +++ b/contracts/babylon/Cargo.toml @@ -36,6 +36,7 @@ babylon-apis = { path = "../../packages/apis" } babylon-bindings = { path = "../../packages/bindings" } babylon-proto = { path = "../../packages/proto" } babylon-bitcoin = { path = "../../packages/bitcoin" } +ics23-commitment = { path = "../../packages/ics23_commitment" } blst = { workspace = true } cosmwasm-schema = { workspace = true } cosmwasm-std = { workspace = true } diff --git a/contracts/babylon/src/utils/cosmos_store.rs b/contracts/babylon/src/utils/cosmos_store.rs index 1f4ce09b..284767a1 100644 --- a/contracts/babylon/src/utils/cosmos_store.rs +++ b/contracts/babylon/src/utils/cosmos_store.rs @@ -1,4 +1,4 @@ -use crate::utils::ics23_commitment::merkle::convert_tm_proto_to_ics_merkle_proof; +use ics23_commitment::merkle::convert_tm_proto_to_ics_merkle_proof; // the below keys are hard-coded for now. They have to be consistent with the Babylon repo. // TODO: integration tests for ensuring they are the same, or parametrise them upon instantiation @@ -43,7 +43,7 @@ pub fn verify_store( .map_err(|err|format!("failed to convert tendermint_proto::crypto::ProofOps to ibc::core::ics23_commitment::merkle::MerkleProof: {err:?}"))?; // construct values for verifying Merkle proofs - let specs = crate::utils::ics23_commitment::specs::ProofSpecs::default(); + let specs = ics23_commitment::specs::ProofSpecs::default(); let merkle_root = root.to_vec(); let merkle_keys = vec![module_key.to_vec(), key.to_vec()]; diff --git a/contracts/babylon/src/utils/mod.rs b/contracts/babylon/src/utils/mod.rs index 7a2c58f5..af5429f6 100644 --- a/contracts/babylon/src/utils/mod.rs +++ b/contracts/babylon/src/utils/mod.rs @@ -1,7 +1,6 @@ mod bitcoin; mod bls; mod cosmos_store; -mod ics23_commitment; pub mod babylon_epoch_chain; pub mod btc_light_client; diff --git a/packages/ics23_commitment/Cargo.toml b/packages/ics23_commitment/Cargo.toml new file mode 100644 index 00000000..6c81443e --- /dev/null +++ b/packages/ics23_commitment/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "ics23-commitment" +version.workspace = true +edition.workspace = true +license.workspace = true +repository.workspace = true +authors.workspace = true +publish.workspace = true + +[dependencies] +anyhow = { workspace = true } +ics23 = { workspace = true } +prost = { workspace = true } +thiserror = { workspace = true } +tendermint-proto = { workspace = true } diff --git a/contracts/babylon/src/utils/ics23_commitment/README.md b/packages/ics23_commitment/README.md similarity index 100% rename from contracts/babylon/src/utils/ics23_commitment/README.md rename to packages/ics23_commitment/README.md diff --git a/contracts/babylon/src/utils/ics23_commitment/error.rs b/packages/ics23_commitment/src/error.rs similarity index 100% rename from contracts/babylon/src/utils/ics23_commitment/error.rs rename to packages/ics23_commitment/src/error.rs diff --git a/contracts/babylon/src/utils/ics23_commitment/mod.rs b/packages/ics23_commitment/src/lib.rs similarity index 100% rename from contracts/babylon/src/utils/ics23_commitment/mod.rs rename to packages/ics23_commitment/src/lib.rs diff --git a/contracts/babylon/src/utils/ics23_commitment/merkle.rs b/packages/ics23_commitment/src/merkle.rs similarity index 95% rename from contracts/babylon/src/utils/ics23_commitment/merkle.rs rename to packages/ics23_commitment/src/merkle.rs index 60fa21c5..20d6038d 100644 --- a/contracts/babylon/src/utils/ics23_commitment/merkle.rs +++ b/packages/ics23_commitment/src/merkle.rs @@ -1,5 +1,5 @@ -use crate::utils::ics23_commitment::error::CommitmentError; -use crate::utils::ics23_commitment::specs::ProofSpecs; +use crate::error::CommitmentError; +use crate::specs::ProofSpecs; use ics23::commitment_proof::Proof; use ics23::{calculate_existence_root, verify_membership, CommitmentProof}; diff --git a/contracts/babylon/src/utils/ics23_commitment/specs.rs b/packages/ics23_commitment/src/specs.rs similarity index 100% rename from contracts/babylon/src/utils/ics23_commitment/specs.rs rename to packages/ics23_commitment/src/specs.rs diff --git a/packages/proto/babylon b/packages/proto/babylon index 847bf148..82a820c7 160000 --- a/packages/proto/babylon +++ b/packages/proto/babylon @@ -1 +1 @@ -Subproject commit 847bf148ca71374badf81676b258b812ec72337b +Subproject commit 82a820c70b5a522d732c4b2338a94bcdd656174e