Skip to content

Commit

Permalink
Alloc felt dict test (lambdaclass#1125)
Browse files Browse the repository at this point in the history
* Implement TryFrom<CasmContractClass> for Program

* Add cairo1hintprocessor dependency

* Map hints to pc

* Add Cairo1HintProcessor

* Move cairo-1-hint-processor to cairo-rs crate

* fixes

* Fix test helper

* Remove allow

* fix test func

* Add builtins to test

* Extract builtins from contract_class

* Add _builtin to builtin names in etrypoint data

* Copy logic from cairo1 contract execution in starknet

* Remove unused code

* Use lower initial_gas value

* Add program segment size argument

* Check return values in run_cairo_1_entrypoint fn

* Remove debug prints

* Add basic fibonacci test

* Add another fibonacci case

* Always verify secure

* Clippy

* Compile casm contracts when running test target

* Remove unwrap from cell_ref_to_relocatable

* Remove paniking macro from extract_buffer

* Misc improvements

* Misc improvements

* Misc improvements

* Misc improvements

* Remove unwraps & asserts from DictSquashExecScope::pop_current_key

* Remove unwraps & asserts from DictManagerExecScope::new_default_dict

* Remove expect from get_dict_tracker

* Add constants for cairo 1 compiler binaries in makefile

* Add cairo 1 compiler to deps target in makefile

* Add cairo folder to clean target

* Remove todo from execute method

* Separate helper functions from Cairo1HintProcessor implementation

* Add untracked file

* Fix

* Add changelog entry

* Add a job to compile cairo 1 contracts in ci

* Add job dependency

* Fix yml syntax

* Fix yml syntax

* Temporarily extempt cairo-1-hint-processor from codecov

* Fix yml syntax

* Fix workflow

* Remove cache code from new job

* Fix yml syntax

* Fix wrong path

* Fix makefile

* Build only compiler binaries

* Add cairo-1-contracts-cache

* Fetch contracts cache in jobs that need them

* Use no-std version of HashMap

* Import stdlib::prelude::*

* Wrap print in not-wasm block

* Remove std path

* use slices instead of vec

* Make DictSquashExecScope fields private

* Import hint processor dependencies without default features

* -Clippy

* Add type

* Compile cairo 1 contracts in build-programs job

* Rename cache

* Use target dependency instead of explicit $(MAKE)

* Fix yml syntax

* Check for cairo folder before cloning cairo repo

* Ommit folder name

* Swap paths

* Add cairo-1-hints feature flag

* Add alloc dict hint test

* Modify .gitignore

* Add compile-hint feature to tests run in workflow

* Add cairo-1-hints to test_utils

* Add cairo-1-hints to test_utils

* Use both paths when fetching compiled test data

* Remove cairo-1-hints feature from test_utils feature

* Move dependencies to cairo-1-hints feature

* Update CHANGELOG.md

* Fix cfg directive

* Add new lines at the end of the files and modify Changelog

* Add cairo-1-hints to test workflow

* Add Cairo 1 considerations for Gitignore and Makefile (lambdaclass#1144)

* Add ignore for casm and sierra files

* Add libfunc experimental for cairo 1 compilation

* Add new enty to CHANGELOG

* Add feature cairo-1-hint to test

* Fix changelog

* Change contract name and move test to other file

* Delete submodule cairo

* restore hint_processor.rs

* cargo clippy

* cargo clippy

---------

Co-authored-by: Federica <[email protected]>
Co-authored-by: fmoletta <[email protected]>
Co-authored-by: Roberto Catalan <[email protected]>
Co-authored-by: Pedro Fontana <[email protected]>
  • Loading branch information
5 people authored and kariy committed Jun 23, 2023
1 parent 73b233c commit 39f4c3a
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
12 changes: 12 additions & 0 deletions cairo_programs/cairo-1-contracts/felt_252_dict.cairo
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#[contract]
mod Felt252Dict {

use dict::{felt252_dict_entry_finalize, Felt252DictTrait};
/// An external method that requires the `segment_arena` builtin.
#[external]
fn squash_empty_dict() -> bool {
let x = felt252_dict_new::<felt252>();
x.squash();
return true;
}
}
7 changes: 7 additions & 0 deletions src/tests/cairo_1_run_from_entrypoint_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,13 @@ fn linear_split() {
);
}

#[test]
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
fn alloc_felt_252_dict() {
let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/felt_252_dict.casm");
run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[1.into()]);
}

#[test]
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
fn random_ec_point() {
Expand Down

0 comments on commit 39f4c3a

Please sign in to comment.