Skip to content

Commit 52f04ab

Browse files
apollo_storage: implement csm query in storage reader (#11284)
* apollo_storage: split get_casm into two functions for separate location and data retrieval * apollo_storage: implement csm query in storage reader
1 parent 13b53f4 commit 52f04ab

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

crates/apollo_storage/src/storage_reader_types.rs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use crate::body::events::EventsReader;
1616
use crate::body::{BodyStorageReader, TransactionIndex};
1717
use crate::class::ClassStorageReader;
1818
use crate::class_manager::ClassManagerStorageReader;
19+
use crate::compiled_class::CasmStorageReader;
1920
use crate::consensus::LastVotedMarker;
2021
use crate::header::{HeaderStorageReader, StorageBlockHeader};
2122
use crate::mmap_file::LocationInFile;
@@ -272,11 +273,17 @@ impl StorageReaderServerHandler<StorageReaderRequest, StorageReaderResponse>
272273
StorageReaderRequest::DeprecatedDeclaredClassesBlock(_class_hash) => {
273274
unimplemented!()
274275
}
275-
StorageReaderRequest::CasmsLocation(_class_hash) => {
276-
unimplemented!()
276+
StorageReaderRequest::CasmsLocation(class_hash) => {
277+
let location =
278+
txn.get_casm_location(&class_hash)?.ok_or(StorageError::NotFound {
279+
resource_type: "CASM location".to_string(),
280+
resource_id: class_hash.to_string(),
281+
})?;
282+
Ok(StorageReaderResponse::CasmsLocation(location))
277283
}
278-
StorageReaderRequest::CasmsFromLocation(_location) => {
279-
unimplemented!()
284+
StorageReaderRequest::CasmsFromLocation(location) => {
285+
let casm = txn.get_casm_from_location(location)?;
286+
Ok(StorageReaderResponse::CasmsFromLocation(casm))
280287
}
281288
StorageReaderRequest::CompiledClassHash(_class_hash, _block_number) => {
282289
unimplemented!()

0 commit comments

Comments
 (0)