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> for UtxoParser
impl BlockParser<UtxoBlock> for UtxoParser
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 extract(&self, block: Block) -> Vec<UtxoBlock>
fn extract(&self, block: Block) -> Vec<UtxoBlock>
Extracts the data you need from the block. Read more
Source§fn batch(&self, items: Vec<UtxoBlock>) -> Vec<UtxoBlock>
fn batch(&self, items: Vec<UtxoBlock>) -> Vec<UtxoBlock>
Runs on batches of
B
to return the final results, blocks will be in-order if
Options::order_output
has been set. Read moreSource§fn parse(&self, headers: &[ParsedHeader]) -> Receiver<Result<B>>
fn parse(&self, headers: &[ParsedHeader]) -> Receiver<Result<B>>
Parse all the blocks represented by the headers.
Source§fn parse_dir(&self, blocks: &str) -> Result<Receiver<Result<B>>>
fn parse_dir(&self, blocks: &str) -> Result<Receiver<Result<B>>>
Parse all the blocks located in the
blocks
directorySource§fn parse_map<C: Send + 'static>(
&self,
headers: &[ParsedHeader],
map: fn(_: B) -> C,
) -> Receiver<Result<C>>
fn parse_map<C: Send + 'static>( &self, headers: &[ParsedHeader], map: fn(_: B) -> C, ) -> Receiver<Result<C>>
Parse the blocks and then perform the
map
function.
Use when performing expensive post-processing for a large speed-up.
The mapping will occur after BlockParser::batch
, keeping the ordering.Source§fn parse_with_opts(
&self,
headers: &[ParsedHeader],
opts: Options,
) -> Receiver<Result<B>>
fn parse_with_opts( &self, headers: &[ParsedHeader], opts: Options, ) -> Receiver<Result<B>>
Allows users to pass in custom
Options
in case they need to reduce memory usage or
otherwise tune performance for their system. Users should call BlockParser::options
to get the default options associated with the parser first.Source§fn parse_with_opts_map<C: Send + 'static>(
&self,
headers: &[ParsedHeader],
opts: Options,
map: fn(_: B) -> C,
) -> Receiver<Result<C>>
fn parse_with_opts_map<C: Send + 'static>( &self, headers: &[ParsedHeader], opts: Options, map: fn(_: B) -> C, ) -> Receiver<Result<C>>
Pass in custom
Options
and a map
function.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
)