circles_types/
trust.rs

1use alloy_primitives::{Address, TxHash};
2use serde::{Deserialize, Serialize};
3
4/// Trust relation information
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct TrustRelation {
7    pub block_number: u64,
8    pub timestamp: u64,
9    pub transaction_index: u32,
10    pub log_index: u32,
11    pub transaction_hash: TxHash,
12    pub truster: Address,
13    pub trustee: Address,
14    pub expiry_time: u64,
15}
16
17/// Trust relation type enumeration
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
19pub enum TrustRelationType {
20    #[serde(rename = "trusts")]
21    Trusts,
22    #[serde(rename = "trustedBy")]
23    TrustedBy,
24    #[serde(rename = "mutuallyTrusts")]
25    MutuallyTrusts,
26}
27
28/// Aggregated trust relation
29#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct AggregatedTrustRelation {
31    pub subject_avatar: Address,
32    pub relation: TrustRelationType,
33    pub object_avatar: Address,
34    pub timestamp: u64,
35}