JPYC.removeMinter
名称・種別
- 名称:
JPYC.removeMinter - 種別: def
- モジュール:
JpycFormalVerification.AccessControl - ソース:
JpycFormalVerification/AccessControl.lean:160-164 - 概要: removeMinter(minter):minter を無効化し許容額を 0 にする関数(minterAdmin 限定)。
- 仕様: 対象外
型シグネチャ
lean
JPYC.State → JPYC.CallContext → JPYC.Address → Except JPYC.Error JPYC.StateState・CallContext・対象 minter を受け取り、ミンター管理者がミンターを無効化して許可量をゼロにする関数です。
和訳 docstring
ミンター minter を無効化し、ミント許可量を 0 にする(v2/FiatTokenV2.sol:323-332)。
解説
何を述べているか。 FiatTokenV2.removeMinter です。onlyMinterAdmin を通過した呼び出しが、minters[minter] = false と minterAllowed[minter] = 0 を設定します。
直感。 configureMinter の対で、発行権限を剝奪します。フラグを下ろすだけでなく残枠もゼロにするので、再登録なしに再発行はできません。
なぜ安全性に効くか。 鍵漏洩や運用変更時に、発行権限を即時に無効化できます。権限は removeMinter_auth、効果は removeMinter_clears が保証します。なお configureMinter と違い whenNotPaused を課さないので、停止中でも 権限の剝奪は可能です。
図解
Lean ソースコード
lean
/-- `removeMinter(minter)` — `v2/FiatTokenV2.sol:323-332`. -/
def removeMinter (s : State) (ctx : CallContext) (minter : Address) :
Except Error State := do
onlyMinterAdmin s ctx
pure ((s.setMinter minter false).setMinterAllowed minter 0)対応 Solidity ソースコード
reference/JPYCv2/contracts/v2/FiatTokenV2.sol:323-332
solidity
function removeMinter(address minter)
external
onlyMinterAdmin
returns (bool)
{
minters[minter] = false;
minterAllowed[minter] = 0;
emit MinterRemoved(minter);
return true;
}