Trait governance_os_support::traits::VotingRouter[][src]

pub trait VotingRouter {
    type AccountId;
    type VotingSystemId: Parameter;
    type Parameters: Parameter;
    type ProposalId: Parameter;
    type VoteData: Parameter;
    fn initiate(
        voting_system: Self::VotingSystemId,
        proposal: Self::ProposalId,
        parameters: Self::Parameters
    ) -> DispatchResult;
fn veto(
        voting_system: Self::VotingSystemId,
        proposal: Self::ProposalId
    ) -> DispatchResult;
fn vote(
        voting_system: Self::VotingSystemId,
        proposal: Self::ProposalId,
        voter: &Self::AccountId,
        data: Self::VoteData
    ) -> DispatchResult;
fn close(
        voting_system: Self::VotingSystemId,
        proposal: Self::ProposalId
    ) -> Result<ProposalResult, DispatchError>; }

Used to route votes and related actions between different voting system implementations.

Associated Types

type AccountId[src]

How accounts are represented, used to identify voters.

type VotingSystemId: Parameter[src]

How the runtime defines a voting system. And how users can select it. Typically this would be a rust enum.

type Parameters: Parameter[src]

How the parameters of a voting system are represented and set at the organization level. Typically an enum to account for all the different parameters for the different voting systems.

type ProposalId: Parameter[src]

How we represent a proposal. Typically a Hash.

type VoteData: Parameter[src]

How the runtime represents the different vote data of the different voting systems. Typically an enum to account for all the different voting systems.

Loading content...

Required methods

fn initiate(
    voting_system: Self::VotingSystemId,
    proposal: Self::ProposalId,
    parameters: Self::Parameters
) -> DispatchResult
[src]

Route the initiate call to the right StandardizedVoting implementation based on the value of voting_systems.

fn veto(
    voting_system: Self::VotingSystemId,
    proposal: Self::ProposalId
) -> DispatchResult
[src]

Route the veto call to the right StandardizedVoting implementation based on the value of voting_systems.

fn vote(
    voting_system: Self::VotingSystemId,
    proposal: Self::ProposalId,
    voter: &Self::AccountId,
    data: Self::VoteData
) -> DispatchResult
[src]

Route the vote call to the right StandardizedVoting implementation based on the value of voting_systems.

fn close(
    voting_system: Self::VotingSystemId,
    proposal: Self::ProposalId
) -> Result<ProposalResult, DispatchError>
[src]

Route the close call to the right StandardizedVoting implementation based on the value of voting_systems.

Loading content...

Implementors

Loading content...