Skip to main content

BuildUnchecked

Trait BuildUnchecked 

Source
pub trait BuildUnchecked: Sized {
    type Output;
    type Error: Error + Send + Sync + 'static;

    // Required method
    fn build_unchecked(self) -> Result<Self::Output, Self::Error>;
}
Expand description

Constructs a domain object from decoded fields while skipping selected verification checks.

This is an explicit, handwritten capability, independent of Verify and VerifyWith. Implement it only where the domain API supports unchecked construction. Construction can still fail on remaining checks or conversions; use core::convert::Infallible when it cannot fail.

§Warning

Implementations must document precisely which checks are skipped, including nested checks, and which invariants callers must ensure. The output is not guaranteed to be verified. This operation must not bypass wire decoding checks or silently discard verification errors. Skipping domain validation alone does not make this a Rust unsafe operation.

Required Associated Types§

Source

type Output

Source

type Error: Error + Send + Sync + 'static

Required Methods§

Source

fn build_unchecked(self) -> Result<Self::Output, Self::Error>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl BuildUnchecked for BlockBody

Checks body invariants, but trusts transaction ordering and unchecked input-note commitments.

Source§

impl BuildUnchecked for BlockHeader

Builds a header without validating its parent linkage, signatures, or protocol transition.

Source§

impl BuildUnchecked for InputNoteCommitment

Builds the decoded commitment without checking that its nullifier belongs to its note header. A present header is verified, but the caller must establish nullifier/header consistency and authenticate the note’s inclusion separately. An absent header is not evidence of inclusion.

Source§

impl BuildUnchecked for PartialBlockchain

Checks MMR reconstruction and header membership, but not header parent linkage or a trusted root.

Source§

impl BuildUnchecked for ProvenBatch

Checks local batch invariants, but not proof validity, note aggregation, or transaction ordering.

Source§

impl BuildUnchecked for ProvenTransaction

Checks transaction construction invariants, but not its proof or input-note authentication.

Source§

impl BuildUnchecked for SignedBlock

Checks header/body consistency but does not authenticate against a trusted parent.

Source§

impl BuildUnchecked for TransactionHeader

Builds a header using unchecked input-note commitments. Input/output note uniqueness, note-header invariants, and the transmitted transaction ID are still checked. The caller must establish each input’s nullifier/header consistency and authentication, the original note order, and the account ID’s relationship to the transaction data.

Source§

impl BuildUnchecked for TransactionInputs

Dispatches the decoded version without adding trust to the supplied headers or chain.

Source§

impl BuildUnchecked for TransactionInputsV1

Checks input consistency and note inclusion against supplied headers, without authenticating the chain.