use serde::{Deserialize, Serialize};
use serde_bytes::ByteBuf;
use crate::sign_schema::SignatureSchema;
use crate::PublicKey;
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
pub struct ResetMainSecret {
pub sign_schema: SignatureSchema,
pub encrypted_pri_key: ByteBuf,
pub l2_pub_key: PublicKey,
}
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
#[serde(transparent)]
pub struct CreateApiSecret(pub PublicKey);
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
#[serde(transparent)]
pub struct DestroyApiSecret(pub PublicKey);
#[cfg(test)]
mod tests {
use ex3_serde::bincode;
use super::*;
#[test]
fn test_reset_main_secret_serde() {
let reset_main_secret = ResetMainSecret {
sign_schema: SignatureSchema::EvmEcdsa,
encrypted_pri_key: ByteBuf::from(vec![1, 2, 3]),
l2_pub_key: PublicKey::from([1u8; 32]),
};
let encoded = bincode::serialize(&reset_main_secret).unwrap();
let decoded: ResetMainSecret = bincode::deserialize(&encoded).unwrap();
assert_eq!(reset_main_secret, decoded);
let encoded = bincode::serialize(&reset_main_secret).unwrap();
let decoded: ResetMainSecret = bincode::deserialize(&encoded).unwrap();
assert_eq!(reset_main_secret, decoded);
}
#[test]
fn test_create_api_secret_serde() {
let create_api_secret = CreateApiSecret(PublicKey::from([1u8; 32]));
let encoded = bincode::serialize(&create_api_secret).unwrap();
let decoded: CreateApiSecret = bincode::deserialize(&encoded).unwrap();
assert_eq!(create_api_secret, decoded);
let encoded = bincode::serialize(&create_api_secret).unwrap();
let decoded: CreateApiSecret = bincode::deserialize(&encoded).unwrap();
assert_eq!(create_api_secret, decoded);
}
#[test]
fn test_destroy_api_secret_serde() {
let destroy_api_secret = DestroyApiSecret(PublicKey::from([1u8; 32]));
let encoded = bincode::serialize(&destroy_api_secret).unwrap();
let decoded: DestroyApiSecret = bincode::deserialize(&encoded).unwrap();
assert_eq!(destroy_api_secret, decoded);
let encoded = bincode::serialize(&destroy_api_secret).unwrap();
let decoded: DestroyApiSecret = bincode::deserialize(&encoded).unwrap();
assert_eq!(destroy_api_secret, decoded);
}
}