Skip to main content

hotmint_types/
lib.rs

1pub mod block;
2pub mod certificate;
3pub mod context;
4pub mod crypto;
5pub mod epoch;
6pub mod evidence;
7pub mod message;
8pub mod sync;
9pub mod validator;
10pub mod validator_update;
11pub mod view;
12pub mod vote;
13
14pub use block::{Block, BlockHash, Height};
15pub use certificate::{DoubleCertificate, QuorumCertificate, TimeoutCertificate};
16pub use context::{BlockContext, OwnedBlockContext, TxContext};
17pub use crypto::{AggregateSignature, PublicKey, Signature, Signer, Verifier};
18pub use epoch::{Epoch, EpochNumber};
19pub use evidence::EquivocationProof;
20pub use message::ConsensusMessage;
21pub use sync::{ChunkApplyResult, SnapshotInfo, SnapshotOfferResult, SyncRequest, SyncResponse};
22pub use validator::{ValidatorId, ValidatorInfo, ValidatorSet};
23pub use validator_update::{EndBlockResponse, Event, EventAttribute, ValidatorUpdate};
24pub use view::ViewNumber;
25pub use vote::{Vote, VoteType};
26
27/// Response from an application query, optionally containing a Merkle proof.
28#[derive(Debug, Clone, Default, serde::Serialize, serde::Deserialize)]
29pub struct QueryResponse {
30    /// The result data (opaque application bytes).
31    pub data: Vec<u8>,
32    /// Optional Merkle proof (application-defined format).
33    /// Applications using IAVL/SMT trees can populate this to enable
34    /// trustless verification by light clients.
35    #[serde(default)]
36    pub proof: Option<Vec<u8>>,
37    /// Height at which the query was evaluated.
38    #[serde(default)]
39    pub height: u64,
40}