Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chrono deprecations warning cleanup #3759

Merged
merged 1 commit into from
Jan 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 26 additions & 5 deletions core/src/core/block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,10 @@ impl Default for BlockHeader {
BlockHeader {
version: HeaderVersion(1),
height: 0,
timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc),
timestamp: DateTime::<Utc>::from_utc(
NaiveDateTime::from_timestamp_opt(0, 0).unwrap(),
Utc,
),
prev_hash: ZERO_HASH,
prev_root: ZERO_HASH,
output_root: ZERO_HASH,
Expand Down Expand Up @@ -288,16 +291,29 @@ fn read_block_header<R: Reader>(reader: &mut R) -> Result<BlockHeader, ser::Erro
let (output_mmr_size, kernel_mmr_size) = ser_multiread!(reader, read_u64, read_u64);
let pow = ProofOfWork::read(reader)?;

if timestamp > chrono::NaiveDate::MAX.and_hms(0, 0, 0).timestamp()
|| timestamp < chrono::NaiveDate::MIN.and_hms(0, 0, 0).timestamp()
if timestamp
> chrono::NaiveDate::MAX
.and_hms_opt(0, 0, 0)
.unwrap()
.timestamp()
|| timestamp
< chrono::NaiveDate::MIN
.and_hms_opt(0, 0, 0)
.unwrap()
.timestamp()
{
return Err(ser::Error::CorruptedData);
}

let ts = NaiveDateTime::from_timestamp_opt(timestamp, 0);
if ts.is_none() {
return Err(ser::Error::CorruptedData);
}

Ok(BlockHeader {
version,
height,
timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(timestamp, 0), Utc),
timestamp: DateTime::<Utc>::from_utc(ts.unwrap(), Utc),
prev_hash,
prev_root,
output_root,
Expand Down Expand Up @@ -645,8 +661,13 @@ impl Block {
let version = consensus::header_version(height);

let now = Utc::now().timestamp();
let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);

let ts = NaiveDateTime::from_timestamp_opt(now, 0);
if ts.is_none() {
return Err(Error::Other("Converting Utc::now() into timestamp".into()));
}

let timestamp = DateTime::<Utc>::from_utc(ts.unwrap(), Utc);
// Now build the block with all the above information.
// Note: We have not validated the block here.
// Caller must validate the block as necessary.
Expand Down
6 changes: 3 additions & 3 deletions core/src/genesis.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ use util::secp::Signature;
pub fn genesis_dev() -> core::Block {
core::Block::with_header(core::BlockHeader {
height: 0,
timestamp: Utc.ymd(1997, 8, 4).and_hms(0, 0, 0),
timestamp: Utc.with_ymd_and_hms(1997, 8, 4, 0, 0, 0).unwrap(),
pow: ProofOfWork {
nonce: 0,
..Default::default()
Expand All @@ -48,7 +48,7 @@ pub fn genesis_dev() -> core::Block {
pub fn genesis_test() -> core::Block {
let gen = core::Block::with_header(core::BlockHeader {
height: 0,
timestamp: Utc.ymd(2018, 12, 28).and_hms(20, 48, 4),
timestamp: Utc.with_ymd_and_hms(2018, 12, 28, 20, 48, 4).unwrap(),
prev_root: Hash::from_hex(
"00000000000000000017ff4903ef366c8f62e3151ba74e41b8332a126542f538",
)
Expand Down Expand Up @@ -161,7 +161,7 @@ pub fn genesis_test() -> core::Block {
pub fn genesis_main() -> core::Block {
let gen = core::Block::with_header(core::BlockHeader {
height: 0,
timestamp: Utc.ymd(2019, 1, 15).and_hms(16, 1, 26),
timestamp: Utc.with_ymd_and_hms(2019, 1, 15, 16, 1, 26).unwrap(),
prev_root: Hash::from_hex(
"0000000000000000002a8bc32f43277fe9c063b9c99ea252b483941dcd06e217",
)
Expand Down
3 changes: 2 additions & 1 deletion core/src/pow.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ pub fn pow_size(
// and if we're back where we started, update the time (changes the hash as
// well)
if bh.pow.nonce == start_nonce {
bh.timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc);
bh.timestamp =
DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp_opt(0, 0).unwrap(), Utc);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion p2p/src/peers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ impl Peers {

// Delete defunct peers from storage
let _ = self.store.delete_peers(|peer| {
let diff = now - Utc.timestamp(peer.last_connected, 0);
let diff = now - Utc.timestamp_opt(peer.last_connected, 0).unwrap();

let should_remove = peer.flags == State::Defunct
&& diff > Duration::seconds(global::PEER_EXPIRATION_REMOVE_TIME);
Expand Down
5 changes: 3 additions & 2 deletions servers/src/grin/seed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,9 @@ pub fn connect_and_monitor(
// check seeds first
connect_to_seeds_and_peers(peers.clone(), tx.clone(), seed_list, config);

let mut prev = chrono::Date::<Utc>::MIN_UTC.and_hms(0, 0, 0);
let mut prev_expire_check = chrono::Date::<Utc>::MIN_UTC.and_hms(0, 0, 0);
let mut prev = DateTime::<Utc>::MIN_UTC;
let mut prev_expire_check = DateTime::<Utc>::MIN_UTC;

let mut prev_ping = Utc::now();
let mut start_attempt = 0;
let mut connecting_history: HashMap<PeerAddr, DateTime<Utc>> = HashMap::new();
Expand Down
6 changes: 5 additions & 1 deletion servers/src/mining/mine_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,11 @@ fn build_block(

b.header.pow.nonce = thread_rng().gen();
b.header.pow.secondary_scaling = difficulty.secondary_scaling;
b.header.timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now_sec, 0), Utc);
let ts = NaiveDateTime::from_timestamp_opt(now_sec, 0);
if ts.is_none() {
return Err(Error::General("Utc::now into timestamp".into()));
}
b.header.timestamp = DateTime::<Utc>::from_utc(ts.unwrap(), Utc);

debug!(
"Built new block with {} inputs and {} outputs, block difficulty: {}, cumulative difficulty {}",
Expand Down
8 changes: 5 additions & 3 deletions src/bin/tui/mining.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,14 @@ impl StratumWorkerColumn {

impl TableViewItem<StratumWorkerColumn> for WorkerStats {
fn to_column(&self, column: StratumWorkerColumn) -> String {
let naive_datetime = NaiveDateTime::from_timestamp(
let naive_datetime = NaiveDateTime::from_timestamp_opt(
self.last_seen
.duration_since(time::UNIX_EPOCH)
.unwrap()
.as_secs() as i64,
0,
);
)
.unwrap_or_default();
let datetime: DateTime<Utc> = DateTime::from_utc(naive_datetime, Utc);

match column {
Expand Down Expand Up @@ -126,7 +127,8 @@ impl DiffColumn {

impl TableViewItem<DiffColumn> for DiffBlock {
fn to_column(&self, column: DiffColumn) -> String {
let naive_datetime = NaiveDateTime::from_timestamp(self.time as i64, 0);
let naive_datetime =
NaiveDateTime::from_timestamp_opt(self.time as i64, 0).unwrap_or_default();
let datetime: DateTime<Utc> = DateTime::from_utc(naive_datetime, Utc);

match column {
Expand Down