Skip to content

Commit 73b233c

Browse files
rcatalan98fmolettapefontana
authored andcommitted
Add test for hint FieldSqrt (lambdaclass#1162)
* 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 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 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 test for RandomEcPoint hint * Add rust test for Cairo 1 program * Fix Cairo 1 program * Change contract & Add activate feature for Cairo 1 * Add new entry to Changelog * Restore CHANGELOG.md * Restore Cargo.toml * Add eof new line * Add more coverage to the test * Refactor contract test * Fix LinearSplit hint * Add fix entry to the CHANGELOG * Remove outdated comment * Add test for FieldSqrt * Remove CHANGELOG entry * Fix Cairo 1 contract & test * Add new line EOF Cairo 1 contract --------- Co-authored-by: Federica <[email protected]> Co-authored-by: fmoletta <[email protected]> Co-authored-by: Pedro Fontana <[email protected]>
1 parent 14cb620 commit 73b233c

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#[contract]
2+
mod FieldSqrt {
3+
use core::traits::Into;
4+
use option::OptionTrait;
5+
use ec::ec_point_from_x;
6+
use ec::ec_point_non_zero;
7+
use ec::ec_point_unwrap;
8+
9+
#[external]
10+
fn field_sqrt() -> felt252 {
11+
let p = ec_point_from_x(10).unwrap();
12+
let p_nz = ec_point_non_zero(p);
13+
14+
let (qx, _) = ec_point_unwrap(p_nz);
15+
16+
assert(qx == 10, 'bad finalize x');
17+
qx
18+
}
19+
}

src/tests/cairo_1_run_from_entrypoint_tests.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,3 +520,10 @@ fn widelmul128_test() {
520520
&[1_usize.into()],
521521
);
522522
}
523+
524+
#[test]
525+
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
526+
fn field_sqrt_test() {
527+
let program_data = include_bytes!("../../cairo_programs/cairo-1-contracts/field_sqrt.casm");
528+
run_cairo_1_entrypoint(program_data.as_slice(), 0, &[], &[10.into()]);
529+
}

0 commit comments

Comments
 (0)