LiquidityProtectionSingleLimitStrategy
Contract that implements protection strategy using a single limit. Inherits from StrategyBase.
Contract can be found here:
Variables
protection
protection
A mapping of addresses and their protection rules.
Functions
getLimit
setLimitBatched
setLimit
removeLimits
pause
isTransferAllowed
getLimit
function getLimit(address token, address protectedAddress) external view returns(Limit memory)
Returns limit info for particular protected address.
Parameters:
token
address
Token for which the protection rules are being checked.
protectedAddress
address
Address for which the limit should be returned.
setLimitBatched
function setLimitBatched(
address token,
address[] calldata protectedAddresses,
uint256 periodInSeconds,
uint256 amountPerPeriod,
uint256 startTimestamp
) external onlyProtectionAdmin(token)
Sets limits for a list of addresses. Can be called only by token protection admin.
Parameters:
token
address
Token for which the protection rules are being applied.
protectedAddresses
address[]
A list of addresses that should get the limit applied.
periodInSeconds
uint256
Limit period.
amountPerPeriod
uint256
Limit amount per period.
startTimestamp
uint256
Limit start time.
setLimit
function setLimit(
address token,
address protectedAddress,
uint256 periodInSeconds,
uint256 amountPerPeriod,
uint256 startTimestamp
) external onlyProtectionAdmin(token)
Sets limit for a single address. Can be called only by token protection admin.
Parameters:
token
address
Token for which the protection rules are being applied.
protectedAddress
address
Address that should get the limit applied.
periodInSeconds
uint256
Limit period.
amountPerPeriod
uint256
Limit amount per period.
startTimestamp
uint256
Limit start time.
removeLimits
function removeLimits(address token, address[] calldata protectedAddresses) external onlyProtectionAdmin(token)
Removes limits for addresses in the list. Can be called only by token protection admin.
Parameters:
token
address
Token for which the protection rules are being applied.
protectedAddresses
address[]
Addresses that should get limits removed.
pause
function pause(address token, address protectedAddress) external onlyProtectionAdmin(token)
Change limit to 0, ie, pause transfers from this address. Can be called only by token protection admin.
Parameters:
token
address
Token for which the protection rules are being applied.
protectedAddress
address
Address that should get it's limit paused.
isTransferAllowed
function isTransferAllowed(address token, address sender, address recipient, uint256 amount) external
Checks if transfer from the sender is allowed. Internally it validates if limit is not reached and updates limit info after transfer is allowed to go through.
Parameters:
token
address
Token for which the protection rules are being checked.
sender
address
Sender's address.
recipient
address
Recipient's address.
amount
uint256
Amount of tokens being transferred.
Last updated
Was this helpful?