# Rustスマートコントラクト育成日記(11):Sputnik DAO提案メカニズム解析Sputnik-DAOはNEAR Protocolのインフラとして、NEARエコシステムを分散型の方向に向かって推進しています。現在、このプラットフォームは複数のNEARプロジェクトが分散型自律コミュニティを構築するのを促進しており、完全で柔軟なコミュニティの意思決定ガバナンスプランを提供しています。Sputnikdaov2はSputnik-DAOコミュニティガバナンス投票のためのスマートコントラクトです。本稿では、この契約の核心概念である提案(Proposal)を紹介し、後の文章では提案に関連するDAOコミュニティガバナンスモデル(Policy)について説明します。! [](https://img-cdn.gateio.im/social/moments-84ee9ca630a4cdcdb0d2eb63450a7cf4)## 1. 提案開始Sputnik-DAOの各メンバーは、プロジェクトのガバナンスや管理について意見を述べたり、提案を提出したりすることができます。その後、各株主のコミュニティメンバーはその提案を審議し、投票することができます。メンバーは提案に投票するか、新しい提案を起こすことでプロジェクトの将来の発展に影響を与えることができます。契約の観点から見ると、DAOのメンバーはsputnikdaov2契約のadd_proposal()メソッドを呼び出して新しい提案を開始できます。提案者は提案の詳細情報(ProposalInput)を提供する必要があります。- 提案(Description)のテキスト説明- 提案型 (kind)add_proposal()メソッドは提案情報を検証し処理し、完全な提案(Proposal)を生成し、唯一のproposal_idにバインドされ、コントラクトが全体的に管理する提案プールに追加されます。提案に含まれる完全な属性情報は次のとおりです:- description: 説明- kind: タイプ- 提案者:提案者- status: ステータス- submission_time:提出時期- vote_counts:投票数- votes:投票の詳細Sputnik-DAOは、提案者が提案を開始する際に一定数のNEARトークンを担保としてステーキングすることを要求します。この担保は、提案が正常に終了した際に提案者に返還されます。! [](https://img-cdn.gateio.im/social/moments-427716593b21fa32b47855ceb5e101fc)## 2. 提案状況Sputnik-DAOにおける標準提案は、以下の状態を経る可能性があります:- InProgress: 進行中- 承認済み:承認済み- Rejected: 既に拒否されました- Removed: 削除されました- 期限切れ:有効期限が切れています- Moved:転送済み提案の状態変化はact_proposal()メソッドによって駆動されます。DAOメンバーは提案に対して以下の操作を実行できます:- VoteApprove:はい- VoteReject: 反対 - VoteRemove:削除します投票後、契約はpolicy.proposal_status()を呼び出して票を集計します。投票閾値を満たす提案の状態はそれに応じて変わります:- 承認済み:internal_execute_proposal()によって実行- 拒否/削除済み:internal_reject_proposal()でフォローアップアクションを実行しますRemoved状態の提案は提案プールから削除され、デポジットは返還されません。Rejected状態の提案はプールに残り、デポジットは返還されます。! [](https://img-cdn.gateio.im/social/moments-ef0b959c42e1f5fc6263cd4a86fd078e)## 3. プロポーザルの実行 承認済み状態の提案の場合、act_proposal()は提案の内容を呼び出して実行しますinternal_execute_proposal()。Sputnik-DAOは、ChangeConfig、ChangePolicy、FunctionCall、Transferなど、さまざまな提案タイプをサポートしています。以下に2つの典型的な提案タイプの実行プロセスを紹介します:### 3.1 コントラクト機能実行の提案(FunctionCall)FunctionCallタイプの提案は、作成時に具体的に実行する関数操作(actions)を渡します。各アクションは、コントラクトのメソッド名とパラメータを指定できます。Sputnik-DAOは、Promise Batch Actionsという形でコントラクト機能実行型提案の実行を完了します。### 3.2 契約資金移動提案書 (Transfer) Transferタイプの提案により、契約アカウントに蓄積されたトークン(NEARまたはNEP-141標準トークン)を指定したアカウントに移転できます。internal_execute_proposal()はinternal_payout()関数を呼び出して、さまざまな種類のトークンや受け取りアカウントに資金を送金します。! [](https://img-cdn.gateio.im/social/moments-eb73d5e15f6161f0a4b442cd4b99a91e)## 4. まとめこの記事では、Sputnik DAOのスマートコントラクトのコアコンセプト - 提案(Proposal)について説明し、新しい提案の作成と投票実行、提案のステータス変更ルールについて説明します。その後、提案に基づいてSputnik-DAOのガバナンスモデル(Policy)の実現と設定について詳しく説明します。! [](https://img-cdn.gateio.im/social/moments-4aed25bcefecb3d554dbe01447d4a0e8)
Sputnik DAO提案メカニズム完全解析:作成から実行までのライフサイクル
Rustスマートコントラクト育成日記(11):Sputnik DAO提案メカニズム解析
Sputnik-DAOはNEAR Protocolのインフラとして、NEARエコシステムを分散型の方向に向かって推進しています。現在、このプラットフォームは複数のNEARプロジェクトが分散型自律コミュニティを構築するのを促進しており、完全で柔軟なコミュニティの意思決定ガバナンスプランを提供しています。
Sputnikdaov2はSputnik-DAOコミュニティガバナンス投票のためのスマートコントラクトです。本稿では、この契約の核心概念である提案(Proposal)を紹介し、後の文章では提案に関連するDAOコミュニティガバナンスモデル(Policy)について説明します。
!
1. 提案開始
Sputnik-DAOの各メンバーは、プロジェクトのガバナンスや管理について意見を述べたり、提案を提出したりすることができます。その後、各株主のコミュニティメンバーはその提案を審議し、投票することができます。メンバーは提案に投票するか、新しい提案を起こすことでプロジェクトの将来の発展に影響を与えることができます。
契約の観点から見ると、DAOのメンバーはsputnikdaov2契約のadd_proposal()メソッドを呼び出して新しい提案を開始できます。提案者は提案の詳細情報(ProposalInput)を提供する必要があります。
add_proposal()メソッドは提案情報を検証し処理し、完全な提案(Proposal)を生成し、唯一のproposal_idにバインドされ、コントラクトが全体的に管理する提案プールに追加されます。
提案に含まれる完全な属性情報は次のとおりです:
Sputnik-DAOは、提案者が提案を開始する際に一定数のNEARトークンを担保としてステーキングすることを要求します。この担保は、提案が正常に終了した際に提案者に返還されます。
!
2. 提案状況
Sputnik-DAOにおける標準提案は、以下の状態を経る可能性があります:
提案の状態変化はact_proposal()メソッドによって駆動されます。DAOメンバーは提案に対して以下の操作を実行できます:
投票後、契約はpolicy.proposal_status()を呼び出して票を集計します。投票閾値を満たす提案の状態はそれに応じて変わります:
Removed状態の提案は提案プールから削除され、デポジットは返還されません。Rejected状態の提案はプールに残り、デポジットは返還されます。
!
3. プロポーザルの実行
承認済み状態の提案の場合、act_proposal()は提案の内容を呼び出して実行しますinternal_execute_proposal()。
Sputnik-DAOは、ChangeConfig、ChangePolicy、FunctionCall、Transferなど、さまざまな提案タイプをサポートしています。
以下に2つの典型的な提案タイプの実行プロセスを紹介します:
3.1 コントラクト機能実行の提案(FunctionCall)
FunctionCallタイプの提案は、作成時に具体的に実行する関数操作(actions)を渡します。各アクションは、コントラクトのメソッド名とパラメータを指定できます。
Sputnik-DAOは、Promise Batch Actionsという形でコントラクト機能実行型提案の実行を完了します。
3.2 契約資金移動提案書 (Transfer)
Transferタイプの提案により、契約アカウントに蓄積されたトークン(NEARまたはNEP-141標準トークン)を指定したアカウントに移転できます。
internal_execute_proposal()はinternal_payout()関数を呼び出して、さまざまな種類のトークンや受け取りアカウントに資金を送金します。
!
4. まとめ
この記事では、Sputnik DAOのスマートコントラクトのコアコンセプト - 提案(Proposal)について説明し、新しい提案の作成と投票実行、提案のステータス変更ルールについて説明します。その後、提案に基づいてSputnik-DAOのガバナンスモデル(Policy)の実現と設定について詳しく説明します。
!