From 2ef175a775412b84f3b8ed9ede26e06d26dc34b1 Mon Sep 17 00:00:00 2001 From: Trubnikov Sergey Date: Mon, 31 Oct 2022 13:08:06 +0000 Subject: [PATCH] fix: remove warning --- --- a/crates/evm-coder/procedural/src/solidity_interface.rs +++ b/crates/evm-coder/procedural/src/solidity_interface.rs @@ -731,18 +731,16 @@ let selector_str = &self.selector_str; let custom_signature = self.expand_custom_signature(); quote! { + #[doc = #selector_str] const #screaming_name_signature: ::evm_coder::custom_signature::FunctionSignature = #custom_signature; - #[doc = #selector_str] const #screaming_name: ::evm_coder::types::bytes4 = { - let mut data = [0_u8; Self::#screaming_name_signature.unit.len]; + let mut sum = ::evm_coder::sha3_const::Keccak256::new(); let mut pos = 0; while pos < Self::#screaming_name_signature.unit.len { - data[pos] = Self::#screaming_name_signature.unit.data[pos]; + sum = sum.update(&[Self::#screaming_name_signature.unit.data[pos]; 1]); pos += 1; } - let a = ::evm_coder::sha3_const::Keccak256::new() - .update(&data) - .finalize(); + let a = sum.finalize(); [a[0], a[1], a[2], a[3]] }; } @@ -1133,30 +1131,6 @@ let solidity_event_generators = self.info.events.0.iter().map(Is::expand_event_generator); let docs = &self.docs; - - if let Some(expect_selector) = &self.info.expect_selector { - if !self.info.inline_is.0.is_empty() { - return syn::Error::new( - name.span(), - "expect_selector is not compatible with inline_is", - ) - .to_compile_error(); - } - let selector = self - .methods - .iter() - .map(|m| m.selector) - .fold(0, |a, b| a ^ b); - - if *expect_selector != selector { - let mut methods = String::new(); - for meth in self.methods.iter() { - write!(methods, "\n- {}", meth.selector_str).expect("write to string"); - } - return syn::Error::new(name.span(), format!("expected selector mismatch, expected {expect_selector:0>8x}, but implementation has {selector:0>8x}{methods}")).to_compile_error(); - } - } - // let methods = self.methods.iter().map(Method::solidity_def); quote! { #[derive(Debug)] --- a/crates/evm-coder/src/custom_signature.rs +++ b/crates/evm-coder/src/custom_signature.rs @@ -241,7 +241,7 @@ /// ``` #[macro_export] macro_rules! make_signature { - (new fn($func:expr)$(,)+) => { + (new fn($func:expr)$(,)*) => { { let fs = FunctionSignature::new($func); let fs = FunctionSignature::done(fs, false); @@ -426,7 +426,7 @@ #[test] fn make_func_without_args() { const SIG: FunctionSignature = make_signature!( - new fn(SIGNATURE_PREFERENCES), + new fn(SIGNATURE_PREFERENCES) ); let name = SIG.as_str(); similar_asserts::assert_eq!(name, "some_funk()"); -- gitstuff