diff --git a/cairo0-bootloader/bootloader/recursive_with_poseidon/run_simple_bootloader.cairo b/cairo0-bootloader/bootloader/recursive_with_poseidon/run_simple_bootloader.cairo index 35742e3..46d1071 100644 --- a/cairo0-bootloader/bootloader/recursive_with_poseidon/run_simple_bootloader.cairo +++ b/cairo0-bootloader/bootloader/recursive_with_poseidon/run_simple_bootloader.cairo @@ -176,7 +176,7 @@ func execute_tasks{builtin_ptrs: BuiltinData*, self_range_check_ptr}( use_poseidon=use_poseidon, ); - let output = cast(builtin_ptrs.output - Output.SIZE, Output*); + let output = cast(builtin_ptrs.output - Output.SIZE - Input.SIZE - 1, Output*); %{ print(ids.output.a_2) print(ids.output.b_2) diff --git a/cairo1/Scarb.toml b/cairo1/Scarb.toml index d6b7d0f..b0fefe7 100644 --- a/cairo1/Scarb.toml +++ b/cairo1/Scarb.toml @@ -5,4 +5,7 @@ edition = "2023_11" # See more keys and their definitions at https://docs.swmansion.com/scarb/docs/reference/manifest.html +[cairo] +enable-gas = false + [dependencies] diff --git a/cairo1/src/lib.cairo b/cairo1/src/lib.cairo index 0352d5e..099122e 100644 --- a/cairo1/src/lib.cairo +++ b/cairo1/src/lib.cairo @@ -5,24 +5,23 @@ struct Input { c: u32, } +#[derive(Drop, Serde)] struct Output { a_2: u32, b_2: u32, c_2: u32, } -fn main(input: Array) -> Output { +fn main(input: Array) -> Array { let mut input_span = input.span(); let input = Serde::::deserialize(ref input_span).unwrap(); let a_2 = input.a * input.a; let b_2 = input.b * input.b; let c_2 = input.c * input.c; - assert (a_2 + b_2 == c_2, 'invalid value'); + assert(a_2 + b_2 == c_2, 'invalid value'); - Output { - a_2, - b_2, - c_2, - } -} \ No newline at end of file + let mut output = array![]; + Output { a_2, b_2, c_2, }.serialize(ref output); + output +}