--- a/crates/evm-coder-macros/src/solidity_interface.rs +++ b/crates/evm-coder-macros/src/solidity_interface.rs @@ -570,9 +570,11 @@ .iter() .filter(|a| !a.is_special()) .map(MethodArg::expand_solidity_argument); + let selector = format!("{} {:0>8x}", self.selector_str, self.selector); quote! { SolidityFunction { + selector: #selector, name: #camel_name, mutability: #mutability, args: ( --- a/crates/evm-coder/src/solidity.rs +++ b/crates/evm-coder/src/solidity.rs @@ -376,6 +376,7 @@ Mutable, } pub struct SolidityFunction { + pub selector: &'static str, pub name: &'static str, pub args: A, pub result: R, @@ -388,6 +389,7 @@ writer: &mut impl fmt::Write, tc: &TypeCollector, ) -> fmt::Result { + writeln!(writer, "\t// Selector: {}", self.selector)?; write!(writer, "\tfunction {}(", self.name)?; self.args.solidity_name(writer, tc)?; write!(writer, ")")?;