bp

Struct Tx

Source
pub struct Tx {
    pub version: TxVer,
    pub inputs: Confined<Vec<TxIn>, 0, bc::::coding::VarIntArray::{constant#1}>,
    pub outputs: Confined<Vec<TxOut>, 0, bc::::coding::VarIntArray::{constant#1}>,
    pub lock_time: LockTime,
}

Fields§

§version: TxVer§inputs: Confined<Vec<TxIn>, 0, bc::::coding::VarIntArray::{constant#1}>§outputs: Confined<Vec<TxOut>, 0, bc::::coding::VarIntArray::{constant#1}>§lock_time: LockTime

Implementations§

Source§

impl Tx

Source

pub fn inputs(&self) -> Iter<'_, TxIn>

Source

pub fn outputs(&self) -> Iter<'_, TxOut>

Source

pub fn is_segwit(&self) -> bool

Source

pub fn to_unsigned_tx(&self) -> Tx

Source

pub fn ntxid(&self) -> [u8; 32]

Computes a “normalized TXID” which does not include any signatures.

This gives a way to identify a transaction that is “the same” as another in the sense of having same inputs and outputs.

Source

pub fn txid(&self) -> Txid

Computes the Txid.

Hashes the transaction excluding the segwit data (i.e. the marker, flag bytes, and the witness fields themselves). For non-segwit transactions which do not have any segwit data, this will be equal to Tx::wtxid().

Source

pub fn wtxid(&self) -> Wtxid

Computes the segwit version of the transaction id.

Hashes the transaction including all segwit data (i.e. the marker, flag bytes, and the witness fields themselves). For non-segwit transactions which do not have any segwit data, this will be equal to [Transaction::txid()].

Trait Implementations§

Source§

impl Clone for Tx

Source§

fn clone(&self) -> Tx

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 ConsensusDecode for Tx

Source§

impl ConsensusEncode for Tx

Source§

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

Source§

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

Source§

impl ConvolveCommit<Commitment, TapretProof, TapretFirst> for Tx

Source§

type Commitment = Tx

Commitment type produced as a result of Self::convolve_commit procedure.
Source§

type CommitError = TapretError

Error type that may be reported during Self::convolve_commit procedure. It may also be returned from ConvolveCommitProof::verify in case the proof data are invalid and the commitment can’t be re-created.
Source§

fn convolve_commit( &self, supplement: &TapretProof, msg: &Commitment, ) -> Result<(Tx, TapretProof), <Tx as ConvolveCommit<Commitment, TapretProof, TapretFirst>>::CommitError>

Takes the supplement to unparse the content of this container (self) (“convolves” these two data together) and uses them to produce a final Self::Commitment to the message msg. Read more
Source§

impl Debug for Tx

Source§

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

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

impl<'de> Deserialize<'de> for Tx

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<Tx, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for Tx

Source§

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

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

impl EmbedCommitVerify<Commitment, OpretFirst> for Tx

Source§

type Proof = OpretProof

The proof of the commitment produced as a result of Self::embed_commit procedure. This proof is later used for verification.
Source§

type CommitError = OpretError

Error type that may be reported during Self::embed_commit procedure. It may also be returned from Self::verify (wrapped into EmbedVerifyError in case the proof data are invalid and the commitment can’t be re-created.
Source§

fn embed_commit( &mut self, msg: &Commitment, ) -> Result<<Tx as EmbedCommitVerify<Commitment, OpretFirst>>::Proof, <Tx as EmbedCommitVerify<Commitment, OpretFirst>>::CommitError>

Creates a commitment to a message and embeds it into the provided container (self) by mutating it and returning commitment proof. Read more
Source§

fn verify( &self, msg: &Msg, proof: &Self::Proof, ) -> Result<(), EmbedVerifyError<Self::CommitError>>
where Self: VerifyEq, Self::Proof: VerifyEq,

Verifies commitment with commitment proof against the message. Read more
Source§

impl FromStr for Tx

Source§

type Err = BlockDataParseError

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

fn from_str(s: &str) -> Result<Tx, <Tx as FromStr>::Err>

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

impl Hash for Tx

Source§

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

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 LowerHex for Tx

Source§

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

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

impl PartialEq for Tx

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<D> PublishedWitness<TxoSeal<D>> for Tx
where D: Proof,

Source§

type PubId = Txid

Publication id that may be used for referencing publication of witness data in the medium. By default, set (), so SingleUseSeal may not implement publication id and related functions.
Source§

type Error = <D as Proof>::Error

Source§

fn pub_id(&self) -> Txid

Source§

fn verify_commitment( &self, proof: Proof<D>, ) -> Result<(), <Tx as PublishedWitness<TxoSeal<D>>>::Error>

Source§

impl Serialize for Tx

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StrictDecode for Tx

Source§

impl StrictDumb for Tx

Source§

impl StrictEncode for Tx

Source§

fn strict_encode<W>(&self, writer: W) -> Result<W, Error>
where W: TypedWrite,

Source§

fn strict_write(&self, writer: impl WriteRaw) -> Result<(), Error>

Source§

impl StrictStruct for Tx

Source§

impl StrictType for Tx

Source§

const STRICT_LIB_NAME: &'static str = LIB_NAME_BITCOIN

Source§

fn strict_name() -> Option<TypeName>

Source§

impl Weight for Tx

Source§

impl Eq for Tx

Source§

impl StrictProduct for Tx

Source§

impl StructuralPartialEq for Tx

Auto Trait Implementations§

§

impl Freeze for Tx

§

impl RefUnwindSafe for Tx

§

impl Send for Tx

§

impl Sync for Tx

§

impl Unpin for Tx

§

impl UnwindSafe for Tx

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

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

Source§

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

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

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

Source§

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

Source§

type Output = T

Should always be Self
Source§

impl<T> ToHex for T
where T: LowerHex,

Source§

fn to_hex(&self) -> String

Outputs the hash in hexadecimal form

Source§

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

Source§

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§

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>,

Source§

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>,

Source§

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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> VerifyEq for T
where T: Eq,

Source§

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

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

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,