Trait lightning::sign::OutputSpender
source · pub trait OutputSpender {
// Required method
fn spend_spendable_outputs<C: Signing>(
&self,
descriptors: &[&SpendableOutputDescriptor],
outputs: Vec<TxOut>,
change_destination_script: ScriptBuf,
feerate_sat_per_1000_weight: u32,
locktime: Option<LockTime>,
secp_ctx: &Secp256k1<C>
) -> Result<Transaction, ()>;
}
Expand description
A trait that describes a wallet capable of creating a spending Transaction
from a set of
SpendableOutputDescriptor
s.
Required Methods§
sourcefn spend_spendable_outputs<C: Signing>(
&self,
descriptors: &[&SpendableOutputDescriptor],
outputs: Vec<TxOut>,
change_destination_script: ScriptBuf,
feerate_sat_per_1000_weight: u32,
locktime: Option<LockTime>,
secp_ctx: &Secp256k1<C>
) -> Result<Transaction, ()>
fn spend_spendable_outputs<C: Signing>( &self, descriptors: &[&SpendableOutputDescriptor], outputs: Vec<TxOut>, change_destination_script: ScriptBuf, feerate_sat_per_1000_weight: u32, locktime: Option<LockTime>, secp_ctx: &Secp256k1<C> ) -> Result<Transaction, ()>
Creates a Transaction
which spends the given descriptors to the given outputs, plus an
output to the given change destination (if sufficient change value remains). The
transaction will have a feerate, at least, of the given value.
The locktime
argument is used to set the transaction’s locktime. If None
, the
transaction will have a locktime of 0. It it recommended to set this to the current block
height to avoid fee sniping, unless you have some specific reason to use a different
locktime.
Returns Err(())
if the output value is greater than the input value minus required fee,
if a descriptor was duplicated, or if an output descriptor script_pubkey
does not match the one we can spend.