Struct miniscript::plan::Plan

source ·
pub struct Plan {
    pub absolute_timelock: Option<LockTime>,
    pub relative_timelock: Option<Sequence>,
    /* private fields */
}
Expand description

Representation of a particular spending path on a descriptor. Contains the witness template and the timelocks needed for satisfying the plan. Calling plan on a Descriptor will return this structure, containing the cheapest spending path possible (considering the Assets given)

Fields§

§absolute_timelock: Option<LockTime>

The absolute timelock this plan uses

§relative_timelock: Option<Sequence>

The relative timelock this plan uses

Implementations§

source§

impl Plan

source

pub fn witness_template(&self) -> &Vec<Placeholder<DefiniteDescriptorKey>>

Returns the witness template

source

pub fn witness_version(&self) -> Option<WitnessVersion>

Returns the witness version

source

pub fn satisfaction_weight(&self) -> usize

The weight, in witness units, needed for satisfying this plan (includes both the script sig weight and the witness weight)

source

pub fn scriptsig_size(&self) -> usize

The size in bytes of the script sig that satisfies this plan

source

pub fn witness_size(&self) -> usize

The size in bytes of the witness that satisfies this plan

source

pub fn satisfy<Sat: Satisfier<DefiniteDescriptorKey>>( &self, stfr: &Sat ) -> Result<(Vec<Vec<u8>>, ScriptBuf), Error>

Try creating the final script_sig and witness using a Satisfier

source

pub fn update_psbt_input(&self, input: &mut Input)

Update a PSBT input with the metadata required to complete this plan

This will only add the metadata for items required to complete this plan. For example, if there are multiple keys present in the descriptor, only the few used by this plan will be added to the PSBT.

Trait Implementations§

source§

impl Clone for Plan

source§

fn clone(&self) -> Plan

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Plan

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Plan

§

impl Send for Plan

§

impl Sync for Plan

§

impl Unpin for Plan

§

impl UnwindSafe for Plan

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V