Skip to main content

TransactionOutput

Struct TransactionOutput 

Source
pub struct TransactionOutput {
    pub satoshis: u64,
    pub locking_script: Script,
    pub change: bool,
}
Expand description

A single output in a BSV transaction.

Each output specifies a satoshi value and a locking_script (scriptPubKey) that defines the conditions under which the funds may be spent. The change flag is a local-only annotation used during fee calculation to identify outputs that should receive any leftover satoshis; it is not serialized.

§Wire format

FieldSize
satoshis8 bytes (LE)
script lengthVarInt
locking_scriptvariable

Fields§

§satoshis: u64

The number of satoshis (1 satoshi = 10^-8 BSV) locked by this output.

§locking_script: Script

The locking script (scriptPubKey) that defines spending conditions.

§change: bool

Local-only flag marking this output as a change output. Used by fee calculation; not serialized on the wire.

Implementations§

Source§

impl TransactionOutput

Source

pub fn new() -> Self

Create a new TransactionOutput with zero satoshis and an empty script.

§Returns

A default TransactionOutput.

Source

pub fn read_from(reader: &mut BsvReader<'_>) -> Result<Self, TransactionError>

Deserialize a TransactionOutput from a BsvReader.

Reads 8-byte LE satoshis, a varint script length, and the script bytes.

§Arguments
  • reader - The reader positioned at the start of an encoded output.
§Returns

Ok(TransactionOutput) on success, or a TransactionError if the data is truncated or malformed.

Source

pub fn write_to(&self, writer: &mut BsvWriter)

Serialize this TransactionOutput into a BsvWriter.

Writes 8-byte LE satoshis, a varint script length, and the script.

§Arguments
  • writer - The writer to append serialized bytes to.
Source

pub fn to_bytes(&self) -> Vec<u8>

Serialize this output to a byte vector.

§Returns

A Vec<u8> containing the wire-format bytes.

Source

pub fn bytes_for_sig_hash(&self) -> Vec<u8>

Serialize this output for use in signature hash computation.

The format is identical to to_bytes: satoshis(8) + varint(script_len) + script.

§Returns

A Vec<u8> containing the serialized output suitable for sighash.

Source

pub fn locking_script_hex(&self) -> String

Return the locking script as a hex-encoded string.

§Returns

A lowercase hex string of the locking script bytes.

Trait Implementations§

Source§

impl Clone for TransactionOutput

Source§

fn clone(&self) -> TransactionOutput

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for TransactionOutput

Source§

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

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

impl Default for TransactionOutput

Source§

fn default() -> Self

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

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

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

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Same for T

Source§

type Output = T

Should always be Self
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, 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