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.
getAndUpdateLockedAmount(address holder) → uint256 external
getAndUpdateForbiddenForDelegationAmount(address holder) → uint256 amount external
removeLocker(string locker) external
Allows the Owner to remove a contract from the locker.
initialize(address contractManagerAddress) public
addLocker(string locker) public
Allows the Owner to add a contract to the Locker.
LockerWasAdded(string locker) event
Emitted when a contract is added to the locker.
LockerWasRemoved(string locker) event
Emitted when a contract is removed from the locker.