// This file is @generated by prost-build.
/// Represents a block.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Block {
    /// Block data encoded using \[winter_utils::Serializable\] implementation for
    /// \[miden_objects::block::Block\].
    #[prost(bytes = "vec", tag = "1")]
    pub block: ::prost::alloc::vec::Vec<u8>,
}
/// Represents a block or nothing.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MaybeBlock {
    /// The requested block data encoded using \[winter_utils::Serializable\] implementation for
    /// \[miden_objects::block::Block\].
    #[prost(bytes = "vec", optional, tag = "1")]
    pub block: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
}
/// Represents a block number.
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BlockNumber {
    /// The block number of the target block.
    #[prost(fixed32, tag = "1")]
    pub block_num: u32,
}
/// Represents a block number or nothing.
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MaybeBlockNumber {
    /// The block number of the target block.
    #[prost(fixed32, optional, tag = "1")]
    pub block_num: ::core::option::Option<u32>,
}
/// Represents a block header.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BlockHeader {
    /// Specifies the version of the protocol.
    #[prost(uint32, tag = "1")]
    pub version: u32,
    /// The commitment of the previous blocks header.
    #[prost(message, optional, tag = "2")]
    pub prev_block_commitment: ::core::option::Option<super::primitives::Digest>,
    /// A unique sequential number of the current block.
    #[prost(fixed32, tag = "3")]
    pub block_num: u32,
    /// A commitment to an MMR of the entire chain where each block is a leaf.
    #[prost(message, optional, tag = "4")]
    pub chain_commitment: ::core::option::Option<super::primitives::Digest>,
    /// A commitment to account database.
    #[prost(message, optional, tag = "5")]
    pub account_root: ::core::option::Option<super::primitives::Digest>,
    /// A commitment to the nullifier database.
    #[prost(message, optional, tag = "6")]
    pub nullifier_root: ::core::option::Option<super::primitives::Digest>,
    /// A commitment to all notes created in the current block.
    #[prost(message, optional, tag = "7")]
    pub note_root: ::core::option::Option<super::primitives::Digest>,
    /// A commitment to a set of IDs of transactions which affected accounts in this block.
    #[prost(message, optional, tag = "8")]
    pub tx_commitment: ::core::option::Option<super::primitives::Digest>,
    /// A commitment to a STARK proof attesting to the correct state transition.
    #[prost(message, optional, tag = "9")]
    pub proof_commitment: ::core::option::Option<super::primitives::Digest>,
    /// A commitment to all transaction kernels supported by this block.
    #[prost(message, optional, tag = "10")]
    pub tx_kernel_commitment: ::core::option::Option<super::primitives::Digest>,
    /// Fee parameters for block processing.
    #[prost(message, optional, tag = "11")]
    pub fee_parameters: ::core::option::Option<FeeParameters>,
    /// The time when the block was created.
    #[prost(fixed32, tag = "12")]
    pub timestamp: u32,
}
/// Definition of the fee parameters.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FeeParameters {
    /// The faucet account ID which is used for native fee assets.
    #[prost(message, optional, tag = "1")]
    pub native_asset_id: ::core::option::Option<super::account::AccountId>,
    /// The base fee (in base units) capturing the cost for the verification of a transaction.
    #[prost(fixed32, tag = "2")]
    pub verification_base_fee: u32,
}
