ERC20GetterHelper.sol 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.20;
  3. import {IERC20} from "../../token/ERC20/IERC20.sol";
  4. import {IERC20Metadata} from "../../token/ERC20/extensions/IERC20Metadata.sol";
  5. contract ERC20GetterHelper {
  6. event ERC20TotalSupply(IERC20 token, uint256 totalSupply);
  7. event ERC20BalanceOf(IERC20 token, address account, uint256 balanceOf);
  8. event ERC20Allowance(IERC20 token, address owner, address spender, uint256 allowance);
  9. event ERC20Name(IERC20Metadata token, string name);
  10. event ERC20Symbol(IERC20Metadata token, string symbol);
  11. event ERC20Decimals(IERC20Metadata token, uint8 decimals);
  12. function totalSupply(IERC20 token) external {
  13. emit ERC20TotalSupply(token, token.totalSupply());
  14. }
  15. function balanceOf(IERC20 token, address account) external {
  16. emit ERC20BalanceOf(token, account, token.balanceOf(account));
  17. }
  18. function allowance(IERC20 token, address owner, address spender) external {
  19. emit ERC20Allowance(token, owner, spender, token.allowance(owner, spender));
  20. }
  21. function name(IERC20Metadata token) external {
  22. emit ERC20Name(token, token.name());
  23. }
  24. function symbol(IERC20Metadata token) external {
  25. emit ERC20Symbol(token, token.symbol());
  26. }
  27. function decimals(IERC20Metadata token) external {
  28. emit ERC20Decimals(token, token.decimals());
  29. }
  30. }