pragma solidity >=0.7.0 <0.9.0;
* Interface of the ERC20 standard as defined in the EIP.
interface IERC20 {
* Returns the amount of tokens in existence.
function totalSupply() external view returns (uint256);
* Returns the amount of tokens owned by `account`.
function balanceOf(address account) external view returns (uint256);
* Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
function transfer(address recipient, uint256 amount) external returns (bool);
* Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.