Skip to content

Commit 6f0e601

Browse files
committed
Integrate oracles result handling
commit-id:17bfed5d
1 parent 7a5f8b2 commit 6f0e601

File tree

2 files changed

+11
-2
lines changed
  • crates
    • cheatnet/src/runtime_extensions/forge_runtime_extension
    • runtime/src

2 files changed

+11
-2
lines changed

crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ use cairo_vm::vm::{
3535
};
3636
use conversions::byte_array::ByteArray;
3737
use conversions::felt::{ToShortString, TryInferFormat};
38+
use conversions::serde::NoLengthFeltVec;
3839
use conversions::serde::deserialize::BufferReader;
39-
use conversions::serde::serialize::CairoSerialize;
40+
use conversions::serde::serialize::{CairoSerialize, SerializeToFeltVec};
4041
use data_transformer::cairo_types::CairoU256;
4142
use rand::prelude::StdRng;
4243
use runtime::{
@@ -97,7 +98,13 @@ impl<'a> ExtensionLogic for ForgeExtension<'a> {
9798
let output = self
9899
.oracle_hint_service
99100
.execute_cheatcode(oracle_selector, input_reader.into_remaining());
100-
return Ok(CheatcodeHandlingResult::Handled(output));
101+
let mut reader = BufferReader::new(&output);
102+
let deserialized: Result<NoLengthFeltVec<Felt>, ByteArray> = reader.read()?;
103+
let converted = deserialized
104+
.map_err(|error| EnhancedHintError::OracleError { error })
105+
.map(|r| r.serialize_to_vec());
106+
107+
return Ok(CheatcodeHandlingResult::Handled(converted?));
101108
}
102109

103110
match selector {

crates/runtime/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,8 @@ pub enum EnhancedHintError {
470470
StarknetApi(#[from] StarknetApiError),
471471
#[error("Failed to parse {path} file")]
472472
FileParsing { path: String },
473+
#[error("{error}")]
474+
OracleError { error: ByteArray },
473475
}
474476

475477
impl From<BufferReadError> for EnhancedHintError {

0 commit comments

Comments
 (0)