From 30bccc0c68728149e8b159b20a399a5236e38238 Mon Sep 17 00:00:00 2001 From: Pankaj Garg Date: Thu, 28 Feb 2019 15:18:08 -0800 Subject: [PATCH] Fix slot index used while calculating leader schedule - slot_leader_at() was using absolute slot number instead of index in the epoch --- src/leader_schedule_utils.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/leader_schedule_utils.rs b/src/leader_schedule_utils.rs index 1731f8b47e..354d0f6328 100644 --- a/src/leader_schedule_utils.rs +++ b/src/leader_schedule_utils.rs @@ -36,8 +36,9 @@ pub fn slot_leader(bank: &Bank) -> Pubkey { /// Return the leader for the given slot. pub fn slot_leader_at(slot: u64, bank: &Bank) -> Pubkey { - let epoch = slot / bank.slots_per_epoch(); - slot_leader_by(bank, |_, _, _| (slot, epoch)) + slot_leader_by(bank, |_, _, _| { + (slot % bank.slots_per_epoch(), slot / bank.slots_per_epoch()) + }) } /// Return the epoch height and slot index of the slot before the current slot.