difftreelog
refactor(evm-coder) fancier selector doccomment
in: master
Make it closer to format used in standards
2 files changed
crates/evm-coder-macros/src/solidity_interface.rsdiffbeforeafterboth765 .filter(|a| !a.is_special())765 .filter(|a| !a.is_special())766 .map(MethodArg::expand_solidity_argument);766 .map(MethodArg::expand_solidity_argument);767 let docs = self.docs.iter();767 let docs = self.docs.iter();768 let selector_str = &self.selector_str;768 let selector = format!("{} {:0>8x}", self.selector_str, self.selector);769 let selector = self.selector;769770770 quote! {771 quote! {771 SolidityFunction {772 SolidityFunction {772 docs: &[#(#docs),*],773 docs: &[#(#docs),*],774 selector_str: #selector_str,773 selector: #selector,775 selector: #selector,774 name: #camel_name,776 name: #camel_name,775 mutability: #mutability,777 mutability: #mutability,crates/evm-coder/src/solidity.rsdiffbeforeafterboth402}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, ")")?;