Skip to main content

miden_node_proto/domain/
proof_request.rs

1// PROOF REQUEST
2// ================================================================================================
3
4use miden_protocol::batch::OrderedBatches;
5use miden_protocol::block::{BlockHeader, BlockInputs};
6use miden_protocol::utils::{
7    ByteReader,
8    ByteWriter,
9    Deserializable,
10    DeserializationError,
11    Serializable,
12};
13
14pub struct BlockProofRequest {
15    pub tx_batches: OrderedBatches,
16    pub block_header: BlockHeader,
17    pub block_inputs: BlockInputs,
18}
19
20impl Serializable for BlockProofRequest {
21    fn write_into<W: ByteWriter>(&self, target: &mut W) {
22        let Self { tx_batches, block_header, block_inputs } = self;
23        tx_batches.write_into(target);
24        block_header.write_into(target);
25        block_inputs.write_into(target);
26    }
27}
28
29impl Deserializable for BlockProofRequest {
30    fn read_from<R: ByteReader>(source: &mut R) -> Result<Self, DeserializationError> {
31        let block = Self {
32            tx_batches: OrderedBatches::read_from(source)?,
33            block_header: BlockHeader::read_from(source)?,
34            block_inputs: BlockInputs::read_from(source)?,
35        };
36
37        Ok(block)
38    }
39}