diff --git a/compatibility/.DS_Store b/compatibility/.DS_Store new file mode 100644 index 000000000..5172429f2 Binary files /dev/null and b/compatibility/.DS_Store differ diff --git a/compatibility/src/version_five/mod.rs b/compatibility/src/version_five/mod.rs index 1e51cf10d..4799da1c2 100644 --- a/compatibility/src/version_five/mod.rs +++ b/compatibility/src/version_five/mod.rs @@ -4,6 +4,7 @@ pub mod diem_account_v5; pub mod freezing_v5; pub mod legacy_address_v5; pub mod module_v5; +pub mod new_epoch_v5; pub mod ol_ancestry; pub mod ol_cumulative_deposit; pub mod ol_receipts; diff --git a/compatibility/src/version_five/new_epoch_v5.rs b/compatibility/src/version_five/new_epoch_v5.rs new file mode 100644 index 000000000..d06c42a38 --- /dev/null +++ b/compatibility/src/version_five/new_epoch_v5.rs @@ -0,0 +1,29 @@ +use crate::version_five::move_resource_v5::MoveStructTypeV5; +use anyhow::Result; +use move_core_types::{ident_str, identifier::IdentStr}; +use serde::{Deserialize, Serialize}; + +/// Struct that represents a NewEpochEvent. +#[derive(Debug, Serialize, Deserialize)] +pub struct NewEpochEventV5 { + epoch: u64, +} + +impl NewEpochEventV5 { + pub fn new(epoch: u64) -> Self { + NewEpochEventV5 { epoch } + } + + pub fn epoch(&self) -> u64 { + self.epoch + } + + pub fn try_from_bytes(bytes: &[u8]) -> Result { + bcs::from_bytes(bytes).map_err(Into::into) + } +} + +impl MoveStructTypeV5 for NewEpochEventV5 { + const MODULE_NAME: &'static IdentStr = ident_str!("DiemConfig"); + const STRUCT_NAME: &'static IdentStr = ident_str!("NewEpochEvent"); +}