1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use codec::{Decode, Encode};
use sp_runtime::RuntimeDebug;

#[derive(PartialEq, Eq, Copy, Clone, Encode, Decode, RuntimeDebug)]
#[non_exhaustive]
/// The proposal type taxonomy
pub enum ProposalType {
    /// Proposal to join(/leave?) executive membership
    ExecutiveMembership,
    /// Proposal to add recipient group to the list of potential grantees
    GrantSpend,
}

impl Default for ProposalType {
    fn default() -> ProposalType {
        ProposalType::ExecutiveMembership
    }
}

#[derive(PartialEq, Eq, Copy, Clone, Encode, Decode, RuntimeDebug)]
/// The state of a proposal made in [`bank`](../../bank/index.html)
pub enum ProposalStage {
    /// Proposed by a member
    Proposed,
    /// Voting has started
    Voting,
    /// The proposal is approved but NOT executed
    Approved,
    /// The proposal has been executed
    Executed,
    /// The proposal has been tabled (rejected proposals are tabled for future reference)
    Tabled,
}

impl Default for ProposalStage {
    fn default() -> Self {
        ProposalStage::Proposed
    }
}