//SPDX-License-Identifier: MIT pragma solidity >=0.8.17 <0.9.0; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; /// @notice Contract is used to recover ERC20 tokens sent to the contract by mistake. contract ERC20Recoverable is Ownable { /// @notice Recover ERC20 tokens sent to the contract by mistake. /// @dev The contract is Ownable and only the owner can call the recover function. /// @param _to The address to send the tokens to. /// @param _token The address of the ERC20 token to recover /// @param _amount The amount of tokens to recover. function recoverFunds( address _token, address _to, uint256 _amount ) external onlyOwner { IERC20(_token).transfer(_to, _amount); } }