use {
crate::models,
serde::{Deserialize, Serialize},
};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SignedMessage {
#[serde(rename = "content", skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(rename = "algorithm", skip_serializing_if = "Option::is_none")]
pub algorithm: Option<Algorithm>,
#[serde(rename = "derivationPath", skip_serializing_if = "Option::is_none")]
pub derivation_path: Option<Vec<f64>>,
#[serde(rename = "signature", skip_serializing_if = "Option::is_none")]
pub signature: Option<models::SignedMessageSignature>,
#[serde(rename = "publicKey", skip_serializing_if = "Option::is_none")]
pub public_key: Option<String>,
}
impl SignedMessage {
pub fn new() -> SignedMessage {
SignedMessage {
content: None,
algorithm: None,
derivation_path: None,
signature: None,
public_key: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Algorithm {
#[serde(rename = "MPC_ECDSA_SECP256K1")]
MpcEcdsaSecp256K1,
#[serde(rename = "MPC_ECDSA_SECP256R1")]
MpcEcdsaSecp256R1,
#[serde(rename = "MPC_EDDSA_ED25519")]
MpcEddsaEd25519,
}
impl Default for Algorithm {
fn default() -> Algorithm {
Self::MpcEcdsaSecp256K1
}
}