Skip to content

Commit 92228be

Browse files
committed
Refactor block length calculation to return a Result type and handle errors appropriately
1 parent a2dedf9 commit 92228be

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

node/src/da_block_import.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use da_runtime::{
1313
apis::{DataAvailApi, ExtensionBuilder},
1414
Header as DaHeader,
1515
};
16-
use frame_system::limits::BlockLength;
16+
use frame_system::limits::{BlockLength, BlockLengthError};
1717

1818
use sc_consensus::{
1919
block_import::{BlockCheckParams, BlockImport as BlockImportT, BlockImportParams},
@@ -82,7 +82,7 @@ where
8282
&self,
8383
block: &BlockImportParams<B>,
8484
) -> Result<(), ConsensusError> {
85-
let block_len = extension_block_len(&block.header.extension);
85+
let block_len = extension_block_len(&block.header.extension)?;
8686
let extrinsics = || block.body.clone().unwrap_or_default();
8787
let block_number: u32 = block.header.number;
8888
let parent_hash = <B as BlockT>::Hash::from(block.header.parent_hash);
@@ -168,14 +168,14 @@ impl<B, C, I: Clone> Clone for BlockImport<B, C, I> {
168168
}
169169

170170
/// Calculate block length from `extension`.
171-
fn extension_block_len(extension: &HeaderExtension) -> BlockLength {
171+
fn extension_block_len(extension: &HeaderExtension) -> Result<BlockLength, ConsensusError> {
172172
BlockLength::with_normal_ratio(
173173
BlockLengthRows(extension.rows() as u32),
174174
BlockLengthColumns(extension.cols() as u32),
175175
BLOCK_CHUNK_SIZE,
176176
sp_runtime::Perbill::from_percent(90),
177177
)
178-
.expect("Valid BlockLength at genesis .qed")
178+
.map_err(block_contains_invalid_block_length)
179179
}
180180

181181
fn extension_mismatch(imported: &HeaderExtension, generated: &HeaderExtension) -> ConsensusError {
@@ -198,3 +198,8 @@ fn block_doesnt_contain_post_inherent() -> ConsensusError {
198198
let msg = "Block does not contain post inherent".to_string();
199199
ConsensusError::ClientImport(msg)
200200
}
201+
202+
fn block_contains_invalid_block_length(err: BlockLengthError) -> ConsensusError {
203+
let msg = format!("Block contains invalid block_length: {err:?}");
204+
ConsensusError::ClientImport(msg)
205+
}

0 commit comments

Comments
 (0)