use chrono::{DateTime, Utc};
use semver::Version;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::{
prelude::{Address, CryptoMeta},
signed::Signed,
};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MetaEnvelope {
pub gid: Uuid,
pub version: Version,
pub from: Address,
pub to: Address,
pub timestamp: DateTime<Utc>,
pub crypto: CryptoMeta,
pub payload: Signed,
}
impl From<MetaEnvelope> for MetaPayload {
fn from(val: MetaEnvelope) -> MetaPayload {
MetaPayload {
gid: val.gid,
version: val.version,
from: val.from,
to: val.to,
timestamp: val.timestamp,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MetaPayload {
pub gid: Uuid,
pub version: Version,
pub from: Address,
pub to: Address,
pub timestamp: DateTime<Utc>,
}