IERC20Votes.sol 1001 B

1234567891011121314151617181920212223
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../IERC20.sol";
  4. interface IERC20Votes is IERC20 {
  5. struct Checkpoint {
  6. uint32 fromBlock;
  7. uint224 votes;
  8. }
  9. event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);
  10. event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance);
  11. function delegates(address owner) external view returns (address);
  12. function checkpoints(address account, uint32 pos) external view returns (Checkpoint memory);
  13. function numCheckpoints(address account) external view returns (uint32);
  14. function getCurrentVotes(address account) external view returns (uint256);
  15. function getPriorVotes(address account, uint256 blockNumber) external view returns (uint256);
  16. function delegate(address delegatee) external;
  17. function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) external;
  18. }