Struct UTXOView

Source
pub struct UTXOView<'a> { /* private fields */ }
Expand description

Readonly view of the UTXO set (based on output MMR).

Implementations§

Source§

impl<'a> UTXOView<'a>

Source

pub fn new( header_pmmr: ReadonlyPMMR<'a, BlockHeader, PMMRBackend<BlockHeader>>, output_pmmr: ReadonlyPMMR<'a, OutputIdentifier, PMMRBackend<OutputIdentifier>>, rproof_pmmr: ReadonlyPMMR<'a, RangeProof, PMMRBackend<RangeProof>>, ) -> UTXOView<'a>

Build a new UTXO view.

Source

pub fn validate_block( &self, block: &Block, batch: &Batch<'_>, ) -> Result<Vec<(OutputIdentifier, CommitPos)>, Error>

Validate a block against the current UTXO set. Every input must spend an output that currently exists in the UTXO set. No duplicate outputs.

Source

pub fn validate_tx( &self, tx: &Transaction, batch: &Batch<'_>, ) -> Result<Vec<(OutputIdentifier, CommitPos)>, Error>

Validate a transaction against the current UTXO set. Every input must spend an output that currently exists in the UTXO set. No duplicate outputs.

Source

pub fn validate_inputs( &self, inputs: &Inputs, batch: &Batch<'_>, ) -> Result<Vec<(OutputIdentifier, CommitPos)>, Error>

Validate the provided inputs. Returns a vec of output identifiers corresponding to outputs that would be spent by the provided inputs.

Source

pub fn get_unspent_output_at(&self, pos0: u64) -> Result<Output, Error>

Retrieves an unspent output using its PMMR position

Source

pub fn verify_coinbase_maturity( &self, inputs: &Inputs, height: u64, batch: &Batch<'_>, ) -> Result<(), Error>

Verify we are not attempting to spend any coinbase outputs that have not sufficiently matured.

Source

pub fn get_header_by_height( &self, height: u64, batch: &Batch<'_>, ) -> Result<BlockHeader, Error>

Get the header at the specified height based on the current state of the extension. Derives the MMR pos from the height (insertion index) and retrieves the header hash. Looks the header up in the db by hash.

Auto Trait Implementations§

§

impl<'a> Freeze for UTXOView<'a>

§

impl<'a> RefUnwindSafe for UTXOView<'a>

§

impl<'a> Send for UTXOView<'a>

§

impl<'a> Sync for UTXOView<'a>

§

impl<'a> Unpin for UTXOView<'a>

§

impl<'a> UnwindSafe for UTXOView<'a>

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> SafeBorrow<T> for T
where T: ?Sized,

Source§

fn borrow_replacement(ptr: &T) -> &T

Given ptr, which was obtained from a prior call to Self::borrow(), return a value with the same nominal lifetime which is guaranteed to survive mutations to Self. Read more
Source§

impl<T> Same for T

Source§

type Output = T

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