ERC20VotesAdditionalCheckpointsMock.sol 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.24;
  3. import {ERC20Votes} from "../../token/ERC20/extensions/ERC20Votes.sol";
  4. import {VotesExtended, Votes} from "../../governance/utils/VotesExtended.sol";
  5. import {SafeCast} from "../../utils/math/SafeCast.sol";
  6. abstract contract ERC20VotesExtendedMock is ERC20Votes, VotesExtended {
  7. function _delegate(address account, address delegatee) internal virtual override(Votes, VotesExtended) {
  8. return super._delegate(account, delegatee);
  9. }
  10. function _transferVotingUnits(
  11. address from,
  12. address to,
  13. uint256 amount
  14. ) internal virtual override(Votes, VotesExtended) {
  15. return super._transferVotingUnits(from, to, amount);
  16. }
  17. }
  18. abstract contract ERC20VotesExtendedTimestampMock is ERC20VotesExtendedMock {
  19. function clock() public view virtual override returns (uint48) {
  20. return SafeCast.toUint48(block.timestamp);
  21. }
  22. // solhint-disable-next-line func-name-mixedcase
  23. function CLOCK_MODE() public view virtual override returns (string memory) {
  24. return "mode=timestamp";
  25. }
  26. }