Solidity API

IRigoblockGovernance

RigoblockGovernance

constructor

constructor() public

Constructor has no inputs to guarantee same deterministic address across chains.

Setting high proposal threshold locks propose action, which also lock vote actions.

IGovernanceStrategy

assertValidInitParams

function assertValidInitParams(struct IRigoblockGovernanceFactory.Parameters params) external view

Reverts if initialization paramters are incorrect.

Only used at initialization, as params deleted from factory storage after setup.

Parameters

Name
Type
Description

params

struct IRigoblockGovernanceFactory.Parameters

Tuple of factory parameters.

assertValidThresholds

Reverts if thresholds are incorrect.

Parameters

Name
Type
Description

proposalThreshold

uint256

Number of votes required to make a proposal.

quorumThreshold

uint256

Number of votes required for a proposal to succeed.

getProposalState

Returns the state of a proposal for a required quorum.

Parameters

Name
Type
Description

proposal

struct IGovernanceState.Proposal

Tuple of the proposal.

minimumQuorum

uint256

Number of votes required for a proposal to pass.

Return Values

Name
Type
Description

[0]

enum IGovernanceState.ProposalState

Tuple of the proposal state.

votingPeriod

Return the voting period.

Return Values

Name
Type
Description

[0]

uint256

Number of seconds of period duration.

votingTimestamps

Returns the voting timestamps.

Return Values

Name
Type
Description

startBlockOrTime

uint256

Timestamp when proposal starts.

endBlockOrTime

uint256

Timestamp when voting ends.

getVotingPower

Return a user's voting power.

Parameters

Name
Type
Description

account

address

Address to check votes for.

IRigoblockGovernanceFactory

GovernanceCreated

Emitted when a governance is created.

Parameters

Name
Type
Description

governance

address

Address of the governance proxy.

createGovernance

Creates a new governance proxy.

Parameters

Name
Type
Description

implementation

address

Address of the governance implementation contract.

governanceStrategy

address

Address of the voting strategy.

proposalThreshold

uint256

Number of votes required for creating a new proposal.

quorumThreshold

uint256

Number of votes required for execution.

timeType

enum IGovernanceState.TimeType

Enum of time type (block number or timestamp).

name

string

Human readable string of the name.

Return Values

Name
Type
Description

governance

address

Address of the new governance.

Parameters

parameters

Returns the governance initialization parameters at proxy deploy.

Return Values

Name
Type
Description

[0]

struct IRigoblockGovernanceFactory.Parameters

Tuple of the governance parameters.

IGovernanceEvents

ProposalCreated

Emitted when a new proposal is created.

Parameters

Name
Type
Description

proposer

address

Address of the proposer.

proposalId

uint256

Number of the proposal.

actions

struct IGovernanceVoting.ProposedAction[]

Struct array of actions (targets, datas, values).

startBlockOrTime

uint256

Timestamp in seconds after which proposal can be voted on.

endBlockOrTime

uint256

Timestamp in seconds after which proposal can be executed.

description

string

String description of proposal.

ProposalExecuted

Emitted when a proposal is executed.

Parameters

Name
Type
Description

proposalId

uint256

Number of the proposal.

StrategyUpgraded

Emmited when the governance strategy is upgraded.

Parameters

Name
Type
Description

newStrategy

address

Address of the new strategy contract.

ThresholdsUpdated

Emitted when voting thresholds get updated.

Only governance can update thresholds.

Parameters

Name
Type
Description

proposalThreshold

uint256

Number of votes required to add a proposal.

quorumThreshold

uint256

Number of votes required to execute a proposal.

Upgraded

Emitted when implementation written to proxy storage.

Emitted also at first variable initialization.

Parameters

Name
Type
Description

newImplementation

address

Address of the new implementation.

VoteCast

Emitted when a voter votes.

Parameters

Name
Type
Description

voter

address

Address of the voter.

proposalId

uint256

Number of the proposal.

voteType

enum IGovernanceVoting.VoteType

Number of vote type.

votingPower

uint256

Number of votes.

IGovernanceInitializer

initializeGovernance

Initializes the Rigoblock Governance.

Params are stored in factory and read from there.

IGovernanceState

ProposalState

TimeType

Proposal

ProposalWrapper

