use miden_objects::account::auth::PublicKeyCommitment;
use miden_objects::account::{AccountComponent, StorageSlot};
use crate::account::components::rpo_falcon_512_library;
pub struct AuthRpoFalcon512 {
pub_key: PublicKeyCommitment,
}
impl AuthRpoFalcon512 {
pub fn new(pub_key: PublicKeyCommitment) -> Self {
Self { pub_key }
}
}
impl From<AuthRpoFalcon512> for AccountComponent {
fn from(falcon: AuthRpoFalcon512) -> Self {
AccountComponent::new(
rpo_falcon_512_library(),
vec![StorageSlot::Value(falcon.pub_key.into())],
)
.expect("falcon component should satisfy the requirements of a valid account component")
.with_supports_all_types()
}
}