rgbstd/stl/
chain.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
22use amplify::confinement::SmallBlob;
23use bp::Outpoint;
24use strict_encoding::{StrictDeserialize, StrictSerialize};
25
26use super::LIB_NAME_RGB_CONTRACT;
27
28#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug, From)]
29#[derive(StrictType, StrictDumb, StrictEncode, StrictDecode)]
30#[strict_type(lib = LIB_NAME_RGB_CONTRACT, dumb = ProofOfReserves::new(strict_dumb!(), strict_dumb!()))]
31#[cfg_attr(feature = "serde", derive(Serialize, Deserialize), serde(crate = "serde_crate"))]
32pub struct ProofOfReserves {
33    pub utxo: Outpoint,
34    pub proof: SmallBlob,
35}
36impl StrictSerialize for ProofOfReserves {}
37impl StrictDeserialize for ProofOfReserves {}
38
39impl ProofOfReserves {
40    pub fn new(utxo: Outpoint, proof: SmallBlob) -> ProofOfReserves {
41        ProofOfReserves { utxo, proof }
42    }
43}