ERC20FlashMintHarness.sol 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.20;
  3. import "../patched/token/ERC20/ERC20.sol";
  4. import "../patched/token/ERC20/extensions/ERC20Permit.sol";
  5. import "../patched/token/ERC20/extensions/ERC20FlashMint.sol";
  6. contract ERC20FlashMintHarness is ERC20, ERC20Permit, ERC20FlashMint {
  7. uint256 someFee;
  8. address someFeeReceiver;
  9. constructor(string memory name, string memory symbol) ERC20(name, symbol) ERC20Permit(name) {}
  10. function mint(address account, uint256 amount) external {
  11. _mint(account, amount);
  12. }
  13. function burn(address account, uint256 amount) external {
  14. _burn(account, amount);
  15. }
  16. // public accessor
  17. function flashFeeReceiver() public view returns (address) {
  18. return someFeeReceiver;
  19. }
  20. // internal hook
  21. function _flashFee(address, uint256) internal view override returns (uint256) {
  22. return someFee;
  23. }
  24. function _flashFeeReceiver() internal view override returns (address) {
  25. return someFeeReceiver;
  26. }
  27. }