difftreelog
fix add tuple support in solidity_interface
in: master
1 file changed
crates/evm-coder/procedural/src/solidity_interface.rsdiffbeforeafterboth843843844 fn expand_type(ty: &AbiType, token_stream: &mut proc_macro2::TokenStream) {844 fn expand_type(845 ty: &AbiType,846 token_stream: &mut proc_macro2::TokenStream,847 read_signature: bool,848 ) {845 match ty {849 match ty {846 AbiType::Plain(ref ident) => {850 AbiType::Plain(ref ident) => token_stream.extend(if read_signature {847 token_stream.extend(quote! {851 quote! {848 (<#ident>::SIGNATURE),852 (<#ident>::SIGNATURE),849 });853 }850 }854 } else {855 quote! {856 #ident,857 }858 }),851859852 AbiType::Tuple(ref tuple_type) => {860 AbiType::Tuple(ref tuple_type) => {853 let mut tuple_types = proc_macro2::TokenStream::new();861 let mut tuple_types = proc_macro2::TokenStream::new();854 for ty in tuple_type {862 for ty in tuple_type {855 Self::expand_type(ty, &mut tuple_types);863 Self::expand_type(ty, &mut tuple_types, false);856 }864 }857 let group =865 tuple_types = quote! { (<(#tuple_types)>::SIGNATURE), };858 proc_macro2::Group::new(proc_macro2::Delimiter::Parenthesis, tuple_types);866 // println!("{}", tuple_types);859 token_stream.extend(group.stream());867 token_stream.extend(tuple_types);860 }868 }861869862 AbiType::Vec(ref _vec_type) => {}870 AbiType::Vec(ref _vec_type) => {}873 continue;881 continue;874 }882 }875883876 Self::expand_type(&arg.ty, &mut token_stream);884 Self::expand_type(&arg.ty, &mut token_stream, true);877 }885 }886 // println!("!!!!! {}", token_stream);878887879 let func_name = self.camel_name.clone();888 let func_name = self.camel_name.clone();880 let func_name = quote!(SignaturePreferences {889 let func_name = quote!(SignaturePreferences {886 });895 });887 token_stream = quote!({ ::evm_coder::make_signature!(new fn(#func_name),#token_stream) });896 token_stream = quote!({ ::evm_coder::make_signature!(new fn(#func_name),#token_stream) });888889 // println!("!!!!! {}", custom_signature);890891 token_stream897 token_stream892 }898 }