build(deps): bump chrono from 0.4.19 to 0.4.20 (#4898)

* Bump chrono to 0.4.20

* Fix clippy::assign_op_pattern

* Update deprecated constant names

* Drop old `time` crate dependency from `chrono`

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
This commit is contained in:
teor 2022-08-29 03:08:27 +10:00 committed by GitHub
parent 8227dabe56
commit e973508911
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 71 additions and 68 deletions

7
Cargo.lock generated
View File

@ -740,15 +740,16 @@ dependencies = [
[[package]]
name = "chrono"
version = "0.4.19"
version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
checksum = "6127248204b9aba09a362f6c930ef6a78f2c1b2215f8a7b398c06e1083f17af0"
dependencies = [
"libc",
"js-sys",
"num-integer",
"num-traits",
"serde",
"time 0.1.44",
"wasm-bindgen",
"winapi",
]

View File

@ -35,7 +35,7 @@ rand_core = "0.6.3"
ripemd = "0.1.1"
# Matches version used by hdwallet
secp256k1 = { version = "0.21.3", features = ["serde"] }
sha2 = { version = "0.9.9", features=["compress"] }
sha2 = { version = "0.9.9", features = ["compress"] }
subtle = "2.4.1"
uint = "0.9.1"
x25519-dalek = { version = "1.2.0", features = ["serde"] }
@ -49,7 +49,7 @@ zcash_note_encryption = "0.1"
zcash_primitives = { version = "0.7.0", features = ["transparent-inputs"] }
# Time
chrono = { version = "0.4.19", features = ["serde"] }
chrono = { version = "0.4.20", default-features = false, features = ["clock", "std", "serde"] }
humantime = "2.1.0"
# Error Handling & Formatting

View File

@ -93,7 +93,7 @@ impl NetworkChainTipHeightEstimator {
let target_spacing_seconds = self.current_target_spacing.num_seconds();
let time_to_activation = Duration::seconds(remaining_blocks * target_spacing_seconds);
self.current_block_time = self.current_block_time + time_to_activation;
self.current_block_time += time_to_activation;
self.current_height = max_height;
}
}

View File

@ -2,7 +2,7 @@
use std::convert::TryInto;
use chrono::{TimeZone, Utc, MAX_DATETIME, MIN_DATETIME};
use chrono::{DateTime, TimeZone, Utc};
use proptest::{arbitrary::any, prelude::*};
use super::{
@ -41,7 +41,7 @@ impl Arbitrary for DateTime32 {
pub fn datetime_full() -> impl Strategy<Value = chrono::DateTime<Utc>> {
(
// TODO: should we be subtracting 1 from the maximum timestamp?
MIN_DATETIME.timestamp()..=MAX_DATETIME.timestamp(),
DateTime::<Utc>::MIN_UTC.timestamp()..=DateTime::<Utc>::MAX_UTC.timestamp(),
0..2_000_000_000_u32,
)
.prop_map(|(secs, nsecs)| Utc.timestamp(secs, nsecs))

View File

@ -18,7 +18,7 @@ jubjub = "0.9.0"
rand = { version = "0.8.5", package = "rand" }
rayon = "1.5.3"
chrono = "0.4.19"
chrono = { version = "0.4.20", default-features = false, features = ["clock", "std"] }
dirs = "4.0.0"
displaydoc = "0.2.3"
lazy_static = "1.4.0"

View File

@ -1,11 +1,9 @@
//! Tests for Zcash transaction consensus checks.
use std::{
collections::HashMap,
convert::{TryFrom, TryInto},
sync::Arc,
};
use std::{collections::HashMap, sync::Arc};
use chrono::{DateTime, Utc};
use color_eyre::eyre::Report;
use halo2::pasta::{group::ff::PrimeField, pallas};
use tower::{service_fn, ServiceExt};
@ -27,10 +25,9 @@ use zebra_chain::{
transparent::{self, CoinbaseData},
};
use super::{check, Request, Verifier};
use crate::error::TransactionError;
use color_eyre::eyre::Report;
use super::{check, Request, Verifier};
#[cfg(test)]
mod prop;
@ -264,7 +261,7 @@ async fn v5_transaction_is_rejected_before_nu5_activation() {
height: canopy
.activation_height(network)
.expect("Canopy activation height is specified"),
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -327,7 +324,7 @@ fn v5_transaction_is_accepted_after_nu5_activation_for_network(network: Network)
transaction: Arc::new(transaction),
known_utxos: Arc::new(HashMap::new()),
height: expiry_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -377,7 +374,7 @@ async fn v4_transaction_with_transparent_transfer_is_accepted() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(known_utxos),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -416,7 +413,7 @@ async fn v4_transaction_with_last_valid_expiry_height() {
transaction: Arc::new(transaction.clone()),
known_utxos: Arc::new(known_utxos),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -461,7 +458,7 @@ async fn v4_coinbase_transaction_with_low_expiry_height() {
transaction: Arc::new(transaction.clone()),
known_utxos: Arc::new(HashMap::new()),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -503,7 +500,7 @@ async fn v4_transaction_with_too_low_expiry_height() {
transaction: Arc::new(transaction.clone()),
known_utxos: Arc::new(known_utxos),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -548,7 +545,7 @@ async fn v4_transaction_with_exceeding_expiry_height() {
transaction: Arc::new(transaction.clone()),
known_utxos: Arc::new(known_utxos),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -601,7 +598,7 @@ async fn v4_coinbase_transaction_with_exceeding_expiry_height() {
transaction: Arc::new(transaction.clone()),
known_utxos: Arc::new(HashMap::new()),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -652,7 +649,7 @@ async fn v4_coinbase_transaction_is_accepted() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(HashMap::new()),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -702,7 +699,7 @@ async fn v4_transaction_with_transparent_transfer_is_rejected_by_the_script() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(known_utxos),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -752,7 +749,7 @@ async fn v4_transaction_with_conflicting_transparent_spend_is_rejected() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(known_utxos),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -818,7 +815,7 @@ fn v4_transaction_with_conflicting_sprout_nullifier_inside_joinsplit_is_rejected
transaction: Arc::new(transaction),
known_utxos: Arc::new(HashMap::new()),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -889,7 +886,7 @@ fn v4_transaction_with_conflicting_sprout_nullifier_across_joinsplits_is_rejecte
transaction: Arc::new(transaction),
known_utxos: Arc::new(HashMap::new()),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -943,7 +940,7 @@ async fn v5_transaction_with_transparent_transfer_is_accepted() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(known_utxos),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -983,7 +980,7 @@ async fn v5_transaction_with_last_valid_expiry_height() {
transaction: Arc::new(transaction.clone()),
known_utxos: Arc::new(known_utxos),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1026,7 +1023,7 @@ async fn v5_coinbase_transaction_expiry_height() {
transaction: Arc::new(transaction.clone()),
known_utxos: Arc::new(HashMap::new()),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1047,7 +1044,7 @@ async fn v5_coinbase_transaction_expiry_height() {
transaction: Arc::new(new_transaction.clone()),
known_utxos: Arc::new(HashMap::new()),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1072,7 +1069,7 @@ async fn v5_coinbase_transaction_expiry_height() {
transaction: Arc::new(new_transaction.clone()),
known_utxos: Arc::new(HashMap::new()),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1099,7 +1096,7 @@ async fn v5_coinbase_transaction_expiry_height() {
transaction: Arc::new(new_transaction.clone()),
known_utxos: Arc::new(HashMap::new()),
height: new_expiry_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1141,7 +1138,7 @@ async fn v5_transaction_with_too_low_expiry_height() {
transaction: Arc::new(transaction.clone()),
known_utxos: Arc::new(known_utxos),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1187,7 +1184,7 @@ async fn v5_transaction_with_exceeding_expiry_height() {
transaction: Arc::new(transaction.clone()),
known_utxos: Arc::new(known_utxos),
height: block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1241,7 +1238,7 @@ async fn v5_coinbase_transaction_is_accepted() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(known_utxos),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1293,7 +1290,7 @@ async fn v5_transaction_with_transparent_transfer_is_rejected_by_the_script() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(known_utxos),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1345,7 +1342,7 @@ async fn v5_transaction_with_conflicting_transparent_spend_is_rejected() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(known_utxos),
height: transaction_block_height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1390,7 +1387,7 @@ fn v4_with_signed_sprout_transfer_is_accepted() {
transaction,
known_utxos: Arc::new(HashMap::new()),
height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1463,7 +1460,7 @@ async fn v4_with_joinsplit_is_rejected_for_modification(
transaction,
known_utxos: Arc::new(HashMap::new()),
height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1499,7 +1496,7 @@ fn v4_with_sapling_spends() {
transaction,
known_utxos: Arc::new(HashMap::new()),
height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1542,7 +1539,7 @@ fn v4_with_duplicate_sapling_spends() {
transaction,
known_utxos: Arc::new(HashMap::new()),
height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1587,7 +1584,7 @@ fn v4_with_sapling_outputs_and_no_spends() {
transaction,
known_utxos: Arc::new(HashMap::new()),
height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1636,7 +1633,7 @@ fn v5_with_sapling_spends() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(HashMap::new()),
height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1680,7 +1677,7 @@ fn v5_with_duplicate_sapling_spends() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(HashMap::new()),
height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;
@ -1743,7 +1740,7 @@ fn v5_with_duplicate_orchard_action() {
transaction: Arc::new(transaction),
known_utxos: Arc::new(HashMap::new()),
height,
time: chrono::MAX_DATETIME,
time: DateTime::<Utc>::MAX_UTC,
})
.await;

View File

@ -1,6 +1,6 @@
//! Randomised property tests for transaction verification.
use std::{collections::HashMap, convert::TryInto, sync::Arc};
use std::{collections::HashMap, sync::Arc};
use chrono::{DateTime, Duration, Utc};
use proptest::{collection::vec, prelude::*};
@ -14,9 +14,10 @@ use zebra_chain::{
transparent,
};
use super::mock_transparent_transfer;
use crate::{error::TransactionError, transaction};
use super::mock_transparent_transfer;
/// The maximum number of transparent inputs to include in a mock transaction.
const MAX_TRANSPARENT_INPUTS: usize = 10;
@ -204,7 +205,7 @@ proptest! {
(first_datetime, second_datetime)
} else if first_datetime > second_datetime {
(second_datetime, first_datetime)
} else if first_datetime == chrono::MAX_DATETIME {
} else if first_datetime == DateTime::<Utc>::MAX_UTC {
(first_datetime - Duration::nanoseconds(1), first_datetime)
} else {
(first_datetime, first_datetime + Duration::nanoseconds(1))

View File

@ -16,7 +16,7 @@ proptest-impl = ["proptest", "proptest-derive", "zebra-chain/proptest-impl"]
bitflags = "1.3.2"
byteorder = "1.4.3"
bytes = "1.2.1"
chrono = "0.4.19"
chrono = { version = "0.4.20", default-features = false, features = ["clock", "std"] }
hex = "0.4.3"
humantime-serde = "1.1.1"
indexmap = { version = "1.9.1", features = ["serde"] }

View File

@ -2,7 +2,6 @@
use std::{
cmp::min,
convert::TryInto,
fmt,
io::{Cursor, Read, Write},
};
@ -724,15 +723,18 @@ impl Codec {
}
}
// XXX replace these interior unit tests with exterior integration tests + proptest
// TODO:
// - move these unit tests to a separate file
// - add exterior integration tests + proptest
#[cfg(test)]
mod tests {
use super::*;
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use chrono::{MAX_DATETIME, MIN_DATETIME};
use chrono::DateTime;
use futures::prelude::*;
use lazy_static::lazy_static;
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use super::*;
lazy_static! {
static ref VERSION_TEST_VECTOR: Message = {
@ -808,8 +810,10 @@ mod tests {
deserialize_version_with_time(1620777600).expect("recent time is valid");
deserialize_version_with_time(0).expect("zero time is valid");
deserialize_version_with_time(MIN_DATETIME.timestamp()).expect("min time is valid");
deserialize_version_with_time(MAX_DATETIME.timestamp()).expect("max time is valid");
deserialize_version_with_time(DateTime::<Utc>::MIN_UTC.timestamp())
.expect("min time is valid");
deserialize_version_with_time(DateTime::<Utc>::MAX_UTC.timestamp())
.expect("max time is valid");
}
/// Deserialize a `Version` message containing `time`, and return the result.

View File

@ -12,12 +12,7 @@ default = []
proptest-impl = ["proptest", "proptest-derive", "zebra-chain/proptest-impl", "zebra-state/proptest-impl"]
[dependencies]
zebra-chain = { path = "../zebra-chain" }
zebra-network = { path = "../zebra-network" }
zebra-node-services = { path = "../zebra-node-services" }
zebra-state = { path = "../zebra-state" }
chrono = "0.4.19"
chrono = { version = "0.4.20", default-features = false, features = ["clock", "std"] }
futures = "0.3.21"
# lightwalletd sends JSON-RPC requests over HTTP 1.1
@ -42,6 +37,11 @@ serde = { version = "1.0.142", features = ["serde_derive"] }
proptest = { version = "0.10.1", optional = true }
proptest-derive = { version = "0.3.0", optional = true }
zebra-chain = { path = "../zebra-chain" }
zebra-network = { path = "../zebra-network" }
zebra-node-services = { path = "../zebra-node-services" }
zebra-state = { path = "../zebra-state" }
[dev-dependencies]
insta = { version = "1.17.1", features = ["redactions"] }
proptest = "0.10.1"

View File

@ -10,7 +10,7 @@ proptest-impl = ["proptest", "proptest-derive", "zebra-test", "zebra-chain/propt
[dependencies]
bincode = "1.3.3"
chrono = "0.4.19"
chrono = { version = "0.4.20", default-features = false, features = ["clock", "std"] }
dirs = "4.0.0"
displaydoc = "0.2.3"
futures = "0.3.21"

View File

@ -77,7 +77,7 @@ zebra-state = { path = "../zebra-state" }
abscissa_core = "0.5"
gumdrop = "0.7"
chrono = "0.4.19"
chrono = { version = "0.4.20", default-features = false, features = ["clock", "std"] }
humantime = "2.1.0"
humantime-serde = "1.1.1"
indexmap = "1.9.1"