Skip to content

Commit 835f590

Browse files
authored
Merge pull request #12 from LemonTreeTechnologies/zero_rewards_check
Zero rewards check
2 parents b7701b5 + 7009294 commit 835f590

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

contracts/interfaces/IStaking.sol

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,8 @@ interface IStaking {
5050
/// @param serviceId.
5151
/// @return stakingState Staking state of the service.
5252
function getStakingState(uint256 serviceId) external view returns (StakingState stakingState);
53+
54+
/// @dev Gets available rewards.
55+
/// @return Available rewards amount.
56+
function availableRewards() external view returns (uint256);
5357
}

contracts/l2/ExternalStakingDistributor.sol

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -680,8 +680,12 @@ contract ExternalStakingDistributor is Implementation, ERC721TokenReceiver {
680680
}
681681
_locked = 2;
682682

683-
// Check for access: whitelisted managing agent or owner
684-
if (!mapManagingAgents[msg.sender] && msg.sender != owner) {
683+
// Get staking proxy available rewards amount
684+
uint256 availableRewards = IStaking(stakingProxy).availableRewards();
685+
686+
// Check for zero rewards balance and access: whitelisted managing agent or owner
687+
// msg.sender does not matter if rewards are no longer available
688+
if (availableRewards > 0 && !mapManagingAgents[msg.sender] && msg.sender != owner) {
685689
revert UnauthorizedAccount(msg.sender);
686690
}
687691

0 commit comments

Comments
 (0)