mod tx;
mod txout;
mod spk;
use bc::Tx;
use commit_verify::mpc::Commitment;
use commit_verify::{CommitmentProtocol, EmbedCommitVerify, EmbedVerifyError};
use strict_encoding::{StrictDeserialize, StrictSerialize};
use crate::LIB_NAME_BPCORE;
pub enum OpretFirst {}
impl CommitmentProtocol for OpretFirst {}
#[derive(Clone, Eq, PartialEq, Debug, Display, Error, From)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize), serde(rename_all = "camelCase"))]
#[display(doc_comments)]
pub enum OpretError {
NoOpretOutput,
InvalidOpretScript,
}
#[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug, Default)]
#[derive(StrictType, StrictEncode, StrictDecode)]
#[strict_type(lib = LIB_NAME_BPCORE)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize), serde(rename_all = "camelCase"))]
pub struct OpretProof(());
impl StrictSerialize for OpretProof {}
impl StrictDeserialize for OpretProof {}
impl OpretProof {
pub fn verify(&self, msg: &Commitment, tx: &Tx) -> Result<(), EmbedVerifyError<OpretError>> {
tx.verify(msg, self)
}
}