Skip to content

Commit 20301a1

Browse files
committed
Integrate oracles result handling
commit-id:17bfed5d
1 parent 5be308b commit 20301a1

File tree

1 file changed

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

1 file changed

+9
-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
@@ -36,7 +36,8 @@ use cairo_vm::vm::{
3636
use conversions::byte_array::ByteArray;
3737
use conversions::felt::{ToShortString, TryInferFormat};
3838
use conversions::serde::deserialize::BufferReader;
39-
use conversions::serde::serialize::CairoSerialize;
39+
use conversions::serde::NoLengthFeltVec;
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(|e| anyhow!("Oracle error: {e}"))
105+
.map(|r| r.serialize_to_vec());
106+
107+
return Ok(CheatcodeHandlingResult::Handled(converted?));
101108
}
102109

103110
match selector {

0 commit comments

Comments
 (0)