From a18b3d3251ab1527932c824bada69a63bb9e4f8d Mon Sep 17 00:00:00 2001 From: Artur Michalek Date: Wed, 22 Oct 2025 12:55:55 +0200 Subject: [PATCH] Integrate oracles result handling commit-id:17bfed5d --- .../runtime_extensions/forge_runtime_extension/mod.rs | 11 +++++++++-- crates/runtime/src/lib.rs | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs b/crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs index 8d854afdb2..94c01942b4 100644 --- a/crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs +++ b/crates/cheatnet/src/runtime_extensions/forge_runtime_extension/mod.rs @@ -35,8 +35,9 @@ use cairo_vm::vm::{ }; use conversions::byte_array::ByteArray; use conversions::felt::{ToShortString, TryInferFormat}; +use conversions::serde::SerializedValue; use conversions::serde::deserialize::BufferReader; -use conversions::serde::serialize::CairoSerialize; +use conversions::serde::serialize::{CairoSerialize, SerializeToFeltVec}; use data_transformer::cairo_types::CairoU256; use rand::prelude::StdRng; use runtime::{ @@ -97,7 +98,13 @@ impl<'a> ExtensionLogic for ForgeExtension<'a> { let output = self .oracle_hint_service .execute_cheatcode(oracle_selector, input_reader.into_remaining()); - return Ok(CheatcodeHandlingResult::Handled(output)); + let mut reader = BufferReader::new(&output); + let deserialized: Result, ByteArray> = reader.read()?; + let converted = deserialized + .map_err(|error| EnhancedHintError::OracleError { error }) + .map(|r| r.serialize_to_vec()); + + return Ok(CheatcodeHandlingResult::Handled(converted?)); } match selector { diff --git a/crates/runtime/src/lib.rs b/crates/runtime/src/lib.rs index 68de9f1a1a..c5ae630bd5 100644 --- a/crates/runtime/src/lib.rs +++ b/crates/runtime/src/lib.rs @@ -470,6 +470,8 @@ pub enum EnhancedHintError { StarknetApi(#[from] StarknetApiError), #[error("Failed to parse {path} file")] FileParsing { path: String }, + #[error("{error}")] + OracleError { error: ByteArray }, } impl From for EnhancedHintError {