Enum TxOrdering

Source
pub enum TxOrdering {
    Shuffle,
    Untouched,
    Custom {
        input_sort: Arc<dyn Fn(&TxIn, &TxIn) -> Ordering + Send + Sync>,
        output_sort: Arc<dyn Fn(&TxOut, &TxOut) -> Ordering + Send + Sync>,
    },
}
Expand description

Ordering of the transaction’s inputs and outputs

Variants§

§

Shuffle

Randomized (default)

§

Untouched

Unchanged

Unchanged insertion order for recipients and for manually added UTXOs. This guarantees all recipients preserve insertion order in the transaction’s output vector and manually added UTXOs preserve insertion order in the transaction’s input vector, but does not make any guarantees about algorithmically selected UTXOs. However, by design they will always be placed after the manually selected ones.

§

Custom

Provide custom comparison functions for sorting

Fields

§input_sort: Arc<dyn Fn(&TxIn, &TxIn) -> Ordering + Send + Sync>

Transaction inputs sort function

§output_sort: Arc<dyn Fn(&TxOut, &TxOut) -> Ordering + Send + Sync>

Transaction outputs sort function

Implementations§

Source§

impl TxOrdering

Source

pub fn sort_tx(&self, tx: &mut Transaction)

Sort transaction inputs and outputs by TxOrdering variant.

Uses the thread-local random number generator (rng).

Source

pub fn sort_tx_with_aux_rand( &self, tx: &mut Transaction, rng: &mut impl RngCore, )

Sort transaction inputs and outputs by TxOrdering variant.

Uses a provided random number generator (rng).

Trait Implementations§

Source§

impl Clone for TxOrdering

Source§

fn clone(&self) -> TxOrdering

Returns a duplicate 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 TxOrdering

Source§

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

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

impl Default for TxOrdering

Source§

fn default() -> TxOrdering

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