getActions

Returns the actions proposed for a given proposal.

Parameters

Name
Type
Description

proposalId

uint256

Number of the proposal.

Return Values

Name
Type
Description

proposedActions

struct IGovernanceVoting.ProposedAction[]

Array of tuple of proposed actions.

getProposalById

Returns a proposal for a given id.

Parameters

Name
Type
Description

proposalId

uint256

The number of the proposal.

Return Values

Name
Type
Description

proposalWrapper

struct IGovernanceState.ProposalWrapper

Tuple wrapper of the proposal and proposed actions tuples.

getProposalState

Returns the state of a proposal.

Parameters

Name
Type
Description

proposalId

uint256

Number of the proposal.

Return Values

Name
Type
Description

[0]

enum IGovernanceState.ProposalState

Number of proposal state.

Receipt

getReceipt

Returns the receipt of a voter for a given proposal.

Parameters

Name
Type
Description

proposalId

uint256

Number of the proposal.

voter

address

Address of the voter.

Return Values

Name
Type
Description

[0]

struct IGovernanceState.Receipt

Tuple of voter receipt.

getVotingPower

Computes the current voting power of the given account.

Parameters

Name
Type
Description

account

address

The address of the account.

Return Values

Name
Type
Description

votingPower

uint256

The current voting power of the given account.

GovernanceParameters

EnhancedParams

governanceParameters

Returns the governance parameters.

Return Values

Name
Type
Description

[0]

struct IGovernanceState.EnhancedParams

Tuple of the governance parameters.

name

Returns the name of the governace.

Return Values

Name
Type
Description

[0]

string

Human readable string of the name.

proposalCount

Returns the total number of proposals.

Return Values

Name
Type
Description

count

uint256

The number of proposals.

proposals

Returns all proposals ever made to the governance.

Return Values

Name
Type
Description

proposalWrapper

struct IGovernanceState.ProposalWrapper[]

Tuple array of all governance proposals.

votingPeriod

Returns the voting period.

Return Values

Name
Type
Description

[0]

uint256

Number of blocks or seconds.

IGovernanceUpgrade

updateThresholds

Updates the proposal and quorum thresholds to the given values.

Only callable by the governance contract itself. Thresholds can only be updated via a successful governance proposal.

Parameters

Name
Type
Description

newProposalThreshold

uint256

The new value for the proposal threshold.

newQuorumThreshold

uint256

The new value for the quorum threshold.

upgradeImplementation

Updates the governance implementation address.

Only callable after successful voting.

Parameters

Name
Type
Description

newImplementation

address

Address of the new governance implementation contract.

upgradeStrategy

Updates the governance strategy plugin.

Only callable by the governance contract itself.

Parameters

Name
Type
Description

newStrategy

address

Address of the new strategy contract.

IGovernanceVoting

VoteType

castVote

Casts a vote for the given proposal.

Only callable during the voting period for that proposal. One address can only vote once.

Parameters

Name
Type
Description

proposalId

uint256

The ID of the proposal to vote on.

voteType

enum IGovernanceVoting.VoteType

Whether to support, not support or abstain.

castVoteBySignature

Casts a vote for the given proposal, by signature.

Only callable during the voting period for that proposal. One voter can only vote once.

Parameters

Name
Type
Description

proposalId

uint256

The ID of the proposal to vote on.

voteType

enum IGovernanceVoting.VoteType

Whether to support, not support or abstain.

v

uint8

the v field of the signature.

r

bytes32

the r field of the signature.

s

bytes32

the s field of the signature.

execute

Executes a proposal that has passed and is currently executable.

Parameters

Name
Type
Description

proposalId

uint256

The ID of the proposal to execute.

ProposedAction

propose

Creates a proposal on the the given actions. Must have at least proposalThreshold.

Must have at least proposalThreshold of voting power to call this function.

Parameters

Name
Type
Description

actions

struct IGovernanceVoting.ProposedAction[]

The proposed actions. An action specifies a contract call.

description

string

A text description for the proposal.

Return Values

Name
Type
Description

proposalId

uint256

The ID of the newly created proposal.

MixinAbstract

_getProposalCount

_getProposalState

_getVotingPower

MixinConstants

Constants are copied in the bytecode and not assigned a storage slot, can safely be added to this contract.

