Просмотр исходного кода

daod: remove redundant signature_publics field and return signature_public_keys from input

lunar-mining 3 лет назад
Родитель
Сommit
6eee78cab3

+ 2 - 3
bin/daod/src/dao_contract/propose/validate.rs

@@ -49,7 +49,6 @@ impl From<DarkFiError> for Error {
 pub struct CallData {
     pub header: Header,
     pub inputs: Vec<Input>,
-    pub signature_publics: Vec<PublicKey>,
 }
 
 impl CallDataBase for CallData {
@@ -98,8 +97,8 @@ impl CallDataBase for CallData {
 
     fn signature_public_keys(&self) -> Vec<PublicKey> {
         let mut signature_public_keys = vec![];
-        for pub_key in self.signature_publics.clone() {
-            signature_public_keys.push(pub_key);
+        for input in self.inputs.clone() {
+            signature_public_keys.push(input.signature_public);
         }
         signature_public_keys
     }

+ 2 - 4
bin/daod/src/dao_contract/propose/wallet.rs

@@ -78,15 +78,13 @@ impl Builder {
         let mut inputs = vec![];
         let mut total_funds = 0;
         let mut total_funds_blinds = pallas::Scalar::from(0);
-        //let mut signature_secrets = vec![];
-        let mut signature_publics = vec![];
+
         for input in self.inputs {
             let funds_blind = pallas::Scalar::random(&mut OsRng);
             total_funds += input.note.value;
             total_funds_blinds += funds_blind;
 
             let signature_public = PublicKey::from_secret(input.signature_secret);
-            signature_publics.push(signature_public);
 
             let zk_info = zk_bins.lookup(&"dao-propose-burn".to_string()).unwrap();
             let zk_info = if let ZkContractInfo::Binary(info) = zk_info {
@@ -272,7 +270,7 @@ impl Builder {
             enc_note,
         };
 
-        let call_data = CallData { header, inputs, signature_publics };
+        let call_data = CallData { header, inputs };
 
         FuncCall {
             contract_id: "DAO".to_string(),

+ 2 - 3
bin/daod/src/dao_contract/vote/validate.rs

@@ -52,7 +52,6 @@ impl From<DarkFiError> for Error {
 pub struct CallData {
     pub header: Header,
     pub inputs: Vec<Input>,
-    pub signature_publics: Vec<PublicKey>,
 }
 
 impl CallDataBase for CallData {
@@ -106,8 +105,8 @@ impl CallDataBase for CallData {
 
     fn signature_public_keys(&self) -> Vec<PublicKey> {
         let mut signature_public_keys = vec![];
-        for pub_key in self.signature_publics.clone() {
-            signature_public_keys.push(pub_key);
+        for input in self.inputs.clone() {
+            signature_public_keys.push(input.signature_public);
         }
         signature_public_keys
     }

+ 1 - 3
bin/daod/src/dao_contract/vote/wallet.rs

@@ -72,7 +72,6 @@ impl Builder {
         let mut inputs = vec![];
         let mut value = 0;
         let mut value_blind = pallas::Scalar::from(0);
-        let mut signature_publics = vec![];
 
         for input in self.inputs {
             let input_value_blind = pallas::Scalar::random(&mut OsRng);
@@ -81,7 +80,6 @@ impl Builder {
             value_blind += input_value_blind;
 
             let signature_public = PublicKey::from_secret(input.signature_secret);
-            signature_publics.push(signature_public);
 
             let zk_info = zk_bins.lookup(&"dao-vote-burn".to_string()).unwrap();
 
@@ -287,7 +285,7 @@ impl Builder {
 
         let header = Header { token_commit, proposal_bulla, vote_commit, enc_note };
 
-        let call_data = CallData { header, inputs, signature_publics };
+        let call_data = CallData { header, inputs };
 
         FuncCall {
             contract_id: "DAO".to_string(),

+ 2 - 4
bin/daod/src/money_contract/transfer/validate.rs

@@ -180,8 +180,6 @@ pub struct CallData {
     pub inputs: Vec<Input>,
     /// Anonymous outputs
     pub outputs: Vec<Output>,
-    /// Signature public keys
-    pub signature_publics: Vec<PublicKey>,
 }
 
 impl CallDataBase for CallData {
@@ -202,8 +200,8 @@ impl CallDataBase for CallData {
 
     fn signature_public_keys(&self) -> Vec<PublicKey> {
         let mut signature_public_keys = Vec::new();
-        for pub_key in self.signature_publics.clone() {
-            signature_public_keys.push(pub_key);
+        for input in self.clear_inputs.clone() {
+            signature_public_keys.push(input.signature_public);
         }
         signature_public_keys
     }

+ 1 - 3
bin/daod/src/money_contract/transfer/wallet.rs

@@ -112,14 +112,12 @@ impl Builder {
         let mut proofs = vec![];
         let mut inputs = vec![];
         let mut input_blinds = vec![];
-        let mut signature_publics = vec![];
 
         for input in self.inputs {
             let value_blind = input.value_blind;
             input_blinds.push(value_blind);
 
             let signature_public = PublicKey::from_secret(input.signature_secret);
-            signature_publics.push(signature_public);
 
             let zk_info = zk_bins.lookup(&"money-transfer-burn".to_string()).unwrap();
             let zk_info = if let ZkContractInfo::Native(info) = zk_info {
@@ -209,7 +207,7 @@ impl Builder {
             outputs.push(output);
         }
 
-        let call_data = CallData { clear_inputs, inputs, outputs, signature_publics };
+        let call_data = CallData { clear_inputs, inputs, outputs };
 
         Ok(FuncCall {
             contract_id: "Money".to_string(),