1234567891011121314151617181920212223242526272829303132333435 |
- // SPDX-License-Identifier: MIT
- pragma solidity ^0.8.2;
- import "../../../token/ERC20/ERC20.sol";
- import "../../../token/ERC20/extensions/ERC20Permit.sol";
- import "../../../token/ERC20/extensions/ERC20Votes.sol";
- contract MyTokenTimestampBased is ERC20, ERC20Permit, ERC20Votes {
- constructor() ERC20("MyTokenTimestampBased", "MTK") ERC20Permit("MyTokenTimestampBased") {}
- // Overrides IERC6372 functions to make the token & governor timestamp-based
- function clock() public view override returns (uint48) {
- return uint48(block.timestamp);
- }
- // solhint-disable-next-line func-name-mixedcase
- function CLOCK_MODE() public pure override returns (string memory) {
- return "mode=timestamp";
- }
- // The functions below are overrides required by Solidity.
- function _afterTokenTransfer(address from, address to, uint256 amount) internal override(ERC20, ERC20Votes) {
- super._afterTokenTransfer(from, to, amount);
- }
- function _mint(address to, uint256 amount) internal override(ERC20, ERC20Votes) {
- super._mint(to, amount);
- }
- function _burn(address account, uint256 amount) internal override(ERC20, ERC20Votes) {
- super._burn(account, amount);
- }
- }
|