12345678910111213141516171819202122232425262728 |
- import "../munged/token/ERC20/extensions/ERC20Votes.sol";
- contract ERC20VotesHarness is ERC20Votes {
- constructor(string memory name, string memory symbol) ERC20Permit(name) ERC20(name, symbol) {}
- mapping(address => mapping(uint256 => uint256)) public _getPastVotes;
- function _afterTokenTransfer(
- address from,
- address to,
- uint256 amount
- ) internal virtual override {
- super._afterTokenTransfer(from, to, amount);
- _getPastVotes[from][block.number] -= amount;
- _getPastVotes[to][block.number] += amount;
- }
- /**
- * @dev Change delegation for `delegator` to `delegatee`.
- *
- * Emits events {DelegateChanged} and {DelegateVotesChanged}.
- */
- function _delegate(address delegator, address delegatee) internal virtual override{
- super._delegate(delegator, delegatee);
- _getPastVotes[delegator][block.number] -= balanceOf(delegator);
- _getPastVotes[delegatee][block.number] += balanceOf(delegator);
- }
- }
|