@ -11,7 +11,7 @@ fn leader_schedule(epoch_height: u64, bank: &Bank) -> LeaderSchedule {
|
||||
seed[0..8].copy_from_slice(&epoch_height.to_le_bytes());
|
||||
let mut stakes: Vec<_> = stakes.into_iter().collect();
|
||||
sort_stakes(&mut stakes);
|
||||
LeaderSchedule::new(&stakes, seed, bank.slots_per_epoch())
|
||||
LeaderSchedule::new(&stakes, seed, bank.get_slots_in_epoch(epoch_height))
|
||||
}
|
||||
|
||||
fn sort_stakes(stakes: &mut Vec<(Pubkey, u64)>) {
|
||||
|
@ -176,11 +176,7 @@ mod tests {
|
||||
fn test_epoch_stakes_and_lockouts() {
|
||||
let validator = Keypair::new();
|
||||
|
||||
let (mut genesis_block, mint_keypair) = GenesisBlock::new(500);
|
||||
|
||||
// makes the bank generate epoch_vote_accounts right on epoch boundaries
|
||||
// handy for tests
|
||||
genesis_block.stakers_slot_offset = 0;
|
||||
let (genesis_block, mint_keypair) = GenesisBlock::new(500);
|
||||
|
||||
let bank = Bank::new(&genesis_block);
|
||||
let bank_voter = Keypair::new();
|
||||
@ -195,11 +191,17 @@ mod tests {
|
||||
// should show up in the active set
|
||||
voting_keypair_tests::new_vote_account_with_vote(&mint_keypair, &bank_voter, &bank, 499, 0);
|
||||
|
||||
// Build a bank in the next epoch, it will generate an epoch_vote_accounts() for epoch 1
|
||||
let epoch = 1;
|
||||
let epoch_slot = epoch * bank.slots_per_epoch();
|
||||
// soonest slot that could be a new epoch is 1
|
||||
let mut slot = 1;
|
||||
let mut epoch = bank.get_stakers_epoch(0);
|
||||
// find the first slot in the next stakers_epoch
|
||||
while bank.get_stakers_epoch(slot) == epoch {
|
||||
slot += 1;
|
||||
}
|
||||
|
||||
let bank = new_from_parent(&Arc::new(bank), epoch_slot);
|
||||
epoch = bank.get_stakers_epoch(slot);
|
||||
|
||||
let bank = new_from_parent(&Arc::new(bank), slot);
|
||||
|
||||
let result: Vec<_> = epoch_stakes_and_lockouts(&bank, 0);
|
||||
assert_eq!(result, vec![(1, None)]);
|
||||
|
Reference in New Issue
Block a user