hopr_db_entity/conversions/
account.rs

1use std::str::FromStr;
2
3use hopr_crypto_types::types::OffchainPublicKey;
4use hopr_primitive_types::{primitives::Address, traits::ToHex};
5
6impl TryFrom<crate::codegen::sqlite::account::Model> for Address {
7    type Error = crate::errors::DbEntityError;
8
9    fn try_from(value: crate::codegen::sqlite::account::Model) -> std::result::Result<Self, Self::Error> {
10        Ok(Address::from_str(&value.chain_key).map_err(|e| Self::Error::ConversionError(format!("{e}")))?)
11    }
12}
13
14impl TryFrom<crate::codegen::sqlite::account::Model> for OffchainPublicKey {
15    type Error = crate::errors::DbEntityError;
16
17    fn try_from(value: crate::codegen::sqlite::account::Model) -> std::result::Result<Self, Self::Error> {
18        Ok(OffchainPublicKey::from_hex(&value.packet_key).map_err(|e| Self::Error::ConversionError(format!("{e}")))?)
19    }
20}