Skip to content

Commit be77f4d

Browse files
apollo_storage: implement starknet version query in storage reader (#11210)
1 parent 8fcae72 commit be77f4d

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

crates/apollo_storage/src/header.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,12 @@ pub trait HeaderStorageReader {
133133
block_number: BlockNumber,
134134
) -> StorageResult<Option<StarknetVersion>>;
135135

136+
/// Returns the Starknet version for a given block number using direct key-value lookup.
137+
fn get_starknet_version_by_key(
138+
&self,
139+
block_number: BlockNumber,
140+
) -> StorageResult<Option<StarknetVersion>>;
141+
136142
/// Returns the signature of the block with the given number.
137143
fn get_block_signature(
138144
&self,
@@ -251,6 +257,15 @@ impl<Mode: TransactionKind> HeaderStorageReader for StorageTxn<'_, Mode> {
251257
}
252258
}
253259

260+
fn get_starknet_version_by_key(
261+
&self,
262+
block_number: BlockNumber,
263+
) -> StorageResult<Option<StarknetVersion>> {
264+
let starknet_version_table = self.open_table(&self.tables.starknet_version)?;
265+
let starknet_version = starknet_version_table.get(&self.txn, &block_number)?;
266+
Ok(starknet_version)
267+
}
268+
254269
fn get_block_signature(
255270
&self,
256271
block_number: BlockNumber,

crates/apollo_storage/src/storage_reader_types.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,14 @@ impl StorageReaderServerHandler<StorageReaderRequest, StorageReaderResponse>
314314
StorageReaderRequest::FileOffsets(_offset_kind) => {
315315
unimplemented!()
316316
}
317-
StorageReaderRequest::StarknetVersion(_block_number) => {
318-
unimplemented!()
317+
StorageReaderRequest::StarknetVersion(block_number) => {
318+
let starknet_version = txn.get_starknet_version_by_key(block_number)?.ok_or(
319+
StorageError::NotFound {
320+
resource_type: "Starknet version".to_string(),
321+
resource_id: format!("block: {}", block_number),
322+
},
323+
)?;
324+
Ok(StorageReaderResponse::StarknetVersion(starknet_version))
319325
}
320326
StorageReaderRequest::StateStorageVersion => {
321327
let version = txn.get_state_version()?.ok_or(StorageError::NotFound {

0 commit comments

Comments
 (0)