VERSION

Contract version

PROPOSAL_MAX_OPERATIONS

Maximum operations per proposal

DOMAIN_TYPEHASH

The EIP-712 typehash for the contract's domain

VOTE_TYPEHASH

The EIP-712 typehash for the vote struct

_GOVERNANCE_PARAMS_SLOT

_IMPLEMENTATION_SLOT

_NAME_SLOT

_PROPOSAL_SLOT

_PROPOSAL_COUNT_SLOT

_PROPOSED_ACTION_SLOT

_RECEIPT_SLOT

MixinImmutables

Immutables are copied in the bytecode and not assigned a storage slot

New immutables can safely be added to this contract without ordering.

constructor

MixinInitializer

onlyUninitialized

initializeGovernance

Initializes the Rigoblock Governance.

Params are stored in factory and read from there.

MixinState

getActions

Returns the actions proposed for a given proposal.

Parameters

Name
Type
Description

proposalId

uint256

Number of the proposal.

Return Values

Name
Type
Description

proposedActions

struct IGovernanceVoting.ProposedAction[]

Array of tuple of proposed actions.

getProposalState

Returns the state of a proposal.

Parameters

Name
Type
Description

proposalId

uint256

Number of the proposal.

Return Values

Name
Type
Description

[0]

enum IGovernanceState.ProposalState

Number of proposal state.

getReceipt

Returns the receipt of a voter for a given proposal.

Parameters

Name
Type
Description

proposalId

uint256

Number of the proposal.

voter

address

Address of the voter.

Return Values

Name
Type
Description

[0]

struct IGovernanceState.Receipt

Tuple of voter receipt.

getVotingPower

Computes the current voting power of the given account.

Parameters

Name
Type
Description

account

address

The address of the account.

Return Values

Name
Type
Description

[0]

uint256

governanceParameters

Returns the governance parameters.

Return Values

Name
Type
Description

[0]

struct IGovernanceState.EnhancedParams

Tuple of the governance parameters.

name

Returns the name of the governace.

Return Values

Name
Type
Description

[0]

string

Human readable string of the name.

proposalCount

Returns the total number of proposals.

Return Values

Name
Type
Description

count

uint256

The number of proposals.

proposals

Returns all proposals ever made to the governance.

Return Values

Name
Type
Description

proposalWrapper

struct IGovernanceState.ProposalWrapper[]

Tuple array of all governance proposals.

votingPeriod

Returns the voting period.

Return Values

Name
Type
Description

[0]

uint256

Number of blocks or seconds.

getProposalById

Returns a proposal for a given id.

Parameters

Name
Type
Description

proposalId

uint256

The number of the proposal.

Return Values

Name
Type
Description

proposalWrapper

struct IGovernanceState.ProposalWrapper

Tuple wrapper of the proposal and proposed actions tuples.

_getProposalCount

_getProposalState

_getVotingPower

MixinStorage

constructor

_governanceParameters

AddressSlot

_implementation

StringSlot

_name

ParamsWrapper

_paramsWrapper

UintSlot

_proposalCount

ProposalByIndex

_proposal

ActionByIndex

_proposedAction

UserReceipt

_receipt

MixinUpgrade

onlyGovernance

updateThresholds

Updates the proposal and quorum thresholds to the given values.

Only callable by the governance contract itself. Thresholds can only be updated via a successful governance proposal.

Parameters

Name
Type
Description

newProposalThreshold

uint256

The new value for the proposal threshold.

newQuorumThreshold

uint256

The new value for the quorum threshold.

upgradeImplementation

Updates the governance implementation address.

Only callable after successful voting.

Parameters

Name
Type
Description

newImplementation

address

Address of the new governance implementation contract.

upgradeStrategy

Updates the governance strategy plugin.

Only callable by the governance contract itself.

Parameters

Name
Type
Description

newStrategy

address

Address of the new strategy contract.

_isContract

Returns whether an address is a contract.

Return Values

Name
Type
Description

[0]

bool

Bool target address has code.

MixinVoting

propose

Creates a proposal on the the given actions. Must have at least proposalThreshold.

Must have at least proposalThreshold of voting power to call this function.

Parameters

Name
Type
Description

actions

