Skip to content

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.State

StateCallContext・対象 minter を受け取り、ミンター管理者がミンターを無効化して許可量をゼロにする関数です。

和訳 docstring

ミンター minter を無効化し、ミント許可量を 0 にする(v2/FiatTokenV2.sol:323-332)。

解説

何を述べているか。 FiatTokenV2.removeMinter です。onlyMinterAdmin を通過した呼び出しが、minters[minter] = falseminterAllowed[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;
}

依存