Browse Source

cargo fmt

parazyd 3 years ago
parent
commit
38b3048da3
5 changed files with 48 additions and 67 deletions
  1. 34 46
      src/consensus/leadcoin.rs
  2. 1 1
      src/consensus/mod.rs
  3. 6 10
      src/consensus/rcpt.rs
  4. 4 5
      src/consensus/stx.rs
  5. 3 5
      src/consensus/tx.rs

+ 34 - 46
src/consensus/leadcoin.rs

@@ -30,28 +30,26 @@ use incrementalmerkletree::{bridgetree::BridgeTree, Tree};
 use log::debug;
 use log::debug;
 use rand::rngs::OsRng;
 use rand::rngs::OsRng;
 
 
-use super::constants::{EPOCH_LENGTH};
+use super::constants::EPOCH_LENGTH;
 use crate::{
 use crate::{
-    consensus::{TxRcpt,EncryptedTxRcpt,TransferStx},
+    consensus::{EncryptedTxRcpt, TransferStx, TxRcpt},
     crypto::{proof::ProvingKey, Proof},
     crypto::{proof::ProvingKey, Proof},
     zk::{vm::ZkCircuit, vm_stack::Witness},
     zk::{vm::ZkCircuit, vm_stack::Witness},
     zkas::ZkBinary,
     zkas::ZkBinary,
-    Result, Error,
+    Error, Result,
 };
 };
-use darkfi_serial::{Encodable, Decodable, SerialDecodable, SerialEncodable};
+use darkfi_serial::{Decodable, Encodable, SerialDecodable, SerialEncodable};
 
 
 pub const MERKLE_DEPTH_LEADCOIN: usize = 32;
 pub const MERKLE_DEPTH_LEADCOIN: usize = 32;
 pub const MERKLE_DEPTH: u8 = 32;
 pub const MERKLE_DEPTH: u8 = 32;
 pub const ZERO: pallas::Base = pallas::Base::zero();
 pub const ZERO: pallas::Base = pallas::Base::zero();
 pub const ONE: pallas::Base = pallas::Base::one();
 pub const ONE: pallas::Base = pallas::Base::one();
-pub const PREFIX_EVL: u64  = 2;
+pub const PREFIX_EVL: u64 = 2;
 pub const PREFIX_SEED: u64 = 3;
 pub const PREFIX_SEED: u64 = 3;
 pub const PREFIX_CM: u64 = 4;
 pub const PREFIX_CM: u64 = 4;
 pub const PREFIX_PK: u64 = 5;
 pub const PREFIX_PK: u64 = 5;
 pub const PREFIX_SN: u64 = 6;
 pub const PREFIX_SN: u64 = 6;
 
 
-
-
 // TODO: Unify item names with the names in the ZK proof (those are more descriptive)
 // TODO: Unify item names with the names in the ZK proof (those are more descriptive)
 /// Structure representing the consensus leader coin
 /// Structure representing the consensus leader coin
 #[derive(Debug, Clone, Copy)]
 #[derive(Debug, Clone, Copy)]
