diff --git a/.tool-versions b/.tool-versions index e3d7ed99e..048d5e2ee 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -scarb 2.5.3 +scarb 2.6.4 starknet-foundry 0.12.0 diff --git a/crates/contracts/src/kakarot_core/kakarot.cairo b/crates/contracts/src/kakarot_core/kakarot.cairo index a7e9f6b71..2db8e5b67 100644 --- a/crates/contracts/src/kakarot_core/kakarot.cairo +++ b/crates/contracts/src/kakarot_core/kakarot.cairo @@ -165,7 +165,7 @@ pub mod KakarotCore { let origin = Address { evm: origin, starknet: self.compute_starknet_address(origin) }; - let TransactionResult{success, return_data, gas_used, state: _ } = self + let TransactionResult { success, return_data, gas_used, state: _ } = self .process_transaction(origin, tx); (success, return_data, gas_used) @@ -180,7 +180,7 @@ pub mod KakarotCore { evm: account.get_evm_address(), starknet: starknet_caller_address }; - let TransactionResult{success, return_data, gas_used, mut state } = self + let TransactionResult { success, return_data, gas_used, mut state } = self .process_transaction(origin, tx); starknet_backend::commit(ref state).expect('Committing state failed'); (success, return_data, gas_used) @@ -323,7 +323,7 @@ pub mod KakarotCore { loop { match access_list.pop_front() { Option::Some(access_list_item) => { - let AccessListItem{ethereum_address, storage_keys: _ } = + let AccessListItem { ethereum_address, storage_keys: _ } = *access_list_item; let storage_keys = access_list_item.to_storage_keys(); diff --git a/crates/contracts/src/lib.cairo b/crates/contracts/src/lib.cairo index 247561672..5c06117c6 100644 --- a/crates/contracts/src/lib.cairo +++ b/crates/contracts/src/lib.cairo @@ -7,8 +7,11 @@ mod errors; // Kakarot smart contract mod kakarot_core; -#[cfg(test)] -mod tests; +#[cfg(target: 'test')] +mod test_data; + +#[cfg(target: 'test')] +mod test_utils; // Account transparent proxy mod uninitialized_account; diff --git a/crates/contracts/src/tests/test_data.cairo b/crates/contracts/src/test_data.cairo similarity index 100% rename from crates/contracts/src/tests/test_data.cairo rename to crates/contracts/src/test_data.cairo diff --git a/crates/contracts/src/tests/test_utils.cairo b/crates/contracts/src/test_utils.cairo similarity index 98% rename from crates/contracts/src/tests/test_utils.cairo rename to crates/contracts/src/test_utils.cairo index 0f6458d5c..feeffc383 100644 --- a/crates/contracts/src/tests/test_utils.cairo +++ b/crates/contracts/src/test_utils.cairo @@ -10,7 +10,7 @@ use core::result::ResultTrait; use evm::backend::starknet_backend; use evm::model::{Address}; -use evm::tests::test_utils::{ca_address, other_starknet_address, chain_id, sequencer_evm_address}; +use evm::test_utils::{ca_address, other_starknet_address, chain_id, sequencer_evm_address}; use openzeppelin::token::erc20::ERC20; use openzeppelin::token::erc20::interface::{IERC20CamelDispatcher, IERC20CamelDispatcherTrait}; use starknet::{ diff --git a/crates/contracts/src/tests/test_eoa.cairo b/crates/contracts/src/tests/test_eoa.cairo deleted file mode 100644 index d088749fb..000000000 --- a/crates/contracts/src/tests/test_eoa.cairo +++ /dev/null @@ -1,331 +0,0 @@ -#[cfg(test)] -mod test_external_owned_account { - use contracts::account_contract::AccountContract::TransactionExecuted; - use contracts::account_contract::{AccountContract, IAccountDispatcher, IAccountDispatcherTrait}; - use contracts::kakarot_core::{ - IKakarotCore, KakarotCore, KakarotCore::KakarotCoreInternal, - interface::IExtendedKakarotCoreDispatcherTrait - }; - use contracts::tests::test_data::{counter_evm_bytecode, eip_2930_rlp_encoded_counter_inc_tx,}; - use contracts::tests::test_upgradeable::{ - IMockContractUpgradeableDispatcher, IMockContractUpgradeableDispatcherTrait, - MockContractUpgradeableV1 - }; - use contracts::tests::test_utils::{ - setup_contracts_for_testing, deploy_eoa, deploy_contract_account, pop_log, pop_log_debug, - fund_account_with_native_token, call_transaction - }; - use core::array::SpanTrait; - use core::box::BoxTrait; - use core::starknet::account::{Call}; - - use evm::model::{Address, AddressTrait}; - use evm::tests::test_utils::{ - kakarot_address, evm_address, other_evm_address, other_starknet_address, eoa_address, - chain_id, tx_gas_limit, gas_price, VMBuilderTrait - }; - use openzeppelin::token::erc20::interface::IERC20CamelDispatcherTrait; - use starknet::class_hash::Felt252TryIntoClassHash; - use starknet::testing::{set_caller_address, set_contract_address, set_signature, set_chain_id}; - use starknet::{ - deploy_syscall, ContractAddress, ClassHash, VALIDATED, get_contract_address, - contract_address_const, EthAddress, eth_signature::{Signature}, get_tx_info - }; - use utils::eth_transaction::{ - TransactionType, EthereumTransaction, EthereumTransactionTrait, LegacyTransaction - }; - use utils::helpers::{U8SpanExTrait, u256_to_bytes_array}; - use utils::serialization::{serialize_bytes, serialize_transaction_signature}; - use utils::tests::test_data::{legacy_rlp_encoded_tx, eip_2930_encoded_tx, eip_1559_encoded_tx}; - - - #[test] - fn test_get_evm_address() { - let expected_address: EthAddress = eoa_address(); - setup_contracts_for_testing(); - - let eoa_contract = deploy_eoa(eoa_address()); - - assert(eoa_contract.get_evm_address() == expected_address, 'wrong evm_address'); - } - - #[test] - #[available_gas(200000000000000)] - fn test___execute__a() { - let (native_token, kakarot_core) = setup_contracts_for_testing(); - - let evm_address = evm_address(); - let eoa = kakarot_core.deploy_externally_owned_account(evm_address); - // pop ownership transfer event - core::starknet::testing::pop_log_raw(eoa); - fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); - - let kakarot_address = kakarot_core.contract_address; - - deploy_contract_account(other_evm_address(), counter_evm_bytecode()); - - set_contract_address(eoa); - let eoa_contract = IAccountDispatcher { contract_address: eoa }; - - // Then - // selector: function get() - let data_get_tx = array![0x6d, 0x4c, 0xe6, 0x3c].span(); - - // check counter value is 0 before doing inc - let tx = call_transaction(chain_id(), Option::Some(other_evm_address()), data_get_tx); - - let (_, return_data) = kakarot_core - .eth_call(origin: evm_address, tx: EthereumTransaction::LegacyTransaction(tx),); - - assert_eq!(return_data, u256_to_bytes_array(0).span()); - - // perform inc on the counter - let encoded_tx = eip_2930_rlp_encoded_counter_inc_tx(); - - let call = Call { - to: kakarot_address, - selector: selector!("eth_send_transaction"), - calldata: serialize_bytes(encoded_tx).span() - }; - - starknet::testing::set_transaction_hash(selector!("transaction_hash")); - set_contract_address(contract_address_const::<0>()); - let result = eoa_contract.__execute__(array![call]); - assert_eq!(result.len(), 1); - - let event = pop_log_debug::(eoa).unwrap(); - - assert_eq!(event.response, *result.span()[0]); - assert_eq!(event.success, true); - assert_ne!(event.gas_used, 0); - - // check counter value has increased - let tx = call_transaction(chain_id(), Option::Some(other_evm_address()), data_get_tx); - let (_, return_data) = kakarot_core - .eth_call(origin: evm_address, tx: EthereumTransaction::LegacyTransaction(tx),); - assert_eq!(return_data, u256_to_bytes_array(1).span()); - } - - #[test] - #[should_panic(expected: ('EOA: multicall not supported', 'ENTRYPOINT_FAILED'))] - fn test___execute___should_fail_with_zero_calls() { - setup_contracts_for_testing(); - - let eoa_contract = deploy_eoa(eoa_address()); - let eoa_contract = IAccountDispatcher { contract_address: eoa_contract.contract_address }; - - set_contract_address(contract_address_const::<0>()); - eoa_contract.__execute__(array![]); - } - - #[test] - #[should_panic(expected: ('EOA: reentrant call', 'ENTRYPOINT_FAILED'))] - fn test___validate__fail__caller_not_0() { - let (native_token, kakarot_core) = setup_contracts_for_testing(); - let evm_address = evm_address(); - let eoa = kakarot_core.deploy_externally_owned_account(evm_address); - fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); - let eoa_contract = IAccountDispatcher { contract_address: eoa }; - - set_contract_address(other_starknet_address()); - - let calls = array![]; - eoa_contract.__validate__(calls); - } - - #[test] - #[should_panic(expected: ('EOA: multicall not supported', 'ENTRYPOINT_FAILED'))] - fn test___validate__fail__call_data_len_not_1() { - let (native_token, kakarot_core) = setup_contracts_for_testing(); - let evm_address = evm_address(); - let eoa = kakarot_core.deploy_externally_owned_account(evm_address); - fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); - let eoa_contract = IAccountDispatcher { contract_address: eoa }; - - set_contract_address(contract_address_const::<0>()); - - let calls = array![]; - eoa_contract.__validate__(calls); - } - - #[test] - #[should_panic(expected: ('to is not kakarot core', 'ENTRYPOINT_FAILED'))] - fn test___validate__fail__to_address_not_kakarot_core() { - let (native_token, kakarot_core) = setup_contracts_for_testing(); - let evm_address = evm_address(); - let eoa = kakarot_core.deploy_externally_owned_account(evm_address); - fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); - let eoa_contract = IAccountDispatcher { contract_address: eoa }; - - // to reproduce locally: - // run: cp .env.example .env - // bun install & bun run scripts/compute_rlp_encoding.ts - let signature = Signature { - r: 0xaae7c4f6e4caa03257e37a6879ed5b51a6f7db491d559d10a0594f804aa8d797, - s: 0x2f3d9634f8cb9b9a43b048ee3310be91c2d3dc3b51a3313b473ef2260bbf6bc7, - y_parity: true - }; - set_signature( - serialize_transaction_signature(signature, TransactionType::Legacy, 1).span() - ); - set_contract_address(contract_address_const::<0>()); - - let call = Call { - to: other_starknet_address(), - selector: selector!("eth_send_transaction"), - calldata: array![].span() - }; - - eoa_contract.__validate__(array![call]); - } - - #[test] - #[should_panic( - expected: ("Validate: selector must be eth_send_transaction", 'ENTRYPOINT_FAILED') - )] - fn test___validate__fail__selector_not_eth_send_transaction() { - let (native_token, kakarot_core) = setup_contracts_for_testing(); - let evm_address = evm_address(); - let eoa = kakarot_core.deploy_externally_owned_account(evm_address); - fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); - let eoa_contract = IAccountDispatcher { contract_address: eoa }; - - set_chain_id(chain_id().into()); - let mut vm = VMBuilderTrait::new_with_presets().build(); - let chain_id = vm.env.chain_id; - set_contract_address(contract_address_const::<0>()); - - // to reproduce locally: - // run: cp .env.example .env - // bun install & bun run scripts/compute_rlp_encoding.ts - let signature = Signature { - r: 0xaae7c4f6e4caa03257e37a6879ed5b51a6f7db491d559d10a0594f804aa8d797, - s: 0x2f3d9634f8cb9b9a43b048ee3310be91c2d3dc3b51a3313b473ef2260bbf6bc7, - y_parity: true - }; - set_signature( - serialize_transaction_signature(signature, TransactionType::Legacy, chain_id).span() - ); - - let call = Call { - to: kakarot_core.contract_address, - selector: selector!("eth_call"), - calldata: array![].span() - }; - - eoa_contract.__validate__(array![call]); - } - - #[test] - fn test___validate__legacy_transaction() { - let (native_token, kakarot_core) = setup_contracts_for_testing(); - let evm_address: EthAddress = 0xaA36F24f65b5F0f2c642323f3d089A3F0f2845Bf_u256.into(); - let eoa = kakarot_core.deploy_externally_owned_account(evm_address); - fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); - - let eoa_contract = IAccountDispatcher { contract_address: eoa }; - - set_chain_id(chain_id().into()); - let mut vm = VMBuilderTrait::new_with_presets().build(); - let chain_id = vm.env.chain_id; - - // to reproduce locally: - // run: cp .env.example .env - // bun install & bun run scripts/compute_rlp_encoding.ts - let signature = Signature { - r: 0x5e5202c7e9d6d0964a1f48eaecf12eef1c3cafb2379dfeca7cbd413cedd4f2c7, - s: 0x66da52d0b666fc2a35895e0c91bc47385fe3aa347c7c2a129ae2b7b06cb5498b, - y_parity: false - }; - set_signature( - serialize_transaction_signature(signature, TransactionType::Legacy, chain_id).span() - ); - - set_contract_address(contract_address_const::<0>()); - - let call = Call { - to: kakarot_core.contract_address, - selector: selector!("eth_send_transaction"), - calldata: serialize_bytes(legacy_rlp_encoded_tx()).span() - }; - - let result = eoa_contract.__validate__(array![call]); - assert(result == VALIDATED, 'validation failed'); - } - - #[test] - fn test___validate__eip_2930_transaction() { - let (native_token, kakarot_core) = setup_contracts_for_testing(); - let evm_address: EthAddress = 0xaA36F24f65b5F0f2c642323f3d089A3F0f2845Bf_u256.into(); - let eoa = kakarot_core.deploy_externally_owned_account(evm_address); - fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); - - let eoa_contract = IAccountDispatcher { contract_address: eoa }; - - set_chain_id(chain_id().into()); - let mut vm = VMBuilderTrait::new_with_presets().build(); - let chain_id = vm.env.chain_id; - - // to reproduce locally: - // run: cp .env.example .env - // bun install & bun run scripts/compute_rlp_encoding.ts - let signature = Signature { - r: 0xbced8d81c36fe13c95b883b67898b47b4b70cae79e89fa27856ddf8c533886d1, - s: 0x3de0109f00bc3ed95ffec98edd55b6f750cb77be8e755935dbd6cfec59da7ad0, - y_parity: true - }; - - set_signature( - serialize_transaction_signature(signature, TransactionType::EIP2930, chain_id).span() - ); - - set_contract_address(contract_address_const::<0>()); - - let call = Call { - to: kakarot_core.contract_address, - selector: selector!("eth_send_transaction"), - calldata: serialize_bytes(eip_2930_encoded_tx()).span() - }; - - let result = eoa_contract.__validate__(array![call]); - assert(result == VALIDATED, 'validation failed'); - } - - #[test] - fn test___validate__eip_1559_transaction() { - let (native_token, kakarot_core) = setup_contracts_for_testing(); - let evm_address: EthAddress = 0xaA36F24f65b5F0f2c642323f3d089A3F0f2845Bf_u256.into(); - let eoa = kakarot_core.deploy_externally_owned_account(evm_address); - fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); - - let eoa_contract = IAccountDispatcher { contract_address: eoa }; - - set_chain_id(chain_id().into()); - let mut vm = VMBuilderTrait::new_with_presets().build(); - let chain_id = vm.env.chain_id; - - // to reproduce locally: - // run: cp .env.example .env - // bun install & bun run scripts/compute_rlp_encoding.ts - let signature = Signature { - r: 0x0f9a716653c19fefc240d1da2c5759c50f844fc8835c82834ea3ab7755f789a0, - s: 0x71506d904c05c6e5ce729b5dd88bcf29db9461c8d72413b864923e8d8f6650c0, - y_parity: true - }; - - set_signature( - serialize_transaction_signature(signature, TransactionType::EIP1559, chain_id).span() - ); - - set_contract_address(contract_address_const::<0>()); - - let call = Call { - to: kakarot_core.contract_address, - selector: selector!("eth_send_transaction"), - calldata: serialize_bytes(eip_1559_encoded_tx()).span() - }; - - let result = eoa_contract.__validate__(array![call]); - assert(result == VALIDATED, 'validation failed'); - } -} diff --git a/crates/contracts/src/tests.cairo b/crates/contracts/tests/lib.cairo similarity index 80% rename from crates/contracts/src/tests.cairo rename to crates/contracts/tests/lib.cairo index 1f757aa89..79d69b045 100644 --- a/crates/contracts/src/tests.cairo +++ b/crates/contracts/tests/lib.cairo @@ -1,7 +1,6 @@ mod test_cairo1_helpers; mod test_contract_account; -mod test_data; mod test_eoa; @@ -10,5 +9,3 @@ mod test_kakarot_core; mod test_ownable; mod test_upgradeable; - -mod test_utils; diff --git a/crates/contracts/src/tests/test_cairo1_helpers.cairo b/crates/contracts/tests/test_cairo1_helpers.cairo similarity index 100% rename from crates/contracts/src/tests/test_cairo1_helpers.cairo rename to crates/contracts/tests/test_cairo1_helpers.cairo diff --git a/crates/contracts/src/tests/test_contract_account.cairo b/crates/contracts/tests/test_contract_account.cairo similarity index 91% rename from crates/contracts/src/tests/test_contract_account.cairo rename to crates/contracts/tests/test_contract_account.cairo index 69c846e34..2092087c7 100644 --- a/crates/contracts/src/tests/test_contract_account.cairo +++ b/crates/contracts/tests/test_contract_account.cairo @@ -1,7 +1,7 @@ use contracts::account_contract::{AccountContract, IAccountDispatcher, IAccountDispatcherTrait}; -use contracts::tests::test_data::counter_evm_bytecode; -use contracts::tests::test_utils::{setup_contracts_for_testing, deploy_contract_account}; -use evm::tests::test_utils::{ca_address, native_token}; +use contracts::test_data::counter_evm_bytecode; +use contracts::test_utils::{setup_contracts_for_testing, deploy_contract_account}; +use evm::test_utils::{ca_address, native_token}; #[test] fn test_ca_deploy() { diff --git a/crates/contracts/tests/test_eoa.cairo b/crates/contracts/tests/test_eoa.cairo new file mode 100644 index 000000000..48bc886b8 --- /dev/null +++ b/crates/contracts/tests/test_eoa.cairo @@ -0,0 +1,324 @@ +use contracts::account_contract::AccountContract::TransactionExecuted; +use contracts::account_contract::{AccountContract, IAccountDispatcher, IAccountDispatcherTrait}; +use contracts::kakarot_core::{ + IKakarotCore, KakarotCore, KakarotCore::KakarotCoreInternal, + interface::IExtendedKakarotCoreDispatcherTrait +}; +use contracts::test_data::{counter_evm_bytecode, eip_2930_rlp_encoded_counter_inc_tx,}; +use contracts::test_utils::{ + setup_contracts_for_testing, deploy_eoa, deploy_contract_account, pop_log, pop_log_debug, + fund_account_with_native_token, call_transaction +}; +use contracts_tests::test_upgradeable::{ + IMockContractUpgradeableDispatcher, IMockContractUpgradeableDispatcherTrait, + MockContractUpgradeableV1 +}; +use core::array::SpanTrait; +use core::box::BoxTrait; +use core::starknet::account::{Call}; + +use evm::model::{Address, AddressTrait}; +use evm::test_utils::{ + kakarot_address, evm_address, other_evm_address, other_starknet_address, eoa_address, chain_id, + tx_gas_limit, gas_price, VMBuilderTrait +}; +use openzeppelin::token::erc20::interface::IERC20CamelDispatcherTrait; +use starknet::class_hash::Felt252TryIntoClassHash; +use starknet::testing::{set_caller_address, set_contract_address, set_signature, set_chain_id}; +use starknet::{ + deploy_syscall, ContractAddress, ClassHash, VALIDATED, get_contract_address, + contract_address_const, EthAddress, eth_signature::{Signature}, get_tx_info +}; +use utils::eth_transaction::{ + TransactionType, EthereumTransaction, EthereumTransactionTrait, LegacyTransaction +}; +use utils::helpers::{U8SpanExTrait, u256_to_bytes_array}; +use utils::serialization::{serialize_bytes, serialize_transaction_signature}; +use utils::test_data::{legacy_rlp_encoded_tx, eip_2930_encoded_tx, eip_1559_encoded_tx}; + + +#[test] +fn test_get_evm_address() { + let expected_address: EthAddress = eoa_address(); + setup_contracts_for_testing(); + + let eoa_contract = deploy_eoa(eoa_address()); + + assert(eoa_contract.get_evm_address() == expected_address, 'wrong evm_address'); +} + +#[test] +#[available_gas(200000000000000)] +fn test___execute__a() { + let (native_token, kakarot_core) = setup_contracts_for_testing(); + + let evm_address = evm_address(); + let eoa = kakarot_core.deploy_externally_owned_account(evm_address); + // pop ownership transfer event + core::starknet::testing::pop_log_raw(eoa); + fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); + + let kakarot_address = kakarot_core.contract_address; + + deploy_contract_account(other_evm_address(), counter_evm_bytecode()); + + set_contract_address(eoa); + let eoa_contract = IAccountDispatcher { contract_address: eoa }; + + // Then + // selector: function get() + let data_get_tx = array![0x6d, 0x4c, 0xe6, 0x3c].span(); + + // check counter value is 0 before doing inc + let tx = call_transaction(chain_id(), Option::Some(other_evm_address()), data_get_tx); + + let (_, return_data) = kakarot_core + .eth_call(origin: evm_address, tx: EthereumTransaction::LegacyTransaction(tx),); + + assert_eq!(return_data, u256_to_bytes_array(0).span()); + + // perform inc on the counter + let encoded_tx = eip_2930_rlp_encoded_counter_inc_tx(); + + let call = Call { + to: kakarot_address, + selector: selector!("eth_send_transaction"), + calldata: serialize_bytes(encoded_tx).span() + }; + + starknet::testing::set_transaction_hash(selector!("transaction_hash")); + set_contract_address(contract_address_const::<0>()); + let result = eoa_contract.__execute__(array![call]); + assert_eq!(result.len(), 1); + + let event = pop_log_debug::(eoa).unwrap(); + + assert_eq!(event.response, *result.span()[0]); + assert_eq!(event.success, true); + assert_ne!(event.gas_used, 0); + + // check counter value has increased + let tx = call_transaction(chain_id(), Option::Some(other_evm_address()), data_get_tx); + let (_, return_data) = kakarot_core + .eth_call(origin: evm_address, tx: EthereumTransaction::LegacyTransaction(tx),); + assert_eq!(return_data, u256_to_bytes_array(1).span()); +} + +#[test] +#[should_panic(expected: ('EOA: multicall not supported', 'ENTRYPOINT_FAILED'))] +fn test___execute___should_fail_with_zero_calls() { + setup_contracts_for_testing(); + + let eoa_contract = deploy_eoa(eoa_address()); + let eoa_contract = IAccountDispatcher { contract_address: eoa_contract.contract_address }; + + set_contract_address(contract_address_const::<0>()); + eoa_contract.__execute__(array![]); +} + +#[test] +#[should_panic(expected: ('EOA: reentrant call', 'ENTRYPOINT_FAILED'))] +fn test___validate__fail__caller_not_0() { + let (native_token, kakarot_core) = setup_contracts_for_testing(); + let evm_address = evm_address(); + let eoa = kakarot_core.deploy_externally_owned_account(evm_address); + fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); + let eoa_contract = IAccountDispatcher { contract_address: eoa }; + + set_contract_address(other_starknet_address()); + + let calls = array![]; + eoa_contract.__validate__(calls); +} + +#[test] +#[should_panic(expected: ('EOA: multicall not supported', 'ENTRYPOINT_FAILED'))] +fn test___validate__fail__call_data_len_not_1() { + let (native_token, kakarot_core) = setup_contracts_for_testing(); + let evm_address = evm_address(); + let eoa = kakarot_core.deploy_externally_owned_account(evm_address); + fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); + let eoa_contract = IAccountDispatcher { contract_address: eoa }; + + set_contract_address(contract_address_const::<0>()); + + let calls = array![]; + eoa_contract.__validate__(calls); +} + +#[test] +#[should_panic(expected: ('to is not kakarot core', 'ENTRYPOINT_FAILED'))] +fn test___validate__fail__to_address_not_kakarot_core() { + let (native_token, kakarot_core) = setup_contracts_for_testing(); + let evm_address = evm_address(); + let eoa = kakarot_core.deploy_externally_owned_account(evm_address); + fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); + let eoa_contract = IAccountDispatcher { contract_address: eoa }; + + // to reproduce locally: + // run: cp .env.example .env + // bun install & bun run scripts/compute_rlp_encoding.ts + let signature = Signature { + r: 0xaae7c4f6e4caa03257e37a6879ed5b51a6f7db491d559d10a0594f804aa8d797, + s: 0x2f3d9634f8cb9b9a43b048ee3310be91c2d3dc3b51a3313b473ef2260bbf6bc7, + y_parity: true + }; + set_signature(serialize_transaction_signature(signature, TransactionType::Legacy, 1).span()); + set_contract_address(contract_address_const::<0>()); + + let call = Call { + to: other_starknet_address(), + selector: selector!("eth_send_transaction"), + calldata: array![].span() + }; + + eoa_contract.__validate__(array![call]); +} + +#[test] +#[should_panic(expected: ("Validate: selector must be eth_send_transaction", 'ENTRYPOINT_FAILED'))] +fn test___validate__fail__selector_not_eth_send_transaction() { + let (native_token, kakarot_core) = setup_contracts_for_testing(); + let evm_address = evm_address(); + let eoa = kakarot_core.deploy_externally_owned_account(evm_address); + fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); + let eoa_contract = IAccountDispatcher { contract_address: eoa }; + + set_chain_id(chain_id().into()); + let mut vm = VMBuilderTrait::new_with_presets().build(); + let chain_id = vm.env.chain_id; + set_contract_address(contract_address_const::<0>()); + + // to reproduce locally: + // run: cp .env.example .env + // bun install & bun run scripts/compute_rlp_encoding.ts + let signature = Signature { + r: 0xaae7c4f6e4caa03257e37a6879ed5b51a6f7db491d559d10a0594f804aa8d797, + s: 0x2f3d9634f8cb9b9a43b048ee3310be91c2d3dc3b51a3313b473ef2260bbf6bc7, + y_parity: true + }; + set_signature( + serialize_transaction_signature(signature, TransactionType::Legacy, chain_id).span() + ); + + let call = Call { + to: kakarot_core.contract_address, + selector: selector!("eth_call"), + calldata: array![].span() + }; + + eoa_contract.__validate__(array![call]); +} + +#[test] +fn test___validate__legacy_transaction() { + let (native_token, kakarot_core) = setup_contracts_for_testing(); + let evm_address: EthAddress = 0xaA36F24f65b5F0f2c642323f3d089A3F0f2845Bf_u256.into(); + let eoa = kakarot_core.deploy_externally_owned_account(evm_address); + fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); + + let eoa_contract = IAccountDispatcher { contract_address: eoa }; + + set_chain_id(chain_id().into()); + let mut vm = VMBuilderTrait::new_with_presets().build(); + let chain_id = vm.env.chain_id; + + // to reproduce locally: + // run: cp .env.example .env + // bun install & bun run scripts/compute_rlp_encoding.ts + let signature = Signature { + r: 0x5e5202c7e9d6d0964a1f48eaecf12eef1c3cafb2379dfeca7cbd413cedd4f2c7, + s: 0x66da52d0b666fc2a35895e0c91bc47385fe3aa347c7c2a129ae2b7b06cb5498b, + y_parity: false + }; + set_signature( + serialize_transaction_signature(signature, TransactionType::Legacy, chain_id).span() + ); + + set_contract_address(contract_address_const::<0>()); + + let call = Call { + to: kakarot_core.contract_address, + selector: selector!("eth_send_transaction"), + calldata: serialize_bytes(legacy_rlp_encoded_tx()).span() + }; + + let result = eoa_contract.__validate__(array![call]); + assert(result == VALIDATED, 'validation failed'); +} + +#[test] +fn test___validate__eip_2930_transaction() { + let (native_token, kakarot_core) = setup_contracts_for_testing(); + let evm_address: EthAddress = 0xaA36F24f65b5F0f2c642323f3d089A3F0f2845Bf_u256.into(); + let eoa = kakarot_core.deploy_externally_owned_account(evm_address); + fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); + + let eoa_contract = IAccountDispatcher { contract_address: eoa }; + + set_chain_id(chain_id().into()); + let mut vm = VMBuilderTrait::new_with_presets().build(); + let chain_id = vm.env.chain_id; + + // to reproduce locally: + // run: cp .env.example .env + // bun install & bun run scripts/compute_rlp_encoding.ts + let signature = Signature { + r: 0xbced8d81c36fe13c95b883b67898b47b4b70cae79e89fa27856ddf8c533886d1, + s: 0x3de0109f00bc3ed95ffec98edd55b6f750cb77be8e755935dbd6cfec59da7ad0, + y_parity: true + }; + + set_signature( + serialize_transaction_signature(signature, TransactionType::EIP2930, chain_id).span() + ); + + set_contract_address(contract_address_const::<0>()); + + let call = Call { + to: kakarot_core.contract_address, + selector: selector!("eth_send_transaction"), + calldata: serialize_bytes(eip_2930_encoded_tx()).span() + }; + + let result = eoa_contract.__validate__(array![call]); + assert(result == VALIDATED, 'validation failed'); +} + +#[test] +fn test___validate__eip_1559_transaction() { + let (native_token, kakarot_core) = setup_contracts_for_testing(); + let evm_address: EthAddress = 0xaA36F24f65b5F0f2c642323f3d089A3F0f2845Bf_u256.into(); + let eoa = kakarot_core.deploy_externally_owned_account(evm_address); + fund_account_with_native_token(eoa, native_token, 0xfffffffffffffffffffffffffff); + + let eoa_contract = IAccountDispatcher { contract_address: eoa }; + + set_chain_id(chain_id().into()); + let mut vm = VMBuilderTrait::new_with_presets().build(); + let chain_id = vm.env.chain_id; + + // to reproduce locally: + // run: cp .env.example .env + // bun install & bun run scripts/compute_rlp_encoding.ts + let signature = Signature { + r: 0x0f9a716653c19fefc240d1da2c5759c50f844fc8835c82834ea3ab7755f789a0, + s: 0x71506d904c05c6e5ce729b5dd88bcf29db9461c8d72413b864923e8d8f6650c0, + y_parity: true + }; + + set_signature( + serialize_transaction_signature(signature, TransactionType::EIP1559, chain_id).span() + ); + + set_contract_address(contract_address_const::<0>()); + + let call = Call { + to: kakarot_core.contract_address, + selector: selector!("eth_send_transaction"), + calldata: serialize_bytes(eip_1559_encoded_tx()).span() + }; + + let result = eoa_contract.__validate__(array![call]); + assert(result == VALIDATED, 'validation failed'); +} diff --git a/crates/contracts/src/tests/test_kakarot_core.cairo b/crates/contracts/tests/test_kakarot_core.cairo similarity index 98% rename from crates/contracts/src/tests/test_kakarot_core.cairo rename to crates/contracts/tests/test_kakarot_core.cairo index 9dd0bc1b5..717312d1e 100644 --- a/crates/contracts/src/tests/test_kakarot_core.cairo +++ b/crates/contracts/tests/test_kakarot_core.cairo @@ -7,21 +7,21 @@ use contracts::kakarot_core::interface::{ use contracts::kakarot_core::{ interface::IExtendedKakarotCoreDispatcherImpl, KakarotCore, KakarotCore::{KakarotCoreInternal}, }; -use contracts::tests::test_data::{deploy_counter_calldata, counter_evm_bytecode}; -use contracts::tests::test_upgradeable::{ +use contracts::test_data::{deploy_counter_calldata, counter_evm_bytecode}; +use contracts::test_utils as contract_utils; +use contracts::uninitialized_account::UninitializedAccount; +use contracts_tests::test_upgradeable::{ MockContractUpgradeableV1, IMockContractUpgradeableDispatcher, IMockContractUpgradeableDispatcherTrait }; -use contracts::tests::test_utils as contract_utils; -use contracts::uninitialized_account::UninitializedAccount; use core::num::traits::Zero; use core::option::OptionTrait; use core::traits::TryInto; use evm::model::{Address}; -use evm::tests::test_utils::{sequencer_evm_address, chain_id}; -use evm::tests::test_utils; +use evm::test_utils::{sequencer_evm_address, chain_id}; +use evm::test_utils; use starknet::{testing, contract_address_const, ContractAddress, EthAddress, ClassHash}; use utils::eth_transaction::{EthereumTransaction, EthereumTransactionTrait, LegacyTransaction}; use utils::helpers::{EthAddressExTrait, u256_to_bytes_array}; diff --git a/crates/contracts/src/tests/test_ownable.cairo b/crates/contracts/tests/test_ownable.cairo similarity index 97% rename from crates/contracts/src/tests/test_ownable.cairo rename to crates/contracts/tests/test_ownable.cairo index 0cd5311f2..7128c5a07 100644 --- a/crates/contracts/src/tests/test_ownable.cairo +++ b/crates/contracts/tests/test_ownable.cairo @@ -1,6 +1,6 @@ use contracts::components::ownable::{ownable_component}; -use contracts::tests::test_utils::constants::{ZERO, OWNER, OTHER}; -use contracts::tests::test_utils; +use contracts::test_utils::constants::{ZERO, OWNER, OTHER}; +use contracts::test_utils; use core::num::traits::Zero; diff --git a/crates/contracts/src/tests/test_upgradeable.cairo b/crates/contracts/tests/test_upgradeable.cairo similarity index 98% rename from crates/contracts/src/tests/test_upgradeable.cairo rename to crates/contracts/tests/test_upgradeable.cairo index c40a717b0..56981ab0b 100644 --- a/crates/contracts/src/tests/test_upgradeable.cairo +++ b/crates/contracts/tests/test_upgradeable.cairo @@ -1,7 +1,7 @@ use MockContractUpgradeableV0::HasComponentImpl_upgradeable_component; use contracts::components::upgradeable::{IUpgradeableDispatcher, IUpgradeableDispatcherTrait}; use contracts::components::upgradeable::{upgradeable_component}; -use contracts::tests::test_utils; +use contracts::test_utils; use core::serde::Serde; use starknet::{deploy_syscall, ClassHash, ContractAddress, testing}; diff --git a/crates/evm/src/gas.cairo b/crates/evm/src/gas.cairo index 5e6adbc5a..8a5899555 100644 --- a/crates/evm/src/gas.cairo +++ b/crates/evm/src/gas.cairo @@ -227,7 +227,7 @@ fn calculate_intrinsic_gas_cost(tx: @EthereumTransaction) -> u128 { loop { match access_list.pop_front() { Option::Some(access_list_item) => { - let AccessListItem{ethereum_address: _, storage_keys } = access_list_item; + let AccessListItem { ethereum_address: _, storage_keys } = access_list_item; access_list_cost += ACCESS_LIST_ADDRESS + (ACCESS_LIST_STORAGE_KEY * (*storage_keys).len().into()); }, diff --git a/crates/evm/src/lib.cairo b/crates/evm/src/lib.cairo index 20f2b9b6a..28d42cc2f 100644 --- a/crates/evm/src/lib.cairo +++ b/crates/evm/src/lib.cairo @@ -32,6 +32,5 @@ mod stack; // Local state mod state; -// tests -#[cfg(test)] -mod tests; +#[cfg(target: 'test')] +mod test_utils; diff --git a/crates/evm/src/tests/test_utils.cairo b/crates/evm/src/test_utils.cairo similarity index 99% rename from crates/evm/src/tests/test_utils.cairo rename to crates/evm/src/test_utils.cairo index 8cff069ba..16035489f 100644 --- a/crates/evm/src/tests/test_utils.cairo +++ b/crates/evm/src/test_utils.cairo @@ -1,5 +1,5 @@ use contracts::account_contract::{IAccountDispatcher, IAccountDispatcherTrait}; -use contracts::tests::test_utils::{deploy_contract_account}; +use contracts::test_utils::{deploy_contract_account}; use contracts::uninitialized_account::UninitializedAccount; use core::nullable::{match_nullable, FromNullableResult}; use core::traits::TryInto; diff --git a/crates/evm/src/tests.cairo b/crates/evm/tests/lib.cairo similarity index 92% rename from crates/evm/src/tests.cairo rename to crates/evm/tests/lib.cairo index fcaa283dc..86d70ae79 100644 --- a/crates/evm/src/tests.cairo +++ b/crates/evm/tests/lib.cairo @@ -17,4 +17,3 @@ mod test_stack; mod test_starknet_backend; mod test_state; -mod test_utils; diff --git a/crates/evm/src/tests/test_create_helpers.cairo b/crates/evm/tests/test_create_helpers.cairo similarity index 63% rename from crates/evm/src/tests/test_create_helpers.cairo rename to crates/evm/tests/test_create_helpers.cairo index 499c4b747..34fb8d726 100644 --- a/crates/evm/src/tests/test_create_helpers.cairo +++ b/crates/evm/tests/test_create_helpers.cairo @@ -1,6 +1,6 @@ -use contracts::tests::test_data::counter_evm_bytecode; +use contracts::test_data::counter_evm_bytecode; use evm::create_helpers::CreateHelpers; -use evm::tests::test_utils::{VMBuilderTrait}; +use evm::test_utils::{VMBuilderTrait}; use starknet::EthAddress; use utils::address::{compute_contract_address, compute_create2_contract_address}; //TODO: test create helpers diff --git a/crates/evm/src/tests/test_gas.cairo b/crates/evm/tests/test_gas.cairo similarity index 98% rename from crates/evm/src/tests/test_gas.cairo rename to crates/evm/tests/test_gas.cairo index a0babc2bd..4ea3fa494 100644 --- a/crates/evm/src/tests/test_gas.cairo +++ b/crates/evm/tests/test_gas.cairo @@ -4,7 +4,7 @@ use evm::gas::{ calculate_intrinsic_gas_cost, calculate_memory_gas_cost, ACCESS_LIST_ADDRESS, ACCESS_LIST_STORAGE_KEY }; -use evm::tests::test_utils::evm_address; +use evm::test_utils::evm_address; use starknet::EthAddress; use utils::eth_transaction::{ EthereumTransaction, LegacyTransaction, AccessListTransaction, EthereumTransactionTrait, diff --git a/crates/evm/src/tests/test_instructions.cairo b/crates/evm/tests/test_instructions.cairo similarity index 100% rename from crates/evm/src/tests/test_instructions.cairo rename to crates/evm/tests/test_instructions.cairo diff --git a/crates/evm/src/tests/test_instructions/test_block_information.cairo b/crates/evm/tests/test_instructions/test_block_information.cairo similarity index 98% rename from crates/evm/src/tests/test_instructions/test_block_information.cairo rename to crates/evm/tests/test_instructions/test_block_information.cairo index 648075891..24abdaae5 100644 --- a/crates/evm/src/tests/test_instructions/test_block_information.cairo +++ b/crates/evm/tests/test_instructions/test_block_information.cairo @@ -2,13 +2,13 @@ use contracts::kakarot_core::interface::{ IExtendedKakarotCoreDispatcher, IExtendedKakarotCoreDispatcherTrait }; -use contracts::tests::test_utils::{ +use contracts::test_utils::{ setup_contracts_for_testing, fund_account_with_native_token, deploy_contract_account, }; use core::result::ResultTrait; use evm::instructions::BlockInformationTrait; use evm::stack::StackTrait; -use evm::tests::test_utils::{evm_address, VMBuilderTrait, tx_gas_limit, gas_price}; +use evm::test_utils::{evm_address, VMBuilderTrait, tx_gas_limit, gas_price}; use openzeppelin::token::erc20::interface::IERC20CamelDispatcherTrait; use starknet::testing::{ set_block_timestamp, set_block_number, set_contract_address, set_sequencer_address, diff --git a/crates/evm/src/tests/test_instructions/test_comparison_operations.cairo b/crates/evm/tests/test_instructions/test_comparison_operations.cairo similarity index 99% rename from crates/evm/src/tests/test_instructions/test_comparison_operations.cairo rename to crates/evm/tests/test_instructions/test_comparison_operations.cairo index c0f6f5f59..5760af980 100644 --- a/crates/evm/src/tests/test_instructions/test_comparison_operations.cairo +++ b/crates/evm/tests/test_instructions/test_comparison_operations.cairo @@ -1,7 +1,7 @@ use core::integer::BoundedInt; use evm::instructions::ComparisonAndBitwiseOperationsTrait; use evm::stack::StackTrait; -use evm::tests::test_utils::VMBuilderTrait; +use evm::test_utils::VMBuilderTrait; #[test] fn test_eq_same_pair() { diff --git a/crates/evm/src/tests/test_instructions/test_duplication_operations.cairo b/crates/evm/tests/test_instructions/test_duplication_operations.cairo similarity index 99% rename from crates/evm/src/tests/test_instructions/test_duplication_operations.cairo rename to crates/evm/tests/test_instructions/test_duplication_operations.cairo index 729c15b0b..c35b23705 100644 --- a/crates/evm/src/tests/test_instructions/test_duplication_operations.cairo +++ b/crates/evm/tests/test_instructions/test_duplication_operations.cairo @@ -2,7 +2,7 @@ use core::integer::BoundedInt; use evm::instructions::DuplicationOperationsTrait; use evm::stack::Stack; use evm::stack::StackTrait; -use evm::tests::test_utils::VMBuilderTrait; +use evm::test_utils::VMBuilderTrait; // ensures all values start from index `from` upto index `to` of stack are `0x0` diff --git a/crates/evm/src/tests/test_instructions/test_environment_information.cairo b/crates/evm/tests/test_instructions/test_environment_information.cairo similarity index 99% rename from crates/evm/src/tests/test_instructions/test_environment_information.cairo rename to crates/evm/tests/test_instructions/test_environment_information.cairo index d2376d749..d3e586225 100644 --- a/crates/evm/src/tests/test_instructions/test_environment_information.cairo +++ b/crates/evm/tests/test_instructions/test_environment_information.cairo @@ -1,6 +1,6 @@ use contracts::kakarot_core::{interface::IExtendedKakarotCoreDispatcherImpl, KakarotCore}; -use contracts::tests::test_data::counter_evm_bytecode; -use contracts::tests::test_utils::{ +use contracts::test_data::counter_evm_bytecode; +use contracts::test_utils::{ setup_contracts_for_testing, fund_account_with_native_token, deploy_contract_account }; use core::integer::u32_overflowing_add; @@ -12,7 +12,7 @@ use evm::model::vm::{VM, VMTrait}; use evm::model::{Account}; use evm::stack::StackTrait; use evm::state::StateTrait; -use evm::tests::test_utils::{ +use evm::test_utils::{ VMBuilderTrait, evm_address, origin, callvalue, native_token, other_address, gas_price, tx_gas_limit }; @@ -917,7 +917,7 @@ fn test_exec_extcodehash_precompile() { // // The bytecode remains empty, and we expect the empty hash in return // let mut ca_address = deploy_contract_account(evm_address, array![].span()); // let account = Account { -// +// // address: ca_address, // code: array![].span(), // nonce: 1, diff --git a/crates/evm/src/tests/test_instructions/test_exchange_operations.cairo b/crates/evm/tests/test_instructions/test_exchange_operations.cairo similarity index 99% rename from crates/evm/src/tests/test_instructions/test_exchange_operations.cairo rename to crates/evm/tests/test_instructions/test_exchange_operations.cairo index 5742507a9..bd3570d26 100644 --- a/crates/evm/src/tests/test_instructions/test_exchange_operations.cairo +++ b/crates/evm/tests/test_instructions/test_exchange_operations.cairo @@ -1,7 +1,7 @@ use core::array::ArrayTrait; use evm::instructions::exchange_operations::ExchangeOperationsTrait; use evm::stack::StackTrait; -use evm::tests::test_utils::VMBuilderTrait; +use evm::test_utils::VMBuilderTrait; #[test] diff --git a/crates/evm/src/tests/test_instructions/test_logging_operations.cairo b/crates/evm/tests/test_instructions/test_logging_operations.cairo similarity index 99% rename from crates/evm/src/tests/test_instructions/test_logging_operations.cairo rename to crates/evm/tests/test_instructions/test_logging_operations.cairo index 4b53b744e..402d71b5c 100644 --- a/crates/evm/src/tests/test_instructions/test_logging_operations.cairo +++ b/crates/evm/tests/test_instructions/test_logging_operations.cairo @@ -5,7 +5,7 @@ use evm::instructions::LoggingOperationsTrait; use evm::memory::MemoryTrait; use evm::stack::StackTrait; use evm::state::StateTrait; -use evm::tests::test_utils::{VMBuilderTrait}; +use evm::test_utils::{VMBuilderTrait}; use utils::helpers::u256_to_bytes_array; #[test] diff --git a/crates/evm/src/tests/test_instructions/test_memory_operations.cairo b/crates/evm/tests/test_instructions/test_memory_operations.cairo similarity index 99% rename from crates/evm/src/tests/test_instructions/test_memory_operations.cairo rename to crates/evm/tests/test_instructions/test_memory_operations.cairo index c8acbcd14..31c10a9fa 100644 --- a/crates/evm/src/tests/test_instructions/test_memory_operations.cairo +++ b/crates/evm/tests/test_instructions/test_memory_operations.cairo @@ -1,5 +1,5 @@ use contracts::account_contract::{IAccountDispatcher, IAccountDispatcherTrait}; -use contracts::tests::test_utils::{setup_contracts_for_testing, deploy_contract_account}; +use contracts::test_utils::{setup_contracts_for_testing, deploy_contract_account}; use core::integer::BoundedInt; use core::result::ResultTrait; use evm::backend::starknet_backend::fetch_original_storage; @@ -11,7 +11,7 @@ use evm::model::vm::{VM, VMTrait}; use evm::model::{Account, AccountTrait}; use evm::stack::StackTrait; use evm::state::{StateTrait, compute_storage_address}; -use evm::tests::test_utils::{evm_address, VMBuilderTrait}; +use evm::test_utils::{evm_address, VMBuilderTrait}; use starknet::get_contract_address; #[test] diff --git a/crates/evm/src/tests/test_instructions/test_push_operations.cairo b/crates/evm/tests/test_instructions/test_push_operations.cairo similarity index 99% rename from crates/evm/src/tests/test_instructions/test_push_operations.cairo rename to crates/evm/tests/test_instructions/test_push_operations.cairo index 81562fbb7..0db783285 100644 --- a/crates/evm/src/tests/test_instructions/test_push_operations.cairo +++ b/crates/evm/tests/test_instructions/test_push_operations.cairo @@ -1,6 +1,6 @@ use evm::instructions::PushOperationsTrait; use evm::stack::StackTrait; -use evm::tests::test_utils::{VMBuilderTrait}; +use evm::test_utils::{VMBuilderTrait}; fn get_n_0xFF(mut n: u8) -> Span { let mut array: Array = ArrayTrait::new(); diff --git a/crates/evm/src/tests/test_instructions/test_sha3.cairo b/crates/evm/tests/test_instructions/test_sha3.cairo similarity index 99% rename from crates/evm/src/tests/test_instructions/test_sha3.cairo rename to crates/evm/tests/test_instructions/test_sha3.cairo index ae1bc4040..a3617b3c1 100644 --- a/crates/evm/src/tests/test_instructions/test_sha3.cairo +++ b/crates/evm/tests/test_instructions/test_sha3.cairo @@ -3,7 +3,7 @@ use evm::instructions::Sha3Trait; use evm::instructions::sha3::internal; use evm::memory::{InternalMemoryTrait, MemoryTrait}; use evm::stack::StackTrait; -use evm::tests::test_utils::VMBuilderTrait; +use evm::test_utils::VMBuilderTrait; #[test] fn test_exec_sha3_size_0_offset_0() { diff --git a/crates/evm/src/tests/test_instructions/test_stop_and_arithmetic_operations.cairo b/crates/evm/tests/test_instructions/test_stop_and_arithmetic_operations.cairo similarity index 99% rename from crates/evm/src/tests/test_instructions/test_stop_and_arithmetic_operations.cairo rename to crates/evm/tests/test_instructions/test_stop_and_arithmetic_operations.cairo index 13bac7a65..ac2f914d2 100644 --- a/crates/evm/src/tests/test_instructions/test_stop_and_arithmetic_operations.cairo +++ b/crates/evm/tests/test_instructions/test_stop_and_arithmetic_operations.cairo @@ -3,7 +3,7 @@ use core::result::ResultTrait; use evm::instructions::StopAndArithmeticOperationsTrait; use evm::model::vm::{VM, VMTrait}; use evm::stack::StackTrait; -use evm::tests::test_utils::VMBuilderTrait; +use evm::test_utils::VMBuilderTrait; #[test] @@ -467,4 +467,3 @@ fn test_exec_signextend_on_negative() { vm.stack.peek().unwrap() == 0x01, 'stack top should be 0' ); // The 241-th bit of x is 0, so all bits before t are switched to 0 } - diff --git a/crates/evm/src/tests/test_instructions/test_system_operations.cairo b/crates/evm/tests/test_instructions/test_system_operations.cairo similarity index 98% rename from crates/evm/src/tests/test_instructions/test_system_operations.cairo rename to crates/evm/tests/test_instructions/test_system_operations.cairo index 00c5d0771..6c275fc3c 100644 --- a/crates/evm/src/tests/test_instructions/test_system_operations.cairo +++ b/crates/evm/tests/test_instructions/test_system_operations.cairo @@ -1,8 +1,7 @@ use contracts::kakarot_core::interface::IExtendedKakarotCoreDispatcherTrait; -use contracts::tests::test_data::{storage_evm_bytecode, storage_evm_initcode}; -use contracts::tests::test_eoa::test_external_owned_account::deploy_eoa; -use contracts::tests::test_utils::{ - fund_account_with_native_token, setup_contracts_for_testing, deploy_contract_account +use contracts::test_data::{storage_evm_bytecode, storage_evm_initcode}; +use contracts::test_utils::{ + fund_account_with_native_token, setup_contracts_for_testing, deploy_contract_account, deploy_eoa }; use core::result::ResultTrait; use core::traits::TryInto; @@ -18,7 +17,7 @@ use evm::model::vm::{VM, VMTrait}; use evm::model::{AccountTrait, Address, Transfer}; use evm::stack::StackTrait; use evm::state::{StateTrait, State}; -use evm::tests::test_utils::{ +use evm::test_utils::{ VMBuilderTrait, initialize_contract_account, native_token, evm_address, test_address, other_evm_address, }; @@ -485,8 +484,8 @@ fn test_exec_create_no_value_transfer() { vm.exec_create().unwrap(); EVMTrait::execute_code(ref vm); - // computed using `compute_create_address` script - // run `bun run compute_create_address` -> CREATE -> EthAddress = evm_address() -> nonce = 1 + // computed using `compute_create_address` script + // run `bun run compute_create_address` -> CREATE -> EthAddress = evm_address() -> nonce = 1 let account = vm .env .state @@ -681,4 +680,3 @@ fn test_exec_selfdestruct_add_transfer_post_selfdestruct() { assert(sender_balance == 0, 'sender wrong balance'); assert(ca_balance == 150, 'ca wrong balance'); } - diff --git a/crates/evm/src/tests/test_machine.cairo b/crates/evm/tests/test_machine.cairo similarity index 98% rename from crates/evm/src/tests/test_machine.cairo rename to crates/evm/tests/test_machine.cairo index 1e2742483..46789ea8c 100644 --- a/crates/evm/src/tests/test_machine.cairo +++ b/crates/evm/tests/test_machine.cairo @@ -1,7 +1,7 @@ use evm::errors::DebugEVMError; use evm::errors::{EVMError, READ_SYSCALL_FAILED}; use evm::model::vm::{VM, VMTrait}; -use evm::tests::test_utils::{ +use evm::test_utils::{ tx_gas_limit, evm_address, starknet_address, VMBuilderTrait, test_address, gas_price }; @@ -86,4 +86,3 @@ fn test_return_data() { let return_data = vm.return_data(); assert(return_data.len() == 0, 'wrong length'); } - diff --git a/crates/evm/src/tests/test_memory.cairo b/crates/evm/tests/test_memory.cairo similarity index 100% rename from crates/evm/src/tests/test_memory.cairo rename to crates/evm/tests/test_memory.cairo diff --git a/crates/evm/src/tests/test_model.cairo b/crates/evm/tests/test_model.cairo similarity index 99% rename from crates/evm/src/tests/test_model.cairo rename to crates/evm/tests/test_model.cairo index ed26fee23..de89564a4 100644 --- a/crates/evm/src/tests/test_model.cairo +++ b/crates/evm/tests/test_model.cairo @@ -1,7 +1,7 @@ mod test_vm; use contracts::account_contract::{IAccountDispatcher, IAccountDispatcherTrait}; use contracts::kakarot_core::interface::IExtendedKakarotCoreDispatcherTrait; -use contracts::tests::test_utils::{ +use contracts::test_utils::{ setup_contracts_for_testing, fund_account_with_native_token, deploy_contract_account }; use core::starknet::EthAddress; @@ -11,7 +11,7 @@ use evm::model::account::AccountTrait; use evm::model::{Address, Account, AddressTrait}; use evm::state::StateTrait; use evm::state::{State, StateChangeLog, StateChangeLogTrait}; -use evm::tests::test_utils::{evm_address}; +use evm::test_utils::{evm_address}; use openzeppelin::token::erc20::interface::IERC20CamelDispatcherTrait; use starknet::testing::set_contract_address; diff --git a/crates/evm/src/tests/test_model/test_vm.cairo b/crates/evm/tests/test_model/test_vm.cairo similarity index 100% rename from crates/evm/src/tests/test_model/test_vm.cairo rename to crates/evm/tests/test_model/test_vm.cairo diff --git a/crates/evm/src/tests/test_precompiles.cairo b/crates/evm/tests/test_precompiles.cairo similarity index 100% rename from crates/evm/src/tests/test_precompiles.cairo rename to crates/evm/tests/test_precompiles.cairo diff --git a/crates/evm/src/tests/test_precompiles/test_blake2f.cairo b/crates/evm/tests/test_precompiles/test_blake2f.cairo similarity index 97% rename from crates/evm/src/tests/test_precompiles/test_blake2f.cairo rename to crates/evm/tests/test_precompiles/test_blake2f.cairo index 81a59de57..1f71a5932 100644 --- a/crates/evm/src/tests/test_precompiles/test_blake2f.cairo +++ b/crates/evm/tests/test_precompiles/test_blake2f.cairo @@ -1,4 +1,4 @@ -use contracts::tests::test_utils::{setup_contracts_for_testing}; +use contracts::test_utils::{setup_contracts_for_testing}; use core::array::SpanTrait; use evm::errors::EVMError; use evm::instructions::memory_operations::MemoryOperationTrait; @@ -8,7 +8,7 @@ use evm::memory::InternalMemoryTrait; use evm::memory::MemoryTrait; use evm::precompiles::blake2f::Blake2f; use evm::stack::StackTrait; -use evm::tests::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; +use evm::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; use starknet::testing::set_contract_address; use super::test_data::test_data_blake2f::{ blake2_precompile_fail_wrong_length_input_1_test_case, diff --git a/crates/evm/src/tests/test_precompiles/test_data.cairo b/crates/evm/tests/test_precompiles/test_data.cairo similarity index 100% rename from crates/evm/src/tests/test_precompiles/test_data.cairo rename to crates/evm/tests/test_precompiles/test_data.cairo diff --git a/crates/evm/src/tests/test_precompiles/test_data/test_data_blake2f.cairo b/crates/evm/tests/test_precompiles/test_data/test_data_blake2f.cairo similarity index 100% rename from crates/evm/src/tests/test_precompiles/test_data/test_data_blake2f.cairo rename to crates/evm/tests/test_precompiles/test_data/test_data_blake2f.cairo diff --git a/crates/evm/src/tests/test_precompiles/test_data/test_data_modexp.cairo b/crates/evm/tests/test_precompiles/test_data/test_data_modexp.cairo similarity index 100% rename from crates/evm/src/tests/test_precompiles/test_data/test_data_modexp.cairo rename to crates/evm/tests/test_precompiles/test_data/test_data_modexp.cairo diff --git a/crates/evm/src/tests/test_precompiles/test_ec_recover.cairo b/crates/evm/tests/test_precompiles/test_ec_recover.cairo similarity index 95% rename from crates/evm/src/tests/test_precompiles/test_ec_recover.cairo rename to crates/evm/tests/test_precompiles/test_ec_recover.cairo index 326177662..9811c762c 100644 --- a/crates/evm/src/tests/test_precompiles/test_ec_recover.cairo +++ b/crates/evm/tests/test_precompiles/test_ec_recover.cairo @@ -1,4 +1,4 @@ -use contracts::tests::test_utils::setup_contracts_for_testing; +use contracts::test_utils::setup_contracts_for_testing; use core::array::ArrayTrait; use evm::instructions::system_operations::SystemOperationsTrait; use evm::memory::InternalMemoryTrait; @@ -6,7 +6,7 @@ use evm::memory::MemoryTrait; use evm::precompiles::ec_recover::EcRecover; use evm::stack::StackTrait; -use evm::tests::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; +use evm::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; use utils::helpers::{U256Trait, ToBytes, FromBytes}; diff --git a/crates/evm/src/tests/test_precompiles/test_identity.cairo b/crates/evm/tests/test_precompiles/test_identity.cairo similarity index 91% rename from crates/evm/src/tests/test_precompiles/test_identity.cairo rename to crates/evm/tests/test_precompiles/test_identity.cairo index e61a08918..d2332b2b1 100644 --- a/crates/evm/src/tests/test_precompiles/test_identity.cairo +++ b/crates/evm/tests/test_precompiles/test_identity.cairo @@ -1,4 +1,4 @@ -use contracts::tests::test_utils::{setup_contracts_for_testing}; +use contracts::test_utils::{setup_contracts_for_testing}; use core::clone::Clone; use core::result::ResultTrait; use evm::instructions::system_operations::SystemOperationsTrait; @@ -6,7 +6,7 @@ use evm::instructions::system_operations::SystemOperationsTrait; use evm::memory::MemoryTrait; use evm::precompiles::identity::Identity; use evm::stack::StackTrait; -use evm::tests::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; +use evm::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; use starknet::testing::set_contract_address; // source: diff --git a/crates/evm/src/tests/test_precompiles/test_modexp.cairo b/crates/evm/tests/test_precompiles/test_modexp.cairo similarity index 95% rename from crates/evm/src/tests/test_precompiles/test_modexp.cairo rename to crates/evm/tests/test_precompiles/test_modexp.cairo index 44399a61b..711d0effd 100644 --- a/crates/evm/src/tests/test_precompiles/test_modexp.cairo +++ b/crates/evm/tests/test_precompiles/test_modexp.cairo @@ -1,4 +1,4 @@ -use contracts::tests::test_utils::{setup_contracts_for_testing}; +use contracts::test_utils::{setup_contracts_for_testing}; use core::result::ResultTrait; use evm::instructions::system_operations::SystemOperationsTrait; @@ -6,14 +6,14 @@ use evm::instructions::system_operations::SystemOperationsTrait; use evm::memory::MemoryTrait; use evm::precompiles::Precompiles; use evm::stack::StackTrait; +use evm::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; -use evm::tests::test_precompiles::test_data::test_data_modexp::{ +use evm_tests::test_precompiles::test_data::test_data_modexp::{ test_modexp_modsize0_returndatasizeFiller_data, test_modexp_create2callPrecompiles_test0_berlin_data, test_modexp_eip198_example_1_data, test_modexp_eip198_example_2_data, test_modexp_nagydani_1_square_data, test_modexp_nagydani_1_qube_data }; -use evm::tests::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; use starknet::EthAddress; use starknet::testing::set_contract_address; use utils::helpers::U256Trait; diff --git a/crates/evm/src/tests/test_precompiles/test_p256verify.cairo b/crates/evm/tests/test_precompiles/test_p256verify.cairo similarity index 97% rename from crates/evm/src/tests/test_precompiles/test_p256verify.cairo rename to crates/evm/tests/test_precompiles/test_p256verify.cairo index 73e63d49a..3c1129321 100644 --- a/crates/evm/src/tests/test_precompiles/test_p256verify.cairo +++ b/crates/evm/tests/test_precompiles/test_p256verify.cairo @@ -1,4 +1,4 @@ -use contracts::tests::test_utils::setup_contracts_for_testing; +use contracts::test_utils::setup_contracts_for_testing; use core::array::ArrayTrait; use evm::instructions::system_operations::SystemOperationsTrait; use evm::memory::InternalMemoryTrait; @@ -6,7 +6,7 @@ use evm::memory::MemoryTrait; use evm::precompiles::p256verify::P256Verify; use evm::stack::StackTrait; -use evm::tests::test_utils::{VMBuilderTrait}; +use evm::test_utils::{VMBuilderTrait}; use utils::helpers::{U256Trait, ToBytes, FromBytes}; diff --git a/crates/evm/src/tests/test_precompiles/test_sha256.cairo b/crates/evm/tests/test_precompiles/test_sha256.cairo similarity index 92% rename from crates/evm/src/tests/test_precompiles/test_sha256.cairo rename to crates/evm/tests/test_precompiles/test_sha256.cairo index c0328dd6b..b1c0a1e96 100644 --- a/crates/evm/src/tests/test_precompiles/test_sha256.cairo +++ b/crates/evm/tests/test_precompiles/test_sha256.cairo @@ -1,11 +1,11 @@ -use contracts::tests::test_utils::{setup_contracts_for_testing}; +use contracts::test_utils::{setup_contracts_for_testing}; use core::result::ResultTrait; use evm::instructions::system_operations::SystemOperationsTrait; use evm::memory::MemoryTrait; use evm::precompiles::sha256::Sha256; use evm::stack::StackTrait; -use evm::tests::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; +use evm::test_utils::{VMBuilderTrait, native_token, other_starknet_address}; use starknet::testing::set_contract_address; use utils::helpers::{FromBytes}; diff --git a/crates/evm/src/tests/test_stack.cairo b/crates/evm/tests/test_stack.cairo similarity index 99% rename from crates/evm/src/tests/test_stack.cairo rename to crates/evm/tests/test_stack.cairo index 5e205e40e..8cd13771b 100644 --- a/crates/evm/src/tests/test_stack.cairo +++ b/crates/evm/tests/test_stack.cairo @@ -41,7 +41,6 @@ fn test_len_should_return_the_length_of_the_stack() { assert(stack.len() == 1, 'stack length should be 1'); } -#[cfg(test)] mod push { use evm::errors::{EVMError}; use super::StackTrait; @@ -88,7 +87,6 @@ mod push { } } -#[cfg(test)] mod pop { use evm::errors::{EVMError, TYPE_CONVERSION_ERROR}; use starknet::storage_base_address_const; @@ -156,7 +154,6 @@ mod pop { } } -#[cfg(test)] mod peek { use evm::errors::{EVMError}; use super::StackTrait; @@ -219,7 +216,6 @@ mod peek { } } -#[cfg(test)] mod swap { use evm::errors::{EVMError}; use super::StackTrait; diff --git a/crates/evm/src/tests/test_starknet_backend.cairo b/crates/evm/tests/test_starknet_backend.cairo similarity index 83% rename from crates/evm/src/tests/test_starknet_backend.cairo rename to crates/evm/tests/test_starknet_backend.cairo index 96a74e384..8541b1333 100644 --- a/crates/evm/src/tests/test_starknet_backend.cairo +++ b/crates/evm/tests/test_starknet_backend.cairo @@ -1,10 +1,10 @@ use contracts::account_contract::{IAccountDispatcher, IAccountDispatcherTrait}; use contracts::kakarot_core::KakarotCore; -use contracts::tests::test_utils as contract_utils; -use contracts::tests::test_utils::{setup_contracts_for_testing, fund_account_with_native_token}; +use contracts::test_utils as contract_utils; +use contracts::test_utils::{setup_contracts_for_testing, fund_account_with_native_token}; use evm::backend::starknet_backend; use evm::errors::EVMErrorTrait; -use evm::tests::test_utils::{chain_id, evm_address, VMBuilderTrait}; +use evm::test_utils::{chain_id, evm_address, VMBuilderTrait}; use openzeppelin::token::erc20::interface::IERC20CamelDispatcherTrait; use starknet::testing::{set_contract_address, set_chain_id}; diff --git a/crates/evm/src/tests/test_state.cairo b/crates/evm/tests/test_state.cairo similarity index 98% rename from crates/evm/src/tests/test_state.cairo rename to crates/evm/tests/test_state.cairo index 50517bf39..8e002e4d0 100644 --- a/crates/evm/src/tests/test_state.cairo +++ b/crates/evm/tests/test_state.cairo @@ -1,7 +1,7 @@ -use contracts::tests::test_utils::{deploy_contract_account, deploy_eoa}; +use contracts::test_utils::{deploy_contract_account, deploy_eoa}; use evm::state::compute_state_key; -use evm::tests::test_utils; +use evm::test_utils; #[test] fn test_compute_state_key() { @@ -21,7 +21,7 @@ fn test_compute_state_key() { // ]; // let values_to_hash = [keys[0],keys[1],keys[2]]; // let hash = poseidon_hash_many(&values_to_hash); - // + // // } // let address = compute_state_key(evm_address, key); @@ -33,7 +33,7 @@ fn test_compute_state_key() { mod test_state_changelog { use evm::state::{StateChangeLog, StateChangeLogTrait}; - use evm::tests::test_utils; + use evm::test_utils; use utils::set::{Set, SetTrait}; use utils::traits::StorageBaseAddressIntoFelt252; @@ -70,13 +70,13 @@ mod test_state_changelog { mod test_state { use contracts::account_contract::{IAccountDispatcher, IAccountDispatcherTrait}; use contracts::kakarot_core::interface::{IExtendedKakarotCoreDispatcherTrait}; - use contracts::tests::test_utils as contract_utils; + use contracts::test_utils as contract_utils; use contracts::uninitialized_account::UninitializedAccount; use evm::backend::starknet_backend; use evm::model::account::{Account, AccountTrait, AccountInternalTrait}; use evm::model::{Event, Transfer, Address}; use evm::state::{State, StateTrait}; - use evm::tests::test_utils; + use evm::test_utils; use openzeppelin::token::erc20::interface::{IERC20CamelDispatcher, IERC20CamelDispatcherTrait}; use starknet::EthAddress; use starknet::testing::set_contract_address; diff --git a/crates/utils/src/eth_transaction.cairo b/crates/utils/src/eth_transaction.cairo index 8e84b7c08..9a330fc51 100644 --- a/crates/utils/src/eth_transaction.cairo +++ b/crates/utils/src/eth_transaction.cairo @@ -22,7 +22,7 @@ struct AccessListItem { #[generate_trait] impl AccessListItemImpl of AccessListItemTrait { fn to_storage_keys(self: @AccessListItem) -> Span<(EthAddress, u256)> { - let AccessListItem{ethereum_address, mut storage_keys } = *self; + let AccessListItem { ethereum_address, mut storage_keys } = *self; let mut storage_keys_arr = array![]; loop { @@ -459,7 +459,7 @@ impl EthTransactionImpl of EthTransactionTrait { fn validate_eth_tx( tx_metadata: TransactionMetadata, encoded_tx_data: Span ) -> Result { - let TransactionMetadata{address, account_nonce, chain_id, signature } = tx_metadata; + let TransactionMetadata { address, account_nonce, chain_id, signature } = tx_metadata; let decoded_tx = EthTransactionTrait::decode(encoded_tx_data)?; diff --git a/crates/utils/src/lib.cairo b/crates/utils/src/lib.cairo index e6d7fb517..d0edbfe64 100644 --- a/crates/utils/src/lib.cairo +++ b/crates/utils/src/lib.cairo @@ -15,6 +15,7 @@ mod serialization; mod set; mod storage; -#[cfg(test)] -mod tests; +#[cfg(target: 'test')] +mod test_data; + mod traits; diff --git a/crates/utils/src/tests/test_data.cairo b/crates/utils/src/test_data.cairo similarity index 100% rename from crates/utils/src/tests/test_data.cairo rename to crates/utils/src/test_data.cairo diff --git a/crates/utils/src/tests.cairo b/crates/utils/tests/lib.cairo similarity index 92% rename from crates/utils/src/tests.cairo rename to crates/utils/tests/lib.cairo index e980a6488..d913629fb 100644 --- a/crates/utils/src/tests.cairo +++ b/crates/utils/tests/lib.cairo @@ -1,5 +1,4 @@ mod test_address; -mod test_data; mod test_eth_transaction; mod test_helpers; mod test_i256; diff --git a/crates/utils/src/tests/test_address.cairo b/crates/utils/tests/test_address.cairo similarity index 94% rename from crates/utils/src/tests/test_address.cairo rename to crates/utils/tests/test_address.cairo index 9987e9cd1..b89691d6b 100644 --- a/crates/utils/src/tests/test_address.cairo +++ b/crates/utils/tests/test_address.cairo @@ -1,4 +1,4 @@ -use contracts::tests::test_data::counter_evm_bytecode; +use contracts::test_data::counter_evm_bytecode; use starknet::EthAddress; use utils::address::{compute_contract_address, compute_create2_contract_address}; diff --git a/crates/utils/src/tests/test_eth_transaction.cairo b/crates/utils/tests/test_eth_transaction.cairo similarity index 99% rename from crates/utils/src/tests/test_eth_transaction.cairo rename to crates/utils/tests/test_eth_transaction.cairo index 9bbbf5573..2d217676a 100644 --- a/crates/utils/src/tests/test_eth_transaction.cairo +++ b/crates/utils/tests/test_eth_transaction.cairo @@ -1,4 +1,4 @@ -use contracts::tests::test_utils::chain_id; +use contracts::test_utils::chain_id; use core::option::OptionTrait; use core::starknet::eth_signature::{EthAddress, Signature}; @@ -9,7 +9,7 @@ use utils::eth_transaction::{ }; use utils::helpers::{U256Trait, ToBytes}; use utils::rlp::{RLPTrait, RLPItem, RLPHelpersTrait}; -use utils::tests::test_data::{ +use utils::test_data::{ legacy_rlp_encoded_tx, legacy_rlp_encoded_deploy_tx, eip_2930_encoded_tx, eip_1559_encoded_tx }; diff --git a/crates/utils/src/tests/test_helpers.cairo b/crates/utils/tests/test_helpers.cairo similarity index 100% rename from crates/utils/src/tests/test_helpers.cairo rename to crates/utils/tests/test_helpers.cairo diff --git a/crates/utils/src/tests/test_i256.cairo b/crates/utils/tests/test_i256.cairo similarity index 100% rename from crates/utils/src/tests/test_i256.cairo rename to crates/utils/tests/test_i256.cairo diff --git a/crates/utils/src/tests/test_math.cairo b/crates/utils/tests/test_math.cairo similarity index 100% rename from crates/utils/src/tests/test_math.cairo rename to crates/utils/tests/test_math.cairo diff --git a/crates/utils/src/tests/test_modexp.cairo b/crates/utils/tests/test_modexp.cairo similarity index 100% rename from crates/utils/src/tests/test_modexp.cairo rename to crates/utils/tests/test_modexp.cairo diff --git a/crates/utils/src/tests/test_modexp/test_arith.cairo b/crates/utils/tests/test_modexp/test_arith.cairo similarity index 99% rename from crates/utils/src/tests/test_modexp/test_arith.cairo rename to crates/utils/tests/test_modexp/test_arith.cairo index 629b0486f..f7720bb31 100644 --- a/crates/utils/src/tests/test_modexp/test_arith.cairo +++ b/crates/utils/tests/test_modexp/test_arith.cairo @@ -14,7 +14,7 @@ use utils::crypto::modexp::mpnat::{ use utils::helpers::{Felt252VecTrait, ToBytes}; use utils::helpers::{U128Trait}; use utils::math::{WrappingMul, WrappingBitshift, WrappingExponentiation}; -use utils::tests::test_modexp::test_mpnat::{mp_nat_to_u128}; +use utils_tests::test_modexp::test_mpnat::{mp_nat_to_u128}; // the tests are taken from [aurora-engine](https://github.com/aurora-is-near/aurora-engine/blob/1213f2c7c035aa523601fced8f75bef61b4728ab/engine-modexp/src/arith.rs#L401) diff --git a/crates/utils/src/tests/test_modexp/test_mpnat.cairo b/crates/utils/tests/test_modexp/test_mpnat.cairo similarity index 99% rename from crates/utils/src/tests/test_modexp/test_mpnat.cairo rename to crates/utils/tests/test_modexp/test_mpnat.cairo index 747d0b5eb..ddd60883a 100644 --- a/crates/utils/src/tests/test_modexp/test_mpnat.cairo +++ b/crates/utils/tests/test_modexp/test_mpnat.cairo @@ -15,7 +15,6 @@ use utils::math::{Bitshift, WrappingBitshift}; // the tests are taken from [aurora-engine](https://github.com/aurora-is-near/aurora-engine/blob/1213f2c7c035aa523601fced8f75bef61b4728ab/engine-modexp/src/mpnat.rs#L825) -#[cfg(test)] pub fn mp_nat_to_u128(ref x: MPNat) -> u128 { let result = x.digits.to_le_bytes(); let mut i: usize = 0; diff --git a/crates/utils/src/tests/test_rlp.cairo b/crates/utils/tests/test_rlp.cairo similarity index 100% rename from crates/utils/src/tests/test_rlp.cairo rename to crates/utils/tests/test_rlp.cairo diff --git a/crates/utils/src/tests/test_serialization.cairo b/crates/utils/tests/test_serialization.cairo similarity index 100% rename from crates/utils/src/tests/test_serialization.cairo rename to crates/utils/tests/test_serialization.cairo diff --git a/crates/utils/src/tests/test_set.cairo b/crates/utils/tests/test_set.cairo similarity index 100% rename from crates/utils/src/tests/test_set.cairo rename to crates/utils/tests/test_set.cairo diff --git a/crates/utils/src/tests/test_storage.cairo b/crates/utils/tests/test_storage.cairo similarity index 100% rename from crates/utils/src/tests/test_storage.cairo rename to crates/utils/tests/test_storage.cairo diff --git a/crates/utils/src/tests/test_traits.cairo b/crates/utils/tests/test_traits.cairo similarity index 76% rename from crates/utils/src/tests/test_traits.cairo rename to crates/utils/tests/test_traits.cairo index 20d19e592..4dcd12a14 100644 --- a/crates/utils/src/tests/test_traits.cairo +++ b/crates/utils/tests/test_traits.cairo @@ -2,14 +2,13 @@ use starknet::{ StorageBaseAddress, StorageAddress, storage_address_from_base, storage_address_try_from_felt252, storage_base_address_from_felt252 }; -use test::test_utils::{assert_eq, assert_ne}; use utils::traits::{StorageBaseAddressPartialEq}; #[test] fn test_eq_storage_base_address() { let val_1 = storage_base_address_from_felt252(0x01); - assert_eq(@val_1, @val_1, 'expected equality') + assert_eq!(@val_1, @val_1) } #[test] @@ -17,5 +16,5 @@ fn test_ne_storage_base_address() { let val_1 = storage_base_address_from_felt252(0x01); let val_2 = storage_base_address_from_felt252(0x02); - assert_ne(@val_1, @val_2, 'expected inequality') + assert_ne!(@val_1, @val_2) }