Skip to main content

relay_core/envelope/
meta.rs

1use chrono::{DateTime, Utc};
2use semver::Version;
3use serde::{Deserialize, Serialize};
4use uuid::Uuid;
5
6use crate::{
7    prelude::{Address, CryptoMeta},
8    signed::Signed,
9};
10
11#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct MetaEnvelope {
13    pub gid: Uuid,
14    pub version: Version,
15    pub from: Address,
16    pub to: Address,
17    pub timestamp: DateTime<Utc>,
18    pub crypto: CryptoMeta,
19    /// PrivateEnvelope
20    pub payload: Signed,
21}
22
23impl From<MetaEnvelope> for MetaPayload {
24    fn from(val: MetaEnvelope) -> MetaPayload {
25        MetaPayload {
26            gid: val.gid,
27            version: val.version,
28            from: val.from,
29            to: val.to,
30            timestamp: val.timestamp,
31        }
32    }
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
36pub struct MetaPayload {
37    pub gid: Uuid,
38    pub version: Version,
39    pub from: Address,
40    pub to: Address,
41    pub timestamp: DateTime<Utc>,
42}