1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
// LNP/BP Core Library implementing LNPBP specifications & standards // Written in 2020 by // Dr. Maxim Orlovsky <orlovsky@pandoracore.com> // // To the extent possible under law, the author(s) have dedicated all // copyright and related and neighboring rights to this software to // the public domain worldwide. This software is distributed without // any warranty. // // You should have received a copy of the MIT License // along with this software. // If not, see <https://opensource.org/licenses/MIT>. #![recursion_limit = "256"] // Coding conventions #![deny( non_upper_case_globals, non_camel_case_types, non_snake_case, unused_mut, unused_imports, dead_code, //missing_docs )] //! Primitives module defines core strict interfaces from informational LNPBP //! standards specifying secure and robust practices for function calls //! used in main LNP/BP development paradigms: //! * Cryptographic commitments and verification //! * Single-use seals //! * Client-side validation //! * 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 //! standartizing typical workflow processes in a form of interfaces that //! will be nearly impossible to use in the wrong form. #[macro_use] extern crate amplify_derive; #[macro_use] extern crate bitcoin_hashes; #[macro_use] mod client_side_validation; pub mod commit_verify; mod digests; pub mod single_use_seals; pub use client_side_validation::{ commit_strategy, merklize, CommitEncode, CommitEncodeWithStrategy, Conceal, ConsensusCommit, MerkleNode, };