use super::AuthApi;
use crate::{
dto::{
auth::{
RoleAttestationGetRequest, RoleAttestationPrepareResponse, RoleAttestationRequest,
SignedRoleAttestation,
},
error::Error,
},
ops::{auth::AuthOps, ic::IcOps, runtime::env::EnvOps},
workflow::runtime::auth::RuntimeAuthWorkflow,
};
impl AuthApi {
pub fn prepare_role_attestation_root(
request: RoleAttestationRequest,
) -> Result<RoleAttestationPrepareResponse, Error> {
RuntimeAuthWorkflow::prepare_role_attestation_root(request).map_err(Self::map_auth_error)
}
pub fn get_role_attestation_root(
request: RoleAttestationGetRequest,
) -> Result<SignedRoleAttestation, Error> {
EnvOps::require_root().map_err(Error::from)?;
AuthOps::get_role_attestation(IcOps::msg_caller(), request.payload_hash)
.map_err(Self::map_auth_error)
}
pub async fn verify_role_attestation(
attestation: &SignedRoleAttestation,
min_accepted_epoch: u64,
) -> Result<(), Error> {
RuntimeAuthWorkflow::verify_role_attestation(attestation, min_accepted_epoch)
.await
.map_err(Self::map_auth_error)
}
}