Skip to content
This repository was archived by the owner on Feb 21, 2024. It is now read-only.

Commit d769626

Browse files
authored
Merge pull request paritytech#496 from subspace/prune-receipts-relative-to-best-execution-chain-number-refactor
Minor refactoring for better readability
2 parents 106fd2f + f6cc7a0 commit d769626

File tree

1 file changed

+11
-17
lines changed

1 file changed

+11
-17
lines changed

cumulus/client/cirrus-executor/src/aux_schema.rs

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use codec::{Decode, Encode};
44
use sc_client_api::backend::AuxStore;
55
use sp_blockchain::{Error as ClientError, Result as ClientResult};
66
use sp_executor::ExecutionReceipt;
7-
use sp_runtime::traits::{Block as BlockT, NumberFor, One, SaturatedConversion, Saturating};
7+
use sp_runtime::traits::{Block as BlockT, NumberFor, One, SaturatedConversion};
88
use subspace_core_primitives::BlockNumber;
99

1010
const EXECUTION_RECEIPT_KEY: &[u8] = b"execution_receipt";
@@ -50,18 +50,17 @@ pub(super) fn write_execution_receipt<Backend: AuxStore, Block: BlockT, PBlock:
5050

5151
let mut new_first_saved_receipt = first_saved_receipt;
5252

53-
let keys_to_delete = if best_execution_chain_number.saturating_sub(first_saved_receipt) >=
54-
PRUNING_DEPTH.into()
55-
{
56-
// `first_saved_receipt` starts from 1 instead of 0, hence `PRUNING_DEPTH` - 1.
57-
new_first_saved_receipt =
58-
best_execution_chain_number.saturating_sub((PRUNING_DEPTH - 1).saturated_into());
53+
let mut keys_to_delete = vec![];
5954

60-
let mut keys_to_delete = vec![];
61-
let mut to_delete_start = first_saved_receipt;
62-
while to_delete_start < new_first_saved_receipt {
55+
if let Some(delete_receipts_to) = best_execution_chain_number
56+
.saturated_into::<BlockNumber>()
57+
.checked_sub(PRUNING_DEPTH)
58+
{
59+
new_first_saved_receipt = Into::<NumberFor<Block>>::into(delete_receipts_to) + One::one();
60+
for receipt_to_delete in first_saved_receipt.saturated_into()..=delete_receipts_to {
6361
let delete_block_number_key =
64-
(EXECUTION_RECEIPT_BLOCK_NUMBER, to_delete_start).encode();
62+
(EXECUTION_RECEIPT_BLOCK_NUMBER, receipt_to_delete).encode();
63+
6564
if let Some(hashes_to_delete) =
6665
load_decode::<_, Vec<Block::Hash>>(backend, delete_block_number_key.as_slice())?
6766
{
@@ -70,13 +69,8 @@ pub(super) fn write_execution_receipt<Backend: AuxStore, Block: BlockT, PBlock:
7069
);
7170
keys_to_delete.push(delete_block_number_key);
7271
}
73-
to_delete_start = to_delete_start.saturating_add(One::one());
7472
}
75-
76-
keys_to_delete
77-
} else {
78-
vec![]
79-
};
73+
}
8074

8175
backend.insert_aux(
8276
&[

0 commit comments

Comments
 (0)