# Rust スマートコントラクト 開発日記 (11) - スプートニクDAO提案の仕組みを詳しく解説Sputnik-DAO は NEAR Protocol の重要なインフラとして、NEAR エコシステムの分散型への発展を推進しています。現在、このプラットフォームは複数の NEAR プロジェクトによる分散型自治コミュニティの設立を促進し、完全で柔軟なコミュニティの意思決定ガバナンスのソリューションを提供しています。Sputnikdaov2は、Sputnik-DAOコミュニティのガバナンス投票に使用されるスマートコントラクトです。本記事では、この契約のコアコンセプトである提案(Proposal)を紹介します。今後の記事では、提案に関連するDAOコミュニティのガバナンスモデル(Policy)について紹介します。## 1. 提案開始Sputnik-DAOコミュニティメンバーは、プロジェクトのガバナンスや管理について意見を表明したり、提案を提出したりすることができます。各株主メンバーは、提案を審議し投票することで、プロジェクトの未来に影響を与えることができます。契約のレベルでは、メンバーはsputnikdaov2契約のadd_proposal()メソッドを呼び出して新しい提案を開始できます。錆Pub FN add_proposal(&Mut Self, Proposal: ProposalInput) -> U64提案者は以下の詳細情報を提供する必要があります:- 提案(Description)のテキスト説明- 提案のタイプ(kind)これらの情報は、add_proposal() メソッドにパラメータとして渡され、処理された後、完全な提案(Proposal)が生成され、唯一の proposal_id にバインドされ、コントラクトが全体的に管理する提案プールに追加されます。完全な提案の属性には、提案者、ステータス、開始時間、投票ステータスなどが含まれます。注意が必要なのは、Sputnik-DAOが提案者に対して一定数のNEARトークンを保証金としてステーキングすることを要求するということです。この保証金は、提案が正常に終了した際に提案者に返還されます。! [](https://img-cdn.gateio.im/social/moments-84ee9ca630a4cdcdb0d2eb63450a7cf4)## 2. 提案ステータスSputnik-DAO の提案は、さまざまな状態を経る可能性があり、初期状態は InProgress です。状態の変化は act_proposal() メソッドによって駆動されます。メンバーは act_proposal() を呼び出して提案に対して以下の操作を実行できます:- VoteApprove:はい - VoteReject:不承認を示します- VoteRemove:この提案は無意味だと考え、削除する必要があります投票後、契約は policy.proposal_status() によって票を数え、条件を満たした提案の状態がそれに応じて変更されます。- 承認された状態の提案は実行されます- ステータスが「却下」または「削除済み」の提案は確定しますRemoved 状態の提案は提案プールから直接削除され、デポジットは返還されません。Rejected 状態の提案はプールに保持され、デポジットは返還されます。! [](https://img-cdn.gateio.im/social/moments-427716593b21fa32b47855ceb5e101fc)## 3. プロポーザルの実行 ステータスが [承認済み] の提案は、internal_execute_proposal() 関数を呼び出して決定内容を実行します。Sputnik-DAO は多様な提案タイプをサポートしており、この記事では2つの典型的なタイプに焦点を当てます:### 3.1 コントラクト関数実行提案FunctionCallタイプの提案は、指定されたコントラクトメソッドを実行できます。提案者は、ProposalInputを通じて実行する関数操作(actions)を伝達します。各アクションは、コントラクトのメソッド名とパラメータを指定できます。Sputnik-DAOは、Promise Batch Actionsの形式で関数の実行を完了します。### 3.2 コントラクト資金移転提案Transfer タイプの提案は、契約アカウントに蓄積されたトークン(NEARまたはNEP-141標準トークン)を指定されたアカウントに転送することができます。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コミュニティメンバーは、プロジェクトのガバナンスや管理について意見を表明したり、提案を提出したりすることができます。各株主メンバーは、提案を審議し投票することで、プロジェクトの未来に影響を与えることができます。
契約のレベルでは、メンバーはsputnikdaov2契約のadd_proposal()メソッドを呼び出して新しい提案を開始できます。
錆 Pub FN add_proposal(&Mut Self, Proposal: ProposalInput) -> U64
提案者は以下の詳細情報を提供する必要があります:
これらの情報は、add_proposal() メソッドにパラメータとして渡され、処理された後、完全な提案(Proposal)が生成され、唯一の proposal_id にバインドされ、コントラクトが全体的に管理する提案プールに追加されます。
完全な提案の属性には、提案者、ステータス、開始時間、投票ステータスなどが含まれます。
注意が必要なのは、Sputnik-DAOが提案者に対して一定数のNEARトークンを保証金としてステーキングすることを要求するということです。この保証金は、提案が正常に終了した際に提案者に返還されます。
!
2. 提案ステータス
Sputnik-DAO の提案は、さまざまな状態を経る可能性があり、初期状態は InProgress です。状態の変化は act_proposal() メソッドによって駆動されます。
メンバーは act_proposal() を呼び出して提案に対して以下の操作を実行できます:
投票後、契約は policy.proposal_status() によって票を数え、条件を満たした提案の状態がそれに応じて変更されます。
Removed 状態の提案は提案プールから直接削除され、デポジットは返還されません。Rejected 状態の提案はプールに保持され、デポジットは返還されます。
!
3. プロポーザルの実行
ステータスが [承認済み] の提案は、internal_execute_proposal() 関数を呼び出して決定内容を実行します。
Sputnik-DAO は多様な提案タイプをサポートしており、この記事では2つの典型的なタイプに焦点を当てます:
3.1 コントラクト関数実行提案
FunctionCallタイプの提案は、指定されたコントラクトメソッドを実行できます。提案者は、ProposalInputを通じて実行する関数操作(actions)を伝達します。
各アクションは、コントラクトのメソッド名とパラメータを指定できます。Sputnik-DAOは、Promise Batch Actionsの形式で関数の実行を完了します。
3.2 コントラクト資金移転提案
Transfer タイプの提案は、契約アカウントに蓄積されたトークン(NEARまたはNEP-141標準トークン)を指定されたアカウントに転送することができます。
internal_execute_proposal()はinternal_payout()関数を呼び出して、さまざまな種類のトークンと受け取りアカウントに資金を送金します。
!
4. まとめ
この記事では、Sputnik DAOのスマートコントラクトの核心概念提案(Proposal)について説明します。提案の作成、投票、状態の変化、実行プロセスを含みます。今後の記事では、提案に基づいてSputnik-DAOのガバナンスモデル(Policy)の実現と設定について詳しく説明します。
!