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

dao mint witness all values except y due to poseidon crashing

narodnik 4 лет назад
Родитель
Сommit
e5773319f3
2 измененных файлов с 28 добавлено и 31 удалено
  1. 11 11
      bin/daod/proof/dao-mint.zk
  2. 17 20
      bin/daod/src/demo.rs

+ 11 - 11
bin/daod/proof/dao-mint.zk

@@ -3,24 +3,24 @@ constant "DaoMint" {
 
 
 contract "DaoMint" {
 contract "DaoMint" {
     Base dao_proposer_limit,
     Base dao_proposer_limit,
-    #Base dao_quorum,
-    #Base dao_approval_ratio,
-    #Base gdrk_token_id,
-    #Base dao_public_x,
+    Base dao_quorum,
+    Base dao_approval_ratio,
+    Base gdrk_token_id,
+    Base dao_public_x,
     #Base dao_public_y,
     #Base dao_public_y,
-    #Base dao_bulla_blind,
+    Base dao_bulla_blind,
 }
 }
 
 
 circuit "DaoMint" {
 circuit "DaoMint" {
     # BullaMint subroutine
     # BullaMint subroutine
     bulla = poseidon_hash(
     bulla = poseidon_hash(
         dao_proposer_limit,
         dao_proposer_limit,
-        #dao_quorum,
-        #dao_approval_ratio,
-        #gdrk_token_id,
-        #dao_pubkey_x,
-        #dao_pubkey_y,
-        #dao_bulla_blind,
+        dao_quorum,
+        dao_approval_ratio,
+        gdrk_token_id,
+        dao_public_x,
+        #dao_public_y,
+        dao_bulla_blind,
     );
     );
     constrain_instance(bulla);
     constrain_instance(bulla);
 }
 }

+ 17 - 20
bin/daod/src/demo.rs

@@ -381,10 +381,7 @@ pub async fn demo() -> Result<()> {
 
 
     // For this demo lets create 10 random preexisting DAO bullas
     // For this demo lets create 10 random preexisting DAO bullas
     for _ in 0..10 {
     for _ in 0..10 {
-        let messages = [pallas::Base::random(&mut OsRng)];
-        let bulla =
-            poseidon::Hash::<_, poseidon::P128Pow5T3, poseidon::ConstantLength<1>, 3, 2>::init()
-                .hash(messages);
+        let bulla = pallas::Base::random(&mut OsRng);
     }
     }
 
 
     /////////////////////////////////////////////////
     /////////////////////////////////////////////////
@@ -398,24 +395,24 @@ pub async fn demo() -> Result<()> {
     // !!!!!!! TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     // !!!!!!! TEST !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 
     let dao_proposer_limit__base = pallas::Base::from(110);
     let dao_proposer_limit__base = pallas::Base::from(110);
-    //let dao_quorum__base = pallas::Base::from(110);
-    //let dao_approval_ratio__base = pallas::Base::from(2);
+    let dao_quorum__base = pallas::Base::from(110);
+    let dao_approval_ratio__base = pallas::Base::from(2);
 
 
-    //let dao_pubkey_coords = dao_keypair.public.0.to_affine().coordinates().unwrap();
-    //let dao_public_x = *dao_pubkey_coords.x();
-    //let dao_public_y = *dao_pubkey_coords.x();
+    let dao_pubkey_coords = dao_keypair.public.0.to_affine().coordinates().unwrap();
+    let dao_public_x = *dao_pubkey_coords.x();
+    let dao_public_y = *dao_pubkey_coords.x();
 
 
     let messages = [
     let messages = [
         dao_proposer_limit__base,
         dao_proposer_limit__base,
-        //dao_quorum__base,
-        //dao_approval_ratio__base,
-        //gdrk_token_id,
-        //dao_public_x,
+        dao_quorum__base,
+        dao_approval_ratio__base,
+        gdrk_token_id,
+        dao_public_x,
         //dao_public_y,
         //dao_public_y,
-        //dao_bulla_blind,
+        dao_bulla_blind,
     ];
     ];
     let dao_bulla =
     let dao_bulla =
-        poseidon::Hash::<_, poseidon::P128Pow5T3, poseidon::ConstantLength<1>, 3, 2>::init()
+        poseidon::Hash::<_, poseidon::P128Pow5T3, poseidon::ConstantLength<6>, 3, 2>::init()
             .hash(messages);
             .hash(messages);
 
 
     // Lets repeat this in ZK
     // Lets repeat this in ZK
@@ -433,12 +430,12 @@ pub async fn demo() -> Result<()> {
     // Witness values
     // Witness values
     let prover_witnesses = vec![
     let prover_witnesses = vec![
         Witness::Base(Value::known(dao_proposer_limit__base)),
         Witness::Base(Value::known(dao_proposer_limit__base)),
-        //Witness::Base(Value::known(dao_quorum__base)),
-        //Witness::Base(Value::known(dao_approval_ratio__base)),
-        //Witness::Base(Value::known(gdrk_token_id)),
-        //Witness::Base(Value::known(dao_public_x)),
+        Witness::Base(Value::known(dao_quorum__base)),
+        Witness::Base(Value::known(dao_approval_ratio__base)),
+        Witness::Base(Value::known(gdrk_token_id)),
+        Witness::Base(Value::known(dao_public_x)),
         //Witness::Base(Value::known(dao_public_y)),
         //Witness::Base(Value::known(dao_public_y)),
-        //Witness::Base(Value::known(dao_bulla_blind)),
+        Witness::Base(Value::known(dao_bulla_blind)),
     ];
     ];
 
 
     // Create the public inputs
     // Create the public inputs