Skip to content

Commit

Permalink
added interval check to checkUpkeep()
Browse files Browse the repository at this point in the history
  • Loading branch information
Aodhgan committed May 14, 2021
1 parent d2a038a commit 399d300
Show file tree
Hide file tree
Showing 4 changed files with 133 additions and 45 deletions.
14 changes: 9 additions & 5 deletions contracts/PrizeStrategyUpkeep.sol
Expand Up @@ -59,8 +59,12 @@ contract PrizeStrategyUpkeep is KeeperCompatibleInterface, Ownable {
/// @notice Checks if PrizePools require upkeep. Call in a static manner every block by the Chainlink Upkeep network.
/// @param checkData Not used in this implementation.
/// @return upkeepNeeded as true if performUpkeep() needs to be called, false otherwise. performData returned empty.
function checkUpkeep(bytes calldata checkData) view override external returns (bool upkeepNeeded, bytes memory performData) {
function checkUpkeep(bytes calldata checkData) external view override returns (bool upkeepNeeded, bytes memory performData) {

if(block.number < upkeepLastUpkeepBlockNumber + upkeepMinimumBlockInterval){
return (false, performData);
}

address[] memory prizePools = prizePoolRegistry.getAddresses();

// check if canStartAward()
Expand All @@ -82,9 +86,9 @@ contract PrizeStrategyUpkeep is KeeperCompatibleInterface, Ownable {

/// @notice Performs upkeep on the prize pools.
/// @param performData Not used in this implementation.
function performUpkeep(bytes calldata performData) override external {
function performUpkeep(bytes calldata performData) external override {

uint256 _upkeepLastUpkeepBlockNumber = upkeepLastUpkeepBlockNumber;
uint256 _upkeepLastUpkeepBlockNumber = upkeepLastUpkeepBlockNumber; // SLOAD
require(block.number > _upkeepLastUpkeepBlockNumber + upkeepMinimumBlockInterval, "PrizeStrategyUpkeep::minimum block interval not reached");

address[] memory prizePools = prizePoolRegistry.getAddresses();
Expand Down Expand Up @@ -119,9 +123,9 @@ contract PrizeStrategyUpkeep is KeeperCompatibleInterface, Ownable {
updatedUpkeepBlockNumber = block.number;
}

// SSTORE upkeepLastUpkeepBlockNumber once
// update if required
if(_upkeepLastUpkeepBlockNumber != updatedUpkeepBlockNumber){
upkeepLastUpkeepBlockNumber = updatedUpkeepBlockNumber;
upkeepLastUpkeepBlockNumber = updatedUpkeepBlockNumber; //SSTORE
emit UpkeepPerformed(startAwardCounter, completeAwardCounter);
}

Expand Down
96 changes: 57 additions & 39 deletions deployments/rinkeby/PrizeStrategyUpkeep.json

Large diffs are not rendered by default.

0 comments on commit 399d300

Please sign in to comment.