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§
Required Methods§
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.
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.
impl BuildUnchecked for BlockHeader
Builds a header without validating its parent linkage, signatures, or protocol transition.
type Output = BlockHeader
type Error = VerificationError
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.
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.
type Output = InputNoteCommitment
type Error = VerificationError
Source§impl BuildUnchecked for PartialBlockchain
Checks MMR reconstruction and header membership, but not header parent linkage or a trusted
root.
impl BuildUnchecked for PartialBlockchain
Checks MMR reconstruction and header membership, but not header parent linkage or a trusted root.
type Output = PartialBlockchain
type Error = VerificationError
Source§impl BuildUnchecked for ProvenBatch
Checks local batch invariants, but not proof validity, note aggregation, or transaction
ordering.
impl BuildUnchecked for ProvenBatch
Checks local batch invariants, but not proof validity, note aggregation, or transaction ordering.
type Output = ProvenBatch
type Error = VerificationError
Source§impl BuildUnchecked for ProvenTransaction
Checks transaction construction invariants, but not its proof or input-note authentication.
impl BuildUnchecked for ProvenTransaction
Checks transaction construction invariants, but not its proof or input-note authentication.
type Output = ProvenTransaction
type Error = VerificationError
Source§impl BuildUnchecked for SignedBlock
Checks header/body consistency but does not authenticate against a trusted parent.
impl BuildUnchecked for SignedBlock
Checks header/body consistency but does not authenticate against a trusted parent.
type Output = SignedBlock
type Error = VerificationError
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.
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.
type Output = TransactionHeader
type Error = VerificationError
Source§impl BuildUnchecked for TransactionInputs
Dispatches the decoded version without adding trust to the supplied headers or chain.
impl BuildUnchecked for TransactionInputs
Dispatches the decoded version without adding trust to the supplied headers or chain.
type Output = TransactionInputs
type Error = VerificationError
Source§impl BuildUnchecked for TransactionInputsV1
Checks input consistency and note inclusion against supplied headers, without authenticating the
chain.
impl BuildUnchecked for TransactionInputsV1
Checks input consistency and note inclusion against supplied headers, without authenticating the chain.