[][src]Struct grin_chain::txhashset::UTXOView

pub struct UTXOView<'a> { /* fields omitted */ }

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

Methods

impl<'a> UTXOView<'a>[src]

pub fn new(
    output_pmmr: ReadonlyPMMR<'a, Output, PMMRBackend<Output>>,
    header_pmmr: ReadonlyPMMR<'a, BlockHeader, PMMRBackend<BlockHeader>>,
    batch: &'a Batch
) -> UTXOView<'a>
[src]

Build a new UTXO view.

pub fn validate_block(&self, block: &Block) -> Result<(), Error>[src]

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

pub fn validate_tx(&self, tx: &Transaction) -> Result<(), Error>[src]

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

pub fn verify_coinbase_maturity(
    &self,
    inputs: &Vec<Input>,
    height: u64
) -> Result<(), Error>
[src]

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

pub fn get_header_by_height(&self, height: u64) -> Result<BlockHeader, Error>[src]

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> !Send for UTXOView<'a>

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

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

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

impl<T> UnsafeAny for T where
    T: Any

impl<T> Erased for T

impl<T> Same for T

type Output = T

Should always be Self