SMART CONTRACTS
← コントラクト一覧GenericGovernor
提案・投票・実行を一つの議決フローで扱う。
役割と使いどころ
参加者の投票によって設定変更や資金操作を承認する構成に利用できます。Strategyが票の重みを、TimelockControllerが実行までの待機を担います。
接続・設定のポイント投票トークン、投票期間、定足数、実行権限を対応づけます。投票可決とトランザクション実行は別の状態です。
主要なSDK操作
@hazbase/kit@0.9.0のGenericGovernorHelperから利用する操作です。以下はメソッドの型定義です。引数の構造と全操作はSDKリファレンスで確認できます。
typescript
import { GenericGovernorHelper } from '@hazbase/kit';propose
typescript
async propose(p: ProposalArgs): Promise<bigint>castVote
typescript
async castVote(
proposalId: bigint | number,
support: 0 | 1 | 2
): Promise<TransactionReceipt>queue
typescript
async queue(proposalId: bigint | number): Promise<bigint | null>execute
typescript
async execute(proposalId: bigint | number): Promise<TransactionReceipt>組み合わせるコントラクト
実装につなげる
コミュニティ・ガバナンス
データの持ち方、処理の順序、SDKコードを通じて、アプリケーションへの組み込み方を確認できます。
実装パターンを読む仕様とソースコード
掲載するSolidityソースは下記のリビジョンを参照しています。SDKの対応バージョンと、接続先ネットワークの実装アドレス・ABIを合わせて参照できます。
generic-governor/contracts/GenericGovernor.solソースリビジョン: b53a5b5