cardano_sdk/protocol/
txsubmit.rs1use 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 ack_outstanding_txs: u16,
15 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}