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
use codec::{Decode, Encode};

use scale_info::TypeInfo;
use sp_runtime::RuntimeDebug;
use sp_std::{fmt::Debug, prelude::*};

#[derive(Clone, Eq, PartialEq, PartialOrd, Encode, Decode, RuntimeDebug, TypeInfo)]
pub enum CircuitRole {
    Ambassador,
    Executor,
    Attester,
    Staker,
    Collator,
    ContractAuthor, // Builders
    Relayer,
    Requester,
    Local,
}

#[derive(Encode, Decode, Clone, PartialEq, Eq, Debug, TypeInfo)]
pub enum BenefitSource {
    BootstrapPool,
    Inflation,
    TrafficFees,
    TrafficRewards,
    EscrowUnlock,
    Unsettled,
    SlashTreasury,
}

#[derive(Encode, Decode, Clone, PartialEq, Eq, Debug, TypeInfo)]
pub struct ClaimableArtifacts<Account, Balance> {
    pub beneficiary: Account,
    pub role: CircuitRole,
    pub total_round_claim: Balance,
    pub non_native_asset_id: Option<u32>,
    pub benefit_source: BenefitSource,
}