#proposal #dao #module #voting #yes #executed #votes

dao-proposal-single

一个支持简单“是/否”投票的DAO DAO提案模块

5个稳定版本

2.4.2 2024年7月22日
2.4.0 2024年7月21日
2.3.0 2023年10月18日
2.2.0 2023年7月9日
0.0.0 2023年7月3日

#414神奇豆子

Download history 3/week @ 2024-04-22 7/week @ 2024-04-29 2/week @ 2024-05-20 6/week @ 2024-06-03 10/week @ 2024-06-10 5/week @ 2024-06-17 9/week @ 2024-06-24 85/week @ 2024-07-15 578/week @ 2024-07-22 200/week @ 2024-07-29

863 每月下载量
3 个crate中使用了(2个直接使用)

BSD-3-Clause

680KB
16K SLoC

dao-proposal-single

dao-proposal-single on crates.io docs.rs

这是一个支持简单“是”、“否”、“弃权”投票的DAO DAO提案模块。提案可以关联消息,这些消息在提案通过并执行时将由核心模块执行。

只要提案没有过期,就可以投票。在提案不再被评估的情况下(例如,达到法定人数并被拒绝),这允许选民即使投票没有影响最终提案的状态,也能表达自己的观点。

有关这些模块如何协同工作的更多信息,请参阅这篇维基页面

有关此模块如何计算投票和处理通过阈值的信息,请参阅这篇维基页面

不期望的行为

此合约的不期望行为在 testing/adversarial_tests.rs 下进行了测试。

一般而言,它应该包括

  • 执行未通过的建议
  • 多次执行建议
  • 为金融利益进行社会工程提案
  • 说服提案模块花掉他人的津贴

提案押金

本模块的提案存款由 dao-pre-propose-single 合同处理。

钩子

本模块支持投票和提案状态变化的钩子。可以通过 AddVoteHookAddProposalHook 方法注册一个合同以接收这些钩子。一旦注册,合同将在投票投出和提案状态改变时(例如,当提案通过时)接收消息。

这些钩子消息的格式可以在 proposal-hooksvote-hooks 包中找到,分别位于 packages/proposal-hookspackages/vote-hooks

为了防止无效的钩子接收者锁定提案模块,当处理钩子时出错,将删除钩子列表中的合约。

重新投票

可以配置提案以允许重新投票。在这种情况下,只要提案仍然开放,用户就可以更改他们的投票。对当前投票选项的重新投票将返回错误。

否决

可以配置提案使用可选的 VetoConfig - 描述否决流程的配置。

否决配置的 timelock 期间允许一个党派(如监督委员会 DAO)通过在给定的 timelock 期间否决提案(以及可能在其通过之前)来对主 DAO 进行问责。

timelock 期间不允许 DAO 成员采取任何行动。

timelock 过期后,提案可以正常执行。

VetoConfig 包含以下字段

timelock_duration

Timelock duration (cw_utils::Duration) 描述了 timelock 的时间长度,以区块或秒为单位。

延迟持续时间被添加到提案的过期时间,以获取用于 VetoTimelock { expiration: Expiration } 的新提案状态的 Expiration

如果否决者地址是另一个 DAO,则应根据否决者 DAO 的投票周期仔细考虑此持续时间。

vetoer

否决者 (String) 是允许否决处于 VetoTimelock 状态的提案的账户地址。

否决者地址可以通过常规提案配置更新来更新。

如果您希望 vetoer 角色在多个组织或个人之间共享,可以使用 cw1-whitelist 合同地址来允许多个账户否决提案。

early_execute

Early execute (bool) 是一个标志,用于指示否决者是否可以在 timelock 期间过期之前执行提案。为了实现这一点,提案仍然需要通过,并处于 VetoTimelock 状态。这可能会防止否决流程始终延长治理过程。

veto_before_passed

Veto before passed (bool) 是一个标志,用于指示否决者是否可以在提案通过之前否决提案。即使被否决,也可以在指定的提案过期之前继续投票。

依赖项

~10MB
~212K SLoC