Voting
投票
Every token holder can vote on a proposal by calling the vote
function.
This function has 2 parameters:
-
proposalID
The ID of the proposal. -
supportsProposal
A boolean (yes/no) on whether the voter supports the proposal or not.
每一个代币持有者可以通过调用vote
函数向提议投票。这个函数有两个参数:
-
proposalID
提议的ID。 -
supportsProposal
布尔值(yes/no)表示投票者是否支持提议。
A vote can only be done once and cannot be changed. After the debating period of the proposal it is not possible to vote on it. Additionally the tokens belonging to the address of the sender of the transaction are blocked (cannot be transferred or split) until the end of the debating period to prevent people from voting on proposals and then splitting to not face the consequences of the vote.
投票只能执行一次,不能被修改。在提议的讨论期之后,将不能再对提议进行投票。另外,交易发送者的投票地址拥有的代币将会被锁定(不能被转移或者分割),至到提议讨论期结束,这样是为了防止人们向提议投票然后又分割,而逃避投票后应该承担的后果。
WARNING: Be very careful before voting on a proposal. Make sure to double check the proposal's voting deadline because once you vote, your tokens will be blocked from splitting or transferring to another account for the duration of the vote's debating period.
** 警告: ** 在对提议投票前要格外注意。确保已经充分验证了提议的投票终止日期,因为一旦你投票,你的代币会锁定而不能进行分割或者转移到其他账号,至到投票讨论期结束。
Proposal can be viewed using the public proposals
array which is visualized in the Mist Wallet. There one can view the parameters of a given proposal by providing the proposal ID. Those parameters are: recipient
, amount
, description
, votingDeadline
, open
, proposalPassed
, proposalHash
, proposalDeposit
, newCurator
, splitData
, yea
, nay
, votedYes
, votedNo
and creator
. The definition of those can be read in the white paper section 6.3.
提议可以,在Mist钱包,使用公共变量proposals
数组来查看。可以根据提议的ID查看提议的参数。这些参数有:recipient
, amount
, description
, votingDeadline
, open
, proposalPassed
, proposalHash
, proposalDeposit
, newCurator
, splitData
, yea
, nay
, votedYes
, votedNo
和 creator
。这些参数的定义可以在白皮书的6.3节中看到。
As a helper to the voter, there exist a function called checkProposalCode
. This function is used to check that a certain proposal ID matches a certain transaction. The parameters of the function are:
proposalID
recipient
amount
transactionData
为了帮助投票者,提供了函数checkProposalCode
。这个函数可以检查某个提议的ID匹配某个交易。这个函数的参数有:
proposalID
recipient
amount
transactionData
If the recipient
, the amount
and the transactionData
match the proposal ID, the function will return true
, otherwise it will return false
(in Mist this denoted with code checks out
). This will be used to verify that the proposal ID matches what the DAO token holder thinks they are voting on.
如果 recipient
, amount
和 transactionData
匹配提议ID,这个函数会返回true
,否则返回false
(在钱包里用code checks out
表示)。这个可以用来验证提议ID是不是DAO代币持有者想投的那个提议。
Executing
执行
在提议讨论期结束后,任何一个人可以调用executeProposal
函数。它的参数有:
After the debating period is over, everyone can call the function executeProposal
. The parameters are:
proposalID
transactionData
The function checks whether the voting deadline has passed and that transactionData
matches the proposal ID. Then it checks whether the quorum has been met (see Eq. (1) for minQuorum
) and if the proposal had a majority of support. If this is the case, it executes the proposal and refunds the
proposal deposit. If the quorum has been achieved, but the proposal was declined by the majority of the voters, the proposal deposit is refunded and the proposal closes.
In the case of a new Curator proposal, it does nothing but closes the proposal when 27 days have passed after the end of the debating period.
这个函数会检查投票的终止日期是否已过,以及transactionData
是否匹配提议ID。然后它检查法定人数是否满足(参考minQuorum
),以及投票是否获得多数人同意。如果满足以上条件,会执行提议并且返还提议的押金。如果法定人数满足,但是提议被多数人拒绝,提议的押金会返还,提议会关闭。
如果是新的负责人的提议,函数什么也不做,除了在投票讨论期结束后的27天后关闭提议。
Remark
备注
There are two possible reasons why it may be impossible to execute a proposal:
The deposit cannot be payed back, because the creator of the proposal is a contract with a fallback function that consumes more than 9000 gas.
The function called by executing the proposed transaction throws an exception for whatever reason.
有时候或许无法执行提议,这里有两个可能的原因:
押金不能被返还,因为提议的创建者是一个合约,它的回调函数需要消耗超过9000的gas。
调用执行提议的交易时可能因为各种原因抛出异常。
Token holders should not vote on proposals where either of the above could happen. But in case one does, the proposal will close when executeProposal
is called 10 days after the voting deadline.
代币持有者不应该对有上述情况可能发生的提议进行投票。但是,如果一旦某人进行投票,提议会在executeProposal
调用后的投票的终止日期10天后关闭。
原文:How to vote and execute a proposal译者:@rubyu2