IGovValidators
Interface Description
License: MIT
interface IGovValidators
This is the voting contract that is queried on the proposal's second voting stage
Enums info
ProposalState
enum ProposalState {
Voting,
Defeated,
Succeeded,
Locked,
Executed,
Undefined
}
ProposalType
enum ProposalType {
ChangeSettings,
ChangeBalances,
MonthlyWithdraw,
OffchainProposal
}
Structs info
ProposalSettings
struct ProposalSettings {
uint64 duration;
uint64 executionDelay;
uint128 quorum;
}
The struct holds information about settings for validators proposal
Parameters:
duration
uint64
the duration of voting
executionDelay
uint64
the delay in seconds after voting end
quorum
uint128
the percentage of validators token supply to confirm the proposal
ProposalCore
struct ProposalCore {
bool executed;
uint56 snapshotId;
uint64 voteEnd;
uint64 executeAfter;
uint128 quorum;
uint256 votesFor;
uint256 votesAgainst;
}
The struct holds core properties of a proposal
Parameters:
executed
bool
the boolean flag that indicates whether the proposal is executed or not
snapshotId
uint56
the id of snapshot
voteEnd
uint64
the timestamp of voting end of the proposal
executeAfter
uint64
the timestamp of execution in seconds after voting end
quorum
uint128
the percentage of validators token supply to confirm the proposal
votesFor
uint256
the total number of votes in proposal from all voters
votesAgainst
uint256
the total number of votes against proposal from all voters
InternalProposal
struct InternalProposal {
IGovValidators.ProposalType proposalType;
IGovValidators.ProposalCore core;
string descriptionURL;
bytes data;
}
The struct holds information about the internal proposal
Parameters:
proposalType
enum IGovValidators.ProposalType
the ProposalType
enum
core
struct IGovValidators.ProposalCore
the struct that holds information about core properties of the proposal
descriptionURL
string
the string with link to IPFS doc with proposal description
data
bytes
the data to be executed
ExternalProposal
struct ExternalProposal {
IGovValidators.ProposalCore core;
}
The struct holds information about the external proposal
Parameters:
core
struct IGovValidators.ProposalCore
the struct that holds information about core properties of a proposal
InternalProposalView
struct InternalProposalView {
IGovValidators.InternalProposal proposal;
IGovValidators.ProposalState proposalState;
uint256 requiredQuorum;
}
The struct that is used in view functions of contract as a return argument
Parameters:
proposal
struct IGovValidators.InternalProposal
the InternalProposal
struct
proposalState
enum IGovValidators.ProposalState
the ProposalState
enum
requiredQuorum
uint256
the percentage of validators token supply to confirm the proposal
Functions info
validatorsCount (0xed612f8c)
function validatorsCount() external view returns (uint256)
The function for getting current number of validators
Return values:
[0]
uint256
number
of validators
createInternalProposal (0x9661803d)
function createInternalProposal(
IGovValidators.ProposalType proposalType,
string calldata descriptionURL,
bytes calldata data
) external
Create internal proposal for changing validators balances, base quorum, base duration
Parameters:
proposalType
enum IGovValidators.ProposalType
ProposalType
0 - ChangeInternalDurationAndQuorum
, change base duration and quorum 1 - ChangeBalances
, change address balance 2 - MonthlyWithdraw
, monthly token withdraw 3 - OffchainProposal
, offchain action
data
bytes
New packed data, depending on proposal type
createExternalProposal (0xdc2a7714)
function createExternalProposal(
uint256 proposalId,
IGovValidators.ProposalSettings calldata proposalSettings
) external
Create external proposal. This function can call only Gov
contract
Parameters:
proposalId
uint256
Proposal ID from Gov
contract
proposalSettings
struct IGovValidators.ProposalSettings
ProposalSettings
struct
voteInternalProposal (0x5a34c7e1)
function voteInternalProposal(
uint256 proposalId,
uint256 amount,
bool isVoteFor
) external
voteExternalProposal (0xba877b80)
function voteExternalProposal(
uint256 proposalId,
uint256 amount,
bool isVoteFor
) external
cancelVoteInternalProposal (0x5478197e)
function cancelVoteInternalProposal(uint256 proposalId) external
cancelVoteExternalProposal (0xea1941d0)
function cancelVoteExternalProposal(uint256 proposalId) external
executeInternalProposal (0x65f3f23f)
function executeInternalProposal(uint256 proposalId) external
Only for internal proposals. External proposals should be executed from governance.
Parameters:
proposalId
uint256
Internal proposal ID
executeExternalProposal (0x430c885a)
function executeExternalProposal(uint256 proposalId) external
The function called by governance that marks the external proposal as executed
Parameters:
proposalId
uint256
External proposal ID
changeSettings (0xb395fec0)
function changeSettings(
uint64 duration,
uint64 executionDelay,
uint128 quorum
) external
changeBalances (0x62a4107d)
function changeBalances(
uint256[] calldata newValues,
address[] calldata userAddresses
) external
The function for changing validators balances
Parameters:
newValues
uint256[]
the array of new balances
userAddresses
address[]
the array validators addresses
monthlyWithdraw (0x3271f009)
function monthlyWithdraw(
address[] calldata tokens,
uint256[] calldata amounts,
address destination
) external
getExternalProposal (0xe14ea231)
function getExternalProposal(
uint256 index
) external view returns (IGovValidators.ExternalProposal memory)
The function for getting information about the external proposals
Parameters:
index
uint256
the index of proposal
Return values:
[0]
struct IGovValidators.ExternalProposal
ExternalProposal
struct
getInternalProposals (0x8a847ae4)
function getInternalProposals(
uint256 offset,
uint256 limit
) external view returns (IGovValidators.InternalProposalView[] memory)
The function for getting information about internal proposals
Parameters:
offset
uint256
the starting proposal index
limit
uint256
the length of the observed proposals
Return values:
[0]
struct IGovValidators.InternalProposalView[]
InternalProposalView
struct array
getProposalState (0x7b839d93)
function getProposalState(
uint256 proposalId,
bool isInternal
) external view returns (IGovValidators.ProposalState)
Return proposal state
Options: Voting
- proposal where addresses can vote. Defeated
- proposal where voting time is over and proposal defeated. Succeeded
- proposal with the required number of votes. Executed
- executed proposal (only for internal proposal). Undefined
- nonexistent proposal.
getProposalRequiredQuorum (0xbd7782fc)
function getProposalRequiredQuorum(
uint256 proposalId,
bool isInternal
) external view returns (uint256)
The function for getting proposal required quorum
Parameters:
proposalId
uint256
the id of proposal
isInternal
bool
the boolean flag, if true then proposal is internal
Return values:
[0]
uint256
the number of votes to reach the quorum
isValidator (0xfacd743b)
function isValidator(address user) external view returns (bool)
The function that checks if a user is a validator
Parameters:
user
address
the address of a user
Return values:
[0]
bool
flag
, if true, than user is a validator