rialo-types 0.1.8

Rialo Types
Documentation
// Copyright (c) Subzero Labs, Inc.
// SPDX-License-Identifier: Apache-2.0

//! This crate contains basic types used by Rialo network.
//! When a type is referenced by multiple crates, it is a
//! good idea to have it in crate for simpler dependency management.
//!
//! This crate now includes oracle-specific types with TEE attestation support.

// Core cryptographic types
pub mod crypto;

pub mod headers;
pub mod http_filter;
#[cfg(test)]
mod http_filter_tests;
pub mod nonce;
#[cfg(test)]
mod nonce_tests;
mod prelude;
pub mod shared_rpc_types;
pub mod transaction_execution_results;

// Oracle-specific modules
pub mod attestation;
pub mod duties;
pub mod duty_config;
pub mod error;
pub mod modified_entries;
pub mod oracle;
pub mod output;
pub mod retry_config;
pub mod tee_types;
#[cfg(test)]
mod tests;

// Re-export oracle types
#[cfg(feature = "non-pdk")]
pub use attestation::{ed25519_keypair_to_pubkey_slice, ed25519_signature_to_slice};
pub use attestation::{
    AttestationReport, AttestationReportInner, VerificationError, VerifiedAttestation,
};
// Re-export crypto types
pub use crypto::{PublicKey, TeeUserData, TEE_USER_DATA_SIZE, X25519_KEY_SIZE};
pub use duties::{OracleDutiesMap, OracleDutiesMapKey, OracleDutiesMapValue, ProtocolKeyBytes};
pub use duty_config::*;
pub use error::*;
pub use modified_entries::*;
pub use oracle::*;
pub use output::*;
/// Re-export for convenience
pub use prelude::*;
pub use retry_config::*;
pub use tee_types::{
    parse_evidence, AttestationEvidence, AwsSevSnpEvidenceData, AzureSevSnpEvidenceData,
    SevSnpEvidenceData, TeeEvidenceError, TeeType,
};

/// A wrapper enum to distinguish different types of messages processed in consensus.
#[cfg(feature = "non-pdk")]
#[derive(serde::Deserialize, serde::Serialize)]
pub enum ConsensusMessage {
    OracleUpdateResult(Box<OracleUpdateResult>),
    VersionedTransaction(rialo_s_sdk::transaction::VersionedTransaction),
}