git.delta.rocks / unique-network / refs/commits / 50d005ef0b3c

difftreelog

refactor(evm-coder) fancier selector doccomment

Yaroslav Bolyukin2022-07-12parent: #4e01cb3.patch.diff
in: master
Make it closer to format used in standards

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
@@ -765,11 +765,13 @@
 			.filter(|a| !a.is_special())
 			.map(MethodArg::expand_solidity_argument);
 		let docs = self.docs.iter();
-		let selector = format!("{} {:0>8x}", self.selector_str, self.selector);
+		let selector_str = &self.selector_str;
+		let selector = self.selector;
 
 		quote! {
 			SolidityFunction {
 				docs: &[#(#docs),*],
+				selector_str: #selector_str,
 				selector: #selector,
 				name: #camel_name,
 				mutability: #mutability,
modifiedcrates/evm-coder/src/solidity.rsdiffbeforeafterboth
402}402}
403pub struct SolidityFunction<A, R> {403pub struct SolidityFunction<A, R> {
404 pub docs: &'static [&'static str],404 pub docs: &'static [&'static str],
405 pub selector: &'static str,405 pub selector_str: &'static str,
406 pub selector: u32,
406 pub name: &'static str,407 pub name: &'static str,
407 pub args: A,408 pub args: A,
408 pub result: R,409 pub result: R,
421 if !self.docs.is_empty() {422 if !self.docs.is_empty() {
422 writeln!(writer, "\t///")?;423 writeln!(writer, "\t///")?;
423 }424 }
424 writeln!(writer, "\t/// Selector: {}", self.selector)?;425 writeln!(writer, "\t/// @dev EVM selector for this function is: 0x{:0>8x},", self.selector)?;
426 writeln!(writer, "\t/// or in textual repr: {}", self.selector_str)?;
425 write!(writer, "\tfunction {}(", self.name)?;427 write!(writer, "\tfunction {}(", self.name)?;
426 self.args.solidity_name(writer, tc)?;428 self.args.solidity_name(writer, tc)?;
427 write!(writer, ")")?;429 write!(writer, ")")?;