create_genesis_block() now returns a struct (#4403)

This commit is contained in:
Michael Vines
2019-05-22 20:39:00 -07:00
committed by GitHub
parent 7ada8510c4
commit 2ed77b040a
27 changed files with 308 additions and 132 deletions

View File

@ -999,7 +999,9 @@ impl Drop for Bank {
mod tests {
use super::*;
use crate::epoch_schedule::MINIMUM_SLOT_LENGTH;
use crate::genesis_utils::{create_genesis_block_with_leader, BOOTSTRAP_LEADER_LAMPORTS};
use crate::genesis_utils::{
create_genesis_block_with_leader, GenesisBlockInfo, BOOTSTRAP_LEADER_LAMPORTS,
};
use solana_sdk::genesis_block::create_genesis_block;
use solana_sdk::hash;
use solana_sdk::instruction::InstructionError;
@ -1014,7 +1016,12 @@ mod tests {
let dummy_leader_id = Pubkey::new_rand();
let dummy_leader_lamports = BOOTSTRAP_LEADER_LAMPORTS;
let mint_lamports = 10_000;
let (genesis_block, mint_keypair, voting_keypair) = create_genesis_block_with_leader(
let GenesisBlockInfo {
genesis_block,
mint_keypair,
voting_keypair,
..
} = create_genesis_block_with_leader(
mint_lamports,
&dummy_leader_id,
dummy_leader_lamports,
@ -1230,8 +1237,11 @@ mod tests {
#[test]
fn test_bank_tx_fee() {
let leader = Pubkey::new_rand();
let (genesis_block, mint_keypair, _voting_keypair) =
create_genesis_block_with_leader(100, &leader, 3);
let GenesisBlockInfo {
genesis_block,
mint_keypair,
..
} = create_genesis_block_with_leader(100, &leader, 3);
let mut bank = Bank::new(&genesis_block);
bank.fee_calculator.lamports_per_signature = 3;
@ -1271,8 +1281,11 @@ mod tests {
#[test]
fn test_filter_program_errors_and_collect_fee() {
let leader = Pubkey::new_rand();
let (genesis_block, mint_keypair, _voting_keypair) =
create_genesis_block_with_leader(100, &leader, 3);
let GenesisBlockInfo {
genesis_block,
mint_keypair,
..
} = create_genesis_block_with_leader(100, &leader, 3);
let mut bank = Bank::new(&genesis_block);
let key = Keypair::new();
@ -1584,7 +1597,8 @@ mod tests {
fn test_bank_epoch_vote_accounts() {
let leader_id = Pubkey::new_rand();
let leader_lamports = 3;
let mut genesis_block = create_genesis_block_with_leader(5, &leader_id, leader_lamports).0;
let mut genesis_block =
create_genesis_block_with_leader(5, &leader_id, leader_lamports).genesis_block;
// set this up weird, forces future generation, odd mod(), etc.
// this says: "vote_accounts for epoch X should be generated at slot index 3 in epoch X-2...
@ -1820,8 +1834,11 @@ mod tests {
#[test]
fn test_bank_vote_accounts() {
let (genesis_block, mint_keypair, _voting_keypair) =
create_genesis_block_with_leader(500, &Pubkey::new_rand(), 1);
let GenesisBlockInfo {
genesis_block,
mint_keypair,
..
} = create_genesis_block_with_leader(500, &Pubkey::new_rand(), 1);
let bank = Arc::new(Bank::new(&genesis_block));
let vote_accounts = bank.vote_accounts();

View File

@ -9,11 +9,17 @@ use solana_vote_api::vote_state;
// The default stake placed with the bootstrap leader
pub const BOOTSTRAP_LEADER_LAMPORTS: u64 = 42;
pub struct GenesisBlockInfo {
pub genesis_block: GenesisBlock,
pub mint_keypair: Keypair,
pub voting_keypair: Keypair,
}
pub fn create_genesis_block_with_leader(
mint_lamports: u64,
bootstrap_leader_id: &Pubkey,
bootstrap_leader_stake_lamports: u64,
) -> (GenesisBlock, Keypair, Keypair) {
) -> GenesisBlockInfo {
let mint_keypair = Keypair::new();
let voting_keypair = Keypair::new();
let staking_keypair = Keypair::new();
@ -56,5 +62,9 @@ pub fn create_genesis_block_with_leader(
&[solana_vote_program!(), solana_stake_program!()],
);
(genesis_block, mint_keypair, voting_keypair)
GenesisBlockInfo {
genesis_block,
mint_keypair,
voting_keypair,
}
}

View File

@ -53,7 +53,7 @@ impl<'a, 'b, I: Borrow<Transaction>> Drop for LockedAccountsResults<'a, 'b, I> {
#[cfg(test)]
mod tests {
use super::*;
use crate::genesis_utils::create_genesis_block_with_leader;
use crate::genesis_utils::{create_genesis_block_with_leader, GenesisBlockInfo};
use solana_sdk::pubkey::Pubkey;
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::system_transaction;
@ -108,8 +108,11 @@ mod tests {
fn setup() -> (Bank, Vec<Transaction>) {
let dummy_leader_id = Pubkey::new_rand();
let (genesis_block, mint_keypair, _) =
create_genesis_block_with_leader(500, &dummy_leader_id, 100);
let GenesisBlockInfo {
genesis_block,
mint_keypair,
..
} = create_genesis_block_with_leader(500, &dummy_leader_id, 100);
let bank = Bank::new(&genesis_block);
let pubkey = Pubkey::new_rand();