balchecka/ratelim/ratelim.txt

20 lines
547 B
Text

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract RateLimited {
mapping(address => uint256) public lastAccessTime;
uint256 public rateLimit = 30; // Rate limit set to 30 seconds
modifier rateLimiting() {
require(
lastAccessTime[msg.sender] + rateLimit < block.timestamp,
"Shenanigans"
);
_;
lastAccessTime[msg.sender] = block.timestamp;
}
function rateLimitedFunction() external rateLimiting {
// Function logic here
}
}