Skip to content

Commit 69872cf

Browse files
committed
feat: fix block-to-reward-cycle lookup logic off-by-one error
1 parent 5853580 commit 69872cf

File tree

3 files changed

+10
-9
lines changed
  • stackslib/src/chainstate/nakamoto/coordinator
  • testnet/stacks-node/src/tests/signer

3 files changed

+10
-9
lines changed

stackslib/src/chainstate/nakamoto/coordinator/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ pub fn load_nakamoto_reward_set<U: RewardSetProvider>(
546546
"burnchain_height" => %anchor_block_sn.block_height);
547547

548548
let reward_set = provider.get_reward_set_nakamoto(
549-
prepare_end_height.saturating_sub(1),
549+
prepare_end_height,
550550
chain_state,
551551
burnchain,
552552
sort_db,

testnet/stacks-node/src/tests/signer/mod.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ use crate::tests::nakamoto_integrations::{
6464
naka_neon_integration_conf, next_block_and_mine_commit, POX_4_DEFAULT_STACKER_BALANCE,
6565
};
6666
use crate::tests::neon_integrations::{
67-
next_block_and_wait, run_until_burnchain_height, test_observer, wait_for_runloop,
67+
get_chain_info, next_block_and_wait, run_until_burnchain_height, test_observer,
68+
wait_for_runloop,
6869
};
6970
use crate::tests::to_addr;
7071
use crate::{BitcoinRegtestController, BurnchainController};
@@ -473,15 +474,15 @@ impl<S: Signer<T> + Send + 'static, T: SignerEventTrait + 'static> SignerTest<Sp
473474
}
474475

475476
fn get_current_reward_cycle(&self) -> u64 {
476-
let block_height = self
477+
let block_height = get_chain_info(&self.running_nodes.conf).burn_block_height;
478+
let rc = self
477479
.running_nodes
478-
.btc_regtest_controller
479-
.get_headers_height();
480-
self.running_nodes
481480
.btc_regtest_controller
482481
.get_burnchain()
483482
.block_height_to_reward_cycle(block_height)
484-
.unwrap()
483+
.unwrap();
484+
info!("Get current reward cycle: block_height = {block_height}, rc = {rc}");
485+
rc
485486
}
486487

487488
fn get_signer_index(&self, reward_cycle: u64) -> SignerSlotID {

testnet/stacks-node/src/tests/signer/v0.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2136,8 +2136,8 @@ fn signer_set_rollover() {
21362136
let current_signers = signer_test.get_reward_set_signers(new_reward_cycle);
21372137
assert_eq!(current_signers.len(), new_num_signers as usize);
21382138
for signer in current_signers.iter() {
2139-
assert!(signer_test_public_keys.contains(&signer.signing_key.to_vec()));
2140-
assert!(!new_signer_public_keys.contains(&signer.signing_key.to_vec()));
2139+
assert!(!signer_test_public_keys.contains(&signer.signing_key.to_vec()));
2140+
assert!(new_signer_public_keys.contains(&signer.signing_key.to_vec()));
21412141
}
21422142

21432143
info!("---- Mining a block to verify new signer set -----");

0 commit comments

Comments
 (0)