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