20 lines
547 B
Text
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
|
|
}
|
|
}
|