From e2b5f2dd9cbdfe93289398dd5809b8df5a91058d Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2020 18:31:20 +0000 Subject: [PATCH] RPC: getConfirmedSignaturesForAddress2 only returns confirmed signatures (#11615) (#11617) * 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 1c51bce9dc49be..c64e1c09b7d996 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; } } @@ -6344,7 +6348,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, ]); @@ -6370,8 +6374,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