@@ -137,12 +135,8 @@ impl LeadCoin {
         let coin2_blind = pallas::Scalar::random(&mut OsRng);
         let coin2_blind = pallas::Scalar::random(&mut OsRng);
         let tau = pallas::Base::from(slot_index as u64);
         let tau = pallas::Base::from(slot_index as u64);
         // pk
         // pk
-        let pk_msg = [
-            pallas::Base::from(PREFIX_PK),
-            coin1_sk_root.inner(),
-            tau,
-            pallas::Base::from(ZERO)
-        ];
+        let pk_msg =
+            [pallas::Base::from(PREFIX_PK), coin1_sk_root.inner(), tau, pallas::Base::from(ZERO)];
         let pk = poseidon_hash(pk_msg);
         let pk = poseidon_hash(pk_msg);
         // Derive the nonce for coin2
         // Derive the nonce for coin2
         let coin2_nonce_msg = [
         let coin2_nonce_msg = [
@@ -190,7 +184,7 @@ impl LeadCoin {
             pallas::Base::from(PREFIX_SN),
             pallas::Base::from(PREFIX_SN),
             coin1_sk_root.inner(),
             coin1_sk_root.inner(),
             pallas::Base::from(seed),
             pallas::Base::from(seed),
-            pallas::Base::from(ZERO)
+            pallas::Base::from(ZERO),
         ];
         ];
         let c_sn = poseidon_hash(sn_msg);
         let c_sn = poseidon_hash(sn_msg);
 
 
@@ -203,7 +197,7 @@ impl LeadCoin {
             idx: u32::try_from(usize::from(leaf_pos)).unwrap(),
             idx: u32::try_from(usize::from(leaf_pos)).unwrap(),
             sl: pallas::Base::from(slot_index as u64),
             sl: pallas::Base::from(slot_index as u64),
             // Assume tau is sl for simplicity
             // Assume tau is sl for simplicity
-            tau: tau,
+            tau,
             nonce: pallas::Base::from(seed),
             nonce: pallas::Base::from(seed),
             nonce_cm: coin2_seed,
             nonce_cm: coin2_seed,
             sn: c_sn,
             sn: c_sn,
@@ -290,7 +284,7 @@ impl LeadCoin {
             pallas::Base::from(PREFIX_PK),
             pallas::Base::from(PREFIX_PK),
             self.coin1_sk_root.inner(),
             self.coin1_sk_root.inner(),
             self.tau,
             self.tau,
-            pallas::Base::from(ZERO)
+            pallas::Base::from(ZERO),
         ];
         ];
         let pk = poseidon_hash(pk_msg);
         let pk = poseidon_hash(pk_msg);
         pk
         pk
@@ -302,7 +296,7 @@ impl LeadCoin {
             pallas::Base::from(PREFIX_EVL),
             pallas::Base::from(PREFIX_EVL),
             self.coin1_sk_root.inner(),
             self.coin1_sk_root.inner(),
             self.nonce,
             self.nonce,
-            pallas::Base::from(ZERO)
+            pallas::Base::from(ZERO),
         ];
         ];
         let rho = poseidon_hash(rho_msg);
         let rho = poseidon_hash(rho_msg);
         rho
         rho
@@ -312,12 +306,7 @@ impl LeadCoin {
     pub fn derived_commitment(&self, blind: pallas::Scalar) -> pallas::Point {
     pub fn derived_commitment(&self, blind: pallas::Scalar) -> pallas::Point {
         let pk = self.pk();
         let pk = self.pk();
         let rho = self.derived_rho();
         let rho = self.derived_rho();
-        let cm_in = [
-            pallas::Base::from(PREFIX_CM),
-            pk,
-            pallas::Base::from(self.value),
-            rho,
-        ];
+        let cm_in = [pallas::Base::from(PREFIX_CM), pk, pallas::Base::from(self.value), rho];
         let cm_v = poseidon_hash(cm_in);
         let cm_v = poseidon_hash(cm_in);
 
 
         let cm = pedersen_commitment_base(cm_v, blind);
         let cm = pedersen_commitment_base(cm_v, blind);
@@ -362,26 +351,26 @@ impl LeadCoin {
             Witness::Scalar(Value::known(mod_r_p(self.rho_mu))),
             Witness::Scalar(Value::known(mod_r_p(self.rho_mu))),
             Witness::Scalar(Value::known(mod_r_p(self.y_mu))),
             Witness::Scalar(Value::known(mod_r_p(self.y_mu))),
             Witness::Base(Value::known(self.sigma1)),
             Witness::Base(Value::known(self.sigma1)),
-            Witness::Base(Value::known(self.sigma2))
+            Witness::Base(Value::known(self.sigma2)),
         ];
         ];
         let circuit = ZkCircuit::new(witnesses, zkbin.clone());
         let circuit = ZkCircuit::new(witnesses, zkbin.clone());
         Ok(Proof::create(pk, &[circuit], &self.public_inputs(), &mut OsRng)?)
         Ok(Proof::create(pk, &[circuit], &self.public_inputs(), &mut OsRng)?)
     }
     }
 
 
-    pub fn create_xfer_proof(&self,
-                             pk: &ProvingKey,
-                             change_coin: TxRcpt,
-                             change_pk: pallas::Base, //change coin public key
-                             transfered_coin: TxRcpt,
-                             transfered_pk: pallas::Base // recipient coin's public key
+    pub fn create_xfer_proof(
+        &self,
+        pk: &ProvingKey,
+        change_coin: TxRcpt,
+        change_pk: pallas::Base, //change coin public key
+        transfered_coin: TxRcpt,
+        transfered_pk: pallas::Base, // recipient coin's public key
     ) -> Result<TransferStx> {
     ) -> Result<TransferStx> {
-        assert!(change_coin.value+transfered_coin.value==self.value
-                && self.value>0);
+        assert!(change_coin.value + transfered_coin.value == self.value && self.value > 0);
         let bincode = include_bytes!("../../proof/tx.zk.bin");
         let bincode = include_bytes!("../../proof/tx.zk.bin");
         let zkbin = ZkBinary::decode(bincode)?;
         let zkbin = ZkBinary::decode(bincode)?;
         let retval = pallas::Base::from(change_coin.value);
         let retval = pallas::Base::from(change_coin.value);
         let xferval = pallas::Base::from(transfered_coin.value);
         let xferval = pallas::Base::from(transfered_coin.value);
-        let pos : u32 = self.idx;
+        let pos: u32 = self.idx;
         let value = pallas::Base::from(self.value);
         let value = pallas::Base::from(self.value);
         let witnesses = vec![
         let witnesses = vec![
             // coin (1) burned coin
             // coin (1) burned coin
@@ -409,21 +398,23 @@ impl LeadCoin {
         ];
         ];
         let circuit = ZkCircuit::new(witnesses, zkbin.clone());
         let circuit = ZkCircuit::new(witnesses, zkbin.clone());
         let proof = Proof::create(pk, &[circuit], &self.public_inputs(), &mut OsRng)?;
         let proof = Proof::create(pk, &[circuit], &self.public_inputs(), &mut OsRng)?;
-        let cm3_msg_in = [pallas::Base::from(PREFIX_CM),
-                          change_pk,
-                          pallas::Base::from(change_coin.value),
-                          change_coin.rho,
+        let cm3_msg_in = [
+            pallas::Base::from(PREFIX_CM),
+            change_pk,
+            pallas::Base::from(change_coin.value),
+            change_coin.rho,
         ];
         ];
         let cm3_msg = poseidon_hash(cm3_msg_in);
         let cm3_msg = poseidon_hash(cm3_msg_in);
         let cm3 = pedersen_commitment_base(cm3_msg, change_coin.opening);
         let cm3 = pedersen_commitment_base(cm3_msg, change_coin.opening);
-        let cm4_msg_in = [pallas::Base::from(PREFIX_CM),
-                          transfered_pk,
-                          pallas::Base::from(transfered_coin.value),
-                          transfered_coin.rho,
+        let cm4_msg_in = [
+            pallas::Base::from(PREFIX_CM),
+            transfered_pk,
+            pallas::Base::from(transfered_coin.value),
+            transfered_coin.rho,
         ];
         ];
         let cm4_msg = poseidon_hash(cm4_msg_in);
         let cm4_msg = poseidon_hash(cm4_msg_in);
         let cm4 = pedersen_commitment_base(cm4_msg, transfered_coin.opening);
         let cm4 = pedersen_commitment_base(cm4_msg, transfered_coin.opening);
-        let tx  = TransferStx {
+        let tx = TransferStx {
             coin_commitment: self.coin1_commitment,
             coin_commitment: self.coin1_commitment,
             coin_pk: self.pk(),
             coin_pk: self.pk(),
             coin_root_sk: self.coin1_sk_root,
             coin_root_sk: self.coin1_sk_root,
@@ -432,15 +423,12 @@ impl LeadCoin {
             nullifier: self.sn,
             nullifier: self.sn,
             tau: self.tau,
             tau: self.tau,
             root: self.coin1_commitment_root,
             root: self.coin1_commitment_root,
-            proof: proof
+            proof,
         };
         };
         Ok(tx)
         Ok(tx)
     }
     }
 }
 }
 
 
-
-
-
 /// This struct holds the secrets for creating LeadCoins during one epoch.
 /// This struct holds the secrets for creating LeadCoins during one epoch.
 pub struct LeadCoinSecrets {
 pub struct LeadCoinSecrets {
     pub secret_keys: Vec<SecretKey>,
     pub secret_keys: Vec<SecretKey>,

+ 1 - 1
src/consensus/mod.rs

@@ -60,7 +60,7 @@ pub use stx::TransferStx;
 
 
 /// encrypted receipient coin info
 /// encrypted receipient coin info
 pub mod rcpt;
 pub mod rcpt;
-pub use rcpt::{TxRcpt,EncryptedTxRcpt};
+pub use rcpt::{EncryptedTxRcpt, TxRcpt};
 
 
 /// transfer transaction
 /// transfer transaction
 pub mod tx;
 pub mod tx;

+ 6 - 10
src/consensus/rcpt.rs

@@ -16,34 +16,31 @@
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
  */
 
 
-
 use darkfi_sdk::{
 use darkfi_sdk::{
     crypto::{
     crypto::{
-        keypair::{PublicKey},
         diffie_hellman::{kdf_sapling, sapling_ka_agree},
         diffie_hellman::{kdf_sapling, sapling_ka_agree},
+        keypair::PublicKey,
         pedersen::{pedersen_commitment_base, pedersen_commitment_u64},
         pedersen::{pedersen_commitment_base, pedersen_commitment_u64},
         poseidon_hash,
         poseidon_hash,
         util::mod_r_p,
         util::mod_r_p,
         MerkleNode, SecretKey,
         MerkleNode, SecretKey,
     },
     },
     pasta::{arithmetic::CurveAffine, group::Curve, pallas},
     pasta::{arithmetic::CurveAffine, group::Curve, pallas},
-
-
 };
 };
 use halo2_proofs::{arithmetic::Field, circuit::Value};
 use halo2_proofs::{arithmetic::Field, circuit::Value};
 use incrementalmerkletree::{bridgetree::BridgeTree, Tree};
 use incrementalmerkletree::{bridgetree::BridgeTree, Tree};
 use log::debug;
 use log::debug;
 use rand::rngs::OsRng;
 use rand::rngs::OsRng;
 
 
-use darkfi_serial::{Encodable, Decodable, SerialDecodable, SerialEncodable};
-use super::constants::{EPOCH_LENGTH};
+use super::constants::EPOCH_LENGTH;
 use crate::{
 use crate::{
     crypto::{proof::ProvingKey, Proof},
     crypto::{proof::ProvingKey, Proof},
     zk::{vm::ZkCircuit, vm_stack::Witness},
     zk::{vm::ZkCircuit, vm_stack::Witness},
     zkas::ZkBinary,
     zkas::ZkBinary,
-    Result, Error,
+    Error, Result,
 };
 };
 use crypto_api_chachapoly::ChachaPolyIetf;
 use crypto_api_chachapoly::ChachaPolyIetf;
+use darkfi_serial::{Decodable, Encodable, SerialDecodable, SerialEncodable};
 
 
 /// transfered leadcoin is rcpt into two coins,
 /// transfered leadcoin is rcpt into two coins,
 /// first coin is transfered rcpt coin.
 /// first coin is transfered rcpt coin.
@@ -58,7 +55,6 @@ pub struct TxRcpt {
     pub value: u64,
     pub value: u64,
 }
 }
 
 
-
 pub const PLAINTEXT_SIZE: usize = 32 + 32 + 8;
 pub const PLAINTEXT_SIZE: usize = 32 + 32 + 8;
 pub const AEAD_TAG_SIZE: usize = 16;
 pub const AEAD_TAG_SIZE: usize = 16;
 pub const CIPHER_SIZE: usize = PLAINTEXT_SIZE + AEAD_TAG_SIZE;
 pub const CIPHER_SIZE: usize = PLAINTEXT_SIZE + AEAD_TAG_SIZE;
@@ -86,7 +82,6 @@ impl TxRcpt {
     }
     }
 }
 }
 
 
