Skip to content

Commit

Permalink
style(genesis_block): Avoid mutable tx variablk
Browse files Browse the repository at this point in the history
Co-authored-by: Alan Szepieniec <[email protected]>
  • Loading branch information
Sword-Smith and aszepieniec committed Oct 1, 2024
1 parent 3f96135 commit 6b2d21f
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 16 deletions.
28 changes: 14 additions & 14 deletions src/models/blockchain/block/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -324,25 +324,15 @@ impl Block {
}

pub fn genesis_block(network: Network) -> Self {
let mut genesis_mutator_set = MutatorSetAccumulator::default();
let mut ms_update = MutatorSetUpdate::default();

let premine_distribution = Self::premine_distribution(network);
let total_premine_amount = premine_distribution
.iter()
.map(|(_receiving_address, amount)| *amount)
.sum();

let mut genesis_txk = TransactionKernel {
inputs: vec![],
outputs: vec![],
fee: NeptuneCoins::new(0),
timestamp: network.launch_date(),
public_announcements: vec![],
coinbase: Some(total_premine_amount),
mutator_set_hash: MutatorSetAccumulator::default().hash(),
};

let mut ms_update = MutatorSetUpdate::default();
let mut genesis_mutator_set = MutatorSetAccumulator::default();
let mut genesis_tx_outputs = vec![];
for ((receiving_address, _amount), utxo) in premine_distribution
.iter()
.zip(Self::premine_utxos(network))
Expand All @@ -359,9 +349,19 @@ impl Block {
genesis_mutator_set.add(&addition_record);

// Add pre-mine UTXO + commitment to coinbase transaction
genesis_txk.outputs.push(addition_record)
genesis_tx_outputs.push(addition_record)
}

let genesis_txk = TransactionKernel {
inputs: vec![],
outputs: genesis_tx_outputs,
fee: NeptuneCoins::new(0),
timestamp: network.launch_date(),
public_announcements: vec![],
coinbase: Some(total_premine_amount),
mutator_set_hash: MutatorSetAccumulator::default().hash(),
};

let body: BlockBody = BlockBody {
transaction_kernel: genesis_txk,
mutator_set_accumulator: genesis_mutator_set.clone(),
Expand Down
5 changes: 3 additions & 2 deletions src/models/blockchain/transaction/transaction_kernel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,17 @@ pub fn pseudorandom_public_announcement(seed: [u8; 32]) -> PublicAnnouncement {
pub struct TransactionKernel {
pub inputs: Vec<RemovalRecord>,

// `outputs` contains the commitments (addition records) that go into the AOCL
/// `outputs` contains the commitments (addition records) that go into the AOCL
pub outputs: Vec<AdditionRecord>,

pub public_announcements: Vec<PublicAnnouncement>,
pub fee: NeptuneCoins,
pub coinbase: Option<NeptuneCoins>,

// number of milliseconds since unix epoch
/// number of milliseconds since unix epoch
pub timestamp: Timestamp,

/// mutator set hash *prior* to updating mutator set with this transaction.
pub mutator_set_hash: Digest,
}

Expand Down

0 comments on commit 6b2d21f

Please sign in to comment.