mirror of
https://github.com/hinto-janai/cuprate.git
synced 2025-01-22 10:34:37 +00:00
Boog900
b57ee2f4cf
Some checks failed
Audit / audit (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / typo (push) Has been cancelled
CI / ci (macos-latest, stable, bash) (push) Has been cancelled
CI / ci (ubuntu-latest, stable, bash) (push) Has been cancelled
CI / ci (windows-latest, stable-x86_64-pc-windows-gnu, msys2 {0}) (push) Has been cancelled
Deny / audit (push) Has been cancelled
Doc / build (push) Has been cancelled
Doc / deploy (push) Has been cancelled
* init dandelion integration * add dandelion start function * finish incoming tx handler * Add tx blob hash table * Add missing txpool requests * handle duplicate stem txs * check txpool on incoming block * add request to remove tx in new blocks from the pool * tell the txpool about incoming blocks * fix merge * typos * remove blockchain height from txpool * add function to start the pool * add cross network address * pre-review changes * fix CI * review fixes * review fixes * abort on DB error * fix clippy
53 lines
1.3 KiB
Rust
53 lines
1.3 KiB
Rust
//! Global `static`s used throughout `cuprated`.
|
|
|
|
use std::{
|
|
sync::LazyLock,
|
|
time::{SystemTime, UNIX_EPOCH},
|
|
};
|
|
|
|
/// Define all the `static`s that should be always be initialized early on.
|
|
///
|
|
/// This wraps all `static`s inside a `LazyLock` and generates
|
|
/// a [`init_lazylock_statics`] function that must/should be
|
|
/// used by `main()` early on.
|
|
macro_rules! define_init_lazylock_statics {
|
|
($(
|
|
$( #[$attr:meta] )*
|
|
$name:ident: $t:ty = $init_fn:expr;
|
|
)*) => {
|
|
/// Initialize global static `LazyLock` data.
|
|
pub fn init_lazylock_statics() {
|
|
$(
|
|
LazyLock::force(&$name);
|
|
)*
|
|
}
|
|
|
|
$(
|
|
$(#[$attr])*
|
|
pub static $name: LazyLock<$t> = LazyLock::new(|| $init_fn);
|
|
)*
|
|
};
|
|
}
|
|
|
|
define_init_lazylock_statics! {
|
|
/// The start time of `cuprated`.
|
|
START_INSTANT: SystemTime = SystemTime::now();
|
|
|
|
/// Start time of `cuprated` as a UNIX timestamp.
|
|
START_INSTANT_UNIX: u64 = START_INSTANT
|
|
.duration_since(UNIX_EPOCH)
|
|
.expect("Failed to set `cuprated` startup time.")
|
|
.as_secs();
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod test {
|
|
use super::*;
|
|
|
|
/// Sanity check for startup UNIX time.
|
|
#[test]
|
|
fn start_instant_unix() {
|
|
// Fri Sep 27 01:07:13 AM UTC 2024
|
|
assert!(*START_INSTANT_UNIX > 1727399233);
|
|
}
|
|
}
|