From 8d142a874a9778e23e414dbed9ec3df5665521b6 Mon Sep 17 00:00:00 2001
From: hu55a1n1 <sufialhussaini@gmail.com>
Date: Sat, 30 Dec 2023 13:42:30 -0800
Subject: [PATCH] Improved error handling

---
 utils/cw-proof/Cargo.toml            |   4 +-
 utils/cw-proof/src/error.rs          |  15 +
 utils/cw-proof/src/lib.rs            |   1 +
 utils/cw-proof/src/proof/cw.rs       |   6 +-
 utils/cw-proof/src/proof/mod.rs      |   5 +-
 utils/cw-proof/src/verifier/cw.rs    |   6 +-
 utils/cw-proof/src/verifier/ics23.rs |  10 +-
 utils/cw-prover/Cargo.lock           | 469 +--------------------------
 8 files changed, 50 insertions(+), 466 deletions(-)
 create mode 100644 utils/cw-proof/src/error.rs

diff --git a/utils/cw-proof/Cargo.toml b/utils/cw-proof/Cargo.toml
index 912a54a..5b2f050 100644
--- a/utils/cw-proof/Cargo.toml
+++ b/utils/cw-proof/Cargo.toml
@@ -6,8 +6,8 @@ edition = "2021"
 [dependencies]
 clap = { version = "4.1.8", features = ["derive"] }
 cosmrs = { version = "0.15.0", default-features = false }
-ibc-relayer-types = { version = "=0.26.4", default-features = false }
-ics23 = { version = "0.11.0", default-features = false }
+displaydoc = { version = "0.2.4", default-features = false }
+ics23 = { version = "0.11.0", default-features = false, features = ["host-functions"] }
 prost = { version = "0.12.3", default-features = false }
 tendermint = { version = "0.34.0", default-features = false }
 tendermint-rpc = { version = "0.34.0", default-features = false, features = ["http-client"] }
diff --git a/utils/cw-proof/src/error.rs b/utils/cw-proof/src/error.rs
new file mode 100644
index 0000000..63328a0
--- /dev/null
+++ b/utils/cw-proof/src/error.rs
@@ -0,0 +1,15 @@
+use displaydoc::Display;
+
+#[derive(Clone, Debug, Display)]
+pub enum ProofError {
+    /// failed to decode commitment proof
+    CommitmentProofDecodingFailed,
+    /// empty merkle root
+    EmptyMerkleRoot,
+    /// empty verified value
+    EmptyVerifiedValue,
+    /// invalid merkle proof
+    InvalidMerkleProof,
+    /// proof verification failed
+    VerificationFailure, 
+}
diff --git a/utils/cw-proof/src/lib.rs b/utils/cw-proof/src/lib.rs
index d824c93..47fd3b5 100644
--- a/utils/cw-proof/src/lib.rs
+++ b/utils/cw-proof/src/lib.rs
@@ -17,3 +17,4 @@ extern crate alloc;
 
 pub mod proof;
 pub mod verifier;
+pub mod error;
diff --git a/utils/cw-proof/src/proof/cw.rs b/utils/cw-proof/src/proof/cw.rs
index b31798e..f464875 100644
--- a/utils/cw-proof/src/proof/cw.rs
+++ b/utils/cw-proof/src/proof/cw.rs
@@ -1,11 +1,12 @@
 use alloc::{boxed::Box, vec::Vec};
 use core::fmt::Debug;
 
