// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.24;
// Counter contract that increments per unique message sender
contract SenderCounter {
mapping(address => uint256) private counters;
// Event to emit when a counter is incremented
event CounterIncremented(address indexed sender, uint256 newCounter);
// Function to increment the counter for the sender
function incrementCounter() external {
counters[msg.sender] += 1;
emit CounterIncremented(msg.sender, counters[msg.sender]);
}
// Function to get the current counter for a sender
function getCounter(address sender) external view returns (uint256) {
return counters[sender];
}
}