diff --git a/chain/vm/src/host/context/tx_cache.rs b/chain/vm/src/host/context/tx_cache.rs index 5255a6de26..8178090dd1 100644 --- a/chain/vm/src/host/context/tx_cache.rs +++ b/chain/vm/src/host/context/tx_cache.rs @@ -43,10 +43,10 @@ impl TxCache { fn load_account_if_necessary(&self, address: &VMAddress) { let mut accounts_mut = self.accounts.lock().unwrap(); - if !accounts_mut.contains_key(address) { - if let Some(blockchain_account) = self.source_ref.load_account(address) { - accounts_mut.insert(address.clone(), blockchain_account); - } + if !accounts_mut.contains_key(address) + && let Some(blockchain_account) = self.source_ref.load_account(address) + { + accounts_mut.insert(address.clone(), blockchain_account); } } diff --git a/chain/vm/src/host/execution/exec_call.rs b/chain/vm/src/host/execution/exec_call.rs index b17d0916af..8b1b0e3558 100644 --- a/chain/vm/src/host/execution/exec_call.rs +++ b/chain/vm/src/host/execution/exec_call.rs @@ -67,16 +67,16 @@ where // legacy async call // the async call also gets reset - if tx_result.result_status.is_success() { - if let Some(async_data) = pending_calls.async_call { - let (async_result, callback_result) = - commit_async_call_and_callback(async_data, state, runtime); + if tx_result.result_status.is_success() + && let Some(async_data) = pending_calls.async_call + { + let (async_result, callback_result) = + commit_async_call_and_callback(async_data, state, runtime); - tx_result = merge_async_results(tx_result, async_result); - tx_result = merge_async_results(tx_result, callback_result); + tx_result = merge_async_results(tx_result, async_result); + tx_result = merge_async_results(tx_result, callback_result); - return tx_result; - } + return tx_result; } // calling all promises diff --git a/chain/vm/src/host/vm_hooks/vh_handler/vh_blockchain.rs b/chain/vm/src/host/vm_hooks/vh_handler/vh_blockchain.rs index 0280022bcb..fa9db1b2bc 100644 --- a/chain/vm/src/host/vm_hooks/vh_handler/vh_blockchain.rs +++ b/chain/vm/src/host/vm_hooks/vh_handler/vh_blockchain.rs @@ -410,23 +410,22 @@ impl VMHooksHandler { let address = VMAddress::from_slice(self.context.m_types_lock().mb_get(address_handle)); let token_id_bytes = self.context.m_types_lock().mb_get(token_id_handle).to_vec(); - if let Some(account) = self.context.account_data(&address) { - if let Some(esdt_data) = account.esdt.get_by_identifier(token_id_bytes.as_slice()) { - if let Some(instance) = esdt_data.instances.get_by_nonce(nonce) { - self.set_esdt_data_values( - esdt_data, - instance, - value_handle, - properties_handle, - hash_handle, - name_handle, - attributes_handle, - creator_handle, - royalties_handle, - uris_handle, - )? - } - } + if let Some(account) = self.context.account_data(&address) + && let Some(esdt_data) = account.esdt.get_by_identifier(token_id_bytes.as_slice()) + && let Some(instance) = esdt_data.instances.get_by_nonce(nonce) + { + self.set_esdt_data_values( + esdt_data, + instance, + value_handle, + properties_handle, + hash_handle, + name_handle, + attributes_handle, + creator_handle, + royalties_handle, + uris_handle, + )? } // missing account/token identifier/nonce @@ -496,10 +495,10 @@ impl VMHooksHandler { let address = VMAddress::from_slice(self.context.m_types_lock().mb_get(address_handle)); let token_id_bytes = self.context.m_types_lock().mb_get(token_id_handle).to_vec(); - if let Some(account) = self.context.account_data(&address) { - if let Some(esdt_data) = account.esdt.get_by_identifier(token_id_bytes.as_slice()) { - return Ok(esdt_data.frozen); - } + if let Some(account) = self.context.account_data(&address) + && let Some(esdt_data) = account.esdt.get_by_identifier(token_id_bytes.as_slice()) + { + return Ok(esdt_data.frozen); } // Might be better to return Err and check diff --git a/chain/vm/src/system_sc/system_sc_issue.rs b/chain/vm/src/system_sc/system_sc_issue.rs index b789b02ed2..23e18e1829 100644 --- a/chain/vm/src/system_sc/system_sc_issue.rs +++ b/chain/vm/src/system_sc/system_sc_issue.rs @@ -129,14 +129,12 @@ fn generate_token_identifier_from_ticker( let new_random = keccak256(&new_random_base); let new_random_for_ticker = &new_random[..3]; - let token_identifier = [ + [ ticker, "-".as_bytes(), hex::encode(new_random_for_ticker).as_bytes(), ] - .concat(); - - token_identifier + .concat() } #[cfg(test)] diff --git a/contracts/examples/multisig/src/multisig.rs b/contracts/examples/multisig/src/multisig.rs index 4c32bb8f0a..8ac3224c25 100644 --- a/contracts/examples/multisig/src/multisig.rs +++ b/contracts/examples/multisig/src/multisig.rs @@ -122,10 +122,10 @@ pub trait Multisig: let mut result = MultiValueEncoded::new(); let num_users = self.user_mapper().get_user_count(); for user_id in 1..=num_users { - if self.user_id_to_role(user_id).get() == role { - if let Some(address) = self.user_mapper().get_user_address(user_id) { - result.push(address); - } + if self.user_id_to_role(user_id).get() == role + && let Some(address) = self.user_mapper().get_user_address(user_id) + { + result.push(address); } } result diff --git a/contracts/feature-tests/composability/forwarder/src/fwd_call_sync.rs b/contracts/feature-tests/composability/forwarder/src/fwd_call_sync.rs index f9ffcfb82a..729dad8cee 100644 --- a/contracts/feature-tests/composability/forwarder/src/fwd_call_sync.rs +++ b/contracts/feature-tests/composability/forwarder/src/fwd_call_sync.rs @@ -102,8 +102,7 @@ pub trait ForwarderSyncCallModule { let payment = self.call_value().single_esdt(); let half_gas = self.blockchain().get_gas_left() / 2; - let result = self - .tx() + self.tx() .to(&to) .gas(half_gas) .typed(vault_proxy::VaultProxy) @@ -114,9 +113,7 @@ pub trait ForwarderSyncCallModule { &payment.amount, ) .returns(ReturnsBackTransfersSingleESDT) - .sync_call(); - - result + .sync_call() } #[allow(deprecated)] diff --git a/data/codec-derive/src/util.rs b/data/codec-derive/src/util.rs index 8d524fae6b..f2ecf38695 100644 --- a/data/codec-derive/src/util.rs +++ b/data/codec-derive/src/util.rs @@ -165,15 +165,14 @@ pub fn get_discriminant( } pub fn sanitize_type_path(mut field: syn::Type) -> proc_macro2::TokenStream { - if let syn::Type::Path(ref mut p) = field { - if p.path + if let syn::Type::Path(ref mut p) = field + && p.path .to_token_stream() .to_string() .contains(BITFLAGS_INTERNAL_PATH) - { - let modified_path = p.path.segments.last_mut().unwrap(); - modified_path.ident = syn::Ident::new(PRIMITIVE, modified_path.ident.span()); - } + { + let modified_path = p.path.segments.last_mut().unwrap(); + modified_path.ident = syn::Ident::new(PRIMITIVE, modified_path.ident.span()); } quote! (#field) diff --git a/framework/derive/src/generate/convert_to_owned_type.rs b/framework/derive/src/generate/convert_to_owned_type.rs index a4595c2e82..a1823de512 100644 --- a/framework/derive/src/generate/convert_to_owned_type.rs +++ b/framework/derive/src/generate/convert_to_owned_type.rs @@ -18,15 +18,14 @@ pub fn convert_to_owned_type(ty: &syn::Type) -> proc_macro2::TokenStream { return quote! { multiversx_sc::types::Box<[#slice_elem]> }; - } else if let syn::Type::Path(syn::TypePath { path, .. }) = &*type_reference.elem { - if let Some(ident) = path.get_ident() { - if *ident == "str" { - // TODO: generalize for all unsized types using Box - return quote! { - multiversx_sc::types::Box - }; - } - } + } else if let syn::Type::Path(syn::TypePath { path, .. }) = &*type_reference.elem + && let Some(ident) = path.get_ident() + && *ident == "str" + { + // TODO: generalize for all unsized types using Box + return quote! { + Box + }; } let referenced_type = &*type_reference.elem; diff --git a/framework/derive/src/generate/restricted_caller_gen.rs b/framework/derive/src/generate/restricted_caller_gen.rs index 737417badc..2a069f16e1 100644 --- a/framework/derive/src/generate/restricted_caller_gen.rs +++ b/framework/derive/src/generate/restricted_caller_gen.rs @@ -1,34 +1,34 @@ use crate::model::{Method, PublicRole}; pub fn generate_only_owner_snippet(m: &Method) -> proc_macro2::TokenStream { - if let PublicRole::Endpoint(endpoint_metadata) = &m.public_role { - if endpoint_metadata.only_owner { - return quote! { - self.blockchain().check_caller_is_owner(); - }; - } + if let PublicRole::Endpoint(endpoint_metadata) = &m.public_role + && endpoint_metadata.only_owner + { + return quote! { + self.blockchain().check_caller_is_owner(); + }; } quote! {} } pub fn generate_only_admin_snippet(m: &Method) -> proc_macro2::TokenStream { - if let PublicRole::Endpoint(endpoint_metadata) = &m.public_role { - if endpoint_metadata.only_admin { - return quote! { - self.require_caller_is_admin(); - }; - } + if let PublicRole::Endpoint(endpoint_metadata) = &m.public_role + && endpoint_metadata.only_admin + { + return quote! { + self.require_caller_is_admin(); + }; } quote! {} } pub fn generate_only_user_account_snippet(m: &Method) -> proc_macro2::TokenStream { - if let PublicRole::Endpoint(endpoint_metadata) = &m.public_role { - if endpoint_metadata.only_user_account { - return quote! { - self.blockchain().check_caller_is_user_account(); - }; - } + if let PublicRole::Endpoint(endpoint_metadata) = &m.public_role + && endpoint_metadata.only_user_account + { + return quote! { + self.blockchain().check_caller_is_user_account(); + }; } quote! {} } diff --git a/framework/derive/src/parse/attributes/doc_attr.rs b/framework/derive/src/parse/attributes/doc_attr.rs index f20a9eacec..80f74c9f43 100644 --- a/framework/derive/src/parse/attributes/doc_attr.rs +++ b/framework/derive/src/parse/attributes/doc_attr.rs @@ -49,12 +49,12 @@ pub fn extract_macro_attributes(attrs: &[syn::Attribute]) -> Vec { let mut macro_attributes = Vec::new(); for a in attrs { - if let syn::Meta::List(list) = &a.meta { - if list.path.is_ident("derive") { - for token in list.tokens.clone().into_iter() { - if let proc_macro2::TokenTree::Ident(ident) = token { - macro_attributes.push(ident.to_string()); - } + if let syn::Meta::List(list) = &a.meta + && list.path.is_ident("derive") + { + for token in list.tokens.clone().into_iter() { + if let proc_macro2::TokenTree::Ident(ident) = token { + macro_attributes.push(ident.to_string()); } } } diff --git a/framework/derive/src/parse/attributes/util.rs b/framework/derive/src/parse/attributes/util.rs index 0585e9e140..c5fb07a308 100644 --- a/framework/derive/src/parse/attributes/util.rs +++ b/framework/derive/src/parse/attributes/util.rs @@ -1,14 +1,14 @@ use crate::model::EsdtAttribute; pub(super) fn is_attribute_with_no_args(attr: &syn::Attribute, name: &str) -> bool { - if let Some(first_seg) = attr.path().segments.first() { - if first_seg.ident == name { - assert!( - attr.meta.require_path_only().is_ok(), - "no arguments allowed for attribute `{name}`" - ); - return true; - } + if let Some(first_seg) = attr.path().segments.first() + && first_seg.ident == name + { + assert!( + attr.meta.require_path_only().is_ok(), + "no arguments allowed for attribute `{name}`" + ); + return true; }; false @@ -19,61 +19,61 @@ pub(super) fn get_attribute_with_one_type_arg( name: &str, ) -> Option { let attr_path = &attr.path(); - if let Some(first_seg) = attr_path.segments.first() { - if first_seg.ident == name { - let (ticker, ty) = match attr.meta.clone() { - syn::Meta::Path(_) => { - panic!("attribute needs 2 arguments: ticker (string) and type") - } - syn::Meta::List(list) => { - assert!( - !list.tokens.is_empty(), - "argument can not be empty. attribute needs 2 arguments: ticker (string) and type" - ); + if let Some(first_seg) = attr_path.segments.first() + && first_seg.ident == name + { + let (ticker, ty) = match attr.meta.clone() { + syn::Meta::Path(_) => { + panic!("attribute needs 2 arguments: ticker (string) and type") + } + syn::Meta::List(list) => { + assert!( + !list.tokens.is_empty(), + "argument can not be empty. attribute needs 2 arguments: ticker (string) and type" + ); + + let mut iter = list.tokens.into_iter(); + + let first_literal = match iter.next() { + Some(proc_macro2::TokenTree::Literal(literal)) => literal.to_string(), + _ => { + panic!("expected a string as the first token in the attribute argument") + } + }; - let mut iter = list.tokens.into_iter(); + let ticker = clean_string(first_literal); - let first_literal = match iter.next() { - Some(proc_macro2::TokenTree::Literal(literal)) => literal.to_string(), - _ => { - panic!("expected a string as the first token in the attribute argument") + let _ = match iter.next() { + Some(proc_macro2::TokenTree::Punct(punct)) => punct, + _ => panic!("expected a punctuation token after the first literal"), + }; + + let mut ty = proc_macro2::TokenStream::new(); + + for token in &mut iter { + match token { + proc_macro2::TokenTree::Punct(punct) => { + ty.extend(quote! { #punct }); } - }; - - let ticker = clean_string(first_literal); - - let _ = match iter.next() { - Some(proc_macro2::TokenTree::Punct(punct)) => punct, - _ => panic!("expected a punctuation token after the first literal"), - }; - - let mut ty = proc_macro2::TokenStream::new(); - - for token in &mut iter { - match token { - proc_macro2::TokenTree::Punct(punct) => { - ty.extend(quote! { #punct }); - } - proc_macro2::TokenTree::Ident(ident) => { - ty.extend(quote! { #ident }); - } - _ => break, + proc_macro2::TokenTree::Ident(ident) => { + ty.extend(quote! { #ident }); } + _ => break, } + } - if ticker.trim().is_empty() { - panic!("ticker field can't be empty"); - } - - (ticker, ty) + if ticker.trim().is_empty() { + panic!("ticker field can't be empty"); } - syn::Meta::NameValue(_) => panic!("arguments can not be name value"), - }; - let esdt_attribute = EsdtAttribute { ticker, ty }; + (ticker, ty) + } + syn::Meta::NameValue(_) => panic!("arguments can not be name value"), + }; + + let esdt_attribute = EsdtAttribute { ticker, ty }; - return Some(esdt_attribute); - } + return Some(esdt_attribute); } None diff --git a/framework/meta-lib/src/cargo_toml/cargo_toml_contents.rs b/framework/meta-lib/src/cargo_toml/cargo_toml_contents.rs index 616f98dcbc..84b4b1c27f 100644 --- a/framework/meta-lib/src/cargo_toml/cargo_toml_contents.rs +++ b/framework/meta-lib/src/cargo_toml/cargo_toml_contents.rs @@ -304,10 +304,10 @@ impl CargoTomlContents { /// Checks that path == ".." in a dependency. fn is_dep_path_above(dep: &Value) -> bool { - if let Some(path) = dep.get("path") { - if let Some(s) = path.as_str() { - return s == ".."; - } + if let Some(path) = dep.get("path") + && let Some(s) = path.as_str() + { + return s == ".."; } false diff --git a/framework/meta-lib/src/tools/find_workspace.rs b/framework/meta-lib/src/tools/find_workspace.rs index 4a3b53c90f..8880d1c459 100644 --- a/framework/meta-lib/src/tools/find_workspace.rs +++ b/framework/meta-lib/src/tools/find_workspace.rs @@ -10,12 +10,11 @@ pub fn find_workspace(path: &Path) -> Option { .arg("--workspace") .arg("--message-format=plain") .output() + && let Ok(convert) = std::str::from_utf8(&output.stdout) { - if let Ok(convert) = std::str::from_utf8(&output.stdout) { - let path = Path::new(convert.trim()); - if let Some(parent) = path.parent() { - return Some(parent.to_path_buf()); - } + let path = Path::new(convert.trim()); + if let Some(parent) = path.parent() { + return Some(parent.to_path_buf()); } } diff --git a/framework/meta-lib/src/tools/rustc_version_warning.rs b/framework/meta-lib/src/tools/rustc_version_warning.rs index 2a49ffc434..57cd665053 100644 --- a/framework/meta-lib/src/tools/rustc_version_warning.rs +++ b/framework/meta-lib/src/tools/rustc_version_warning.rs @@ -36,12 +36,12 @@ Either upgrade the framework (to {MX_BULK_MEMORY_FIX_VERSION} or newer), or down // which will fail if the rustc version is below minimum. // // It can be reached if rustc-version was configured explicitly in sc-config.toml. - if let Some(minimum_version) = minimum_rustc_version(&framework_version) { - if *rustc_semver < minimum_version { - return Some(format!(" + if let Some(minimum_version) = minimum_rustc_version(&framework_version) + && *rustc_semver < minimum_version + { + return Some(format!(" WARNING! Contract {contract_name} is using multiversx-sc v{framework_version} with Rust {rustc_semver}. This is below the minimum rustc version for this release, which is v{minimum_version}.")); - } } None diff --git a/framework/meta-lib/src/tools/wasm_extractor/extractor.rs b/framework/meta-lib/src/tools/wasm_extractor/extractor.rs index 509718a44e..3fa47dcd77 100644 --- a/framework/meta-lib/src/tools/wasm_extractor/extractor.rs +++ b/framework/meta-lib/src/tools/wasm_extractor/extractor.rs @@ -312,10 +312,10 @@ impl WasmInfo { for export in export_section { let export = export.expect("Failed to read export section"); - if wasmparser::ExternalKind::Func == export.kind { - if let Some(endpoint) = self.call_graph.endpoints.get_mut(export.name) { - endpoint.set_index(export.index.try_into().unwrap()); - } + if wasmparser::ExternalKind::Func == export.kind + && let Some(endpoint) = self.call_graph.endpoints.get_mut(export.name) + { + endpoint.set_index(export.index.try_into().unwrap()); } } } diff --git a/framework/meta/src/cli/cli_args_validate.rs b/framework/meta/src/cli/cli_args_validate.rs index b9445bd0fa..c31793f38b 100644 --- a/framework/meta/src/cli/cli_args_validate.rs +++ b/framework/meta/src/cli/cli_args_validate.rs @@ -11,19 +11,19 @@ use super::{ impl TemplateArgs { pub fn validate_args(&self) { - if let Some(name) = &self.name { - if !validate_contract_name(name) { - user_error(&format!( - "Invalid contract name `{}`: Rust crate names must start with a letter or underscore and contain only letters, numbers, and underscores (_). Dots (.) and dashes (-) are not allowed.", - name - )); - } + if let Some(name) = &self.name + && !validate_contract_name(name) + { + user_error(&format!( + "Invalid contract name `{}`: Rust crate names must start with a letter or underscore and contain only letters, numbers, underscores, and dashes", + name + )); } - if let Some(tag) = &self.tag { - if !validate_template_tag(tag) { - user_error(&format!("Invalid template tag `{}`.", tag)); - } + if let Some(tag) = &self.tag + && !validate_template_tag(tag) + { + user_error(&format!("Invalid template tag `{}`.", tag)); } } } @@ -38,10 +38,10 @@ impl InstallArgs { impl TemplateListArgs { pub fn validate_args(&self) { - if let Some(tag) = &self.tag { - if !validate_template_tag(tag) { - user_error(&format!("Invalid template tag `{}`.", tag)); - } + if let Some(tag) = &self.tag + && !validate_template_tag(tag) + { + user_error(&format!("Invalid template tag `{}`.", tag)); } } } @@ -98,10 +98,10 @@ impl AccountArgs { impl UpgradeArgs { pub fn validate_args(&self) { - if let Some(override_target_v) = &self.override_target_version { - if !VERSIONS.iter().any(|v| v.to_string() == *override_target_v) { - user_error(&format!("Invalid requested version: {}", override_target_v)); - } + if let Some(override_target_v) = &self.override_target_version + && !VERSIONS.iter().any(|v| v.to_string() == *override_target_v) + { + user_error(&format!("Invalid requested version: {}", override_target_v)); } } } diff --git a/framework/meta/src/cmd/all/all_rustc_check.rs b/framework/meta/src/cmd/all/all_rustc_check.rs index 4ec9cb0608..171fa48776 100644 --- a/framework/meta/src/cmd/all/all_rustc_check.rs +++ b/framework/meta/src/cmd/all/all_rustc_check.rs @@ -49,12 +49,11 @@ pub fn verify_rustc_version(contract_crate: &RelevantDirectory, args: &AllArgs) for entry in read_dir { let entry = entry.expect("error reading directory entry"); let path = entry.path(); - if path.is_file() { - if let Some(file_name) = path.file_name().and_then(|s| s.to_str()) { - if let Some(contract_name) = file_name.strip_suffix(".abi.json") { - verify_abi_rustc_version(contract_name, &path); - } - } + if path.is_file() + && let Some(file_name) = path.file_name().and_then(|s| s.to_str()) + && let Some(contract_name) = file_name.strip_suffix(".abi.json") + { + verify_abi_rustc_version(contract_name, &path); } } } diff --git a/framework/meta/src/cmd/scen_test_gen/stg_parse.rs b/framework/meta/src/cmd/scen_test_gen/stg_parse.rs index 2d6d5695d7..0e4d744aa7 100644 --- a/framework/meta/src/cmd/scen_test_gen/stg_parse.rs +++ b/framework/meta/src/cmd/scen_test_gen/stg_parse.rs @@ -43,13 +43,13 @@ pub fn parse_section(section_str: &str) -> Option { if all_commented_out && ignore_line.is_none() { ignore_line = Some(IGNORE_ANNOTATION.to_string()); } - if let Some(first_line) = section_str.lines().next() { - if let Some(comment) = first_line.strip_prefix("/*") { - ignore_line = Some(format!( - "{IGNORE_ANNOTATION_PREFIX} = \"{}\"]", - comment.trim() - )); - } + if let Some(first_line) = section_str.lines().next() + && let Some(comment) = first_line.strip_prefix("/*") + { + ignore_line = Some(format!( + "{IGNORE_ANNOTATION_PREFIX} = \"{}\"]", + comment.trim() + )); } if let (Some(test_line), Some(scenario_file_name)) = (opt_test_line, opt_scenario_file_name) { @@ -69,10 +69,10 @@ pub fn parse_section(section_str: &str) -> Option { /// /// Could be done with regex, but this is more lightweight, and good enough in here. fn find_scenario_name(s: &str) -> Option<&str> { - if let Some(prefix_index) = s.find(SCEN_PATTERN_PREFIX) { - if let Some(suffix_index) = s.find(SCEN_PATTERN_SUFFIX) { - return s.get(prefix_index + SCEN_PATTERN_PREFIX.len()..suffix_index); - } + if let Some(prefix_index) = s.find(SCEN_PATTERN_PREFIX) + && let Some(suffix_index) = s.find(SCEN_PATTERN_SUFFIX) + { + return s.get(prefix_index + SCEN_PATTERN_PREFIX.len()..suffix_index); } None } diff --git a/framework/meta/src/cmd/template/template_source.rs b/framework/meta/src/cmd/template/template_source.rs index 9d31724306..5119774796 100644 --- a/framework/meta/src/cmd/template/template_source.rs +++ b/framework/meta/src/cmd/template/template_source.rs @@ -32,18 +32,16 @@ pub fn template_sources(repo_temp_dir: &RepoSource) -> Vec> { let mut sources = Vec::new(); for dir in dirs.iter_contract_crates() { let template_metadata_path = dir.path.join(TEMPLATE_TOML_FILE_NAME); - if template_metadata_path.is_file() { - if let Ok(s) = fs::read_to_string(&template_metadata_path) { - let metadata: TemplateMetadata = - toml::from_str(s.as_str()).unwrap_or_else(|error| { - panic!("error parsing {TEMPLATE_TOML_FILE_NAME}: {error}") - }); - sources.push(TemplateSource { - repo_temp_dir, - source_path: dir.path.clone(), - metadata, - }) - } + if template_metadata_path.is_file() + && let Ok(s) = fs::read_to_string(&template_metadata_path) + { + let metadata: TemplateMetadata = toml::from_str(s.as_str()) + .unwrap_or_else(|error| panic!("error parsing {TEMPLATE_TOML_FILE_NAME}: {error}")); + sources.push(TemplateSource { + repo_temp_dir, + source_path: dir.path.clone(), + metadata, + }) } } sources diff --git a/framework/meta/src/cmd/test_coverage/util.rs b/framework/meta/src/cmd/test_coverage/util.rs index 39c47fc2fb..225c55bcb6 100644 --- a/framework/meta/src/cmd/test_coverage/util.rs +++ b/framework/meta/src/cmd/test_coverage/util.rs @@ -26,12 +26,11 @@ pub fn deep_find_files_with_ext(dir: &str, ext: &str) -> Result, Tes let path = entry.path(); if path.is_dir() { result.append(&mut deep_find_files_with_ext(path.to_str().unwrap(), ext)?); - } else if path.is_file() { - if let Some(file_ext) = path.extension() { - if file_ext == ext { - result.push(path.to_str().unwrap().to_string()); - } - } + } else if path.is_file() + && let Some(file_ext) = path.extension() + && file_ext == ext + { + result.push(path.to_str().unwrap().to_string()); } } diff --git a/framework/meta/src/cmd/upgrade/upgrade_common.rs b/framework/meta/src/cmd/upgrade/upgrade_common.rs index c3fd35f3a2..9a974d48a1 100644 --- a/framework/meta/src/cmd/upgrade/upgrade_common.rs +++ b/framework/meta/src/cmd/upgrade/upgrade_common.rs @@ -36,12 +36,12 @@ pub(crate) fn replace_in_files(sc_crate_path: &Path, file_type: &str, queries: & /// Regex was not needed yet, add if it becomes necessary. pub(crate) fn rename_files(path: &Path, patterns: &[(&str, &str)]) { - if let Some(file_name_str) = try_get_file_name_str(path) { - if let Some(replaced_file_name) = try_replace_file_name(file_name_str, patterns) { - let replaced_path = path.parent().unwrap().join(replaced_file_name); - print_rename(path, replaced_path.as_path()); - fs::rename(path, replaced_path).expect("failed to rename file"); - } + if let Some(file_name_str) = try_get_file_name_str(path) + && let Some(replaced_file_name) = try_replace_file_name(file_name_str, patterns) + { + let replaced_path = path.parent().unwrap().join(replaced_file_name); + print_rename(path, replaced_path.as_path()); + fs::rename(path, replaced_path).expect("failed to rename file"); } if path.is_dir() { @@ -57,10 +57,10 @@ fn try_get_file_name_str(path: &Path) -> Option<&str> { if !path.is_file() { return None; } - if let Some(file_name) = path.file_name() { - if let Some(file_name_str) = file_name.to_str() { - return Some(file_name_str); - } + if let Some(file_name) = path.file_name() + && let Some(file_name_str) = file_name.to_str() + { + return Some(file_name_str); } None } diff --git a/framework/scenario/src/scenario/model/esdt_data/esdt.rs b/framework/scenario/src/scenario/model/esdt_data/esdt.rs index 9a3b37f5ec..f581ac3b8a 100644 --- a/framework/scenario/src/scenario/model/esdt_data/esdt.rs +++ b/framework/scenario/src/scenario/model/esdt_data/esdt.rs @@ -14,10 +14,10 @@ pub enum Esdt { impl Esdt { pub fn convert_to_short_if_possible(&mut self) { - if let Esdt::Full(esdt_obj) = self { - if esdt_obj.is_short_form() { - *self = Self::Short(esdt_obj.instances[0].balance.clone().unwrap()) - } + if let Esdt::Full(esdt_obj) = self + && esdt_obj.is_short_form() + { + *self = Self::Short(esdt_obj.instances[0].balance.clone().unwrap()) } } diff --git a/framework/scenario/src/scenario/model/step/sc_call_step.rs b/framework/scenario/src/scenario/model/step/sc_call_step.rs index 825e6957bf..c361b52aaa 100644 --- a/framework/scenario/src/scenario/model/step/sc_call_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_call_step.rs @@ -149,10 +149,10 @@ impl ScCallStep { } pub fn save_response(&mut self, mut tx_response: TxResponse) { - if let Some(expect) = &mut self.expect { - if expect.build_from_response { - expect.update_from_response(&tx_response) - } + if let Some(expect) = &mut self.expect + && expect.build_from_response + { + expect.update_from_response(&tx_response) } if tx_response.tx_hash.is_none() { tx_response.tx_hash = self diff --git a/framework/scenario/src/scenario/model/step/sc_deploy_step.rs b/framework/scenario/src/scenario/model/step/sc_deploy_step.rs index cf13f13e33..7b20bd4f18 100644 --- a/framework/scenario/src/scenario/model/step/sc_deploy_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_deploy_step.rs @@ -101,10 +101,10 @@ impl ScDeployStep { } pub fn save_response(&mut self, mut tx_response: TxResponse) { - if let Some(expect) = &mut self.expect { - if expect.build_from_response { - expect.update_from_response(&tx_response) - } + if let Some(expect) = &mut self.expect + && expect.build_from_response + { + expect.update_from_response(&tx_response) } if tx_response.tx_hash.is_none() { tx_response.tx_hash = self diff --git a/framework/scenario/src/scenario/model/step/sc_query_step.rs b/framework/scenario/src/scenario/model/step/sc_query_step.rs index 40ba0ecb3d..4a536003bf 100644 --- a/framework/scenario/src/scenario/model/step/sc_query_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_query_step.rs @@ -81,10 +81,10 @@ impl ScQueryStep { } pub fn save_response(&mut self, tx_response: TxResponse) { - if let Some(expect) = &mut self.expect { - if expect.build_from_response { - expect.update_from_response(&tx_response) - } + if let Some(expect) = &mut self.expect + && expect.build_from_response + { + expect.update_from_response(&tx_response) } self.response = Some(tx_response); } diff --git a/framework/scenario/src/vm_go_tool.rs b/framework/scenario/src/vm_go_tool.rs index 39fbe926b4..1eb7b4bec6 100644 --- a/framework/scenario/src/vm_go_tool.rs +++ b/framework/scenario/src/vm_go_tool.rs @@ -42,10 +42,10 @@ pub fn run_mx_scenario_go(absolute_path: &Path) { } fn run_scenario_tool(tool_name: &str, output: Result) -> Result<(), ToolNotFound> { - if let Err(error) = &output { - if error.kind() == ErrorKind::NotFound { - return Err(ToolNotFound); - } + if let Err(error) = &output + && error.kind() == ErrorKind::NotFound + { + return Err(ToolNotFound); } let output = output.expect("failed to execute process"); diff --git a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs index 4683eacc04..d5f80b971c 100644 --- a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs +++ b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs @@ -516,11 +516,11 @@ impl BlockchainStateWrapper { } pub fn add_mandos_check_account(&mut self, address: &Address) { - if let Some(acc) = self.world.get_state().accounts.get(address).cloned() { - if let Some(trace) = &mut self.world.get_mut_debugger_backend().trace { - MandosGenerator::new(&mut trace.scenario_trace, &mut self.current_tx_id) - .check_account(&acc); - } + if let Some(acc) = self.world.get_state().accounts.get(address).cloned() + && let Some(trace) = &mut self.world.get_mut_debugger_backend().trace + { + MandosGenerator::new(&mut trace.scenario_trace, &mut self.current_tx_id) + .check_account(&acc); } } } @@ -641,8 +641,7 @@ impl BlockchainStateWrapper { } let sc = (sc_wrapper.obj_builder)(); - let tx_result = self - .world + self.world .get_mut_debugger_backend() .vm_runner .perform_sc_call_lambda_and_check( @@ -651,9 +650,7 @@ impl BlockchainStateWrapper { tx_fn(sc); }) .panic_message(false), - ); - - tx_result + ) } /// Creates a temporary DebugApi context to run lambda function. diff --git a/framework/scenario/tests/contract_without_macros.rs b/framework/scenario/tests/contract_without_macros.rs index 03d98ce3c9..44bf67b5eb 100644 --- a/framework/scenario/tests/contract_without_macros.rs +++ b/framework/scenario/tests/contract_without_macros.rs @@ -373,15 +373,13 @@ mod sample_adder { fn callback(&mut self) { if let Some(___cb_closure___) = multiversx_sc::types::CallbackClosureForDeser::storage_load_and_clear::() - { - if !self::EndpointWrappers::callback_selector(self, &___cb_closure___) + && !self::EndpointWrappers::callback_selector(self, &___cb_closure___) .is_processed() - { - multiversx_sc::api::ErrorApiImpl::signal_error( - &::error_api_impl(), - err_msg::CALLBACK_BAD_FUNC.as_bytes(), - ); - } + { + multiversx_sc::api::ErrorApiImpl::signal_error( + &::error_api_impl(), + err_msg::CALLBACK_BAD_FUNC.as_bytes(), + ); } } } diff --git a/framework/scenario/tests/token_properties_result_test.rs b/framework/scenario/tests/token_properties_result_test.rs index 379ce1f810..5aa3b42385 100644 --- a/framework/scenario/tests/token_properties_result_test.rs +++ b/framework/scenario/tests/token_properties_result_test.rs @@ -5,7 +5,7 @@ use multiversx_sc::{ }; fn hex_decode(hex: &[u8]) -> Option> { - if hex.len() % 2 != 0 { + if !hex.len().is_multiple_of(2) { return None; } diff --git a/framework/snippets/src/interactor/interactor_scenario/interactor_transfer.rs b/framework/snippets/src/interactor/interactor_scenario/interactor_transfer.rs index 3f2ecdbf52..4d1752362f 100644 --- a/framework/snippets/src/interactor/interactor_scenario/interactor_transfer.rs +++ b/framework/snippets/src/interactor/interactor_scenario/interactor_transfer.rs @@ -41,7 +41,7 @@ where pub async fn simulate_gas_transfer(&mut self, transfer_step: TransferStep) -> u64 { let transaction = self.launch_transfer(&transfer_step).await; - let tx_gas_units = match self.proxy.request(SimulateTxRequest(&transaction)).await { + match self.proxy.request(SimulateTxRequest(&transaction)).await { Ok(gas) => { println!("Gas simulation for the SC transfer: {gas} units."); log::info!("Gas simulation for the SC transfer: {gas} units."); @@ -51,9 +51,7 @@ where simulate_gas_transfer_err_message(&err); process::exit(1); } - }; - - tx_gas_units + } } async fn launch_transfer(&mut self, transfer_step: &TransferStep) -> Transaction { diff --git a/framework/snippets/src/network_response.rs b/framework/snippets/src/network_response.rs index 3d34e7d98e..5abaedab69 100644 --- a/framework/snippets/src/network_response.rs +++ b/framework/snippets/src/network_response.rs @@ -26,13 +26,12 @@ pub fn parse_tx_response(tx: TransactionOnNetwork, return_code: ReturnCode) -> T } fn process_signal_error(tx: &TransactionOnNetwork, return_code: ReturnCode) -> TxResponseStatus { - if let Some(event) = find_log(tx, LOG_IDENTIFIER_SIGNAL_ERROR) { - if event.topics.len() >= 2 { - let error_message = String::from_utf8(base64_decode(&event.topics[1])).expect( - "Failed to decode base64-encoded error message from transaction event topic", - ); - return TxResponseStatus::new(return_code, &error_message); - } + if let Some(event) = find_log(tx, LOG_IDENTIFIER_SIGNAL_ERROR) + && event.topics.len() >= 2 + { + let error_message = String::from_utf8(base64_decode(&event.topics[1])) + .expect("Failed to decode base64-encoded error message from transaction event topic"); + return TxResponseStatus::new(return_code, &error_message); } TxResponseStatus::default() diff --git a/sdk/core/src/retrieve_tx_on_network.rs b/sdk/core/src/retrieve_tx_on_network.rs index c94d2233e3..145a76ec2a 100644 --- a/sdk/core/src/retrieve_tx_on_network.rs +++ b/sdk/core/src/retrieve_tx_on_network.rs @@ -122,10 +122,10 @@ pub fn find_code_and_message(reason: &str) -> (Option, String) { if error_code.is_none() { error_code = ReturnCode::from_u64(code); } - } else if let Ok(hex_decode_error_message) = hex::decode(part) { - if let Ok(str) = String::from_utf8(hex_decode_error_message.clone()) { - error_message = str; - } + } else if let Ok(hex_decode_error_message) = hex::decode(part) + && let Ok(str) = String::from_utf8(hex_decode_error_message.clone()) + { + error_message = str; } } @@ -167,10 +167,11 @@ pub fn replace_with_error_message(tx: &mut TransactionOnNetwork, error_message: let error_message_encoded = base64_encode(error_message); - if let Some(event) = find_log(tx) { - if event.topics.len() >= 2 && event.topics[1] != error_message_encoded { - event.topics[1] = error_message_encoded; - } + if let Some(event) = find_log(tx) + && event.topics.len() >= 2 + && event.topics[1] != error_message_encoded + { + event.topics[1] = error_message_encoded; } }