1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use crate::blueprints::resource::*;
use crate::constants::SYSTEM_TRANSACTION_BADGE;
use crate::crypto::PublicKey;
use crate::data::scrypto::model::NonFungibleLocalId;
use sbor::rust::prelude::*;

pub struct AuthAddresses;

impl AuthAddresses {
    pub fn system_role() -> NonFungibleGlobalId {
        NonFungibleGlobalId::new(SYSTEM_TRANSACTION_BADGE, NonFungibleLocalId::integer(0))
    }

    pub fn validator_role() -> NonFungibleGlobalId {
        NonFungibleGlobalId::new(SYSTEM_TRANSACTION_BADGE, NonFungibleLocalId::integer(1))
    }

    pub fn signer_set(signer_public_keys: &[PublicKey]) -> BTreeSet<NonFungibleGlobalId> {
        signer_public_keys
            .iter()
            .map(NonFungibleGlobalId::from_public_key)
            .collect()
    }
}