DeepFin / agents /RewardSystem.sol
amos-fernandes's picture
Upload 151 files
b3a7985 verified
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract RewardSystem {
IERC20 public immutable token;
mapping(address => uint256) public rewards;
constructor(address _token) {
token = IERC20(_token);
}
function addReward(address user, uint256 amount) external {
rewards[user] += amount;
}
function claimReward() external {
uint256 amount = rewards[msg.sender];
require(amount > 0, "No rewards to claim");
rewards[msg.sender] = 0;
require(token.transfer(msg.sender, amount), "Transfer failed");
}
}