Skip to content

Commit

Permalink
RPC: getConfirmedSignaturesForAddress2 only returns confirmed signatu…
Browse files Browse the repository at this point in the history
…res (#11615) (#11618)

* Add failing test case

* Limit to only rooted slots

(cherry picked from commit 99fb36f)

Co-authored-by: Tyera Eulberg <[email protected]>
  • Loading branch information
mergify[bot] and CriesofCarrots authored Aug 13, 2020
1 parent 011e325 commit 4f7bfbd
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions ledger/src/blockstore.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down Expand Up @@ -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;
}
}
Expand Down Expand Up @@ -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,
]);
Expand All @@ -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
Expand Down

0 comments on commit 4f7bfbd

Please sign in to comment.