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