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

daod/ exec: correct token_id in Coin + reveal misc values

lunar-mining 4 лет назад
Родитель
Сommit
1bf60aef56

+ 5 - 3
bin/daod/proof/dao-exec.zk

@@ -36,7 +36,6 @@ contract "DaoExec" {
     Scalar input_value_blind,
 
     # misc
-    # TODO: make these public so we know they're the correct values
     Base dao_spend_hook,
     Base user_spend_hook,
     Base user_data,
@@ -89,8 +88,7 @@ circuit "DaoExec" {
        dao_public_x,
        dao_public_y,
        change,
-       # TODO: should be proposal_token_id
-       gov_token_id,
+       proposal_token_id,
        dao_serial,
        dao_spend_hook,
        proposal_bulla,
@@ -133,6 +131,10 @@ circuit "DaoExec" {
 	constrain_instance(input_value_x);
 	constrain_instance(input_value_y);
 
+    constrain_instance(dao_spend_hook);
+    constrain_instance(user_spend_hook);
+    constrain_instance(user_data);
+
     # total_votes >= dao_quorum
     # TODO: waiting on this opcode in zkas
     #

+ 6 - 0
bin/daod/src/dao_contract/exec/validate.rs

@@ -40,6 +40,9 @@ pub struct CallData {
     pub total_votes_commit_y: pallas::Base,
     pub input_value_commit_x: pallas::Base,
     pub input_value_commit_y: pallas::Base,
+    pub dao_spend_hook: pallas::Base,
+    pub user_spend_hook: pallas::Base,
+    pub user_data: pallas::Base,
 }
 
 impl CallDataBase for CallData {
@@ -56,6 +59,9 @@ impl CallDataBase for CallData {
                 self.total_votes_commit_y,
                 self.input_value_commit_x,
                 self.input_value_commit_y,
+                self.dao_spend_hook,
+                self.user_spend_hook,
+                self.user_data,
             ],
         )]
     }

+ 7 - 1
bin/daod/src/dao_contract/exec/wallet.rs

@@ -101,7 +101,7 @@ impl Builder {
             dao_public_x,
             dao_public_y,
             change,
-            self.dao.gov_token_id,
+            self.proposal.token_id,
             self.dao_serial,
             self.hook_dao_exec,
             proposal_bulla,
@@ -176,6 +176,9 @@ impl Builder {
             total_votes_commit_y,
             input_value_commit_x,
             input_value_commit_y,
+            self.hook_dao_exec,
+            user_spend_hook,
+            user_data,
         ];
 
         let circuit = ZkCircuit::new(prover_witnesses, zk_bin);
@@ -195,6 +198,9 @@ impl Builder {
             total_votes_commit_y,
             input_value_commit_x,
             input_value_commit_y,
+            dao_spend_hook: self.hook_dao_exec,
+            user_spend_hook,
+            user_data,
         };
 
         FuncCall {