// SPDX-License-Identifier: MIT pragma solidity 0.8.16; import "../interfaces/KeeperCompatibleInterface.sol"; contract PerformDataChecker is KeeperCompatibleInterface { uint256 public counter; bytes public s_expectedData; constructor(bytes memory expectedData) { s_expectedData = expectedData; } function setExpectedData(bytes calldata expectedData) external { s_expectedData = expectedData; } function checkUpkeep( bytes calldata checkData ) external view override returns (bool upkeepNeeded, bytes memory performData) { return (keccak256(checkData) == keccak256(s_expectedData), checkData); } function performUpkeep(bytes calldata performData) external override { if (keccak256(performData) == keccak256(s_expectedData)) { counter++; } } }