mina_p2p_messages/v2/manual/
conv.rs1use crate::v2::{
2 MinaBaseTransactionStatusStableV2, MinaBaseUserCommandStableV2,
3 MinaTransactionLogicTransactionAppliedCommandAppliedStableV2,
4 MinaTransactionLogicTransactionAppliedVaryingStableV2, MinaTransactionTransactionStableV2,
5};
6
7#[derive(Debug, thiserror::Error)]
8pub enum Error {
9 #[error("Binprot error: {0}")]
10 BinProt(#[from] binprot::Error),
11 #[error("Base64 error: {0}")]
12 Base64(#[from] base64::DecodeError),
13 #[error("IO error: {0}")]
14 Io(#[from] std::io::Error),
15}
16
17impl From<MinaTransactionLogicTransactionAppliedVaryingStableV2>
19 for (
20 MinaTransactionTransactionStableV2,
21 MinaBaseTransactionStatusStableV2,
22 )
23{
24 fn from(value: MinaTransactionLogicTransactionAppliedVaryingStableV2) -> Self {
25 match value {
26 MinaTransactionLogicTransactionAppliedVaryingStableV2::Command(v) => match v {
27 MinaTransactionLogicTransactionAppliedCommandAppliedStableV2::SignedCommand(v) => (
28 MinaTransactionTransactionStableV2::Command(Box::new(
29 MinaBaseUserCommandStableV2::SignedCommand(v.common.user_command.data),
30 )),
31 v.common.user_command.status,
32 ),
33 MinaTransactionLogicTransactionAppliedCommandAppliedStableV2::ZkappCommand(v) => (
34 MinaTransactionTransactionStableV2::Command(Box::new(
35 MinaBaseUserCommandStableV2::ZkappCommand(v.command.data),
36 )),
37 v.command.status,
38 ),
39 },
40 MinaTransactionLogicTransactionAppliedVaryingStableV2::FeeTransfer(v) => (
41 MinaTransactionTransactionStableV2::FeeTransfer(v.fee_transfer.data),
42 v.fee_transfer.status,
43 ),
44 MinaTransactionLogicTransactionAppliedVaryingStableV2::Coinbase(v) => (
45 MinaTransactionTransactionStableV2::Coinbase(v.coinbase.data),
46 v.coinbase.status,
47 ),
48 }
49 }
50}