mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-26 10:18:10 -07:00
global: snapshot
This commit is contained in:
@@ -57,11 +57,13 @@ impl Vecs {
|
||||
exit,
|
||||
)?;
|
||||
|
||||
// Skip coinbase (first tx per block) since it has no fee
|
||||
self.fee
|
||||
.derive_from(indexer, indexes, starting_indexes, exit)?;
|
||||
.derive_from_with_skip(indexer, indexes, starting_indexes, exit, 1)?;
|
||||
|
||||
// Skip coinbase (first tx per block) since it has no feerate
|
||||
self.fee_rate
|
||||
.derive_from(indexer, indexes, starting_indexes, exit)?;
|
||||
.derive_from_with_skip(indexer, indexes, starting_indexes, exit, 1)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -4,7 +4,10 @@ use brk_types::Version;
|
||||
use vecdb::{Database, EagerVec, ImportableVec};
|
||||
|
||||
use super::Vecs;
|
||||
use crate::{indexes, internal::{ComputedTxDistribution, ValueTxFull}, price};
|
||||
use crate::{indexes, internal::{ComputedFromTxDistribution, ValueFromTxFull}, price};
|
||||
|
||||
/// Bump this when fee/feerate aggregation logic changes (e.g., skip coinbase).
|
||||
const VERSION: Version = Version::ONE;
|
||||
|
||||
impl Vecs {
|
||||
pub fn forced_import(
|
||||
@@ -14,11 +17,12 @@ impl Vecs {
|
||||
indexes: &indexes::Vecs,
|
||||
price: Option<&price::Vecs>,
|
||||
) -> Result<Self> {
|
||||
let v = version + VERSION;
|
||||
Ok(Self {
|
||||
input_value: EagerVec::forced_import(db, "input_value", version)?,
|
||||
output_value: EagerVec::forced_import(db, "output_value", version)?,
|
||||
fee: ValueTxFull::forced_import(db, "fee", version, indexes, indexer, price)?,
|
||||
fee_rate: ComputedTxDistribution::forced_import(db, "fee_rate", version, indexes)?,
|
||||
fee: ValueFromTxFull::forced_import(db, "fee", v, indexes, indexer, price)?,
|
||||
fee_rate: ComputedFromTxDistribution::forced_import(db, "fee_rate", v, indexes)?,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ use brk_traversable::Traversable;
|
||||
use brk_types::{FeeRate, Sats, TxIndex};
|
||||
use vecdb::{EagerVec, PcoVec};
|
||||
|
||||
use crate::internal::{ComputedTxDistribution, ValueTxFull};
|
||||
use crate::internal::{ComputedFromTxDistribution, ValueFromTxFull};
|
||||
|
||||
#[derive(Clone, Traversable)]
|
||||
pub struct Vecs {
|
||||
pub input_value: EagerVec<PcoVec<TxIndex, Sats>>,
|
||||
pub output_value: EagerVec<PcoVec<TxIndex, Sats>>,
|
||||
pub fee: ValueTxFull,
|
||||
pub fee_rate: ComputedTxDistribution<FeeRate>,
|
||||
pub fee: ValueFromTxFull,
|
||||
pub fee_rate: ComputedFromTxDistribution<FeeRate>,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user