Skip to main content

IVotesUpgradeable

Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts. Available since v4.5.

Methods

delegate

function delegate(address delegatee) external nonpayable

Delegates votes from the sender to delegatee.

Parameters

NameTypeDescription
delegateeaddressundefined

delegateBySig

function delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s) external nonpayable

Delegates votes from signer to delegatee.

Parameters

NameTypeDescription
delegateeaddressundefined
nonceuint256undefined
expiryuint256undefined
vuint8undefined
rbytes32undefined
sbytes32undefined

delegates

function delegates(address account) external view returns (address)

Returns the delegate that account has chosen.

Parameters

NameTypeDescription
accountaddressundefined

Returns

NameTypeDescription
_0addressundefined

getPastTotalSupply

function getPastTotalSupply(uint256 blockNumber) external view returns (uint256)

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.

Parameters

NameTypeDescription
blockNumberuint256undefined

Returns

NameTypeDescription
_0uint256undefined

getPastVotes

function getPastVotes(address account, uint256 blockNumber) external view returns (uint256)

Returns the amount of votes that account had at the end of a past block (blockNumber).

Parameters

NameTypeDescription
accountaddressundefined
blockNumberuint256undefined

Returns

NameTypeDescription
_0uint256undefined

getVotes

function getVotes(address account) external view returns (uint256)

Returns the current amount of votes that account has.

Parameters

NameTypeDescription
accountaddressundefined

Returns

NameTypeDescription
_0uint256undefined

Events

DelegateChanged

event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate)

Emitted when an account changes their delegate.

Parameters

NameTypeDescription
delegator indexedaddressundefined
fromDelegate indexedaddressundefined
toDelegate indexedaddressundefined

DelegateVotesChanged

event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance)

Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.

Parameters

NameTypeDescription
delegate indexedaddressundefined
previousBalanceuint256undefined
newBalanceuint256undefined