Skip to content

JPYC.unBlocklist

名称・種別

  • 名称: JPYC.unBlocklist
  • 種別: def
  • モジュール: JpycFormalVerification.AccessControl
  • ソース: JpycFormalVerification/AccessControl.lean:138-142
  • 概要: unBlocklist(account):account のブロックリスト登録を解除する関数(blocklister 限定)。
  • 仕様: 対象外

型シグネチャ

lean
JPYC.State → JPYC.CallContext → JPYC.Address → Except JPYC.Error JPYC.State

StateCallContext・対象 account を受け取り、ブロックリスト管理者だけが指定アカウントをブロックリストから外す関数です。

和訳 docstring

account をブロックリストから削除する(v1/Blocklistable.sol:95-98)。

解説

何を述べているか。 Blocklistable.unBlocklist です。onlyBlocklister を通過した呼び出しだけが、blocklisted[account]0 に戻します。

直感。 blocklist の対で、凍結を解除します。解除後、そのアカウントは通常どおり送金・受領できます。

なぜ安全性に効くか。 ブロックの登録・解除を同一の管理者に集約することで、凍結状態の管理が一元化されます。権限は unBlocklist_auth、フラグが 0 に戻ること(unBlocklist_clears)を保証します。

図解

Lean ソースコード

lean
/-- `unBlocklist(account)` — `v1/Blocklistable.sol:95-98`. -/
def unBlocklist (s : State) (ctx : CallContext) (account : Address) :
    Except Error State := do
  onlyBlocklister s ctx
  pure (s.setBlocklisted account 0)

対応 Solidity ソースコード

reference/JPYCv2/contracts/v1/Blocklistable.sol:95-98

solidity
function unBlocklist(address _account) external onlyBlocklister {
    blocklisted[_account] = 0;
    emit UnBlocklisted(_account);
}

依存