The home for Hyperlane core contracts, sdk packages, and other infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hyperlane-monorepo/solidity/contracts/token/interfaces/IFiatToken.sol

25 lines
946 B

// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.8.0;
// adapted from https://github.com/circlefin/stablecoin-evm
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
interface IFiatToken is IERC20 {
/**
* @notice Allows a minter to burn some of its own tokens.
* @dev The caller must be a minter, must not be blacklisted, and the amount to burn
* should be less than or equal to the account's balance.
* @param _amount the amount of tokens to be burned.
*/
function burn(uint256 _amount) external;
/**
* @notice Mints fiat tokens to an address.
* @param _to The address that will receive the minted tokens.
* @param _amount The amount of tokens to mint. Must be less than or equal
* to the minterAllowance of the caller.
* @return True if the operation was successful.
*/
function mint(address _to, uint256 _amount) external returns (bool);
}