12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // SPDX-License-Identifier: MIT
- // OpenZeppelin Contracts (last updated v4.5.0) (governance/utils/IVotes.sol)
- pragma solidity ^0.8.0;
- /**
- * @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.
- *
- * _Available since v4.5._
- */
- interface IVotes {
- /**
- * @dev Emitted when an account changes their delegate.
- */
- event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);
- /**
- * @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.
- */
- event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance);
- /**
- * @dev Returns the current amount of votes that `account` has.
- */
- function getVotes(address account) external view returns (uint256);
- /**
- * @dev Returns the amount of votes that `account` had at the end of a past block (`blockNumber`).
- */
- function getPastVotes(address account, uint256 blockNumber) external view returns (uint256);
- /**
- * @dev Returns the total supply of votes available at the end of a past block (`blockNumber`).
- *
- * NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes.
- * Votes that have not been delegated are still part of total supply, even though they would not participate in a
- * vote.
- */
- function getPastTotalSupply(uint256 blockNumber) external view returns (uint256);
- /**
- * @dev Returns the delegate that `account` has chosen.
- */
- function delegates(address account) external view returns (address);
- /**
- * @dev Delegates votes from the sender to `delegatee`.
- */
- function delegate(address delegatee) external;
- /**
- * @dev Delegates votes from signer to `delegatee`.
- */
- function delegateBySig(
- address delegatee,
- uint256 nonce,
- uint256 expiry,
- uint8 v,
- bytes32 r,
- bytes32 s
- ) external;
- }
|