Struct psbt::UnsignedTx

source ·
pub struct UnsignedTx {
    pub version: TxVer,
    pub inputs: VarIntArray<UnsignedTxIn>,
    pub outputs: VarIntArray<TxOut>,
    pub lock_time: LockTime,
}
Expand description

Structure representing data on unsigned transaction the way it is stored in PSBTv1 global key.

We can’t use Tx since PSBT may contain unsigned transaction with zero inputs, according to BIP-174 test cases. Tx containing zero inputs is an invalid structure, prohibited by consensus. An attempt to deserialize it will be incorrectly identified as a Segwit transaction (since zero inputs is the trick which was used to make Segwit softfork) and fail with invalid segwit flag error (since the second byte after 0 segwit indicator must be 01 and not a number of inputs) fail to parse outputs (for transactions containing just a one output).

UnsignedTx also ensures invariant that none of its inputs contain witnesses or sigscripts.

Fields§

§version: TxVer§inputs: VarIntArray<UnsignedTxIn>§outputs: VarIntArray<TxOut>§lock_time: LockTime

Implementations§

source§

impl UnsignedTx

source

pub fn with_sigs_removed(tx: Tx) -> UnsignedTx

source

pub fn txid(&self) -> Txid

source

pub fn finalize(self) -> Tx

Trait Implementations§

source§

impl Clone for UnsignedTx

source§

fn clone(&self) -> UnsignedTx

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 UnsignedTx

source§

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

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

impl Decode for UnsignedTx

source§

fn decode(reader: &mut impl Read) -> Result<Self, DecodeError>

source§

fn deserialize(bytes: impl AsRef<[u8]>) -> Result<Self, PsbtError>

source§

impl Encode for UnsignedTx

source§

fn encode(&self, writer: &mut dyn Write) -> Result<usize, IoError>

source§

impl From<Tx> for UnsignedTx

source§

fn from(tx: Tx) -> UnsignedTx

Converts to this type from the input type.
source§

impl From<UnsignedTx> for Tx

source§

fn from(unsigned_tx: UnsignedTx) -> Tx

Converts to this type from the input type.
source§

impl Hash for UnsignedTx

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for UnsignedTx

source§

fn eq(&self, other: &UnsignedTx) -> 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 Eq for UnsignedTx

source§

impl StructuralEq for UnsignedTx

source§

impl StructuralPartialEq for UnsignedTx

Auto Trait Implementations§

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
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> Same for T

§

type Output = T

Should always be Self
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<T> VerifyEq for T
where T: Eq,

§

fn verify_eq(&self, other: &T) -> bool

Verifies commit-equivalence of two instances of the same type.