rgbstd/containers/mod.rs
1// RGB standard library for working with smart contracts on Bitcoin & Lightning
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5// Written in 2019-2023 by
6// Dr Maxim Orlovsky <orlovsky@lnp-bp.org>
7//
8// Copyright (C) 2019-2023 LNP/BP Standards Association. All rights reserved.
9//
10// Licensed under the Apache License, Version 2.0 (the "License");
11// you may not use this file except in compliance with the License.
12// You may obtain a copy of the License at
13//
14// http://www.apache.org/licenses/LICENSE-2.0
15//
16// Unless required by applicable law or agreed to in writing, software
17// distributed under the License is distributed on an "AS IS" BASIS,
18// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19// See the License for the specific language governing permissions and
20// limitations under the License.
21
22//! RGB containers are data packages which can be transferred between smart
23//! contract users. There are two main types of containers:
24//! 1. [`Consignment`]s, containing information about partial state of a *single
25//! contract*, extending from its genesis up to certain contract endpoints.
26//! 2. [`Disclosure`]s, containing extracts from (possibly) independent state
27//! transitions and extensions under multiple contracts. Useful fro
28//! disclosing the concealed state for some other parties, and also for
29//! performing "change" operations on inventory during state transfers.
30
31mod consignment;
32mod disclosure;
33mod bindle;
34mod transfer;
35mod seal;
36mod util;
37mod validate;
38mod certs;
39
40pub use bindle::{Bindle, BindleContent, BindleParseError};
41#[cfg(feature = "fs")]
42pub use bindle::{LoadError, UniversalBindle};
43pub use certs::{Cert, ContentId, ContentSigs, Identity};
44pub use consignment::{Consignment, Contract, Transfer};
45pub use disclosure::Disclosure;
46pub use seal::{BuilderSeal, TerminalSeal, VoutSeal};
47pub use util::{ContainerVer, Terminal};