From cece0bb80ef5e6aad9d643c01b4f1306ca5755a6 Mon Sep 17 00:00:00 2001 From: Simon Wicky Date: Fri, 27 Oct 2023 09:32:53 +0200 Subject: [PATCH] add traits to ecashcredential --- common/nym_offline_compact_ecash/src/impls/clone.rs | 2 ++ common/nym_offline_compact_ecash/src/impls/serde.rs | 4 ++++ common/nym_offline_compact_ecash/src/scheme/mod.rs | 12 ++++++++++++ 3 files changed, 18 insertions(+) diff --git a/common/nym_offline_compact_ecash/src/impls/clone.rs b/common/nym_offline_compact_ecash/src/impls/clone.rs index 349cc6c332..287529b51c 100644 --- a/common/nym_offline_compact_ecash/src/impls/clone.rs +++ b/common/nym_offline_compact_ecash/src/impls/clone.rs @@ -1,4 +1,5 @@ use crate::scheme::withdrawal::WithdrawalRequest; +use crate::scheme::EcashCredential; use crate::traits::Bytable; macro_rules! impl_clone { @@ -12,3 +13,4 @@ macro_rules! impl_clone { } impl_clone!(WithdrawalRequest); +impl_clone!(EcashCredential); diff --git a/common/nym_offline_compact_ecash/src/impls/serde.rs b/common/nym_offline_compact_ecash/src/impls/serde.rs index ffd4ee0f58..4e686d89e9 100644 --- a/common/nym_offline_compact_ecash/src/impls/serde.rs +++ b/common/nym_offline_compact_ecash/src/impls/serde.rs @@ -1,4 +1,6 @@ +use crate::scheme::EcashCredential; use crate::traits::Base58; +use crate::VerificationKeyAuth; use serde::de::Unexpected; use serde::{de::Error, de::Visitor, Deserialize, Deserializer, Serialize, Serializer}; use std::fmt; @@ -45,3 +47,5 @@ macro_rules! impl_serde { } impl_serde!(WithdrawalRequest, V1); +impl_serde!(EcashCredential, V2); +impl_serde!(VerificationKeyAuth, V3); diff --git a/common/nym_offline_compact_ecash/src/scheme/mod.rs b/common/nym_offline_compact_ecash/src/scheme/mod.rs index 7b3f67da4a..473f2220c0 100644 --- a/common/nym_offline_compact_ecash/src/scheme/mod.rs +++ b/common/nym_offline_compact_ecash/src/scheme/mod.rs @@ -702,3 +702,15 @@ impl TryFrom<&[u8]> for EcashCredential { }) } } + +impl Bytable for EcashCredential { + fn to_byte_vec(&self) -> Vec { + self.to_bytes().to_vec() + } + + fn try_from_byte_slice(slice: &[u8]) -> std::result::Result { + Self::try_from(slice) + } +} + +impl Base58 for EcashCredential {}