@@ -16,6 +16,7 @@ use crate::body::events::EventsReader;
1616use crate :: body:: { BodyStorageReader , TransactionIndex } ;
1717use crate :: class:: ClassStorageReader ;
1818use crate :: class_manager:: ClassManagerStorageReader ;
19+ use crate :: compiled_class:: CasmStorageReader ;
1920use crate :: consensus:: LastVotedMarker ;
2021use crate :: header:: { HeaderStorageReader , StorageBlockHeader } ;
2122use 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