Skip to content

Commit fc17aa0

Browse files
mmsc2fmolettarcatalan98pefontana
authored
Alloc felt dict test (#1125)
* 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 (#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]>
1 parent 6fc4a5c commit fc17aa0

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#[contract]
2+
mod Felt252Dict {
3+
4+
use dict::{felt252_dict_entry_finalize, Felt252DictTrait};
5+
/// An external method that requires the `segment_arena` builtin.
6+
#[external]
7+
fn squash_empty_dict() -> bool {
8+
let x = felt252_dict_new::<felt252>();
9+
x.squash();
10+
return true;
11+
}
12+
}

src/tests/cairo_1_run_from_entrypoint_tests.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,13 @@ fn linear_split() {
467467
);
468468
}
469469

470+
#[test]
471+
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
472+
fn alloc_felt_252_dict() {
473+
let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/felt_252_dict.casm");
474+
run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[1.into()]);
475+
}
476+
470477
#[test]
471478
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
472479
fn random_ec_point() {

0 commit comments

Comments
 (0)