miden_node_proto/domain/
transaction.rs1use miden_objects::Word;
2use miden_objects::transaction::TransactionId;
3
4use crate::errors::ConversionError;
5use crate::generated as proto;
6
7impl From<&TransactionId> for proto::primitives::Digest {
11 fn from(value: &TransactionId) -> Self {
12 value.as_word().into()
13 }
14}
15
16impl From<TransactionId> for proto::primitives::Digest {
17 fn from(value: TransactionId) -> Self {
18 value.as_word().into()
19 }
20}
21
22impl From<&TransactionId> for proto::transaction::TransactionId {
23 fn from(value: &TransactionId) -> Self {
24 proto::transaction::TransactionId { id: Some(value.into()) }
25 }
26}
27
28impl From<TransactionId> for proto::transaction::TransactionId {
29 fn from(value: TransactionId) -> Self {
30 (&value).into()
31 }
32}
33
34impl TryFrom<proto::primitives::Digest> for TransactionId {
38 type Error = ConversionError;
39
40 fn try_from(value: proto::primitives::Digest) -> Result<Self, Self::Error> {
41 let digest: Word = value.try_into()?;
42 Ok(digest.into())
43 }
44}
45
46impl TryFrom<proto::transaction::TransactionId> for TransactionId {
47 type Error = ConversionError;
48
49 fn try_from(value: proto::transaction::TransactionId) -> Result<Self, Self::Error> {
50 value
51 .id
52 .ok_or(ConversionError::MissingFieldInProtobufRepresentation {
53 entity: "TransactionId",
54 field_name: "id",
55 })?
56 .try_into()
57 }
58}