git.delta.rocks / unique-network / refs/commits / 695f378349e2

difftreelog

feat print selector in generated ifaces

Yaroslav Bolyukin2021-09-01parent: #4aadc00.patch.diff
in: master

2 files changed

modifiedcrates/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: (
modifiedcrates/evm-coder/src/solidity.rsdiffbeforeafterboth
376 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, ")")?;