cardano_sdk/protocol/
txsubmit.rs

1use cbored::CborRepr;
2use strum::EnumDiscriminants;
3
4use super::super::chain::{Transaction, TxHash};
5use super::*;
6
7#[derive(Clone, Debug, EnumDiscriminants, CborRepr, PartialEq, Eq)]
8#[cborrepr(enumtype = "tagvariant")]
9#[strum_discriminants(name(TxSubmitKind))]
10pub enum TxSubmit {
11    RequestIds {
12        blocking: bool,
13        /// Acknowledge this number of outstanding txs
14        ack_outstanding_txs: u16,
15        /// Maximums of outstanding txs requested
16        max_outstanding_txs_requested: u16,
17    },
18    ReplyIds(TxHashesWithSizes),
19    RequestTxs(TxHashes),
20    ReplyTxs(Txs),
21    Done,
22    _Unused,
23    Init,
24}
25
26crate::vec_structure!(TxHashesWithSizes, TxHashWithSize);
27crate::vec_structure!(TxHashes, TxHash);
28crate::vec_structure!(Txs, Transaction);
29
30impl Protocol for TxSubmit {
31    const NUMBER: u16 = 4;
32}
33
34#[derive(Clone, Debug, CborRepr, PartialEq, Eq)]
35#[cborrepr(structure = "array")]
36pub struct TxHashWithSize {
37    pub id: TxHash,
38    pub size_bytes: u64,
39}