-use ibc_relayer_types::core::ics23_commitment::error::Error as ProofError;
+use displaydoc::Display;
 use tendermint::merkle::proof::ProofOps;
 use tendermint_rpc::endpoint::abci_query::AbciQuery;
 
 use crate::{
+    error::ProofError,
     proof::{
         convert_tm_to_ics_merkle_proof,
         key::{IntoKeys, PrefixedKey},
@@ -24,7 +25,8 @@ pub struct CwProof<K, V> {
     value: V,
 }
 
-#[derive(Clone, Debug)]
+/// ABCI query response doesn't contain proof
+#[derive(Clone, Debug, Display)]
 pub struct ErrorWithoutProof;
 
 impl TryFrom<AbciQuery> for RawCwProof {
diff --git a/utils/cw-proof/src/proof/mod.rs b/utils/cw-proof/src/proof/mod.rs
index db472f6..e9ac244 100644
--- a/utils/cw-proof/src/proof/mod.rs
+++ b/utils/cw-proof/src/proof/mod.rs
@@ -1,9 +1,10 @@
 use alloc::vec::Vec;
 
-use ibc_relayer_types::core::ics23_commitment::error::Error as ProofError;
 use ics23::CommitmentProof;
 use tendermint::merkle::proof::ProofOps;
 
+use crate::error::ProofError;
+
 pub mod cw;
 pub mod key;
 pub mod prefix;
@@ -18,7 +19,7 @@ pub fn convert_tm_to_ics_merkle_proof(
         let mut parsed = CommitmentProof { proof: None };
 
         prost::Message::merge(&mut parsed, op.data.as_slice())
-            .map_err(ProofError::commitment_proof_decoding_failed)?;
+            .map_err(|_| ProofError::CommitmentProofDecodingFailed)?;
 
         proofs.push(parsed);
     }
diff --git a/utils/cw-proof/src/verifier/cw.rs b/utils/cw-proof/src/verifier/cw.rs
index 0911452..a58fc50 100644
--- a/utils/cw-proof/src/verifier/cw.rs
+++ b/utils/cw-proof/src/verifier/cw.rs
@@ -1,8 +1,8 @@
 use alloc::vec::Vec;
 
-use ibc_relayer_types::core::ics23_commitment::error::Error as ProofError;
 use ics23::CommitmentProof;
 
+use crate::error::ProofError;
 use crate::verifier::{ics23::Ics23MembershipVerifier, multi::MultiVerifier, Verifier};
 
 #[derive(Clone, Debug)]
@@ -25,12 +25,12 @@ impl CwVerifier {
         value: &Vec<u8>,
     ) -> Result<(), ProofError> {
         if root.is_empty() {
-            return Err(ProofError::empty_merkle_root());
+            return Err(ProofError::EmptyMerkleRoot);
         }
 
         let verified = self.0.verify_against_root(proofs, keys, value, root)?;
         if !verified {
-            return Err(ProofError::verification_failure());
+            return Err(ProofError::VerificationFailure);
         }
 
         Ok(())
diff --git a/utils/cw-proof/src/verifier/ics23.rs b/utils/cw-proof/src/verifier/ics23.rs
index 38f9e56..0ee7dbe 100644
--- a/utils/cw-proof/src/verifier/ics23.rs
+++ b/utils/cw-proof/src/verifier/ics23.rs
@@ -1,12 +1,12 @@
 use alloc::vec::Vec;
 use core::marker::PhantomData;
 
-use ibc_relayer_types::core::ics23_commitment::error::Error as ProofError;
 use ics23::{
     calculate_existence_root, commitment_proof::Proof, verify_membership, CommitmentProof,
     ProofSpec,
 };
 
+use crate::error::ProofError;
 use crate::verifier::Verifier;
 
 #[derive(Clone, Debug)]
@@ -42,15 +42,15 @@ where
         value: &Self::Value,
     ) -> Result<Self::Root, Self::Error> {
         if value.as_ref().is_empty() {
-            return Err(ProofError::empty_verified_value());
+            return Err(ProofError::EmptyVerifiedValue);
         }
 
         let Some(Proof::Exist(existence_proof)) = &commitment_proof.proof else {
-            return Err(ProofError::invalid_merkle_proof());
+            return Err(ProofError::InvalidMerkleProof);
         };
 
         let root = calculate_existence_root::<ics23::HostFunctionsManager>(existence_proof)
-            .map_err(|_| ProofError::invalid_merkle_proof())?;
+            .map_err(|_| ProofError::InvalidMerkleProof)?;
 
         if !verify_membership::<ics23::HostFunctionsManager>(
             commitment_proof,
@@ -59,7 +59,7 @@ where
             key.as_ref(),
             value.as_ref(),
         ) {
-            return Err(ProofError::verification_failure());
+            return Err(ProofError::VerificationFailure);
         }
 
         Ok(root)
diff --git a/utils/cw-prover/Cargo.lock b/utils/cw-prover/Cargo.lock
index 82b74a3..0913ae9 100644
--- a/utils/cw-prover/Cargo.lock
+++ b/utils/cw-prover/Cargo.lock
@@ -17,15 +17,6 @@ version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
-[[package]]
-name = "aho-corasick"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
-dependencies = [
- "memchr",
-]
-
 [[package]]
 name = "anstream"
 version = "0.6.5"
@@ -80,28 +71,6 @@ version = "1.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
-[[package]]
-name = "async-stream"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
-dependencies = [
- "async-stream-impl",
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-stream-impl"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.41",
-]
-
 [[package]]
 name = "async-trait"
 version = "0.1.74"
@@ -119,51 +88,6 @@ version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
-[[package]]
-name = "axum"
-version = "0.6.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
-dependencies = [
- "async-trait",
- "axum-core",
- "bitflags",
- "bytes",
- "futures-util",
- "http",
- "http-body",
- "hyper",
- "itoa",
- "matchit",
- "memchr",
- "mime",
- "percent-encoding",
- "pin-project-lite",
- "rustversion",
- "serde",
- "sync_wrapper",
- "tower",
- "tower-layer",
- "tower-service",
-]
-
-[[package]]
-name = "axum-core"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
-dependencies = [
- "async-trait",
- "bytes",
- "futures-util",
- "http",
- "http-body",
- "mime",
- "rustversion",
- "tower-layer",
- "tower-service",
-]
-
 [[package]]
 name = "backtrace"
 version = "0.3.69"
@@ -185,12 +109,6 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
 
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
 [[package]]
 name = "base64"
 version = "0.21.5"
@@ -396,12 +314,6 @@ dependencies = [
  "libc",
 ]
 
-[[package]]
-name = "crunchy"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
-
 [[package]]
 name = "crypto-bigint"
 version = "0.5.5"
@@ -443,7 +355,7 @@ version = "0.1.0"
 dependencies = [
  "clap",
  "cosmrs",
- "ibc-relayer-types",
+ "displaydoc",
  "ics23",
  "prost",
  "tendermint",
@@ -483,17 +395,6 @@ dependencies = [
  "powerfmt",
 ]
 
-[[package]]
-name = "derive_more"
-version = "0.99.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
 [[package]]
 name = "digest"
 version = "0.9.0"
@@ -515,6 +416,17 @@ dependencies = [
  "subtle",
 ]
 
+[[package]]
+name = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.41",
+]
+
 [[package]]
 name = "ecdsa"
 version = "0.16.9"
@@ -612,22 +524,12 @@ dependencies = [
  "subtle",
 ]
 
-[[package]]
-name = "fixed-hash"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534"
-dependencies = [
- "static_assertions",
-]
-
 [[package]]
 name = "flex-error"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b"
 dependencies = [
- "anyhow",
  "eyre",
  "paste",
 ]
@@ -761,19 +663,13 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 2.1.0",
+ "indexmap",
  "slab",
  "tokio",
  "tokio-util",
  "tracing",
 ]
 
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
 [[package]]
 name = "hashbrown"
 version = "0.14.3"
@@ -879,62 +775,6 @@ dependencies = [
  "tokio-rustls",
 ]
 
-[[package]]
-name = "hyper-timeout"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
-dependencies = [
- "hyper",
- "pin-project-lite",
- "tokio",
- "tokio-io-timeout",
-]
-
-[[package]]
-name = "ibc-proto"
-version = "0.38.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93cbf4cbe9e5113cc7c70f3208a7029b2205c629502cbb2ae7ea0a09a97d3005"
-dependencies = [
- "base64 0.21.5",
- "bytes",
- "flex-error",
- "ics23",
- "prost",
- "serde",
- "subtle-encoding",
- "tendermint-proto",
- "tonic",
-]
-
-[[package]]
-name = "ibc-relayer-types"
-version = "0.26.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c4ea7fe71d63645ff3fd83929abc3cc1cab1db8777a28a7df4643f021f334e4"
-dependencies = [
- "bytes",
- "derive_more",
- "flex-error",
- "ibc-proto",
- "ics23",
- "itertools 0.10.5",
- "num-rational",
- "primitive-types",
- "prost",
- "regex",
- "serde",
- "serde_derive",
- "serde_json",
- "subtle-encoding",
- "tendermint",
- "tendermint-light-client-verifier",
- "tendermint-proto",
- "time",
- "uint",
-]
-
 [[package]]
 name = "ics23"
 version = "0.11.0"
@@ -944,10 +784,8 @@ dependencies = [
  "anyhow",
  "bytes",
  "hex",
- "informalsystems-pbjson",
  "prost",
  "ripemd",
- "serde",
  "sha2 0.10.8",
  "sha3",
 ]
@@ -962,31 +800,12 @@ dependencies = [
  "unicode-normalization",
 ]
 
-[[package]]
-name = "impl-serde"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd"
-dependencies = [
- "serde",
-]
-
 [[package]]
 name = "indenter"
 version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
 
-[[package]]
-name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
 [[package]]
 name = "indexmap"
 version = "2.1.0"
@@ -994,17 +813,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.3",
-]
-
-[[package]]
-name = "informalsystems-pbjson"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4eecd90f87bea412eac91c6ef94f6b1e390128290898cbe14f2b926787ae1fb"
-dependencies = [
- "base64 0.13.1",
- "serde",
+ "hashbrown",
 ]
 
 [[package]]
@@ -1013,15 +822,6 @@ version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
-[[package]]
-name = "itertools"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
-dependencies = [
- "either",
-]
-
 [[package]]
 name = "itertools"
 version = "0.11.0"
@@ -1089,12 +889,6 @@ version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
-[[package]]
-name = "matchit"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
-
 [[package]]
 name = "memchr"
 version = "2.6.4"
@@ -1127,17 +921,6 @@ dependencies = [
  "windows-sys 0.48.0",
 ]
 
-[[package]]
-name = "num-bigint"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
 [[package]]
 name = "num-derive"
 version = "0.3.3"
@@ -1149,28 +932,6 @@ dependencies = [
  "syn 1.0.109",
 ]
 
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-dependencies = [
- "autocfg",
- "num-bigint",
- "num-integer",
- "num-traits",
-]
-
 [[package]]
 name = "num-traits"
 version = "0.2.17"
@@ -1327,23 +1088,6 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "primitive-types"
-version = "0.12.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2"
-dependencies = [
- "fixed-hash",
- "impl-serde",
- "uint",
-]
-
 [[package]]
 name = "proc-macro2"
 version = "1.0.70"
@@ -1370,7 +1114,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
 dependencies = [
  "anyhow",
- "itertools 0.11.0",
+ "itertools",
  "proc-macro2",
  "quote",
  "syn 2.0.41",
@@ -1394,27 +1138,6 @@ dependencies = [
  "proc-macro2",
 ]
 
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
 [[package]]
 name = "rand_core"
 version = "0.6.4"
@@ -1433,42 +1156,13 @@ dependencies = [
  "bitflags",
 ]
 
-[[package]]
-name = "regex"
-version = "1.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
-
 [[package]]
 name = "reqwest"
 version = "0.11.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
 dependencies = [
- "base64 0.21.5",
+ "base64",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -1571,7 +1265,7 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64 0.21.5",
+ "base64",
 ]
 
 [[package]]
@@ -1584,12 +1278,6 @@ dependencies = [
  "untrusted",
 ]
 
-[[package]]
-name = "rustversion"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
-
 [[package]]
 name = "ryu"
 version = "1.0.16"
@@ -1840,12 +1528,6 @@ dependencies = [
  "der",
 ]
 
-[[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
 [[package]]
 name = "strsim"
 version = "0.10.0"
@@ -1895,12 +1577,6 @@ dependencies = [
  "unicode-ident",
 ]
 
-[[package]]
-name = "sync_wrapper"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
-
 [[package]]
 name = "system-configuration"
 version = "0.5.1"
@@ -1967,19 +1643,6 @@ dependencies = [
  "url",
 ]
 
-[[package]]
-name = "tendermint-light-client-verifier"
-version = "0.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74994da9de4b1144837a367ca2c60c650f5526a7c1a54760a3020959b522e474"
-dependencies = [
- "derive_more",
- "flex-error",
- "serde",
- "tendermint",
- "time",
-]
-
 [[package]]
 name = "tendermint-proto"
 version = "0.34.0"
@@ -2112,16 +1775,6 @@ dependencies = [
  "windows-sys 0.48.0",
 ]
 
-[[package]]
-name = "tokio-io-timeout"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
-dependencies = [
- "pin-project-lite",
- "tokio",
-]
-
 [[package]]
 name = "tokio-macros"
 version = "2.2.0"
@@ -2143,17 +1796,6 @@ dependencies = [
  "tokio",
 ]
 
-[[package]]
-name = "tokio-stream"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
-dependencies = [
- "futures-core",
- "pin-project-lite",
- "tokio",
-]
-
 [[package]]
 name = "tokio-util"
 version = "0.7.10"
@@ -2177,59 +1819,6 @@ dependencies = [
  "serde",
 ]
 
-[[package]]
-name = "tonic"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e"
-dependencies = [
- "async-stream",
- "async-trait",
- "axum",
- "base64 0.21.5",
- "bytes",
- "h2",
- "http",
- "http-body",
- "hyper",
- "hyper-timeout",
- "percent-encoding",
- "pin-project",
- "prost",
- "tokio",
- "tokio-stream",
- "tower",
- "tower-layer",
- "tower-service",
- "tracing",
-]
-
-[[package]]
-name = "tower"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
-dependencies = [
- "futures-core",
- "futures-util",
- "indexmap 1.9.3",
- "pin-project",
- "pin-project-lite",
- "rand",
- "slab",
- "tokio",
- "tokio-util",
- "tower-layer",
- "tower-service",
- "tracing",
-]
-
-[[package]]
-name = "tower-layer"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
-
 [[package]]
 name = "tower-service"
 version = "0.3.2"
@@ -2243,21 +1832,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
  "pin-project-lite",
- "tracing-attributes",
  "tracing-core",
 ]
 
-[[package]]
-name = "tracing-attributes"
-version = "0.1.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.41",
-]
-
 [[package]]
 name = "tracing-core"
 version = "0.1.32"
@@ -2279,18 +1856,6 @@ version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
-[[package]]
-name = "uint"
-version = "0.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52"
-dependencies = [
- "byteorder",
- "crunchy",
- "hex",
- "static_assertions",
-]
-
 [[package]]
 name = "unicode-bidi"
 version = "0.3.14"