# Rustスマートコントラクト育成日記(10-3):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 にバインドし、スマートコントラクトが管理する提案プールに追加します。提案の完全な属性情報には、提案者、状態、開始時間、投票状態などが含まれます。新しい提案の状態はデフォルトでInProgressです。Sputnik-DAOは提案者に一定数のNEARトークンを担保としてステーキングすることを要求します。この担保は提案が正常に終了した際に提案者に返還されます。! [](https://img-cdn.gateio.im/social/moments-427716593b21fa32b47855ceb5e101fc)## 2. 提案状況Sputnik-DAOの提案は、InProgress、Approved、Rejected、Reremovedなど、複数の状態を経ることがあります。提案の状態変化は 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. プロポーザルの実行提案のステータスが [承認済み] の場合、internal_execute_proposal() が内部で呼び出され、提案の内容が実行されます。Sputnik-DAO は多様な提案タイプをサポートしており、大部分は DAO のガバナンスモデルの設定更新に関わっています。以下に二つの典型的な提案タイプの処理フローを紹介します:### 3.1 コントラクト関数実行提案FunctionCall型の提案については、内部でPromise Batch Actionsの形式を使用して、提案に指定されたコントラクトメソッドの呼び出しを実行します。### 3.2 コントラクト資金移転提案Transferタイプの提案について、内部でinternal_payout()関数が呼び出され、さまざまなタイプのトークンを指定されたアカウントに転送する操作が実行されます。この記事では、Sputnik DAOのスマートコントラクトの核心概念を紹介します——提案(Proposal)、提案の作成、投票、実行プロセスを含みます。今後、Sputnik-DAOにおけるガバナンスモデル(Policy)の実現と設定についてさらに紹介します。! [](https://img-cdn.gateio.im/social/moments-eb73d5e15f6161f0a4b442cd4b99a91e)
Sputnik DAOスマートコントラクト剖析:提案メカニズムの設計と実装
Rustスマートコントラクト育成日記(10-3):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 にバインドし、スマートコントラクトが管理する提案プールに追加します。
提案の完全な属性情報には、提案者、状態、開始時間、投票状態などが含まれます。新しい提案の状態はデフォルトでInProgressです。
Sputnik-DAOは提案者に一定数のNEARトークンを担保としてステーキングすることを要求します。この担保は提案が正常に終了した際に提案者に返還されます。
!
2. 提案状況
Sputnik-DAOの提案は、InProgress、Approved、Rejected、Reremovedなど、複数の状態を経ることがあります。
提案の状態変化は act_proposal() メソッドによって駆動されます。DAO メンバーはこのメソッドを呼び出して提案に対する投票などの操作を実行できます。
内部で policy.proposal_status() を呼び出して投票を行います。投票閾値を満たす提案については、状態がそれに応じて変更されます:
Removed 状態の提案は提案プールから直接削除され、デポジットは返還されません。Rejected 状態の提案は提案プールに残り、デポジットは返還されます。
!
3. プロポーザルの実行
提案のステータスが [承認済み] の場合、internal_execute_proposal() が内部で呼び出され、提案の内容が実行されます。
Sputnik-DAO は多様な提案タイプをサポートしており、大部分は DAO のガバナンスモデルの設定更新に関わっています。以下に二つの典型的な提案タイプの処理フローを紹介します:
3.1 コントラクト関数実行提案
FunctionCall型の提案については、内部でPromise Batch Actionsの形式を使用して、提案に指定されたコントラクトメソッドの呼び出しを実行します。
3.2 コントラクト資金移転提案
Transferタイプの提案について、内部でinternal_payout()関数が呼び出され、さまざまなタイプのトークンを指定されたアカウントに転送する操作が実行されます。
この記事では、Sputnik DAOのスマートコントラクトの核心概念を紹介します——提案(Proposal)、提案の作成、投票、実行プロセスを含みます。今後、Sputnik-DAOにおけるガバナンスモデル(Policy)の実現と設定についてさらに紹介します。
!