Sputnik DAO智能合约解析:从提案机制看NEAR生态的去中心化治理

robot
摘要生成中

Rust智能合约养成日记:深入解析Sputnik DAO提案机制

Sputnik DAO作为NEAR生态的基础设施,正在推动NEAR项目走向去中心化自治。本文将深入解析Sputnik DAO智能合约中的核心概念 - 提案(Proposal)机制。

1. 提案发起

Sputnik DAO中的每个成员都可以发起提案,表达对项目治理的意见。从合约层面看,成员可以调用sputnikdaov2合约的add_proposal()方法来发起新提案:

rust pub fn add_proposal(&mut self, proposal: ProposalInput) -> u64

提案者需要提供提案的详细信息,包括:

  • 提案描述
  • 提案类型(如FunctionCall、Transfer等)

合约会进一步处理这些信息,生成一个完整的Proposal对象,并分配唯一的proposal_id。

值得注意的是,提案发起需要质押一定数量的NEAR代币作为保证金。这笔保证金在提案正常结束后会退还给提案人。

2. 提案状态

Sputnik DAO中的提案可能经历多种状态:

  • InProgress:初始状态,正在投票中
  • Approved:投票通过
  • Rejected:投票未通过
  • Removed:被移除

提案状态的变化由act_proposal()方法驱动。DAO成员可以调用该方法对提案进行投票:

  • VoteApprove:赞成
  • VoteReject:反对
  • VoteRemove:移除

投票结束后,根据投票结果更新提案状态。

3. 提案执行

当提案状态变为Approved时,合约会调用internal_execute_proposal()函数执行提案内容。

Sputnik DAO支持多种类型的提案,本文重点介绍两种典型提案:

3.1 合约函数执行提案

对于FunctionCall类型的提案,合约会执行提案中指定的函数调用。提案可以包含多个ActionCall对象,每个对象指定要调用的合约方法及参数。

3.2 合约资金转移提案

Transfer类型的提案用于将合约账户中的代币转移到指定账户。合约会根据代币类型和接收账户类型执行相应的转账操作。

4. 总结

本文介绍了Sputnik DAO合约中提案机制的核心概念,包括提案的创建、状态变化和执行流程。这一机制为NEAR项目提供了灵活高效的去中心化治理方案。

NEAR-1.08%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 分享
评论
0/400
SelfSovereignStevevip
· 19小时前
这提案咋听着比 eth 的复杂
回复0
TxFailedvip
· 20小时前
实际上又一个将因选民冷漠而失败的DAO……我经历过这个。
查看原文回复0
All_InAlicevip
· 20小时前
治理也讲究机制设计咯
回复0
mev_me_maybevip
· 20小时前
有钱才是硬道理
回复0
GasFeeCryingvip
· 20小时前
near又机制调整? 该付油费了
回复0
区块链流浪诗人vip
· 20小时前
投票真的有用么?
回复0
智能合约打工人vip
· 20小时前
near好料
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)