pub struct VtxoTreeSpec {
pub vtxos: Vec<SignedVtxoRequest>,
pub expiry_height: BlockHeight,
pub server_pubkey: PublicKey,
pub exit_delta: BlockDelta,
pub global_cosign_pubkeys: Vec<PublicKey>,
}Expand description
All the information that uniquely specifies a VTXO tree before it has been signed.
Fields§
§vtxos: Vec<SignedVtxoRequest>§expiry_height: BlockHeight§server_pubkey: PublicKey§exit_delta: BlockDelta§global_cosign_pubkeys: Vec<PublicKey>Implementations§
Source§impl VtxoTreeSpec
impl VtxoTreeSpec
pub fn new( vtxos: Vec<SignedVtxoRequest>, server_pubkey: PublicKey, expiry_height: BlockHeight, exit_delta: BlockDelta, global_cosign_pubkeys: Vec<PublicKey>, ) -> VtxoTreeSpec
pub fn nb_leaves(&self) -> usize
pub fn nb_nodes(&self) -> usize
pub fn iter_vtxos(&self) -> impl Iterator<Item = &SignedVtxoRequest>
Sourcepub fn leaf_idx_of(&self, vtxo_request: &SignedVtxoRequest) -> Option<usize>
pub fn leaf_idx_of(&self, vtxo_request: &SignedVtxoRequest) -> Option<usize>
Get the leaf index of the given vtxo request.
Sourcepub fn total_required_value(&self) -> Amount
pub fn total_required_value(&self) -> Amount
Calculate the total value needed in the tree.
This accounts for
- all vtxos getting their value
Sourcepub fn cosign_taproot(&self, agg_pk: XOnlyPublicKey) -> TaprootSpendInfo
pub fn cosign_taproot(&self, agg_pk: XOnlyPublicKey) -> TaprootSpendInfo
Calculate the cosign taproot at a given node.
Sourcepub fn funding_tx_cosign_pubkey(&self) -> XOnlyPublicKey
pub fn funding_tx_cosign_pubkey(&self) -> XOnlyPublicKey
The cosign pubkey used on the vtxo output of the tx funding the tree
In Ark rounds this will be the round tx scriptPubkey.
Sourcepub fn funding_tx_script_pubkey(&self) -> ScriptBuf
pub fn funding_tx_script_pubkey(&self) -> ScriptBuf
The scriptPubkey used on the vtxo output of the tx funding the tree
In Ark rounds this will be the round tx scriptPubkey.
Sourcepub fn funding_tx_txout(&self) -> TxOut
pub fn funding_tx_txout(&self) -> TxOut
The output of the tx funding the tree
In Ark rounds this will be the round tx scriptPubkey.
Sourcepub fn cosign_agg_pks(
&self,
) -> impl Iterator<Item = XOnlyPublicKey> + DoubleEndedIterator + ExactSizeIterator + '_
pub fn cosign_agg_pks( &self, ) -> impl Iterator<Item = XOnlyPublicKey> + DoubleEndedIterator + ExactSizeIterator + '_
Calculate all the aggregate cosign pubkeys by aggregating the leaf and server pubkeys.
Pubkeys expected and returned ordered from leaves to root.
Sourcepub fn unsigned_transactions(&self, utxo: OutPoint) -> Vec<Transaction>
pub fn unsigned_transactions(&self, utxo: OutPoint) -> Vec<Transaction>
Return unsigned transactions for all nodes from leaves to root.
Sourcepub fn signed_transactions(
&self,
utxo: OutPoint,
signatures: &[Signature],
) -> Vec<Transaction>
pub fn signed_transactions( &self, utxo: OutPoint, signatures: &[Signature], ) -> Vec<Transaction>
Return all signed transactions for all nodes from leaves to root.
Sourcepub fn calculate_cosign_agg_nonces(
&self,
leaf_cosign_nonces: &HashMap<PublicKey, Vec<PublicNonce>>,
global_signer_cosign_nonces: &[impl AsRef<[PublicNonce]>],
) -> Result<Vec<AggregatedNonce>, String>
pub fn calculate_cosign_agg_nonces( &self, leaf_cosign_nonces: &HashMap<PublicKey, Vec<PublicNonce>>, global_signer_cosign_nonces: &[impl AsRef<[PublicNonce]>], ) -> Result<Vec<AggregatedNonce>, String>
Calculate all the aggregate cosign nonces by aggregating the leaf and server nonces.
Nonces expected and returned ordered from leaves to root.
Sourcepub fn into_unsigned_tree(self, utxo: OutPoint) -> UnsignedVtxoTree
pub fn into_unsigned_tree(self, utxo: OutPoint) -> UnsignedVtxoTree
Convert this spec into an unsigned tree by providing the root outpoint and the nodes’ aggregate nonces.
Nonces expected ordered from leaves to root.
Trait Implementations§
Source§impl Clone for VtxoTreeSpec
impl Clone for VtxoTreeSpec
Source§fn clone(&self) -> VtxoTreeSpec
fn clone(&self) -> VtxoTreeSpec
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VtxoTreeSpec
impl Debug for VtxoTreeSpec
Source§impl PartialEq for VtxoTreeSpec
impl PartialEq for VtxoTreeSpec
Source§impl ProtocolEncoding for VtxoTreeSpec
impl ProtocolEncoding for VtxoTreeSpec
Source§fn encode<W: Write + ?Sized>(&self, w: &mut W) -> Result<(), Error>
fn encode<W: Write + ?Sized>(&self, w: &mut W) -> Result<(), Error>
Source§fn decode<R: Read + ?Sized>(r: &mut R) -> Result<Self, ProtocolDecodingError>
fn decode<R: Read + ?Sized>(r: &mut R) -> Result<Self, ProtocolDecodingError>
Source§fn deserialize(byte_slice: &[u8]) -> Result<Self, ProtocolDecodingError>
fn deserialize(byte_slice: &[u8]) -> Result<Self, ProtocolDecodingError>
Source§fn serialize_hex(&self) -> String
fn serialize_hex(&self) -> String
Source§fn deserialize_hex(hex_str: &str) -> Result<Self, ProtocolDecodingError>
fn deserialize_hex(hex_str: &str) -> Result<Self, ProtocolDecodingError>
impl Eq for VtxoTreeSpec
impl StructuralPartialEq for VtxoTreeSpec
Auto Trait Implementations§
impl Freeze for VtxoTreeSpec
impl RefUnwindSafe for VtxoTreeSpec
impl Send for VtxoTreeSpec
impl Sync for VtxoTreeSpec
impl Unpin for VtxoTreeSpec
impl UnwindSafe for VtxoTreeSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.