mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-04-27 08:09:58 -07:00
computer: snapshot
This commit is contained in:
@@ -67,8 +67,8 @@ pub(crate) fn process_blocks(
|
||||
|
||||
// From transactions and inputs/outputs (via .height or .height.sum_cumulative.sum patterns):
|
||||
let height_to_tx_count = &transactions.count.tx_count.height;
|
||||
let height_to_output_count = &outputs.count.total_count.height.sum_cumulative.sum.0;
|
||||
let height_to_input_count = &inputs.count.height.sum_cumulative.sum.0;
|
||||
let height_to_output_count = &outputs.count.total_count.full.sum_cumulative.sum.0;
|
||||
let height_to_input_count = &inputs.count.full.sum_cumulative.sum.0;
|
||||
// From blocks:
|
||||
let height_to_timestamp = &blocks.time.timestamp_monotonic;
|
||||
let height_to_date = &blocks.time.date;
|
||||
|
||||
@@ -10,7 +10,6 @@ use super::{CostBasisBase, CostBasisExtended};
|
||||
|
||||
/// Cost basis metrics with guaranteed extended (no Option).
|
||||
#[derive(Deref, DerefMut, Traversable)]
|
||||
#[traversable(merge)]
|
||||
pub struct CostBasisWithExtended<M: StorageMode = Rw> {
|
||||
#[deref]
|
||||
#[deref_mut]
|
||||
@@ -31,5 +30,4 @@ impl CostBasisWithExtended {
|
||||
pub(crate) fn validate_computed_versions(&mut self, base_version: Version) -> Result<()> {
|
||||
self.extended.validate_computed_versions(base_version)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ use super::{RealizedAdjusted, RealizedBase};
|
||||
|
||||
/// Realized metrics with guaranteed adjusted (no Option).
|
||||
#[derive(Deref, DerefMut, Traversable)]
|
||||
#[traversable(merge)]
|
||||
pub struct RealizedWithAdjusted<M: StorageMode = Rw> {
|
||||
#[deref]
|
||||
#[deref_mut]
|
||||
|
||||
@@ -12,7 +12,6 @@ use super::{RealizedBase, RealizedExtended};
|
||||
|
||||
/// Realized metrics with guaranteed extended (no Option).
|
||||
#[derive(Deref, DerefMut, Traversable)]
|
||||
#[traversable(merge)]
|
||||
pub struct RealizedWithExtended<M: StorageMode = Rw> {
|
||||
#[deref]
|
||||
#[deref_mut]
|
||||
|
||||
@@ -12,7 +12,6 @@ use super::{RealizedAdjusted, RealizedBase, RealizedExtended};
|
||||
|
||||
/// Realized metrics with guaranteed extended AND adjusted (no Options).
|
||||
#[derive(Deref, DerefMut, Traversable)]
|
||||
#[traversable(merge)]
|
||||
pub struct RealizedWithExtendedAdjusted<M: StorageMode = Rw> {
|
||||
#[deref]
|
||||
#[deref_mut]
|
||||
|
||||
@@ -10,7 +10,6 @@ use super::{RelativeBase, RelativeExtendedOwnPnl, RelativePeakRegret};
|
||||
|
||||
/// Relative metrics for the "all" cohort (base + own_pnl + peak_regret, NO rel_to_all).
|
||||
#[derive(Deref, DerefMut, Traversable)]
|
||||
#[traversable(merge)]
|
||||
pub struct RelativeForAll<M: StorageMode = Rw> {
|
||||
#[deref]
|
||||
#[deref_mut]
|
||||
|
||||
@@ -7,14 +7,13 @@ use vecdb::{Exit, ReadableVec, Rw, StorageMode};
|
||||
use crate::distribution::metrics::{ImportConfig, RealizedBase, UnrealizedBase};
|
||||
|
||||
use super::{
|
||||
RelativeBase, RelativeExtendedOwnMarketCap, RelativeExtendedOwnPnl,
|
||||
RelativePeakRegret, RelativeToAll,
|
||||
RelativeBase, RelativeExtendedOwnMarketCap, RelativeExtendedOwnPnl, RelativePeakRegret,
|
||||
RelativeToAll,
|
||||
};
|
||||
|
||||
/// Full extended relative metrics (base + rel_to_all + own_market_cap + own_pnl + peak_regret).
|
||||
/// Used by: sth, lth, age_range cohorts.
|
||||
#[derive(Deref, DerefMut, Traversable)]
|
||||
#[traversable(merge)]
|
||||
pub struct RelativeWithExtended<M: StorageMode = Rw> {
|
||||
#[deref]
|
||||
#[deref_mut]
|
||||
@@ -54,11 +53,26 @@ impl RelativeWithExtended {
|
||||
peak_regret_val: &impl ReadableVec<Height, Dollars>,
|
||||
exit: &Exit,
|
||||
) -> Result<()> {
|
||||
self.base.compute(max_from, unrealized, realized, supply_total_sats, market_cap, exit)?;
|
||||
self.rel_to_all.compute(max_from, unrealized, supply_total_sats, all_supply_sats, exit)?;
|
||||
self.extended_own_market_cap.compute(max_from, unrealized, own_market_cap, exit)?;
|
||||
self.base.compute(
|
||||
max_from,
|
||||
unrealized,
|
||||
realized,
|
||||
supply_total_sats,
|
||||
market_cap,
|
||||
exit,
|
||||
)?;
|
||||
self.rel_to_all.compute(
|
||||
max_from,
|
||||
unrealized,
|
||||
supply_total_sats,
|
||||
all_supply_sats,
|
||||
exit,
|
||||
)?;
|
||||
self.extended_own_market_cap
|
||||
.compute(max_from, unrealized, own_market_cap, exit)?;
|
||||
self.extended_own_pnl.compute(max_from, unrealized, exit)?;
|
||||
self.peak_regret.compute(max_from, peak_regret_val, market_cap, exit)?;
|
||||
self.peak_regret
|
||||
.compute(max_from, peak_regret_val, market_cap, exit)?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ use super::{RelativeBase, RelativePeakRegret, RelativeToAll};
|
||||
/// Relative metrics with rel_to_all + peak_regret (no extended).
|
||||
/// Used by: max_age, min_age cohorts.
|
||||
#[derive(Deref, DerefMut, Traversable)]
|
||||
#[traversable(merge)]
|
||||
pub struct RelativeWithPeakRegret<M: StorageMode = Rw> {
|
||||
#[deref]
|
||||
#[deref_mut]
|
||||
|
||||
@@ -11,7 +11,6 @@ use super::{RelativeBase, RelativeToAll};
|
||||
/// Relative metrics with rel_to_all (no extended, no peak_regret).
|
||||
/// Used by: epoch, year, type, amount, address cohorts.
|
||||
#[derive(Deref, DerefMut, Traversable)]
|
||||
#[traversable(merge)]
|
||||
pub struct RelativeWithRelToAll<M: StorageMode = Rw> {
|
||||
#[deref]
|
||||
#[deref_mut]
|
||||
|
||||
@@ -9,7 +9,6 @@ use super::{UnrealizedBase, UnrealizedPeakRegret};
|
||||
|
||||
/// Unrealized metrics with guaranteed peak regret (no Option).
|
||||
#[derive(Deref, DerefMut, Traversable)]
|
||||
#[traversable(merge)]
|
||||
pub struct UnrealizedWithPeakRegret<M: StorageMode = Rw> {
|
||||
#[deref]
|
||||
#[deref_mut]
|
||||
@@ -26,5 +25,4 @@ impl UnrealizedWithPeakRegret {
|
||||
peak_regret_ext: UnrealizedPeakRegret::forced_import(cfg)?,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user