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

Structs info

ProposalSettings

The struct holds information about settings for validators proposal

Parameters:

Name
Type
Description

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

The struct holds core properties of a proposal

Parameters:

Name
Type
Description

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

The struct holds information about the internal proposal

Parameters:

Name
Type
Description

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

The struct holds information about the external proposal

Parameters:

Name
Type
Description

core

struct IGovValidators.ProposalCore

the struct that holds information about core properties of a proposal

InternalProposalView

The struct that is used in view functions of contract as a return argument

Parameters:

Name
Type
Description

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)

The function for getting current number of validators

Return values:

Name
Type
Description

[0]

uint256

number of validators

createInternalProposal (0x9661803d)

Create internal proposal for changing validators balances, base quorum, base duration

Parameters:

Name
Type
Description

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)

Create external proposal. This function can call only Gov contract

Parameters:

Name
Type
Description

proposalId

uint256

Proposal ID from Gov contract

proposalSettings

struct IGovValidators.ProposalSettings

ProposalSettings struct

voteInternalProposal (0x5a34c7e1)

voteExternalProposal (0xba877b80)

cancelVoteInternalProposal (0x5478197e)

cancelVoteExternalProposal (0xea1941d0)

executeInternalProposal (0x65f3f23f)

Only for internal proposals. External proposals should be executed from governance.

Parameters:

Name
Type
Description

proposalId

uint256

Internal proposal ID

executeExternalProposal (0x430c885a)

The function called by governance that marks the external proposal as executed

Parameters:

Name
Type
Description

proposalId

uint256

External proposal ID

changeSettings (0xb395fec0)

changeBalances (0x62a4107d)

The function for changing validators balances

Parameters:

Name
Type
Description

newValues

uint256[]

the array of new balances

userAddresses

address[]

the array validators addresses

monthlyWithdraw (0x3271f009)

getExternalProposal (0xe14ea231)

The function for getting information about the external proposals

Parameters:

Name
Type
Description

index

uint256

the index of proposal

Return values:

Name
Type
Description

[0]

struct IGovValidators.ExternalProposal

ExternalProposal struct

getInternalProposals (0x8a847ae4)

The function for getting information about internal proposals

Parameters:

Name
Type
Description

offset

uint256

the starting proposal index

limit

uint256

the length of the observed proposals

Return values:

Name
Type
Description

[0]

struct IGovValidators.InternalProposalView[]

InternalProposalView struct array

getProposalState (0x7b839d93)

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)

The function for getting proposal required quorum

Parameters:

Name
Type
Description

proposalId

uint256

the id of proposal

isInternal

bool

the boolean flag, if true then proposal is internal

Return values:

Name
Type
Description

[0]

uint256

the number of votes to reach the quorum

isValidator (0xfacd743b)

The function that checks if a user is a validator

Parameters:

Name
Type
Description

user

address

the address of a user

Return values:

Name
Type
Description

[0]

bool

flag, if true, than user is a validator