bee_block/output/
token_id.rs1use crate::output::FoundryId;
5
6impl_id!(pub TokenId, 38, "TODO.");
7
8#[cfg(feature = "serde")]
9string_serde_impl!(TokenId);
10
11impl From<FoundryId> for TokenId {
12 fn from(foundry_id: FoundryId) -> Self {
13 TokenId::new(*foundry_id)
14 }
15}
16
17#[cfg(feature = "dto")]
18#[allow(missing_docs)]
19pub mod dto {
20 use serde::{Deserialize, Serialize};
21
22 use super::*;
23 use crate::error::dto::DtoError;
24
25 #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
27 pub struct TokenIdDto(pub String);
28
29 impl From<&TokenId> for TokenIdDto {
30 fn from(value: &TokenId) -> Self {
31 Self(prefix_hex::encode(**value))
32 }
33 }
34
35 impl TryFrom<&TokenIdDto> for TokenId {
36 type Error = DtoError;
37
38 fn try_from(value: &TokenIdDto) -> Result<Self, Self::Error> {
39 let token_id: [u8; TokenId::LENGTH] =
40 prefix_hex::decode(&value.0).map_err(|_e| DtoError::InvalidField("tokenId"))?;
41 Ok(TokenId::new(token_id))
42 }
43 }
44}