This contract manages lockers to control token transferability.

The SKALE Network has three types of locked tokens:

  • Tokens that are transferrable but are currently locked into delegation with a validator.

  • Tokens that are not transferable from one address to another, but may be delegated to a validator getAndUpdateLockedAmount. This lock enforces Proof-of-Use requirements.

  • Tokens that are neither transferable nor delegatable getAndUpdateForbiddenForDelegationAmount. This lock enforces slashing.

onlyLockerManager onlyLockerManager() modifier

getAndUpdateLockedAmount getAndUpdateLockedAmount(address holder) → uint256 external

getAndUpdateForbiddenForDelegationAmount getAndUpdateForbiddenForDelegationAmount(address holder) → uint256 amount external

removeLocker removeLocker(string locker) external

Allows the Owner to remove a contract from the locker.

Emits a LockerWasRemoved event.

initialize initialize(address contractManagerAddress) public

addLocker addLocker(string locker) public

Allows the Owner to add a contract to the Locker.

Emits a LockerWasAdded event.

LockerWasAdded LockerWasAdded(string locker) event

Emitted when a contract is added to the locker.

LockerWasRemoved LockerWasRemoved(string locker) event

Emitted when a contract is removed from the locker.