Skip to content

Commit

Permalink
fix: get tests compiling and running
Browse files Browse the repository at this point in the history
  • Loading branch information
whichqua committed Jun 3, 2024
1 parent 23701d5 commit 051714b
Show file tree
Hide file tree
Showing 8 changed files with 308 additions and 223 deletions.
100 changes: 0 additions & 100 deletions examples/run_program.rs
Original file line number Diff line number Diff line change
@@ -1,23 +1,10 @@
<<<<<<< HEAD
use std::error::Error;

use cairo_vm::cairo_run::{cairo_run_program_with_initial_scope, CairoRunConfig};
=======
use std::any::Any;
use std::collections::HashMap;
use std::error::Error;

use cairo_vm::cairo_run::{cairo_run_program, CairoRunConfig};
use cairo_vm::hint_processor::builtin_hint_processor::builtin_hint_processor_definition::{
BuiltinHintProcessor, HintProcessorData,
};
use cairo_vm::hint_processor::hint_processor_definition::{HintExtension, HintProcessorLogic};
>>>>>>> fb2312f0f9bda782d4d08e8c6bb0bdf77f904ed8
use cairo_vm::types::exec_scope::ExecutionScopes;
use cairo_vm::types::layout_name::LayoutName;
use cairo_vm::types::program::Program;
use cairo_vm::vm::errors::cairo_run_errors::CairoRunError;
<<<<<<< HEAD
use cairo_vm::vm::runners::cairo_runner::CairoRunner;
use cairo_vm::Felt252;

Expand All @@ -28,86 +15,11 @@ use cairo_bootloader::{
PackedOutput, SimpleBootloaderInput, TaskSpec,
};

=======
use cairo_vm::vm::errors::hint_errors::HintError;
use cairo_vm::vm::runners::cairo_runner::{CairoRunner, ResourceTracker};
use cairo_vm::vm::vm_core::VirtualMachine;
use cairo_vm::Felt252;
use starknet_types_core::felt::Felt;

use cairo_bootloader::tasks::make_bootloader_tasks;
use cairo_bootloader::{
insert_bootloader_input, load_bootloader, BootloaderConfig, BootloaderHintProcessor,
BootloaderInput, PackedOutput, SimpleBootloaderInput, TaskSpec,
};

struct ExampleHintProcessor {
bootloader_hint_processor: BootloaderHintProcessor,
builtin_hint_processor: BuiltinHintProcessor,
}

impl ExampleHintProcessor {
fn new() -> Self {
Self {
bootloader_hint_processor: BootloaderHintProcessor {},
builtin_hint_processor: BuiltinHintProcessor::new_empty(),
}
}
}

impl HintProcessorLogic for ExampleHintProcessor {
fn execute_hint(
&mut self,
_vm: &mut VirtualMachine,
_exec_scopes: &mut ExecutionScopes,
hint_data: &Box<dyn Any>,
_constants: &HashMap<String, Felt>,
) -> Result<(), HintError> {
// This method will never be called, but must be defined according to `HintProcessorLogic`.

let hint_data = hint_data.downcast_ref::<HintProcessorData>().unwrap();
let hint_code = &hint_data.code;
Err(HintError::UnknownHint(hint_code.clone().into_boxed_str()))
}

fn execute_hint_extensive(
&mut self,
vm: &mut VirtualMachine,
exec_scopes: &mut ExecutionScopes,
hint_data: &Box<dyn Any>,
constants: &HashMap<String, Felt>,
) -> Result<HintExtension, HintError> {
// Cascade through the internal hint processors until we find the hint implementation.

match self.bootloader_hint_processor.execute_hint_extensive(
vm,
exec_scopes,
hint_data,
constants,
) {
Err(HintError::UnknownHint(_)) => {}
result => {
return result;
}
}

self.builtin_hint_processor
.execute_hint_extensive(vm, exec_scopes, hint_data, constants)
}
}

impl ResourceTracker for ExampleHintProcessor {}

>>>>>>> fb2312f0f9bda782d4d08e8c6bb0bdf77f904ed8
fn cairo_run_bootloader_in_proof_mode(
bootloader_program: &Program,
tasks: Vec<TaskSpec>,
) -> Result<CairoRunner, CairoRunError> {
<<<<<<< HEAD
let mut hint_processor = BootloaderHintProcessor::new();
=======
let mut hint_processor = ExampleHintProcessor::new();
>>>>>>> fb2312f0f9bda782d4d08e8c6bb0bdf77f904ed8

let cairo_run_config = CairoRunConfig {
entrypoint: "main",
Expand Down Expand Up @@ -141,19 +53,11 @@ fn cairo_run_bootloader_in_proof_mode(
insert_bootloader_input(&mut exec_scopes, bootloader_input);

// Run the bootloader
<<<<<<< HEAD
cairo_run_program_with_initial_scope(
&bootloader_program,
&cairo_run_config,
&mut hint_processor,
exec_scopes,
=======
cairo_run_program(
&bootloader_program,
&cairo_run_config,
&mut hint_processor,
Some(exec_scopes),
>>>>>>> fb2312f0f9bda782d4d08e8c6bb0bdf77f904ed8
)
}

Expand All @@ -163,15 +67,11 @@ fn main() -> Result<(), Box<dyn Error>> {

let tasks = make_bootloader_tasks(&[fibonacci_program], &[])?;

<<<<<<< HEAD
let mut runner = cairo_run_bootloader_in_proof_mode(&bootloader_program, tasks)?;

let mut output_buffer = "Program Output:\n".to_string();
runner.vm.write_output(&mut output_buffer)?;
print!("{output_buffer}");
=======
let _runner = cairo_run_bootloader_in_proof_mode(&bootloader_program, tasks)?;
>>>>>>> fb2312f0f9bda782d4d08e8c6bb0bdf77f904ed8

Ok(())
}
Loading

0 comments on commit 051714b

Please sign in to comment.