difftreelog
feat print selector in generated ifaces
in: master
2 files changed
crates/evm-coder-macros/src/solidity_interface.rsdiffbeforeafterboth--- 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: (
crates/evm-coder/src/solidity.rsdiffbeforeafterboth376 Mutable,376 Mutable,377}377}378pub struct SolidityFunction<A, R> {378pub struct SolidityFunction<A, R> {379 pub selector: &'static str,379 pub name: &'static str,380 pub name: &'static str,380 pub args: A,381 pub args: A,381 pub result: R,382 pub result: R,388 writer: &mut impl fmt::Write,389 writer: &mut impl fmt::Write,389 tc: &TypeCollector,390 tc: &TypeCollector,390 ) -> fmt::Result {391 ) -> fmt::Result {392 writeln!(writer, "\t// Selector: {}", self.selector)?;391 write!(writer, "\tfunction {}(", self.name)?;393 write!(writer, "\tfunction {}(", self.name)?;392 self.args.solidity_name(writer, tc)?;394 self.args.solidity_name(writer, tc)?;393 write!(writer, ")")?;395 write!(writer, ")")?;