use super::{SectionSignedUtils, Signed};
use crate::{Error, Result};
use serde::Serialize;
use sn_messaging::node::SectionSigned;
pub fn prove<T: Serialize>(secret_key: &bls::SecretKey, payload: &T) -> Result<Signed> {
let bytes = bincode::serialize(payload).map_err(|_| Error::InvalidPayload)?;
Ok(Signed {
public_key: secret_key.public_key(),
signature: secret_key.sign(&bytes),
})
}
pub fn section_signed<T: Serialize>(
secret_key: &bls::SecretKey,
payload: T,
) -> Result<SectionSigned<T>> {
let signed = prove(secret_key, &payload)?;
Ok(SectionSigned::new(payload, signed))
}