From 4f7bfbdbe9022a87c46c81b0f837fc898f045c64 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2020 18:19:54 +0000 Subject: [PATCH] RPC: getConfirmedSignaturesForAddress2 only returns confirmed signatures (#11615) (#11618) * Add failing test case * Limit to only rooted slots (cherry picked from commit 99fb36fe452977912e67710582f87d0efdbe9d0f) Co-authored-by: Tyera Eulberg --- ledger/src/blockstore.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ledger/src/blockstore.rs b/ledger/src/blockstore.rs index 42c770b8e83403..a605678d4195ea 100644 --- a/ledger/src/blockstore.rs +++ b/ledger/src/blockstore.rs @@ -2047,7 +2047,9 @@ impl Blockstore { && key_address == address && slot >= first_available_block { - address_signatures.push((slot, signature)); + if self.is_root(slot) { + address_signatures.push((slot, signature)); + } continue; } } @@ -2078,7 +2080,9 @@ impl Blockstore { && key_address == address && slot >= first_available_block { - address_signatures.push((slot, signature)); + if self.is_root(slot) { + address_signatures.push((slot, signature)); + } continue; } } @@ -6337,7 +6341,7 @@ pub mod tests { let address0 = Pubkey::new_rand(); let address1 = Pubkey::new_rand(); - for slot in 2..=7 { + for slot in 2..=8 { let entries = make_slot_entries_with_transaction_addresses(&[ address0, address1, address0, address1, ]); @@ -6363,8 +6367,9 @@ pub mod tests { } } } - blockstore.set_roots(&[1, 2, 3, 4, 5, 6, 7]).unwrap(); - let highest_confirmed_root = 7; + // Leave one slot unrooted to test only returns confirmed signatures + blockstore.set_roots(&[1, 2, 4, 5, 6, 7, 8]).unwrap(); + let highest_confirmed_root = 8; // Fetch all signatures for address 0 at once... let all0 = blockstore