diff --git a/.changelog/unreleased/breaking-changes/3548-cometbft-0.38.md b/.changelog/unreleased/breaking-changes/3548-cometbft-0.38.md new file mode 100644 index 0000000000..d2b1f2e5bf --- /dev/null +++ b/.changelog/unreleased/breaking-changes/3548-cometbft-0.38.md @@ -0,0 +1,2 @@ +- Update to tendermint-rs 0.33 and ibc-proto 0.33 + ([\#3548](https://github.com/informalsystems/hermes/issues/3548)) diff --git a/.changelog/unreleased/improvements/ibc-relayer/3548-cometbft-0.38.md b/.changelog/unreleased/improvements/ibc-relayer/3548-cometbft-0.38.md new file mode 100644 index 0000000000..803bdc5fa8 --- /dev/null +++ b/.changelog/unreleased/improvements/ibc-relayer/3548-cometbft-0.38.md @@ -0,0 +1,2 @@ +- Regard the `finalize_block_events` field of the `block_results` RPC endpoint, added in CometBFT 0.38 + ([\#3548](https://github.com/informalsystems/hermes/issues/3548)) diff --git a/Cargo.lock b/Cargo.lock index 6f8b3bcacd..02a3d79b95 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1441,9 +1441,9 @@ dependencies = [ [[package]] name = "ibc-proto" -version = "0.32.1" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c352715b36685c2543556a77091fb16af5d26257d5ce9c28e6756c1ccd71aa" +checksum = "59d0bc49ee5fc8e5d0e668765d470cb201fd0cdee4166f49c6cbcf3100466137" dependencies = [ "base64 0.21.2", "bytes", @@ -3306,9 +3306,9 @@ dependencies = [ [[package]] name = "tendermint" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a46ec6b25b028097ab682ffae11d09d64fe1e2535833b902f26a278a0f88a705" +checksum = "f6d550db02d6bec4ebcbbebc4301ec22181bc489c37fb3f167e64b14c1be8321" dependencies = [ "bytes", "digest 0.10.7", @@ -3337,9 +3337,9 @@ dependencies = [ [[package]] name = "tendermint-config" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dbb7610ef8422d5886116868e48ab6a9ea72859b3bf9021c6d87318e5600225" +checksum = "36a787b139f314c92756becbcae855bef6772227d97d8ecee948ad90327fe6e7" dependencies = [ "flex-error", "serde", @@ -3351,9 +3351,9 @@ dependencies = [ [[package]] name = "tendermint-light-client" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9940a1376b5c1e3e5759143bc4308a7114f6293167ca5f05365d3386389de0ff" +checksum = "b5907c615802bcd54a9e209caada2abe9b945fb1031744d7c8643996239cec6e" dependencies = [ "contracts", "crossbeam-channel 0.4.4", @@ -3376,9 +3376,9 @@ dependencies = [ [[package]] name = "tendermint-light-client-detector" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765f272201f8dd04067498421b68a449a48623bf8f4df69b7e50071bec193daf" +checksum = "af6153c010c32cbd4ff8f97f106c66da773343808965fe4b74ca365c370d426f" dependencies = [ "contracts", "crossbeam-channel 0.4.4", @@ -3400,9 +3400,9 @@ dependencies = [ [[package]] name = "tendermint-light-client-verifier" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4bc4c47cf36e740645e04128bd14ff5723aef86f5377fbd4d3b0149198dfc7e" +checksum = "6bc1e4e3dd6f65cfa7979cf721b5afa1d79d32c4a2fe5fddb6416a98638634a9" dependencies = [ "derive_more", "flex-error", @@ -3413,9 +3413,9 @@ dependencies = [ [[package]] name = "tendermint-proto" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23c8ff0e6634eb4c3c4aeed45076dc97dac91aac5501a905a67fa222e165b" +checksum = "1834fa2eb884ba69b9c0eea55f0178270bed421217596ca4e54c19ef75dcb660" dependencies = [ "bytes", "flex-error", @@ -3431,9 +3431,9 @@ dependencies = [ [[package]] name = "tendermint-rpc" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd2cc789170db5a35d4e0bb2490035c03ef96df08f119bee25fd8dab5a09aa25" +checksum = "03f8ff62948110e58d6df12c3bb73a00e74553384255d6413deed4c21d7480bf" dependencies = [ "async-trait", "async-tungstenite", @@ -3467,9 +3467,9 @@ dependencies = [ [[package]] name = "tendermint-testgen" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "023911e751fea64f20cd13bb9e15b5aae283aa3c7aaeb7e9bec1512032b32c99" +checksum = "23a1e92079f943bdb0868795e9550c5185b8d0c6222be1475548314cf4f44c49" dependencies = [ "ed25519-consensus", "gumdrop", diff --git a/Cargo.toml b/Cargo.toml index 4a4c5cd801..751221bc3a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,10 +23,10 @@ overflow-checks = true [patch.crates-io] # ibc-proto = { git = "https://github.com/cosmos/ibc-proto-rs.git", branch = "main" } -# tendermint = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "romac/new-misbehavior-detector" } -# tendermint-rpc = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "romac/new-misbehavior-detector" } -# tendermint-proto = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "romac/new-misbehavior-detector" } -# tendermint-light-client = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "romac/new-misbehavior-detector" } -# tendermint-light-client-verifier = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "romac/new-misbehavior-detector" } -# tendermint-light-client-detector = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "romac/new-misbehavior-detector" } -# tendermint-testgen = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "romac/new-misbehavior-detector" } +# tendermint = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "main" } +# tendermint-rpc = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "main" } +# tendermint-proto = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "main" } +# tendermint-light-client = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "main" } +# tendermint-light-client-verifier = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "main" } +# tendermint-light-client-detector = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "main" } +# tendermint-testgen = { git = "https://github.com/informalsystems/tendermint-rs.git", branch = "main" } diff --git a/crates/chain-registry/Cargo.toml b/crates/chain-registry/Cargo.toml index d92172ec34..890f2af979 100644 --- a/crates/chain-registry/Cargo.toml +++ b/crates/chain-registry/Cargo.toml @@ -12,9 +12,12 @@ description = """ """ [dependencies] -ibc-proto = { version = "0.32.1" } +ibc-proto = { version = "0.33.0" } ibc-relayer-types = { version = "0.25.0", path = "../relayer-types" } -tendermint-rpc = { version = "0.32.0", features = ["http-client", "websocket-client"] } +tendermint-rpc = { version = "0.33.0", features = [ + "http-client", + "websocket-client", +] } async-trait = "0.1.72" flex-error = { version = "0.4.4", default-features = false } diff --git a/crates/relayer-cli/Cargo.toml b/crates/relayer-cli/Cargo.toml index 7b7162da82..941553c9cb 100644 --- a/crates/relayer-cli/Cargo.toml +++ b/crates/relayer-cli/Cargo.toml @@ -57,15 +57,15 @@ tracing-subscriber = { version = "0.3.14", features = ["fmt", "env-filter" time = "0.3" [dependencies.tendermint] -version = "0.32.0" +version = "0.33.0" features = ["secp256k1"] [dependencies.tendermint-rpc] -version = "0.32.0" +version = "0.33.0" features = ["http-client", "websocket-client"] [dependencies.tendermint-light-client-verifier] -version = "0.32.0" +version = "0.33.0" [dependencies.abscissa_core] version = "=0.6.0" diff --git a/crates/relayer-types/Cargo.toml b/crates/relayer-types/Cargo.toml index 99469151f4..33f957310a 100644 --- a/crates/relayer-types/Cargo.toml +++ b/crates/relayer-types/Cargo.toml @@ -24,7 +24,7 @@ mocks = ["tendermint-testgen", "clock"] [dependencies] # Proto definitions for all IBC-related interfaces, e.g., connections or channels. -ibc-proto = { version = "0.32.1" } +ibc-proto = { version = "0.33.0" } ics23 = { version = "0.10.1", features = ["std", "host-functions"] } time = { version = "0.3" } serde_derive = { version = "1.0.104" } @@ -44,18 +44,18 @@ dyn-clone = "1.0.12" num-rational = "0.4.1" [dependencies.tendermint] -version = "0.32.0" +version = "0.33.0" features = ["clock"] [dependencies.tendermint-proto] -version = "0.32.0" +version = "0.33.0" [dependencies.tendermint-light-client-verifier] -version = "0.32.0" +version = "0.33.0" features = ["rust-crypto"] [dependencies.tendermint-testgen] -version = "0.32.0" +version = "0.33.0" optional = true [dev-dependencies] @@ -63,5 +63,5 @@ env_logger = "0.10.0" tracing = { version = "0.1.36", default-features = false } tracing-subscriber = { version = "0.3.14", features = ["fmt", "env-filter", "json"] } test-log = { version = "0.2.10", features = ["trace"] } -tendermint-rpc = { version = "0.32.0", features = ["http-client", "websocket-client"] } -tendermint-testgen = { version = "0.32.0" } # Needed for generating (synthetic) light blocks. +tendermint-rpc = { version = "0.33.0", features = ["http-client", "websocket-client"] } +tendermint-testgen = { version = "0.33.0" } # Needed for generating (synthetic) light blocks. diff --git a/crates/relayer-types/src/test_utils.rs b/crates/relayer-types/src/test_utils.rs index f02467cc53..ea52217f22 100644 --- a/crates/relayer-types/src/test_utils.rs +++ b/crates/relayer-types/src/test_utils.rs @@ -19,6 +19,7 @@ pub fn default_consensus_params() -> consensus::Params { pub_key_types: vec![Algorithm::Ed25519], }, version: Some(consensus::params::VersionParams::default()), + abci: consensus::params::AbciParams::default(), } } diff --git a/crates/relayer/Cargo.toml b/crates/relayer/Cargo.toml index 85638f733e..8aff2745c7 100644 --- a/crates/relayer/Cargo.toml +++ b/crates/relayer/Cargo.toml @@ -20,7 +20,7 @@ default = ["flex-error/std", "flex-error/eyre_tracer"] telemetry = ["ibc-telemetry"] [dependencies] -ibc-proto = { version = "0.32.1" } +ibc-proto = { version = "0.33.0" } ibc-telemetry = { version = "0.25.0", path = "../telemetry", optional = true } ibc-relayer-types = { version = "0.25.0", path = "../relayer-types", features = ["mocks"] } @@ -84,20 +84,20 @@ version = "0.4.1" features = ["num-bigint", "serde"] [dependencies.tendermint] -version = "0.32.0" +version = "0.33.0" features = ["secp256k1"] [dependencies.tendermint-rpc] -version = "0.32.0" +version = "0.33.0" features = ["http-client", "websocket-client"] [dependencies.tendermint-light-client] -version = "0.32.0" +version = "0.33.0" default-features = false features = ["rpc-client", "secp256k1", "unstable"] [dependencies.tendermint-light-client-detector] -version = "0.32.0" +version = "0.33.0" default-features = false [dev-dependencies] @@ -108,4 +108,4 @@ tracing-subscriber = { version = "0.3.14", features = ["fmt", "env-filter", "jso test-log = { version = "0.2.10", features = ["trace"] } # Needed for generating (synthetic) light blocks. -tendermint-testgen = { version = "0.32.0" } +tendermint-testgen = { version = "0.33.0" } diff --git a/crates/relayer/src/chain/cosmos.rs b/crates/relayer/src/chain/cosmos.rs index 29c89cc7bf..ba67840dd1 100644 --- a/crates/relayer/src/chain/cosmos.rs +++ b/crates/relayer/src/chain/cosmos.rs @@ -762,9 +762,6 @@ impl CosmosSdkChain { ); crate::telemetry!(query, self.id(), "query_block"); - let mut begin_block_events = vec![]; - let mut end_block_events = vec![]; - let tm_height = tendermint::block::Height::try_from(block_height.revision_height()).unwrap(); @@ -775,24 +772,32 @@ impl CosmosSdkChain { let response_height = ICSHeight::new(self.id().version(), u64::from(response.height)) .map_err(|_| Error::invalid_height_no_source())?; - begin_block_events.append( - &mut response - .begin_block_events - .unwrap_or_default() - .iter() - .filter_map(|ev| filter_matching_event(ev, request, seqs)) - .map(|ev| IbcEventWithHeight::new(ev, response_height)) - .collect(), - ); + let begin_block_events = response + .begin_block_events + .unwrap_or_default() + .iter() + .filter_map(|ev| filter_matching_event(ev, request, seqs)) + .map(|ev| IbcEventWithHeight::new(ev, response_height)) + .collect(); + + let mut end_block_events: Vec<_> = response + .end_block_events + .unwrap_or_default() + .iter() + .filter_map(|ev| filter_matching_event(ev, request, seqs)) + .map(|ev| IbcEventWithHeight::new(ev, response_height)) + .collect(); - end_block_events.append( - &mut response - .end_block_events - .unwrap_or_default() + // Since CometBFT 0.38, block events are returned in the + // finalize_block_events field and the other *_block_events fields + // are no longer present. We put these in place of the end_block_events + // in older protocol. + end_block_events.extend( + response + .finalize_block_events .iter() .filter_map(|ev| filter_matching_event(ev, request, seqs)) - .map(|ev| IbcEventWithHeight::new(ev, response_height)) - .collect(), + .map(|ev| IbcEventWithHeight::new(ev, response_height)), ); Ok((begin_block_events, end_block_events)) diff --git a/crates/relayer/src/chain/cosmos/query/tx.rs b/crates/relayer/src/chain/cosmos/query/tx.rs index 92f2f49e34..f5ad53ea6d 100644 --- a/crates/relayer/src/chain/cosmos/query/tx.rs +++ b/crates/relayer/src/chain/cosmos/query/tx.rs @@ -198,47 +198,46 @@ pub async fn query_packets_from_block( .await .map_err(|e| Error::rpc(rpc_address.clone(), e))?; - let mut tx_events = vec![]; - let mut begin_block_events = vec![]; - let mut end_block_events = vec![]; + let mut events: Vec<_> = block_results + .begin_block_events + .unwrap_or_default() + .iter() + .filter_map(|ev| filter_matching_event(ev, request, &request.sequences)) + .map(|ev| IbcEventWithHeight::new(ev, height)) + .collect(); if let Some(txs) = block_results.txs_results { for tx in txs { - tx_events.append( - &mut tx - .events + events.extend( + tx.events .iter() .filter_map(|ev| filter_matching_event(ev, request, &request.sequences)) - .map(|ev| IbcEventWithHeight::new(ev, height)) - .collect(), + .map(|ev| IbcEventWithHeight::new(ev, height)), ) } } - begin_block_events.append( - &mut block_results - .begin_block_events + events.extend( + block_results + .end_block_events .unwrap_or_default() .iter() .filter_map(|ev| filter_matching_event(ev, request, &request.sequences)) - .map(|ev| IbcEventWithHeight::new(ev, height)) - .collect(), + .map(|ev| IbcEventWithHeight::new(ev, height)), ); - end_block_events.append( - &mut block_results - .end_block_events - .unwrap_or_default() + // Since CometBFT 0.38, block events are returned in the + // finalize_block_events field and the other *_block_events fields + // are no longer present. We put these in place of the end_block_events + // in older protocol. + events.extend( + block_results + .finalize_block_events .iter() .filter_map(|ev| filter_matching_event(ev, request, &request.sequences)) - .map(|ev| IbcEventWithHeight::new(ev, height)) - .collect(), + .map(|ev| IbcEventWithHeight::new(ev, height)), ); - let mut events = begin_block_events; - events.append(&mut tx_events); - events.append(&mut end_block_events); - Ok(events) } diff --git a/crates/relayer/src/event/source/websocket/extract.rs b/crates/relayer/src/event/source/websocket/extract.rs index 97ff858a98..ad8db55b6a 100644 --- a/crates/relayer/src/event/source/websocket/extract.rs +++ b/crates/relayer/src/event/source/websocket/extract.rs @@ -129,7 +129,9 @@ pub fn extract_events( let events = events.ok_or("missing events")?; match data { - RpcEventData::NewBlock { block, .. } if query == queries::new_block().to_string() => { + RpcEventData::NewBlock { block, .. } | RpcEventData::LegacyNewBlock { block, .. } + if query == queries::new_block().to_string() => + { let height = Height::new( ChainId::chain_version(chain_id.to_string().as_str()), u64::from(block.as_ref().ok_or("tx.height")?.header.height), diff --git a/crates/telemetry/Cargo.toml b/crates/telemetry/Cargo.toml index 48b642b03e..5a95936263 100644 --- a/crates/telemetry/Cargo.toml +++ b/crates/telemetry/Cargo.toml @@ -28,5 +28,5 @@ tokio = "1.26.0" tracing = "0.1.36" [dependencies.tendermint] -version = "0.32.0" +version = "0.33.0" default-features = false diff --git a/docs/spec/relayer/Data-Requirements.md b/docs/spec/relayer/Data-Requirements.md index f28390728c..36bce67484 100644 --- a/docs/spec/relayer/Data-Requirements.md +++ b/docs/spec/relayer/Data-Requirements.md @@ -110,12 +110,13 @@ Also for `write_acknowledgement` packet events. Used in two situations ([diagram for reference](https://app.excalidraw.com/l/4XqkU6POmGI/9jbKsT6mHxf)): 1. Similar to point (4) from `/tx_search`: Used In conjunction with `block_search` and `tx_search` for periodic packet clearing. - - Pattern: `/block_results?height=X` where X is a specific height, obtained with `block_results`, where a block has relevant packet events. Only `begin_block_events` and `end_block_events` are used in this case. + - Pattern: `/block_results?height=X` where X is a specific height, obtained with `block_results`, where a block has relevant packet events. Only `begin_block_events` and `end_block_events` are used in this case. Since CometBFT 0.38, these fields are replaced with `finalize_block_events`. 2. For CLIs `tx packet-recv` and `tx packet-ack` when the user passes the flag `--packet-data-query-height=X`. **Response fields used:** -- `begin_block_events` -- `end_block_events` +- `begin_block_events` (before CometBFT 0.38) +- `end_block_events` (before CometBFT 0.38) +- `finalize_block_events` (since CometBFT 0.38) - `height` - `tx_results[].events` diff --git a/tools/check-guide/Cargo.lock b/tools/check-guide/Cargo.lock index 4dfc564388..307ef5a3c0 100644 --- a/tools/check-guide/Cargo.lock +++ b/tools/check-guide/Cargo.lock @@ -187,9 +187,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.71" +version = "0.1.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" +checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" dependencies = [ "proc-macro2", "quote", @@ -340,9 +340,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitcoin" -version = "0.30.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b36f4c848f6bd9ff208128f08751135846cc23ae57d66ab10a22efff1c675f3c" +checksum = "4e99ff7289b20a7385f66a0feda78af2fc119d28fb56aea8886a9cd0a4abdd75" dependencies = [ "bech32", "bitcoin-private", @@ -920,9 +920,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" +checksum = "304e6508efa593091e97a9abbc10f90aa7ca635b6d2784feff3c89d41dd12272" [[package]] name = "ecdsa" @@ -1734,9 +1734,9 @@ dependencies = [ [[package]] name = "ibc-proto" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c888103095b45bee90cb9104513ade30abd69902153b0682b5ad81940ae1f865" +checksum = "59d0bc49ee5fc8e5d0e668765d470cb201fd0cdee4166f49c6cbcf3100466137" dependencies = [ "base64 0.21.2", "bytes", @@ -1815,7 +1815,6 @@ name = "ibc-relayer-cli" version = "1.6.0" dependencies = [ "abscissa_core", - "atty", "clap 3.2.25", "clap_complete 3.2.5", "color-eyre", @@ -2318,9 +2317,9 @@ dependencies = [ [[package]] name = "moka" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206bf83f415b0579fd885fe0804eb828e727636657dc1bf73d80d2f1218e14a1" +checksum = "fa6e72583bf6830c956235bff0d5afec8cf2952f579ebad18ae7821a917d950f" dependencies = [ "crossbeam-channel 0.5.8", "crossbeam-epoch", @@ -3633,9 +3632,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "signal-hook" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" dependencies = [ "libc", "signal-hook-registry", @@ -3877,9 +3876,9 @@ dependencies = [ [[package]] name = "tendermint" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a46ec6b25b028097ab682ffae11d09d64fe1e2535833b902f26a278a0f88a705" +checksum = "f6d550db02d6bec4ebcbbebc4301ec22181bc489c37fb3f167e64b14c1be8321" dependencies = [ "bytes", "digest 0.10.7", @@ -3908,9 +3907,9 @@ dependencies = [ [[package]] name = "tendermint-config" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dbb7610ef8422d5886116868e48ab6a9ea72859b3bf9021c6d87318e5600225" +checksum = "36a787b139f314c92756becbcae855bef6772227d97d8ecee948ad90327fe6e7" dependencies = [ "flex-error", "serde", @@ -3922,9 +3921,9 @@ dependencies = [ [[package]] name = "tendermint-light-client" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9940a1376b5c1e3e5759143bc4308a7114f6293167ca5f05365d3386389de0ff" +checksum = "b5907c615802bcd54a9e209caada2abe9b945fb1031744d7c8643996239cec6e" dependencies = [ "contracts", "crossbeam-channel 0.4.4", @@ -3947,9 +3946,9 @@ dependencies = [ [[package]] name = "tendermint-light-client-detector" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765f272201f8dd04067498421b68a449a48623bf8f4df69b7e50071bec193daf" +checksum = "af6153c010c32cbd4ff8f97f106c66da773343808965fe4b74ca365c370d426f" dependencies = [ "contracts", "crossbeam-channel 0.4.4", @@ -3971,9 +3970,9 @@ dependencies = [ [[package]] name = "tendermint-light-client-verifier" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4bc4c47cf36e740645e04128bd14ff5723aef86f5377fbd4d3b0149198dfc7e" +checksum = "6bc1e4e3dd6f65cfa7979cf721b5afa1d79d32c4a2fe5fddb6416a98638634a9" dependencies = [ "derive_more", "flex-error", @@ -3984,9 +3983,9 @@ dependencies = [ [[package]] name = "tendermint-proto" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23c8ff0e6634eb4c3c4aeed45076dc97dac91aac5501a905a67fa222e165b" +checksum = "1834fa2eb884ba69b9c0eea55f0178270bed421217596ca4e54c19ef75dcb660" dependencies = [ "bytes", "flex-error", @@ -4002,9 +4001,9 @@ dependencies = [ [[package]] name = "tendermint-rpc" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd2cc789170db5a35d4e0bb2490035c03ef96df08f119bee25fd8dab5a09aa25" +checksum = "03f8ff62948110e58d6df12c3bb73a00e74553384255d6413deed4c21d7480bf" dependencies = [ "async-trait", "async-tungstenite", @@ -4038,9 +4037,9 @@ dependencies = [ [[package]] name = "tendermint-testgen" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "023911e751fea64f20cd13bb9e15b5aae283aa3c7aaeb7e9bec1512032b32c99" +checksum = "23a1e92079f943bdb0868795e9550c5185b8d0c6222be1475548314cf4f44c49" dependencies = [ "ed25519-consensus", "gumdrop", diff --git a/tools/query-events/Cargo.toml b/tools/query-events/Cargo.toml index 2c2e4a8b35..a2190e5f6f 100644 --- a/tools/query-events/Cargo.toml +++ b/tools/query-events/Cargo.toml @@ -5,8 +5,8 @@ edition = "2021" publish = false [dependencies] -tendermint = { version = "0.32.0" } -tendermint-rpc = { version = "0.32.0", features = ["http-client"] } +tendermint = { version = "0.33.0" } +tendermint-rpc = { version = "0.33.0", features = ["http-client"] } clap = { version = "3.2", features = ["derive"] } futures = "0.3.27" diff --git a/tools/query-events/src/main.rs b/tools/query-events/src/main.rs index 77181a7521..f84b51f554 100644 --- a/tools/query-events/src/main.rs +++ b/tools/query-events/src/main.rs @@ -146,7 +146,16 @@ fn collect_events(res: block_results::Response) -> impl Iterator { .into_iter() .map(Into::into); - begin_events.chain(tx_events).chain(end_events) + // Since CometBFT 0.38, block events are returned in the + // finalize_block_events field and the other *_block_events fields + // are no longer present. We put these in place of the end_block_events + // in older protocol. + let finalize_events = res + .finalize_block_events + .into_iter() + .map(Into::into); + + begin_events.chain(tx_events).chain(end_events).chain(finalize_events) } fn event_matches(event: &Event, query: &Query) -> bool { diff --git a/tools/test-framework/Cargo.toml b/tools/test-framework/Cargo.toml index 3994380462..0dcd3daca3 100644 --- a/tools/test-framework/Cargo.toml +++ b/tools/test-framework/Cargo.toml @@ -17,8 +17,8 @@ description = """ ibc-relayer-types = { version = "=0.25.0", path = "../../crates/relayer-types" } ibc-relayer = { version = "=0.25.0", path = "../../crates/relayer" } ibc-relayer-cli = { version = "=1.6.0", path = "../../crates/relayer-cli" } -ibc-proto = { version = "0.32.1" } -tendermint-rpc = { version = "0.32.0", features = ["http-client", "websocket-client"] } +ibc-proto = { version = "0.33.0" } +tendermint-rpc = { version = "0.33.0", features = ["http-client", "websocket-client"] } http = "0.2.9" tokio = { version = "1.0", features = ["full"] }