// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity >=0.8.0; import '@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol'; import './IERC20.sol'; /// @dev Rewarder interface /// @author Alexandas interface IRewarder { /// @dev emit when ERC20 token address updated /// @param token ERC20 token address event TokenUpdated(IERC20 token); /// @dev emit when auth address updated /// @param auth authorized address event AuthUpdated(address auth); /// @dev emit when reward minted /// @param from authorized address /// @param to receiver address /// @param amount token amount event Minted(address from, address to, uint256 amount); /// @dev return ERC20 token address function token() external view returns(IERC20); /// @dev mint reward to receiver /// @param to receiver address /// @param amount token amount function mint(address to, uint256 amount) external; }