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 more