diff --git a/.github/workflows/rust-tests.yml b/.github/workflows/rust-tests.yml index aa6e3ad39..9d0edf985 100644 --- a/.github/workflows/rust-tests.yml +++ b/.github/workflows/rust-tests.yml @@ -102,7 +102,7 @@ jobs: strategy: fail-fast: false matrix: - target: [ test-cairo-1, test-cairo-2, test-doctests, test-cairo-native ] + target: [ test, test-doctests, test-cairo-native ] name: Run tests runs-on: ubuntu-latest steps: diff --git a/.gitignore b/.gitignore index abb8b256d..4dc5528c4 100644 --- a/.gitignore +++ b/.gitignore @@ -39,14 +39,11 @@ target/ .env # the starting `/` assures this matches only on the repo's root -/cairo1 /cairo2 starknet-venv/ **/*.json -starknet_programs/cairo1/*.casm -starknet_programs/cairo1/*.sierra starknet_programs/cairo2/*.casm starknet_programs/cairo2/*.sierra default.profraw diff --git a/Cargo.toml b/Cargo.toml index 7b58a9e18..347a2d31d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,6 @@ license = "Apache-2.0" [features] default = ["with_mimalloc"] with_mimalloc = ["dep:mimalloc"] -cairo_1_tests = [] metrics = [] # Disclaimer: This feature enables state modifications being applied on reverted and failings txs, and also disables address availability check when deploying contracts. # Only use for benchmarking using the replay binary diff --git a/Makefile b/Makefile index 8d8f49a62..da3b29b11 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: usage build check clean clippy compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra \ +.PHONY: usage build check clean clippy compile-cairo compile-starknet \ compile-cairo-2-casm compile-cairo-2-sierra coverage deps test heaptrack check-python-version export PATH:=$(shell pyenv root)/shims:$(PATH) @@ -21,9 +21,6 @@ STARKNET_ABI_TARGETS=$(patsubst %.cairo,%_abi.json,$(STARKNET_SOURCES)) BUILTIN_SOURCES=$(wildcard starknet_programs/*.cairo) BUILTIN_TARGETS=$(patsubst %.cairo,%.json,$(BUILTIN_SOURCES)) -STARKNET_COMPILE_CAIRO_1:=cairo1/bin/starknet-compile -STARKNET_SIERRA_COMPILE_CAIRO_1:=cairo1/bin/starknet-sierra-compile - STARKNET_COMPILE_CAIRO_2:=cairo2/bin/starknet-compile STARKNET_SIERRA_COMPILE_CAIRO_2:=cairo2/bin/starknet-sierra-compile @@ -36,7 +33,6 @@ usage: @echo ' clean: Cleans all build artifacts' @echo ' clippy: Runs clippy' @echo ' test: Runs all tests' - @echo ' test-cairo-1: Runs the Cairo 1 tests' @echo ' test-cairo-2: Runs the Cairo 2 tests' @echo ' test-doctests: Runs the doctests' @echo ' coverage: Runs everything necessary to generate the coverage report' @@ -69,42 +65,6 @@ starknet_programs/%.json starknet_programs/%_abi.json: starknet_programs/%.cairo || rm ./$*.json ./$*_abi.json # Compiles .cairo files into .json files. if the command fails, then it removes all of the .json files -# ====================== -# Test Cairo 1 Contracts -# ====================== - -CAIRO_1_CONTRACTS_TEST_DIR=starknet_programs/cairo1 -CAIRO_1_CONTRACTS_TEST_CAIRO_FILES:=$(wildcard $(CAIRO_1_CONTRACTS_TEST_DIR)/*.cairo) -CAIRO_1_COMPILED_SIERRA_CONTRACTS:=$(patsubst $(CAIRO_1_CONTRACTS_TEST_DIR)/%.cairo, $(CAIRO_1_CONTRACTS_TEST_DIR)/%.sierra, $(CAIRO_1_CONTRACTS_TEST_CAIRO_FILES)) -CAIRO_1_COMPILED_CASM_CONTRACTS:= $(patsubst $(CAIRO_1_CONTRACTS_TEST_DIR)/%.sierra, $(CAIRO_1_CONTRACTS_TEST_DIR)/%.casm, $(CAIRO_1_COMPILED_SIERRA_CONTRACTS)) - -$(CAIRO_1_CONTRACTS_TEST_DIR)/%.sierra: $(CAIRO_1_CONTRACTS_TEST_DIR)/%.cairo - $(STARKNET_COMPILE_CAIRO_1) --allowed-libfuncs-list-name experimental_v0.1.0 $< $@ - -$(CAIRO_1_CONTRACTS_TEST_DIR)/%.casm: $(CAIRO_1_CONTRACTS_TEST_DIR)/%.sierra - $(STARKNET_SIERRA_COMPILE_CAIRO_1) --allowed-libfuncs-list-name experimental_v0.1.0 --add-pythonic-hints $< $@ - -compile-cairo-1-sierra: $(CAIRO_1_COMPILED_SIERRA_CONTRACTS) -compile-cairo-1-casm: $(CAIRO_1_COMPILED_CASM_CONTRACTS) - - -cairo-repo-1-dir = cairo1 -cairo-repo-1-dir-macos = cairo1-macos - -build-cairo-1-compiler-macos: | $(cairo-repo-1-dir-macos) - -$(cairo-repo-1-dir-macos): - curl -L -o cairo-1.1.1.tar https://github.com/starkware-libs/cairo/releases/download/v1.1.1/release-aarch64-apple-darwin.tar \ - && tar -xzvf cairo-1.1.1.tar \ - && mv cairo/ cairo1/ - -build-cairo-1-compiler: | $(cairo-repo-1-dir) - -$(cairo-repo-1-dir): - curl -L -o cairo-1.1.1.tar https://github.com/starkware-libs/cairo/releases/download/v1.1.1/release-x86_64-unknown-linux-musl.tar.gz \ - && tar -xzvf cairo-1.1.1.tar \ - && mv cairo/ cairo1/ - # ====================== # Test Cairo 2 Contracts # ====================== @@ -153,13 +113,13 @@ cairo-%.tar: # Normal rules. # ================= -build: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra +build: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra cargo build --release --workspace -check: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra +check: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra cargo check --workspace --all-targets -deps: check-python-version build-cairo-2-compiler build-cairo-1-compiler +deps: check-python-version build-cairo-2-compiler cargo install flamegraph --version 0.6.2 --locked cargo install cargo-llvm-cov --version 0.5.14 --locked -pyenv && pyenv install -s pypy3.9-7.3.9 @@ -168,7 +128,7 @@ deps: check-python-version build-cairo-2-compiler build-cairo-1-compiler . starknet-venv/bin/activate && $(MAKE) deps-venv cargo install cargo-nextest --version 0.9.49 --locked -deps-macos: check-python-version build-cairo-2-compiler-macos build-cairo-1-compiler-macos +deps-macos: check-python-version build-cairo-2-compiler-macos cargo install flamegraph --version 0.6.2 --locked cargo install cargo-llvm-cov --version 0.5.14 --locked -pyenv install -s pypy3.9-7.3.9 @@ -180,43 +140,29 @@ deps-macos: check-python-version build-cairo-2-compiler-macos build-cairo-1-comp clean: -rm -rf starknet-venv/ -rm -f cairo_programs/*.json - -rm -f cairo_programs/cairo_1_contracts/*.json - -rm -f cairo_programs/cairo_1_contracts/*.casm -rm -f starknet_programs/*.json - -rm -f starknet_programs/cairo1/*.casm - -rm -f starknet_programs/cairo1/*.sierra -rm -f starknet_programs/cairo2/*.casm -rm -f starknet_programs/cairo2/*.sierra -rm -f tests/*.json - -rm -rf cairo1/ -rm -rf cairo2/ -rm -rf cairo-*.tar -clippy: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra +clippy: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra cargo clippy --workspace --all-targets --all-features -- -D warnings -test: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra - echo "Cairo1 tests" - $(MAKE) test-cairo-1 - echo "Cairo2 tests" - $(MAKE) test-cairo-2 - -test-cairo-1: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra - cargo nextest run --workspace --all-targets --features=cairo_1_tests,metrics,cairo-native - -test-cairo-2: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra +test: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra cargo nextest run --workspace --all-targets --features=metrics,cairo-native -test-cairo-native: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra +test-cairo-native: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra cargo nextest run --workspace --test tests --features=cairo-native integration_tests::cairo_native test-doctests: cargo test --workspace --doc -coverage: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-2-casm +coverage: compile-cairo compile-starknet compile-cairo-2-casm $(MAKE) coverage-report -coverage-report: compile-cairo compile-starknet compile-cairo-1-casm compile-cairo-1-sierra compile-cairo-2-casm compile-cairo-2-sierra +coverage-report: compile-cairo compile-starknet compile-cairo-2-casm compile-cairo-2-sierra cargo llvm-cov nextest --lcov --ignore-filename-regex 'main.rs' --output-path lcov.info --release heaptrack: diff --git a/src/core/contract_address/casm_contract_address.rs b/src/core/contract_address/casm_contract_address.rs index 74a0c9921..10de1d702 100644 --- a/src/core/contract_address/casm_contract_address.rs +++ b/src/core/contract_address/casm_contract_address.rs @@ -117,7 +117,6 @@ mod tests { // Open the file in read-only mode with buffer. let file; let expected_result; - #[cfg(not(feature = "cairo_1_tests"))] { file = File::open("starknet_programs/raw_contract_classes/321aadcf42b0a4ad905616598d16c42fa9b87c812dc398e49b57bf77930629f.casm").unwrap(); expected_result = Felt252::from_hex( @@ -125,14 +124,6 @@ mod tests { ) .unwrap(); } - #[cfg(feature = "cairo_1_tests")] - { - file = File::open("starknet_programs/cairo1/contract_a.casm").unwrap(); - expected_result = Felt252::from_hex( - "0x3a4f00bf75ba3b9230a94f104c7a4605a1901c4bd475beb59eeeeb7aceb9795", - ) - .unwrap(); - } let reader = BufReader::new(file); // Read the JSON contents of the file as an instance of `CasmContractClass`. @@ -149,7 +140,6 @@ mod tests { // Open the file in read-only mode with buffer. let file; let expected_result; - #[cfg(not(feature = "cairo_1_tests"))] { file = File::open("starknet_programs/raw_contract_classes/53ad3bfb13f39cf1a9940108be4f9c6a8d9cc48a59d5f9b3c73432f877f8cf0.casm").unwrap(); expected_result = Felt252::from_hex( @@ -158,14 +148,6 @@ mod tests { .unwrap(); } - #[cfg(feature = "cairo_1_tests")] - { - file = File::open("starknet_programs/cairo1/deploy.casm").unwrap(); - expected_result = Felt252::from_hex( - "0x3bd56f1c3c1c595ac2ee6d07bdedc027d09df56235e20374649f0b3535c1f15", - ) - .unwrap(); - } let reader = BufReader::new(file); // Read the JSON contents of the file as an instance of `CasmContractClass`. @@ -180,25 +162,12 @@ mod tests { #[test] fn test_compute_casm_class_hash_fibonacci() { // Open the file in read-only mode with buffer. - let file; - let expected_result; - #[cfg(not(feature = "cairo_1_tests"))] - { - file = File::open("starknet_programs/raw_contract_classes/6638ce6c9bf336d1781a388668fa2206d928df5d1fa6b92e4cb41004c7e3f89.casm").unwrap(); - expected_result = Felt252::from_hex( - "0x6638ce6c9bf336d1781a388668fa2206d928df5d1fa6b92e4cb41004c7e3f89", - ) - .unwrap(); - } - #[cfg(feature = "cairo_1_tests")] - { - file = File::open("starknet_programs/cairo1/fibonacci.casm").unwrap(); - expected_result = Felt252::from_hex( - "0x44f12e6e59232e9909d7428b913b3cc8d9059458e5027740a3ccdbdc4b1ffd2", - ) - .unwrap(); - } + let file = File::open("starknet_programs/raw_contract_classes/6638ce6c9bf336d1781a388668fa2206d928df5d1fa6b92e4cb41004c7e3f89.casm").unwrap(); + let expected_result = + Felt252::from_hex("0x6638ce6c9bf336d1781a388668fa2206d928df5d1fa6b92e4cb41004c7e3f89") + .unwrap(); + let reader = BufReader::new(file); // Read the JSON contents of the file as an instance of `CasmContractClass`. @@ -215,7 +184,6 @@ mod tests { // Open the file in read-only mode with buffer. let file; let expected_result; - #[cfg(not(feature = "cairo_1_tests"))] { file = File::open("starknet_programs/raw_contract_classes/7c48d040ceb3183837a0aff2adf33d879f790e202eb2c4b8622005c12252641.casm").unwrap(); expected_result = Felt252::from_hex( @@ -224,14 +192,6 @@ mod tests { .unwrap(); } - #[cfg(feature = "cairo_1_tests")] - { - file = File::open("starknet_programs/cairo1/factorial.casm").unwrap(); - expected_result = Felt252::from_hex( - "0x189a9b8b852aedbb225aa28dce9cfc3133145dd623e2d2ca5e962b7d4e61e15", - ) - .unwrap(); - } let reader = BufReader::new(file); // Read the JSON contents of the file as an instance of `CasmContractClass`. @@ -248,7 +208,6 @@ mod tests { // Open the file in read-only mode with buffer. let file; let expected_result; - #[cfg(not(feature = "cairo_1_tests"))] { file = File::open("starknet_programs/raw_contract_classes/3010533bd60cb0e70ac1bf776e171713f0e5229a084989d3894c171c160ace2.casm").unwrap(); expected_result = Felt252::from_hex( @@ -257,14 +216,6 @@ mod tests { .unwrap(); } - #[cfg(feature = "cairo_1_tests")] - { - file = File::open("starknet_programs/cairo1/emit_event.casm").unwrap(); - expected_result = Felt252::from_hex( - "0x3335fe731ceda1116eda8bbc2e282953ce54618309ad474189e627c59328fff", - ) - .unwrap(); - } let reader = BufReader::new(file); // Read the JSON contents of the file as an instance of `CasmContractClass`. diff --git a/src/lib.rs b/src/lib.rs index 2697bb1b1..940c9dfdb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -346,10 +346,7 @@ mod test { #[test] fn call_contract_fibonacci_with_10_should_return_89() { - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; @@ -454,10 +451,7 @@ mod test { #[test] fn test_skip_validation_flag() { - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = Felt252::from(&entrypoints.external.get(0).unwrap().selector); @@ -532,10 +526,7 @@ mod test { let entrypoint_selector = *EXECUTE_ENTRY_POINT_SELECTOR; // test with fibonacci - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.casm"); let casm_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); @@ -668,10 +659,7 @@ mod test { let entrypoint_selector = *EXECUTE_ENTRY_POINT_SELECTOR; // test with fibonacci - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.casm"); let casm_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); @@ -975,7 +963,7 @@ mod test { } fn declarev2_tx() -> Declare { - let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.sierra"); + let program_data = include_bytes!("../starknet_programs/cairo2/fibonacci.sierra"); let sierra_contract_class: SierraContractClass = serde_json::from_slice(program_data).unwrap(); diff --git a/src/transaction/declare.rs b/src/transaction/declare.rs index 4431dc3c3..798283ac5 100644 --- a/src/transaction/declare.rs +++ b/src/transaction/declare.rs @@ -620,19 +620,8 @@ mod tests { #[test] fn create_declare_v2_without_casm_contract_class_test() { // read file to create sierra contract class - let version; - let path; - #[cfg(not(feature = "cairo_1_tests"))] - { - version = Felt252::from(2); - path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); - } - - #[cfg(feature = "cairo_1_tests")] - { - version = Felt252::from(1); - path = PathBuf::from("starknet_programs/cairo1/fibonacci.sierra"); - } + let version = Felt252::from(2); + let path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); let file = File::open(path).unwrap(); let reader = BufReader::new(file); @@ -687,19 +676,8 @@ mod tests { #[test] fn create_declare_v2_with_casm_contract_class_test() { // read file to create sierra contract class - let version; - let path; - #[cfg(not(feature = "cairo_1_tests"))] - { - version = Felt252::from(2); - path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); - } - - #[cfg(feature = "cairo_1_tests")] - { - version = Felt252::from(1); - path = PathBuf::from("starknet_programs/cairo1/fibonacci.sierra"); - } + let version = Felt252::from(2); + let path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); let file = File::open(path).unwrap(); let reader = BufReader::new(file); @@ -752,19 +730,8 @@ mod tests { #[test] fn create_declare_v2_test_with_version_query() { // read file to create sierra contract class - let version; - let path; - #[cfg(not(feature = "cairo_1_tests"))] - { - version = *QUERY_VERSION_2; - path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); - } - - #[cfg(feature = "cairo_1_tests")] - { - version = *QUERY_VERSION_2; - path = PathBuf::from("starknet_programs/cairo1/fibonacci.sierra"); - } + let version = *QUERY_VERSION_2; + let path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); let file = File::open(path).unwrap(); let reader = BufReader::new(file); @@ -819,19 +786,8 @@ mod tests { #[test] fn create_declare_v2_with_casm_contract_class_none_test() { // read file to create sierra contract class - let version; - let path; - #[cfg(not(feature = "cairo_1_tests"))] - { - version = Felt252::from(2); - path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); - } - - #[cfg(feature = "cairo_1_tests")] - { - version = Felt252::from(1); - path = PathBuf::from("starknet_programs/cairo1/fibonacci.sierra"); - } + let version = Felt252::from(2); + let path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); let file = File::open(path).unwrap(); let reader = BufReader::new(file); @@ -886,19 +842,8 @@ mod tests { #[test] fn create_declare_v2_wrong_casm_class_hash_test() { // read file to create sierra contract class - let version; - let path; - #[cfg(not(feature = "cairo_1_tests"))] - { - version = Felt252::from(2); - path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); - } - - #[cfg(feature = "cairo_1_tests")] - { - version = Felt252::from(1); - path = PathBuf::from("starknet_programs/cairo1/fibonacci.sierra"); - } + let version = Felt252::from(2); + let path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); let file = File::open(path).unwrap(); let reader = BufReader::new(file); @@ -945,17 +890,7 @@ mod tests { #[test] fn declarev2_wrong_version() { - let path; - #[cfg(not(feature = "cairo_1_tests"))] - { - path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); - } - - #[cfg(feature = "cairo_1_tests")] - { - path = PathBuf::from("starknet_programs/cairo1/fibonacci.sierra"); - } - + let path = PathBuf::from("starknet_programs/cairo2/fibonacci.sierra"); let file = File::open(path).unwrap(); let reader = BufReader::new(file); let sierra_contract_class: cairo_lang_starknet::contract_class::ContractClass = diff --git a/src/transaction/invoke_function.rs b/src/transaction/invoke_function.rs index a5b69a8ea..892584cce 100644 --- a/src/transaction/invoke_function.rs +++ b/src/transaction/invoke_function.rs @@ -1424,7 +1424,7 @@ mod tests { let mut state_reader = InMemoryStateReader::default(); let class_hash: ClassHash = ClassHash([1; 32]); - let program_data = include_bytes!("../../starknet_programs/cairo1/factorial.casm"); + let program_data = include_bytes!("../../starknet_programs/cairo2/factorial.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let contract_address = Address(0.into()); let nonce = Felt252::ZERO; diff --git a/src/utils.rs b/src/utils.rs index b8e4a8809..ff64d2100 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -656,7 +656,7 @@ pub mod test_utils { pub(crate) static ref TEST_CLASS_HASH: Felt252 = Felt252::from_dec_str("272").unwrap(); pub(crate) static ref TEST_EMPTY_CONTRACT_CLASS_HASH: Felt252 = Felt252::from_dec_str("274").unwrap(); pub(crate) static ref TEST_ERC20_CONTRACT_CLASS_HASH: Felt252 = Felt252::from_dec_str("4112").unwrap(); - pub(crate) static ref TEST_FIB_COMPILED_CONTRACT_CLASS_HASH: Felt252 = Felt252::from_dec_str("1948962768849191111780391610229754715773924969841143100991524171924131413970").unwrap(); + pub(crate) static ref TEST_FIB_COMPILED_CONTRACT_CLASS_HASH: Felt252 = Felt252::from_dec_str("1487038893808052375786208479683257634301884864720663024120716859424551593158").unwrap(); // Storage keys. pub(crate) static ref TEST_ERC20_ACCOUNT_BALANCE_KEY: Felt252 = diff --git a/starknet_programs/cairo1/contract_a.cairo b/starknet_programs/cairo1/contract_a.cairo deleted file mode 100644 index 040dda106..000000000 --- a/starknet_programs/cairo1/contract_a.cairo +++ /dev/null @@ -1,19 +0,0 @@ -#[contract] -mod ContractA { - use traits::Into; - struct Storage { - value: u128, - } - - #[constructor] - fn constructor(value_: u128) { - value::write(value_); - } - - #[external] - fn foo(a: u128) -> u128 { - let value = value::read(); - value::write(a); - value - } -} diff --git a/starknet_programs/cairo1/deploy.cairo b/starknet_programs/cairo1/deploy.cairo deleted file mode 100644 index dfea89587..000000000 --- a/starknet_programs/cairo1/deploy.cairo +++ /dev/null @@ -1,19 +0,0 @@ -#[contract] -mod DeployTest { - use core::result::ResultTrait; - use starknet::syscalls::deploy_syscall; - use starknet::class_hash::ClassHash; - use starknet::contract_address::ContractAddress; - use starknet::class_hash::Felt252TryIntoClassHash; - use option::OptionTrait; - use traits::TryInto; - use array::ArrayTrait; - - #[external] - fn deploy_test(class_hash: felt252, contract_address_salt: felt252,) -> ContractAddress { - let mut calldata = ArrayTrait::new(); - calldata.append(100); - let (address0, _) = deploy_syscall(class_hash.try_into().unwrap(), contract_address_salt, calldata.span(), false).unwrap(); - address0 - } -} diff --git a/starknet_programs/cairo1/deploy_contract_no_args.cairo b/starknet_programs/cairo1/deploy_contract_no_args.cairo deleted file mode 100644 index 75679ca26..000000000 --- a/starknet_programs/cairo1/deploy_contract_no_args.cairo +++ /dev/null @@ -1,17 +0,0 @@ -#[contract] -mod Deploy { - use array::{Array, ArrayTrait, Span, SpanTrait}; - use starknet::{syscalls::deploy_syscall, contract_address_to_felt252, class_hash::ClassHash}; - use result::ResultTrait; - - #[external] - fn deploy_no_args(class_hash: ClassHash) -> felt252 { - let calldata = ArrayTrait::new(); - match deploy_syscall(class_hash, 0, calldata.span(), false) { - Result::Ok((addr, _)) => contract_address_to_felt252(addr), - Result::Err(revert_reason) => *revert_reason.span().at(0), - } - - } -} - diff --git a/starknet_programs/cairo1/deploy_with_constructor.cairo b/starknet_programs/cairo1/deploy_with_constructor.cairo deleted file mode 100644 index b1bafc041..000000000 --- a/starknet_programs/cairo1/deploy_with_constructor.cairo +++ /dev/null @@ -1,20 +0,0 @@ -#[contract] -mod DeployTest { - use core::result::ResultTrait; - use starknet::syscalls::deploy_syscall; - use starknet::class_hash::ClassHash; - use starknet::contract_address::ContractAddress; - use starknet::class_hash::Felt252TryIntoClassHash; - use option::OptionTrait; - use traits::TryInto; - use array::ArrayTrait; - - #[external] - fn deploy_test(class_hash: felt252, contract_address_salt: felt252, address: felt252, value: felt252) -> ContractAddress { - let mut calldata = ArrayTrait::new(); - calldata.append(address); - calldata.append(value); - let (address0, _) = deploy_syscall(class_hash.try_into().unwrap(), contract_address_salt, calldata.span(), false).unwrap(); - address0 - } -} diff --git a/starknet_programs/cairo1/deploy_without_constructor.cairo b/starknet_programs/cairo1/deploy_without_constructor.cairo deleted file mode 100644 index 5f611c3c2..000000000 --- a/starknet_programs/cairo1/deploy_without_constructor.cairo +++ /dev/null @@ -1,18 +0,0 @@ -#[contract] -mod DeployWithoutConstructorTest { - use core::result::ResultTrait; - use starknet::syscalls::deploy_syscall; - use starknet::class_hash::ClassHash; - use starknet::contract_address::ContractAddress; - use starknet::class_hash::Felt252TryIntoClassHash; - use option::OptionTrait; - use traits::TryInto; - use array::ArrayTrait; - - #[external] - fn deploy_test(class_hash: felt252, contract_address_salt: felt252,) -> ContractAddress { - let mut calldata = ArrayTrait::new(); - let (address0, _) = deploy_syscall(class_hash.try_into().unwrap(), contract_address_salt, calldata.span(), false).unwrap(); - address0 - } -} diff --git a/starknet_programs/cairo1/emit_event.cairo b/starknet_programs/cairo1/emit_event.cairo deleted file mode 100644 index a4b87e94b..000000000 --- a/starknet_programs/cairo1/emit_event.cairo +++ /dev/null @@ -1,13 +0,0 @@ -#[contract] -mod Event { - - #[event] - fn EmitEvent(n: felt252){} - - #[external] - fn trigger_events() { - EmitEvent(1); - EmitEvent(2); - EmitEvent(3); - } -} diff --git a/starknet_programs/cairo1/factorial.cairo b/starknet_programs/cairo1/factorial.cairo deleted file mode 100644 index 7377265b5..000000000 --- a/starknet_programs/cairo1/factorial.cairo +++ /dev/null @@ -1,11 +0,0 @@ -#[contract] -mod Factorial { - - #[external] - fn factorial(n: felt252) -> felt252 { - match n { - 0 => 1, - _ => n * factorial(n-1), - } - } -} diff --git a/starknet_programs/cairo1/failing_constructor.cairo b/starknet_programs/cairo1/failing_constructor.cairo deleted file mode 100644 index 4f8addff8..000000000 --- a/starknet_programs/cairo1/failing_constructor.cairo +++ /dev/null @@ -1,8 +0,0 @@ -#[contract] -mod FailingConstructor { - #[constructor] - fn constructor() { - assert( 1 == 0 , 'Oops'); - } - -} diff --git a/starknet_programs/cairo1/faulty_low_level_storage_read.cairo b/starknet_programs/cairo1/faulty_low_level_storage_read.cairo deleted file mode 100644 index dd3137eb7..000000000 --- a/starknet_programs/cairo1/faulty_low_level_storage_read.cairo +++ /dev/null @@ -1,17 +0,0 @@ -#[contract] -mod ReadStorage { - use array::{Array, ArrayTrait, Span, SpanTrait}; - use starknet::{syscalls::storage_read_syscall, storage_access::{StorageAddress, storage_address_try_from_felt252}}; - use result::ResultTrait; - use option::OptionTrait; - - #[external] - fn read_storage() -> felt252 { - let address = storage_address_try_from_felt252(1).unwrap(); - match storage_read_syscall(3, address) { - Result::Ok(value) => value, - Result::Err(revert_reason) => *revert_reason.span().at(0), - } - - } -} diff --git a/starknet_programs/cairo1/faulty_low_level_storage_write.cairo b/starknet_programs/cairo1/faulty_low_level_storage_write.cairo deleted file mode 100644 index f81078817..000000000 --- a/starknet_programs/cairo1/faulty_low_level_storage_write.cairo +++ /dev/null @@ -1,17 +0,0 @@ -#[contract] -mod WriteStorage { - use array::{Array, ArrayTrait, Span, SpanTrait}; - use starknet::{syscalls::storage_write_syscall, storage_access::{StorageAddress, storage_address_try_from_felt252}}; - use result::ResultTrait; - use option::OptionTrait; - - #[external] - fn write_storage() -> felt252 { - let address = storage_address_try_from_felt252(1).unwrap(); - match storage_write_syscall(3, address, 1) { - Result::Ok(value) => 1, - Result::Err(revert_reason) => *revert_reason.span().at(0), - } - - } -} diff --git a/starknet_programs/cairo1/faulty_math_lib.cairo b/starknet_programs/cairo1/faulty_math_lib.cairo deleted file mode 100644 index 9cb2a46b9..000000000 --- a/starknet_programs/cairo1/faulty_math_lib.cairo +++ /dev/null @@ -1,13 +0,0 @@ -#[contract] -mod Math { - use integer::u128_sqrt; - use core::traits::Into; - use traits::TryInto; - use option::OptionTrait; - - #[external] - fn square_root(n: felt252) -> felt252 { - assert( 0 == 1 , 'Unimplemented'); - 0 - } -} diff --git a/starknet_programs/cairo1/fibonacci.cairo b/starknet_programs/cairo1/fibonacci.cairo deleted file mode 100644 index 2c1396270..000000000 --- a/starknet_programs/cairo1/fibonacci.cairo +++ /dev/null @@ -1,11 +0,0 @@ -#[contract] -mod Fibonacci { - - #[external] - fn fib(a: felt252, b: felt252, n: felt252) -> felt252 { - match n { - 0 => a, - _ => fib(b, a + b, n - 1), - } - } -} diff --git a/starknet_programs/cairo1/fibonacci_dispatcher.cairo b/starknet_programs/cairo1/fibonacci_dispatcher.cairo deleted file mode 100644 index 3ffea098c..000000000 --- a/starknet_programs/cairo1/fibonacci_dispatcher.cairo +++ /dev/null @@ -1,50 +0,0 @@ -use starknet::ContractAddress; -use array::ArrayTrait; -use array::SpanTrait; -use box::BoxTrait; -use result::ResultTrait; -use option::OptionTrait; - - -trait FibonacciDispatcherTrait { - fn fib(self: T, a: felt252, b: felt252, n: felt252) -> felt252; -} - -#[derive(Copy, Drop, storage_access::StorageAccess, Serde)] -struct FibonacciLibraryDispatcher { - class_hash: starknet::ClassHash, - selector: felt252, -} - -impl FibonacciLibraryDispatcherImpl of FibonacciDispatcherTrait { - fn fib( - self: FibonacciLibraryDispatcher, a: felt252, b: felt252, n: felt252 - ) -> felt252 { // starknet::syscalls::library_call_syscall is called in here - - let mut calldata = ArrayTrait::new(); - calldata.append(a); - calldata.append(b); - calldata.append(n); - - let ret = starknet::syscalls::library_call_syscall(self.class_hash, self.selector, calldata.span()).unwrap(); - *ret.get(0_usize).unwrap().unbox() - } -} - -#[contract] -mod Dispatcher { - use super::FibonacciDispatcherTrait; - use super::FibonacciLibraryDispatcher; - use starknet::ContractAddress; - - #[external] - fn fib( - class_hash: felt252, selector: felt252, a: felt252, b: felt252, n: felt252 - ) -> felt252 { - FibonacciLibraryDispatcher { - // THIS VALUE IS THE HASH OF THE FIBONACCI CASM CLASS HASH. THE SAME AS THE CONSTANT: TEST_FIB_COMPILED_CONTRACT_CLASS_HASH - class_hash: starknet::class_hash_const::<1948962768849191111780391610229754715773924969841143100991524171924131413970>(), - selector - }.fib(a, b, n) - } -} diff --git a/starknet_programs/cairo1/get_execution_info.cairo b/starknet_programs/cairo1/get_execution_info.cairo deleted file mode 100644 index eefe5e944..000000000 --- a/starknet_programs/cairo1/get_execution_info.cairo +++ /dev/null @@ -1,51 +0,0 @@ -#[contract] -mod GetExecutionInfo { - - use starknet::info::get_execution_info; - use starknet::info::ExecutionInfo; - use core::starknet::contract_address::ContractAddress; - use box::BoxTrait; - use array::SpanTrait; - - #[external] - fn get_info() -> (ContractAddress, ContractAddress, ContractAddress, ContractAddress) { - let info = get_execution_info().unbox(); - let block_info = info.block_info.unbox(); - let tx_info = info.tx_info.unbox(); - - let block_number = block_info.block_number; - let block_timestamp = block_info.block_timestamp; - let sequencer_address = block_info.sequencer_address; - - let version = tx_info.version; - let account_contract_address = tx_info.account_contract_address; - let max_fee = tx_info.max_fee; - let signature = tx_info.signature; - let transaction_hash = tx_info.transaction_hash; - let chain_id = tx_info.chain_id; - let nonce = tx_info.nonce; - - let caller_address = info.caller_address; - let contract_address = info.contract_address; - let entry_point_selector = info.entry_point_selector; - - assert(block_number == 0, 1); - assert(block_timestamp == 0, 2); - assert(version == 1, 3); - assert(max_fee == 0, 4); - assert(transaction_hash == 0, 5); - assert(chain_id == 1536727068981429685321, 6); - assert(nonce == 10, 7); - assert(entry_point_selector == 1583979555264088613757654119588925070177786702073426169970015447448454297318, 8); - assert(*signature.at(0) == 22, 9); - assert(*signature.at(1) == 33, 10); - assert(signature.len() == 2, 11); - - return ( - sequencer_address, - account_contract_address, - caller_address, - contract_address - ); - } -} diff --git a/starknet_programs/cairo1/get_number_a.cairo b/starknet_programs/cairo1/get_number_a.cairo deleted file mode 100644 index 89c736ae0..000000000 --- a/starknet_programs/cairo1/get_number_a.cairo +++ /dev/null @@ -1,15 +0,0 @@ -#[contract] -mod GetNumber { - use core::starknet::class_hash::ClassHash; - use core::starknet::replace_class_syscall; - - #[view] - fn get_number() -> felt252 { - 25 - } - - #[external] - fn upgrade(new_class_hash: ClassHash) { - replace_class_syscall(new_class_hash); - } -} diff --git a/starknet_programs/cairo1/get_number_b.cairo b/starknet_programs/cairo1/get_number_b.cairo deleted file mode 100644 index c9fb6a7e1..000000000 --- a/starknet_programs/cairo1/get_number_b.cairo +++ /dev/null @@ -1,15 +0,0 @@ -#[contract] -mod GetNumber { - use core::starknet::class_hash::ClassHash; - use core::starknet::replace_class_syscall; - - #[view] - fn get_number() -> felt252 { - 17 - } - - #[external] - fn upgrade(new_class_hash: ClassHash) { - replace_class_syscall(new_class_hash); - } -} diff --git a/starknet_programs/cairo1/get_number_wrapper.cairo b/starknet_programs/cairo1/get_number_wrapper.cairo deleted file mode 100644 index 60c34d8e0..000000000 --- a/starknet_programs/cairo1/get_number_wrapper.cairo +++ /dev/null @@ -1,46 +0,0 @@ -use starknet::ClassHash; - -#[abi] -trait GetNumber { - - #[view] - fn get_number() -> felt252; - - #[external] - fn upgrade(new_class_hash: ClassHash); -} - -#[contract] -mod GetNumberWrapper { - use super::GetNumberDispatcherTrait; - use super::GetNumberDispatcher; - use starknet::ClassHash; - use starknet::ContractAddress; - use starknet::contract_address_try_from_felt252; - use option::OptionTrait; - - // We use a constant for the contract_address to test the replace_class functionality - const get_number_contract_address: felt252 = 1; - - #[view] - fn get_number() -> felt252 { - let address = contract_address_try_from_felt252(get_number_contract_address).unwrap(); - GetNumberDispatcher {contract_address: address}.get_number() - } - - #[external] - fn upgrade(new_class_hash: ClassHash) { - let address = contract_address_try_from_felt252(get_number_contract_address).unwrap(); - GetNumberDispatcher {contract_address: address}.upgrade(new_class_hash); - } - - #[external] - fn get_numbers_old_new(new_class_hash: ClassHash) -> (felt252, felt252){ - let address = contract_address_try_from_felt252(get_number_contract_address).unwrap(); - let old_number = GetNumberDispatcher {contract_address: address}.get_number(); - GetNumberDispatcher {contract_address: address}.upgrade(new_class_hash); - let new_number = GetNumberDispatcher {contract_address: address}.get_number(); - (old_number, new_number) - } -} - diff --git a/starknet_programs/cairo1/hello_world_account.cairo b/starknet_programs/cairo1/hello_world_account.cairo deleted file mode 100644 index ca047b185..000000000 --- a/starknet_programs/cairo1/hello_world_account.cairo +++ /dev/null @@ -1,91 +0,0 @@ -// Import necessary modules and traits -use serde::Serde; -use starknet::ContractAddress; -use array::ArrayTrait; -use array::SpanTrait; -use option::OptionTrait; - -// Define the Account contract -#[account_contract] -mod Account { - use array::ArrayTrait; - use array::SpanTrait; - use box::BoxTrait; - use ecdsa::check_ecdsa_signature; - use option::OptionTrait; - use super::Call; - use starknet::ContractAddress; - use zeroable::Zeroable; - use serde::ArraySerde; - - // Define the contract's storage variables - struct Storage { - public_key: felt252 - } - - // Constructor function for initializing the contract - #[constructor] - fn constructor(public_key_: felt252) { - public_key::write(public_key_); - } - - // Internal function to validate the transaction signature - fn validate_transaction() -> felt252 { - let tx_info = starknet::get_tx_info().unbox(); // Unbox transaction info - let signature = tx_info.signature; // Extract signature - assert(signature.len() == 2_u32, 'INVALID_SIGNATURE_LENGTH'); // Check signature length - - // Verify ECDSA signature - - starknet::VALIDATED // Return validation status - } - - // Validate contract deployment - #[external] - fn __validate_deploy__( - class_hash: felt252, contract_address_salt: felt252, public_key_: felt252 - ) -> felt252 { - validate_transaction() - } - - // Validate contract declaration - #[external] - fn __validate_declare__(class_hash: felt252) -> felt252 { - validate_transaction() - } - - // Validate contract execution - #[external] - fn __validate__( - contract_address: ContractAddress, entry_point_selector: felt252, calldata: Array - ) -> felt252 { - validate_transaction() - } - - // Execute a contract call - #[external] - #[raw_output] - fn __execute__(mut calls: Array) -> Span { - // Validate caller - assert(starknet::get_caller_address().is_zero(), 'INVALID_CALLER'); - - let tx_info = starknet::get_tx_info().unbox(); // Unbox transaction info - assert(tx_info.version != 0, 'INVALID_TX_VERSION'); - - assert(calls.len() == 1_u32, 'MULTI_CALL_NOT_SUPPORTED'); // Only single calls are supported - let Call{to, selector, calldata } = calls.pop_front().unwrap(); - - // Call the target contract - starknet::call_contract_syscall( - address: to, entry_point_selector: selector, calldata: calldata.span() - ).unwrap_syscall() - } -} - -// Define the Call struct -#[derive(Drop, Serde)] -struct Call { - to: ContractAddress, - selector: felt252, - calldata: Array -} diff --git a/starknet_programs/cairo1/math_lib.cairo b/starknet_programs/cairo1/math_lib.cairo deleted file mode 100644 index 764b385a5..000000000 --- a/starknet_programs/cairo1/math_lib.cairo +++ /dev/null @@ -1,14 +0,0 @@ -#[contract] -mod Math { - use integer::u128_sqrt; - use core::traits::Into; - use traits::TryInto; - use option::OptionTrait; - - #[external] - fn square_root(n: felt252) -> felt252 { - let n_u128: u128 = n.try_into().unwrap(); - let n_u64: u64 = u128_sqrt(n_u128); - n_u64.into() - } -} diff --git a/starknet_programs/cairo1/multi_syscall_test.cairo b/starknet_programs/cairo1/multi_syscall_test.cairo deleted file mode 100644 index 04d205dc5..000000000 --- a/starknet_programs/cairo1/multi_syscall_test.cairo +++ /dev/null @@ -1,97 +0,0 @@ -#[contract] -mod multy_syscall { - use starknet::get_caller_address; - use starknet::get_contract_address; - use starknet::get_execution_info_syscall; - use starknet::replace_class_syscall; - use starknet::library_call_syscall; - use starknet::call_contract_syscall; - use starknet::send_message_to_l1_syscall; - use starknet::storage_read_syscall; - use starknet::storage_write_syscall; - use starknet::deploy_syscall; - - use starknet::storage_access::{StorageAddress, storage_address_try_from_felt252}; - use starknet::contract_address::ContractAddress; - use array::{Array, ArrayTrait, Span, SpanTrait}; - use result::ResultTrait; - use starknet::info::ExecutionInfo; - use option::OptionTrait; - use starknet::class_hash::ClassHash; - use traits::TryInto; - use starknet::class_hash::Felt252TryIntoClassHash; - use box::Box; - use traits::Into; - use box::BoxTrait; - - #[external] - fn caller_address() -> ContractAddress { - get_caller_address() - } - - #[external] - fn contract_address() -> ContractAddress { - get_contract_address() - } - - #[external] - fn execution_info_syscall() -> (ContractAddress, ContractAddress) { - let return_data = get_execution_info_syscall().unwrap().unbox(); - (return_data.caller_address, return_data.contract_address) - } - - - #[external] - fn test_library_call_syscall(class_hash: ClassHash, function_selector: felt252, number: felt252) -> felt252 { - let mut calldata = ArrayTrait::new(); - calldata.append(number); - let return_data = library_call_syscall(class_hash, function_selector, calldata.span()).unwrap(); - *return_data.get(0_usize).unwrap().unbox() - } - - #[external] - fn test_call_contract_syscall(function_selector: felt252, number: felt252) -> felt252 { - let mut calldata = ArrayTrait::new(); - calldata.append(number); - let return_data = call_contract_syscall(get_contract_address(), function_selector, calldata.span()).unwrap(); - *return_data.get(0_usize).unwrap().unbox() - - } - - #[external] - fn test_send_message_to_l1(to_address: felt252, payload_0: felt252, payload_1: felt252) -> () { - let mut calldata = ArrayTrait::new(); - calldata.append(payload_0); - calldata.append(payload_1); - let return_data = send_message_to_l1_syscall(to_address, calldata.span()).unwrap(); - return_data - } - - #[external] - fn read()-> felt252{ - //write to storage - let address = storage_address_try_from_felt252(3534535754756246375475423547453).unwrap(); - storage_write_syscall(0, address, 'Hello'); - - //read from storage - match storage_read_syscall(0, address) { - Result::Ok(value) => value, - Result::Err(revert_reason) => *revert_reason.span().at(0), - } - } - - #[event] - fn EmitEvent(n: felt252){} - - #[external] - fn trigger_events() { - EmitEvent(1); - EmitEvent(2); - EmitEvent(3); - } - - #[external] - fn get_number(number: felt252) -> felt252 { - number - } -} diff --git a/starknet_programs/cairo1/send_message_to_l1.cairo b/starknet_programs/cairo1/send_message_to_l1.cairo deleted file mode 100644 index 4c9470981..000000000 --- a/starknet_programs/cairo1/send_message_to_l1.cairo +++ /dev/null @@ -1,14 +0,0 @@ -#[contract] -mod SendMessageToL1 { - - use starknet::syscalls::send_message_to_l1_syscall; - use array::{Array, ArrayTrait}; - - #[external] - fn send_msg() { - let mut payload = array::array_new::(); - payload.append(555); - payload.append(666); - send_message_to_l1_syscall(444, payload.span()); - } -} diff --git a/starknet_programs/cairo1/send_messages_contract_call.cairo b/starknet_programs/cairo1/send_messages_contract_call.cairo deleted file mode 100644 index 3d71f65f2..000000000 --- a/starknet_programs/cairo1/send_messages_contract_call.cairo +++ /dev/null @@ -1,25 +0,0 @@ -#[abi] -trait SendMessageToL1 { - - #[external] - fn send_simple_message_to_l1(to_address: felt252, message: felt252); - -} - -#[contract] -mod SendMessages { - use super::SendMessageToL1DispatcherTrait; - use super::SendMessageToL1Dispatcher; - use starknet::ContractAddress; - use starknet::contract_address_try_from_felt252; - use option::OptionTrait; - - const SEND_MESSAGES_CONTRACT_ADDRESS: felt252 = 1; //Hardcoded value in test - - #[external] - fn send_sequential_messages(to_address: felt252, message1: felt252, message2: felt252) { - let address = contract_address_try_from_felt252(SEND_MESSAGES_CONTRACT_ADDRESS).unwrap(); - SendMessageToL1Dispatcher {contract_address: address}.send_simple_message_to_l1(to_address, message1); - SendMessageToL1Dispatcher {contract_address: address}.send_simple_message_to_l1(to_address, message2); - } -} diff --git a/starknet_programs/cairo1/send_simple_message_to_l1.cairo b/starknet_programs/cairo1/send_simple_message_to_l1.cairo deleted file mode 100644 index fa4e41e31..000000000 --- a/starknet_programs/cairo1/send_simple_message_to_l1.cairo +++ /dev/null @@ -1,12 +0,0 @@ -#[contract] -mod SendMessageToL1 { - use starknet::syscalls::send_message_to_l1_syscall; - use array::{Array, ArrayTrait}; - - #[external] - fn send_simple_message_to_l1(to_address: felt252, message: felt252) { - let mut payload = array::array_new::(); - payload.append(message); - send_message_to_l1_syscall(to_address, payload.span()); - } -} diff --git a/starknet_programs/cairo1/simple_wallet.cairo b/starknet_programs/cairo1/simple_wallet.cairo deleted file mode 100644 index aa2bd7c1b..000000000 --- a/starknet_programs/cairo1/simple_wallet.cairo +++ /dev/null @@ -1,22 +0,0 @@ -#[contract] -mod SimpleWallet { - struct Storage { - balance: felt252, - } - - #[constructor] - fn constructor(initial_balance: felt252) { - balance::write(initial_balance) - } - - #[view] - fn get_balance() -> felt252 { - balance::read() - } - - #[external] - fn increase_balance(amount: felt252) { - let current_balance = balance::read(); - balance::write(current_balance + amount) - } -} diff --git a/starknet_programs/cairo1/square_root.cairo b/starknet_programs/cairo1/square_root.cairo deleted file mode 100644 index 6d52155b3..000000000 --- a/starknet_programs/cairo1/square_root.cairo +++ /dev/null @@ -1,17 +0,0 @@ -#[abi] -trait Math { - #[external] - fn square_root(n: felt252) -> felt252; -} - -#[contract] -mod SquareRoot { - use super::MathDispatcherTrait; - use super::MathLibraryDispatcher; - use starknet::ClassHash; - - #[external] - fn square_root(n: felt252, math_class_hash: ClassHash) -> felt252 { - MathLibraryDispatcher {class_hash: math_class_hash}.square_root(n) - } -} diff --git a/starknet_programs/cairo1/square_root_recursive.cairo b/starknet_programs/cairo1/square_root_recursive.cairo deleted file mode 100644 index a38b7e1fe..000000000 --- a/starknet_programs/cairo1/square_root_recursive.cairo +++ /dev/null @@ -1,24 +0,0 @@ -#[abi] -trait Math { - #[external] - fn square_root(n: felt252) -> felt252; -} - -#[contract] -mod SquareRoot { - use super::MathDispatcherTrait; - use super::MathLibraryDispatcher; - use starknet::ClassHash; - - #[external] - fn square_root_recursive(n: felt252, math_class_hash: ClassHash, n_iterations: u32) -> felt252 { - square_root_recursive_inner(n, math_class_hash, n_iterations) - } - - fn square_root_recursive_inner(n: felt252, math_class_hash: ClassHash, n_iterations: u32) -> felt252 { - if n_iterations == 0 { - return n; - } - square_root_recursive_inner(MathLibraryDispatcher {class_hash: math_class_hash}.square_root(n), math_class_hash, n_iterations - 1) - } -} diff --git a/starknet_programs/cairo1/wallet_wrapper.cairo b/starknet_programs/cairo1/wallet_wrapper.cairo deleted file mode 100644 index ca65cef90..000000000 --- a/starknet_programs/cairo1/wallet_wrapper.cairo +++ /dev/null @@ -1,34 +0,0 @@ -#[abi] -trait SimpleWallet { - #[view] - fn get_balance() -> felt252; - - #[external] - fn increase_balance(amount: felt252); -} - -#[contract] -mod WalletWrapper { - use super::SimpleWalletDispatcherTrait; - use super::SimpleWalletDispatcher; - use starknet::ContractAddress; - - #[view] - fn get_balance(simple_wallet_contract_address: ContractAddress) -> felt252 { - SimpleWalletDispatcher {contract_address: simple_wallet_contract_address}.get_balance() - } - - #[external] - fn increase_balance(amount: felt252, simple_wallet_contract_address: ContractAddress) { - SimpleWalletDispatcher {contract_address: simple_wallet_contract_address}.increase_balance(amount) - } - - #[external] - fn increase_balance_recursive(amount: felt252, simple_wallet_contract_address: ContractAddress) { - if amount == 0 { - return(); - } - SimpleWalletDispatcher {contract_address: simple_wallet_contract_address}.increase_balance(1); - increase_balance_recursive(amount - 1, simple_wallet_contract_address) - } -} diff --git a/starknet_programs/cairo2/multi_syscall_test.cairo b/starknet_programs/cairo2/multi_syscall_test.cairo new file mode 100644 index 000000000..5f4263019 --- /dev/null +++ b/starknet_programs/cairo2/multi_syscall_test.cairo @@ -0,0 +1,99 @@ +use starknet::contract_address::ContractAddress; +use starknet::class_hash::ClassHash; + +#[starknet::interface] +trait IMultiSyscall { + fn caller_address(self: @TContractState) -> ContractAddress; + fn contract_address(self: @TContractState) -> ContractAddress; + fn execution_info_syscall(self: @TContractState) -> (ContractAddress, ContractAddress); + fn test_library_call_syscall(self: @TContractState, class_hash: ClassHash, function_selector: felt252, number: felt252) -> felt252; + fn test_call_contract_syscall(self: @TContractState, function_selector: felt252, number: felt252) -> felt252; + fn test_send_message_to_l1(self: @TContractState, to_address: felt252, payload_0: felt252, payload_1: felt252); + fn read(self: @TContractState)-> felt252; + fn trigger_events(ref self: TContractState); + fn get_number(self: @TContractState, number: felt252) -> felt252; +} + +#[starknet::contract] +mod MultiSyscall { + use core::starknet::{get_caller_address, get_contract_address, get_execution_info_syscall, replace_class_syscall,library_call_syscall, call_contract_syscall, send_message_to_l1_syscall, storage_read_syscall, storage_write_syscall, deploy_syscall}; + use starknet::storage_access::{StorageAddress, storage_address_try_from_felt252}; + use starknet::contract_address::ContractAddress; + use array::{Array, ArrayTrait, Span, SpanTrait}; + use result::ResultTrait; + use starknet::info::ExecutionInfo; + use option::OptionTrait; + use starknet::class_hash::{ClassHash, Felt252TryIntoClassHash}; + use box::{Box, BoxTrait}; + use traits::{Into, TryInto}; + + #[storage] + struct Storage { + value: u128, + } + + #[derive(Copy, Drop, PartialEq, starknet::Event)] + struct StaticEvent { + n: felt252, + } + + #[event] + #[derive(Copy, Drop, PartialEq, starknet::Event)] + enum Event { + StaticEvent: StaticEvent, + } + + + #[abi(embed_v0)] + impl MultiSyscall of super::IMultiSyscall { + fn caller_address(self: @ContractState) -> ContractAddress { + get_caller_address() + } + fn contract_address(self: @ContractState) -> ContractAddress { + get_contract_address() + } + fn execution_info_syscall(self: @ContractState) -> (ContractAddress, ContractAddress) { + let return_data = get_execution_info_syscall().unwrap().unbox(); + (return_data.caller_address, return_data.contract_address) + } + fn test_library_call_syscall(self: @ContractState, class_hash: ClassHash, function_selector: felt252, number: felt252) -> felt252 { + let mut calldata = ArrayTrait::::new(); + calldata.append(number); + let return_data = library_call_syscall(class_hash, function_selector, calldata.span()).unwrap(); + *return_data.get(0_usize).unwrap().unbox() + } + fn test_call_contract_syscall(self: @ContractState, function_selector: felt252, number: felt252) -> felt252 { + let mut calldata = ArrayTrait::::new(); + calldata.append(number); + let return_data = call_contract_syscall(get_contract_address(), function_selector, calldata.span()).unwrap(); + *return_data.get(0_usize).unwrap().unbox() + } + + fn test_send_message_to_l1(self: @ContractState, to_address: felt252, payload_0: felt252, payload_1: felt252) { + let mut calldata = ArrayTrait::::new(); + calldata.append(payload_0); + calldata.append(payload_1); + let return_data = send_message_to_l1_syscall(to_address, calldata.span()).unwrap(); + return_data + } + fn read(self: @ContractState)-> felt252{ + //write to storage + let address = storage_address_try_from_felt252(3534535754756246375475423547453).unwrap(); + storage_write_syscall(0, address, 'Hello').unwrap(); + + //read from storage + match storage_read_syscall(0, address) { + Result::Ok(value) => value, + Result::Err(revert_reason) => *revert_reason.span().at(0), + } + } + fn trigger_events(ref self: ContractState) { + self.emit(Event::StaticEvent(StaticEvent {n: 1})); + self.emit(Event::StaticEvent(StaticEvent {n: 2})); + self.emit(Event::StaticEvent(StaticEvent {n: 3})); + } + fn get_number(self: @ContractState, number: felt252) -> felt252 { + number + } + } +} diff --git a/tests/integration_tests/cairo_1_syscalls.rs b/tests/integration_tests/cairo_1_syscalls.rs index 8899d695e..6cad66143 100644 --- a/tests/integration_tests/cairo_1_syscalls.rs +++ b/tests/integration_tests/cairo_1_syscalls.rs @@ -53,11 +53,7 @@ fn create_execute_extrypoint( #[test] fn storage_write_read() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/simple_wallet.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/simple_wallet.casm"); - let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let constructor_entrypoint_selector = &entrypoints.constructor.get(0).unwrap().selector; @@ -208,11 +204,7 @@ fn storage_write_read() { #[test] fn library_call() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/square_root.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/square_root.casm"); - let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -241,11 +233,7 @@ fn library_call() { // Add lib contract to the state - #[cfg(not(feature = "cairo_1_tests"))] let lib_program_data = include_bytes!("../../starknet_programs/cairo2/math_lib.casm"); - #[cfg(feature = "cairo_1_tests")] - let lib_program_data = include_bytes!("../../starknet_programs/cairo1/math_lib.casm"); - let lib_contract_class: CasmContractClass = serde_json::from_slice(lib_program_data).unwrap(); let lib_address = Address(1112.into()); @@ -298,18 +286,12 @@ fn library_call() { ); let mut resources_manager = ExecutionResourcesManager::default(); let expected_execution_resources = ExecutionResources { - #[cfg(not(feature = "cairo_1_tests"))] n_steps: 238, - #[cfg(feature = "cairo_1_tests")] - n_steps: 259, n_memory_holes: 8, builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 12)]), }; let expected_execution_resources_internal_call = ExecutionResources { - #[cfg(not(feature = "cairo_1_tests"))] n_steps: 78, - #[cfg(feature = "cairo_1_tests")] - n_steps: 85, n_memory_holes: 5, builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 7)]), }; @@ -348,10 +330,7 @@ fn library_call() { l2_to_l1_messages: vec![], storage_read_values: vec![], accessed_storage_keys: HashSet::new(), - #[cfg(not(feature = "cairo_1_tests"))] gas_consumed: 77550, - #[cfg(feature = "cairo_1_tests")] - gas_consumed: 78980, ..Default::default() }; @@ -377,10 +356,7 @@ fn library_call() { #[test] fn call_contract_storage_write_read() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/wallet_wrapper.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/wallet_wrapper.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let get_balance_entrypoint_selector = @@ -411,12 +387,8 @@ fn call_contract_storage_write_read() { .insert(address.clone(), nonce); // Add simple_wallet contract to the state - #[cfg(not(feature = "cairo_1_tests"))] let simple_wallet_program_data = include_bytes!("../../starknet_programs/cairo2/simple_wallet.casm"); - #[cfg(feature = "cairo_1_tests")] - let simple_wallet_program_data = - include_bytes!("../../starknet_programs/cairo1/simple_wallet.casm"); let simple_wallet_contract_class: CasmContractClass = serde_json::from_slice(simple_wallet_program_data).unwrap(); @@ -586,10 +558,7 @@ fn call_contract_storage_write_read() { #[test] fn emit_event() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/emit_event.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/emit_event.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -697,17 +666,11 @@ fn deploy_cairo1_from_cairo1() { let test_class_hash = ClassHash(test_class_hash_bytes); let test_felt_hash = Felt252::from_bytes_be(&test_class_hash_bytes); let salt = Felt252::ZERO; - #[cfg(not(feature = "cairo_1_tests"))] let test_data = include_bytes!("../../starknet_programs/cairo2/contract_a.casm"); - #[cfg(feature = "cairo_1_tests")] - let test_data = include_bytes!("../../starknet_programs/cairo1/contract_a.casm"); let test_contract_class: CasmContractClass = serde_json::from_slice(test_data).unwrap(); // Create the deploy contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/deploy.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/deploy.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -816,12 +779,8 @@ fn deploy_cairo0_from_cairo1_without_constructor() { let test_contract_class: ContractClass = ContractClass::from_path(contract_path).unwrap(); // Create the deploy contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/deploy_without_constructor.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/deploy_without_constructor.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -927,12 +886,8 @@ fn deploy_cairo0_from_cairo1_with_constructor() { let test_contract_class: ContractClass = ContractClass::from_path(contract_path).unwrap(); // Create the deploy contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/deploy_with_constructor.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/deploy_with_constructor.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -1039,12 +994,8 @@ fn deploy_cairo0_and_invoke() { let test_contract_class: ContractClass = ContractClass::from_path(contract_path).unwrap(); // Create the deploy contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/deploy_without_constructor.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/deploy_without_constructor.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -1181,10 +1132,8 @@ fn deploy_cairo0_and_invoke() { #[test] fn test_send_message_to_l1_syscall() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/send_message_to_l1.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/send_message_to_l1.casm"); + let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let external_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -1258,20 +1207,9 @@ fn test_send_message_to_l1_syscall() { payload: vec![555.into(), 666.into()], }]; - #[cfg(not(feature = "cairo_1_tests"))] let expected_n_steps = 69; - #[cfg(feature = "cairo_1_tests")] - let expected_n_steps = 50; - - #[cfg(not(feature = "cairo_1_tests"))] let expected_gas_consumed = 12040; - #[cfg(feature = "cairo_1_tests")] - let expected_gas_consumed = 10040; - - #[cfg(not(feature = "cairo_1_tests"))] let expected_n_memory_holes = 1; - #[cfg(feature = "cairo_1_tests")] - let expected_n_memory_holes = 0; let expected_execution_resources = ExecutionResources { n_steps: expected_n_steps, @@ -1298,10 +1236,7 @@ fn test_send_message_to_l1_syscall() { #[test] fn test_get_execution_info() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_execution_info.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_execution_info.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let external_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -1375,15 +1310,8 @@ fn test_get_execution_info() { address.0, ]; - #[cfg(not(feature = "cairo_1_tests"))] let expected_n_steps = 202; - #[cfg(feature = "cairo_1_tests")] - let expected_n_steps = 268; - - #[cfg(not(feature = "cairo_1_tests"))] let expected_gas_consumed = 21880; - #[cfg(feature = "cairo_1_tests")] - let expected_gas_consumed = 28580; let expected_execution_resources = ExecutionResources { n_steps: expected_n_steps, @@ -1411,10 +1339,7 @@ fn test_get_execution_info() { fn replace_class_internal() { // This test only checks that the contract is updated in the storage, see `replace_class_contract_call` // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data_a = include_bytes!("../../starknet_programs/cairo2/get_number_a.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data_a = include_bytes!("../../starknet_programs/cairo1/get_number_a.casm"); let contract_class_a: CasmContractClass = serde_json::from_slice(program_data_a).unwrap(); let entrypoints_a = contract_class_a.clone().entry_points_by_type; let upgrade_selector = &entrypoints_a.external.get(0).unwrap().selector; @@ -1442,10 +1367,7 @@ fn replace_class_internal() { .insert(address.clone(), nonce); // Add get_number_b contract to the state (only its contract_class) - #[cfg(not(feature = "cairo_1_tests"))] let program_data_b = include_bytes!("../../starknet_programs/cairo2/get_number_b.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data_b = include_bytes!("../../starknet_programs/cairo1/get_number_b.casm"); let contract_class_b: CasmContractClass = serde_json::from_slice(program_data_b).unwrap(); let class_hash_b: ClassHash = ClassHash([2; 32]); @@ -1526,10 +1448,7 @@ fn replace_class_contract_call() { // SET GET_NUMBER_A // Add get_number_a.cairo to storage - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_a.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_a.casm"); let contract_class_a: CasmContractClass = serde_json::from_slice(program_data).unwrap(); // Create state reader with class hash data @@ -1558,10 +1477,7 @@ fn replace_class_contract_call() { // Add get_number_b contract to the state (only its contract_class) - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_b.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_b.casm"); let contract_class_b: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let class_hash_b: ClassHash = ClassHash([2; 32]); @@ -1577,10 +1493,7 @@ fn replace_class_contract_call() { // SET GET_NUMBER_WRAPPER // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_wrapper.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_wrapper.casm"); let wrapper_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = wrapper_contract_class.clone().entry_points_by_type; let get_number_entrypoint_selector = &entrypoints.external.get(1).unwrap().selector; @@ -1718,10 +1631,7 @@ fn replace_class_contract_call_same_transaction() { // SET GET_NUMBER_A // Add get_number_a.cairo to storage - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_a.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_a.casm"); let contract_class_a: CasmContractClass = serde_json::from_slice(program_data).unwrap(); // Create state reader with class hash data @@ -1749,11 +1659,7 @@ fn replace_class_contract_call_same_transaction() { // SET GET_NUMBER_B // Add get_number_b contract to the state (only its contract_class) - - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_b.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_b.casm"); let contract_class_b: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let class_hash_b: ClassHash = ClassHash([2; 32]); @@ -1769,10 +1675,7 @@ fn replace_class_contract_call_same_transaction() { // SET GET_NUMBER_WRAPPER // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_wrapper.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_wrapper.casm"); let wrapper_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = wrapper_contract_class.clone().entry_points_by_type; let get_numbers_entrypoint_selector = &entrypoints.external.get(2).unwrap().selector; @@ -1880,11 +1783,7 @@ fn call_contract_upgrade_cairo_0_to_cairo_1_same_transaction() { // SET GET_NUMBER_B // Add get_number_b contract to the state (only its contract_class) - - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_b.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_b.casm"); let contract_class_b: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let class_hash_b: ClassHash = ClassHash::from(Felt252::from(2)); @@ -1900,10 +1799,7 @@ fn call_contract_upgrade_cairo_0_to_cairo_1_same_transaction() { // SET GET_NUMBER_WRAPPER // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_wrapper.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_wrapper.casm"); let wrapper_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = wrapper_contract_class.clone().entry_points_by_type; let get_numbers_entrypoint_selector = &entrypoints.external.get(2).unwrap().selector; @@ -2002,11 +1898,7 @@ fn call_contract_downgrade_cairo_1_to_cairo_0_same_transaction() { // SET GET_NUMBER_B // Add get_number_b contract to the state - - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_b.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_b.casm"); let contract_class_b: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let class_hash_b: ClassHash = ClassHash::from(Felt252::from(2)); @@ -2029,10 +1921,7 @@ fn call_contract_downgrade_cairo_1_to_cairo_0_same_transaction() { // SET GET_NUMBER_WRAPPER // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_wrapper.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_wrapper.casm"); let wrapper_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = wrapper_contract_class.clone().entry_points_by_type; let get_numbers_entrypoint_selector = &entrypoints.external.get(2).unwrap().selector; @@ -2151,10 +2040,7 @@ fn call_contract_replace_class_cairo_0() { // SET GET_NUMBER_WRAPPER // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_number_wrapper.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/get_number_wrapper.casm"); let wrapper_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = wrapper_contract_class.clone().entry_points_by_type; let get_numbers_entrypoint_selector = &entrypoints.external.get(2).unwrap().selector; @@ -2230,10 +2116,7 @@ fn call_contract_replace_class_cairo_0() { #[test] fn test_out_of_gas_failure() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/emit_event.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/emit_event.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -2315,12 +2198,8 @@ fn test_out_of_gas_failure() { #[test] fn deploy_syscall_failure_uninitialized_class_hash() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/deploy_contract_no_args.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/deploy_contract_no_args.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -2401,12 +2280,8 @@ fn deploy_syscall_failure_uninitialized_class_hash() { #[test] fn deploy_syscall_failure_in_constructor() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/deploy_contract_no_args.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/deploy_contract_no_args.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -2434,12 +2309,8 @@ fn deploy_syscall_failure_in_constructor() { .insert(address.clone(), nonce); // Add failing constructor contract - #[cfg(not(feature = "cairo_1_tests"))] let f_c_program_data = include_bytes!("../../starknet_programs/cairo2/failing_constructor.casm"); - #[cfg(feature = "cairo_1_tests")] - let f_c_program_data = - include_bytes!("../../starknet_programs/cairo1/failing_constructor.casm"); let f_c_contract_class: CasmContractClass = serde_json::from_slice(f_c_program_data).unwrap(); let f_c_class_hash = Felt252::ONE; contract_class_cache.set_contract_class( @@ -2506,10 +2377,7 @@ fn deploy_syscall_failure_in_constructor() { #[test] fn storage_read_no_value() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/simple_wallet.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/simple_wallet.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let get_balance_entrypoint_selector = &entrypoints.external.get(1).unwrap().selector; @@ -2583,12 +2451,8 @@ fn storage_read_no_value() { #[test] fn storage_read_unavailable_address_domain() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/faulty_low_level_storage_read.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/faulty_low_level_storage_read.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let read_storage_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -2665,12 +2529,8 @@ fn storage_read_unavailable_address_domain() { #[test] fn storage_write_unavailable_address_domain() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/faulty_low_level_storage_write.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/faulty_low_level_storage_write.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let read_storage_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -2747,10 +2607,7 @@ fn storage_write_unavailable_address_domain() { #[test] fn library_call_failure() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/square_root.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/square_root.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -2779,10 +2636,7 @@ fn library_call_failure() { // Add lib contract to the state - #[cfg(not(feature = "cairo_1_tests"))] let lib_program_data = include_bytes!("../../starknet_programs/cairo2/faulty_math_lib.casm"); - #[cfg(feature = "cairo_1_tests")] - let lib_program_data = include_bytes!("../../starknet_programs/cairo1/faulty_math_lib.casm"); let lib_contract_class: CasmContractClass = serde_json::from_slice(lib_program_data).unwrap(); let lib_address = Address(1112.into()); @@ -2867,12 +2721,8 @@ fn library_call_failure() { #[test] fn send_messages_to_l1_different_contract_calls() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/send_messages_contract_call.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/send_messages_contract_call.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoint_selector = &contract_class.entry_points_by_type.external[0] .selector @@ -2902,12 +2752,8 @@ fn send_messages_to_l1_different_contract_calls() { // Add send_message_to_l1 contract to the state - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/send_simple_message_to_l1.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/send_simple_message_to_l1.casm"); let send_msg_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let send_msg_address = Address(1.into()); //Hardcoded in contract @@ -3004,12 +2850,8 @@ fn send_messages_to_l1_different_contract_calls() { #[test] fn send_messages_to_l1_different_contract_calls_cairo1_to_cairo0() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/send_messages_contract_call.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/send_messages_contract_call.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoint_selector = &contract_class.entry_points_by_type.external[0] .selector @@ -3159,12 +3001,8 @@ fn send_messages_to_l1_different_contract_calls_cairo0_to_cairo1() { // Add send_message_to_l1 contract to the state - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/send_simple_message_to_l1.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = - include_bytes!("../../starknet_programs/cairo1/send_simple_message_to_l1.casm"); let send_msg_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let send_msg_address = Address(1.into()); //Hardcoded in contract @@ -3258,7 +3096,6 @@ fn send_messages_to_l1_different_contract_calls_cairo0_to_cairo1() { } #[test] -#[cfg(not(feature = "cairo_1_tests"))] fn keccak_syscall() { let program_data = include_bytes!("../../starknet_programs/cairo2/test_cairo_keccak.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); @@ -3337,11 +3174,7 @@ fn keccak_syscall() { #[test] fn library_call_recursive_50_calls() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/square_root_recursive.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/square_root_recursive.casm"); - let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -3370,11 +3203,7 @@ fn library_call_recursive_50_calls() { // Add lib contract to the state - #[cfg(not(feature = "cairo_1_tests"))] let lib_program_data = include_bytes!("../../starknet_programs/cairo2/math_lib.casm"); - #[cfg(feature = "cairo_1_tests")] - let lib_program_data = include_bytes!("../../starknet_programs/cairo1/math_lib.casm"); - let lib_contract_class: CasmContractClass = serde_json::from_slice(lib_program_data).unwrap(); let lib_address = Address(1112.into()); @@ -3432,10 +3261,7 @@ fn library_call_recursive_50_calls() { ); let mut resources_manager = ExecutionResourcesManager::default(); let expected_execution_resources_internal_call = ExecutionResources { - #[cfg(not(feature = "cairo_1_tests"))] n_steps: 78, - #[cfg(feature = "cairo_1_tests")] - n_steps: 85, n_memory_holes: 5, builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 7)]), }; @@ -3484,11 +3310,7 @@ fn library_call_recursive_50_calls() { #[test] fn call_contract_storage_write_read_recursive_50_calls() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/wallet_wrapper.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/wallet_wrapper.casm"); - let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let get_balance_entrypoint_selector = &BigUint::from_bytes_be(&calculate_sn_keccak("get_balance".as_bytes())); @@ -3519,13 +3341,8 @@ fn call_contract_storage_write_read_recursive_50_calls() { .insert(address.clone(), nonce); // Add simple_wallet contract to the state - #[cfg(not(feature = "cairo_1_tests"))] let simple_wallet_program_data = include_bytes!("../../starknet_programs/cairo2/simple_wallet.casm"); - #[cfg(feature = "cairo_1_tests")] - let simple_wallet_program_data = - include_bytes!("../../starknet_programs/cairo1/simple_wallet.casm"); - let simple_wallet_contract_class: CasmContractClass = serde_json::from_slice(simple_wallet_program_data).unwrap(); let simple_wallet_constructor_entrypoint_selector = simple_wallet_contract_class @@ -3699,11 +3516,7 @@ fn call_contract_storage_write_read_recursive_50_calls() { #[test] fn call_contract_storage_write_read_recursive_100_calls() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/wallet_wrapper.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/wallet_wrapper.casm"); - let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let get_balance_entrypoint_selector = &BigUint::from_bytes_be(&calculate_sn_keccak("get_balance".as_bytes())); @@ -3734,13 +3547,8 @@ fn call_contract_storage_write_read_recursive_100_calls() { .insert(address.clone(), nonce); // Add simple_wallet contract to the state - #[cfg(not(feature = "cairo_1_tests"))] let simple_wallet_program_data = include_bytes!("../../starknet_programs/cairo2/simple_wallet.casm"); - #[cfg(feature = "cairo_1_tests")] - let simple_wallet_program_data = - include_bytes!("../../starknet_programs/cairo1/simple_wallet.casm"); - let simple_wallet_contract_class: CasmContractClass = serde_json::from_slice(simple_wallet_program_data).unwrap(); let simple_wallet_constructor_entrypoint_selector = simple_wallet_contract_class @@ -3912,14 +3720,12 @@ fn call_contract_storage_write_read_recursive_100_calls() { } #[test] -#[cfg(not(feature = "cairo_1_tests"))] fn test_get_execution_info_v2() { // Create program and entry point types for contract class use starknet_in_rust::transaction::{ CurrentAccountTxFields, DataAvailabilityMode, ResourceBounds, VersionSpecificAccountTxFields, }; - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/get_execution_info_v2.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; diff --git a/tests/integration_tests/deploy_account.rs b/tests/integration_tests/deploy_account.rs index 019c8f527..c206ca5b1 100644 --- a/tests/integration_tests/deploy_account.rs +++ b/tests/integration_tests/deploy_account.rs @@ -141,11 +141,7 @@ fn internal_deploy_account_cairo1() { state_reader, Arc::new(PermanentContractClassCache::default()), ); - - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/hello_world_account.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/hello_world_account.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); state @@ -205,15 +201,7 @@ fn internal_deploy_account_cairo1() { ]); let keys: HashSet = [accessed_keys].iter().copied().collect(); - let n_steps; - #[cfg(not(feature = "cairo_1_tests"))] - { - n_steps = 4262; - } - #[cfg(feature = "cairo_1_tests")] - { - n_steps = 4281; - } + let n_steps = 4262; assert_eq!( tx_info, @@ -223,10 +211,7 @@ fn internal_deploy_account_cairo1() { call_type: Some(CallType::Call), contract_address: Address(Felt252::from_dec_str("397149464972449753182583229366244826403270781177748543857889179957856017275").unwrap()), code_address: None, - #[cfg(not(feature="cairo_1_tests"))] gas_consumed: 15340, - #[cfg(feature="cairo_1_tests")] - gas_consumed: 16770, class_hash: Some(ClassHash([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 @@ -242,10 +227,7 @@ fn internal_deploy_account_cairo1() { ], retdata: vec![Felt252::from_dec_str("370462705988").unwrap()], execution_resources: Some(ExecutionResources { - #[cfg(not(feature="cairo_1_tests"))] n_steps: 142, - #[cfg(feature="cairo_1_tests")] - n_steps: 155, n_memory_holes: 2, builtin_instance_counter: [ @@ -267,17 +249,11 @@ fn internal_deploy_account_cairo1() { ), entry_point_selector: Some(Felt252::from_dec_str("1159040026212278395030414237414753050475174923702621880048416706425641521556").unwrap()), entry_point_type: Some(EntryPointType::Constructor), - #[cfg(not(feature="cairo_1_tests"))] gas_consumed: 13740, - #[cfg(feature="cairo_1_tests")] - gas_consumed: 14350, calldata: vec![2.into()], accessed_storage_keys: keys, execution_resources: Some(ExecutionResources { - #[cfg(not(feature="cairo_1_tests"))] n_steps: 87, - #[cfg(feature="cairo_1_tests")] - n_steps: 93, n_memory_holes: 0, builtin_instance_counter: [ diff --git a/tests/integration_tests/fibonacci.rs b/tests/integration_tests/fibonacci.rs index 0b0762f25..5f87ec2cf 100644 --- a/tests/integration_tests/fibonacci.rs +++ b/tests/integration_tests/fibonacci.rs @@ -1,4 +1,3 @@ -#![cfg(not(feature = "cairo_1_tests"))] // #![deny(warnings)] use cairo_lang_starknet::casm_contract_class::CasmContractClass; @@ -146,11 +145,7 @@ fn integration_test() { #[test] fn integration_test_cairo1() { // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/fibonacci.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/fibonacci.casm"); - let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let fib_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; diff --git a/tests/integration_tests/internals.rs b/tests/integration_tests/internals.rs index 1cae85adf..ab57bca42 100644 --- a/tests/integration_tests/internals.rs +++ b/tests/integration_tests/internals.rs @@ -92,8 +92,7 @@ lazy_static! { static ref TEST_CLASS_HASH: ClassHash = ClassHash::from(Felt252::from_dec_str("272").unwrap()); static ref TEST_EMPTY_CONTRACT_CLASS_HASH: ClassHash = ClassHash::from(Felt252::from_dec_str("274").unwrap()); static ref TEST_ERC20_CONTRACT_CLASS_HASH: ClassHash = ClassHash::from(Felt252::from_dec_str("4112").unwrap()); - static ref TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO1: ClassHash = ClassHash::from(Felt252::from_dec_str("1948962768849191111780391610229754715773924969841143100991524171924131413970").unwrap()); - static ref TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO2: ClassHash = ClassHash::from(Felt252::from_dec_str("2889767417435368609058888822622483550637539736178264636938129582300971548553").unwrap()); + static ref TEST_FIB_COMPILED_CONTRACT_CLASS_HASH: ClassHash = ClassHash::from(Felt252::from_dec_str("2889767417435368609058888822622483550637539736178264636938129582300971548553").unwrap()); // Storage keys. // NOTE: this key corresponds to the lower 128 bits of an U256 @@ -817,11 +816,8 @@ fn declare_tx() -> DeclareDeprecated { } fn declarev2_tx() -> Declare { - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/raw_contract_classes/fibonacci.sierra"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/fibonacci.sierra"); let sierra_contract_class: SierraContractClass = serde_json::from_slice(program_data).unwrap(); let sierra_class_hash = compute_sierra_class_hash(&sierra_contract_class).unwrap(); let casm_class = @@ -848,32 +844,19 @@ fn declarev2_tx() -> Declare { } fn deploy_fib_syscall() -> Deploy { - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/fibonacci.sierra"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/fibonacci.sierra"); let sierra_contract_class: SierraContractClass = serde_json::from_slice(program_data).unwrap(); let casm_class = CasmContractClass::from_contract_class(sierra_contract_class, true).unwrap(); let contract_class = CompiledClass::Casm { casm: Arc::new(casm_class), sierra: None, }; - - let contract_hash; - #[cfg(not(feature = "cairo_1_tests"))] - { - contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO2 - } - #[cfg(feature = "cairo_1_tests")] - { - contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO1 - } Deploy { hash_value: 0.into(), version: 1.into(), contract_address: TEST_FIB_CONTRACT_ADDRESS.clone(), contract_address_salt: 0.into(), - contract_hash, + contract_hash: *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH, contract_class, constructor_calldata: Vec::new(), skip_execute: false, @@ -1126,16 +1109,6 @@ fn test_declarev2_tx() { ("l1_gas_usage".to_string(), 2754), ]); let fee = calculate_tx_fee(&resources, &block_context, &FeeType::Eth).unwrap(); - - let contract_hash; - #[cfg(not(feature = "cairo_1_tests"))] - { - contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO2; - } - #[cfg(feature = "cairo_1_tests")] - { - contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO1; - } let expected_execution_info = TransactionExecutionInfo::new( Some(CallInfo { call_type: Some(CallType::Call), @@ -1143,7 +1116,9 @@ fn test_declarev2_tx() { class_hash: Some(*TEST_ACCOUNT_CONTRACT_CLASS_HASH), entry_point_selector: Some(*VALIDATE_DECLARE_ENTRY_POINT_SELECTOR), entry_point_type: Some(EntryPointType::External), - calldata: vec![Felt252::from_bytes_be(&contract_hash.0)], + calldata: vec![Felt252::from_bytes_be( + &TEST_FIB_COMPILED_CONTRACT_CLASS_HASH.0, + )], execution_resources: Some(ExecutionResources { n_steps: 12, ..Default::default() @@ -1214,15 +1189,6 @@ fn expected_execute_call_info() -> CallInfo { } fn expected_fib_execute_call_info() -> CallInfo { - let contract_hash; - #[cfg(not(feature = "cairo_1_tests"))] - { - contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO2; - } - #[cfg(feature = "cairo_1_tests")] - { - contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO1; - } CallInfo { caller_address: Address(Felt252::ZERO), call_type: Some(CallType::Call), @@ -1241,10 +1207,7 @@ fn expected_fib_execute_call_info() -> CallInfo { ], retdata: vec![Felt252::from(42)], execution_resources: Some(ExecutionResources { - #[cfg(not(feature = "cairo_1_tests"))] n_steps: 148, - #[cfg(feature = "cairo_1_tests")] - n_steps: 160, n_memory_holes: 0, builtin_instance_counter: HashMap::from([("range_check_builtin".to_string(), 4)]), }), @@ -1252,7 +1215,7 @@ fn expected_fib_execute_call_info() -> CallInfo { internal_calls: vec![CallInfo { caller_address: TEST_ACCOUNT_CONTRACT_ADDRESS.clone(), call_type: Some(CallType::Call), - class_hash: Some(contract_hash), + class_hash: Some(*TEST_FIB_COMPILED_CONTRACT_CLASS_HASH), entry_point_selector: Some(Felt252::from_bytes_be(&calculate_sn_keccak(b"fib"))), entry_point_type: Some(EntryPointType::External), calldata: vec![Felt252::from(42), Felt252::from(0), Felt252::from(0)], @@ -1262,15 +1225,9 @@ fn expected_fib_execute_call_info() -> CallInfo { internal_calls: vec![], contract_address: TEST_FIB_CONTRACT_ADDRESS.clone(), code_address: None, - #[cfg(not(feature = "cairo_1_tests"))] gas_consumed: 2980, - #[cfg(feature = "cairo_1_tests")] - gas_consumed: 4710, execution_resources: Some(ExecutionResources { - #[cfg(not(feature = "cairo_1_tests"))] n_steps: 109, - #[cfg(feature = "cairo_1_tests")] - n_steps: 121, n_memory_holes: 0, builtin_instance_counter: HashMap::from([("range_check_builtin".to_string(), 3)]), }), @@ -1352,15 +1309,7 @@ fn expected_transaction_execution_info(block_context: &BlockContext) -> Transact fn expected_fib_transaction_execution_info( block_context: &BlockContext, ) -> TransactionExecutionInfo { - let n_steps; - #[cfg(not(feature = "cairo_1_tests"))] - { - n_steps = 4550; - } - #[cfg(feature = "cairo_1_tests")] - { - n_steps = 4562; - } + let n_steps = 4550; let resources = HashMap::from([ ("n_steps".to_string(), n_steps), ("l1_gas_usage".to_string(), 5197), @@ -2274,10 +2223,7 @@ fn test_library_call_with_declare_v2() { .unwrap(); // Create program and entry point types for contract class - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/fibonacci_dispatcher.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/fibonacci_dispatcher.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; let external_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; @@ -2323,19 +2269,9 @@ fn test_library_call_with_declare_v2() { ) }; - let casm_contract_hash; - #[cfg(not(feature = "cairo_1_tests"))] - { - casm_contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO2 - } - #[cfg(feature = "cairo_1_tests")] - { - casm_contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO1 - } - // Create an execution entry point let calldata = vec![ - Felt252::from_bytes_be(&casm_contract_hash.0), + Felt252::from_bytes_be(&TEST_FIB_COMPILED_CONTRACT_CLASS_HASH.0), Felt252::from_bytes_be(&calculate_sn_keccak(b"fib")), 1.into(), 1.into(), @@ -2374,34 +2310,18 @@ fn test_library_call_with_declare_v2() { ) .unwrap(); - let casm_contract_hash; - #[cfg(not(feature = "cairo_1_tests"))] - { - casm_contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO2 - } - #[cfg(feature = "cairo_1_tests")] - { - casm_contract_hash = *TEST_FIB_COMPILED_CONTRACT_CLASS_HASH_CAIRO1 - } - let expected_internal_call_info = CallInfo { caller_address: Address(0.into()), call_type: Some(CallType::Delegate), contract_address: address.clone(), - class_hash: Some(casm_contract_hash), + class_hash: Some(*TEST_FIB_COMPILED_CONTRACT_CLASS_HASH), entry_point_selector: Some(Felt252::from(external_entrypoint_selector)), entry_point_type: Some(EntryPointType::External), - #[cfg(not(feature = "cairo_1_tests"))] gas_consumed: 19680, - #[cfg(feature = "cairo_1_tests")] - gas_consumed: 30410, calldata: vec![1.into(), 1.into(), 10.into()], retdata: vec![89.into()], // fib(10) execution_resources: Some(ExecutionResources { - #[cfg(not(feature = "cairo_1_tests"))] n_steps: 269, - #[cfg(feature = "cairo_1_tests")] - n_steps: 371, n_memory_holes: 0, builtin_instance_counter: HashMap::from([("range_check_builtin".to_string(), 13)]), }), @@ -2415,17 +2335,11 @@ fn test_library_call_with_declare_v2() { class_hash: Some(class_hash), entry_point_selector: Some(Felt252::from(external_entrypoint_selector)), entry_point_type: Some(EntryPointType::External), - #[cfg(not(feature = "cairo_1_tests"))] gas_consumed: 100490, - #[cfg(feature = "cairo_1_tests")] - gas_consumed: 113480, calldata, retdata: vec![89.into()], // fib(10) execution_resources: Some(ExecutionResources { - #[cfg(not(feature = "cairo_1_tests"))] n_steps: 463, - #[cfg(feature = "cairo_1_tests")] - n_steps: 587, n_memory_holes: 1, builtin_instance_counter: HashMap::from([("range_check_builtin".to_string(), 16)]), }), diff --git a/tests/integration_tests/multi_syscall_test.rs b/tests/integration_tests/multi_syscall_test.rs index add26cdfd..2ed158d3c 100644 --- a/tests/integration_tests/multi_syscall_test.rs +++ b/tests/integration_tests/multi_syscall_test.rs @@ -23,7 +23,7 @@ use std::{sync::Arc, vec}; #[test] fn test_multiple_syscall() { // Create program and entry point types for contract class - let program_data = include_bytes!("../../starknet_programs/cairo1/multi_syscall_test.casm"); + let program_data = include_bytes!("../../starknet_programs/cairo2/multi_syscall_test.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); // Create state reader with class hash data @@ -191,7 +191,7 @@ fn test_multiple_syscall() { OrderedEvent { order: 0, keys: vec![Felt252::from_dec_str( - "1533133552972353850845856330693290141476612241335297758062928121906575244541" + "826422450673657747090149602083997624297692992347360843320687877601002682120" ) .unwrap()], data: vec![1.into()] @@ -199,7 +199,7 @@ fn test_multiple_syscall() { OrderedEvent { order: 1, keys: vec![Felt252::from_dec_str( - "1533133552972353850845856330693290141476612241335297758062928121906575244541" + "826422450673657747090149602083997624297692992347360843320687877601002682120" ) .unwrap()], data: vec![2.into()] @@ -207,7 +207,7 @@ fn test_multiple_syscall() { OrderedEvent { order: 2, keys: vec![Felt252::from_dec_str( - "1533133552972353850845856330693290141476612241335297758062928121906575244541" + "826422450673657747090149602083997624297692992347360843320687877601002682120" ) .unwrap()], data: vec![3.into()] diff --git a/tests/integration_tests/syscalls.rs b/tests/integration_tests/syscalls.rs index 5d4824d90..12b53206a 100644 --- a/tests/integration_tests/syscalls.rs +++ b/tests/integration_tests/syscalls.rs @@ -1,4 +1,3 @@ -#![cfg(not(feature = "cairo_1_tests"))] #![deny(warnings)] use cairo_lang_starknet::casm_contract_class::CasmContractClass; @@ -1133,10 +1132,7 @@ fn deploy_cairo1_from_cairo0_with_constructor() { let salt = Felt252::ZERO; let test_class_hash: ClassHash = ClassHash([2; 32]); let test_felt_hash = Felt252::from_bytes_be(&test_class_hash.0); - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/contract_a.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/contract_a.casm"); let test_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); // Create state reader with class hash data @@ -1243,10 +1239,7 @@ fn deploy_cairo1_from_cairo0_without_constructor() { let salt = Felt252::ZERO; let test_class_hash: ClassHash = ClassHash([2; 32]); let test_felt_hash = Felt252::from_bytes_be(&test_class_hash.0); - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/fibonacci.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/fibonacci.casm"); let test_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); // Create state reader with class hash data @@ -1355,10 +1348,7 @@ fn deploy_cairo1_and_invoke() { let salt = Felt252::ZERO; let test_class_hash: ClassHash = ClassHash([2; 32]); let test_felt_hash = Felt252::from_bytes_be(&test_class_hash.0); - #[cfg(not(feature = "cairo_1_tests"))] let program_data = include_bytes!("../../starknet_programs/cairo2/factorial.casm"); - #[cfg(feature = "cairo_1_tests")] - let program_data = include_bytes!("../../starknet_programs/cairo1/factorial.casm"); let test_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); // Create state reader with class hash data