use super::{NnsRegistryReplayError, NnsRegistryReplaySession};
#[derive(Debug, Eq, PartialEq)]
pub struct NnsAuthenticatedRegistryReplaySession {
session: NnsRegistryReplaySession,
}
impl NnsAuthenticatedRegistryReplaySession {
pub(super) fn from_built_in(
session: NnsRegistryReplaySession,
) -> Result<Self, NnsRegistryReplayError> {
if !session.is_complete()
|| session.root_key_digest().is_none()
|| session.evidence_chain_digest().is_none()
|| session.complete_state_digest().is_none()
{
return Err(
NnsRegistryReplayError::AuthenticationRequiresCompleteSession {
selected_version: session.selected_version(),
through_version: session.state().through_version(),
},
);
}
Ok(Self { session })
}
#[must_use]
pub const fn replay_session(&self) -> &NnsRegistryReplaySession {
&self.session
}
#[must_use]
pub fn into_replay_session(self) -> NnsRegistryReplaySession {
self.session
}
}