IGovernor
Inherits: IERC6372, IERC712
Author: M^0 Labs
Functions
castVote
Allows the caller to cast a vote on a proposal with id proposalId
.
Parameters
proposalId
uint256
The unique identifier for the proposal.
support
uint8
The type of support to cast for the proposal.
Returns
weight
uint256
The number of votes cast.
castVoteBySig
Allows a signer to cast a vote on a proposal with id proposalId
via an ECDSA secp256k1 signature.
Parameters
proposalId
uint256
The unique identifier for the proposal.
support
uint8
The type of support to cast for the proposal.
v
uint8
An ECDSA secp256k1 signature parameter.
r
bytes32
An ECDSA secp256k1 signature parameter.
s
bytes32
An ECDSA secp256k1 signature parameter.
Returns
weight
uint256
The number of votes cast.
castVoteBySig
Allows voter
to cast a vote on a proposal with id proposalId
via an arbitrary signature.
Parameters
voter
address
The address of the account that casting their vote, and purported to have signed.
proposalId
uint256
The unique identifier for the proposal.
support
uint8
The type of support to cast for the proposal.
signature
bytes
An arbitrary signature.
Returns
weight
uint256
The number of votes cast.
castVoteWithReason
Allows the caller to cast a vote with reason on a proposal with id proposalId
.
Parameters
proposalId
uint256
The unique identifier for the proposal.
support
uint8
The type of support to cast for the proposal.
reason
string
The reason for which the caller casts their vote, if any.
Returns
weight
uint256
The number of votes cast.
castVoteWithReasonBySig
Allows a signer to cast a vote with reason on a proposal with id proposalId
via an ECDSA secp256k1 signature.
Parameters
proposalId
uint256
The unique identifier for the proposal.
support
uint8
The type of support to cast for the proposal.
reason
string
The reason for which the caller casts their vote, if any.
v
uint8
An ECDSA secp256k1 signature parameter.
r
bytes32
An ECDSA secp256k1 signature parameter.
s
bytes32
An ECDSA secp256k1 signature parameter.
Returns
weight
uint256
The number of votes cast.
castVoteWithReasonBySig
Allows voter
to cast a vote with reason on a proposal with id proposalId
via an arbitrary signature.
Parameters
voter
address
The address of the account that casting their vote, and purported to have signed.
proposalId
uint256
The unique identifier for the proposal.
support
uint8
The type of support to cast for the proposal.
reason
string
The reason for which the caller casts their vote, if any.
signature
bytes
An arbitrary signature.
Returns
weight
uint256
The number of votes cast.
execute
Allows the caller to execute a proposal.
Parameters
targets
address[]
An array of addresses that will be called upon the execution.
values
uint256[]
An array of ETH amounts that will be sent to each respective target upon execution.
callDatas
bytes[]
An array of call data used to call each respective target upon execution.
descriptionHash
bytes32
The hash of the string of the description of the proposal.
Returns
proposalId
uint256
The unique identifier for the proposal.
propose
Allows the caller to create a proposal.
Parameters
targets
address[]
An array of addresses that will be called upon the execution.
values
uint256[]
An array of ETH amounts that will be sent to each respective target upon execution.
callDatas
bytes[]
An array of call data used to call each respective target upon execution.
description
string
The string of the description of the proposal.
Returns
proposalId
uint256
The unique identifier for the proposal.
COUNTING_MODE
module:voting
A description of the possible "support" values for castVote and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example support=for,against&quorum=for
. The string can be decoded by the standard URLSearchParams JavaScript class.
getVotes
Returns the voting power of account
at clock value timepoint
.
Parameters
account
address
The address of the account with voting power.
timepoint
uint256
The point in time, according to the clock mode the contract is operating on.
Returns
<none>
uint256
The voting power of account
at timepoint
.
hashProposal
Returns the unique identifier for the proposal if it were created at this exact moment.
Parameters
targets
address[]
An array of addresses that will be called upon the execution.
values
uint256[]
An array of ETH amounts that will be sent to each respective target upon execution.
callDatas
bytes[]
An array of call data used to call each respective target upon execution.
descriptionHash
bytes32
The hash of the string of the description of the proposal.
Returns
<none>
uint256
The unique identifier for the proposal.
hasVoted
Returns whether account
has voted on the proposal with identifier proposalId
.
Parameters
proposalId
uint256
The unique identifier for the proposal.
account
address
The address of some account.
Returns
<none>
bool
Whether account
has already voted on the proposal.
name
Returns the name of the contract.
proposalDeadline
Returns the last clock value when voting on the proposal with identifier proposalId
is allowed.
Parameters
proposalId
uint256
The unique identifier for the proposal.
Returns
<none>
uint256
The last clock value when voting on the proposal is allowed.
proposalProposer
Returns the account that created the proposal with identifier proposalId
.
Parameters
proposalId
uint256
The unique identifier for the proposal.
Returns
<none>
address
The address of the account that created the proposal.
proposalSnapshot
Returns the clock value used to retrieve voting power to vote on proposal with identifier proposalId
.
Parameters
proposalId
uint256
The unique identifier for the proposal.
Returns
<none>
uint256
The clock value used to retrieve voting power.
proposalThreshold
Returns the required voting power an account needs to create a proposal.
proposalVotes
Returns the vote support totals for the proposal with identifier proposalId
.
Parameters
proposalId
uint256
The unique identifier for the proposal.
Returns
noVotes
uint256
The amount of votes cast against the proposal.
yesVotes
uint256
The amount of votes cast for the proposal.
abstainVotes
uint256
The amount of votes cast in abstention the proposal.
quorum
Returns the minimum number of eligible (COUNTING_MODE) votes for a proposal to succeed.
state
Returns the state of a proposal with identifier proposalId
.
Parameters
proposalId
uint256
The unique identifier for the proposal.
Returns
<none>
ProposalState
The state of the proposal.
token
Returns the EIP-5805 token contact used for determine voting power and total supplies.
votingDelay
Returns the number of clock values that must elapse before voting begins for a newly created proposal.
votingPeriod
Returns the number of clock values between the vote start and vote end.
BALLOT_TYPEHASH
Returns the EIP712 typehash used in the encoding of the digest for castVoteBySig
function.
BALLOT_WITH_REASON_TYPEHASH
Returns the EIP712 typehash used in the encoding of the digest for castVoteWithReasonBySig
function.
Events
ProposalCreated
Emitted when a proposal has been created.
Parameters
proposalId
uint256
The unique identifier for the proposal.
proposer
address
The address of the account that created the proposal.
targets
address[]
An array of addresses that will be called upon the execution.
values
uint256[]
An array of ETH amounts that will be sent to each respective target upon execution.
signatures
string[]
Empty string array required to be compatible with OZ governor contract.
callDatas
bytes[]
An array of call data used to call each respective target upon execution.
voteStart
uint256
The first clock value when voting on the proposal is allowed.
voteEnd
uint256
The last clock value when voting on the proposal is allowed.
description
string
The string of the description of the proposal.
ProposalExecuted
Emitted when a proposal has been executed.
Parameters
proposalId
uint256
The unique identifier for the proposal.
VoteCast
Emitted when a vote for a proposal with id proposalId
has been cast by voter
.
Parameters
voter
address
The address of the account that has casted their vote.
proposalId
uint256
The unique identifier for the proposal.
support
uint8
The type of support that has been cast for the proposal.
weight
uint256
The number of votes cast.
reason
string
The string of the reason voter
has cast their vote, if any.
Enums
ProposalState
Proposal state.