From 5ef9f964aebd8015a2074437ddbe2de2b3c27bae Mon Sep 17 00:00:00 2001 From: immrsd Date: Tue, 13 Aug 2024 16:54:02 +0200 Subject: [PATCH] Fix account tests after merge --- .../src/tests/test_dual_eth_account.cairo | 99 +++++++++---------- .../account/src/tests/test_eth_account.cairo | 6 +- .../presets/src/tests/test_eth_account.cairo | 8 +- packages/testing/src/constants.cairo | 8 -- 4 files changed, 50 insertions(+), 71 deletions(-) diff --git a/packages/account/src/tests/test_dual_eth_account.cairo b/packages/account/src/tests/test_dual_eth_account.cairo index dcb6c714d..1c2f6ca30 100644 --- a/packages/account/src/tests/test_dual_eth_account.cairo +++ b/packages/account/src/tests/test_dual_eth_account.cairo @@ -1,13 +1,13 @@ -use openzeppelin_account::dual_eth_account::{DualCaseEthAccountABI, DualCaseEthAccount}; +use openzeppelin_account::dual_eth_account::DualCaseEthAccount; use openzeppelin_account::interface::{EthAccountABIDispatcherTrait, EthAccountABIDispatcher}; use openzeppelin_account::utils::secp256k1::{DebugSecp256k1Point, Secp256k1PointPartialEq}; use openzeppelin_introspection::interface::ISRC5_ID; use openzeppelin_test_common::eth_account::get_accept_ownership_signature; use openzeppelin_testing as utils; -use openzeppelin_testing::constants::secp256k1::KEY_PAIR; -use openzeppelin_testing::constants::{ETH_PUBKEY, NEW_ETH_PUBKEY, TRANSACTION_HASH}; -use openzeppelin_testing::signing::Secp256k1SerializedSigning; +use openzeppelin_testing::constants::TRANSACTION_HASH; +use openzeppelin_testing::constants::secp256k1::{KEY_PAIR, KEY_PAIR_2}; +use openzeppelin_testing::signing::{Secp256k1KeyPair, Secp256k1SerializedSigning}; use openzeppelin_utils::serde::SerializedAppend; use snforge_std::start_cheat_caller_address; @@ -15,32 +15,26 @@ use snforge_std::start_cheat_caller_address; // Setup // -fn setup_snake() -> (DualCaseEthAccount, EthAccountABIDispatcher) { +fn setup_snake(key_pair: Secp256k1KeyPair) -> (DualCaseEthAccount, EthAccountABIDispatcher) { let mut calldata = array![]; - calldata.append_serde(ETH_PUBKEY()); + calldata.append_serde(key_pair.public_key); - let target = utils::declare_and_deploy("SnakeEthAccountMock", calldata); - ( - DualCaseEthAccount { contract_address: target }, - EthAccountABIDispatcher { contract_address: target } - ) + let contract_address = utils::declare_and_deploy("SnakeEthAccountMock", calldata); + (DualCaseEthAccount { contract_address }, EthAccountABIDispatcher { contract_address }) } -fn setup_camel() -> (DualCaseEthAccount, EthAccountABIDispatcher) { +fn setup_camel(key_pair: Secp256k1KeyPair) -> (DualCaseEthAccount, EthAccountABIDispatcher) { let mut calldata = array![]; - calldata.append_serde(ETH_PUBKEY()); + calldata.append_serde(key_pair.public_key); - let target = utils::declare_and_deploy("CamelEthAccountMock", calldata); - ( - DualCaseEthAccount { contract_address: target }, - EthAccountABIDispatcher { contract_address: target } - ) + let contract_address = utils::declare_and_deploy("CamelEthAccountMock", calldata); + (DualCaseEthAccount { contract_address }, EthAccountABIDispatcher { contract_address }) } fn setup_non_account() -> DualCaseEthAccount { let calldata = array![]; - let target = utils::declare_and_deploy("NonImplementingMock", calldata); - DualCaseEthAccount { contract_address: target } + let contract_address = utils::declare_and_deploy("NonImplementingMock", calldata); + DualCaseEthAccount { contract_address } } fn setup_account_panic() -> (DualCaseEthAccount, DualCaseEthAccount) { @@ -58,16 +52,18 @@ fn setup_account_panic() -> (DualCaseEthAccount, DualCaseEthAccount) { #[test] fn test_dual_set_public_key() { - let (snake_dispatcher, target) = setup_snake(); + let key_pair = KEY_PAIR(); + let (snake_dispatcher, target) = setup_snake(key_pair); let contract_address = snake_dispatcher.contract_address; + let new_key_pair = KEY_PAIR_2(); start_cheat_caller_address(contract_address, contract_address); + let signature = get_accept_ownership_signature( + contract_address, key_pair.public_key, new_key_pair + ); + snake_dispatcher.set_public_key(new_key_pair.public_key, signature); - let key_pair = KEY_PAIR(); - let signature = get_accept_ownership_signature(contract_address, ETH_PUBKEY(), key_pair); - - snake_dispatcher.set_public_key(key_pair.public_key, signature); - assert_eq!(target.get_public_key(), key_pair.public_key); + assert_eq!(target.get_public_key(), new_key_pair.public_key); } #[test] @@ -75,20 +71,21 @@ fn test_dual_set_public_key() { #[should_panic(expected: ('ENTRYPOINT_NOT_FOUND',))] fn test_dual_no_set_public_key() { let dispatcher = setup_non_account(); - dispatcher.set_public_key(NEW_ETH_PUBKEY(), array![].span()); + dispatcher.set_public_key(KEY_PAIR().public_key, array![].span()); } #[test] #[should_panic(expected: ("Some error",))] fn test_dual_set_public_key_exists_and_panics() { let (dispatcher, _) = setup_account_panic(); - dispatcher.set_public_key(NEW_ETH_PUBKEY(), array![].span()); + dispatcher.set_public_key(KEY_PAIR().public_key, array![].span()); } #[test] fn test_dual_get_public_key() { - let (snake_dispatcher, _) = setup_snake(); - assert_eq!(snake_dispatcher.get_public_key(), ETH_PUBKEY()); + let key_pair = KEY_PAIR(); + let (snake_dispatcher, _) = setup_snake(key_pair); + assert_eq!(snake_dispatcher.get_public_key(), key_pair.public_key); } #[test] @@ -108,16 +105,11 @@ fn test_dual_get_public_key_exists_and_panics() { #[test] fn test_dual_is_valid_signature() { - let (snake_dispatcher, target) = setup_snake(); - let contract_address = snake_dispatcher.contract_address; - - start_cheat_caller_address(contract_address, contract_address); let key_pair = KEY_PAIR(); - let signature = get_accept_ownership_signature(contract_address, ETH_PUBKEY(), key_pair); + let (snake_dispatcher, target) = setup_snake(key_pair); + let contract_address = snake_dispatcher.contract_address; - target.set_public_key(key_pair.public_key, signature); let serialized_signature = key_pair.serialized_sign(TRANSACTION_HASH.into()); - let is_valid = snake_dispatcher.is_valid_signature(TRANSACTION_HASH, serialized_signature); assert_eq!(is_valid, starknet::VALIDATED); } @@ -145,7 +137,7 @@ fn test_dual_is_valid_signature_exists_and_panics() { #[test] fn test_dual_supports_interface() { - let (snake_dispatcher, _) = setup_snake(); + let (snake_dispatcher, _) = setup_snake(KEY_PAIR()); assert!(snake_dispatcher.supports_interface(ISRC5_ID), "Should implement ISRC5"); } @@ -171,16 +163,18 @@ fn test_dual_supports_interface_exists_and_panics() { #[test] #[ignore] // REASON: foundry entrypoint_not_found error message inconsistent with mainnet. fn test_dual_setPublicKey() { - let (camel_dispatcher, target) = setup_camel(); + let key_pair = KEY_PAIR(); + let (camel_dispatcher, target) = setup_camel(key_pair); let contract_address = camel_dispatcher.contract_address; start_cheat_caller_address(contract_address, contract_address); + let new_key_pair = KEY_PAIR_2(); + let signature = get_accept_ownership_signature( + contract_address, key_pair.public_key, new_key_pair + ); - let key_pair = KEY_PAIR(); - let signature = get_accept_ownership_signature(contract_address, ETH_PUBKEY(), key_pair); - - camel_dispatcher.set_public_key(key_pair.public_key, signature); - assert_eq!(target.getPublicKey(), key_pair.public_key); + camel_dispatcher.set_public_key(new_key_pair.public_key, signature); + assert_eq!(target.getPublicKey(), new_key_pair.public_key); } #[test] @@ -188,14 +182,15 @@ fn test_dual_setPublicKey() { #[should_panic(expected: ("Some error",))] fn test_dual_setPublicKey_exists_and_panics() { let (_, dispatcher) = setup_account_panic(); - dispatcher.set_public_key(NEW_ETH_PUBKEY(), array![].span()); + dispatcher.set_public_key(KEY_PAIR_2().public_key, array![].span()); } #[test] #[ignore] // REASON: foundry entrypoint_not_found error message inconsistent with mainnet. fn test_dual_getPublicKey() { - let (camel_dispatcher, _) = setup_camel(); - assert_eq!(camel_dispatcher.get_public_key(), ETH_PUBKEY()); + let key_pair = KEY_PAIR(); + let (camel_dispatcher, _) = setup_camel(key_pair); + assert_eq!(camel_dispatcher.get_public_key(), key_pair.public_key); } #[test] @@ -209,17 +204,11 @@ fn test_dual_getPublicKey_exists_and_panics() { #[test] #[ignore] // REASON: foundry entrypoint_not_found error message inconsistent with mainnet. fn test_dual_isValidSignature() { - let (camel_dispatcher, target) = setup_camel(); - let contract_address = camel_dispatcher.contract_address; - - start_cheat_caller_address(contract_address, contract_address); - let key_pair = KEY_PAIR(); - let signature = get_accept_ownership_signature(contract_address, ETH_PUBKEY(), key_pair); + let (camel_dispatcher, target) = setup_camel(key_pair); + let contract_address = camel_dispatcher.contract_address; - target.setPublicKey(key_pair.public_key, signature); let serialized_signature = key_pair.serialized_sign(TRANSACTION_HASH.into()); - let is_valid = camel_dispatcher.is_valid_signature(TRANSACTION_HASH, serialized_signature); assert_eq!(is_valid, starknet::VALIDATED); } diff --git a/packages/account/src/tests/test_eth_account.cairo b/packages/account/src/tests/test_eth_account.cairo index 7ae6cb9c7..a9b672d7a 100644 --- a/packages/account/src/tests/test_eth_account.cairo +++ b/packages/account/src/tests/test_eth_account.cairo @@ -13,11 +13,11 @@ use openzeppelin_test_common::eth_account::{ SIGNED_TX_DATA, SignedTransactionData, get_accept_ownership_signature }; use openzeppelin_testing as utils; -use openzeppelin_testing::constants::secp256k1::KEY_PAIR; +use openzeppelin_testing::constants::secp256k1::{KEY_PAIR, KEY_PAIR_2}; use openzeppelin_testing::constants::{ - ETH_PUBKEY, NEW_ETH_PUBKEY, SALT, ZERO, OTHER, RECIPIENT, CALLER, QUERY_VERSION, - MIN_TRANSACTION_VERSION + SALT, ZERO, OTHER, RECIPIENT, CALLER, QUERY_VERSION, MIN_TRANSACTION_VERSION }; +use openzeppelin_testing::signing::Secp256k1KeyPair; use openzeppelin_token::erc20::interface::IERC20DispatcherTrait; use openzeppelin_utils::selectors; use openzeppelin_utils::serde::SerializedAppend; diff --git a/packages/presets/src/tests/test_eth_account.cairo b/packages/presets/src/tests/test_eth_account.cairo index 1ab7bb8d2..790eac1f2 100644 --- a/packages/presets/src/tests/test_eth_account.cairo +++ b/packages/presets/src/tests/test_eth_account.cairo @@ -16,12 +16,10 @@ use openzeppelin_test_common::eth_account::{ }; use openzeppelin_test_common::upgrades::UpgradeableSpyHelpers; use openzeppelin_testing as utils; -use openzeppelin_testing::signing::Secp256k1KeyPair; use openzeppelin_testing::constants::secp256k1::{KEY_PAIR, KEY_PAIR_2}; -use openzeppelin_testing::constants::{ - CLASS_HASH_ZERO, ETH_PUBKEY, NEW_ETH_PUBKEY, SALT, ZERO, RECIPIENT, QUERY_VERSION, - MIN_TRANSACTION_VERSION, CALLER, OTHER -}; +use openzeppelin_testing::constants::{CLASS_HASH_ZERO, ZERO, RECIPIENT, CALLER, OTHER}; +use openzeppelin_testing::constants::{SALT, QUERY_VERSION, MIN_TRANSACTION_VERSION}; +use openzeppelin_testing::signing::Secp256k1KeyPair; use openzeppelin_token::erc20::interface::IERC20DispatcherTrait; use openzeppelin_utils::selectors; use openzeppelin_utils::serde::SerializedAppend; diff --git a/packages/testing/src/constants.cairo b/packages/testing/src/constants.cairo index e6447b9d5..a26449dc8 100644 --- a/packages/testing/src/constants.cairo +++ b/packages/testing/src/constants.cairo @@ -44,14 +44,6 @@ pub fn BASE_URI_2() -> ByteArray { "https://api.example.com/v2/" } -pub fn ETH_PUBKEY() -> EthPublicKey { - Secp256Trait::secp256_ec_get_point_from_x_syscall(3, false).unwrap_syscall().unwrap() -} - -pub fn NEW_ETH_PUBKEY() -> EthPublicKey { - Secp256Trait::secp256_ec_get_point_from_x_syscall(4, false).unwrap_syscall().unwrap() -} - pub fn ADMIN() -> ContractAddress { contract_address_const::<'ADMIN'>() }