Struct psbt::Psbt

source ·
pub struct Psbt {
    pub psbt_version: PsbtVersion,
    pub tx_version: u32,
    pub fallback_locktime: Option<LockTime>,
    pub inputs: Vec<Input>,
    pub outputs: Vec<Output>,
    pub xpub: BTreeMap<ExtendedPubKey, KeySource>,
    pub proprietary: BTreeMap<ProprietaryKey, Vec<u8>>,
    pub unknown: BTreeMap<Key, Vec<u8>>,
}

Fields§

§psbt_version: PsbtVersion

The version number of this PSBT. If omitted, the version number is 0.

§tx_version: u32

Transaction version.

§fallback_locktime: Option<LockTime>

Fallback locktime (used if none of the inputs specifies their locktime).

§inputs: Vec<Input>

The corresponding key-value map for each input.

§outputs: Vec<Output>

The corresponding key-value map for each output.

§xpub: BTreeMap<ExtendedPubKey, KeySource>

A global map from extended public keys to the used key fingerprint and derivation path as defined by BIP 32

§proprietary: BTreeMap<ProprietaryKey, Vec<u8>>

Global proprietary key-value pairs.

§unknown: BTreeMap<Key, Vec<u8>>

Unknown global key-value pairs.

Implementations§

source§

impl Psbt

source

pub fn with(tx: Transaction, psbt_version: PsbtVersion) -> Result<Self, TxError>

Checks that unsigned transaction does not have scriptSig’s or witness data

source

pub fn lock_time(&self) -> LockTime

source

pub fn fee(&self) -> Result<u64, FeeError>

Returns fee for a transaction, or returns error reporting resolver problem or wrong transaction structure

source

pub fn to_txid(&self) -> Txid

Returns transaction ID for an unsigned transaction. For SegWit transactions this is equal to the signed transaction id.

source

pub fn to_unsigned_tx(&self) -> Transaction

Constructs transaction with empty scriptSig and witness

source

pub fn into_unsigned_tx(self) -> Transaction

Returns transaction with empty scriptSig and witness

source

pub fn extract_signed_tx(&self) -> Transaction

Extract the (partially) signed transaction from this PSBT by filling in the available signature information in place.

source

pub fn combine(self, other: Self) -> Result<Self, Error>

Combines this Psbt with other PSBT as described by BIP 174.

In accordance with BIP 174 this function is commutative i.e., A.combine(B) == B.combine(A)

Trait Implementations§

source§

impl Clone for Psbt

source§

fn clone(&self) -> Psbt

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 Psbt

source§

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

Formats the value using the given formatter. Read more
source§

impl Default for Psbt

source§

fn default() -> Psbt

Returns the “default value” for a type. Read more
source§

impl Deserialize for Psbt

source§

fn deserialize(bytes: &[u8]) -> Result<Self, Error>

Deserialize a value from raw data.
source§

impl Display for Psbt

source§

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

Formats the value using the given formatter. Read more
source§

impl From<PartiallySignedTransaction> for Psbt

source§

fn from(v0: PsbtV0) -> Self

Converts to this type from the input type.
source§

impl From<Psbt> for PsbtV0

source§

fn from(psbt: Psbt) -> Self

Converts to this type from the input type.
source§

impl FromStr for Psbt

§

type Err = PsbtParseError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl LexOrder for Psbt

source§

fn lex_order(&mut self)

source§

fn lex_ordered(self) -> Self
where Self: Sized,

source§

impl PartialEq for Psbt

source§

fn eq(&self, other: &Psbt) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Psbt

source§

fn serialize(&self) -> Vec<u8>

Serialize a value as raw data.
source§

impl StrictDecode for Psbt

source§

fn strict_decode<D: Read>(d: D) -> Result<Self, Error>

Decode with the given std::io::Read instance; must either construct an instance or return implementation-specific error type.
source§

fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>

Tries to deserialize byte array into the current type using StrictDecode::strict_decode. If there are some data remains in the buffer once deserialization is completed, fails with Error::DataNotEntirelyConsumed. Use io::Cursor over the buffer and StrictDecode::strict_decode to avoid such failures.
source§

fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>

Reads data from file at path and reconstructs object from it. Fails with Error::DataNotEntirelyConsumed if file contains remaining data after the object reconstruction.
source§

impl StrictEncode for Psbt

source§

fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>

Encode with the given std::io::Write instance; must return result with either amount of bytes encoded – or implementation-specific error type.
source§

fn strict_serialize(&self) -> Result<Vec<u8>, Error>

Serializes data as a byte array using StrictEncode::strict_encode function
source§

fn strict_file_save(&self, path: impl AsRef<Path>) -> Result<usize, Error>

Saves data to a file at a given path. If the file does not exists, attempts to create the file. If the file already exists, it gets truncated.
source§

impl Eq for Psbt

source§

impl StructuralPartialEq for Psbt

Auto Trait Implementations§

§

impl Freeze for Psbt

§

impl RefUnwindSafe for Psbt

§

impl Send for Psbt

§

impl Sync for Psbt

§

impl Unpin for Psbt

§

impl UnwindSafe for Psbt

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> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. 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.