#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ChainMetadata {
#[prost(uint32, tag = "1")]
pub sapling_commitment_tree_size: u32,
#[prost(uint32, tag = "2")]
pub orchard_commitment_tree_size: u32,
#[prost(uint32, tag = "3")]
pub ironwood_commitment_tree_size: u32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompactBlock {
#[prost(uint64, tag = "2")]
pub height: u64,
#[prost(bytes = "vec", tag = "3")]
pub hash: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "4")]
pub prev_hash: ::prost::alloc::vec::Vec<u8>,
#[prost(uint32, tag = "5")]
pub time: u32,
#[prost(bytes = "vec", tag = "6")]
pub header: ::prost::alloc::vec::Vec<u8>,
#[prost(message, repeated, tag = "7")]
pub vtx: ::prost::alloc::vec::Vec<CompactTx>,
#[prost(message, optional, tag = "8")]
pub chain_metadata: ::core::option::Option<ChainMetadata>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompactTx {
#[prost(uint64, tag = "1")]
pub index: u64,
#[prost(bytes = "vec", tag = "2")]
pub txid: ::prost::alloc::vec::Vec<u8>,
#[prost(uint32, tag = "3")]
pub fee: u32,
#[prost(message, repeated, tag = "4")]
pub spends: ::prost::alloc::vec::Vec<CompactSaplingSpend>,
#[prost(message, repeated, tag = "5")]
pub outputs: ::prost::alloc::vec::Vec<CompactSaplingOutput>,
#[prost(message, repeated, tag = "6")]
pub actions: ::prost::alloc::vec::Vec<CompactOrchardAction>,
#[prost(message, repeated, tag = "9")]
pub ironwood_actions: ::prost::alloc::vec::Vec<CompactOrchardAction>,
#[prost(message, repeated, tag = "7")]
pub vin: ::prost::alloc::vec::Vec<CompactTxIn>,
#[prost(message, repeated, tag = "8")]
pub vout: ::prost::alloc::vec::Vec<TxOut>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CompactTxIn {
#[prost(bytes = "vec", tag = "1")]
pub prevout_txid: ::prost::alloc::vec::Vec<u8>,
#[prost(uint32, tag = "2")]
pub prevout_index: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TxOut {
#[prost(uint64, tag = "1")]
pub value: u64,
#[prost(bytes = "vec", tag = "2")]
pub script_pub_key: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CompactSaplingSpend {
#[prost(bytes = "vec", tag = "1")]
pub nf: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CompactSaplingOutput {
#[prost(bytes = "vec", tag = "1")]
pub cmu: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "2")]
pub ephemeral_key: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "3")]
pub ciphertext: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CompactOrchardAction {
#[prost(bytes = "vec", tag = "1")]
pub nullifier: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "2")]
pub cmx: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "3")]
pub ephemeral_key: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "4")]
pub ciphertext: ::prost::alloc::vec::Vec<u8>,
}