From 9848de6cdafa8663f3864edfe18387716663c059 Mon Sep 17 00:00:00 2001 From: Greg Fitzgerald Date: Wed, 20 Feb 2019 07:27:39 -0700 Subject: [PATCH] Remove special case in Bank::deposit() And use it to process the genesis block. --- runtime/src/bank.rs | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index c784c38549..7c2cc8ff8b 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -123,18 +123,11 @@ impl Bank { assert!(genesis_block.tokens >= genesis_block.bootstrap_leader_tokens); assert!(genesis_block.bootstrap_leader_tokens >= 2); - let mut mint_account = Account::default(); - mint_account.tokens = genesis_block.tokens - genesis_block.bootstrap_leader_tokens; - self.accounts - .store_slow(true, &genesis_block.mint_id, &mint_account); + let mint_tokens = genesis_block.tokens - genesis_block.bootstrap_leader_tokens; + self.deposit(&genesis_block.mint_id, mint_tokens); - let mut bootstrap_leader_account = Account::default(); - bootstrap_leader_account.tokens = genesis_block.bootstrap_leader_tokens - 1; - self.accounts.store_slow( - true, - &genesis_block.bootstrap_leader_id, - &bootstrap_leader_account, - ); + let bootstrap_leader_tokens = genesis_block.bootstrap_leader_tokens - 1; + self.deposit(&genesis_block.bootstrap_leader_id, bootstrap_leader_tokens); // Construct a vote account for the bootstrap_leader such that the leader_scheduler // will be forced to select it as the leader for height 0 @@ -526,11 +519,10 @@ impl Bank { parents } - pub fn deposit(&self, pubkey: &Pubkey, fee: u64) { - if let Some(mut account) = self.get_account(pubkey) { - account.tokens += fee; - self.accounts.store_slow(false, pubkey, &account); - } + pub fn deposit(&self, pubkey: &Pubkey, tokens: u64) { + let mut account = self.get_account(pubkey).unwrap_or_default(); + account.tokens += tokens; + self.accounts.store_slow(true, pubkey, &account); } pub fn get_account(&self, pubkey: &Pubkey) -> Option {