I created a bare bone Chainlink keeper for testing purpose. In checkUpkeep, I set upkeepNeeded to true and emit an event. In performUpkeep, I increment a counter and emit another event. Surprisingly, only the event in performUpkeep is emitted. Anyone knows why the event in checkUpkeep is not emitted?
Link to contract deployed on kovan: https://kovan.etherscan.io/address/0xE5c13FEe7F4DDBB19f0941b8616f8B9D5EB77dB5#events
Link to keeper: https://keepers.chain.link/kovan/2738
Contract code:
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface KeeperCompatibleInterface {
function checkUpkeep(bytes calldata checkData) external returns (bool upkeepNeeded, bytes memory performData);
function performUpkeep(bytes calldata performData) external;
}
contract Huma is KeeperCompatibleInterface {
event UpkeepChecked(uint256 timestamp);
event UpkeepPerformed( uint counter );
uint public counter;
function checkUpkeep(bytes calldata checkData) external override returns (bool upkeepNeeded, bytes memory performData) {
upkeepNeeded = true;
performData = checkData;
emit UpkeepChecked(block.timestamp);
}
function performUpkeep(bytes calldata /*performData*/) external override {
counter++;
emit UpkeepPerformed(counter);
}
}