Expand description

The LNP/BP client-side-validation foundation libraries implementing LNPBP specifications & standards (LNPBP-4, 7, 8, 9, 42, 81).

Defines core interfaces from LNPBP standards specifying secure and robust practices via well-format APIs. Consists of the following main components:

  • Client-side validation
  • Cryptographic commitments and verification
  • Single-use-seals
  • Strict binary data serialization used by client-side validation

The goal of this module is to maximally reduce the probability of errors and mistakes within particular implementations of this paradigms by standardizing typical workflow processes in a form of interfaces that will be nearly impossible to use in a wrong way.

Re-exports

pub extern crate commit_verify;
pub extern crate single_use_seals;
pub extern crate strict_encoding;

Modules

Encoding and data preparation for commitment procedures in client-side-validation as defined by LNPBP-9 standard.

Merklization procedures for client-side-validation according to LNPBP-81 standard.

Multi-message commitments: implementation of LNPBP-4 standard.

Bitcoin tagged hash helper types.

Structs

Client-side-validation status containing all reports from the validation process

Enums

Result of client-side validation operation

Traits

Marker trait for client-side-validation data at any level of data hierarchy.

This simple trait MUST be used by all top-level data structures implementing client-side validation paradigm. The core concept of this paradigm is that a client must have a complete and uniform set of data, which can be represented or accessed through a single structure; and MUST be able to deterministically validate this set giving an external validation function, that is able to provide validator with

Trait for concrete implementations of seal resolution issues reported by SealResolvers during client-side-validation process

Seal resolver validates seal to have closed status, or reports SealResolver::Error otherwise, if the seal does not have a determined status or there was a error accessing seal commitment medium. The reported error does not necessary implies that the seal is not closed and the final decision about seal status must be solved at upper protocol levels or by a informed user action.

Validation failures marker trait indicating that the data had not passed client-side-validation and must not be accepted by the client. This does not cover issues related to single-use-seal status, which are covered by SealIssue type

Marker trait for all types of validation log entries (failures, trust issues, warnings, info messages) contained within a ValidationReport produced during client-side-validation.

Trait combining different forms of client-side-validation reporting as into a single type pack

Derive Macros

Derives StrictDecode implementation for the type.

Derives StrictEncode implementation for the type.