ledger_state.rs (1093B)
1 use std::{ 2 collections::BTreeMap, 3 time::{SystemTime, UNIX_EPOCH}, 4 }; 5 6 use super::{ 7 ActiveBlindedTransaction, Amount, BlindedReveal, BlindedTransaction, Block, BurnTicket, 8 LaunchProfile, OutPoint, Transaction, TxOutput, 9 }; 10 11 #[derive(Clone, Debug)] 12 pub struct Ledger { 13 pub(super) chain: Vec<Block>, 14 pub(super) genesis_allocations: BTreeMap<String, Amount>, 15 pub(super) utxos: BTreeMap<OutPoint, TxOutput>, 16 pub(super) tickets: Vec<BurnTicket>, 17 pub(super) pending: Vec<Transaction>, 18 pub(super) orphans: Vec<Transaction>, 19 pub(super) pending_blinded: Vec<BlindedTransaction>, 20 pub(super) pending_reveals: Vec<BlindedReveal>, 21 pub(super) active_blinded: BTreeMap<String, ActiveBlindedTransaction>, 22 pub(super) mine_reward: Amount, 23 pub(super) initial_vdf_rounds: u64, 24 pub(super) vdf_rounds: u64, 25 pub(super) launch_profile: LaunchProfile, 26 } 27 28 pub(super) fn unix_now_ms() -> u64 { 29 SystemTime::now() 30 .duration_since(UNIX_EPOCH) 31 .unwrap_or_default() 32 .as_millis() 33 .try_into() 34 .unwrap_or(u64::MAX) 35 }