diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c9c6126be..31c24f4024 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * perf: insert elements from the tail in `load_data` so reallocation happens only once [#1117](https://github.com/lambdaclass/cairo-rs/pull/1117) +* Add `CairoRunner::get_program method` [#1123](https://github.com/lambdaclass/cairo-rs/pull/1123) + * Use to_signed_felt as function for felt252 as BigInt within [-P/2, P/2] range and use to_bigint as function for representation as BigInt. [#1100](https://github.com/lambdaclass/cairo-rs/pull/1100) * Implement hint on field_arithmetic lib [#1090](https://github.com/lambdaclass/cairo-rs/pull/1090) diff --git a/src/vm/runners/cairo_runner.rs b/src/vm/runners/cairo_runner.rs index c783b3181b..428e7d5ae4 100644 --- a/src/vm/runners/cairo_runner.rs +++ b/src/vm/runners/cairo_runner.rs @@ -1061,6 +1061,11 @@ impl CairoRunner { } Ok(stack_ptr) } + + /// Return CairoRunner.program + pub fn get_program(&self) -> &Program { + &self.program + } } #[derive(Clone, Debug, Eq, PartialEq)] @@ -4826,4 +4831,15 @@ mod tests { } ); } + + #[test] + fn test_get_program() { + let program = program!( + builtins = vec![BuiltinName::output], + data = vec_data!((4), (6)), + ); + let runner = cairo_runner!(program); + + assert_eq!(runner.get_program().data_len(), 2) + } }