struct IGovernanceVoting.ProposedAction[]

The proposed actions. An action specifies a contract call.

description

string

A text description for the proposal.

Return Values

Name
Type
Description

proposalId

uint256

The ID of the newly created proposal.

castVote

Casts a vote for the given proposal.

Only callable during the voting period for that proposal. One address can only vote once.

Parameters

Name
Type
Description

proposalId

uint256

The ID of the proposal to vote on.

voteType

enum IGovernanceVoting.VoteType

Whether to support, not support or abstain.

castVoteBySignature

Casts a vote for the given proposal, by signature.

Only callable during the voting period for that proposal. One voter can only vote once.

Parameters

Name
Type
Description

proposalId

uint256

The ID of the proposal to vote on.

voteType

enum IGovernanceVoting.VoteType

Whether to support, not support or abstain.

v

uint8

the v field of the signature.

r

bytes32

the r field of the signature.

s

bytes32

the s field of the signature.

execute

Executes a proposal that has passed and is currently executable.

Parameters

Name
Type
Description

proposalId

uint256

The ID of the proposal to execute.

_castVote

Casts a vote for the given proposal.

Only callable during the voting period for that proposal.

RigoblockGovernanceFactory

_parameters

createGovernance

Creates a new governance proxy.

Parameters

Name
Type
Description

implementation

address

Address of the governance implementation contract.

governanceStrategy

address

Address of the voting strategy.

proposalThreshold

uint256

Number of votes required for creating a new proposal.

quorumThreshold

uint256

Number of votes required for execution.

timeType

enum IGovernanceState.TimeType

Enum of time type (block number or timestamp).

name

string

Human readable string of the name.

Return Values

Name
Type
Description

governance

address

Address of the new governance.

parameters

Returns the governance initialization parameters at proxy deploy.

Return Values

Name
Type
Description

[0]

struct IRigoblockGovernanceFactory.Parameters

Tuple of the governance parameters.

_isContract

Returns whether an address is a contract.

Return Values

Name
Type
Description

[0]

bool

Bool target address has code.

RigoblockGovernanceProxy

Upgraded

Emitted when implementation written to proxy storage.

Emitted also at first variable initialization.

Parameters

Name
Type
Description

newImplementation

address

Address of the new implementation.

_IMPLEMENTATION_SLOT

constructor

Sets address of implementation contract.

fallback

Fallback function forwards all transactions and returns all received return data.

receive

Allows this contract to receive ether.

ImplementationSlot

_getImplementation

Method to read/write from/to implementation slot.

Return Values

Name
Type
Description

s

struct RigoblockGovernanceProxy.ImplementationSlot

Storage slot of the governance implementation.

RigoblockGovernanceStrategy

_stakingProxy

_votingPeriod

constructor

assertValidInitParams

Reverts if initialization paramters are incorrect.

Only used at initialization, as params deleted from factory storage after setup.

Parameters

Name
Type
Description

params

struct IRigoblockGovernanceFactory.Parameters

Tuple of factory parameters.

assertValidThresholds

Reverts if thresholds are incorrect.

Parameters

Name
Type
Description

proposalThreshold

uint256

Number of votes required to make a proposal.

quorumThreshold

uint256

Number of votes required for a proposal to succeed.

getProposalState

Returns the state of a proposal for a required quorum.

Parameters

Name
Type
Description

proposal

struct IGovernanceState.Proposal

Tuple of the proposal.

minimumQuorum

uint256

Number of votes required for a proposal to pass.

Return Values

Name
Type
Description

[0]

enum IGovernanceState.ProposalState

Tuple of the proposal state.

_qualifiedConsensus

getVotingPower

Return a user's voting power.

Parameters

Name
Type
Description

account

address

Address to check votes for.

votingPeriod

Return the voting period.

Return Values

Name
Type
Description

[0]

uint256

Number of seconds of period duration.

votingTimestamps

Returns the voting timestamps.

Return Values

Name
Type
Description

startBlockOrTime

uint256

Timestamp when proposal starts.

endBlockOrTime

uint256

Timestamp when voting ends.

_assertValidProposalThreshold

_assertValidQuorumThreshold

_getStakingProxy

It is more gas efficient at deploy to reading immutable from internal method.

Last updated