基本的な DAO
これは Internet Computer 上にデプロイされている基本的な DAO ( Decentralized Autonomous Organization ) のサンプルプロジェクトのデモです。 基本的な DAO のサンプルコードは Motoko と Rust で見ることが出来ます。
概要
basic_dao
は Principal ID とトークン数をマッピングしたアカウントセットで初期化することができます。 アカウントのオーナーは account_balance
を呼び出してアカウント残高を照会したり、 transfer
を呼び出してトークンを他のアカウントに転送することができます。誰でもすべてのアカウントを閲覧するために list_accounts
を呼び出すことができます。
アカウントのオーナーは submit_proposal
を呼び出してプロポーザルを提出することができます。プロポーザルでは、Canister、メソッド、およびこのメソッドの引数を指定します。アカウントのオーナーは vote
を呼び出すことで、提案に対して ( Yes
か No
のどちらかの) 票を投じることができます。 投票数はそのアカウントのオーナーが持っているトークン数と同じです。もし十分な数の Yes
票が投じられたら basic_dao
は、指定された Canister 、与えられた引数、指定されたメソッドを呼び出すことでその提案を実行します。もし No
の票数が多く投じられた場合、提案は実行されず、代わりに Rejected
として登録されます。
あるプロポーザルを可決するために必要な Yes
の票数などの特定のシステムパラメータを get_system_params
で問い合わせることができます。これらのシステムパラメータはプロポーザルプロセスを通じて変更することができます。つまり、プロポーザルは update_system_params
で更新された値を呼び出すようにすることができます。以下のデモはまさにそれを行っています。
詳しくは Canister のサービス定義 をご覧ください。