oasis_runtime_sdk/modules/rofl/
policy.rs1use crate::core::{
2 common::{
3 crypto::signature::PublicKey,
4 sgx::{EnclaveIdentity, QuotePolicy},
5 },
6 consensus::beacon::EpochTime,
7};
8
9#[derive(Clone, Debug, PartialEq, Eq, Default, cbor::Encode, cbor::Decode)]
11pub struct AppAuthPolicy {
12 pub quotes: QuotePolicy,
14 pub enclaves: Vec<EnclaveIdentity>,
16 pub endorsements: Vec<AllowedEndorsement>,
18 pub fees: FeePolicy,
20 pub max_expiration: EpochTime,
22}
23
24#[derive(Clone, Debug, PartialEq, Eq, cbor::Encode, cbor::Decode)]
26#[cbor(no_default)]
27pub enum AllowedEndorsement {
28 #[cbor(rename = "any", as_struct)]
30 Any,
31 #[cbor(rename = "role_compute", as_struct)]
33 ComputeRole,
34 #[cbor(rename = "role_observer", as_struct)]
36 ObserverRole,
37 #[cbor(rename = "entity")]
39 Entity(PublicKey),
40 #[cbor(rename = "node")]
42 Node(PublicKey),
43}
44
45#[derive(Clone, Debug, Default, PartialEq, Eq, cbor::Encode, cbor::Decode)]
47#[repr(u8)]
48pub enum FeePolicy {
49 InstancePays = 1,
51 #[default]
53 EndorsingNodePays = 2,
54}