Sputnik DAO智能合约深度解析:提案机制全面剖析

Rust智能合约养成日记(11):Sputnik DAO 提案机制解析

Sputnik-DAO 作为 NEAR Protocol 的基础设施,正推动 NEAR 生态向去中心化方向发展。该平台已促成多个 NEAR 项目形成自治社区,并提供了完整的社区治理解决方案。

本文将介绍 Sputnik-DAO 智能合约的核心概念 - 提案(Proposal),后续文章将围绕提案深入探讨相关的 DAO 社区治理模式。

1. 提案发起

Sputnik-DAO 社区成员可通过调用 add_proposal() 方法发起新提案。提案者需提供提案的详细信息,包括:

  • 提案描述:公开展示在前端,帮助理解提案目的
  • 提案类型:如合约函数调用、资金转移、权限控制等

提案创建后会被分配唯一 ID 并添加到提案池中。

提案还包含其他属性:

  • 提案者:自动设为方法调用者
  • 状态:初始为"进行中"
  • 发起时间:当前区块时间戳
  • 投票状态:初始为空

需注意,提案发起需质押一定数量 NEAR 代币作为保证金。该保证金在提案结束后返还,但超额部分不会退回。

2. 提案状态

提案可能经历多种状态:进行中、已批准、已拒绝、已移除等。状态变化由 act_proposal() 方法驱动。

社区成员可对进行中的提案进行投票:

  • 赞成
  • 反对
  • 移除(认为提案无意义)

投票后会进行计票,满足条件的提案状态会相应更新:

  • 已批准:执行提案内容
  • 已拒绝/已移除:执行收尾操作

已移除的提案会从提案池中删除,且不退还保证金。已拒绝的提案保留在池中并退还保证金。

3. 提案执行

对于已批准的提案,会调用 internal_execute_proposal() 执行决策内容。支持多种提案类型,如:

  • 更改配置
  • 更改治理政策
  • 添加/移除成员角色
  • 合约函数调用
  • 合约升级
  • 资金转移

以下详细介绍两种典型提案的执行流程:

3.1 合约函数执行提案

此类提案在创建时已指定要执行的函数操作。执行时会以 Promise Batch Actions 的形式完成多个连续的函数调用。

3.2 合约资金转移提案

此类提案用于将合约账户积累的代币转移到指定账户。支持原生 NEAR 及其他符合 NEP-141 标准的代币,可转账至外部账户或其他合约。

4. 总结

本文介绍了 Sputnik DAO 合约的核心概念 - 提案,包括提案的创建、状态变化和执行流程。后续文章将基于提案深入探讨 Sputnik-DAO 的治理模式实现。

ACT-6.69%
BATCH1.31%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 4
  • 分享
评论
0/400
MonkeySeeMonkeyDovip
· 8小时前
靠谱的解析文章
回复0
rekt_but_not_brokevip
· 8小时前
Near生态的核心啊
回复0
HodlTheDoorvip
· 8小时前
期待更多治理细节
回复0
破产打工人vip
· 9小时前
支持 NEAR 生态
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)