git.delta.rocks / unique-network / refs/commits / 1fe3f60bce5f

difftreelog

refactor

Trubnikov Sergey2022-10-25parent: #1602901.patch.diff
in: master

2 files changed

modifiedcrates/evm-coder/procedural/src/solidity_interface.rsdiffbeforeafterboth
734 const #screaming_name_signature: ::evm_coder::custom_signature::FunctionSignature = #custom_signature;734 const #screaming_name_signature: ::evm_coder::custom_signature::FunctionSignature = #custom_signature;
735 #[doc = #selector_str]735 #[doc = #selector_str]
736 const #screaming_name: ::evm_coder::types::bytes4 = {736 const #screaming_name: ::evm_coder::types::bytes4 = {
737 let mut data = [0_u8; Self::#screaming_name_signature.unit.len];
738 let mut pos = 0;
739 while pos < Self::#screaming_name_signature.unit.len {
740 data[pos] = Self::#screaming_name_signature.unit.data[pos];
741 pos += 1;
742 }
737 let a = ::evm_coder::sha3_const::Keccak256::new()743 let a = ::evm_coder::sha3_const::Keccak256::new()
738 .update_with_size(&Self::#screaming_name_signature.data, Self::#screaming_name_signature.len)744 .update(&data)
739 .finalize();745 .finalize();
740 [a[0], a[1], a[2], a[3]]746 [a[0], a[1], a[2], a[3]]
741 };747 };
953 cs959 cs
954 }960 }
955 );961 );
956 // println!("!!!!! {}", custom_signature);
957 let is_payable = self.has_value_args;962 let is_payable = self.has_value_args;
963
958 let out = quote! {964 quote! {
959 SolidityFunction {965 SolidityFunction {
960 docs: &[#(#docs),*],966 docs: &[#(#docs),*],
961 selector_str: #selector_str,967 selector_str: #selector_str,
972 ),978 ),
973 result: <UnnamedArgument<#result>>::default(),979 result: <UnnamedArgument<#result>>::default(),
974 }980 }
975 };981 }
976 // println!("@@@ {}", out);
977 out
978 }982 }
979}983}
980984
modifiedcrates/evm-coder/src/custom_signature.rsdiffbeforeafterboth
--- a/crates/evm-coder/src/custom_signature.rs
+++ b/crates/evm-coder/src/custom_signature.rs
@@ -13,9 +13,7 @@
 
 #[derive(Debug)]
 pub struct FunctionSignature {
-	pub data: [u8; SIGNATURE_SIZE_LIMIT],
-	pub len: usize,
-
+	pub unit: SignatureUnit,
 	preferences: SignaturePreferences,
 }
 
@@ -30,8 +28,10 @@
 			crate::make_signature!(@copy(delimiter.data, dst, delimiter.len, dst_offset));
 		}
 		FunctionSignature {
-			data: dst,
-			len: dst_offset,
+			unit: SignatureUnit {
+				data: dst,
+				len: dst_offset,
+			},
 			preferences,
 		}
 	}
@@ -40,22 +40,24 @@
 		signature: FunctionSignature,
 		param: SignatureUnit,
 	) -> FunctionSignature {
-		let mut dst = signature.data;
-		let mut dst_offset = signature.len;
+		let mut dst = signature.unit.data;
+		let mut dst_offset = signature.unit.len;
 		crate::make_signature!(@copy(param.data, dst, param.len, dst_offset));
 		if let Some(ref delimiter) = signature.preferences.param_delimiter {
 			crate::make_signature!(@copy(delimiter.data, dst, delimiter.len, dst_offset));
 		}
 		FunctionSignature {
-			data: dst,
-			len: dst_offset,
+			unit: SignatureUnit {
+				data: dst,
+				len: dst_offset,
+			},
 			..signature
 		}
 	}
 
 	pub const fn done(signature: FunctionSignature, owerride: bool) -> FunctionSignature {
-		let mut dst = signature.data;
-		let mut dst_offset = signature.len - if owerride { 1 } else { 0 };
+		let mut dst = signature.unit.data;
+		let mut dst_offset = signature.unit.len - if owerride { 1 } else { 0 };
 		if let Some(ref delimiter) = signature.preferences.close_delimiter {
 			crate::make_signature!(@copy(delimiter.data, dst, delimiter.len, dst_offset));
 		}
@@ -63,14 +65,16 @@
 			crate::make_signature!(@copy(name.data, dst, name.len, dst_offset));
 		}
 		FunctionSignature {
-			data: dst,
-			len: dst_offset,
+			unit: SignatureUnit {
+				data: dst,
+				len: dst_offset,
+			},
 			..signature
 		}
 	}
 
 	pub fn as_str(&self) -> &str {
-		from_utf8(&self.data[..self.len]).expect("bad utf-8")
+		from_utf8(&self.unit.data[..self.unit.len]).expect("bad utf-8")
 	}
 }
 
@@ -335,11 +339,11 @@
 			(<u32>::SIGNATURE),
 			(<Vec<u32>>::SIGNATURE),
 		);
-		const NAME: [u8; SIG.len] = {
-			let mut name: [u8; SIG.len] = [0; SIG.len];
+		const NAME: [u8; SIG.unit.len] = {
+			let mut name: [u8; SIG.unit.len] = [0; SIG.unit.len];
 			let mut i = 0;
-			while i < SIG.len {
-				name[i] = SIG.data[i];
+			while i < SIG.unit.len {
+				name[i] = SIG.unit.data[i];
 				i += 1;
 			}
 			name