Skip to main content

smplx_sdk/transaction/
utxo.rs

1use simplicityhl::elements::{AssetId, OutPoint, TxOut, TxOutSecrets};
2
3#[derive(Debug, Clone)]
4pub struct UTXO {
5    pub outpoint: OutPoint,
6    pub txout: TxOut,
7    pub secrets: Option<TxOutSecrets>,
8}
9
10impl UTXO {
11    pub fn explicit_asset(&self) -> AssetId {
12        self.txout.asset.explicit().expect("The UTXO's asset is not explicit")
13    }
14
15    pub fn explicit_amount(&self) -> u64 {
16        self.txout.value.explicit().expect("The UTXO's amount is not explicit")
17    }
18
19    pub fn unblinded_asset(&self) -> AssetId {
20        self.secrets.expect("The UTXO is not unblinded").asset
21    }
22
23    pub fn unblinded_amount(&self) -> u64 {
24        self.secrets.expect("The UTXO is not unblinded").value
25    }
26}