You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.0 KiB
Solidity
55 lines
2.0 KiB
Solidity
// 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;
|
|
}
|