SMART CONTRACTS
権限・運用設計
署名者、操作権限、実装バージョン、停止時の対応。アプリケーションとコントラクトをつなぐ運用の要点を整理します。
01
操作の権限を分ける
発行、設定変更、停止などの操作は、コントラクトごとのロールや所有者条件で制御されます。アプリケーションのログイン権限と、トランザクションを実行できるオンチェーン権限を対応づけます。
管理者、通常の操作担当者、緊急停止担当者のアドレスと権限を記録します。対象のロール名・管理関係・取消方法は各ソースで確認できます。
02
実装・初期化・バージョンを対応づける
ネットワーク、実装アドレス、生成されたアドレス、初期設定を一組として管理します。ContractFactoryからの生成では、実装の所有者・種類・バージョンと初期化データが対象を決めます。
新しい実装の登録だけで既存コントラクトが更新されるわけではありません。クローンやプロキシの方式に合わせて、更新の可否と権限を確認します。
03
署名する対象と有効範囲を確認する
署名付きオファーやバウチャーでは、対象コントラクト、ネットワーク、nonce、期限を対応づけます。SmartAccountのセッションキーでは、許可する対象と操作を制限できます。
署名の承認、送信、確定を別の状態で記録すると、期限切れや再送時の対応が明確になります。確定前に同じ業務処理を重複して完了させないよう、操作IDを管理します。
04
停止・再開と記録の照合を運用に組み込む
EmergencyPauseManagerは登録対象への停止・再開をまとめて実行します。対象によって失敗する場合もあるため、操作の送信結果だけでなく個別の状態とイベントを照合します。
停止中に利用できる操作、再開の判断者、業務台帳と残高の照合方法を定めます。停止は確定済みの処理を取り消すものではありません。