Remove special case in Bank::deposit()
And use it to process the genesis block.
This commit is contained in:
parent
19a3606315
commit
9848de6cda
|
@ -123,18 +123,11 @@ impl Bank {
|
||||||
assert!(genesis_block.tokens >= genesis_block.bootstrap_leader_tokens);
|
assert!(genesis_block.tokens >= genesis_block.bootstrap_leader_tokens);
|
||||||
assert!(genesis_block.bootstrap_leader_tokens >= 2);
|
assert!(genesis_block.bootstrap_leader_tokens >= 2);
|
||||||
|
|
||||||
let mut mint_account = Account::default();
|
let mint_tokens = genesis_block.tokens - genesis_block.bootstrap_leader_tokens;
|
||||||
mint_account.tokens = genesis_block.tokens - genesis_block.bootstrap_leader_tokens;
|
self.deposit(&genesis_block.mint_id, mint_tokens);
|
||||||
self.accounts
|
|
||||||
.store_slow(true, &genesis_block.mint_id, &mint_account);
|
|
||||||
|
|
||||||
let mut bootstrap_leader_account = Account::default();
|
let bootstrap_leader_tokens = genesis_block.bootstrap_leader_tokens - 1;
|
||||||
bootstrap_leader_account.tokens = genesis_block.bootstrap_leader_tokens - 1;
|
self.deposit(&genesis_block.bootstrap_leader_id, bootstrap_leader_tokens);
|
||||||
self.accounts.store_slow(
|
|
||||||
true,
|
|
||||||
&genesis_block.bootstrap_leader_id,
|
|
||||||
&bootstrap_leader_account,
|
|
||||||
);
|
|
||||||
|
|
||||||
// Construct a vote account for the bootstrap_leader such that the leader_scheduler
|
// 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
|
// will be forced to select it as the leader for height 0
|
||||||
|
@ -526,11 +519,10 @@ impl Bank {
|
||||||
parents
|
parents
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn deposit(&self, pubkey: &Pubkey, fee: u64) {
|
pub fn deposit(&self, pubkey: &Pubkey, tokens: u64) {
|
||||||
if let Some(mut account) = self.get_account(pubkey) {
|
let mut account = self.get_account(pubkey).unwrap_or_default();
|
||||||
account.tokens += fee;
|
account.tokens += tokens;
|
||||||
self.accounts.store_slow(false, pubkey, &account);
|
self.accounts.store_slow(true, pubkey, &account);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_account(&self, pubkey: &Pubkey) -> Option<Account> {
|
pub fn get_account(&self, pubkey: &Pubkey) -> Option<Account> {
|
||||||
|
|
Loading…
Reference in New Issue