-
 #[derive(Debug, Clone, PartialEq, SerialEncodable, SerialDecodable)]
 #[derive(Debug, Clone, PartialEq, SerialEncodable, SerialDecodable)]
 pub struct EncryptedTxRcpt {
 pub struct EncryptedTxRcpt {
     ciphertext: [u8; CIPHER_SIZE],
     ciphertext: [u8; CIPHER_SIZE],
@@ -102,7 +97,8 @@ impl EncryptedTxRcpt {
         assert_eq!(
         assert_eq!(
             ChachaPolyIetf::aead_cipher()
             ChachaPolyIetf::aead_cipher()
                 .open_to(&mut plaintext, &self.ciphertext, &[], key.as_ref(), &[0u8; 12])
                 .open_to(&mut plaintext, &self.ciphertext, &[], key.as_ref(), &[0u8; 12])
-                .map_err(|_| Error::TxRcptDecryptionError).unwrap(),
+                .map_err(|_| Error::TxRcptDecryptionError)
+                .unwrap(),
             PLAINTEXT_SIZE
             PLAINTEXT_SIZE
         );
         );
 
 

+ 4 - 5
src/consensus/stx.rs

@@ -17,15 +17,15 @@
  */
  */
 
 
 use darkfi_sdk::{
 use darkfi_sdk::{
-    pasta::{arithmetic::CurveAffine, group::Curve, pallas},
     crypto::MerkleNode,
     crypto::MerkleNode,
+    pasta::{arithmetic::CurveAffine, group::Curve, pallas},
 };
 };
 
 
 use crate::{
 use crate::{
     crypto::{proof::VerifyingKey, Proof},
     crypto::{proof::VerifyingKey, Proof},
-    Result, Error,
+    Error, Result,
 };
 };
-use darkfi_serial::{Encodable, Decodable, SerialDecodable, SerialEncodable};
+use darkfi_serial::{Decodable, Encodable, SerialDecodable, SerialEncodable};
 
 
 #[derive(Debug, Clone, SerialDecodable, SerialEncodable)]
 #[derive(Debug, Clone, SerialDecodable, SerialEncodable)]
 pub struct TransferStx {
 pub struct TransferStx {
@@ -50,9 +50,8 @@ pub struct TransferStx {
 }
 }
 
 
 impl TransferStx {
 impl TransferStx {
-
     /// verify the transfer proof.
     /// verify the transfer proof.
-    pub fn verify(&self, vk: VerifyingKey)  -> Result<()> {
+    pub fn verify(&self, vk: VerifyingKey) -> Result<()> {
         if let Err(e) = self.proof.verify(&vk, &self.public_inputs()) {
         if let Err(e) = self.proof.verify(&vk, &self.public_inputs()) {
             return Err(Error::TransferTxVerification)
             return Err(Error::TransferTxVerification)
         }
         }

+ 3 - 5
src/consensus/tx.rs

@@ -1,7 +1,5 @@
-use darkfi_serial::{Encodable, Decodable, SerialDecodable, SerialEncodable};
-use crate::{
-    consensus::{EncryptedTxRcpt, TransferStx},
-};
+use crate::consensus::{EncryptedTxRcpt, TransferStx};
+use darkfi_serial::{Decodable, Encodable, SerialDecodable, SerialEncodable};
 
 
 /// transfer transaction
 /// transfer transaction
 #[derive(Debug, Clone, SerialDecodable, SerialEncodable)]
 #[derive(Debug, Clone, SerialDecodable, SerialEncodable)]
@@ -12,7 +10,7 @@ pub struct Tx {
 
 
 impl Tx {
 impl Tx {
     /// verify transfer transaction
     /// verify transfer transaction
-    pub fn verify(&self) -> bool{
+    pub fn verify(&self) -> bool {
         //TODO: verify tx
         //TODO: verify tx
         true
         true
     }
     }