From 5a1a433c52676628b0abe6b68f6aa3fabf9d9e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Delabrouille?= Date: Wed, 5 Jun 2024 15:20:08 +0200 Subject: [PATCH] fix: remove unecessary checks before tx execution --- crates/pallets/starknet/src/lib.rs | 25 ------------------- .../pallets/starknet/src/tests/declare_tx.rs | 4 +-- .../starknet/src/tests/deploy_account_tx.rs | 2 +- .../pallets/starknet/src/tests/invoke_tx.rs | 2 +- 4 files changed, 4 insertions(+), 29 deletions(-) diff --git a/crates/pallets/starknet/src/lib.rs b/crates/pallets/starknet/src/lib.rs index 306723fc8a..615603e01a 100644 --- a/crates/pallets/starknet/src/lib.rs +++ b/crates/pallets/starknet/src/lib.rs @@ -509,14 +509,6 @@ pub mod pallet { // This ensures that the function can only be called via unsigned transaction. ensure_none(origin)?; - let sender_address = match &transaction.tx { - starknet_api::transaction::InvokeTransaction::V0(tx) => tx.contract_address, - starknet_api::transaction::InvokeTransaction::V1(tx) => tx.sender_address, - starknet_api::transaction::InvokeTransaction::V3(tx) => tx.sender_address, - }; - // Check if contract is deployed - ensure!(ContractClassHashes::::contains_key(sender_address), Error::::AccountNotDeployed); - // Init caches let mut state = BlockifierStateAdapter::::default(); let block_context = Self::get_block_context(); @@ -576,17 +568,6 @@ pub mod pallet { // This ensures that the function can only be called via unsigned transaction. ensure_none(origin)?; - // Check class hash is not already declared - ensure!( - !ContractClasses::::contains_key(transaction.tx().class_hash().0), - Error::::ClassHashAlreadyDeclared - ); - // Check if contract is deployed - ensure!( - ContractClassHashes::::contains_key(transaction.tx().sender_address()), - Error::::AccountNotDeployed - ); - let mut state = BlockifierStateAdapter::::default(); let charge_fee = !::DisableTransactionFee::get(); @@ -633,12 +614,6 @@ pub mod pallet { // This ensures that the function can only be called via unsigned transaction. ensure_none(origin)?; - // Check if contract is deployed - ensure!( - !ContractClassHashes::::contains_key(transaction.contract_address), - Error::::AccountAlreadyDeployed - ); - let mut state = BlockifierStateAdapter::::default(); let charge_fee = !::DisableTransactionFee::get(); diff --git a/crates/pallets/starknet/src/tests/declare_tx.rs b/crates/pallets/starknet/src/tests/declare_tx.rs index 1103be3a77..421192bbb8 100644 --- a/crates/pallets/starknet/src/tests/declare_tx.rs +++ b/crates/pallets/starknet/src/tests/declare_tx.rs @@ -105,7 +105,7 @@ fn given_contract_declare_tx_works_once_not_twice() { assert_eq!(Starknet::contract_class_by_class_hash(class_hash.0).unwrap(), contract_class); // TODO: Uncomment once we have ABI support // assert_eq!(Starknet::contract_class_by_class_hash(erc20_class_hash), erc20_class); - assert_err!(Starknet::declare(none_origin, transaction), Error::::ClassHashAlreadyDeclared); + assert_err!(Starknet::declare(none_origin, transaction), Error::::TransactionExecutionFailed); }); } @@ -129,7 +129,7 @@ fn given_contract_declare_tx_fails_sender_not_deployed() { None, None, ); - assert_err!(Starknet::declare(none_origin, transaction), Error::::AccountNotDeployed); + assert_err!(Starknet::declare(none_origin, transaction), Error::::TransactionExecutionFailed); }) } diff --git a/crates/pallets/starknet/src/tests/deploy_account_tx.rs b/crates/pallets/starknet/src/tests/deploy_account_tx.rs index 149d89f881..d5eea6bc52 100644 --- a/crates/pallets/starknet/src/tests/deploy_account_tx.rs +++ b/crates/pallets/starknet/src/tests/deploy_account_tx.rs @@ -116,7 +116,7 @@ fn given_contract_run_deploy_account_tx_twice_fails() { assert_eq!(Starknet::contract_class_hash_by_address(deploy_tx.contract_address), account_class_hash.0); assert_err!( Starknet::deploy_account(RuntimeOrigin::none(), deploy_tx), - Error::::AccountAlreadyDeployed + Error::::TransactionExecutionFailed ); }); } diff --git a/crates/pallets/starknet/src/tests/invoke_tx.rs b/crates/pallets/starknet/src/tests/invoke_tx.rs index 22c99e3a02..54a07b06c4 100644 --- a/crates/pallets/starknet/src/tests/invoke_tx.rs +++ b/crates/pallets/starknet/src/tests/invoke_tx.rs @@ -57,7 +57,7 @@ fn given_hardcoded_contract_run_invoke_tx_fails_sender_not_deployed() { tx.sender_address = contract_address; }; - assert_err!(Starknet::invoke(none_origin, transaction), Error::::AccountNotDeployed); + assert_err!(Starknet::invoke(none_origin, transaction), Error::::TransactionExecutionFailed); }) }