Kaynağa Gözat

contract/dao: renamed all day references to blockwindow

skoupidi 2 yıl önce
ebeveyn
işleme
a755c30b75

+ 1 - 1
bin/drk/src/cli_util.rs

@@ -295,7 +295,7 @@ pub fn generate_completions(shell: &str) -> Result<()> {
         .about("Mint an imported DAO on-chain")
         .args(&vec![name.clone()]);
 
-    let duration = Arg::with_name("duration").help("Duration of the proposal, in days");
+    let duration = Arg::with_name("duration").help("Duration of the proposal, in block windows");
 
     let propose_transfer = SubCommand::with_name("propose-transfer")
         .about("Create a transfer proposal for a DAO")

+ 8 - 8
bin/drk/src/dao.rs

@@ -327,9 +327,9 @@ impl fmt::Display for ProposalRecord {
             "Proposal call index",
             call_index,
             "Creation block window",
-            self.proposal.creation_day,
+            self.proposal.creation_blockwindow,
             "Duration",
-            self.proposal.duration_days,
+            self.proposal.duration_blockwindows,
             "Block windows"
         );
 
@@ -1451,7 +1451,7 @@ impl Drk {
     pub async fn dao_propose_transfer(
         &self,
         name: &str,
-        duration_days: u64,
+        duration_blockwindows: u64,
         amount: &str,
         token_id: TokenId,
         recipient: PublicKey,
@@ -1520,13 +1520,13 @@ impl Drk {
         // to compute their window.
         let next_block_height = self.get_next_block_height().await?;
         let block_target = self.get_block_target().await?;
-        let creation_day = blockwindow(next_block_height, block_target);
+        let creation_blockwindow = blockwindow(next_block_height, block_target);
 
         // Create the actual proposal
         let proposal = DaoProposal {
             auth_calls,
-            creation_day,
-            duration_days,
+            creation_blockwindow,
+            duration_blockwindows,
             user_data: user_data.unwrap_or(pallas::Base::ZERO),
             dao_bulla,
             blind: Blind::random(&mut OsRng),
@@ -1923,7 +1923,7 @@ impl Drk {
         // to compute their window.
         let next_block_height = self.get_next_block_height().await?;
         let block_target = self.get_block_target().await?;
-        let current_day = blockwindow(next_block_height, block_target);
+        let current_blockwindow = blockwindow(next_block_height, block_target);
 
         // Generate the Money nullifiers Sparse Merkle Tree
         let store = MemoryStorageFp { tree: proposal.nullifiers_smt_snapshot.unwrap() };
@@ -1937,7 +1937,7 @@ impl Drk {
             proposal: proposal.proposal.clone(),
             dao: dao.params.dao.clone(),
             dao_keypair: dao.keypair(),
-            current_day,
+            current_blockwindow,
         };
 
         let (params, proofs) = call.make(

+ 3 - 2
bin/drk/src/main.rs

@@ -355,7 +355,7 @@ enum DaoSubcmd {
         /// Name identifier for the DAO
         name: String,
 
-        /// Duration of the proposal, in days
+        /// Duration of the proposal, in block windows
         duration: u64,
 
         /// Amount to send
@@ -1484,7 +1484,8 @@ async fn realmain(args: Args, ex: Arc<smol::Executor<'static>>) -> Result<()> {
                 let next_block_height = drk.get_next_block_height().await?;
                 let block_target = drk.get_block_target().await?;
                 let current_window = blockwindow(next_block_height, block_target);
-                let end_time = proposal.proposal.creation_day + proposal.proposal.duration_days;
+                let end_time = proposal.proposal.creation_blockwindow +
+                    proposal.proposal.duration_blockwindows;
                 let (voting_status, proposal_status_message) = if current_window < end_time {
                     ("Ongoing", format!("Current proposal outcome: {outcome}"))
                 } else {

+ 4 - 4
src/contract/dao/proof/auth-money-transfer.zk

@@ -10,8 +10,8 @@ constant "AuthMoneyTransfer" {
 witness "AuthMoneyTransfer" {
     # Proposal parameters
     Base proposal_auth_calls_commit,
-    Base proposal_current_day,
-    Base proposal_duration_days,
+    Base proposal_creation_blockwindow,
+    Base proposal_duration_blockwindows,
     Base proposal_user_data,
     Base proposal_blind,
 
@@ -63,8 +63,8 @@ circuit "AuthMoneyTransfer" {
     # proposal - so it is redundant to check DAO bulla exists here.
     proposal_bulla = poseidon_hash(
         proposal_auth_calls_commit,
-        proposal_current_day,
-        proposal_duration_days,
+        proposal_creation_blockwindow,
+        proposal_duration_blockwindows,
         proposal_user_data,
         dao_bulla,
         proposal_blind,

+ 4 - 4
src/contract/dao/proof/exec.zk

@@ -10,8 +10,8 @@ constant "Exec" {
 witness "Exec" {
     # Proposal parameters
     Base proposal_auth_calls_commit,
-    Base proposal_current_day,
-    Base proposal_duration_days,
+    Base proposal_creation_blockwindow,
+    Base proposal_duration_blockwindows,
     Base proposal_user_data,
     Base proposal_blind,
 
@@ -52,8 +52,8 @@ circuit "Exec" {
     # proposal - so it is redundant to check DAO bulla exists here.
     proposal_bulla = poseidon_hash(
         proposal_auth_calls_commit,
-        proposal_current_day,
-        proposal_duration_days,
+        proposal_creation_blockwindow,
+        proposal_duration_blockwindows,
         proposal_user_data,
         dao_bulla,
         proposal_blind,

+ 5 - 5
src/contract/dao/proof/propose-main.zk

@@ -16,8 +16,8 @@ witness "ProposeMain" {
 
     # Proposal parameters
     Base proposal_auth_calls_commit,
-    Base proposal_current_day,
-    Base proposal_duration_days,
+    Base proposal_creation_blockwindow,
+    Base proposal_duration_blockwindows,
     Base proposal_user_data,
     Base proposal_blind,
 
@@ -56,14 +56,14 @@ circuit "ProposeMain" {
 
     proposal_bulla = poseidon_hash(
         proposal_auth_calls_commit,
-        proposal_current_day,
-        proposal_duration_days,
+        proposal_creation_blockwindow,
+        proposal_duration_blockwindows,
         proposal_user_data,
         dao_bulla,
         proposal_blind,
     );
     constrain_instance(proposal_bulla);
-    constrain_instance(proposal_current_day);
+    constrain_instance(proposal_creation_blockwindow);
 
     # This is the main check
     # We check that dao_proposer_limit <= total_funds

+ 8 - 8
src/contract/dao/proof/vote-main.zk

@@ -11,8 +11,8 @@ constant "VoteMain" {
 witness "VoteMain" {
     # Proposal parameters
     Base proposal_auth_calls_commit,
-    Base proposal_current_day,
-    Base proposal_duration_days,
+    Base proposal_creation_blockwindow,
+    Base proposal_duration_blockwindows,
     Base proposal_user_data,
     Base proposal_blind,
 
@@ -37,7 +37,7 @@ witness "VoteMain" {
     Base gov_token_blind,
 
     # Check whether the proposal has expired or not
-    Base current_day,
+    Base current_blockwindow,
 
     Base ephem_secret,
 }
@@ -66,8 +66,8 @@ circuit "VoteMain" {
 
     proposal_bulla = poseidon_hash(
         proposal_auth_calls_commit,
-        proposal_current_day,
-        proposal_duration_days,
+        proposal_creation_blockwindow,
+        proposal_duration_blockwindows,
         proposal_user_data,
         dao_bulla,
         proposal_blind,
@@ -94,9 +94,9 @@ circuit "VoteMain" {
     bool_check(vote_option);
 
     # Enforce that the proposal has not expired
-    end_time = base_add(proposal_current_day, proposal_duration_days);
-    less_than_strict(current_day, end_time);
-    constrain_instance(current_day);
+    end_time = base_add(proposal_creation_blockwindow, proposal_duration_blockwindows);
+    less_than_strict(current_blockwindow, end_time);
+    constrain_instance(current_blockwindow);
 
     # Verifiable encryption
     ephem_public = ec_mul_base(ephem_secret, NULLIFIER_K);

+ 2 - 2
src/contract/dao/src/client/auth_xfer.rs

@@ -135,8 +135,8 @@ impl DaoAuthMoneyTransferCall {
         let prover_witnesses = vec![
             // proposal params
             Witness::Base(Value::known(self.proposal.auth_calls.commit())),
-            Witness::Base(Value::known(pallas::Base::from(self.proposal.creation_day))),
-            Witness::Base(Value::known(pallas::Base::from(self.proposal.duration_days))),
+            Witness::Base(Value::known(pallas::Base::from(self.proposal.creation_blockwindow))),
+            Witness::Base(Value::known(pallas::Base::from(self.proposal.duration_blockwindows))),
             Witness::Base(Value::known(self.proposal.user_data)),
             Witness::Base(Value::known(self.proposal.blind.inner())),
             // DAO params

+ 2 - 2
src/contract/dao/src/client/exec.rs

@@ -86,8 +86,8 @@ impl DaoExecCall {
         let prover_witnesses = vec![
             // proposal params
             Witness::Base(Value::known(proposal_auth_calls_commit)),
-            Witness::Base(Value::known(pallas::Base::from(self.proposal.creation_day))),
-            Witness::Base(Value::known(pallas::Base::from(self.proposal.duration_days))),
+            Witness::Base(Value::known(pallas::Base::from(self.proposal.creation_blockwindow))),
+            Witness::Base(Value::known(pallas::Base::from(self.proposal.duration_blockwindows))),
             Witness::Base(Value::known(self.proposal.user_data)),
             Witness::Base(Value::known(self.proposal.blind.inner())),
             // DAO params

+ 3 - 3
src/contract/dao/src/client/propose.rs

@@ -201,8 +201,8 @@ impl<'a, T: StorageAdapter<Value = pallas::Base>> DaoProposeCall<'a, T> {
             Witness::Base(Value::known(gov_token_blind.inner())),
             // proposal params
             Witness::Base(Value::known(self.proposal.auth_calls.commit())),
-            Witness::Base(Value::known(pallas::Base::from(self.proposal.creation_day))),
-            Witness::Base(Value::known(pallas::Base::from(self.proposal.duration_days))),
+            Witness::Base(Value::known(pallas::Base::from(self.proposal.creation_blockwindow))),
+            Witness::Base(Value::known(pallas::Base::from(self.proposal.duration_blockwindows))),
             Witness::Base(Value::known(self.proposal.user_data)),
             Witness::Base(Value::known(self.proposal.blind.inner())),
             // DAO params
@@ -221,7 +221,7 @@ impl<'a, T: StorageAdapter<Value = pallas::Base>> DaoProposeCall<'a, T> {
             token_commit,
             self.dao_merkle_root.inner(),
             proposal_bulla.inner(),
-            pallas::Base::from(self.proposal.creation_day),
+            pallas::Base::from(self.proposal.creation_blockwindow),
             *total_funds_coords.x(),
             *total_funds_coords.y(),
         ];

+ 6 - 6
src/contract/dao/src/client/vote.rs

@@ -61,7 +61,7 @@ pub struct DaoVoteCall<'a, T: StorageAdapter<Value = pallas::Base>> {
     pub proposal: DaoProposal,
     pub dao: Dao,
     pub dao_keypair: Keypair,
-    pub current_day: u64,
+    pub current_blockwindow: u64,
 }
 
 impl<'a, T: StorageAdapter<Value = pallas::Base>> DaoVoteCall<'a, T> {
@@ -250,12 +250,12 @@ impl<'a, T: StorageAdapter<Value = pallas::Base>> DaoVoteCall<'a, T> {
         let ephem_pubkey = PublicKey::from_secret(ephem_secret);
         let (ephem_x, ephem_y) = ephem_pubkey.xy();
 
-        let current_day = pallas::Base::from(self.current_day);
+        let current_blockwindow = pallas::Base::from(self.current_blockwindow);
         let prover_witnesses = vec![
             // proposal params
             Witness::Base(Value::known(self.proposal.auth_calls.commit())),
-            Witness::Base(Value::known(pallas::Base::from(self.proposal.creation_day))),
-            Witness::Base(Value::known(pallas::Base::from(self.proposal.duration_days))),
+            Witness::Base(Value::known(pallas::Base::from(self.proposal.creation_blockwindow))),
+            Witness::Base(Value::known(pallas::Base::from(self.proposal.duration_blockwindows))),
             Witness::Base(Value::known(self.proposal.user_data)),
             Witness::Base(Value::known(self.proposal.blind.inner())),
             // DAO params
@@ -275,7 +275,7 @@ impl<'a, T: StorageAdapter<Value = pallas::Base>> DaoVoteCall<'a, T> {
             // gov token
             Witness::Base(Value::known(gov_token_blind)),
             // time checks
-            Witness::Base(Value::known(current_day)),
+            Witness::Base(Value::known(current_blockwindow)),
             // verifiable encryption
             Witness::Base(Value::known(ephem_secret.inner())),
         ];
@@ -291,7 +291,7 @@ impl<'a, T: StorageAdapter<Value = pallas::Base>> DaoVoteCall<'a, T> {
             *yes_vote_commit_coords.y(),
             *all_vote_commit_coords.x(),
             *all_vote_commit_coords.y(),
-            current_day,
+            current_blockwindow,
             ephem_x,
             ephem_y,
             enc_note.encrypted_values[0],

+ 2 - 2
src/contract/dao/src/entrypoint/propose.rs

@@ -86,7 +86,7 @@ pub(crate) fn dao_propose_get_metadata(
     }
 
     // ANCHOR: dao-blockwindow-example-usage
-    let current_day =
+    let current_blockwindow =
         blockwindow(wasm::util::get_verifying_block_height()?, wasm::util::get_block_target()?);
     // ANCHOR_END: dao-blockwindow-example-usage
 
@@ -97,7 +97,7 @@ pub(crate) fn dao_propose_get_metadata(
             params.token_commit,
             params.dao_merkle_root.inner(),
             params.proposal_bulla.inner(),
-            pallas::Base::from(current_day),
+            pallas::Base::from(current_blockwindow),
             *total_funds_coords.x(),
             *total_funds_coords.y(),
         ],

+ 2 - 2
src/contract/dao/src/entrypoint/vote.rs

@@ -89,7 +89,7 @@ pub(crate) fn dao_vote_get_metadata(
         ));
     }
 
-    let current_day =
+    let current_blockwindow =
         blockwindow(wasm::util::get_verifying_block_height()?, wasm::util::get_block_target()?);
 
     let yes_vote_commit_coords = params.yes_vote_commit.to_affine().coordinates().unwrap();
@@ -105,7 +105,7 @@ pub(crate) fn dao_vote_get_metadata(
             *yes_vote_commit_coords.y(),
             *all_vote_commit_coords.x(),
             *all_vote_commit_coords.y(),
-            pallas::Base::from(current_day),
+            pallas::Base::from(current_blockwindow),
             ephem_x,
             ephem_y,
             params.note.encrypted_values[0],

+ 4 - 4
src/contract/dao/src/model.rs

@@ -149,8 +149,8 @@ impl VecAuthCallCommit for Vec<DaoAuthCall> {
 // ANCHOR: dao-proposal
 pub struct DaoProposal {
     pub auth_calls: Vec<DaoAuthCall>,
-    pub creation_day: u64,
-    pub duration_days: u64,
+    pub creation_blockwindow: u64,
+    pub duration_blockwindows: u64,
     /// Arbitrary data provided by the user. We don't use this.
     pub user_data: pallas::Base,
     pub dao_bulla: DaoBulla,
@@ -162,8 +162,8 @@ impl DaoProposal {
     pub fn to_bulla(&self) -> DaoProposalBulla {
         let bulla = poseidon_hash([
             self.auth_calls.commit(),
-            pallas::Base::from(self.creation_day),
-            pallas::Base::from(self.duration_days),
+            pallas::Base::from(self.creation_blockwindow),
+            pallas::Base::from(self.duration_blockwindows),
             self.user_data,
             self.dao_bulla.inner(),
             self.blind.inner(),

+ 3 - 3
src/contract/test-harness/src/dao_propose.rs

@@ -118,11 +118,11 @@ impl TestHarness {
         ];
 
         let block_target = wallet.validator.consensus.module.read().await.target;
-        let creation_day = blockwindow(block_height, block_target);
+        let creation_blockwindow = blockwindow(block_height, block_target);
         let proposal = DaoProposal {
             auth_calls,
-            creation_day,
-            duration_days: 30,
+            creation_blockwindow,
+            duration_blockwindows: 30,
             user_data,
             dao_bulla: dao.to_bulla(),
             blind: Blind::random(&mut OsRng),

+ 2 - 2
src/contract/test-harness/src/dao_vote.rs

@@ -82,7 +82,7 @@ impl TestHarness {
         };
 
         let block_target = wallet.validator.consensus.module.read().await.target;
-        let current_day = blockwindow(block_height, block_target);
+        let current_blockwindow = blockwindow(block_height, block_target);
         let call = DaoVoteCall {
             money_null_smt: wallet.money_null_smt_snapshot.as_ref().unwrap(),
             inputs: vec![input],
@@ -90,7 +90,7 @@ impl TestHarness {
             proposal: proposal.clone(),
             dao: dao.clone(),
             dao_keypair: *dao_keypair,
-            current_day,
+            current_blockwindow,
         };
 
         let (params, proofs) = call.make(