From 31d2278cfe75ab56e3460121c5ebc9df1f0bf6bb Mon Sep 17 00:00:00 2001 From: narodnik Date: Sat, 14 May 2022 10:45:29 +0200 Subject: [PATCH] daod: remove proposal_auth_public_key and replace with proposer_limit --- bin/daod/demo/main.py | 47 ++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/bin/daod/demo/main.py b/bin/daod/demo/main.py index 466524dce..dd4368bac 100644 --- a/bin/daod/demo/main.py +++ b/bin/daod/demo/main.py @@ -49,18 +49,18 @@ def money_state_transition(state, tx): class DaoBuilder: - def __init__(self, proposal_auth_public_key, threshold, quorum, ec): - self.proposal_auth_public_key = proposal_auth_public_key - self.threshold = threshold + def __init__(self, proposer_limit, quorum, approval_ratio, ec): + self.proposer_limit = proposer_limit self.quorum = quorum + self.approval_ratio = approval_ratio self.ec = ec def build(self): mint_proof = DaoMintProof( - self.proposal_auth_public_key, - self.threshold, + self.proposer_limit, self.quorum, + self.approval_ratio, self.ec ) revealed = mint_proof.get_revealed() @@ -84,10 +84,10 @@ class Dao: class DaoMintProof: - def __init__(self, proposal_auth_public_key, threshold, quorum, ec): - self.proposal_auth_public_key = proposal_auth_public_key - self.threshold = threshold + def __init__(self, proposer_limit, quorum, approval_ratio, ec): + self.proposer_limit = proposer_limit self.quorum = quorum + self.approval_ratio = approval_ratio self.ec = ec def get_revealed(self): @@ -95,10 +95,9 @@ class DaoMintProof: revealed.bulla = crypto.ff_hash( self.ec.p, - self.proposal_auth_public_key[0], - self.proposal_auth_public_key[1], - self.threshold, - self.quorum + self.proposer_limit, + self.quorum, + self.approval_ratio ) return revealed @@ -171,10 +170,9 @@ def main(argv): gov_token_id = 4 # DAO parameters - proposal_auth_secret = ec.random_scalar() - proposal_auth_public = ec.multiply(proposal_auth_secret, ec.G) - threshold = 110 - quorum = 110 + dao_proposer_limit = 110 + dao_quorum = 110 + dao_approval_ratio = 2 ################################################ # Create the DAO bulla @@ -183,7 +181,12 @@ def main(argv): dao_shared_secret = ec.random_scalar() dao_public_key = ec.multiply(dao_shared_secret, ec.G) - builder = DaoBuilder(proposal_auth_public, threshold, quorum, ec) + builder = DaoBuilder( + dao_proposer_limit, + dao_quorum, + dao_approval_ratio, + ec + ) tx = builder.build() # Each deployment of a contract has a unique state @@ -287,6 +290,9 @@ def main(argv): # meet a criteria for a minimum number of gov tokens ################################################ + # There is a struct that corresponds to the configuration of this + # particular vote. + # State # functions that can be called on state with params # functions return an update @@ -351,10 +357,9 @@ def main(argv): # They see the enc_user_data which is also in the DAO exec contract assert user_data == crypto.ff_hash( ec.p, - proposal_auth_public[0], - proposal_auth_public[1], - threshold, - quorum + dao_proposer_limit, + dao_quorum, + dao_approval_ratio ) # DAO bulla # proposer proof