use crate::models;
use serde::{Deserialize, Serialize};
use serde_with::serde_as;
#[serde_as]
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SignerWithStake {
#[serde(rename = "party_id")]
pub party_id: String,
#[serde_as(as = "serde_with::base64::Base64")]
#[serde(rename = "verification_key")]
pub verification_key: Vec<u8>,
#[serde_as(as = "Option<serde_with::base64::Base64>")]
#[serde(rename = "verification_key_signature", skip_serializing_if = "Option::is_none")]
pub verification_key_signature: Option<Vec<u8>>,
#[serde_as(as = "Option<serde_with::base64::Base64>")]
#[serde(rename = "operational_certificate", skip_serializing_if = "Option::is_none")]
pub operational_certificate: Option<Vec<u8>>,
#[serde(rename = "kes_period", skip_serializing_if = "Option::is_none")]
pub kes_period: Option<i64>,
#[serde(rename = "stake")]
pub stake: i64,
}
impl SignerWithStake {
pub fn new(party_id: String, verification_key: Vec<u8>, stake: i64) -> SignerWithStake {
SignerWithStake {
party_id,
verification_key,
verification_key_signature: None,
operational_certificate: None,
kes_period: None,
stake,
}
}
}