Struct bitcoin_block_parser::utxos::UtxoBlock
source · pub struct UtxoBlock {
pub block: Block,
/* private fields */
}
Expand description
Contains a block that has been parsed with frequently needed UTXO information
Fields§
§block: Block
Underlying parsed block from bitcoin::Block
Implementations§
source§impl UtxoBlock
impl UtxoBlock
sourcepub fn transactions(&self) -> Zip<Iter<'_, Transaction>, Iter<'_, Txid>>
pub fn transactions(&self) -> Zip<Iter<'_, Transaction>, Iter<'_, Txid>>
Return all Transaction
with Txid
already calculated
sourcepub fn output_status(&self, txid: &Txid) -> &Vec<OutStatus>
pub fn output_status(&self, txid: &Txid) -> &Vec<OutStatus>
Given a tx in this block, return the in-order list of whether the output was spent/unspent
sourcepub fn input_amount(&self, txid: &Txid) -> &Vec<Amount>
pub fn input_amount(&self, txid: &Txid) -> &Vec<Amount>
Given a tx in this block, return the in-order list of the input amounts
Trait Implementations§
source§impl BlockParser<UtxoBlock, UtxoBlock> for UtxoParser
impl BlockParser<UtxoBlock, UtxoBlock> for UtxoParser
source§fn extract(&self, block: Block) -> Option<UtxoBlock>
fn extract(&self, block: Block) -> Option<UtxoBlock>
We try to perform as much computation as possible here where block order doesn’t matter because we benefit from multithreading.
source§fn options() -> Options
fn options() -> Options
In order to track UTXO amounts we must process blocks in-order
We reduce the number of threads to reduce memory usage.
If you run into memory issues try lowering num_threads
further or the buffer_size
source§fn batch(&self, items: Vec<UtxoBlock>) -> Vec<UtxoBlock>
fn batch(&self, items: Vec<UtxoBlock>) -> Vec<UtxoBlock>
Runs on batches of the
BlockParser::extract
to return the final results. Read moresource§fn parse(&self, headers: &[ParsedHeader]) -> Receiver<Result<C>>
fn parse(&self, headers: &[ParsedHeader]) -> Receiver<Result<C>>
Parse all the blocks represented by the headers.
source§fn parse_ordered(&self, headers: &[ParsedHeader]) -> Receiver<Result<C>>
fn parse_ordered(&self, headers: &[ParsedHeader]) -> Receiver<Result<C>>
Parse all the blocks represented by the headers, ensuring the results
C
are returned
in the same order the ParsedHeader
were passed in. Read moresource§fn parse_with_opts(
&self,
headers: &[ParsedHeader],
opts: Options,
) -> Receiver<Result<C>>
fn parse_with_opts( &self, headers: &[ParsedHeader], opts: Options, ) -> Receiver<Result<C>>
Allows users to pass in custom
Options
in case they need to reduce memory usage or
otherwise tune performance for their system.impl Eq for UtxoBlock
impl StructuralPartialEq for UtxoBlock
Auto Trait Implementations§
impl Freeze for UtxoBlock
impl RefUnwindSafe for UtxoBlock
impl Send for UtxoBlock
impl Sync for UtxoBlock
impl Unpin for UtxoBlock
impl UnwindSafe for UtxoBlock
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)