iuna

iuna - experimental devnet protocol
git clone https://iuna.jhx.app/git/iuna.git
Log | Files | Refs | README | LICENSE

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 }