# Rust スマートコントラクト 栽培日記 (11):スプートニクDAO提案メカニズム分析Sputnik-DAOはNEAR Protocolのインフラストラクチャとして、NEARエコシステムの去中心化方向への発展を促進しています。現在、このプラットフォームは複数のNEARプロジェクトが去中心化自治コミュニティを構築することを促進し、完全で柔軟なコミュニティガバナンスソリューションを提供しています。sputnikdaov2はSputnik-DAOコミュニティガバナンス投票のスマートコントラクトです。本記事では、このコントラクトの核心概念である提案(Proposal)について紹介します。今後の記事では、提案に関連するDAOコミュニティガバナンスモデル(Policy)について説明します。## 1. 提案開始Sputnik-DAOの各メンバーは、プロジェクトのガバナンス管理に関して意見を述べたり、提案を提出したりすることができます。各株主のコミュニティメンバーは、提案を審議し投票することができ、プロジェクトの将来の方向性に影響を与えます。契約レベルでは、DAOメンバーはsputnikdaov2契約のadd_proposal()メソッドを呼び出して新しい提案を開始できます:さびPub FN add_proposal(&Mut Self, Proposal: ProposalInput) -> U64提案者は、以下の(ProposalInput)提案の詳細を提供する必要があります。- 提案(Description)のテキスト説明- 提案のタイプ(kind) これらの情報は、add_proposal() メソッドにパラメータとして渡され、このメソッドは検証処理を行い、完全な提案(Proposal)を生成し、ユニークな proposal_id にバインドされ、コントラクトがグローバルに管理する提案プールに追加されます。提案の完全な属性情報には次のものが含まれます:- description: 説明- kind: タイプ- 提案者:提案者- status: ステータス- submission_time:提出時期- vote_counts:投票数- votes:投票記録注意が必要なのは、Sputnik-DAO に提案押金(proposal_bond)の概念が存在することで、提案者が add_proposal() を呼び出す際に、一定額の NEAR トークンを担保として質入れする必要があるということです。この押金は、提案が正常に終了した際に返還されます。! [](https://img-cdn.gateio.im/social/moments-84ee9ca630a4cdcdb0d2eb63450a7cf4)## 2. 提案状況Sputnik-DAO の提案は、さまざまな状態を経る可能性があります:- InProgress: 進行中- 承認済み:承認済み - 拒否: 拒否されました- Removed: 削除されました提案の状態変更は act_proposal() メソッドによって駆動されます。DAOメンバーはこのメソッドを呼び出して提案に対して以下の操作を実行できます:- VoteApprove:はい- VoteReject: 反対 - VoteRemove:削除します投票後、policy.proposal_status()票の集計が行われます。 条件を満たすプロポーザルのステータスが [承認済み]、[却下済み]、または [削除済み] に変わります。承認された状態の提案は実行され、拒否された状態と削除された状態は最終処理が行われます。削除された状態の提案は提案プールから削除され、デポジットは返還されません。! [](https://img-cdn.gateio.im/social/moments-427716593b21fa32b47855ceb5e101fc)## 3. プロポーザルの実行 ステータスが [承認済み] の提案の場合、act_proposal() は internal_execute_proposal() を呼び出して提案コンテンツを実行します。Sputnik-DAOは、さまざまな提案タイプをサポートしており、主にDAOのガバナンスモデルの構成更新に関わっています。本記事では、2つの典型的な提案タイプの処理プロセスに焦点を当てています:### 3.1 コントラクト機能実行の提案(FunctionCall)FunctionCall タイプの提案は、実行する関数操作の(actions)を使用して作成されます。 internal_execute_proposal() は、これらの関数呼び出しを Promise バッチアクションの形式で実行します。### 3.2 契約資金移動提案書 (Transfer) Transfer タイプの提案は、契約アカウントに蓄積されたトークンを指定されたアカウントに転送するために使用されます。internal_execute_proposal() は internal_payout() 関数を呼び出し、異なるタイプのトークンと受取アカウントへの送金操作を実現します。! [](https://img-cdn.gateio.im/social/moments-ef0b959c42e1f5fc6263cd4a86fd078e)## 4. まとめこの記事では、Sputnik DAOのスマートコントラクトの核心概念である提案(Proposal)について説明します。提案の作成、状態変化、実行プロセスを含みます。今後の記事では、提案メカニズムに基づいて、Sputnik-DAOのガバナンスモデル(Policy)の実現と設定について、より詳細に説明します。! [](https://img-cdn.gateio.im/social/moments-eb73d5e15f6161f0a4b442cd4b99a91e)
Sputnik DAOスマートコントラクト解析:提案メカニズムの詳細と実行プロセス
Rust スマートコントラクト 栽培日記 (11):スプートニクDAO提案メカニズム分析
Sputnik-DAOはNEAR Protocolのインフラストラクチャとして、NEARエコシステムの去中心化方向への発展を促進しています。現在、このプラットフォームは複数のNEARプロジェクトが去中心化自治コミュニティを構築することを促進し、完全で柔軟なコミュニティガバナンスソリューションを提供しています。
sputnikdaov2はSputnik-DAOコミュニティガバナンス投票のスマートコントラクトです。本記事では、このコントラクトの核心概念である提案(Proposal)について紹介します。今後の記事では、提案に関連するDAOコミュニティガバナンスモデル(Policy)について説明します。
1. 提案開始
Sputnik-DAOの各メンバーは、プロジェクトのガバナンス管理に関して意見を述べたり、提案を提出したりすることができます。各株主のコミュニティメンバーは、提案を審議し投票することができ、プロジェクトの将来の方向性に影響を与えます。
契約レベルでは、DAOメンバーはsputnikdaov2契約のadd_proposal()メソッドを呼び出して新しい提案を開始できます:
さび Pub FN add_proposal(&Mut Self, Proposal: ProposalInput) -> U64
提案者は、以下の(ProposalInput)提案の詳細を提供する必要があります。
これらの情報は、add_proposal() メソッドにパラメータとして渡され、このメソッドは検証処理を行い、完全な提案(Proposal)を生成し、ユニークな proposal_id にバインドされ、コントラクトがグローバルに管理する提案プールに追加されます。
提案の完全な属性情報には次のものが含まれます:
注意が必要なのは、Sputnik-DAO に提案押金(proposal_bond)の概念が存在することで、提案者が add_proposal() を呼び出す際に、一定額の NEAR トークンを担保として質入れする必要があるということです。この押金は、提案が正常に終了した際に返還されます。
!
2. 提案状況
Sputnik-DAO の提案は、さまざまな状態を経る可能性があります:
提案の状態変更は act_proposal() メソッドによって駆動されます。DAOメンバーはこのメソッドを呼び出して提案に対して以下の操作を実行できます:
投票後、policy.proposal_status()票の集計が行われます。 条件を満たすプロポーザルのステータスが [承認済み]、[却下済み]、または [削除済み] に変わります。
承認された状態の提案は実行され、拒否された状態と削除された状態は最終処理が行われます。削除された状態の提案は提案プールから削除され、デポジットは返還されません。
!
3. プロポーザルの実行
ステータスが [承認済み] の提案の場合、act_proposal() は internal_execute_proposal() を呼び出して提案コンテンツを実行します。
Sputnik-DAOは、さまざまな提案タイプをサポートしており、主にDAOのガバナンスモデルの構成更新に関わっています。本記事では、2つの典型的な提案タイプの処理プロセスに焦点を当てています:
3.1 コントラクト機能実行の提案(FunctionCall)
FunctionCall タイプの提案は、実行する関数操作の(actions)を使用して作成されます。 internal_execute_proposal() は、これらの関数呼び出しを Promise バッチアクションの形式で実行します。
3.2 契約資金移動提案書 (Transfer)
Transfer タイプの提案は、契約アカウントに蓄積されたトークンを指定されたアカウントに転送するために使用されます。internal_execute_proposal() は internal_payout() 関数を呼び出し、異なるタイプのトークンと受取アカウントへの送金操作を実現します。
!
4. まとめ
この記事では、Sputnik DAOのスマートコントラクトの核心概念である提案(Proposal)について説明します。提案の作成、状態変化、実行プロセスを含みます。今後の記事では、提案メカニズムに基づいて、Sputnik-DAOのガバナンスモデル(Policy)の実現と設定について、より詳細に説明します。
!