diff --git a/.changelog/unreleased/breaking-changes/1665-tendermint-0.23.2.md b/.changelog/unreleased/breaking-changes/1665-tendermint-0.23.2.md new file mode 100644 index 0000000000..9ffadf79d6 --- /dev/null +++ b/.changelog/unreleased/breaking-changes/1665-tendermint-0.23.2.md @@ -0,0 +1,2 @@ +- Pin tendermint-rs dependencies to =0.23.2 + ([#1665](https://github.com/informalsystems/ibc-rs/pull/1665)) diff --git a/.changelog/unreleased/breaking-changes/ibc/1665-remove-chrono.md b/.changelog/unreleased/breaking-changes/ibc/1665-remove-chrono.md new file mode 100644 index 0000000000..c58260ee02 --- /dev/null +++ b/.changelog/unreleased/breaking-changes/ibc/1665-remove-chrono.md @@ -0,0 +1,4 @@ +- Remove `Timestamp` API that depended on the `chrono` crate: + ([#1665](https://github.com/informalsystems/ibc-rs/pull/1665)): + - `Timestamp::from_datetime`; use `From` + - `Timestamp::as_datetime`, superseded by `Timestamp::into_datetime` diff --git a/.changelog/unreleased/improvements/ibc/1665-remove-chrono.md b/.changelog/unreleased/improvements/ibc/1665-remove-chrono.md new file mode 100644 index 0000000000..477fa06f2d --- /dev/null +++ b/.changelog/unreleased/improvements/ibc/1665-remove-chrono.md @@ -0,0 +1,4 @@ +- More conventional ad-hoc conversion methods on `Timestamp` + ([#1665](https://github.com/informalsystems/ibc-rs/pull/1665)): + - `Timestamp::nanoseconds` replaces `Timestamp::as_nanoseconds` + - `Timestamp::into_datetime` substitutes `Timestamp::as_datetime` diff --git a/Cargo.lock b/Cargo.lock index f6d822a07c..4779cefca7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -324,7 +324,6 @@ dependencies = [ "libc", "num-integer", "num-traits", - "serde", "winapi", ] @@ -1281,7 +1280,6 @@ name = "ibc" version = "0.9.0" dependencies = [ "bytes", - "chrono", "env_logger", "flex-error", "ibc-proto", @@ -1302,6 +1300,7 @@ dependencies = [ "tendermint-testgen", "test-log", "thiserror", + "time", "tracing", "tracing-subscriber 0.3.3", ] @@ -1357,7 +1356,6 @@ dependencies = [ "bech32", "bitcoin", "bytes", - "chrono", "crossbeam-channel 0.5.1", "dirs-next", "env_logger", @@ -2917,13 +2915,12 @@ dependencies = [ [[package]] name = "tendermint" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02880339f0e89dc7de809cb300a7dbe5e066c71937a7a55472438ae02e4a841b" +checksum = "9015fdeab074f9b8f97dcb89c2bb2ec8537c89423e95551e8d7ecdfbab58a329" dependencies = [ "async-trait", "bytes", - "chrono", "ed25519", "ed25519-dalek", "flex-error", @@ -2943,14 +2940,15 @@ dependencies = [ "subtle", "subtle-encoding", "tendermint-proto", + "time", "zeroize", ] [[package]] name = "tendermint-config" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff01e0eacdcfb75e8a1bbbc2d71286f7b6db3eda82c52ad7ca4f619ebb90cc" +checksum = "a2b2e6d4442bab49319dbacdfd79c5929bc6e0b35d1e0d959ff5b79fddf3f018" dependencies = [ "flex-error", "serde", @@ -2962,11 +2960,10 @@ dependencies = [ [[package]] name = "tendermint-light-client" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7c4fe20856c514b6c37550f2f391183a5d4831820fec2e0703a19fc1523259" +checksum = "e0edd884720ab9e3be8031ca38b929b56cb80082b8d58f40984dd1e194a2f8ec" dependencies = [ - "chrono", "contracts", "crossbeam-channel 0.4.4", "derive_more", @@ -2978,17 +2975,17 @@ dependencies = [ "static_assertions", "tendermint", "tendermint-rpc", + "time", "tokio", ] [[package]] name = "tendermint-proto" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1b8319fcf0860833eabe3278cf2d94ca20ef04bee6a77d892f986026fb1c252" +checksum = "da86f6e52ced9c2f24c4ae57662ce8a44dd90ee7bc47bae27a710b02d48e193c" dependencies = [ "bytes", - "chrono", "flex-error", "num-derive", "num-traits", @@ -2997,18 +2994,18 @@ dependencies = [ "serde", "serde_bytes", "subtle-encoding", + "time", ] [[package]] name = "tendermint-rpc" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c88786eeb1b408530fa7a8151aa9639cc04a6210cd8b5fa27aaafbd1e2a091" +checksum = "50f5f4875c36798e5590894a5176cf8d75e4bc81ec34ced1b9a87609e7d56861" dependencies = [ "async-trait", "async-tungstenite", "bytes", - "chrono", "flex-error", "futures", "getrandom 0.1.16", @@ -3026,6 +3023,7 @@ dependencies = [ "tendermint-config", "tendermint-proto", "thiserror", + "time", "tokio", "tracing", "url", @@ -3035,11 +3033,10 @@ dependencies = [ [[package]] name = "tendermint-testgen" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6df4b2bc95b5c65ab661c8ab0e0054dd61b4e4c4edd53c2831c317e40042eac" +checksum = "019142fb30c80449e8106e91c5c3c8d846859dd7d5fe713727a0642efc819ab0" dependencies = [ - "chrono", "ed25519-dalek", "gumdrop", "serde", @@ -3047,6 +3044,7 @@ dependencies = [ "simple-error", "tempfile", "tendermint", + "time", ] [[package]] @@ -3123,8 +3121,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e0a10c9a9fb3a5dce8c2239ed670f1a2569fcf42da035f5face1b19860d52b0" dependencies = [ "libc", + "time-macros", ] +[[package]] +name = "time-macros" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c7ca5e81982d152f0788b131ebf96cc4bbd1b4575a7ed51f0f6fc866a05fdb" + [[package]] name = "tiny-bip39" version = "0.8.2" diff --git a/Cargo.toml b/Cargo.toml index d80af786e4..c1e00932ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,8 +18,15 @@ exclude = [ ] # [patch.crates-io] -# tendermint = { git = "https://github.com/informalsystems/tendermint-rs", branch = "master" } -# tendermint-rpc = { git = "https://github.com/informalsystems/tendermint-rs", branch = "master" } -# tendermint-proto = { git = "https://github.com/informalsystems/tendermint-rs", branch = "master" } -# tendermint-light-client = { git = "https://github.com/informalsystems/tendermint-rs", branch = "master" } -# tendermint-testgen = { git = "https://github.com/informalsystems/tendermint-rs", branch = "master" } +# tendermint = { git = "https://github.com/informalsystems/tendermint-rs", branch = "v0.23.x" } +# tendermint-rpc = { git = "https://github.com/informalsystems/tendermint-rs", branch = "v0.23.x" } +# tendermint-proto = { git = "https://github.com/informalsystems/tendermint-rs", branch = "v0.23.x" } +# tendermint-light-client = { git = "https://github.com/informalsystems/tendermint-rs", branch = "v0.23.x" } +# tendermint-testgen = { git = "https://github.com/informalsystems/tendermint-rs", branch = "v0.23.x" } + +# [patch.crates-io] +# tendermint = { path = "../tendermint-rs/tendermint" } +# tendermint-rpc = { path = "../tendermint-rs/rpc" } +# tendermint-proto = { path = "../tendermint-rs/proto" } +# tendermint-light-client = { path = "../tendermint-rs/light-client" } +# tendermint-testgen = { path = "../tendermint-rs/testgen" } diff --git a/ci/no-std-check/Cargo.toml b/ci/no-std-check/Cargo.toml index f10061ccef..ae2ebb560b 100644 --- a/ci/no-std-check/Cargo.toml +++ b/ci/no-std-check/Cargo.toml @@ -16,7 +16,6 @@ sp-std = { version = "3.0.0", default-features = false, optional = true } # Dependencies that support no_std bytes = { version = "1.0.1", default-features = false } -chrono = { version = "0.4.19", default-features = false } contracts = { version = "0.4.0", default-features = false } crossbeam-channel = { version = "0.5.1", default-features = false } ed25519 = { version = "1.2.0", default-features = false, features = ["serde"] } diff --git a/ci/no-std-check/src/lib.rs b/ci/no-std-check/src/lib.rs index a90084f0a1..0fe9452904 100644 --- a/ci/no-std-check/src/lib.rs +++ b/ci/no-std-check/src/lib.rs @@ -25,7 +25,6 @@ use sp_std; // Supported Imports use bytes; -use chrono; use contracts; use crossbeam_channel; use ed25519; diff --git a/relayer-cli/Cargo.toml b/relayer-cli/Cargo.toml index c01fb29164..582bbb4b4c 100644 --- a/relayer-cli/Cargo.toml +++ b/relayer-cli/Cargo.toml @@ -56,18 +56,18 @@ flex-error = { version = "0.4.4", default-features = false, features = ["std", " signal-hook = "0.3.12" [dependencies.tendermint-proto] -version = "=0.23.1" +version = "=0.23.2" [dependencies.tendermint] -version = "=0.23.1" +version = "=0.23.2" features = ["secp256k1"] [dependencies.tendermint-rpc] -version = "=0.23.1" +version = "=0.23.2" features = ["http-client", "websocket-client"] [dependencies.tendermint-light-client] -version = "=0.23.1" +version = "=0.23.2" features = ["unstable"] [dependencies.abscissa_core] diff --git a/relayer/Cargo.toml b/relayer/Cargo.toml index 5ce41e4bd2..bc32264c10 100644 --- a/relayer/Cargo.toml +++ b/relayer/Cargo.toml @@ -25,7 +25,6 @@ ibc = { version = "0.9.0", path = "../modules" } ibc-proto = { version = "0.13.0", path = "../proto" } ibc-telemetry = { version = "0.9.0", path = "../telemetry", optional = true } -chrono = { version = "0.4.19", default-features = false, features = ["clock"] } subtle-encoding = "0.5" humantime-serde = "1.0.0" serde = "1.0" @@ -71,20 +70,20 @@ version = "0.4.0" features = ["num-bigint", "serde"] [dependencies.tendermint] -version = "=0.23.1" +version = "=0.23.2" features = ["secp256k1"] [dependencies.tendermint-rpc] -version = "=0.23.1" +version = "=0.23.2" features = ["http-client", "websocket-client"] [dependencies.tendermint-light-client] -version = "=0.23.1" +version = "=0.23.2" default-features = false features = ["rpc-client", "secp256k1", "unstable"] [dependencies.tendermint-proto] -version = "=0.23.1" +version = "=0.23.2" [dev-dependencies] ibc = { version = "0.9.0", path = "../modules", features = ["mocks"] } @@ -94,4 +93,4 @@ tracing-subscriber = { version = "0.3.3", features = ["fmt", "env-filter", "json test-log = { version = "0.2.8", features = ["trace"] } # Needed for generating (synthetic) light blocks. -tendermint-testgen = { version = "=0.23.1" } +tendermint-testgen = { version = "=0.23.2" } diff --git a/relayer/src/chain/cosmos.rs b/relayer/src/chain/cosmos.rs index 12062b4145..c24fd9f223 100644 --- a/relayer/src/chain/cosmos.rs +++ b/relayer/src/chain/cosmos.rs @@ -12,7 +12,6 @@ use std::{fmt, thread, time::Instant}; use bech32::{ToBase32, Variant}; use bitcoin::hashes::hex::ToHex; -use chrono::DateTime; use itertools::Itertools; use prost::Message; use prost_types::Any; @@ -57,7 +56,6 @@ use ibc::core::ics24_host::{ClientUpgradePath, Path, IBC_QUERY_PATH, SDK_UPGRADE use ibc::events::{from_tx_response_event, IbcEvent}; use ibc::query::{QueryTxHash, QueryTxRequest}; use ibc::signer::Signer; -use ibc::timestamp::Timestamp; use ibc::Height as ICSHeight; use ibc::{downcast, query::QueryBlockRequest}; use ibc_proto::cosmos::auth::v1beta1::{BaseAccount, EthAccount, QueryAccountRequest}; @@ -1103,7 +1101,7 @@ impl ChainEndpoint for CosmosSdkChain { crate::time!("query_status"); let status = self.status()?; - let time = DateTime::from(status.sync_info.latest_block_time); + let time = status.sync_info.latest_block_time; let height = ICSHeight { revision_number: ChainId::chain_version(status.node_info.network.as_str()), revision_height: u64::from(status.sync_info.latest_block_height), @@ -1111,7 +1109,7 @@ impl ChainEndpoint for CosmosSdkChain { Ok(StatusResponse { height, - timestamp: Timestamp::from_datetime(time), + timestamp: time.into(), }) } diff --git a/relayer/src/foreign_client.rs b/relayer/src/foreign_client.rs index a45ebe9f6a..0fc6447ecf 100644 --- a/relayer/src/foreign_client.rs +++ b/relayer/src/foreign_client.rs @@ -2,7 +2,6 @@ use core::{fmt, time::Duration}; use std::thread; use std::time::Instant; -use chrono::Utc; use itertools::Itertools; use prost_types::Any; use tracing::{debug, error, info, trace, warn}; @@ -569,7 +568,7 @@ impl ForeignClient