CommunityLocker
Contract contains logic to perform automatic reimbursement of gas fees for sent messages
postMessage postMessage(bytes32 fromChainHash, address sender, bytes data) → address
external
Allows MessageProxy to post operational message from mainnet or SKALE chains.
Requirements:
-
MessageProxy must be the caller of the function.
-
CommunityPool must be an origin of the message on mainnet.
-
The message must come from the mainnet.
-
The message must contains status of a user.
-
Status of a user in the message must be different from the current status.
checkAllowedToSendMessage checkAllowedToSendMessage(address receiver)
external
Reverts if {receiver} is not allowed to send a message.
Requirements:
-
Function caller has to be registered in TokenManagerLinker as a TokenManager.
-
{receiver} must be an active user.
-
Previous message sent by {receiver} must be sent earlier then
timeLimitPerMessage
seconds before current time or there are no messages sent by {receiver}.
setTimeLimitPerMessage setTimeLimitPerMessage(uint256 newTimeLimitPerMessage)
external
Set value of timeLimitPerMessage
.
Requirements:
-
Function caller has to be granted with
CONSTANT_SETTER_ROLE
.
Emits a TimeLimitPerMessageWasChanged
event.
initialize initialize(string newSchainName, contract MessageProxyForSchain newMessageProxy, contract TokenManagerLinker newTokenManagerLinker, address newCommunityPool)
external
Is called once during contract deployment.
ActivateUser ActivateUser(bytes32 schainHash, address user)
event
Emitted when a user becomes active.
LockUser LockUser(bytes32 schainHash, address user)
event
Emitted when a user stops being active.
TimeLimitPerMessageWasChanged TimeLimitPerMessageWasChanged(uint256 oldValue, uint256 newValue)
event
Emitted when value of timeLimitPerMessage
was changed.