Skip to content

v1.0.0-rc4

Pre-release
Pre-release
Compare
Choose a tag to compare
@JulianGCalderon JulianGCalderon released this 06 Jul 12:29
· 59 commits to main since this release
bb491f2
  • chore: bump cairo-lang- dependencies to 2.6.4 #1799

    • fix: revert breaking change on public input serialization
  • fix: Remove validation of CairoPie memory values #1783

  • fix: Handle GasBuiltin in cairo1-run crate #1789

    • Load initial_gas into vm instead of creating it via instructions.
    • Fix bug affecting programs with input arguments and gas builtin.
  • fix: Change (de)serialization of CairoPie's OutputBuiltinAdditionalData's PublicMemoryPage to vectors of length 2. #1781

  • fix: Fixed deserialization issue when signature additional data is empty, and the name of the builtin range_check96 #1785

  • refactor + bugfix: Improve arg handling for cairo1-run #1782

    • Now uses ascii whitespace as separator, preventing errors when using newlines in args file
    • No longer gets stuck on improperly-formatted arrays
    • Returns an informative clap error upon invalid felt strings instead of unwrapping
  • fix: Ignore memory order when comparing instances of CairoPieMemory #1780

  • feat: Add EXCESS_BALANCE hint #1777

  • feat(BREAKING): Use a cheatcode to relocate all dicts + Make temporary segment usage configurable #1776

    • Add the flags segment_arena_validation & use_temporary_segments to the Cairo1HintProcessor & DictManagerExecScope respectively. These flags will determine if real segments or temporary segments will be used when creating dictionaries.
    • DictManagerExecScope::finalize_segment no longer performs relocation and is ignored if use_temporary_segments is set to false.
    • Add method DictManagerExecScope::relocate_all_dictionaries that adds relocation rules for all tracked dictionaries, relocating them one next to the other in a new segment.
    • Add cheatcode RelocateAllDictionaries to the Cairo1HintProcessor, which calls the aforementioned method.
    • Add casm instruction to call the aforementioned cheatcode in create_entry_code if either proof_mode or append_return_values are set to true, and segment arena is present.
  • Bump starknet-types-core version + Use the lib's pedersen hash #1734

  • refactor: Add boolean method Cairo1RunConfig::copy_to_output + Update Doc #1778

  • feat: Filter implicit arguments from return value in cairo1-run crate #1775

  • feat(BREAKING): Serialize inputs into output segment in cairo1-run crate:

    • Checks that only Array<Felt252> can be received by the program main function when running with with either --proof_mode or --append_return_values.

    • Copies the input value to the output segment right after the output in the format [array_len, arr[0], arr[1],.., arr[n]].

                * feat: specify initial value for `exec_scopes` in `cairo_run_program` [1772](https://github.com/lambdaclass/cairo-vm/pull/1772)
      
  • fix: make MemorySegmentManager.finalize() public #1771

  • feat: load Cairo PIE from bytes #1773

  • feat(BREAKING): Serialize Array<Felt252> return value into output segment in cairo1-run crate:

    • Checks that only PanicResult<Array<Felt252>> or Array<Felt252> can be returned by the program when running with either --proof_mode or --append_return_values.
    • Serializes return values into the output segment under the previous conditions following the format:
      • PanicResult<Array<Felt252>> -> [panic_flag, array_len, arr[0], arr[1],.., arr[n]]
      • <Array<Felt252> -> [array_len, arr[0], arr[1],.., arr[n]]
  • feat: Handle BoundedInt variant in serialize_output, cairo1-run crate #1768

  • fix: make OutputBuiltinState public #1769

  • feat: Load arguments into VM instead of creating them via instructions in cairo1-run #1759