diff --git a/crates/brk_bindgen/src/analysis/positions.rs b/crates/brk_bindgen/src/analysis/positions.rs index e2a7c18a8..9477d069f 100644 --- a/crates/brk_bindgen/src/analysis/positions.rs +++ b/crates/brk_bindgen/src/analysis/positions.rs @@ -151,7 +151,7 @@ fn fill_mixed_empty_field_parts( && let Some(suffix) = leaf.strip_prefix(&prefix) && !suffix.is_empty() && suffix.contains(field_name.trim_start_matches('_')) - && suffix.len() > field_name.trim_start_matches('_').len() + && suffix.len() >= field_name.trim_start_matches('_').len() { updates.push((field_name.clone(), suffix.to_string())); } @@ -485,19 +485,21 @@ fn determine_pattern_mode( ) -> Option { analyses.first()?; - // If any instance has outlier naming (no common prefix/suffix among children), - // the pattern can't be parameterized. - if analyses.iter().any(|a| a.has_outlier) { + // Filter out outlier instances — they'll be inlined individually at generation + // time via the per-instance has_outlier check in prepare_tree_node. + // Don't let a single outlier poison the entire pattern. + let non_outlier: Vec<&InstanceAnalysis> = analyses.iter().filter(|a| !a.has_outlier).collect(); + if non_outlier.is_empty() { return None; } // Pick the majority mode - let suffix_count = analyses.iter().filter(|a| a.is_suffix_mode).count(); - let is_suffix = suffix_count * 2 >= analyses.len(); + let suffix_count = non_outlier.iter().filter(|a| a.is_suffix_mode).count(); + let is_suffix = suffix_count * 2 >= non_outlier.len(); // All instances of the majority mode must agree on field_parts - let majority: Vec<_> = analyses - .iter() + let majority: Vec<&InstanceAnalysis> = non_outlier + .into_iter() .filter(|a| a.is_suffix_mode == is_suffix) .collect(); let first_majority = majority.first()?; diff --git a/crates/brk_bindgen/src/generators/python/tree.rs b/crates/brk_bindgen/src/generators/python/tree.rs index 80fd04f0b..582de8dd5 100644 --- a/crates/brk_bindgen/src/generators/python/tree.rs +++ b/crates/brk_bindgen/src/generators/python/tree.rs @@ -68,6 +68,10 @@ fn generate_tree_class( ) .unwrap(); + if ctx.children.is_empty() { + writeln!(output, " pass").unwrap(); + } + let syntax = PythonSyntax; for child in &ctx.children { if child.is_leaf { diff --git a/crates/brk_client/src/lib.rs b/crates/brk_client/src/lib.rs index b3a92a31a..429028a04 100644 --- a/crates/brk_client/src/lib.rs +++ b/crates/brk_client/src/lib.rs @@ -1134,6 +1134,25 @@ pub struct AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern { pub sum: _1m1w1y24hPattern, } +impl AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + average: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "average")), + base: SeriesPattern18::new(client.clone(), acc.clone()), + cumulative: SeriesPattern1::new(client.clone(), _m(&acc, "cumulative")), + max: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "max")), + median: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "median")), + min: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "min")), + pct10: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "pct10")), + pct25: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "pct25")), + pct75: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "pct75")), + pct90: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "pct90")), + sum: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "sum")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern3 { pub all: SeriesPattern1, @@ -1207,6 +1226,23 @@ pub struct GrossInvestedInvestorLossNetNuplProfitSentimentPattern2 { pub sentiment: GreedNetPainPattern, } +impl GrossInvestedInvestorLossNetNuplProfitSentimentPattern2 { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + gross_pnl: CentsUsdPattern3::new(client.clone(), _m(&acc, "unrealized_gross_pnl")), + invested_capital: InPattern::new(client.clone(), _m(&acc, "invested_capital_in")), + investor_cap_in_loss_raw: SeriesPattern18::new(client.clone(), _m(&acc, "investor_cap_in_loss_raw")), + investor_cap_in_profit_raw: SeriesPattern18::new(client.clone(), _m(&acc, "investor_cap_in_profit_raw")), + loss: CentsNegativeToUsdPattern2::new(client.clone(), _m(&acc, "unrealized_loss")), + net_pnl: CentsToUsdPattern3::new(client.clone(), _m(&acc, "net_unrealized_pnl")), + nupl: BpsRatioPattern::new(client.clone(), _m(&acc, "nupl")), + profit: CentsToUsdPattern4::new(client.clone(), _m(&acc, "unrealized_profit")), + sentiment: GreedNetPainPattern::new(client.clone(), acc.clone()), + } + } +} + /// Pattern struct for repeated tree structure. pub struct BpsCentsPercentilesRatioSatsSmaStdUsdPattern { pub bps: SeriesPattern1, @@ -1308,6 +1344,21 @@ pub struct InMaxMinPerSupplyPattern { pub supply_density: BpsPercentRatioPattern3, } +impl InMaxMinPerSupplyPattern { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + in_loss: PerPattern::new(client.clone(), _m(&acc, "cost_basis_in_loss_per")), + in_profit: PerPattern::new(client.clone(), _m(&acc, "cost_basis_in_profit_per")), + max: CentsSatsUsdPattern::new(client.clone(), _m(&acc, "cost_basis_max")), + min: CentsSatsUsdPattern::new(client.clone(), _m(&acc, "cost_basis_min")), + per_coin: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern::new(client.clone(), _m(&acc, "cost_basis_per_coin")), + per_dollar: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern::new(client.clone(), _m(&acc, "cost_basis_per_dollar")), + supply_density: BpsPercentRatioPattern3::new(client.clone(), _m(&acc, "supply_density")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct MaxMedianMinPct10Pct25Pct75Pct90Pattern2 { pub max: SeriesPattern18, @@ -1394,6 +1445,20 @@ pub struct ActivityAddrOutputsRealizedSupplyUnrealizedPattern { pub unrealized: NuplPattern, } +impl ActivityAddrOutputsRealizedSupplyUnrealizedPattern { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + activity: TransferPattern::new(client.clone(), _m(&acc, "transfer_volume")), + addr_count: BaseDeltaPattern::new(client.clone(), _m(&acc, "addr_count")), + outputs: SpendingSpentUnspentPattern::new(client.clone(), acc.clone()), + realized: CapLossMvrvPriceProfitPattern::new(client.clone(), acc.clone()), + supply: DeltaTotalPattern::new(client.clone(), _m(&acc, "supply")), + unrealized: NuplPattern::new(client.clone(), _m(&acc, "nupl")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct AverageBlockCumulativeInSumPattern { pub average: _1m1w1y24hPattern3, @@ -1593,6 +1658,19 @@ pub struct ActivityOutputsRealizedSupplyUnrealizedPattern { pub unrealized: LossNetNuplProfitPattern, } +impl ActivityOutputsRealizedSupplyUnrealizedPattern { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + activity: CoindaysTransferPattern::new(client.clone(), acc.clone()), + outputs: SpendingSpentUnspentPattern::new(client.clone(), acc.clone()), + realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), acc.clone()), + supply: DeltaHalfInToTotalPattern::new(client.clone(), _m(&acc, "supply")), + unrealized: LossNetNuplProfitPattern::new(client.clone(), acc.clone()), + } + } +} + /// Pattern struct for repeated tree structure. pub struct ActivityOutputsRealizedSupplyUnrealizedPattern3 { pub activity: TransferPattern, @@ -1602,6 +1680,19 @@ pub struct ActivityOutputsRealizedSupplyUnrealizedPattern3 { pub unrealized: LossNuplProfitPattern, } +impl ActivityOutputsRealizedSupplyUnrealizedPattern3 { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + activity: TransferPattern::new(client.clone(), _m(&acc, "transfer_volume")), + outputs: SpendingSpentUnspentPattern::new(client.clone(), acc.clone()), + realized: CapLossMvrvPriceProfitPattern::new(client.clone(), acc.clone()), + supply: DeltaHalfInTotalPattern2::new(client.clone(), _m(&acc, "supply")), + unrealized: LossNuplProfitPattern::new(client.clone(), acc.clone()), + } + } +} + /// Pattern struct for repeated tree structure. pub struct ActivityOutputsRealizedSupplyUnrealizedPattern2 { pub activity: TransferPattern, @@ -1611,6 +1702,19 @@ pub struct ActivityOutputsRealizedSupplyUnrealizedPattern2 { pub unrealized: NuplPattern, } +impl ActivityOutputsRealizedSupplyUnrealizedPattern2 { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + activity: TransferPattern::new(client.clone(), _m(&acc, "transfer_volume")), + outputs: SpendingSpentUnspentPattern::new(client.clone(), acc.clone()), + realized: CapLossMvrvPriceProfitPattern::new(client.clone(), acc.clone()), + supply: DeltaTotalPattern::new(client.clone(), _m(&acc, "supply")), + unrealized: NuplPattern::new(client.clone(), _m(&acc, "nupl")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct BlockChangeCumulativeDeltaSumPattern { pub block: CentsUsdPattern4, @@ -2174,6 +2278,18 @@ pub struct CoindaysCoinyearsDormancyTransferPattern { pub transfer_volume: AverageBlockCumulativeInSumPattern, } +impl CoindaysCoinyearsDormancyTransferPattern { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + coindays_destroyed: AverageBlockCumulativeSumPattern::new(client.clone(), _m(&acc, "coindays_destroyed")), + coinyears_destroyed: SeriesPattern1::new(client.clone(), _m(&acc, "coinyears_destroyed")), + dormancy: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "dormancy")), + transfer_volume: AverageBlockCumulativeInSumPattern::new(client.clone(), _m(&acc, "transfer_volume")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct LossNetNuplProfitPattern { pub loss: CentsNegativeUsdPattern, @@ -2207,9 +2323,9 @@ impl NuplRealizedSupplyUnrealizedPattern { pub fn new(client: Arc, acc: String) -> Self { Self { nupl: BpsRatioPattern::new(client.clone(), _m(&acc, "nupl")), - realized_cap: AllSthPattern::new(client.clone(), acc.clone(), String::new()), + realized_cap: AllSthPattern::new(client.clone(), acc.clone(), "realized_cap".to_string()), supply: AllSthPattern2::new(client.clone(), acc.clone()), - unrealized_pnl: AllSthPattern::new(client.clone(), acc.clone(), String::new()), + unrealized_pnl: AllSthPattern::new(client.clone(), acc.clone(), "unrealized_pnl".to_string()), } } } @@ -2261,6 +2377,17 @@ pub struct AdjustedRatioValuePattern { pub value_destroyed: AverageBlockCumulativeSumPattern, } +impl AdjustedRatioValuePattern { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + adjusted: RatioTransferValuePattern::new(client.clone(), acc.clone()), + ratio: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "sopr")), + value_destroyed: AverageBlockCumulativeSumPattern::new(client.clone(), _m(&acc, "value_destroyed")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct BlockCumulativeSumPattern { pub block: CentsUsdPattern2, @@ -2484,6 +2611,17 @@ pub struct GreedNetPainPattern { pub pain_index: CentsUsdPattern3, } +impl GreedNetPainPattern { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + greed_index: CentsUsdPattern3::new(client.clone(), _m(&acc, "greed_index")), + net: CentsUsdPattern::new(client.clone(), _m(&acc, "net_sentiment")), + pain_index: CentsUsdPattern3::new(client.clone(), _m(&acc, "pain_index")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct LossNuplProfitPattern { pub loss: CentsNegativeUsdPattern, @@ -2509,6 +2647,17 @@ pub struct RatioTransferValuePattern { pub value_destroyed: AverageBlockCumulativeSumPattern, } +impl RatioTransferValuePattern { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + ratio: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "asopr")), + transfer_volume: AverageBlockCumulativeSumPattern::new(client.clone(), _m(&acc, "adj_value_created")), + value_destroyed: AverageBlockCumulativeSumPattern::new(client.clone(), _m(&acc, "adj_value_destroyed")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct RsiStochPattern { pub rsi: BpsPercentRatioPattern3, @@ -2534,6 +2683,17 @@ pub struct SpendingSpentUnspentPattern { pub unspent_count: BaseDeltaPattern, } +impl SpendingSpentUnspentPattern { + /// Create a new pattern node with accumulated series name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + spending_rate: SeriesPattern1::new(client.clone(), _m(&acc, "spending_rate")), + spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "spent_utxo_count")), + unspent_count: BaseDeltaPattern::new(client.clone(), _m(&acc, "utxo_count")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct _6bBlockTxPattern { pub _6b: MaxMedianMinPct10Pct25Pct75Pct90Pattern, @@ -3003,7 +3163,7 @@ pub struct SeriesTree_Blocks { pub difficulty: SeriesTree_Blocks_Difficulty, pub time: SeriesTree_Blocks_Time, pub size: SeriesTree_Blocks_Size, - pub weight: SeriesTree_Blocks_Weight, + pub weight: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern, pub count: SeriesTree_Blocks_Count, pub lookback: SeriesTree_Blocks_Lookback, pub interval: SeriesTree_Blocks_Interval, @@ -3019,7 +3179,7 @@ impl SeriesTree_Blocks { difficulty: SeriesTree_Blocks_Difficulty::new(client.clone(), format!("{base_path}_difficulty")), time: SeriesTree_Blocks_Time::new(client.clone(), format!("{base_path}_time")), size: SeriesTree_Blocks_Size::new(client.clone(), format!("{base_path}_size")), - weight: SeriesTree_Blocks_Weight::new(client.clone(), format!("{base_path}_weight")), + weight: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern::new(client.clone(), "block_weight".to_string()), count: SeriesTree_Blocks_Count::new(client.clone(), format!("{base_path}_count")), lookback: SeriesTree_Blocks_Lookback::new(client.clone(), format!("{base_path}_lookback")), interval: SeriesTree_Blocks_Interval::new(client.clone(), format!("{base_path}_interval")), @@ -3103,39 +3263,6 @@ impl SeriesTree_Blocks_Size { } } -/// Series tree node. -pub struct SeriesTree_Blocks_Weight { - pub base: SeriesPattern18, - pub cumulative: SeriesPattern1, - pub sum: _1m1w1y24hPattern, - pub average: _1m1w1y24hPattern, - pub min: _1m1w1y24hPattern, - pub max: _1m1w1y24hPattern, - pub pct10: _1m1w1y24hPattern, - pub pct25: _1m1w1y24hPattern, - pub median: _1m1w1y24hPattern, - pub pct75: _1m1w1y24hPattern, - pub pct90: _1m1w1y24hPattern, -} - -impl SeriesTree_Blocks_Weight { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - base: SeriesPattern18::new(client.clone(), "block_weight".to_string()), - cumulative: SeriesPattern1::new(client.clone(), "block_weight_cumulative".to_string()), - sum: _1m1w1y24hPattern::new(client.clone(), "block_weight_sum".to_string()), - average: _1m1w1y24hPattern::new(client.clone(), "block_weight_average".to_string()), - min: _1m1w1y24hPattern::new(client.clone(), "block_weight_min".to_string()), - max: _1m1w1y24hPattern::new(client.clone(), "block_weight_max".to_string()), - pct10: _1m1w1y24hPattern::new(client.clone(), "block_weight_pct10".to_string()), - pct25: _1m1w1y24hPattern::new(client.clone(), "block_weight_pct25".to_string()), - median: _1m1w1y24hPattern::new(client.clone(), "block_weight_median".to_string()), - pct75: _1m1w1y24hPattern::new(client.clone(), "block_weight_pct75".to_string()), - pct90: _1m1w1y24hPattern::new(client.clone(), "block_weight_pct90".to_string()), - } - } -} - /// Series tree node. pub struct SeriesTree_Blocks_Count { pub target: _1m1w1y24hPattern, @@ -4199,15 +4326,11 @@ impl SeriesTree_Mining_Hashrate_Rate_Sma { /// Series tree node. pub struct SeriesTree_Positions { - pub block: SeriesPattern18, - pub tx: SeriesPattern19, } impl SeriesTree_Positions { pub fn new(client: Arc, base_path: String) -> Self { Self { - block: SeriesPattern18::new(client.clone(), "position".to_string()), - tx: SeriesPattern19::new(client.clone(), "position".to_string()), } } } @@ -6772,58 +6895,22 @@ impl SeriesTree_Cohorts_Utxo_All_Unrealized_Sentiment { /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_Sth { pub supply: DeltaHalfInToTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Sth_Outputs, - pub activity: SeriesTree_Cohorts_Utxo_Sth_Activity, + pub outputs: SpendingSpentUnspentPattern, + pub activity: CoindaysCoinyearsDormancyTransferPattern, pub realized: SeriesTree_Cohorts_Utxo_Sth_Realized, - pub cost_basis: SeriesTree_Cohorts_Utxo_Sth_CostBasis, - pub unrealized: SeriesTree_Cohorts_Utxo_Sth_Unrealized, + pub cost_basis: InMaxMinPerSupplyPattern, + pub unrealized: GrossInvestedInvestorLossNetNuplProfitSentimentPattern2, } impl SeriesTree_Cohorts_Utxo_Sth { pub fn new(client: Arc, base_path: String) -> Self { Self { supply: DeltaHalfInToTotalPattern2::new(client.clone(), "sth_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Sth_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: SeriesTree_Cohorts_Utxo_Sth_Activity::new(client.clone(), format!("{base_path}_activity")), + outputs: SpendingSpentUnspentPattern::new(client.clone(), "sth".to_string()), + activity: CoindaysCoinyearsDormancyTransferPattern::new(client.clone(), "sth".to_string()), realized: SeriesTree_Cohorts_Utxo_Sth_Realized::new(client.clone(), format!("{base_path}_realized")), - cost_basis: SeriesTree_Cohorts_Utxo_Sth_CostBasis::new(client.clone(), format!("{base_path}_cost_basis")), - unrealized: SeriesTree_Cohorts_Utxo_Sth_Unrealized::new(client.clone(), format!("{base_path}_unrealized")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Sth_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Sth_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "sth_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "sth_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "sth_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Sth_Activity { - pub transfer_volume: AverageBlockCumulativeInSumPattern, - pub coindays_destroyed: AverageBlockCumulativeSumPattern, - pub coinyears_destroyed: SeriesPattern1, - pub dormancy: _1m1w1y24hPattern, -} - -impl SeriesTree_Cohorts_Utxo_Sth_Activity { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - transfer_volume: AverageBlockCumulativeInSumPattern::new(client.clone(), "sth_transfer_volume".to_string()), - coindays_destroyed: AverageBlockCumulativeSumPattern::new(client.clone(), "sth_coindays_destroyed".to_string()), - coinyears_destroyed: SeriesPattern1::new(client.clone(), "sth_coinyears_destroyed".to_string()), - dormancy: _1m1w1y24hPattern::new(client.clone(), "sth_dormancy".to_string()), + cost_basis: InMaxMinPerSupplyPattern::new(client.clone(), "sth".to_string()), + unrealized: GrossInvestedInvestorLossNetNuplProfitSentimentPattern2::new(client.clone(), "sth".to_string()), } } } @@ -6836,7 +6923,7 @@ pub struct SeriesTree_Cohorts_Utxo_Sth_Realized { pub price: SeriesTree_Cohorts_Utxo_Sth_Realized_Price, pub mvrv: SeriesPattern1, pub net_pnl: BlockChangeCumulativeDeltaSumPattern, - pub sopr: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr, + pub sopr: AdjustedRatioValuePattern, pub gross_pnl: BlockCumulativeSumPattern, pub sell_side_risk_ratio: _1m1w1y24hPattern7, pub peak_regret: BlockCumulativeSumPattern, @@ -6853,7 +6940,7 @@ impl SeriesTree_Cohorts_Utxo_Sth_Realized { price: SeriesTree_Cohorts_Utxo_Sth_Realized_Price::new(client.clone(), format!("{base_path}_price")), mvrv: SeriesPattern1::new(client.clone(), "sth_mvrv".to_string()), net_pnl: BlockChangeCumulativeDeltaSumPattern::new(client.clone(), "sth_net".to_string()), - sopr: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr::new(client.clone(), format!("{base_path}_sopr")), + sopr: AdjustedRatioValuePattern::new(client.clone(), "sth".to_string()), gross_pnl: BlockCumulativeSumPattern::new(client.clone(), "sth_realized_gross_pnl".to_string()), sell_side_risk_ratio: _1m1w1y24hPattern7::new(client.clone(), "sth_sell_side_risk_ratio".to_string()), peak_regret: BlockCumulativeSumPattern::new(client.clone(), "sth_realized_peak_regret".to_string()), @@ -7073,166 +7160,25 @@ impl SeriesTree_Cohorts_Utxo_Sth_Realized_Price_StdDev_1y { } } -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr { - pub value_destroyed: AverageBlockCumulativeSumPattern, - pub ratio: _1m1w1y24hPattern, - pub adjusted: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr_Adjusted, -} - -impl SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - value_destroyed: AverageBlockCumulativeSumPattern::new(client.clone(), "sth_value_destroyed".to_string()), - ratio: _1m1w1y24hPattern::new(client.clone(), "sth_sopr".to_string()), - adjusted: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr_Adjusted::new(client.clone(), format!("{base_path}_adjusted")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr_Adjusted { - pub ratio: _1m1w1y24hPattern, - pub transfer_volume: AverageBlockCumulativeSumPattern, - pub value_destroyed: AverageBlockCumulativeSumPattern, -} - -impl SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr_Adjusted { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - ratio: _1m1w1y24hPattern::new(client.clone(), "sth_asopr".to_string()), - transfer_volume: AverageBlockCumulativeSumPattern::new(client.clone(), "sth_adj_value_created".to_string()), - value_destroyed: AverageBlockCumulativeSumPattern::new(client.clone(), "sth_adj_value_destroyed".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Sth_CostBasis { - pub in_profit: PerPattern, - pub in_loss: PerPattern, - pub min: CentsSatsUsdPattern, - pub max: CentsSatsUsdPattern, - pub per_coin: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern, - pub per_dollar: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern, - pub supply_density: BpsPercentRatioPattern3, -} - -impl SeriesTree_Cohorts_Utxo_Sth_CostBasis { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - in_profit: PerPattern::new(client.clone(), "sth_cost_basis_in_profit_per".to_string()), - in_loss: PerPattern::new(client.clone(), "sth_cost_basis_in_loss_per".to_string()), - min: CentsSatsUsdPattern::new(client.clone(), "sth_cost_basis_min".to_string()), - max: CentsSatsUsdPattern::new(client.clone(), "sth_cost_basis_max".to_string()), - per_coin: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern::new(client.clone(), "sth_cost_basis_per_coin".to_string()), - per_dollar: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern::new(client.clone(), "sth_cost_basis_per_dollar".to_string()), - supply_density: BpsPercentRatioPattern3::new(client.clone(), "sth_supply_density".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Sth_Unrealized { - pub nupl: BpsRatioPattern, - pub profit: CentsToUsdPattern4, - pub loss: CentsNegativeToUsdPattern2, - pub net_pnl: CentsToUsdPattern3, - pub gross_pnl: CentsUsdPattern3, - pub invested_capital: InPattern, - pub investor_cap_in_profit_raw: SeriesPattern18, - pub investor_cap_in_loss_raw: SeriesPattern18, - pub sentiment: SeriesTree_Cohorts_Utxo_Sth_Unrealized_Sentiment, -} - -impl SeriesTree_Cohorts_Utxo_Sth_Unrealized { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - nupl: BpsRatioPattern::new(client.clone(), "sth_nupl".to_string()), - profit: CentsToUsdPattern4::new(client.clone(), "sth_unrealized_profit".to_string()), - loss: CentsNegativeToUsdPattern2::new(client.clone(), "sth_unrealized_loss".to_string()), - net_pnl: CentsToUsdPattern3::new(client.clone(), "sth_net_unrealized_pnl".to_string()), - gross_pnl: CentsUsdPattern3::new(client.clone(), "sth_unrealized_gross_pnl".to_string()), - invested_capital: InPattern::new(client.clone(), "sth_invested_capital_in".to_string()), - investor_cap_in_profit_raw: SeriesPattern18::new(client.clone(), "sth_investor_cap_in_profit_raw".to_string()), - investor_cap_in_loss_raw: SeriesPattern18::new(client.clone(), "sth_investor_cap_in_loss_raw".to_string()), - sentiment: SeriesTree_Cohorts_Utxo_Sth_Unrealized_Sentiment::new(client.clone(), format!("{base_path}_sentiment")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Sth_Unrealized_Sentiment { - pub pain_index: CentsUsdPattern3, - pub greed_index: CentsUsdPattern3, - pub net: CentsUsdPattern, -} - -impl SeriesTree_Cohorts_Utxo_Sth_Unrealized_Sentiment { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - pain_index: CentsUsdPattern3::new(client.clone(), "sth_pain_index".to_string()), - greed_index: CentsUsdPattern3::new(client.clone(), "sth_greed_index".to_string()), - net: CentsUsdPattern::new(client.clone(), "sth_net_sentiment".to_string()), - } - } -} - /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_Lth { pub supply: DeltaHalfInToTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Lth_Outputs, - pub activity: SeriesTree_Cohorts_Utxo_Lth_Activity, + pub outputs: SpendingSpentUnspentPattern, + pub activity: CoindaysCoinyearsDormancyTransferPattern, pub realized: SeriesTree_Cohorts_Utxo_Lth_Realized, - pub cost_basis: SeriesTree_Cohorts_Utxo_Lth_CostBasis, - pub unrealized: SeriesTree_Cohorts_Utxo_Lth_Unrealized, + pub cost_basis: InMaxMinPerSupplyPattern, + pub unrealized: GrossInvestedInvestorLossNetNuplProfitSentimentPattern2, } impl SeriesTree_Cohorts_Utxo_Lth { pub fn new(client: Arc, base_path: String) -> Self { Self { supply: DeltaHalfInToTotalPattern2::new(client.clone(), "lth_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Lth_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: SeriesTree_Cohorts_Utxo_Lth_Activity::new(client.clone(), format!("{base_path}_activity")), + outputs: SpendingSpentUnspentPattern::new(client.clone(), "lth".to_string()), + activity: CoindaysCoinyearsDormancyTransferPattern::new(client.clone(), "lth".to_string()), realized: SeriesTree_Cohorts_Utxo_Lth_Realized::new(client.clone(), format!("{base_path}_realized")), - cost_basis: SeriesTree_Cohorts_Utxo_Lth_CostBasis::new(client.clone(), format!("{base_path}_cost_basis")), - unrealized: SeriesTree_Cohorts_Utxo_Lth_Unrealized::new(client.clone(), format!("{base_path}_unrealized")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Lth_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Lth_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "lth_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "lth_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "lth_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Lth_Activity { - pub transfer_volume: AverageBlockCumulativeInSumPattern, - pub coindays_destroyed: AverageBlockCumulativeSumPattern, - pub coinyears_destroyed: SeriesPattern1, - pub dormancy: _1m1w1y24hPattern, -} - -impl SeriesTree_Cohorts_Utxo_Lth_Activity { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - transfer_volume: AverageBlockCumulativeInSumPattern::new(client.clone(), "lth_transfer_volume".to_string()), - coindays_destroyed: AverageBlockCumulativeSumPattern::new(client.clone(), "lth_coindays_destroyed".to_string()), - coinyears_destroyed: SeriesPattern1::new(client.clone(), "lth_coinyears_destroyed".to_string()), - dormancy: _1m1w1y24hPattern::new(client.clone(), "lth_dormancy".to_string()), + cost_basis: InMaxMinPerSupplyPattern::new(client.clone(), "lth".to_string()), + unrealized: GrossInvestedInvestorLossNetNuplProfitSentimentPattern2::new(client.clone(), "lth".to_string()), } } } @@ -7497,5452 +7443,365 @@ impl SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr { } } -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Lth_CostBasis { - pub in_profit: PerPattern, - pub in_loss: PerPattern, - pub min: CentsSatsUsdPattern, - pub max: CentsSatsUsdPattern, - pub per_coin: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern, - pub per_dollar: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern, - pub supply_density: BpsPercentRatioPattern3, -} - -impl SeriesTree_Cohorts_Utxo_Lth_CostBasis { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - in_profit: PerPattern::new(client.clone(), "lth_cost_basis_in_profit_per".to_string()), - in_loss: PerPattern::new(client.clone(), "lth_cost_basis_in_loss_per".to_string()), - min: CentsSatsUsdPattern::new(client.clone(), "lth_cost_basis_min".to_string()), - max: CentsSatsUsdPattern::new(client.clone(), "lth_cost_basis_max".to_string()), - per_coin: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern::new(client.clone(), "lth_cost_basis_per_coin".to_string()), - per_dollar: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern::new(client.clone(), "lth_cost_basis_per_dollar".to_string()), - supply_density: BpsPercentRatioPattern3::new(client.clone(), "lth_supply_density".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Lth_Unrealized { - pub nupl: BpsRatioPattern, - pub profit: CentsToUsdPattern4, - pub loss: CentsNegativeToUsdPattern2, - pub net_pnl: CentsToUsdPattern3, - pub gross_pnl: CentsUsdPattern3, - pub invested_capital: InPattern, - pub investor_cap_in_profit_raw: SeriesPattern18, - pub investor_cap_in_loss_raw: SeriesPattern18, - pub sentiment: SeriesTree_Cohorts_Utxo_Lth_Unrealized_Sentiment, -} - -impl SeriesTree_Cohorts_Utxo_Lth_Unrealized { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - nupl: BpsRatioPattern::new(client.clone(), "lth_nupl".to_string()), - profit: CentsToUsdPattern4::new(client.clone(), "lth_unrealized_profit".to_string()), - loss: CentsNegativeToUsdPattern2::new(client.clone(), "lth_unrealized_loss".to_string()), - net_pnl: CentsToUsdPattern3::new(client.clone(), "lth_net_unrealized_pnl".to_string()), - gross_pnl: CentsUsdPattern3::new(client.clone(), "lth_unrealized_gross_pnl".to_string()), - invested_capital: InPattern::new(client.clone(), "lth_invested_capital_in".to_string()), - investor_cap_in_profit_raw: SeriesPattern18::new(client.clone(), "lth_investor_cap_in_profit_raw".to_string()), - investor_cap_in_loss_raw: SeriesPattern18::new(client.clone(), "lth_investor_cap_in_loss_raw".to_string()), - sentiment: SeriesTree_Cohorts_Utxo_Lth_Unrealized_Sentiment::new(client.clone(), format!("{base_path}_sentiment")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Lth_Unrealized_Sentiment { - pub pain_index: CentsUsdPattern3, - pub greed_index: CentsUsdPattern3, - pub net: CentsUsdPattern, -} - -impl SeriesTree_Cohorts_Utxo_Lth_Unrealized_Sentiment { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - pain_index: CentsUsdPattern3::new(client.clone(), "lth_pain_index".to_string()), - greed_index: CentsUsdPattern3::new(client.clone(), "lth_greed_index".to_string()), - net: CentsUsdPattern::new(client.clone(), "lth_net_sentiment".to_string()), - } - } -} - /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_AgeRange { - pub under_1h: SeriesTree_Cohorts_Utxo_AgeRange_Under1h, - pub _1h_to_1d: SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d, - pub _1d_to_1w: SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w, - pub _1w_to_1m: SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m, - pub _1m_to_2m: SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m, - pub _2m_to_3m: SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m, - pub _3m_to_4m: SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m, - pub _4m_to_5m: SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m, - pub _5m_to_6m: SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m, - pub _6m_to_1y: SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y, - pub _1y_to_2y: SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y, - pub _2y_to_3y: SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y, - pub _3y_to_4y: SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y, - pub _4y_to_5y: SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y, - pub _5y_to_6y: SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y, - pub _6y_to_7y: SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y, - pub _7y_to_8y: SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y, - pub _8y_to_10y: SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y, - pub _10y_to_12y: SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y, - pub _12y_to_15y: SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y, - pub over_15y: SeriesTree_Cohorts_Utxo_AgeRange_Over15y, + pub under_1h: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1h_to_1d: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1d_to_1w: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1w_to_1m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1m_to_2m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2m_to_3m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _3m_to_4m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _4m_to_5m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _5m_to_6m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _6m_to_1y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1y_to_2y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2y_to_3y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _3y_to_4y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _4y_to_5y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _5y_to_6y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _6y_to_7y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _7y_to_8y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _8y_to_10y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10y_to_12y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _12y_to_15y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub over_15y: ActivityOutputsRealizedSupplyUnrealizedPattern, } impl SeriesTree_Cohorts_Utxo_AgeRange { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesTree_Cohorts_Utxo_AgeRange_Under1h::new(client.clone(), format!("{base_path}_under_1h")), - _1h_to_1d: SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d::new(client.clone(), format!("{base_path}_1h_to_1d")), - _1d_to_1w: SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w::new(client.clone(), format!("{base_path}_1d_to_1w")), - _1w_to_1m: SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m::new(client.clone(), format!("{base_path}_1w_to_1m")), - _1m_to_2m: SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m::new(client.clone(), format!("{base_path}_1m_to_2m")), - _2m_to_3m: SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m::new(client.clone(), format!("{base_path}_2m_to_3m")), - _3m_to_4m: SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m::new(client.clone(), format!("{base_path}_3m_to_4m")), - _4m_to_5m: SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m::new(client.clone(), format!("{base_path}_4m_to_5m")), - _5m_to_6m: SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m::new(client.clone(), format!("{base_path}_5m_to_6m")), - _6m_to_1y: SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y::new(client.clone(), format!("{base_path}_6m_to_1y")), - _1y_to_2y: SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y::new(client.clone(), format!("{base_path}_1y_to_2y")), - _2y_to_3y: SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y::new(client.clone(), format!("{base_path}_2y_to_3y")), - _3y_to_4y: SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y::new(client.clone(), format!("{base_path}_3y_to_4y")), - _4y_to_5y: SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y::new(client.clone(), format!("{base_path}_4y_to_5y")), - _5y_to_6y: SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y::new(client.clone(), format!("{base_path}_5y_to_6y")), - _6y_to_7y: SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y::new(client.clone(), format!("{base_path}_6y_to_7y")), - _7y_to_8y: SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y::new(client.clone(), format!("{base_path}_7y_to_8y")), - _8y_to_10y: SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y::new(client.clone(), format!("{base_path}_8y_to_10y")), - _10y_to_12y: SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y::new(client.clone(), format!("{base_path}_10y_to_12y")), - _12y_to_15y: SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y::new(client.clone(), format!("{base_path}_12y_to_15y")), - over_15y: SeriesTree_Cohorts_Utxo_AgeRange_Over15y::new(client.clone(), format!("{base_path}_over_15y")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_Under1h { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_Under1h_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_Under1h { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_1h_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_Under1h_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_1h_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_1h_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_1h_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_Under1h_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_Under1h_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_1h_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_1h_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_1h_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_1h_to_1d_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_1h_to_1d_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_1h_to_1d_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_1h_to_1d_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1h_to_1d_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1h_to_1d_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1h_to_1d_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_1d_to_1w_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_1d_to_1w_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_1d_to_1w_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_1d_to_1w_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1d_to_1w_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1d_to_1w_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1d_to_1w_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_1w_to_1m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_1w_to_1m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_1w_to_1m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_1w_to_1m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1w_to_1m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1w_to_1m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1w_to_1m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_1m_to_2m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_1m_to_2m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_1m_to_2m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_1m_to_2m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1m_to_2m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1m_to_2m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1m_to_2m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_2m_to_3m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_2m_to_3m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_2m_to_3m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_2m_to_3m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_2m_to_3m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_2m_to_3m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_2m_to_3m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_3m_to_4m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_3m_to_4m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_3m_to_4m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_3m_to_4m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_3m_to_4m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_3m_to_4m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_3m_to_4m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_4m_to_5m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_4m_to_5m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_4m_to_5m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_4m_to_5m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_4m_to_5m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_4m_to_5m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_4m_to_5m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_5m_to_6m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_5m_to_6m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_5m_to_6m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_5m_to_6m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_5m_to_6m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_5m_to_6m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_5m_to_6m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_6m_to_1y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_6m_to_1y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_6m_to_1y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_6m_to_1y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_6m_to_1y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_6m_to_1y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_6m_to_1y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_1y_to_2y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_1y_to_2y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_1y_to_2y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_1y_to_2y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1y_to_2y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1y_to_2y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1y_to_2y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_2y_to_3y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_2y_to_3y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_2y_to_3y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_2y_to_3y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_2y_to_3y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_2y_to_3y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_2y_to_3y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_3y_to_4y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_3y_to_4y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_3y_to_4y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_3y_to_4y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_3y_to_4y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_3y_to_4y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_3y_to_4y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_4y_to_5y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_4y_to_5y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_4y_to_5y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_4y_to_5y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_4y_to_5y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_4y_to_5y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_4y_to_5y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_5y_to_6y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_5y_to_6y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_5y_to_6y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_5y_to_6y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_5y_to_6y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_5y_to_6y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_5y_to_6y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_6y_to_7y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_6y_to_7y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_6y_to_7y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_6y_to_7y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_6y_to_7y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_6y_to_7y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_7y_to_8y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_7y_to_8y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_7y_to_8y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_7y_to_8y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_7y_to_8y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_7y_to_8y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_8y_to_10y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_8y_to_10y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_8y_to_10y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_8y_to_10y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_8y_to_10y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_8y_to_10y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_10y_to_12y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_10y_to_12y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_10y_to_12y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_10y_to_12y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_10y_to_12y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_10y_to_12y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_12y_to_15y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_12y_to_15y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_12y_to_15y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_12y_to_15y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_12y_to_15y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_12y_to_15y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_Over15y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AgeRange_Over15y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_Over15y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_15y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AgeRange_Over15y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_15y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_15y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_15y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AgeRange_Over15y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AgeRange_Over15y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_15y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_15y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_spending_rate".to_string()), + under_1h: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1h_old".to_string()), + _1h_to_1d: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_1h_to_1d_old".to_string()), + _1d_to_1w: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_1d_to_1w_old".to_string()), + _1w_to_1m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_1w_to_1m_old".to_string()), + _1m_to_2m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_1m_to_2m_old".to_string()), + _2m_to_3m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_2m_to_3m_old".to_string()), + _3m_to_4m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_3m_to_4m_old".to_string()), + _4m_to_5m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_4m_to_5m_old".to_string()), + _5m_to_6m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_5m_to_6m_old".to_string()), + _6m_to_1y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_6m_to_1y_old".to_string()), + _1y_to_2y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_1y_to_2y_old".to_string()), + _2y_to_3y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_2y_to_3y_old".to_string()), + _3y_to_4y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_3y_to_4y_old".to_string()), + _4y_to_5y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_4y_to_5y_old".to_string()), + _5y_to_6y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_5y_to_6y_old".to_string()), + _6y_to_7y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_6y_to_7y_old".to_string()), + _7y_to_8y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_7y_to_8y_old".to_string()), + _8y_to_10y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_8y_to_10y_old".to_string()), + _10y_to_12y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_10y_to_12y_old".to_string()), + _12y_to_15y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_12y_to_15y_old".to_string()), + over_15y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_15y_old".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_UnderAge { - pub _1w: SeriesTree_Cohorts_Utxo_UnderAge_1w, - pub _1m: SeriesTree_Cohorts_Utxo_UnderAge_1m, - pub _2m: SeriesTree_Cohorts_Utxo_UnderAge_2m, - pub _3m: SeriesTree_Cohorts_Utxo_UnderAge_3m, - pub _4m: SeriesTree_Cohorts_Utxo_UnderAge_4m, - pub _5m: SeriesTree_Cohorts_Utxo_UnderAge_5m, - pub _6m: SeriesTree_Cohorts_Utxo_UnderAge_6m, - pub _1y: SeriesTree_Cohorts_Utxo_UnderAge_1y, - pub _2y: SeriesTree_Cohorts_Utxo_UnderAge_2y, - pub _3y: SeriesTree_Cohorts_Utxo_UnderAge_3y, - pub _4y: SeriesTree_Cohorts_Utxo_UnderAge_4y, - pub _5y: SeriesTree_Cohorts_Utxo_UnderAge_5y, - pub _6y: SeriesTree_Cohorts_Utxo_UnderAge_6y, - pub _7y: SeriesTree_Cohorts_Utxo_UnderAge_7y, - pub _8y: SeriesTree_Cohorts_Utxo_UnderAge_8y, - pub _10y: SeriesTree_Cohorts_Utxo_UnderAge_10y, - pub _12y: SeriesTree_Cohorts_Utxo_UnderAge_12y, - pub _15y: SeriesTree_Cohorts_Utxo_UnderAge_15y, + pub _1w: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _3m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _4m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _5m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _6m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _3y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _4y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _5y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _6y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _7y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _8y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _12y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _15y: ActivityOutputsRealizedSupplyUnrealizedPattern, } impl SeriesTree_Cohorts_Utxo_UnderAge { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: SeriesTree_Cohorts_Utxo_UnderAge_1w::new(client.clone(), format!("{base_path}_1w")), - _1m: SeriesTree_Cohorts_Utxo_UnderAge_1m::new(client.clone(), format!("{base_path}_1m")), - _2m: SeriesTree_Cohorts_Utxo_UnderAge_2m::new(client.clone(), format!("{base_path}_2m")), - _3m: SeriesTree_Cohorts_Utxo_UnderAge_3m::new(client.clone(), format!("{base_path}_3m")), - _4m: SeriesTree_Cohorts_Utxo_UnderAge_4m::new(client.clone(), format!("{base_path}_4m")), - _5m: SeriesTree_Cohorts_Utxo_UnderAge_5m::new(client.clone(), format!("{base_path}_5m")), - _6m: SeriesTree_Cohorts_Utxo_UnderAge_6m::new(client.clone(), format!("{base_path}_6m")), - _1y: SeriesTree_Cohorts_Utxo_UnderAge_1y::new(client.clone(), format!("{base_path}_1y")), - _2y: SeriesTree_Cohorts_Utxo_UnderAge_2y::new(client.clone(), format!("{base_path}_2y")), - _3y: SeriesTree_Cohorts_Utxo_UnderAge_3y::new(client.clone(), format!("{base_path}_3y")), - _4y: SeriesTree_Cohorts_Utxo_UnderAge_4y::new(client.clone(), format!("{base_path}_4y")), - _5y: SeriesTree_Cohorts_Utxo_UnderAge_5y::new(client.clone(), format!("{base_path}_5y")), - _6y: SeriesTree_Cohorts_Utxo_UnderAge_6y::new(client.clone(), format!("{base_path}_6y")), - _7y: SeriesTree_Cohorts_Utxo_UnderAge_7y::new(client.clone(), format!("{base_path}_7y")), - _8y: SeriesTree_Cohorts_Utxo_UnderAge_8y::new(client.clone(), format!("{base_path}_8y")), - _10y: SeriesTree_Cohorts_Utxo_UnderAge_10y::new(client.clone(), format!("{base_path}_10y")), - _12y: SeriesTree_Cohorts_Utxo_UnderAge_12y::new(client.clone(), format!("{base_path}_12y")), - _15y: SeriesTree_Cohorts_Utxo_UnderAge_15y::new(client.clone(), format!("{base_path}_15y")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_1w { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_1w_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_1w { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_1w_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_1w_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_1w_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_1w_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_1w_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_1w_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_1w_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_1w_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_1w_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_1w_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_1m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_1m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_1m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_1m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_1m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_1m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_1m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_1m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_1m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_1m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_1m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_1m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_1m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_2m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_2m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_2m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_2m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_2m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_2m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_2m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_2m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_2m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_2m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_2m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_2m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_2m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_3m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_3m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_3m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_3m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_3m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_3m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_3m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_3m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_3m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_3m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_3m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_3m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_3m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_4m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_4m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_4m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_4m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_4m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_4m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_4m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_4m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_4m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_4m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_4m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_4m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_4m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_5m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_5m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_5m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_5m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_5m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_5m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_5m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_5m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_5m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_5m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_5m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_5m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_5m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_6m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_6m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_6m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_6m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_6m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_6m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_6m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_6m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_6m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_6m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_6m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_6m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_6m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_1y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_1y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_1y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_1y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_1y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_1y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_1y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_1y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_1y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_1y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_1y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_1y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_1y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_2y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_2y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_2y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_2y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_2y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_2y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_2y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_2y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_2y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_2y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_2y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_2y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_2y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_3y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_3y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_3y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_3y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_3y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_3y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_3y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_3y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_3y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_3y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_3y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_3y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_3y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_4y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_4y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_4y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_4y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_4y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_4y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_4y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_4y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_4y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_4y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_4y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_4y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_4y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_5y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_5y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_5y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_5y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_5y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_5y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_5y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_5y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_5y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_5y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_5y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_5y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_5y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_6y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_6y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_6y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_6y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_6y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_6y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_6y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_6y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_6y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_6y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_6y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_6y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_6y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_7y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_7y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_7y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_7y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_7y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_7y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_7y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_7y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_7y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_7y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_7y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_7y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_7y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_8y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_8y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_8y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_8y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_8y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_8y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_8y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_8y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_8y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_8y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_8y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_8y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_8y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_10y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_10y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_10y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_10y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_10y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_10y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_10y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_10y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_10y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_10y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_10y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_10y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_10y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_12y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_12y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_12y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_12y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_12y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_12y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_12y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_12y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_12y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_12y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_12y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_12y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_12y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_15y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAge_15y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_15y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_under_15y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAge_15y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_under_15y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_under_15y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_under_15y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAge_15y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAge_15y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_15y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_15y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_15y_old_spending_rate".to_string()), + _1w: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1w_old".to_string()), + _1m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1m_old".to_string()), + _2m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_2m_old".to_string()), + _3m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_3m_old".to_string()), + _4m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_4m_old".to_string()), + _5m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_5m_old".to_string()), + _6m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_6m_old".to_string()), + _1y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1y_old".to_string()), + _2y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_2y_old".to_string()), + _3y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_3y_old".to_string()), + _4y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_4y_old".to_string()), + _5y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_5y_old".to_string()), + _6y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_6y_old".to_string()), + _7y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_7y_old".to_string()), + _8y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_8y_old".to_string()), + _10y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10y_old".to_string()), + _12y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_12y_old".to_string()), + _15y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_15y_old".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_OverAge { - pub _1d: SeriesTree_Cohorts_Utxo_OverAge_1d, - pub _1w: SeriesTree_Cohorts_Utxo_OverAge_1w, - pub _1m: SeriesTree_Cohorts_Utxo_OverAge_1m, - pub _2m: SeriesTree_Cohorts_Utxo_OverAge_2m, - pub _3m: SeriesTree_Cohorts_Utxo_OverAge_3m, - pub _4m: SeriesTree_Cohorts_Utxo_OverAge_4m, - pub _5m: SeriesTree_Cohorts_Utxo_OverAge_5m, - pub _6m: SeriesTree_Cohorts_Utxo_OverAge_6m, - pub _1y: SeriesTree_Cohorts_Utxo_OverAge_1y, - pub _2y: SeriesTree_Cohorts_Utxo_OverAge_2y, - pub _3y: SeriesTree_Cohorts_Utxo_OverAge_3y, - pub _4y: SeriesTree_Cohorts_Utxo_OverAge_4y, - pub _5y: SeriesTree_Cohorts_Utxo_OverAge_5y, - pub _6y: SeriesTree_Cohorts_Utxo_OverAge_6y, - pub _7y: SeriesTree_Cohorts_Utxo_OverAge_7y, - pub _8y: SeriesTree_Cohorts_Utxo_OverAge_8y, - pub _10y: SeriesTree_Cohorts_Utxo_OverAge_10y, - pub _12y: SeriesTree_Cohorts_Utxo_OverAge_12y, + pub _1d: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1w: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _3m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _4m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _5m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _6m: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _3y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _4y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _5y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _6y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _7y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _8y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10y: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _12y: ActivityOutputsRealizedSupplyUnrealizedPattern, } impl SeriesTree_Cohorts_Utxo_OverAge { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: SeriesTree_Cohorts_Utxo_OverAge_1d::new(client.clone(), format!("{base_path}_1d")), - _1w: SeriesTree_Cohorts_Utxo_OverAge_1w::new(client.clone(), format!("{base_path}_1w")), - _1m: SeriesTree_Cohorts_Utxo_OverAge_1m::new(client.clone(), format!("{base_path}_1m")), - _2m: SeriesTree_Cohorts_Utxo_OverAge_2m::new(client.clone(), format!("{base_path}_2m")), - _3m: SeriesTree_Cohorts_Utxo_OverAge_3m::new(client.clone(), format!("{base_path}_3m")), - _4m: SeriesTree_Cohorts_Utxo_OverAge_4m::new(client.clone(), format!("{base_path}_4m")), - _5m: SeriesTree_Cohorts_Utxo_OverAge_5m::new(client.clone(), format!("{base_path}_5m")), - _6m: SeriesTree_Cohorts_Utxo_OverAge_6m::new(client.clone(), format!("{base_path}_6m")), - _1y: SeriesTree_Cohorts_Utxo_OverAge_1y::new(client.clone(), format!("{base_path}_1y")), - _2y: SeriesTree_Cohorts_Utxo_OverAge_2y::new(client.clone(), format!("{base_path}_2y")), - _3y: SeriesTree_Cohorts_Utxo_OverAge_3y::new(client.clone(), format!("{base_path}_3y")), - _4y: SeriesTree_Cohorts_Utxo_OverAge_4y::new(client.clone(), format!("{base_path}_4y")), - _5y: SeriesTree_Cohorts_Utxo_OverAge_5y::new(client.clone(), format!("{base_path}_5y")), - _6y: SeriesTree_Cohorts_Utxo_OverAge_6y::new(client.clone(), format!("{base_path}_6y")), - _7y: SeriesTree_Cohorts_Utxo_OverAge_7y::new(client.clone(), format!("{base_path}_7y")), - _8y: SeriesTree_Cohorts_Utxo_OverAge_8y::new(client.clone(), format!("{base_path}_8y")), - _10y: SeriesTree_Cohorts_Utxo_OverAge_10y::new(client.clone(), format!("{base_path}_10y")), - _12y: SeriesTree_Cohorts_Utxo_OverAge_12y::new(client.clone(), format!("{base_path}_12y")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_1d { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_1d_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_1d { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_1d_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_1d_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_1d_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_1d_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_1d_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_1d_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_1d_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_1d_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_1d_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_1d_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_1w { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_1w_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_1w { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_1w_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_1w_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_1w_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_1w_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_1w_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_1w_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_1w_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_1w_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_1w_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_1w_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_1m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_1m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_1m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_1m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_1m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_1m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_1m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_1m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_1m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_1m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_1m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_1m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_1m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_2m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_2m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_2m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_2m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_2m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_2m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_2m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_2m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_2m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_2m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_2m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_2m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_2m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_3m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_3m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_3m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_3m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_3m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_3m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_3m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_3m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_3m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_3m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_3m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_3m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_3m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_4m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_4m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_4m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_4m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_4m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_4m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_4m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_4m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_4m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_4m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_4m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_4m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_4m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_5m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_5m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_5m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_5m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_5m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_5m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_5m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_5m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_5m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_5m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_5m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_5m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_5m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_6m { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_6m_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_6m { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_6m_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_6m_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_6m_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_6m_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_6m_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_6m_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_6m_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_6m_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_6m_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_6m_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_1y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_1y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_1y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_1y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_1y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_1y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_1y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_1y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_1y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_1y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_1y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_1y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_1y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_2y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_2y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_2y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_2y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_2y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_2y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_2y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_2y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_2y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_2y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_2y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_2y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_2y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_3y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_3y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_3y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_3y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_3y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_3y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_3y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_3y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_3y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_3y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_3y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_3y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_3y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_4y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_4y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_4y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_4y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_4y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_4y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_4y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_4y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_4y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_4y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_4y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_4y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_4y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_5y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_5y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_5y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_5y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_5y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_5y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_5y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_5y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_5y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_5y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_5y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_5y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_5y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_6y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_6y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_6y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_6y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_6y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_6y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_6y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_6y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_6y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_6y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_6y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_6y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_6y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_7y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_7y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_7y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_7y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_7y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_7y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_7y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_7y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_7y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_7y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_7y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_7y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_7y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_8y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_8y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_8y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_8y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_8y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_8y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_8y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_8y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_8y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_8y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_8y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_8y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_8y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_10y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_10y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_10y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_10y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_10y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_10y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_10y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_10y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_10y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_10y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_10y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_10y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_10y_old_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_12y { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAge_12y_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_12y { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "utxos_over_12y_old_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAge_12y_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "utxos_over_12y_old".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "utxos_over_12y_old".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "utxos_over_12y_old".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAge_12y_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAge_12y_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_12y_old_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_12y_old_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_12y_old_spending_rate".to_string()), + _1d: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1d_old".to_string()), + _1w: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1w_old".to_string()), + _1m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1m_old".to_string()), + _2m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_2m_old".to_string()), + _3m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_3m_old".to_string()), + _4m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_4m_old".to_string()), + _5m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_5m_old".to_string()), + _6m: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_6m_old".to_string()), + _1y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1y_old".to_string()), + _2y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_2y_old".to_string()), + _3y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_3y_old".to_string()), + _4y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_4y_old".to_string()), + _5y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_5y_old".to_string()), + _6y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_6y_old".to_string()), + _7y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_7y_old".to_string()), + _8y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_8y_old".to_string()), + _10y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10y_old".to_string()), + _12y: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_12y_old".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_Epoch { - pub _0: SeriesTree_Cohorts_Utxo_Epoch_0, - pub _1: SeriesTree_Cohorts_Utxo_Epoch_1, - pub _2: SeriesTree_Cohorts_Utxo_Epoch_2, - pub _3: SeriesTree_Cohorts_Utxo_Epoch_3, - pub _4: SeriesTree_Cohorts_Utxo_Epoch_4, + pub _0: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _3: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _4: ActivityOutputsRealizedSupplyUnrealizedPattern, } impl SeriesTree_Cohorts_Utxo_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: SeriesTree_Cohorts_Utxo_Epoch_0::new(client.clone(), format!("{base_path}_0")), - _1: SeriesTree_Cohorts_Utxo_Epoch_1::new(client.clone(), format!("{base_path}_1")), - _2: SeriesTree_Cohorts_Utxo_Epoch_2::new(client.clone(), format!("{base_path}_2")), - _3: SeriesTree_Cohorts_Utxo_Epoch_3::new(client.clone(), format!("{base_path}_3")), - _4: SeriesTree_Cohorts_Utxo_Epoch_4::new(client.clone(), format!("{base_path}_4")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_0 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Epoch_0_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_0 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "epoch_0_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Epoch_0_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "epoch_0".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "epoch_0".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "epoch_0".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_0_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_0_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "epoch_0_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_0_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "epoch_0_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_1 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Epoch_1_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_1 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "epoch_1_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Epoch_1_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "epoch_1".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "epoch_1".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "epoch_1".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_1_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_1_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "epoch_1_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_1_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "epoch_1_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_2 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Epoch_2_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_2 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "epoch_2_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Epoch_2_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "epoch_2".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "epoch_2".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "epoch_2".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_2_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_2_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "epoch_2_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_2_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "epoch_2_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_3 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Epoch_3_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_3 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "epoch_3_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Epoch_3_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "epoch_3".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "epoch_3".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "epoch_3".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_3_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_3_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "epoch_3_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_3_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "epoch_3_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_4 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Epoch_4_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_4 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "epoch_4_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Epoch_4_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "epoch_4".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "epoch_4".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "epoch_4".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Epoch_4_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Epoch_4_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "epoch_4_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_4_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "epoch_4_spending_rate".to_string()), + _0: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "epoch_0".to_string()), + _1: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "epoch_1".to_string()), + _2: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "epoch_2".to_string()), + _3: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "epoch_3".to_string()), + _4: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "epoch_4".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_Class { - pub _2009: SeriesTree_Cohorts_Utxo_Class_2009, - pub _2010: SeriesTree_Cohorts_Utxo_Class_2010, - pub _2011: SeriesTree_Cohorts_Utxo_Class_2011, - pub _2012: SeriesTree_Cohorts_Utxo_Class_2012, - pub _2013: SeriesTree_Cohorts_Utxo_Class_2013, - pub _2014: SeriesTree_Cohorts_Utxo_Class_2014, - pub _2015: SeriesTree_Cohorts_Utxo_Class_2015, - pub _2016: SeriesTree_Cohorts_Utxo_Class_2016, - pub _2017: SeriesTree_Cohorts_Utxo_Class_2017, - pub _2018: SeriesTree_Cohorts_Utxo_Class_2018, - pub _2019: SeriesTree_Cohorts_Utxo_Class_2019, - pub _2020: SeriesTree_Cohorts_Utxo_Class_2020, - pub _2021: SeriesTree_Cohorts_Utxo_Class_2021, - pub _2022: SeriesTree_Cohorts_Utxo_Class_2022, - pub _2023: SeriesTree_Cohorts_Utxo_Class_2023, - pub _2024: SeriesTree_Cohorts_Utxo_Class_2024, - pub _2025: SeriesTree_Cohorts_Utxo_Class_2025, - pub _2026: SeriesTree_Cohorts_Utxo_Class_2026, + pub _2009: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2010: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2011: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2012: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2013: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2014: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2015: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2016: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2017: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2018: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2019: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2020: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2021: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2022: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2023: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2024: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2025: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _2026: ActivityOutputsRealizedSupplyUnrealizedPattern, } impl SeriesTree_Cohorts_Utxo_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: SeriesTree_Cohorts_Utxo_Class_2009::new(client.clone(), format!("{base_path}_2009")), - _2010: SeriesTree_Cohorts_Utxo_Class_2010::new(client.clone(), format!("{base_path}_2010")), - _2011: SeriesTree_Cohorts_Utxo_Class_2011::new(client.clone(), format!("{base_path}_2011")), - _2012: SeriesTree_Cohorts_Utxo_Class_2012::new(client.clone(), format!("{base_path}_2012")), - _2013: SeriesTree_Cohorts_Utxo_Class_2013::new(client.clone(), format!("{base_path}_2013")), - _2014: SeriesTree_Cohorts_Utxo_Class_2014::new(client.clone(), format!("{base_path}_2014")), - _2015: SeriesTree_Cohorts_Utxo_Class_2015::new(client.clone(), format!("{base_path}_2015")), - _2016: SeriesTree_Cohorts_Utxo_Class_2016::new(client.clone(), format!("{base_path}_2016")), - _2017: SeriesTree_Cohorts_Utxo_Class_2017::new(client.clone(), format!("{base_path}_2017")), - _2018: SeriesTree_Cohorts_Utxo_Class_2018::new(client.clone(), format!("{base_path}_2018")), - _2019: SeriesTree_Cohorts_Utxo_Class_2019::new(client.clone(), format!("{base_path}_2019")), - _2020: SeriesTree_Cohorts_Utxo_Class_2020::new(client.clone(), format!("{base_path}_2020")), - _2021: SeriesTree_Cohorts_Utxo_Class_2021::new(client.clone(), format!("{base_path}_2021")), - _2022: SeriesTree_Cohorts_Utxo_Class_2022::new(client.clone(), format!("{base_path}_2022")), - _2023: SeriesTree_Cohorts_Utxo_Class_2023::new(client.clone(), format!("{base_path}_2023")), - _2024: SeriesTree_Cohorts_Utxo_Class_2024::new(client.clone(), format!("{base_path}_2024")), - _2025: SeriesTree_Cohorts_Utxo_Class_2025::new(client.clone(), format!("{base_path}_2025")), - _2026: SeriesTree_Cohorts_Utxo_Class_2026::new(client.clone(), format!("{base_path}_2026")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2009 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2009_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2009 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2009_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2009_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2009".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2009".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2009".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2009_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2009_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2009_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2009_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2009_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2010 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2010_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2010 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2010_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2010_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2010".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2010".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2010".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2010_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2010_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2010_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2010_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2010_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2011 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2011_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2011 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2011_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2011_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2011".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2011".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2011".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2011_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2011_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2011_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2011_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2011_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2012 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2012_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2012 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2012_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2012_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2012".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2012".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2012".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2012_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2012_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2012_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2012_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2012_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2013 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2013_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2013 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2013_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2013_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2013".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2013".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2013".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2013_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2013_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2013_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2013_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2013_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2014 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2014_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2014 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2014_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2014_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2014".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2014".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2014".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2014_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2014_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2014_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2014_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2014_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2015 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2015_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2015 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2015_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2015_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2015".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2015".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2015".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2015_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2015_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2015_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2015_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2015_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2016 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2016_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2016 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2016_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2016_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2016".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2016".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2016".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2016_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2016_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2016_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2016_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2016_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2017 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2017_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2017 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2017_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2017_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2017".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2017".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2017".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2017_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2017_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2017_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2017_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2017_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2018 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2018_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2018 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2018_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2018_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2018".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2018".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2018".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2018_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2018_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2018_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2018_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2018_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2019 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2019_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2019 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2019_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2019_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2019".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2019".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2019".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2019_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2019_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2019_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2019_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2019_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2020 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2020_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2020 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2020_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2020_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2020".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2020".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2020".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2020_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2020_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2020_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2020_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2020_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2021 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2021_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2021 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2021_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2021_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2021".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2021".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2021".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2021_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2021_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2021_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2021_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2021_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2022 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2022_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2022 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2022_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2022_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2022".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2022".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2022".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2022_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2022_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2022_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2022_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2022_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2023 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2023_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2023 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2023_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2023_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2023".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2023".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2023".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2023_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2023_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2023_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2023_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2023_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2024 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2024_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2024 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2024_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2024_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2024".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2024".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2024".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2024_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2024_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2024_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2024_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2024_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2025 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2025_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2025 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2025_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2025_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2025".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2025".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2025".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2025_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2025_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2025_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2025_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2025_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2026 { - pub supply: DeltaHalfInToTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_Class_2026_Outputs, - pub activity: CoindaysTransferPattern, - pub realized: CapLossMvrvNetPriceProfitSoprPattern, - pub unrealized: LossNetNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Class_2026 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInToTotalPattern::new(client.clone(), "class_2026_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Class_2026_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: CoindaysTransferPattern::new(client.clone(), "class_2026".to_string()), - realized: CapLossMvrvNetPriceProfitSoprPattern::new(client.clone(), "class_2026".to_string()), - unrealized: LossNetNuplProfitPattern::new(client.clone(), "class_2026".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Class_2026_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Class_2026_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "class_2026_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2026_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "class_2026_spending_rate".to_string()), + _2009: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2009".to_string()), + _2010: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2010".to_string()), + _2011: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2011".to_string()), + _2012: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2012".to_string()), + _2013: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2013".to_string()), + _2014: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2014".to_string()), + _2015: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2015".to_string()), + _2016: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2016".to_string()), + _2017: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2017".to_string()), + _2018: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2018".to_string()), + _2019: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2019".to_string()), + _2020: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2020".to_string()), + _2021: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2021".to_string()), + _2022: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2022".to_string()), + _2023: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2023".to_string()), + _2024: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2024".to_string()), + _2025: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2025".to_string()), + _2026: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "class_2026".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_OverAmount { - pub _1sat: SeriesTree_Cohorts_Utxo_OverAmount_1sat, - pub _10sats: SeriesTree_Cohorts_Utxo_OverAmount_10sats, - pub _100sats: SeriesTree_Cohorts_Utxo_OverAmount_100sats, - pub _1k_sats: SeriesTree_Cohorts_Utxo_OverAmount_1kSats, - pub _10k_sats: SeriesTree_Cohorts_Utxo_OverAmount_10kSats, - pub _100k_sats: SeriesTree_Cohorts_Utxo_OverAmount_100kSats, - pub _1m_sats: SeriesTree_Cohorts_Utxo_OverAmount_1mSats, - pub _10m_sats: SeriesTree_Cohorts_Utxo_OverAmount_10mSats, - pub _1btc: SeriesTree_Cohorts_Utxo_OverAmount_1btc, - pub _10btc: SeriesTree_Cohorts_Utxo_OverAmount_10btc, - pub _100btc: SeriesTree_Cohorts_Utxo_OverAmount_100btc, - pub _1k_btc: SeriesTree_Cohorts_Utxo_OverAmount_1kBtc, - pub _10k_btc: SeriesTree_Cohorts_Utxo_OverAmount_10kBtc, + pub _1sat: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, } impl SeriesTree_Cohorts_Utxo_OverAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: SeriesTree_Cohorts_Utxo_OverAmount_1sat::new(client.clone(), format!("{base_path}_1sat")), - _10sats: SeriesTree_Cohorts_Utxo_OverAmount_10sats::new(client.clone(), format!("{base_path}_10sats")), - _100sats: SeriesTree_Cohorts_Utxo_OverAmount_100sats::new(client.clone(), format!("{base_path}_100sats")), - _1k_sats: SeriesTree_Cohorts_Utxo_OverAmount_1kSats::new(client.clone(), format!("{base_path}_1k_sats")), - _10k_sats: SeriesTree_Cohorts_Utxo_OverAmount_10kSats::new(client.clone(), format!("{base_path}_10k_sats")), - _100k_sats: SeriesTree_Cohorts_Utxo_OverAmount_100kSats::new(client.clone(), format!("{base_path}_100k_sats")), - _1m_sats: SeriesTree_Cohorts_Utxo_OverAmount_1mSats::new(client.clone(), format!("{base_path}_1m_sats")), - _10m_sats: SeriesTree_Cohorts_Utxo_OverAmount_10mSats::new(client.clone(), format!("{base_path}_10m_sats")), - _1btc: SeriesTree_Cohorts_Utxo_OverAmount_1btc::new(client.clone(), format!("{base_path}_1btc")), - _10btc: SeriesTree_Cohorts_Utxo_OverAmount_10btc::new(client.clone(), format!("{base_path}_10btc")), - _100btc: SeriesTree_Cohorts_Utxo_OverAmount_100btc::new(client.clone(), format!("{base_path}_100btc")), - _1k_btc: SeriesTree_Cohorts_Utxo_OverAmount_1kBtc::new(client.clone(), format!("{base_path}_1k_btc")), - _10k_btc: SeriesTree_Cohorts_Utxo_OverAmount_10kBtc::new(client.clone(), format!("{base_path}_10k_btc")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1sat { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_1sat_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1sat { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_1sat_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_1sat_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_1sat_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_1sat".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_1sat_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1sat_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1sat_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_1sat_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_1sat_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_1sat_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_10sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_10sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_10sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_10sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_10sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_10sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_10sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_10sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_10sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_100sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_100sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_100sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_100sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_100sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_100sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_100sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_100sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_100sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_100sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_100sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_100sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_100sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_1kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_1k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_1kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_1k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_1k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_1k_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_1k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_1k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_1k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_10kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_10k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_10kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_10k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_10k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_10k_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_10k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_10k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_10k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_100kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_100kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_100kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_100k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_100kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_100k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_100k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_100k_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_100kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_100kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_100k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_100k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_100k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_1mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_1m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_1mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_1m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_1m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_1m_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_1m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_1m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_1m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_10mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_10m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_10mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_10m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_10m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_10m_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_10m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_10m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_10m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_1btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_1btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_1btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_1btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_1btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_1btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_1btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_1btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_1btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_10btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_10btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_10btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_10btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_10btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_10btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_10btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_10btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_10btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_100btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_100btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_100btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_100btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_100btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_100btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_100btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_100btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_100btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_100btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_100btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_100btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_100btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_1kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_1k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_1kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_1k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_1k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_1k_btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_1kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_1kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_1k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_1k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_1k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_OverAmount_10kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_10k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_OverAmount_10kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_10k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_10k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_10k_btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_OverAmount_10kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_OverAmount_10kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_10k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_10k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_10k_btc_spending_rate".to_string()), + _1sat: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_1sat".to_string()), + _10sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_10sats".to_string()), + _100sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_100sats".to_string()), + _1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_1k_sats".to_string()), + _10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_10k_sats".to_string()), + _100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_100k_sats".to_string()), + _1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_1m_sats".to_string()), + _10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_10m_sats".to_string()), + _1btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_1btc".to_string()), + _10btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_10btc".to_string()), + _100btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_100btc".to_string()), + _1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_1k_btc".to_string()), + _10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_10k_btc".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_AmountRange { - pub _0sats: SeriesTree_Cohorts_Utxo_AmountRange_0sats, - pub _1sat_to_10sats: SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats, - pub _10sats_to_100sats: SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats, - pub _100sats_to_1k_sats: SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats, - pub _1k_sats_to_10k_sats: SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats, - pub _10k_sats_to_100k_sats: SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats, - pub _100k_sats_to_1m_sats: SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats, - pub _1m_sats_to_10m_sats: SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats, - pub _10m_sats_to_1btc: SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc, - pub _1btc_to_10btc: SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc, - pub _10btc_to_100btc: SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc, - pub _100btc_to_1k_btc: SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc, - pub _1k_btc_to_10k_btc: SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc, - pub _10k_btc_to_100k_btc: SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc, - pub over_100k_btc: SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc, + pub _0sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1sat_to_10sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10sats_to_100sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100sats_to_1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1k_sats_to_10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10k_sats_to_100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100k_sats_to_1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1m_sats_to_10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10m_sats_to_1btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1btc_to_10btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10btc_to_100btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100btc_to_1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1k_btc_to_10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10k_btc_to_100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub over_100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, } impl SeriesTree_Cohorts_Utxo_AmountRange { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: SeriesTree_Cohorts_Utxo_AmountRange_0sats::new(client.clone(), format!("{base_path}_0sats")), - _1sat_to_10sats: SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats::new(client.clone(), format!("{base_path}_1sat_to_10sats")), - _10sats_to_100sats: SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats::new(client.clone(), format!("{base_path}_10sats_to_100sats")), - _100sats_to_1k_sats: SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats::new(client.clone(), format!("{base_path}_100sats_to_1k_sats")), - _1k_sats_to_10k_sats: SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats::new(client.clone(), format!("{base_path}_1k_sats_to_10k_sats")), - _10k_sats_to_100k_sats: SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats::new(client.clone(), format!("{base_path}_10k_sats_to_100k_sats")), - _100k_sats_to_1m_sats: SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats::new(client.clone(), format!("{base_path}_100k_sats_to_1m_sats")), - _1m_sats_to_10m_sats: SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats::new(client.clone(), format!("{base_path}_1m_sats_to_10m_sats")), - _10m_sats_to_1btc: SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc::new(client.clone(), format!("{base_path}_10m_sats_to_1btc")), - _1btc_to_10btc: SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc::new(client.clone(), format!("{base_path}_1btc_to_10btc")), - _10btc_to_100btc: SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc::new(client.clone(), format!("{base_path}_10btc_to_100btc")), - _100btc_to_1k_btc: SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc::new(client.clone(), format!("{base_path}_100btc_to_1k_btc")), - _1k_btc_to_10k_btc: SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc::new(client.clone(), format!("{base_path}_1k_btc_to_10k_btc")), - _10k_btc_to_100k_btc: SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc::new(client.clone(), format!("{base_path}_10k_btc_to_100k_btc")), - over_100k_btc: SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc::new(client.clone(), format!("{base_path}_over_100k_btc")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_0sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_0sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_0sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_0sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_0sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_0sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_0sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_0sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_0sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_0sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_0sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_0sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_0sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_1sat_to_10sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_1sat_to_10sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_1sat_to_10sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_1sat_to_10sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1sat_to_10sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1sat_to_10sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1sat_to_10sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_10sats_to_100sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_10sats_to_100sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_10sats_to_100sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_10sats_to_100sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_10sats_to_100sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_10sats_to_100sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_10sats_to_100sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_100sats_to_1k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_100sats_to_1k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_100sats_to_1k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_100sats_to_1k_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_100sats_to_1k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_100sats_to_1k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_100sats_to_1k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1k_sats_to_10k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1k_sats_to_10k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_10k_sats_to_100k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_10k_sats_to_100k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_100k_sats_to_1m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_100k_sats_to_1m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1m_sats_to_10m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1m_sats_to_10m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_10m_sats_to_1btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_10m_sats_to_1btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_10m_sats_to_1btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_10m_sats_to_1btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_10m_sats_to_1btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_10m_sats_to_1btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_10m_sats_to_1btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_1btc_to_10btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_1btc_to_10btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_1btc_to_10btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_1btc_to_10btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1btc_to_10btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1btc_to_10btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1btc_to_10btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_10btc_to_100btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_10btc_to_100btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_10btc_to_100btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_10btc_to_100btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_10btc_to_100btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_10btc_to_100btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_10btc_to_100btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_100btc_to_1k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_100btc_to_1k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_100btc_to_1k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_100btc_to_1k_btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_100btc_to_1k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_100btc_to_1k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_100btc_to_1k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1k_btc_to_10k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_1k_btc_to_10k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_10k_btc_to_100k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_10k_btc_to_100k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_over_100k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_over_100k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_over_100k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_over_100k_btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_over_100k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_100k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_over_100k_btc_spending_rate".to_string()), + _0sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_0sats".to_string()), + _1sat_to_10sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_1sat_to_10sats".to_string()), + _10sats_to_100sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_10sats_to_100sats".to_string()), + _100sats_to_1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_100sats_to_1k_sats".to_string()), + _1k_sats_to_10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_1k_sats_to_10k_sats".to_string()), + _10k_sats_to_100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_10k_sats_to_100k_sats".to_string()), + _100k_sats_to_1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_100k_sats_to_1m_sats".to_string()), + _1m_sats_to_10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_1m_sats_to_10m_sats".to_string()), + _10m_sats_to_1btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_10m_sats_to_1btc".to_string()), + _1btc_to_10btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_1btc_to_10btc".to_string()), + _10btc_to_100btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_10btc_to_100btc".to_string()), + _100btc_to_1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_100btc_to_1k_btc".to_string()), + _1k_btc_to_10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_1k_btc_to_10k_btc".to_string()), + _10k_btc_to_100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_10k_btc_to_100k_btc".to_string()), + over_100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_100k_btc".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_UnderAmount { - pub _10sats: SeriesTree_Cohorts_Utxo_UnderAmount_10sats, - pub _100sats: SeriesTree_Cohorts_Utxo_UnderAmount_100sats, - pub _1k_sats: SeriesTree_Cohorts_Utxo_UnderAmount_1kSats, - pub _10k_sats: SeriesTree_Cohorts_Utxo_UnderAmount_10kSats, - pub _100k_sats: SeriesTree_Cohorts_Utxo_UnderAmount_100kSats, - pub _1m_sats: SeriesTree_Cohorts_Utxo_UnderAmount_1mSats, - pub _10m_sats: SeriesTree_Cohorts_Utxo_UnderAmount_10mSats, - pub _1btc: SeriesTree_Cohorts_Utxo_UnderAmount_1btc, - pub _10btc: SeriesTree_Cohorts_Utxo_UnderAmount_10btc, - pub _100btc: SeriesTree_Cohorts_Utxo_UnderAmount_100btc, - pub _1k_btc: SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc, - pub _10k_btc: SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc, - pub _100k_btc: SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc, + pub _10sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, + pub _100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2, } impl SeriesTree_Cohorts_Utxo_UnderAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: SeriesTree_Cohorts_Utxo_UnderAmount_10sats::new(client.clone(), format!("{base_path}_10sats")), - _100sats: SeriesTree_Cohorts_Utxo_UnderAmount_100sats::new(client.clone(), format!("{base_path}_100sats")), - _1k_sats: SeriesTree_Cohorts_Utxo_UnderAmount_1kSats::new(client.clone(), format!("{base_path}_1k_sats")), - _10k_sats: SeriesTree_Cohorts_Utxo_UnderAmount_10kSats::new(client.clone(), format!("{base_path}_10k_sats")), - _100k_sats: SeriesTree_Cohorts_Utxo_UnderAmount_100kSats::new(client.clone(), format!("{base_path}_100k_sats")), - _1m_sats: SeriesTree_Cohorts_Utxo_UnderAmount_1mSats::new(client.clone(), format!("{base_path}_1m_sats")), - _10m_sats: SeriesTree_Cohorts_Utxo_UnderAmount_10mSats::new(client.clone(), format!("{base_path}_10m_sats")), - _1btc: SeriesTree_Cohorts_Utxo_UnderAmount_1btc::new(client.clone(), format!("{base_path}_1btc")), - _10btc: SeriesTree_Cohorts_Utxo_UnderAmount_10btc::new(client.clone(), format!("{base_path}_10btc")), - _100btc: SeriesTree_Cohorts_Utxo_UnderAmount_100btc::new(client.clone(), format!("{base_path}_100btc")), - _1k_btc: SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc::new(client.clone(), format!("{base_path}_1k_btc")), - _10k_btc: SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc::new(client.clone(), format!("{base_path}_10k_btc")), - _100k_btc: SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc::new(client.clone(), format!("{base_path}_100k_btc")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_10sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_10sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_10sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_10sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_10sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_10sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_10sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_100sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_100sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_100sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_100sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_100sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_100sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_100sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_100sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_100sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_100sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_100sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_1kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_1kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_1k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_1k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_1k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_1k_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_1kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_1kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_1k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_1k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_1k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_10k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_10k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_10k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_10k_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_10k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_10k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_10k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_100kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_100kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_100k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_100k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_100k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_100k_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_100kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_100kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_100k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_100k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_100k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_1mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_1mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_1m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_1m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_1m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_1m_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_1mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_1mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_1m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_1m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_1m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_10m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_10m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_10m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_10m_sats_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_10m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_10m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_10m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_1btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_1btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_1btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_1btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_1btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_1btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_1btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_1btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_1btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_1btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_1btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_10btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_10btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_10btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_10btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_10btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_10btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_10btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_100btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_100btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_100btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_100btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_100btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_100btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_100btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_100btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_100btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_100btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_100btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_1k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_1k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_1k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_1k_btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_1k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_1k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_1k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_10k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_10k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_10k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_10k_btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_10k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_10k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_10k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "utxos_under_100k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "utxos_under_100k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "utxos_under_100k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "utxos_under_100k_btc_nupl".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "utxos_under_100k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_100k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "utxos_under_100k_btc_spending_rate".to_string()), + _10sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_10sats".to_string()), + _100sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_100sats".to_string()), + _1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_1k_sats".to_string()), + _10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_10k_sats".to_string()), + _100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_100k_sats".to_string()), + _1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_1m_sats".to_string()), + _10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_10m_sats".to_string()), + _1btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_1btc".to_string()), + _10btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_10btc".to_string()), + _100btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_100btc".to_string()), + _1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_1k_btc".to_string()), + _10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_10k_btc".to_string()), + _100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_100k_btc".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Utxo_Type { - pub p2pk65: SeriesTree_Cohorts_Utxo_Type_P2pk65, - pub p2pk33: SeriesTree_Cohorts_Utxo_Type_P2pk33, - pub p2pkh: SeriesTree_Cohorts_Utxo_Type_P2pkh, - pub p2ms: SeriesTree_Cohorts_Utxo_Type_P2ms, - pub p2sh: SeriesTree_Cohorts_Utxo_Type_P2sh, - pub p2wpkh: SeriesTree_Cohorts_Utxo_Type_P2wpkh, - pub p2wsh: SeriesTree_Cohorts_Utxo_Type_P2wsh, - pub p2tr: SeriesTree_Cohorts_Utxo_Type_P2tr, - pub p2a: SeriesTree_Cohorts_Utxo_Type_P2a, - pub unknown: SeriesTree_Cohorts_Utxo_Type_Unknown, - pub empty: SeriesTree_Cohorts_Utxo_Type_Empty, + pub p2pk65: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub p2pk33: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub p2pkh: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub p2ms: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub p2sh: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub p2wpkh: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub p2wsh: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub p2tr: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub p2a: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub unknown: ActivityOutputsRealizedSupplyUnrealizedPattern3, + pub empty: ActivityOutputsRealizedSupplyUnrealizedPattern3, } impl SeriesTree_Cohorts_Utxo_Type { pub fn new(client: Arc, base_path: String) -> Self { Self { - p2pk65: SeriesTree_Cohorts_Utxo_Type_P2pk65::new(client.clone(), format!("{base_path}_p2pk65")), - p2pk33: SeriesTree_Cohorts_Utxo_Type_P2pk33::new(client.clone(), format!("{base_path}_p2pk33")), - p2pkh: SeriesTree_Cohorts_Utxo_Type_P2pkh::new(client.clone(), format!("{base_path}_p2pkh")), - p2ms: SeriesTree_Cohorts_Utxo_Type_P2ms::new(client.clone(), format!("{base_path}_p2ms")), - p2sh: SeriesTree_Cohorts_Utxo_Type_P2sh::new(client.clone(), format!("{base_path}_p2sh")), - p2wpkh: SeriesTree_Cohorts_Utxo_Type_P2wpkh::new(client.clone(), format!("{base_path}_p2wpkh")), - p2wsh: SeriesTree_Cohorts_Utxo_Type_P2wsh::new(client.clone(), format!("{base_path}_p2wsh")), - p2tr: SeriesTree_Cohorts_Utxo_Type_P2tr::new(client.clone(), format!("{base_path}_p2tr")), - p2a: SeriesTree_Cohorts_Utxo_Type_P2a::new(client.clone(), format!("{base_path}_p2a")), - unknown: SeriesTree_Cohorts_Utxo_Type_Unknown::new(client.clone(), format!("{base_path}_unknown")), - empty: SeriesTree_Cohorts_Utxo_Type_Empty::new(client.clone(), format!("{base_path}_empty")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2pk65 { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_P2pk65_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2pk65 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "p2pk65_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_P2pk65_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "p2pk65_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "p2pk65".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "p2pk65".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2pk65_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2pk65_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "p2pk65_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2pk65_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "p2pk65_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2pk33 { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_P2pk33_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2pk33 { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "p2pk33_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_P2pk33_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "p2pk33_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "p2pk33".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "p2pk33".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2pk33_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2pk33_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "p2pk33_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2pk33_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "p2pk33_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2pkh { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_P2pkh_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2pkh { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "p2pkh_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_P2pkh_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "p2pkh_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "p2pkh".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "p2pkh".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2pkh_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2pkh_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "p2pkh_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2pkh_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "p2pkh_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2ms { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_P2ms_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2ms { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "p2ms_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_P2ms_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "p2ms_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "p2ms".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "p2ms".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2ms_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2ms_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "p2ms_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2ms_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "p2ms_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2sh { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_P2sh_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2sh { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "p2sh_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_P2sh_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "p2sh_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "p2sh".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "p2sh".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2sh_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2sh_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "p2sh_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2sh_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "p2sh_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2wpkh { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_P2wpkh_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2wpkh { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "p2wpkh_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_P2wpkh_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "p2wpkh_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "p2wpkh".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "p2wpkh".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2wpkh_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2wpkh_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "p2wpkh_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2wpkh_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "p2wpkh_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2wsh { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_P2wsh_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2wsh { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "p2wsh_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_P2wsh_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "p2wsh_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "p2wsh".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "p2wsh".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2wsh_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2wsh_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "p2wsh_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2wsh_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "p2wsh_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2tr { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_P2tr_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2tr { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "p2tr_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_P2tr_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "p2tr_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "p2tr".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "p2tr".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2tr_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2tr_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "p2tr_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2tr_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "p2tr_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2a { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_P2a_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2a { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "p2a_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_P2a_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "p2a_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "p2a".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "p2a".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_P2a_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_P2a_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "p2a_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2a_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "p2a_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_Unknown { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_Unknown_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_Unknown { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "unknown_outputs_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_Unknown_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "unknown_outputs_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "unknown_outputs".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "unknown_outputs".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_Unknown_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_Unknown_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "unknown_outputs_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "unknown_outputs_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "unknown_outputs_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_Empty { - pub supply: DeltaHalfInTotalPattern2, - pub outputs: SeriesTree_Cohorts_Utxo_Type_Empty_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: LossNuplProfitPattern, -} - -impl SeriesTree_Cohorts_Utxo_Type_Empty { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaHalfInTotalPattern2::new(client.clone(), "empty_outputs_supply".to_string()), - outputs: SeriesTree_Cohorts_Utxo_Type_Empty_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "empty_outputs_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "empty_outputs".to_string()), - unrealized: LossNuplProfitPattern::new(client.clone(), "empty_outputs".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Utxo_Type_Empty_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Utxo_Type_Empty_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "empty_outputs_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "empty_outputs_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "empty_outputs_spending_rate".to_string()), + p2pk65: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "p2pk65".to_string()), + p2pk33: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "p2pk33".to_string()), + p2pkh: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "p2pkh".to_string()), + p2ms: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "p2ms".to_string()), + p2sh: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "p2sh".to_string()), + p2wpkh: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "p2wpkh".to_string()), + p2wsh: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "p2wsh".to_string()), + p2tr: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "p2tr".to_string()), + p2a: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "p2a".to_string()), + unknown: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "unknown_outputs".to_string()), + empty: ActivityOutputsRealizedSupplyUnrealizedPattern3::new(client.clone(), "empty_outputs".to_string()), } } } @@ -13165,1755 +8024,115 @@ impl SeriesTree_Cohorts_Addr { /// Series tree node. pub struct SeriesTree_Cohorts_Addr_OverAmount { - pub _1sat: SeriesTree_Cohorts_Addr_OverAmount_1sat, - pub _10sats: SeriesTree_Cohorts_Addr_OverAmount_10sats, - pub _100sats: SeriesTree_Cohorts_Addr_OverAmount_100sats, - pub _1k_sats: SeriesTree_Cohorts_Addr_OverAmount_1kSats, - pub _10k_sats: SeriesTree_Cohorts_Addr_OverAmount_10kSats, - pub _100k_sats: SeriesTree_Cohorts_Addr_OverAmount_100kSats, - pub _1m_sats: SeriesTree_Cohorts_Addr_OverAmount_1mSats, - pub _10m_sats: SeriesTree_Cohorts_Addr_OverAmount_10mSats, - pub _1btc: SeriesTree_Cohorts_Addr_OverAmount_1btc, - pub _10btc: SeriesTree_Cohorts_Addr_OverAmount_10btc, - pub _100btc: SeriesTree_Cohorts_Addr_OverAmount_100btc, - pub _1k_btc: SeriesTree_Cohorts_Addr_OverAmount_1kBtc, - pub _10k_btc: SeriesTree_Cohorts_Addr_OverAmount_10kBtc, + pub _1sat: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, } impl SeriesTree_Cohorts_Addr_OverAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: SeriesTree_Cohorts_Addr_OverAmount_1sat::new(client.clone(), format!("{base_path}_1sat")), - _10sats: SeriesTree_Cohorts_Addr_OverAmount_10sats::new(client.clone(), format!("{base_path}_10sats")), - _100sats: SeriesTree_Cohorts_Addr_OverAmount_100sats::new(client.clone(), format!("{base_path}_100sats")), - _1k_sats: SeriesTree_Cohorts_Addr_OverAmount_1kSats::new(client.clone(), format!("{base_path}_1k_sats")), - _10k_sats: SeriesTree_Cohorts_Addr_OverAmount_10kSats::new(client.clone(), format!("{base_path}_10k_sats")), - _100k_sats: SeriesTree_Cohorts_Addr_OverAmount_100kSats::new(client.clone(), format!("{base_path}_100k_sats")), - _1m_sats: SeriesTree_Cohorts_Addr_OverAmount_1mSats::new(client.clone(), format!("{base_path}_1m_sats")), - _10m_sats: SeriesTree_Cohorts_Addr_OverAmount_10mSats::new(client.clone(), format!("{base_path}_10m_sats")), - _1btc: SeriesTree_Cohorts_Addr_OverAmount_1btc::new(client.clone(), format!("{base_path}_1btc")), - _10btc: SeriesTree_Cohorts_Addr_OverAmount_10btc::new(client.clone(), format!("{base_path}_10btc")), - _100btc: SeriesTree_Cohorts_Addr_OverAmount_100btc::new(client.clone(), format!("{base_path}_100btc")), - _1k_btc: SeriesTree_Cohorts_Addr_OverAmount_1kBtc::new(client.clone(), format!("{base_path}_1k_btc")), - _10k_btc: SeriesTree_Cohorts_Addr_OverAmount_10kBtc::new(client.clone(), format!("{base_path}_10k_btc")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1sat { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_1sat_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1sat { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_1sat_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_1sat_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_1sat_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_1sat".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_1sat_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1sat_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1sat_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1sat_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1sat_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_1sat_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_1sat_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_10sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_10sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_10sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_10sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_10sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_10sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_10sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_10sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_100sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_100sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_100sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_100sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_100sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_100sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_100sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_100sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_100sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_100sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_100sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_100sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_100sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_100sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_1kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_1k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_1kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_1k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_1k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_1k_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1k_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_1k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_1k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_10kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_10k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_10kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_10k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_10k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_10k_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10k_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_10k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_10k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_100kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_100kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_100kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_100k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_100kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_100k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_100k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_100k_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_100k_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_100kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_100kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_100k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_100k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_100k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_1mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_1m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_1mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_1m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_1m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_1m_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1m_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_1m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_1m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_10mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_10m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_10mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_10m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_10m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_10m_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10m_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_10m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_10m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_1btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_1btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_1btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_1btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_1btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_1btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_1btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_1btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_10btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_10btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_10btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_10btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_10btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_10btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_10btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_10btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_100btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_100btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_100btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_100btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_100btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_100btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_100btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_100btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_100btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_100btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_100btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_100btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_100btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_100btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_1kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_1k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_1kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_1k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_1k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_1k_btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1k_btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_1kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_1kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_1k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_1k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_1k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_OverAmount_10kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_10k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_OverAmount_10kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_10k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_10k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_10k_btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10k_btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_OverAmount_10kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_OverAmount_10kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_10k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_10k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_10k_btc_spending_rate".to_string()), + _1sat: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1sat".to_string()), + _10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10sats".to_string()), + _100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_100sats".to_string()), + _1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1k_sats".to_string()), + _10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10k_sats".to_string()), + _100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_100k_sats".to_string()), + _1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1m_sats".to_string()), + _10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10m_sats".to_string()), + _1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1btc".to_string()), + _10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10btc".to_string()), + _100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_100btc".to_string()), + _1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1k_btc".to_string()), + _10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10k_btc".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Addr_AmountRange { - pub _0sats: SeriesTree_Cohorts_Addr_AmountRange_0sats, - pub _1sat_to_10sats: SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats, - pub _10sats_to_100sats: SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats, - pub _100sats_to_1k_sats: SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats, - pub _1k_sats_to_10k_sats: SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats, - pub _10k_sats_to_100k_sats: SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats, - pub _100k_sats_to_1m_sats: SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats, - pub _1m_sats_to_10m_sats: SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats, - pub _10m_sats_to_1btc: SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc, - pub _1btc_to_10btc: SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc, - pub _10btc_to_100btc: SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc, - pub _100btc_to_1k_btc: SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc, - pub _1k_btc_to_10k_btc: SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc, - pub _10k_btc_to_100k_btc: SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc, - pub over_100k_btc: SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc, + pub _0sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1sat_to_10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10sats_to_100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100sats_to_1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1k_sats_to_10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10k_sats_to_100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100k_sats_to_1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1m_sats_to_10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10m_sats_to_1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1btc_to_10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10btc_to_100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100btc_to_1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1k_btc_to_10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10k_btc_to_100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub over_100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, } impl SeriesTree_Cohorts_Addr_AmountRange { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: SeriesTree_Cohorts_Addr_AmountRange_0sats::new(client.clone(), format!("{base_path}_0sats")), - _1sat_to_10sats: SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats::new(client.clone(), format!("{base_path}_1sat_to_10sats")), - _10sats_to_100sats: SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats::new(client.clone(), format!("{base_path}_10sats_to_100sats")), - _100sats_to_1k_sats: SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats::new(client.clone(), format!("{base_path}_100sats_to_1k_sats")), - _1k_sats_to_10k_sats: SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats::new(client.clone(), format!("{base_path}_1k_sats_to_10k_sats")), - _10k_sats_to_100k_sats: SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats::new(client.clone(), format!("{base_path}_10k_sats_to_100k_sats")), - _100k_sats_to_1m_sats: SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats::new(client.clone(), format!("{base_path}_100k_sats_to_1m_sats")), - _1m_sats_to_10m_sats: SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats::new(client.clone(), format!("{base_path}_1m_sats_to_10m_sats")), - _10m_sats_to_1btc: SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc::new(client.clone(), format!("{base_path}_10m_sats_to_1btc")), - _1btc_to_10btc: SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc::new(client.clone(), format!("{base_path}_1btc_to_10btc")), - _10btc_to_100btc: SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc::new(client.clone(), format!("{base_path}_10btc_to_100btc")), - _100btc_to_1k_btc: SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc::new(client.clone(), format!("{base_path}_100btc_to_1k_btc")), - _1k_btc_to_10k_btc: SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc::new(client.clone(), format!("{base_path}_1k_btc_to_10k_btc")), - _10k_btc_to_100k_btc: SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc::new(client.clone(), format!("{base_path}_10k_btc_to_100k_btc")), - over_100k_btc: SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc::new(client.clone(), format!("{base_path}_over_100k_btc")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_0sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_0sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_0sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_0sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_0sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_0sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_0sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_0sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_0sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_0sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_0sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_0sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_0sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_0sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_1sat_to_10sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_1sat_to_10sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_1sat_to_10sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_1sat_to_10sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_1sat_to_10sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_1sat_to_10sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_1sat_to_10sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_1sat_to_10sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_10sats_to_100sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_10sats_to_100sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_10sats_to_100sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_10sats_to_100sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_10sats_to_100sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_10sats_to_100sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_10sats_to_100sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_10sats_to_100sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_100sats_to_1k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_100sats_to_1k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_100sats_to_1k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_100sats_to_1k_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_100sats_to_1k_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_100sats_to_1k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_100sats_to_1k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_100sats_to_1k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_1k_sats_to_10k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_1k_sats_to_10k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_10k_sats_to_100k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_10k_sats_to_100k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_100k_sats_to_1m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_100k_sats_to_1m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_1m_sats_to_10m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_1m_sats_to_10m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_10m_sats_to_1btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_10m_sats_to_1btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_10m_sats_to_1btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_10m_sats_to_1btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_10m_sats_to_1btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_10m_sats_to_1btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_10m_sats_to_1btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_10m_sats_to_1btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_1btc_to_10btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_1btc_to_10btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_1btc_to_10btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_1btc_to_10btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_1btc_to_10btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_1btc_to_10btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_1btc_to_10btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_1btc_to_10btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_10btc_to_100btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_10btc_to_100btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_10btc_to_100btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_10btc_to_100btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_10btc_to_100btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_10btc_to_100btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_10btc_to_100btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_10btc_to_100btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_100btc_to_1k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_100btc_to_1k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_100btc_to_1k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_100btc_to_1k_btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_100btc_to_1k_btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_100btc_to_1k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_100btc_to_1k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_100btc_to_1k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_1k_btc_to_10k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_1k_btc_to_10k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_10k_btc_to_100k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_10k_btc_to_100k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_over_100k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_over_100k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_over_100k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_over_100k_btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_over_100k_btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_over_100k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_over_100k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_over_100k_btc_spending_rate".to_string()), + _0sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_0sats".to_string()), + _1sat_to_10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_1sat_to_10sats".to_string()), + _10sats_to_100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_10sats_to_100sats".to_string()), + _100sats_to_1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_100sats_to_1k_sats".to_string()), + _1k_sats_to_10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats".to_string()), + _10k_sats_to_100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats".to_string()), + _100k_sats_to_1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats".to_string()), + _1m_sats_to_10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats".to_string()), + _10m_sats_to_1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_10m_sats_to_1btc".to_string()), + _1btc_to_10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_1btc_to_10btc".to_string()), + _10btc_to_100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_10btc_to_100btc".to_string()), + _100btc_to_1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_100btc_to_1k_btc".to_string()), + _1k_btc_to_10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc".to_string()), + _10k_btc_to_100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc".to_string()), + over_100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_over_100k_btc".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Addr_UnderAmount { - pub _10sats: SeriesTree_Cohorts_Addr_UnderAmount_10sats, - pub _100sats: SeriesTree_Cohorts_Addr_UnderAmount_100sats, - pub _1k_sats: SeriesTree_Cohorts_Addr_UnderAmount_1kSats, - pub _10k_sats: SeriesTree_Cohorts_Addr_UnderAmount_10kSats, - pub _100k_sats: SeriesTree_Cohorts_Addr_UnderAmount_100kSats, - pub _1m_sats: SeriesTree_Cohorts_Addr_UnderAmount_1mSats, - pub _10m_sats: SeriesTree_Cohorts_Addr_UnderAmount_10mSats, - pub _1btc: SeriesTree_Cohorts_Addr_UnderAmount_1btc, - pub _10btc: SeriesTree_Cohorts_Addr_UnderAmount_10btc, - pub _100btc: SeriesTree_Cohorts_Addr_UnderAmount_100btc, - pub _1k_btc: SeriesTree_Cohorts_Addr_UnderAmount_1kBtc, - pub _10k_btc: SeriesTree_Cohorts_Addr_UnderAmount_10kBtc, - pub _100k_btc: SeriesTree_Cohorts_Addr_UnderAmount_100kBtc, + pub _10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, + pub _100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, } impl SeriesTree_Cohorts_Addr_UnderAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: SeriesTree_Cohorts_Addr_UnderAmount_10sats::new(client.clone(), format!("{base_path}_10sats")), - _100sats: SeriesTree_Cohorts_Addr_UnderAmount_100sats::new(client.clone(), format!("{base_path}_100sats")), - _1k_sats: SeriesTree_Cohorts_Addr_UnderAmount_1kSats::new(client.clone(), format!("{base_path}_1k_sats")), - _10k_sats: SeriesTree_Cohorts_Addr_UnderAmount_10kSats::new(client.clone(), format!("{base_path}_10k_sats")), - _100k_sats: SeriesTree_Cohorts_Addr_UnderAmount_100kSats::new(client.clone(), format!("{base_path}_100k_sats")), - _1m_sats: SeriesTree_Cohorts_Addr_UnderAmount_1mSats::new(client.clone(), format!("{base_path}_1m_sats")), - _10m_sats: SeriesTree_Cohorts_Addr_UnderAmount_10mSats::new(client.clone(), format!("{base_path}_10m_sats")), - _1btc: SeriesTree_Cohorts_Addr_UnderAmount_1btc::new(client.clone(), format!("{base_path}_1btc")), - _10btc: SeriesTree_Cohorts_Addr_UnderAmount_10btc::new(client.clone(), format!("{base_path}_10btc")), - _100btc: SeriesTree_Cohorts_Addr_UnderAmount_100btc::new(client.clone(), format!("{base_path}_100btc")), - _1k_btc: SeriesTree_Cohorts_Addr_UnderAmount_1kBtc::new(client.clone(), format!("{base_path}_1k_btc")), - _10k_btc: SeriesTree_Cohorts_Addr_UnderAmount_10kBtc::new(client.clone(), format!("{base_path}_10k_btc")), - _100k_btc: SeriesTree_Cohorts_Addr_UnderAmount_100kBtc::new(client.clone(), format!("{base_path}_100k_btc")), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_10sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_10sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_10sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_10sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_10sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_10sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_10sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_10sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_100sats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_100sats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_100sats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_100sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_100sats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_100sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_100sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_100sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_100sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_100sats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_100sats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_100sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_100sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_100sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_1kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_1kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_1kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_1k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_1kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_1k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_1k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_1k_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_1k_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_1kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_1kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_1k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_1k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_1k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_10kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_10k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_10kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_10k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_10k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_10k_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10k_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_10k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_10k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_100kSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_100kSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_100kSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_100k_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_100kSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_100k_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_100k_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_100k_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_100k_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_100kSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_100kSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_100k_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_100k_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_100k_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_1mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_1mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_1mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_1m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_1mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_1m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_1m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_1m_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_1m_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_1mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_1mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_1m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_1m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_1m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10mSats { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_10mSats_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10mSats { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_10m_sats_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_10mSats_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_10m_sats_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_10m_sats".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_10m_sats_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10m_sats_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10mSats_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10mSats_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10m_sats_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_10m_sats_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_10m_sats_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_1btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_1btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_1btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_1btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_1btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_1btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_1btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_1btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_1btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_1btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_1btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_1btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_1btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_1btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_10btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_10btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_10btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_10btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_10btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_10btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_10btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_10btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_100btc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_100btc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_100btc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_100btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_100btc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_100btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_100btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_100btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_100btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_100btc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_100btc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_100btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_100btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_100btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_1kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_1kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_1kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_1k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_1kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_1k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_1k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_1k_btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_1k_btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_1kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_1kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_1k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_1k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_1k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_10kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_10k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_10kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_10k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_10k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_10k_btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10k_btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_10kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_10kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_10k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_10k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_10k_btc_spending_rate".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_100kBtc { - pub supply: DeltaTotalPattern, - pub outputs: SeriesTree_Cohorts_Addr_UnderAmount_100kBtc_Outputs, - pub activity: TransferPattern, - pub realized: CapLossMvrvPriceProfitPattern, - pub unrealized: NuplPattern, - pub addr_count: BaseDeltaPattern, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_100kBtc { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - supply: DeltaTotalPattern::new(client.clone(), "addrs_under_100k_btc_supply".to_string()), - outputs: SeriesTree_Cohorts_Addr_UnderAmount_100kBtc_Outputs::new(client.clone(), format!("{base_path}_outputs")), - activity: TransferPattern::new(client.clone(), "addrs_under_100k_btc_transfer_volume".to_string()), - realized: CapLossMvrvPriceProfitPattern::new(client.clone(), "addrs_under_100k_btc".to_string()), - unrealized: NuplPattern::new(client.clone(), "addrs_under_100k_btc_nupl".to_string()), - addr_count: BaseDeltaPattern::new(client.clone(), "addrs_under_100k_btc_addr_count".to_string()), - } - } -} - -/// Series tree node. -pub struct SeriesTree_Cohorts_Addr_UnderAmount_100kBtc_Outputs { - pub unspent_count: BaseDeltaPattern, - pub spent_count: AverageBlockCumulativeSumPattern2, - pub spending_rate: SeriesPattern1, -} - -impl SeriesTree_Cohorts_Addr_UnderAmount_100kBtc_Outputs { - pub fn new(client: Arc, base_path: String) -> Self { - Self { - unspent_count: BaseDeltaPattern::new(client.clone(), "addrs_under_100k_btc_utxo_count".to_string()), - spent_count: AverageBlockCumulativeSumPattern2::new(client.clone(), "addrs_under_100k_btc_spent_utxo_count".to_string()), - spending_rate: SeriesPattern1::new(client.clone(), "addrs_under_100k_btc_spending_rate".to_string()), + _10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10sats".to_string()), + _100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_100sats".to_string()), + _1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_1k_sats".to_string()), + _10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10k_sats".to_string()), + _100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_100k_sats".to_string()), + _1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_1m_sats".to_string()), + _10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10m_sats".to_string()), + _1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_1btc".to_string()), + _10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10btc".to_string()), + _100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_100btc".to_string()), + _1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_1k_btc".to_string()), + _10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10k_btc".to_string()), + _100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_under_100k_btc".to_string()), } } } diff --git a/crates/brk_computer/src/distribution/metrics/outputs/base.rs b/crates/brk_computer/src/distribution/metrics/outputs/base.rs index 28c34de3f..88f1e7cf2 100644 --- a/crates/brk_computer/src/distribution/metrics/outputs/base.rs +++ b/crates/brk_computer/src/distribution/metrics/outputs/base.rs @@ -1,6 +1,8 @@ use brk_error::Result; use brk_traversable::Traversable; -use brk_types::{BasisPointsSigned32, Height, Indexes, StoredF32, StoredI64, StoredU32, StoredU64, Version}; +use brk_types::{ + BasisPointsSigned32, Height, Indexes, StoredF32, StoredI64, StoredU32, StoredU64, Version, +}; use vecdb::{AnyStoredVec, AnyVec, Exit, ReadableVec, Rw, StorageMode, WritableVec}; use crate::{ @@ -8,7 +10,7 @@ use crate::{ metrics::ImportConfig, state::{CohortState, CostBasisOps, RealizedOps}, }, - internal::{PerBlock, PerBlockCumulativeRolling, PerBlockWithDeltas, RatioU32U64F32}, + internal::{PerBlock, PerBlockCumulativeRolling, PerBlockWithDeltas, RatioU64F32}, }; /// Base output metrics: utxo_count + delta. @@ -32,12 +34,14 @@ impl OutputsBase { cfg.cached_starts, )?, spent_count: cfg.import("spent_utxo_count", v1)?, - spending_rate: cfg.import("spending_rate", v1)?, + spending_rate: cfg.import("spending_rate", Version::TWO)?, }) } pub(crate) fn min_len(&self) -> usize { - self.unspent_count.height.len() + self.unspent_count + .height + .len() .min(self.spent_count.block.len()) } @@ -69,9 +73,9 @@ impl OutputsBase { exit: &Exit, ) -> Result<()> { self.spending_rate - .compute_binary::( + .compute_binary::( max_from, - &self.spent_count.block, + &self.spent_count.sum.0._1y.height, all_utxo_count, exit, ) diff --git a/crates/brk_computer/src/internal/transform/mod.rs b/crates/brk_computer/src/internal/transform/mod.rs index 2ef08bfed..8a4527632 100644 --- a/crates/brk_computer/src/internal/transform/mod.rs +++ b/crates/brk_computer/src/internal/transform/mod.rs @@ -26,7 +26,7 @@ pub use derived::{ pub use ratio::{ RatioCentsBp32, RatioCentsSignedCentsBps32, RatioCentsSignedDollarsBps32, RatioDiffCentsBps32, RatioDiffDollarsBps32, RatioDiffF32Bps32, RatioDollarsBp16, RatioDollarsBp32, - RatioDollarsBps32, RatioSatsBp16, RatioU32U64F32, RatioU64Bp16, + RatioDollarsBps32, RatioSatsBp16, RatioU64Bp16, RatioU64F32, }; pub use specialized::{ BlockCountTarget1m, BlockCountTarget1w, BlockCountTarget1y, BlockCountTarget24h, diff --git a/crates/brk_computer/src/internal/transform/ratio.rs b/crates/brk_computer/src/internal/transform/ratio.rs index 34b8a6a41..42416d002 100644 --- a/crates/brk_computer/src/internal/transform/ratio.rs +++ b/crates/brk_computer/src/internal/transform/ratio.rs @@ -1,6 +1,6 @@ use brk_types::{ BasisPoints16, BasisPoints32, BasisPointsSigned32, Cents, CentsSigned, Dollars, Sats, StoredF32, - StoredU32, StoredU64, + StoredU64, }; use vecdb::BinaryTransform; @@ -112,11 +112,11 @@ impl BinaryTransform for RatioDollarsBp32 { } } -pub struct RatioU32U64F32; +pub struct RatioU64F32; -impl BinaryTransform for RatioU32U64F32 { +impl BinaryTransform for RatioU64F32 { #[inline(always)] - fn apply(numerator: StoredU32, denominator: StoredU64) -> StoredF32 { + fn apply(numerator: StoredU64, denominator: StoredU64) -> StoredF32 { if *denominator > 0 { StoredF32::from(*numerator as f64 / *denominator as f64) } else { diff --git a/crates/brk_traversable_derive/src/lib.rs b/crates/brk_traversable_derive/src/lib.rs index feb1f7f96..67b356d34 100644 --- a/crates/brk_traversable_derive/src/lib.rs +++ b/crates/brk_traversable_derive/src/lib.rs @@ -309,10 +309,16 @@ fn gen_traversable(input: &DeriveInput) -> proc_macro2::TokenStream { &field_traversable_types, ); + let to_tree_node_body = if struct_attr.hidden { + quote! { brk_traversable::TreeNode::Branch(brk_traversable::IndexMap::new()) } + } else { + field_traversals + }; + quote! { impl #impl_generics Traversable for #name #ty_generics #where_clause { fn to_tree_node(&self) -> brk_traversable::TreeNode { - #field_traversals + #to_tree_node_body } #iterator_impl diff --git a/modules/brk-client/index.js b/modules/brk-client/index.js index 31578f4ee..aa6451310 100644 --- a/modules/brk-client/index.js +++ b/modules/brk-client/index.js @@ -103,11 +103,6 @@ * * @typedef {number} Bitcoin */ -/** - * Position within a .blk file, encoding file index and byte offset - * - * @typedef {number} BlkPosition - */ /** * @typedef {Object} BlockCountParam * @property {number} blockCount - Number of recent blocks to include @@ -1852,6 +1847,29 @@ function createAverageBlockCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern( * @property {_1m1w1y24hPattern} sum */ +/** + * Create a AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern pattern node + * @template T + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern} + */ +function createAverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern(client, acc) { + return { + average: create_1m1w1y24hPattern(client, _m(acc, 'average')), + base: createSeriesPattern18(client, acc), + cumulative: createSeriesPattern1(client, _m(acc, 'cumulative')), + max: create_1m1w1y24hPattern(client, _m(acc, 'max')), + median: create_1m1w1y24hPattern(client, _m(acc, 'median')), + min: create_1m1w1y24hPattern(client, _m(acc, 'min')), + pct10: create_1m1w1y24hPattern(client, _m(acc, 'pct10')), + pct25: create_1m1w1y24hPattern(client, _m(acc, 'pct25')), + pct75: create_1m1w1y24hPattern(client, _m(acc, 'pct75')), + pct90: create_1m1w1y24hPattern(client, _m(acc, 'pct90')), + sum: create_1m1w1y24hPattern(client, _m(acc, 'sum')), + }; +} + /** * @typedef {Object} AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern3 * @property {SeriesPattern1} all @@ -1931,6 +1949,26 @@ function createAverageMaxMedianMinPct10Pct25Pct75Pct90SumPattern(client, acc) { * @property {GreedNetPainPattern} sentiment */ +/** + * Create a GrossInvestedInvestorLossNetNuplProfitSentimentPattern2 pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {GrossInvestedInvestorLossNetNuplProfitSentimentPattern2} + */ +function createGrossInvestedInvestorLossNetNuplProfitSentimentPattern2(client, acc) { + return { + grossPnl: createCentsUsdPattern3(client, _m(acc, 'unrealized_gross_pnl')), + investedCapital: createInPattern(client, _m(acc, 'invested_capital_in')), + investorCapInLossRaw: createSeriesPattern18(client, _m(acc, 'investor_cap_in_loss_raw')), + investorCapInProfitRaw: createSeriesPattern18(client, _m(acc, 'investor_cap_in_profit_raw')), + loss: createCentsNegativeToUsdPattern2(client, _m(acc, 'unrealized_loss')), + netPnl: createCentsToUsdPattern3(client, _m(acc, 'net_unrealized_pnl')), + nupl: createBpsRatioPattern(client, _m(acc, 'nupl')), + profit: createCentsToUsdPattern4(client, _m(acc, 'unrealized_profit')), + sentiment: createGreedNetPainPattern(client, acc), + }; +} + /** * @typedef {Object} BpsCentsPercentilesRatioSatsSmaStdUsdPattern * @property {SeriesPattern1} bps @@ -2041,6 +2079,24 @@ function createCapLossMvrvNetPriceProfitSoprPattern(client, acc) { * @property {BpsPercentRatioPattern3} supplyDensity */ +/** + * Create a InMaxMinPerSupplyPattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {InMaxMinPerSupplyPattern} + */ +function createInMaxMinPerSupplyPattern(client, acc) { + return { + inLoss: createPerPattern(client, _m(acc, 'cost_basis_in_loss_per')), + inProfit: createPerPattern(client, _m(acc, 'cost_basis_in_profit_per')), + max: createCentsSatsUsdPattern(client, _m(acc, 'cost_basis_max')), + min: createCentsSatsUsdPattern(client, _m(acc, 'cost_basis_min')), + perCoin: createPct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, _m(acc, 'cost_basis_per_coin')), + perDollar: createPct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, _m(acc, 'cost_basis_per_dollar')), + supplyDensity: createBpsPercentRatioPattern3(client, _m(acc, 'supply_density')), + }; +} + /** * @typedef {Object} MaxMedianMinPct10Pct25Pct75Pct90Pattern2 * @property {SeriesPattern18} max @@ -2138,6 +2194,23 @@ function create_1m1w1y2y4yAllPattern(client, acc) { * @property {NuplPattern} unrealized */ +/** + * Create a ActivityAddrOutputsRealizedSupplyUnrealizedPattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} + */ +function createActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, acc) { + return { + activity: createTransferPattern(client, _m(acc, 'transfer_volume')), + addrCount: createBaseDeltaPattern(client, _m(acc, 'addr_count')), + outputs: createSpendingSpentUnspentPattern(client, acc), + realized: createCapLossMvrvPriceProfitPattern(client, acc), + supply: createDeltaTotalPattern(client, _m(acc, 'supply')), + unrealized: createNuplPattern(client, _m(acc, 'nupl')), + }; +} + /** * @typedef {Object} AverageBlockCumulativeInSumPattern * @property {_1m1w1y24hPattern3} average @@ -2361,6 +2434,22 @@ function create_1m1w1y24hBlockPattern(client, acc) { * @property {LossNetNuplProfitPattern} unrealized */ +/** + * Create a ActivityOutputsRealizedSupplyUnrealizedPattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {ActivityOutputsRealizedSupplyUnrealizedPattern} + */ +function createActivityOutputsRealizedSupplyUnrealizedPattern(client, acc) { + return { + activity: createCoindaysTransferPattern(client, acc), + outputs: createSpendingSpentUnspentPattern(client, acc), + realized: createCapLossMvrvNetPriceProfitSoprPattern(client, acc), + supply: createDeltaHalfInToTotalPattern(client, _m(acc, 'supply')), + unrealized: createLossNetNuplProfitPattern(client, acc), + }; +} + /** * @typedef {Object} ActivityOutputsRealizedSupplyUnrealizedPattern3 * @property {TransferPattern} activity @@ -2370,6 +2459,22 @@ function create_1m1w1y24hBlockPattern(client, acc) { * @property {LossNuplProfitPattern} unrealized */ +/** + * Create a ActivityOutputsRealizedSupplyUnrealizedPattern3 pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {ActivityOutputsRealizedSupplyUnrealizedPattern3} + */ +function createActivityOutputsRealizedSupplyUnrealizedPattern3(client, acc) { + return { + activity: createTransferPattern(client, _m(acc, 'transfer_volume')), + outputs: createSpendingSpentUnspentPattern(client, acc), + realized: createCapLossMvrvPriceProfitPattern(client, acc), + supply: createDeltaHalfInTotalPattern2(client, _m(acc, 'supply')), + unrealized: createLossNuplProfitPattern(client, acc), + }; +} + /** * @typedef {Object} ActivityOutputsRealizedSupplyUnrealizedPattern2 * @property {TransferPattern} activity @@ -2379,6 +2484,22 @@ function create_1m1w1y24hBlockPattern(client, acc) { * @property {NuplPattern} unrealized */ +/** + * Create a ActivityOutputsRealizedSupplyUnrealizedPattern2 pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {ActivityOutputsRealizedSupplyUnrealizedPattern2} + */ +function createActivityOutputsRealizedSupplyUnrealizedPattern2(client, acc) { + return { + activity: createTransferPattern(client, _m(acc, 'transfer_volume')), + outputs: createSpendingSpentUnspentPattern(client, acc), + realized: createCapLossMvrvPriceProfitPattern(client, acc), + supply: createDeltaTotalPattern(client, _m(acc, 'supply')), + unrealized: createNuplPattern(client, _m(acc, 'nupl')), + }; +} + /** * @typedef {Object} BlockChangeCumulativeDeltaSumPattern * @property {CentsUsdPattern4} block @@ -3020,6 +3141,21 @@ function createCentsToUsdPattern3(client, acc) { * @property {AverageBlockCumulativeInSumPattern} transferVolume */ +/** + * Create a CoindaysCoinyearsDormancyTransferPattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {CoindaysCoinyearsDormancyTransferPattern} + */ +function createCoindaysCoinyearsDormancyTransferPattern(client, acc) { + return { + coindaysDestroyed: createAverageBlockCumulativeSumPattern(client, _m(acc, 'coindays_destroyed')), + coinyearsDestroyed: createSeriesPattern1(client, _m(acc, 'coinyears_destroyed')), + dormancy: create_1m1w1y24hPattern(client, _m(acc, 'dormancy')), + transferVolume: createAverageBlockCumulativeInSumPattern(client, _m(acc, 'transfer_volume')), + }; +} + /** * @typedef {Object} LossNetNuplProfitPattern * @property {CentsNegativeUsdPattern} loss @@ -3060,9 +3196,9 @@ function createLossNetNuplProfitPattern(client, acc) { function createNuplRealizedSupplyUnrealizedPattern(client, acc) { return { nupl: createBpsRatioPattern(client, _m(acc, 'nupl')), - realizedCap: createAllSthPattern(client, acc, ''), + realizedCap: createAllSthPattern(client, acc, 'realized_cap'), supply: createAllSthPattern2(client, acc), - unrealizedPnl: createAllSthPattern(client, acc, ''), + unrealizedPnl: createAllSthPattern(client, acc, 'unrealized_pnl'), }; } @@ -3123,6 +3259,20 @@ function createAverageBlockCumulativeSumPattern(client, acc) { * @property {AverageBlockCumulativeSumPattern} valueDestroyed */ +/** + * Create a AdjustedRatioValuePattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {AdjustedRatioValuePattern} + */ +function createAdjustedRatioValuePattern(client, acc) { + return { + adjusted: createRatioTransferValuePattern(client, acc), + ratio: create_1m1w1y24hPattern(client, _m(acc, 'sopr')), + valueDestroyed: createAverageBlockCumulativeSumPattern(client, _m(acc, 'value_destroyed')), + }; +} + /** * @typedef {Object} BlockCumulativeSumPattern * @property {CentsUsdPattern2} block @@ -3383,6 +3533,20 @@ function createCumulativeRollingSumPattern(client, acc) { * @property {CentsUsdPattern3} painIndex */ +/** + * Create a GreedNetPainPattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {GreedNetPainPattern} + */ +function createGreedNetPainPattern(client, acc) { + return { + greedIndex: createCentsUsdPattern3(client, _m(acc, 'greed_index')), + net: createCentsUsdPattern(client, _m(acc, 'net_sentiment')), + painIndex: createCentsUsdPattern3(client, _m(acc, 'pain_index')), + }; +} + /** * @typedef {Object} LossNuplProfitPattern * @property {CentsNegativeUsdPattern} loss @@ -3411,6 +3575,20 @@ function createLossNuplProfitPattern(client, acc) { * @property {AverageBlockCumulativeSumPattern} valueDestroyed */ +/** + * Create a RatioTransferValuePattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {RatioTransferValuePattern} + */ +function createRatioTransferValuePattern(client, acc) { + return { + ratio: create_1m1w1y24hPattern(client, _m(acc, 'asopr')), + transferVolume: createAverageBlockCumulativeSumPattern(client, _m(acc, 'adj_value_created')), + valueDestroyed: createAverageBlockCumulativeSumPattern(client, _m(acc, 'adj_value_destroyed')), + }; +} + /** * @typedef {Object} RsiStochPattern * @property {BpsPercentRatioPattern3} rsi @@ -3440,6 +3618,20 @@ function createRsiStochPattern(client, acc, disc) { * @property {BaseDeltaPattern} unspentCount */ +/** + * Create a SpendingSpentUnspentPattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated series name + * @returns {SpendingSpentUnspentPattern} + */ +function createSpendingSpentUnspentPattern(client, acc) { + return { + spendingRate: createSeriesPattern1(client, _m(acc, 'spending_rate')), + spentCount: createAverageBlockCumulativeSumPattern2(client, _m(acc, 'spent_utxo_count')), + unspentCount: createBaseDeltaPattern(client, _m(acc, 'utxo_count')), + }; +} + /** * @template T * @typedef {Object} _6bBlockTxPattern @@ -3967,7 +4159,7 @@ function createTransferPattern(client, acc) { * @property {SeriesTree_Blocks_Difficulty} difficulty * @property {SeriesTree_Blocks_Time} time * @property {SeriesTree_Blocks_Size} size - * @property {SeriesTree_Blocks_Weight} weight + * @property {AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern} weight * @property {SeriesTree_Blocks_Count} count * @property {SeriesTree_Blocks_Lookback} lookback * @property {SeriesTree_Blocks_Interval} interval @@ -4008,21 +4200,6 @@ function createTransferPattern(client, acc) { * @property {_1m1w1y24hPattern} pct90 */ -/** - * @typedef {Object} SeriesTree_Blocks_Weight - * @property {SeriesPattern18} base - * @property {SeriesPattern1} cumulative - * @property {_1m1w1y24hPattern} sum - * @property {_1m1w1y24hPattern} average - * @property {_1m1w1y24hPattern} min - * @property {_1m1w1y24hPattern} max - * @property {_1m1w1y24hPattern} pct10 - * @property {_1m1w1y24hPattern} pct25 - * @property {_1m1w1y24hPattern} median - * @property {_1m1w1y24hPattern} pct75 - * @property {_1m1w1y24hPattern} pct90 - */ - /** * @typedef {Object} SeriesTree_Blocks_Count * @property {_1m1w1y24hPattern} target @@ -4479,8 +4656,6 @@ function createTransferPattern(client, acc) { /** * @typedef {Object} SeriesTree_Positions - * @property {SeriesPattern18} block - * @property {SeriesPattern19} tx */ /** @@ -5610,26 +5785,11 @@ function createTransferPattern(client, acc) { /** * @typedef {Object} SeriesTree_Cohorts_Utxo_Sth * @property {DeltaHalfInToTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Sth_Outputs} outputs - * @property {SeriesTree_Cohorts_Utxo_Sth_Activity} activity + * @property {SpendingSpentUnspentPattern} outputs + * @property {CoindaysCoinyearsDormancyTransferPattern} activity * @property {SeriesTree_Cohorts_Utxo_Sth_Realized} realized - * @property {SeriesTree_Cohorts_Utxo_Sth_CostBasis} costBasis - * @property {SeriesTree_Cohorts_Utxo_Sth_Unrealized} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Sth_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Sth_Activity - * @property {AverageBlockCumulativeInSumPattern} transferVolume - * @property {AverageBlockCumulativeSumPattern} coindaysDestroyed - * @property {SeriesPattern1} coinyearsDestroyed - * @property {_1m1w1y24hPattern} dormancy + * @property {InMaxMinPerSupplyPattern} costBasis + * @property {GrossInvestedInvestorLossNetNuplProfitSentimentPattern2} unrealized */ /** @@ -5640,7 +5800,7 @@ function createTransferPattern(client, acc) { * @property {SeriesTree_Cohorts_Utxo_Sth_Realized_Price} price * @property {SeriesPattern1} mvrv * @property {BlockChangeCumulativeDeltaSumPattern} netPnl - * @property {SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr} sopr + * @property {AdjustedRatioValuePattern} sopr * @property {BlockCumulativeSumPattern} grossPnl * @property {_1m1w1y24hPattern7} sellSideRiskRatio * @property {BlockCumulativeSumPattern} peakRegret @@ -5744,74 +5904,14 @@ function createTransferPattern(client, acc) { * @property {PriceRatioPattern} m3sd */ -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr - * @property {AverageBlockCumulativeSumPattern} valueDestroyed - * @property {_1m1w1y24hPattern} ratio - * @property {SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr_Adjusted} adjusted - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr_Adjusted - * @property {_1m1w1y24hPattern} ratio - * @property {AverageBlockCumulativeSumPattern} transferVolume - * @property {AverageBlockCumulativeSumPattern} valueDestroyed - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Sth_CostBasis - * @property {PerPattern} inProfit - * @property {PerPattern} inLoss - * @property {CentsSatsUsdPattern} min - * @property {CentsSatsUsdPattern} max - * @property {Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern} perCoin - * @property {Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern} perDollar - * @property {BpsPercentRatioPattern3} supplyDensity - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Sth_Unrealized - * @property {BpsRatioPattern} nupl - * @property {CentsToUsdPattern4} profit - * @property {CentsNegativeToUsdPattern2} loss - * @property {CentsToUsdPattern3} netPnl - * @property {CentsUsdPattern3} grossPnl - * @property {InPattern} investedCapital - * @property {SeriesPattern18} investorCapInProfitRaw - * @property {SeriesPattern18} investorCapInLossRaw - * @property {SeriesTree_Cohorts_Utxo_Sth_Unrealized_Sentiment} sentiment - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Sth_Unrealized_Sentiment - * @property {CentsUsdPattern3} painIndex - * @property {CentsUsdPattern3} greedIndex - * @property {CentsUsdPattern} net - */ - /** * @typedef {Object} SeriesTree_Cohorts_Utxo_Lth * @property {DeltaHalfInToTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Lth_Outputs} outputs - * @property {SeriesTree_Cohorts_Utxo_Lth_Activity} activity + * @property {SpendingSpentUnspentPattern} outputs + * @property {CoindaysCoinyearsDormancyTransferPattern} activity * @property {SeriesTree_Cohorts_Utxo_Lth_Realized} realized - * @property {SeriesTree_Cohorts_Utxo_Lth_CostBasis} costBasis - * @property {SeriesTree_Cohorts_Utxo_Lth_Unrealized} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Lth_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Lth_Activity - * @property {AverageBlockCumulativeInSumPattern} transferVolume - * @property {AverageBlockCumulativeSumPattern} coindaysDestroyed - * @property {SeriesPattern1} coinyearsDestroyed - * @property {_1m1w1y24hPattern} dormancy + * @property {InMaxMinPerSupplyPattern} costBasis + * @property {GrossInvestedInvestorLossNetNuplProfitSentimentPattern2} unrealized */ /** @@ -5932,2315 +6032,172 @@ function createTransferPattern(client, acc) { * @property {_1m1w1y24hPattern} ratio */ -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Lth_CostBasis - * @property {PerPattern} inProfit - * @property {PerPattern} inLoss - * @property {CentsSatsUsdPattern} min - * @property {CentsSatsUsdPattern} max - * @property {Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern} perCoin - * @property {Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern} perDollar - * @property {BpsPercentRatioPattern3} supplyDensity - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Lth_Unrealized - * @property {BpsRatioPattern} nupl - * @property {CentsToUsdPattern4} profit - * @property {CentsNegativeToUsdPattern2} loss - * @property {CentsToUsdPattern3} netPnl - * @property {CentsUsdPattern3} grossPnl - * @property {InPattern} investedCapital - * @property {SeriesPattern18} investorCapInProfitRaw - * @property {SeriesPattern18} investorCapInLossRaw - * @property {SeriesTree_Cohorts_Utxo_Lth_Unrealized_Sentiment} sentiment - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Lth_Unrealized_Sentiment - * @property {CentsUsdPattern3} painIndex - * @property {CentsUsdPattern3} greedIndex - * @property {CentsUsdPattern} net - */ - /** * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange - * @property {SeriesTree_Cohorts_Utxo_AgeRange_Under1h} under1h - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d} _1hTo1d - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w} _1dTo1w - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m} _1wTo1m - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m} _1mTo2m - * @property {SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m} _2mTo3m - * @property {SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m} _3mTo4m - * @property {SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m} _4mTo5m - * @property {SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m} _5mTo6m - * @property {SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y} _6mTo1y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y} _1yTo2y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y} _2yTo3y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y} _3yTo4y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y} _4yTo5y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y} _5yTo6y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y} _6yTo7y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y} _7yTo8y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y} _8yTo10y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y} _10yTo12y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y} _12yTo15y - * @property {SeriesTree_Cohorts_Utxo_AgeRange_Over15y} over15y - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_Under1h - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_Under1h_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_Under1h_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_Over15y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AgeRange_Over15y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AgeRange_Over15y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} under1h + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1hTo1d + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1dTo1w + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1wTo1m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1mTo2m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2mTo3m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _3mTo4m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _4mTo5m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _5mTo6m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _6mTo1y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1yTo2y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2yTo3y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _3yTo4y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _4yTo5y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _5yTo6y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _6yTo7y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _7yTo8y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _8yTo10y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10yTo12y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _12yTo15y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} over15y */ /** * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge - * @property {SeriesTree_Cohorts_Utxo_UnderAge_1w} _1w - * @property {SeriesTree_Cohorts_Utxo_UnderAge_1m} _1m - * @property {SeriesTree_Cohorts_Utxo_UnderAge_2m} _2m - * @property {SeriesTree_Cohorts_Utxo_UnderAge_3m} _3m - * @property {SeriesTree_Cohorts_Utxo_UnderAge_4m} _4m - * @property {SeriesTree_Cohorts_Utxo_UnderAge_5m} _5m - * @property {SeriesTree_Cohorts_Utxo_UnderAge_6m} _6m - * @property {SeriesTree_Cohorts_Utxo_UnderAge_1y} _1y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_2y} _2y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_3y} _3y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_4y} _4y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_5y} _5y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_6y} _6y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_7y} _7y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_8y} _8y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_10y} _10y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_12y} _12y - * @property {SeriesTree_Cohorts_Utxo_UnderAge_15y} _15y - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_1w - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_1w_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_1w_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_1m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_1m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_1m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_2m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_2m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_2m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_3m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_3m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_3m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_4m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_4m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_4m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_5m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_5m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_5m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_6m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_6m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_6m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_1y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_1y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_1y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_2y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_2y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_2y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_3y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_3y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_3y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_4y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_4y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_4y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_5y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_5y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_5y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_6y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_6y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_6y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_7y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_7y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_7y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_8y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_8y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_8y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_10y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_10y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_10y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_12y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_12y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_12y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_15y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAge_15y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAge_15y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1w + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _3m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _4m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _5m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _6m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _3y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _4y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _5y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _6y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _7y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _8y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _12y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _15y */ /** * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge - * @property {SeriesTree_Cohorts_Utxo_OverAge_1d} _1d - * @property {SeriesTree_Cohorts_Utxo_OverAge_1w} _1w - * @property {SeriesTree_Cohorts_Utxo_OverAge_1m} _1m - * @property {SeriesTree_Cohorts_Utxo_OverAge_2m} _2m - * @property {SeriesTree_Cohorts_Utxo_OverAge_3m} _3m - * @property {SeriesTree_Cohorts_Utxo_OverAge_4m} _4m - * @property {SeriesTree_Cohorts_Utxo_OverAge_5m} _5m - * @property {SeriesTree_Cohorts_Utxo_OverAge_6m} _6m - * @property {SeriesTree_Cohorts_Utxo_OverAge_1y} _1y - * @property {SeriesTree_Cohorts_Utxo_OverAge_2y} _2y - * @property {SeriesTree_Cohorts_Utxo_OverAge_3y} _3y - * @property {SeriesTree_Cohorts_Utxo_OverAge_4y} _4y - * @property {SeriesTree_Cohorts_Utxo_OverAge_5y} _5y - * @property {SeriesTree_Cohorts_Utxo_OverAge_6y} _6y - * @property {SeriesTree_Cohorts_Utxo_OverAge_7y} _7y - * @property {SeriesTree_Cohorts_Utxo_OverAge_8y} _8y - * @property {SeriesTree_Cohorts_Utxo_OverAge_10y} _10y - * @property {SeriesTree_Cohorts_Utxo_OverAge_12y} _12y - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_1d - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_1d_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_1d_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_1w - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_1w_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_1w_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_1m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_1m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_1m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_2m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_2m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_2m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_3m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_3m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_3m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_4m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_4m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_4m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_5m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_5m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_5m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_6m - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_6m_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_6m_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_1y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_1y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_1y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_2y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_2y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_2y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_3y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_3y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_3y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_4y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_4y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_4y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_5y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_5y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_5y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_6y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_6y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_6y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_7y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_7y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_7y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_8y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_8y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_8y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_10y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_10y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_10y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_12y - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAge_12y_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAge_12y_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1d + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1w + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _3m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _4m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _5m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _6m + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _3y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _4y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _5y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _6y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _7y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _8y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10y + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _12y */ /** * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch - * @property {SeriesTree_Cohorts_Utxo_Epoch_0} _0 - * @property {SeriesTree_Cohorts_Utxo_Epoch_1} _1 - * @property {SeriesTree_Cohorts_Utxo_Epoch_2} _2 - * @property {SeriesTree_Cohorts_Utxo_Epoch_3} _3 - * @property {SeriesTree_Cohorts_Utxo_Epoch_4} _4 - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_0 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Epoch_0_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_0_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_1 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Epoch_1_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_1_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_2 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Epoch_2_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_2_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_3 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Epoch_3_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_3_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_4 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Epoch_4_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Epoch_4_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _0 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _3 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _4 */ /** * @typedef {Object} SeriesTree_Cohorts_Utxo_Class - * @property {SeriesTree_Cohorts_Utxo_Class_2009} _2009 - * @property {SeriesTree_Cohorts_Utxo_Class_2010} _2010 - * @property {SeriesTree_Cohorts_Utxo_Class_2011} _2011 - * @property {SeriesTree_Cohorts_Utxo_Class_2012} _2012 - * @property {SeriesTree_Cohorts_Utxo_Class_2013} _2013 - * @property {SeriesTree_Cohorts_Utxo_Class_2014} _2014 - * @property {SeriesTree_Cohorts_Utxo_Class_2015} _2015 - * @property {SeriesTree_Cohorts_Utxo_Class_2016} _2016 - * @property {SeriesTree_Cohorts_Utxo_Class_2017} _2017 - * @property {SeriesTree_Cohorts_Utxo_Class_2018} _2018 - * @property {SeriesTree_Cohorts_Utxo_Class_2019} _2019 - * @property {SeriesTree_Cohorts_Utxo_Class_2020} _2020 - * @property {SeriesTree_Cohorts_Utxo_Class_2021} _2021 - * @property {SeriesTree_Cohorts_Utxo_Class_2022} _2022 - * @property {SeriesTree_Cohorts_Utxo_Class_2023} _2023 - * @property {SeriesTree_Cohorts_Utxo_Class_2024} _2024 - * @property {SeriesTree_Cohorts_Utxo_Class_2025} _2025 - * @property {SeriesTree_Cohorts_Utxo_Class_2026} _2026 - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2009 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2009_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2009_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2010 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2010_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2010_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2011 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2011_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2011_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2012 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2012_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2012_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2013 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2013_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2013_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2014 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2014_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2014_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2015 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2015_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2015_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2016 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2016_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2016_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2017 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2017_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2017_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2018 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2018_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2018_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2019 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2019_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2019_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2020 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2020_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2020_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2021 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2021_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2021_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2022 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2022_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2022_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2023 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2023_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2023_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2024 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2024_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2024_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2025 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2025_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2025_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2026 - * @property {DeltaHalfInToTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_Class_2026_Outputs} outputs - * @property {CoindaysTransferPattern} activity - * @property {CapLossMvrvNetPriceProfitSoprPattern} realized - * @property {LossNetNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Class_2026_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2009 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2010 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2011 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2012 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2013 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2014 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2015 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2016 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2017 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2018 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2019 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2020 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2021 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2022 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2023 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2024 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2025 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _2026 */ /** * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1sat} _1sat - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10sats} _10sats - * @property {SeriesTree_Cohorts_Utxo_OverAmount_100sats} _100sats - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1kSats} _1kSats - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10kSats} _10kSats - * @property {SeriesTree_Cohorts_Utxo_OverAmount_100kSats} _100kSats - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1mSats} _1mSats - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10mSats} _10mSats - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1btc} _1btc - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10btc} _10btc - * @property {SeriesTree_Cohorts_Utxo_OverAmount_100btc} _100btc - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1kBtc} _1kBtc - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10kBtc} _10kBtc - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1sat - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1sat_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1sat_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_100sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_100sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_100sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_100kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_100kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_100kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_100btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_100btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_100btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_1kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_1kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_OverAmount_10kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_OverAmount_10kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1sat + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10kBtc */ /** * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange - * @property {SeriesTree_Cohorts_Utxo_AmountRange_0sats} _0sats - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats} _1satTo10sats - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats} _10satsTo100sats - * @property {SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats} _100satsTo1kSats - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats} _1kSatsTo10kSats - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats} _10kSatsTo100kSats - * @property {SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats} _100kSatsTo1mSats - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats} _1mSatsTo10mSats - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc} _10mSatsTo1btc - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc} _1btcTo10btc - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc} _10btcTo100btc - * @property {SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc} _100btcTo1kBtc - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc} _1kBtcTo10kBtc - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc} _10kBtcTo100kBtc - * @property {SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc} over100kBtc - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_0sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_0sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_0sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _0sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1satTo10sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10satsTo100sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100satsTo1kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1kSatsTo10kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10kSatsTo100kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100kSatsTo1mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1mSatsTo10mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10mSatsTo1btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1btcTo10btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10btcTo100btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100btcTo1kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1kBtcTo10kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10kBtcTo100kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} over100kBtc */ /** * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10sats} _10sats - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_100sats} _100sats - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_1kSats} _1kSats - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10kSats} _10kSats - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_100kSats} _100kSats - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_1mSats} _1mSats - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10mSats} _10mSats - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_1btc} _1btc - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10btc} _10btc - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_100btc} _100btc - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc} _1kBtc - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc} _10kBtc - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc} _100kBtc - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_100sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_100sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_100sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_1kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_1kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_1kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_100kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_100kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_100kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_1mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_1mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_1mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_1btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_1btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_1btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_100btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_100btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_100btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _1kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _10kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern2} _100kBtc */ /** * @typedef {Object} SeriesTree_Cohorts_Utxo_Type - * @property {SeriesTree_Cohorts_Utxo_Type_P2pk65} p2pk65 - * @property {SeriesTree_Cohorts_Utxo_Type_P2pk33} p2pk33 - * @property {SeriesTree_Cohorts_Utxo_Type_P2pkh} p2pkh - * @property {SeriesTree_Cohorts_Utxo_Type_P2ms} p2ms - * @property {SeriesTree_Cohorts_Utxo_Type_P2sh} p2sh - * @property {SeriesTree_Cohorts_Utxo_Type_P2wpkh} p2wpkh - * @property {SeriesTree_Cohorts_Utxo_Type_P2wsh} p2wsh - * @property {SeriesTree_Cohorts_Utxo_Type_P2tr} p2tr - * @property {SeriesTree_Cohorts_Utxo_Type_P2a} p2a - * @property {SeriesTree_Cohorts_Utxo_Type_Unknown} unknown - * @property {SeriesTree_Cohorts_Utxo_Type_Empty} empty - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2pk65 - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_P2pk65_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2pk65_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2pk33 - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_P2pk33_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2pk33_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2pkh - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_P2pkh_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2pkh_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2ms - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_P2ms_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2ms_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2sh - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_P2sh_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2sh_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2wpkh - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_P2wpkh_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2wpkh_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2wsh - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_P2wsh_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2wsh_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2tr - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_P2tr_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2tr_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2a - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_P2a_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_P2a_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_Unknown - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_Unknown_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_Unknown_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_Empty - * @property {DeltaHalfInTotalPattern2} supply - * @property {SeriesTree_Cohorts_Utxo_Type_Empty_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {LossNuplProfitPattern} unrealized - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Utxo_Type_Empty_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} p2pk65 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} p2pk33 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} p2pkh + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} p2ms + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} p2sh + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} p2wpkh + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} p2wsh + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} p2tr + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} p2a + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} unknown + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern3} empty */ /** @@ -8344,752 +6301,55 @@ function createTransferPattern(client, acc) { /** * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount - * @property {SeriesTree_Cohorts_Addr_OverAmount_1sat} _1sat - * @property {SeriesTree_Cohorts_Addr_OverAmount_10sats} _10sats - * @property {SeriesTree_Cohorts_Addr_OverAmount_100sats} _100sats - * @property {SeriesTree_Cohorts_Addr_OverAmount_1kSats} _1kSats - * @property {SeriesTree_Cohorts_Addr_OverAmount_10kSats} _10kSats - * @property {SeriesTree_Cohorts_Addr_OverAmount_100kSats} _100kSats - * @property {SeriesTree_Cohorts_Addr_OverAmount_1mSats} _1mSats - * @property {SeriesTree_Cohorts_Addr_OverAmount_10mSats} _10mSats - * @property {SeriesTree_Cohorts_Addr_OverAmount_1btc} _1btc - * @property {SeriesTree_Cohorts_Addr_OverAmount_10btc} _10btc - * @property {SeriesTree_Cohorts_Addr_OverAmount_100btc} _100btc - * @property {SeriesTree_Cohorts_Addr_OverAmount_1kBtc} _1kBtc - * @property {SeriesTree_Cohorts_Addr_OverAmount_10kBtc} _10kBtc - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1sat - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_1sat_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1sat_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_10sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_100sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_100sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_100sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_1kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_10kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_100kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_100kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_100kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_1mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_10mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_1btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_10btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_100btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_100btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_100btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_1kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_1kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_OverAmount_10kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_OverAmount_10kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1sat + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10sats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100sats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1kSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10kSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100kSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1mSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10mSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1btc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10btc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100btc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1kBtc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10kBtc */ /** * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange - * @property {SeriesTree_Cohorts_Addr_AmountRange_0sats} _0sats - * @property {SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats} _1satTo10sats - * @property {SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats} _10satsTo100sats - * @property {SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats} _100satsTo1kSats - * @property {SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats} _1kSatsTo10kSats - * @property {SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats} _10kSatsTo100kSats - * @property {SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats} _100kSatsTo1mSats - * @property {SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats} _1mSatsTo10mSats - * @property {SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc} _10mSatsTo1btc - * @property {SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc} _1btcTo10btc - * @property {SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc} _10btcTo100btc - * @property {SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc} _100btcTo1kBtc - * @property {SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc} _1kBtcTo10kBtc - * @property {SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc} _10kBtcTo100kBtc - * @property {SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc} over100kBtc - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_0sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_0sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_0sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _0sats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1satTo10sats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10satsTo100sats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100satsTo1kSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1kSatsTo10kSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10kSatsTo100kSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100kSatsTo1mSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1mSatsTo10mSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10mSatsTo1btc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1btcTo10btc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10btcTo100btc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100btcTo1kBtc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1kBtcTo10kBtc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10kBtcTo100kBtc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} over100kBtc */ /** * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10sats} _10sats - * @property {SeriesTree_Cohorts_Addr_UnderAmount_100sats} _100sats - * @property {SeriesTree_Cohorts_Addr_UnderAmount_1kSats} _1kSats - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10kSats} _10kSats - * @property {SeriesTree_Cohorts_Addr_UnderAmount_100kSats} _100kSats - * @property {SeriesTree_Cohorts_Addr_UnderAmount_1mSats} _1mSats - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10mSats} _10mSats - * @property {SeriesTree_Cohorts_Addr_UnderAmount_1btc} _1btc - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10btc} _10btc - * @property {SeriesTree_Cohorts_Addr_UnderAmount_100btc} _100btc - * @property {SeriesTree_Cohorts_Addr_UnderAmount_1kBtc} _1kBtc - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10kBtc} _10kBtc - * @property {SeriesTree_Cohorts_Addr_UnderAmount_100kBtc} _100kBtc - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_100sats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_100sats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_100sats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_1kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_1kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_1kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_100kSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_100kSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_100kSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_1mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_1mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_1mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10mSats - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10mSats_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10mSats_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_1btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_1btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_1btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_100btc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_100btc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_100btc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_1kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_1kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_1kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_10kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_10kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_100kBtc - * @property {DeltaTotalPattern} supply - * @property {SeriesTree_Cohorts_Addr_UnderAmount_100kBtc_Outputs} outputs - * @property {TransferPattern} activity - * @property {CapLossMvrvPriceProfitPattern} realized - * @property {NuplPattern} unrealized - * @property {BaseDeltaPattern} addrCount - */ - -/** - * @typedef {Object} SeriesTree_Cohorts_Addr_UnderAmount_100kBtc_Outputs - * @property {BaseDeltaPattern} unspentCount - * @property {AverageBlockCumulativeSumPattern2} spentCount - * @property {SeriesPattern1} spendingRate + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10sats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100sats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1kSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10kSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100kSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1mSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10mSats + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1btc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10btc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100btc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _1kBtc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _10kBtc + * @property {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} _100kBtc */ /** @@ -10314,19 +7574,7 @@ class BrkClient extends BrkClientBase { pct75: create_1m1w1y24hPattern(this, 'block_size_pct75'), pct90: create_1m1w1y24hPattern(this, 'block_size_pct90'), }, - weight: { - base: createSeriesPattern18(this, 'block_weight'), - cumulative: createSeriesPattern1(this, 'block_weight_cumulative'), - sum: create_1m1w1y24hPattern(this, 'block_weight_sum'), - average: create_1m1w1y24hPattern(this, 'block_weight_average'), - min: create_1m1w1y24hPattern(this, 'block_weight_min'), - max: create_1m1w1y24hPattern(this, 'block_weight_max'), - pct10: create_1m1w1y24hPattern(this, 'block_weight_pct10'), - pct25: create_1m1w1y24hPattern(this, 'block_weight_pct25'), - median: create_1m1w1y24hPattern(this, 'block_weight_median'), - pct75: create_1m1w1y24hPattern(this, 'block_weight_pct75'), - pct90: create_1m1w1y24hPattern(this, 'block_weight_pct90'), - }, + weight: createAverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern(this, 'block_weight'), count: { target: create_1m1w1y24hPattern(this, 'block_count_target'), total: createAverageBlockCumulativeSumPattern2(this, 'block_count'), @@ -10642,8 +7890,6 @@ class BrkClient extends BrkClientBase { }, }, positions: { - block: createSeriesPattern18(this, 'position'), - tx: createSeriesPattern19(this, 'position'), }, cointime: { activity: { @@ -11455,17 +8701,8 @@ class BrkClient extends BrkClientBase { }, sth: { supply: createDeltaHalfInToTotalPattern2(this, 'sth_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'sth_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'sth_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'sth_spending_rate'), - }, - activity: { - transferVolume: createAverageBlockCumulativeInSumPattern(this, 'sth_transfer_volume'), - coindaysDestroyed: createAverageBlockCumulativeSumPattern(this, 'sth_coindays_destroyed'), - coinyearsDestroyed: createSeriesPattern1(this, 'sth_coinyears_destroyed'), - dormancy: create_1m1w1y24hPattern(this, 'sth_dormancy'), - }, + outputs: createSpendingSpentUnspentPattern(this, 'sth'), + activity: createCoindaysCoinyearsDormancyTransferPattern(this, 'sth'), realized: { cap: createCentsDeltaToUsdPattern(this, 'sth_realized_cap'), profit: createBlockCumulativeSumPattern(this, 'sth_realized_profit'), @@ -11551,59 +8788,20 @@ class BrkClient extends BrkClientBase { }, mvrv: createSeriesPattern1(this, 'sth_mvrv'), netPnl: createBlockChangeCumulativeDeltaSumPattern(this, 'sth_net'), - sopr: { - valueDestroyed: createAverageBlockCumulativeSumPattern(this, 'sth_value_destroyed'), - ratio: create_1m1w1y24hPattern(this, 'sth_sopr'), - adjusted: { - ratio: create_1m1w1y24hPattern(this, 'sth_asopr'), - transferVolume: createAverageBlockCumulativeSumPattern(this, 'sth_adj_value_created'), - valueDestroyed: createAverageBlockCumulativeSumPattern(this, 'sth_adj_value_destroyed'), - }, - }, + sopr: createAdjustedRatioValuePattern(this, 'sth'), grossPnl: createBlockCumulativeSumPattern(this, 'sth_realized_gross_pnl'), sellSideRiskRatio: create_1m1w1y24hPattern7(this, 'sth_sell_side_risk_ratio'), peakRegret: createBlockCumulativeSumPattern(this, 'sth_realized_peak_regret'), investor: createPricePattern(this, 'sth_investor_price'), profitToLossRatio: create_1m1w1y24hPattern(this, 'sth_realized_profit_to_loss_ratio'), }, - costBasis: { - inProfit: createPerPattern(this, 'sth_cost_basis_in_profit_per'), - inLoss: createPerPattern(this, 'sth_cost_basis_in_loss_per'), - min: createCentsSatsUsdPattern(this, 'sth_cost_basis_min'), - max: createCentsSatsUsdPattern(this, 'sth_cost_basis_max'), - perCoin: createPct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(this, 'sth_cost_basis_per_coin'), - perDollar: createPct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(this, 'sth_cost_basis_per_dollar'), - supplyDensity: createBpsPercentRatioPattern3(this, 'sth_supply_density'), - }, - unrealized: { - nupl: createBpsRatioPattern(this, 'sth_nupl'), - profit: createCentsToUsdPattern4(this, 'sth_unrealized_profit'), - loss: createCentsNegativeToUsdPattern2(this, 'sth_unrealized_loss'), - netPnl: createCentsToUsdPattern3(this, 'sth_net_unrealized_pnl'), - grossPnl: createCentsUsdPattern3(this, 'sth_unrealized_gross_pnl'), - investedCapital: createInPattern(this, 'sth_invested_capital_in'), - investorCapInProfitRaw: createSeriesPattern18(this, 'sth_investor_cap_in_profit_raw'), - investorCapInLossRaw: createSeriesPattern18(this, 'sth_investor_cap_in_loss_raw'), - sentiment: { - painIndex: createCentsUsdPattern3(this, 'sth_pain_index'), - greedIndex: createCentsUsdPattern3(this, 'sth_greed_index'), - net: createCentsUsdPattern(this, 'sth_net_sentiment'), - }, - }, + costBasis: createInMaxMinPerSupplyPattern(this, 'sth'), + unrealized: createGrossInvestedInvestorLossNetNuplProfitSentimentPattern2(this, 'sth'), }, lth: { supply: createDeltaHalfInToTotalPattern2(this, 'lth_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'lth_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'lth_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'lth_spending_rate'), - }, - activity: { - transferVolume: createAverageBlockCumulativeInSumPattern(this, 'lth_transfer_volume'), - coindaysDestroyed: createAverageBlockCumulativeSumPattern(this, 'lth_coindays_destroyed'), - coinyearsDestroyed: createSeriesPattern1(this, 'lth_coinyears_destroyed'), - dormancy: create_1m1w1y24hPattern(this, 'lth_dormancy'), - }, + outputs: createSpendingSpentUnspentPattern(this, 'lth'), + activity: createCoindaysCoinyearsDormancyTransferPattern(this, 'lth'), realized: { cap: createCentsDeltaToUsdPattern(this, 'lth_realized_cap'), profit: createBlockCumulativeSumPattern(this, 'lth_realized_profit'), @@ -11699,1500 +8897,158 @@ class BrkClient extends BrkClientBase { investor: createPricePattern(this, 'lth_investor_price'), profitToLossRatio: create_1m1w1y24hPattern(this, 'lth_realized_profit_to_loss_ratio'), }, - costBasis: { - inProfit: createPerPattern(this, 'lth_cost_basis_in_profit_per'), - inLoss: createPerPattern(this, 'lth_cost_basis_in_loss_per'), - min: createCentsSatsUsdPattern(this, 'lth_cost_basis_min'), - max: createCentsSatsUsdPattern(this, 'lth_cost_basis_max'), - perCoin: createPct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(this, 'lth_cost_basis_per_coin'), - perDollar: createPct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(this, 'lth_cost_basis_per_dollar'), - supplyDensity: createBpsPercentRatioPattern3(this, 'lth_supply_density'), - }, - unrealized: { - nupl: createBpsRatioPattern(this, 'lth_nupl'), - profit: createCentsToUsdPattern4(this, 'lth_unrealized_profit'), - loss: createCentsNegativeToUsdPattern2(this, 'lth_unrealized_loss'), - netPnl: createCentsToUsdPattern3(this, 'lth_net_unrealized_pnl'), - grossPnl: createCentsUsdPattern3(this, 'lth_unrealized_gross_pnl'), - investedCapital: createInPattern(this, 'lth_invested_capital_in'), - investorCapInProfitRaw: createSeriesPattern18(this, 'lth_investor_cap_in_profit_raw'), - investorCapInLossRaw: createSeriesPattern18(this, 'lth_investor_cap_in_loss_raw'), - sentiment: { - painIndex: createCentsUsdPattern3(this, 'lth_pain_index'), - greedIndex: createCentsUsdPattern3(this, 'lth_greed_index'), - net: createCentsUsdPattern(this, 'lth_net_sentiment'), - }, - }, + costBasis: createInMaxMinPerSupplyPattern(this, 'lth'), + unrealized: createGrossInvestedInvestorLossNetNuplProfitSentimentPattern2(this, 'lth'), }, ageRange: { - under1h: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_1h_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_1h_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_1h_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_1h_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_1h_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_1h_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_1h_old'), - }, - _1hTo1d: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_1h_to_1d_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1h_to_1d_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1h_to_1d_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1h_to_1d_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_1h_to_1d_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_1h_to_1d_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_1h_to_1d_old'), - }, - _1dTo1w: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_1d_to_1w_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1d_to_1w_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1d_to_1w_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1d_to_1w_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_1d_to_1w_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_1d_to_1w_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_1d_to_1w_old'), - }, - _1wTo1m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_1w_to_1m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1w_to_1m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1w_to_1m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1w_to_1m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_1w_to_1m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_1w_to_1m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_1w_to_1m_old'), - }, - _1mTo2m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_1m_to_2m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1m_to_2m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1m_to_2m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1m_to_2m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_1m_to_2m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_1m_to_2m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_1m_to_2m_old'), - }, - _2mTo3m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_2m_to_3m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_2m_to_3m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_2m_to_3m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_2m_to_3m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_2m_to_3m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_2m_to_3m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_2m_to_3m_old'), - }, - _3mTo4m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_3m_to_4m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_3m_to_4m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_3m_to_4m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_3m_to_4m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_3m_to_4m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_3m_to_4m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_3m_to_4m_old'), - }, - _4mTo5m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_4m_to_5m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_4m_to_5m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_4m_to_5m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_4m_to_5m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_4m_to_5m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_4m_to_5m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_4m_to_5m_old'), - }, - _5mTo6m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_5m_to_6m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_5m_to_6m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_5m_to_6m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_5m_to_6m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_5m_to_6m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_5m_to_6m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_5m_to_6m_old'), - }, - _6mTo1y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_6m_to_1y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_6m_to_1y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_6m_to_1y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_6m_to_1y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_6m_to_1y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_6m_to_1y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_6m_to_1y_old'), - }, - _1yTo2y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_1y_to_2y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1y_to_2y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1y_to_2y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1y_to_2y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_1y_to_2y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_1y_to_2y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_1y_to_2y_old'), - }, - _2yTo3y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_2y_to_3y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_2y_to_3y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_2y_to_3y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_2y_to_3y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_2y_to_3y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_2y_to_3y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_2y_to_3y_old'), - }, - _3yTo4y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_3y_to_4y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_3y_to_4y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_3y_to_4y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_3y_to_4y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_3y_to_4y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_3y_to_4y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_3y_to_4y_old'), - }, - _4yTo5y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_4y_to_5y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_4y_to_5y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_4y_to_5y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_4y_to_5y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_4y_to_5y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_4y_to_5y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_4y_to_5y_old'), - }, - _5yTo6y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_5y_to_6y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_5y_to_6y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_5y_to_6y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_5y_to_6y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_5y_to_6y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_5y_to_6y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_5y_to_6y_old'), - }, - _6yTo7y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_6y_to_7y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_6y_to_7y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_6y_to_7y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_6y_to_7y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_6y_to_7y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_6y_to_7y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_6y_to_7y_old'), - }, - _7yTo8y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_7y_to_8y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_7y_to_8y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_7y_to_8y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_7y_to_8y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_7y_to_8y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_7y_to_8y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_7y_to_8y_old'), - }, - _8yTo10y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_8y_to_10y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_8y_to_10y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_8y_to_10y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_8y_to_10y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_8y_to_10y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_8y_to_10y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_8y_to_10y_old'), - }, - _10yTo12y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_10y_to_12y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_10y_to_12y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_10y_to_12y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_10y_to_12y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_10y_to_12y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_10y_to_12y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_10y_to_12y_old'), - }, - _12yTo15y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_12y_to_15y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_12y_to_15y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_12y_to_15y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_12y_to_15y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_12y_to_15y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_12y_to_15y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_12y_to_15y_old'), - }, - over15y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_15y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_15y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_15y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_15y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_15y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_15y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_15y_old'), - }, + under1h: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_1h_old'), + _1hTo1d: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_1h_to_1d_old'), + _1dTo1w: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_1d_to_1w_old'), + _1wTo1m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_1w_to_1m_old'), + _1mTo2m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_1m_to_2m_old'), + _2mTo3m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_2m_to_3m_old'), + _3mTo4m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_3m_to_4m_old'), + _4mTo5m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_4m_to_5m_old'), + _5mTo6m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_5m_to_6m_old'), + _6mTo1y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_6m_to_1y_old'), + _1yTo2y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_1y_to_2y_old'), + _2yTo3y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_2y_to_3y_old'), + _3yTo4y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_3y_to_4y_old'), + _4yTo5y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_4y_to_5y_old'), + _5yTo6y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_5y_to_6y_old'), + _6yTo7y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_6y_to_7y_old'), + _7yTo8y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_7y_to_8y_old'), + _8yTo10y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_8y_to_10y_old'), + _10yTo12y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_10y_to_12y_old'), + _12yTo15y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_12y_to_15y_old'), + over15y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_15y_old'), }, underAge: { - _1w: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_1w_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_1w_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_1w_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_1w_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_1w_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_1w_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_1w_old'), - }, - _1m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_1m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_1m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_1m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_1m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_1m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_1m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_1m_old'), - }, - _2m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_2m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_2m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_2m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_2m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_2m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_2m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_2m_old'), - }, - _3m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_3m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_3m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_3m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_3m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_3m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_3m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_3m_old'), - }, - _4m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_4m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_4m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_4m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_4m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_4m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_4m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_4m_old'), - }, - _5m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_5m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_5m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_5m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_5m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_5m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_5m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_5m_old'), - }, - _6m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_6m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_6m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_6m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_6m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_6m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_6m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_6m_old'), - }, - _1y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_1y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_1y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_1y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_1y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_1y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_1y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_1y_old'), - }, - _2y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_2y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_2y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_2y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_2y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_2y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_2y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_2y_old'), - }, - _3y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_3y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_3y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_3y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_3y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_3y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_3y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_3y_old'), - }, - _4y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_4y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_4y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_4y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_4y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_4y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_4y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_4y_old'), - }, - _5y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_5y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_5y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_5y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_5y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_5y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_5y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_5y_old'), - }, - _6y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_6y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_6y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_6y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_6y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_6y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_6y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_6y_old'), - }, - _7y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_7y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_7y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_7y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_7y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_7y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_7y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_7y_old'), - }, - _8y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_8y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_8y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_8y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_8y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_8y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_8y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_8y_old'), - }, - _10y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_10y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_10y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_10y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_10y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_10y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_10y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_10y_old'), - }, - _12y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_12y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_12y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_12y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_12y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_12y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_12y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_12y_old'), - }, - _15y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_under_15y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_15y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_15y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_15y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_under_15y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_under_15y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_under_15y_old'), - }, + _1w: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_1w_old'), + _1m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_1m_old'), + _2m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_2m_old'), + _3m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_3m_old'), + _4m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_4m_old'), + _5m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_5m_old'), + _6m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_6m_old'), + _1y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_1y_old'), + _2y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_2y_old'), + _3y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_3y_old'), + _4y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_4y_old'), + _5y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_5y_old'), + _6y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_6y_old'), + _7y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_7y_old'), + _8y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_8y_old'), + _10y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_10y_old'), + _12y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_12y_old'), + _15y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_15y_old'), }, overAge: { - _1d: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_1d_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_1d_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_1d_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_1d_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_1d_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_1d_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_1d_old'), - }, - _1w: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_1w_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_1w_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_1w_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_1w_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_1w_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_1w_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_1w_old'), - }, - _1m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_1m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_1m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_1m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_1m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_1m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_1m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_1m_old'), - }, - _2m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_2m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_2m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_2m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_2m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_2m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_2m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_2m_old'), - }, - _3m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_3m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_3m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_3m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_3m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_3m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_3m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_3m_old'), - }, - _4m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_4m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_4m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_4m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_4m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_4m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_4m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_4m_old'), - }, - _5m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_5m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_5m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_5m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_5m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_5m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_5m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_5m_old'), - }, - _6m: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_6m_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_6m_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_6m_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_6m_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_6m_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_6m_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_6m_old'), - }, - _1y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_1y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_1y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_1y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_1y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_1y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_1y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_1y_old'), - }, - _2y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_2y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_2y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_2y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_2y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_2y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_2y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_2y_old'), - }, - _3y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_3y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_3y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_3y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_3y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_3y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_3y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_3y_old'), - }, - _4y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_4y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_4y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_4y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_4y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_4y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_4y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_4y_old'), - }, - _5y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_5y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_5y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_5y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_5y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_5y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_5y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_5y_old'), - }, - _6y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_6y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_6y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_6y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_6y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_6y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_6y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_6y_old'), - }, - _7y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_7y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_7y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_7y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_7y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_7y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_7y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_7y_old'), - }, - _8y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_8y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_8y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_8y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_8y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_8y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_8y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_8y_old'), - }, - _10y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_10y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_10y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_10y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_10y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_10y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_10y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_10y_old'), - }, - _12y: { - supply: createDeltaHalfInToTotalPattern(this, 'utxos_over_12y_old_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_12y_old_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_12y_old_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_12y_old_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'utxos_over_12y_old'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'utxos_over_12y_old'), - unrealized: createLossNetNuplProfitPattern(this, 'utxos_over_12y_old'), - }, + _1d: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_1d_old'), + _1w: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_1w_old'), + _1m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_1m_old'), + _2m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_2m_old'), + _3m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_3m_old'), + _4m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_4m_old'), + _5m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_5m_old'), + _6m: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_6m_old'), + _1y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_1y_old'), + _2y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_2y_old'), + _3y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_3y_old'), + _4y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_4y_old'), + _5y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_5y_old'), + _6y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_6y_old'), + _7y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_7y_old'), + _8y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_8y_old'), + _10y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_10y_old'), + _12y: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_12y_old'), }, epoch: { - _0: { - supply: createDeltaHalfInToTotalPattern(this, 'epoch_0_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'epoch_0_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'epoch_0_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'epoch_0_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'epoch_0'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'epoch_0'), - unrealized: createLossNetNuplProfitPattern(this, 'epoch_0'), - }, - _1: { - supply: createDeltaHalfInToTotalPattern(this, 'epoch_1_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'epoch_1_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'epoch_1_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'epoch_1_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'epoch_1'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'epoch_1'), - unrealized: createLossNetNuplProfitPattern(this, 'epoch_1'), - }, - _2: { - supply: createDeltaHalfInToTotalPattern(this, 'epoch_2_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'epoch_2_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'epoch_2_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'epoch_2_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'epoch_2'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'epoch_2'), - unrealized: createLossNetNuplProfitPattern(this, 'epoch_2'), - }, - _3: { - supply: createDeltaHalfInToTotalPattern(this, 'epoch_3_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'epoch_3_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'epoch_3_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'epoch_3_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'epoch_3'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'epoch_3'), - unrealized: createLossNetNuplProfitPattern(this, 'epoch_3'), - }, - _4: { - supply: createDeltaHalfInToTotalPattern(this, 'epoch_4_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'epoch_4_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'epoch_4_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'epoch_4_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'epoch_4'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'epoch_4'), - unrealized: createLossNetNuplProfitPattern(this, 'epoch_4'), - }, + _0: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'epoch_0'), + _1: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'epoch_1'), + _2: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'epoch_2'), + _3: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'epoch_3'), + _4: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'epoch_4'), }, class: { - _2009: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2009_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2009_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2009_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2009_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2009'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2009'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2009'), - }, - _2010: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2010_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2010_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2010_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2010_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2010'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2010'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2010'), - }, - _2011: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2011_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2011_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2011_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2011_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2011'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2011'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2011'), - }, - _2012: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2012_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2012_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2012_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2012_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2012'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2012'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2012'), - }, - _2013: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2013_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2013_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2013_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2013_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2013'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2013'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2013'), - }, - _2014: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2014_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2014_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2014_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2014_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2014'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2014'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2014'), - }, - _2015: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2015_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2015_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2015_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2015_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2015'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2015'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2015'), - }, - _2016: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2016_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2016_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2016_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2016_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2016'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2016'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2016'), - }, - _2017: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2017_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2017_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2017_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2017_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2017'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2017'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2017'), - }, - _2018: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2018_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2018_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2018_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2018_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2018'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2018'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2018'), - }, - _2019: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2019_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2019_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2019_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2019_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2019'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2019'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2019'), - }, - _2020: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2020_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2020_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2020_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2020_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2020'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2020'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2020'), - }, - _2021: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2021_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2021_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2021_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2021_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2021'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2021'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2021'), - }, - _2022: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2022_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2022_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2022_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2022_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2022'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2022'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2022'), - }, - _2023: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2023_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2023_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2023_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2023_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2023'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2023'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2023'), - }, - _2024: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2024_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2024_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2024_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2024_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2024'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2024'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2024'), - }, - _2025: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2025_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2025_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2025_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2025_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2025'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2025'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2025'), - }, - _2026: { - supply: createDeltaHalfInToTotalPattern(this, 'class_2026_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'class_2026_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'class_2026_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'class_2026_spending_rate'), - }, - activity: createCoindaysTransferPattern(this, 'class_2026'), - realized: createCapLossMvrvNetPriceProfitSoprPattern(this, 'class_2026'), - unrealized: createLossNetNuplProfitPattern(this, 'class_2026'), - }, + _2009: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2009'), + _2010: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2010'), + _2011: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2011'), + _2012: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2012'), + _2013: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2013'), + _2014: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2014'), + _2015: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2015'), + _2016: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2016'), + _2017: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2017'), + _2018: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2018'), + _2019: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2019'), + _2020: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2020'), + _2021: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2021'), + _2022: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2022'), + _2023: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2023'), + _2024: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2024'), + _2025: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2025'), + _2026: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'class_2026'), }, overAmount: { - _1sat: { - supply: createDeltaTotalPattern(this, 'utxos_over_1sat_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_1sat_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_1sat_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_1sat_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_1sat_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_1sat'), - unrealized: createNuplPattern(this, 'utxos_over_1sat_nupl'), - }, - _10sats: { - supply: createDeltaTotalPattern(this, 'utxos_over_10sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_10sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_10sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_10sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_10sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_10sats'), - unrealized: createNuplPattern(this, 'utxos_over_10sats_nupl'), - }, - _100sats: { - supply: createDeltaTotalPattern(this, 'utxos_over_100sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_100sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_100sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_100sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_100sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_100sats'), - unrealized: createNuplPattern(this, 'utxos_over_100sats_nupl'), - }, - _1kSats: { - supply: createDeltaTotalPattern(this, 'utxos_over_1k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_1k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_1k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_1k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_1k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_1k_sats'), - unrealized: createNuplPattern(this, 'utxos_over_1k_sats_nupl'), - }, - _10kSats: { - supply: createDeltaTotalPattern(this, 'utxos_over_10k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_10k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_10k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_10k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_10k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_10k_sats'), - unrealized: createNuplPattern(this, 'utxos_over_10k_sats_nupl'), - }, - _100kSats: { - supply: createDeltaTotalPattern(this, 'utxos_over_100k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_100k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_100k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_100k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_100k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_100k_sats'), - unrealized: createNuplPattern(this, 'utxos_over_100k_sats_nupl'), - }, - _1mSats: { - supply: createDeltaTotalPattern(this, 'utxos_over_1m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_1m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_1m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_1m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_1m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_1m_sats'), - unrealized: createNuplPattern(this, 'utxos_over_1m_sats_nupl'), - }, - _10mSats: { - supply: createDeltaTotalPattern(this, 'utxos_over_10m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_10m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_10m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_10m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_10m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_10m_sats'), - unrealized: createNuplPattern(this, 'utxos_over_10m_sats_nupl'), - }, - _1btc: { - supply: createDeltaTotalPattern(this, 'utxos_over_1btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_1btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_1btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_1btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_1btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_1btc'), - unrealized: createNuplPattern(this, 'utxos_over_1btc_nupl'), - }, - _10btc: { - supply: createDeltaTotalPattern(this, 'utxos_over_10btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_10btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_10btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_10btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_10btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_10btc'), - unrealized: createNuplPattern(this, 'utxos_over_10btc_nupl'), - }, - _100btc: { - supply: createDeltaTotalPattern(this, 'utxos_over_100btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_100btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_100btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_100btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_100btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_100btc'), - unrealized: createNuplPattern(this, 'utxos_over_100btc_nupl'), - }, - _1kBtc: { - supply: createDeltaTotalPattern(this, 'utxos_over_1k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_1k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_1k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_1k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_1k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_1k_btc'), - unrealized: createNuplPattern(this, 'utxos_over_1k_btc_nupl'), - }, - _10kBtc: { - supply: createDeltaTotalPattern(this, 'utxos_over_10k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_10k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_10k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_10k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_10k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_10k_btc'), - unrealized: createNuplPattern(this, 'utxos_over_10k_btc_nupl'), - }, + _1sat: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_1sat'), + _10sats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_10sats'), + _100sats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_100sats'), + _1kSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_1k_sats'), + _10kSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_10k_sats'), + _100kSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_100k_sats'), + _1mSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_1m_sats'), + _10mSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_10m_sats'), + _1btc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_1btc'), + _10btc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_10btc'), + _100btc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_100btc'), + _1kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_1k_btc'), + _10kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_10k_btc'), }, amountRange: { - _0sats: { - supply: createDeltaTotalPattern(this, 'utxos_0sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_0sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_0sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_0sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_0sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_0sats'), - unrealized: createNuplPattern(this, 'utxos_0sats_nupl'), - }, - _1satTo10sats: { - supply: createDeltaTotalPattern(this, 'utxos_1sat_to_10sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1sat_to_10sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1sat_to_10sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1sat_to_10sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_1sat_to_10sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_1sat_to_10sats'), - unrealized: createNuplPattern(this, 'utxos_1sat_to_10sats_nupl'), - }, - _10satsTo100sats: { - supply: createDeltaTotalPattern(this, 'utxos_10sats_to_100sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_10sats_to_100sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_10sats_to_100sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_10sats_to_100sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_10sats_to_100sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_10sats_to_100sats'), - unrealized: createNuplPattern(this, 'utxos_10sats_to_100sats_nupl'), - }, - _100satsTo1kSats: { - supply: createDeltaTotalPattern(this, 'utxos_100sats_to_1k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_100sats_to_1k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_100sats_to_1k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_100sats_to_1k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_100sats_to_1k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_100sats_to_1k_sats'), - unrealized: createNuplPattern(this, 'utxos_100sats_to_1k_sats_nupl'), - }, - _1kSatsTo10kSats: { - supply: createDeltaTotalPattern(this, 'utxos_1k_sats_to_10k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1k_sats_to_10k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1k_sats_to_10k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1k_sats_to_10k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_1k_sats_to_10k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_1k_sats_to_10k_sats'), - unrealized: createNuplPattern(this, 'utxos_1k_sats_to_10k_sats_nupl'), - }, - _10kSatsTo100kSats: { - supply: createDeltaTotalPattern(this, 'utxos_10k_sats_to_100k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_10k_sats_to_100k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_10k_sats_to_100k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_10k_sats_to_100k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_10k_sats_to_100k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_10k_sats_to_100k_sats'), - unrealized: createNuplPattern(this, 'utxos_10k_sats_to_100k_sats_nupl'), - }, - _100kSatsTo1mSats: { - supply: createDeltaTotalPattern(this, 'utxos_100k_sats_to_1m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_100k_sats_to_1m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_100k_sats_to_1m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_100k_sats_to_1m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_100k_sats_to_1m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_100k_sats_to_1m_sats'), - unrealized: createNuplPattern(this, 'utxos_100k_sats_to_1m_sats_nupl'), - }, - _1mSatsTo10mSats: { - supply: createDeltaTotalPattern(this, 'utxos_1m_sats_to_10m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1m_sats_to_10m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1m_sats_to_10m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1m_sats_to_10m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_1m_sats_to_10m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_1m_sats_to_10m_sats'), - unrealized: createNuplPattern(this, 'utxos_1m_sats_to_10m_sats_nupl'), - }, - _10mSatsTo1btc: { - supply: createDeltaTotalPattern(this, 'utxos_10m_sats_to_1btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_10m_sats_to_1btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_10m_sats_to_1btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_10m_sats_to_1btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_10m_sats_to_1btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_10m_sats_to_1btc'), - unrealized: createNuplPattern(this, 'utxos_10m_sats_to_1btc_nupl'), - }, - _1btcTo10btc: { - supply: createDeltaTotalPattern(this, 'utxos_1btc_to_10btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1btc_to_10btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1btc_to_10btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1btc_to_10btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_1btc_to_10btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_1btc_to_10btc'), - unrealized: createNuplPattern(this, 'utxos_1btc_to_10btc_nupl'), - }, - _10btcTo100btc: { - supply: createDeltaTotalPattern(this, 'utxos_10btc_to_100btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_10btc_to_100btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_10btc_to_100btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_10btc_to_100btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_10btc_to_100btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_10btc_to_100btc'), - unrealized: createNuplPattern(this, 'utxos_10btc_to_100btc_nupl'), - }, - _100btcTo1kBtc: { - supply: createDeltaTotalPattern(this, 'utxos_100btc_to_1k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_100btc_to_1k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_100btc_to_1k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_100btc_to_1k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_100btc_to_1k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_100btc_to_1k_btc'), - unrealized: createNuplPattern(this, 'utxos_100btc_to_1k_btc_nupl'), - }, - _1kBtcTo10kBtc: { - supply: createDeltaTotalPattern(this, 'utxos_1k_btc_to_10k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_1k_btc_to_10k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_1k_btc_to_10k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_1k_btc_to_10k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_1k_btc_to_10k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_1k_btc_to_10k_btc'), - unrealized: createNuplPattern(this, 'utxos_1k_btc_to_10k_btc_nupl'), - }, - _10kBtcTo100kBtc: { - supply: createDeltaTotalPattern(this, 'utxos_10k_btc_to_100k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_10k_btc_to_100k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_10k_btc_to_100k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_10k_btc_to_100k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_10k_btc_to_100k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_10k_btc_to_100k_btc'), - unrealized: createNuplPattern(this, 'utxos_10k_btc_to_100k_btc_nupl'), - }, - over100kBtc: { - supply: createDeltaTotalPattern(this, 'utxos_over_100k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_over_100k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_over_100k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_over_100k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_over_100k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_over_100k_btc'), - unrealized: createNuplPattern(this, 'utxos_over_100k_btc_nupl'), - }, + _0sats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_0sats'), + _1satTo10sats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_1sat_to_10sats'), + _10satsTo100sats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_10sats_to_100sats'), + _100satsTo1kSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_100sats_to_1k_sats'), + _1kSatsTo10kSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_1k_sats_to_10k_sats'), + _10kSatsTo100kSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_10k_sats_to_100k_sats'), + _100kSatsTo1mSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_100k_sats_to_1m_sats'), + _1mSatsTo10mSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_1m_sats_to_10m_sats'), + _10mSatsTo1btc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_10m_sats_to_1btc'), + _1btcTo10btc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_1btc_to_10btc'), + _10btcTo100btc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_10btc_to_100btc'), + _100btcTo1kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_100btc_to_1k_btc'), + _1kBtcTo10kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_1k_btc_to_10k_btc'), + _10kBtcTo100kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_10k_btc_to_100k_btc'), + over100kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_over_100k_btc'), }, underAmount: { - _10sats: { - supply: createDeltaTotalPattern(this, 'utxos_under_10sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_10sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_10sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_10sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_10sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_10sats'), - unrealized: createNuplPattern(this, 'utxos_under_10sats_nupl'), - }, - _100sats: { - supply: createDeltaTotalPattern(this, 'utxos_under_100sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_100sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_100sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_100sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_100sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_100sats'), - unrealized: createNuplPattern(this, 'utxos_under_100sats_nupl'), - }, - _1kSats: { - supply: createDeltaTotalPattern(this, 'utxos_under_1k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_1k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_1k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_1k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_1k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_1k_sats'), - unrealized: createNuplPattern(this, 'utxos_under_1k_sats_nupl'), - }, - _10kSats: { - supply: createDeltaTotalPattern(this, 'utxos_under_10k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_10k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_10k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_10k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_10k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_10k_sats'), - unrealized: createNuplPattern(this, 'utxos_under_10k_sats_nupl'), - }, - _100kSats: { - supply: createDeltaTotalPattern(this, 'utxos_under_100k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_100k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_100k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_100k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_100k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_100k_sats'), - unrealized: createNuplPattern(this, 'utxos_under_100k_sats_nupl'), - }, - _1mSats: { - supply: createDeltaTotalPattern(this, 'utxos_under_1m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_1m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_1m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_1m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_1m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_1m_sats'), - unrealized: createNuplPattern(this, 'utxos_under_1m_sats_nupl'), - }, - _10mSats: { - supply: createDeltaTotalPattern(this, 'utxos_under_10m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_10m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_10m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_10m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_10m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_10m_sats'), - unrealized: createNuplPattern(this, 'utxos_under_10m_sats_nupl'), - }, - _1btc: { - supply: createDeltaTotalPattern(this, 'utxos_under_1btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_1btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_1btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_1btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_1btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_1btc'), - unrealized: createNuplPattern(this, 'utxos_under_1btc_nupl'), - }, - _10btc: { - supply: createDeltaTotalPattern(this, 'utxos_under_10btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_10btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_10btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_10btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_10btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_10btc'), - unrealized: createNuplPattern(this, 'utxos_under_10btc_nupl'), - }, - _100btc: { - supply: createDeltaTotalPattern(this, 'utxos_under_100btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_100btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_100btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_100btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_100btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_100btc'), - unrealized: createNuplPattern(this, 'utxos_under_100btc_nupl'), - }, - _1kBtc: { - supply: createDeltaTotalPattern(this, 'utxos_under_1k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_1k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_1k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_1k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_1k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_1k_btc'), - unrealized: createNuplPattern(this, 'utxos_under_1k_btc_nupl'), - }, - _10kBtc: { - supply: createDeltaTotalPattern(this, 'utxos_under_10k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_10k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_10k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_10k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_10k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_10k_btc'), - unrealized: createNuplPattern(this, 'utxos_under_10k_btc_nupl'), - }, - _100kBtc: { - supply: createDeltaTotalPattern(this, 'utxos_under_100k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'utxos_under_100k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'utxos_under_100k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'utxos_under_100k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'utxos_under_100k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'utxos_under_100k_btc'), - unrealized: createNuplPattern(this, 'utxos_under_100k_btc_nupl'), - }, + _10sats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_10sats'), + _100sats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_100sats'), + _1kSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_1k_sats'), + _10kSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_10k_sats'), + _100kSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_100k_sats'), + _1mSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_1m_sats'), + _10mSats: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_10m_sats'), + _1btc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_1btc'), + _10btc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_10btc'), + _100btc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_100btc'), + _1kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_1k_btc'), + _10kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_10k_btc'), + _100kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern2(this, 'utxos_under_100k_btc'), }, type: { - p2pk65: { - supply: createDeltaHalfInTotalPattern2(this, 'p2pk65_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'p2pk65_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'p2pk65_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'p2pk65_spending_rate'), - }, - activity: createTransferPattern(this, 'p2pk65_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'p2pk65'), - unrealized: createLossNuplProfitPattern(this, 'p2pk65'), - }, - p2pk33: { - supply: createDeltaHalfInTotalPattern2(this, 'p2pk33_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'p2pk33_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'p2pk33_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'p2pk33_spending_rate'), - }, - activity: createTransferPattern(this, 'p2pk33_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'p2pk33'), - unrealized: createLossNuplProfitPattern(this, 'p2pk33'), - }, - p2pkh: { - supply: createDeltaHalfInTotalPattern2(this, 'p2pkh_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'p2pkh_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'p2pkh_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'p2pkh_spending_rate'), - }, - activity: createTransferPattern(this, 'p2pkh_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'p2pkh'), - unrealized: createLossNuplProfitPattern(this, 'p2pkh'), - }, - p2ms: { - supply: createDeltaHalfInTotalPattern2(this, 'p2ms_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'p2ms_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'p2ms_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'p2ms_spending_rate'), - }, - activity: createTransferPattern(this, 'p2ms_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'p2ms'), - unrealized: createLossNuplProfitPattern(this, 'p2ms'), - }, - p2sh: { - supply: createDeltaHalfInTotalPattern2(this, 'p2sh_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'p2sh_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'p2sh_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'p2sh_spending_rate'), - }, - activity: createTransferPattern(this, 'p2sh_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'p2sh'), - unrealized: createLossNuplProfitPattern(this, 'p2sh'), - }, - p2wpkh: { - supply: createDeltaHalfInTotalPattern2(this, 'p2wpkh_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'p2wpkh_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'p2wpkh_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'p2wpkh_spending_rate'), - }, - activity: createTransferPattern(this, 'p2wpkh_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'p2wpkh'), - unrealized: createLossNuplProfitPattern(this, 'p2wpkh'), - }, - p2wsh: { - supply: createDeltaHalfInTotalPattern2(this, 'p2wsh_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'p2wsh_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'p2wsh_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'p2wsh_spending_rate'), - }, - activity: createTransferPattern(this, 'p2wsh_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'p2wsh'), - unrealized: createLossNuplProfitPattern(this, 'p2wsh'), - }, - p2tr: { - supply: createDeltaHalfInTotalPattern2(this, 'p2tr_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'p2tr_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'p2tr_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'p2tr_spending_rate'), - }, - activity: createTransferPattern(this, 'p2tr_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'p2tr'), - unrealized: createLossNuplProfitPattern(this, 'p2tr'), - }, - p2a: { - supply: createDeltaHalfInTotalPattern2(this, 'p2a_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'p2a_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'p2a_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'p2a_spending_rate'), - }, - activity: createTransferPattern(this, 'p2a_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'p2a'), - unrealized: createLossNuplProfitPattern(this, 'p2a'), - }, - unknown: { - supply: createDeltaHalfInTotalPattern2(this, 'unknown_outputs_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'unknown_outputs_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'unknown_outputs_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'unknown_outputs_spending_rate'), - }, - activity: createTransferPattern(this, 'unknown_outputs_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'unknown_outputs'), - unrealized: createLossNuplProfitPattern(this, 'unknown_outputs'), - }, - empty: { - supply: createDeltaHalfInTotalPattern2(this, 'empty_outputs_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'empty_outputs_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'empty_outputs_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'empty_outputs_spending_rate'), - }, - activity: createTransferPattern(this, 'empty_outputs_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'empty_outputs'), - unrealized: createLossNuplProfitPattern(this, 'empty_outputs'), - }, + p2pk65: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'p2pk65'), + p2pk33: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'p2pk33'), + p2pkh: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'p2pkh'), + p2ms: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'p2ms'), + p2sh: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'p2sh'), + p2wpkh: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'p2wpkh'), + p2wsh: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'p2wsh'), + p2tr: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'p2tr'), + p2a: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'p2a'), + unknown: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'unknown_outputs'), + empty: createActivityOutputsRealizedSupplyUnrealizedPattern3(this, 'empty_outputs'), }, profitability: { range: { @@ -13276,502 +9132,51 @@ class BrkClient extends BrkClientBase { }, addr: { overAmount: { - _1sat: { - supply: createDeltaTotalPattern(this, 'addrs_over_1sat_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_1sat_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_1sat_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_1sat_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_1sat_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_1sat'), - unrealized: createNuplPattern(this, 'addrs_over_1sat_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_1sat_addr_count'), - }, - _10sats: { - supply: createDeltaTotalPattern(this, 'addrs_over_10sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_10sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_10sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_10sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_10sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_10sats'), - unrealized: createNuplPattern(this, 'addrs_over_10sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_10sats_addr_count'), - }, - _100sats: { - supply: createDeltaTotalPattern(this, 'addrs_over_100sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_100sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_100sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_100sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_100sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_100sats'), - unrealized: createNuplPattern(this, 'addrs_over_100sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_100sats_addr_count'), - }, - _1kSats: { - supply: createDeltaTotalPattern(this, 'addrs_over_1k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_1k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_1k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_1k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_1k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_1k_sats'), - unrealized: createNuplPattern(this, 'addrs_over_1k_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_1k_sats_addr_count'), - }, - _10kSats: { - supply: createDeltaTotalPattern(this, 'addrs_over_10k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_10k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_10k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_10k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_10k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_10k_sats'), - unrealized: createNuplPattern(this, 'addrs_over_10k_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_10k_sats_addr_count'), - }, - _100kSats: { - supply: createDeltaTotalPattern(this, 'addrs_over_100k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_100k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_100k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_100k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_100k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_100k_sats'), - unrealized: createNuplPattern(this, 'addrs_over_100k_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_100k_sats_addr_count'), - }, - _1mSats: { - supply: createDeltaTotalPattern(this, 'addrs_over_1m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_1m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_1m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_1m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_1m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_1m_sats'), - unrealized: createNuplPattern(this, 'addrs_over_1m_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_1m_sats_addr_count'), - }, - _10mSats: { - supply: createDeltaTotalPattern(this, 'addrs_over_10m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_10m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_10m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_10m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_10m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_10m_sats'), - unrealized: createNuplPattern(this, 'addrs_over_10m_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_10m_sats_addr_count'), - }, - _1btc: { - supply: createDeltaTotalPattern(this, 'addrs_over_1btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_1btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_1btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_1btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_1btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_1btc'), - unrealized: createNuplPattern(this, 'addrs_over_1btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_1btc_addr_count'), - }, - _10btc: { - supply: createDeltaTotalPattern(this, 'addrs_over_10btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_10btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_10btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_10btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_10btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_10btc'), - unrealized: createNuplPattern(this, 'addrs_over_10btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_10btc_addr_count'), - }, - _100btc: { - supply: createDeltaTotalPattern(this, 'addrs_over_100btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_100btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_100btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_100btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_100btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_100btc'), - unrealized: createNuplPattern(this, 'addrs_over_100btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_100btc_addr_count'), - }, - _1kBtc: { - supply: createDeltaTotalPattern(this, 'addrs_over_1k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_1k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_1k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_1k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_1k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_1k_btc'), - unrealized: createNuplPattern(this, 'addrs_over_1k_btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_1k_btc_addr_count'), - }, - _10kBtc: { - supply: createDeltaTotalPattern(this, 'addrs_over_10k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_10k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_10k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_10k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_10k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_10k_btc'), - unrealized: createNuplPattern(this, 'addrs_over_10k_btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_10k_btc_addr_count'), - }, + _1sat: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_1sat'), + _10sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_10sats'), + _100sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_100sats'), + _1kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_1k_sats'), + _10kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_10k_sats'), + _100kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_100k_sats'), + _1mSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_1m_sats'), + _10mSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_10m_sats'), + _1btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_1btc'), + _10btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_10btc'), + _100btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_100btc'), + _1kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_1k_btc'), + _10kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_10k_btc'), }, amountRange: { - _0sats: { - supply: createDeltaTotalPattern(this, 'addrs_0sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_0sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_0sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_0sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_0sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_0sats'), - unrealized: createNuplPattern(this, 'addrs_0sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_0sats_addr_count'), - }, - _1satTo10sats: { - supply: createDeltaTotalPattern(this, 'addrs_1sat_to_10sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_1sat_to_10sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_1sat_to_10sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_1sat_to_10sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_1sat_to_10sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_1sat_to_10sats'), - unrealized: createNuplPattern(this, 'addrs_1sat_to_10sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_1sat_to_10sats_addr_count'), - }, - _10satsTo100sats: { - supply: createDeltaTotalPattern(this, 'addrs_10sats_to_100sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_10sats_to_100sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_10sats_to_100sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_10sats_to_100sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_10sats_to_100sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_10sats_to_100sats'), - unrealized: createNuplPattern(this, 'addrs_10sats_to_100sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_10sats_to_100sats_addr_count'), - }, - _100satsTo1kSats: { - supply: createDeltaTotalPattern(this, 'addrs_100sats_to_1k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_100sats_to_1k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_100sats_to_1k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_100sats_to_1k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_100sats_to_1k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_100sats_to_1k_sats'), - unrealized: createNuplPattern(this, 'addrs_100sats_to_1k_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_100sats_to_1k_sats_addr_count'), - }, - _1kSatsTo10kSats: { - supply: createDeltaTotalPattern(this, 'addrs_1k_sats_to_10k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_1k_sats_to_10k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_1k_sats_to_10k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_1k_sats_to_10k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_1k_sats_to_10k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_1k_sats_to_10k_sats'), - unrealized: createNuplPattern(this, 'addrs_1k_sats_to_10k_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_1k_sats_to_10k_sats_addr_count'), - }, - _10kSatsTo100kSats: { - supply: createDeltaTotalPattern(this, 'addrs_10k_sats_to_100k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_10k_sats_to_100k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_10k_sats_to_100k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_10k_sats_to_100k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_10k_sats_to_100k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_10k_sats_to_100k_sats'), - unrealized: createNuplPattern(this, 'addrs_10k_sats_to_100k_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_10k_sats_to_100k_sats_addr_count'), - }, - _100kSatsTo1mSats: { - supply: createDeltaTotalPattern(this, 'addrs_100k_sats_to_1m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_100k_sats_to_1m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_100k_sats_to_1m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_100k_sats_to_1m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_100k_sats_to_1m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_100k_sats_to_1m_sats'), - unrealized: createNuplPattern(this, 'addrs_100k_sats_to_1m_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_100k_sats_to_1m_sats_addr_count'), - }, - _1mSatsTo10mSats: { - supply: createDeltaTotalPattern(this, 'addrs_1m_sats_to_10m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_1m_sats_to_10m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_1m_sats_to_10m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_1m_sats_to_10m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_1m_sats_to_10m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_1m_sats_to_10m_sats'), - unrealized: createNuplPattern(this, 'addrs_1m_sats_to_10m_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_1m_sats_to_10m_sats_addr_count'), - }, - _10mSatsTo1btc: { - supply: createDeltaTotalPattern(this, 'addrs_10m_sats_to_1btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_10m_sats_to_1btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_10m_sats_to_1btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_10m_sats_to_1btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_10m_sats_to_1btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_10m_sats_to_1btc'), - unrealized: createNuplPattern(this, 'addrs_10m_sats_to_1btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_10m_sats_to_1btc_addr_count'), - }, - _1btcTo10btc: { - supply: createDeltaTotalPattern(this, 'addrs_1btc_to_10btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_1btc_to_10btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_1btc_to_10btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_1btc_to_10btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_1btc_to_10btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_1btc_to_10btc'), - unrealized: createNuplPattern(this, 'addrs_1btc_to_10btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_1btc_to_10btc_addr_count'), - }, - _10btcTo100btc: { - supply: createDeltaTotalPattern(this, 'addrs_10btc_to_100btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_10btc_to_100btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_10btc_to_100btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_10btc_to_100btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_10btc_to_100btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_10btc_to_100btc'), - unrealized: createNuplPattern(this, 'addrs_10btc_to_100btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_10btc_to_100btc_addr_count'), - }, - _100btcTo1kBtc: { - supply: createDeltaTotalPattern(this, 'addrs_100btc_to_1k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_100btc_to_1k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_100btc_to_1k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_100btc_to_1k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_100btc_to_1k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_100btc_to_1k_btc'), - unrealized: createNuplPattern(this, 'addrs_100btc_to_1k_btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_100btc_to_1k_btc_addr_count'), - }, - _1kBtcTo10kBtc: { - supply: createDeltaTotalPattern(this, 'addrs_1k_btc_to_10k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_1k_btc_to_10k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_1k_btc_to_10k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_1k_btc_to_10k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_1k_btc_to_10k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_1k_btc_to_10k_btc'), - unrealized: createNuplPattern(this, 'addrs_1k_btc_to_10k_btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_1k_btc_to_10k_btc_addr_count'), - }, - _10kBtcTo100kBtc: { - supply: createDeltaTotalPattern(this, 'addrs_10k_btc_to_100k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_10k_btc_to_100k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_10k_btc_to_100k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_10k_btc_to_100k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_10k_btc_to_100k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_10k_btc_to_100k_btc'), - unrealized: createNuplPattern(this, 'addrs_10k_btc_to_100k_btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_10k_btc_to_100k_btc_addr_count'), - }, - over100kBtc: { - supply: createDeltaTotalPattern(this, 'addrs_over_100k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_over_100k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_over_100k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_over_100k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_over_100k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_over_100k_btc'), - unrealized: createNuplPattern(this, 'addrs_over_100k_btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_over_100k_btc_addr_count'), - }, + _0sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_0sats'), + _1satTo10sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_1sat_to_10sats'), + _10satsTo100sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_10sats_to_100sats'), + _100satsTo1kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_100sats_to_1k_sats'), + _1kSatsTo10kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_1k_sats_to_10k_sats'), + _10kSatsTo100kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_10k_sats_to_100k_sats'), + _100kSatsTo1mSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_100k_sats_to_1m_sats'), + _1mSatsTo10mSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_1m_sats_to_10m_sats'), + _10mSatsTo1btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_10m_sats_to_1btc'), + _1btcTo10btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_1btc_to_10btc'), + _10btcTo100btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_10btc_to_100btc'), + _100btcTo1kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_100btc_to_1k_btc'), + _1kBtcTo10kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_1k_btc_to_10k_btc'), + _10kBtcTo100kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_10k_btc_to_100k_btc'), + over100kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_over_100k_btc'), }, underAmount: { - _10sats: { - supply: createDeltaTotalPattern(this, 'addrs_under_10sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_10sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_10sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_10sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_10sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_10sats'), - unrealized: createNuplPattern(this, 'addrs_under_10sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_10sats_addr_count'), - }, - _100sats: { - supply: createDeltaTotalPattern(this, 'addrs_under_100sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_100sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_100sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_100sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_100sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_100sats'), - unrealized: createNuplPattern(this, 'addrs_under_100sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_100sats_addr_count'), - }, - _1kSats: { - supply: createDeltaTotalPattern(this, 'addrs_under_1k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_1k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_1k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_1k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_1k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_1k_sats'), - unrealized: createNuplPattern(this, 'addrs_under_1k_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_1k_sats_addr_count'), - }, - _10kSats: { - supply: createDeltaTotalPattern(this, 'addrs_under_10k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_10k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_10k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_10k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_10k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_10k_sats'), - unrealized: createNuplPattern(this, 'addrs_under_10k_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_10k_sats_addr_count'), - }, - _100kSats: { - supply: createDeltaTotalPattern(this, 'addrs_under_100k_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_100k_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_100k_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_100k_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_100k_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_100k_sats'), - unrealized: createNuplPattern(this, 'addrs_under_100k_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_100k_sats_addr_count'), - }, - _1mSats: { - supply: createDeltaTotalPattern(this, 'addrs_under_1m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_1m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_1m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_1m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_1m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_1m_sats'), - unrealized: createNuplPattern(this, 'addrs_under_1m_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_1m_sats_addr_count'), - }, - _10mSats: { - supply: createDeltaTotalPattern(this, 'addrs_under_10m_sats_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_10m_sats_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_10m_sats_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_10m_sats_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_10m_sats_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_10m_sats'), - unrealized: createNuplPattern(this, 'addrs_under_10m_sats_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_10m_sats_addr_count'), - }, - _1btc: { - supply: createDeltaTotalPattern(this, 'addrs_under_1btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_1btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_1btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_1btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_1btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_1btc'), - unrealized: createNuplPattern(this, 'addrs_under_1btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_1btc_addr_count'), - }, - _10btc: { - supply: createDeltaTotalPattern(this, 'addrs_under_10btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_10btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_10btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_10btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_10btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_10btc'), - unrealized: createNuplPattern(this, 'addrs_under_10btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_10btc_addr_count'), - }, - _100btc: { - supply: createDeltaTotalPattern(this, 'addrs_under_100btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_100btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_100btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_100btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_100btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_100btc'), - unrealized: createNuplPattern(this, 'addrs_under_100btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_100btc_addr_count'), - }, - _1kBtc: { - supply: createDeltaTotalPattern(this, 'addrs_under_1k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_1k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_1k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_1k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_1k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_1k_btc'), - unrealized: createNuplPattern(this, 'addrs_under_1k_btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_1k_btc_addr_count'), - }, - _10kBtc: { - supply: createDeltaTotalPattern(this, 'addrs_under_10k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_10k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_10k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_10k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_10k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_10k_btc'), - unrealized: createNuplPattern(this, 'addrs_under_10k_btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_10k_btc_addr_count'), - }, - _100kBtc: { - supply: createDeltaTotalPattern(this, 'addrs_under_100k_btc_supply'), - outputs: { - unspentCount: createBaseDeltaPattern(this, 'addrs_under_100k_btc_utxo_count'), - spentCount: createAverageBlockCumulativeSumPattern2(this, 'addrs_under_100k_btc_spent_utxo_count'), - spendingRate: createSeriesPattern1(this, 'addrs_under_100k_btc_spending_rate'), - }, - activity: createTransferPattern(this, 'addrs_under_100k_btc_transfer_volume'), - realized: createCapLossMvrvPriceProfitPattern(this, 'addrs_under_100k_btc'), - unrealized: createNuplPattern(this, 'addrs_under_100k_btc_nupl'), - addrCount: createBaseDeltaPattern(this, 'addrs_under_100k_btc_addr_count'), - }, + _10sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_10sats'), + _100sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_100sats'), + _1kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_1k_sats'), + _10kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_10k_sats'), + _100kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_100k_sats'), + _1mSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_1m_sats'), + _10mSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_10m_sats'), + _1btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_1btc'), + _10btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_10btc'), + _100btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_100btc'), + _1kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_1k_btc'), + _10kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_10k_btc'), + _100kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_under_100k_btc'), }, }, }, diff --git a/packages/brk_client/brk_client/__init__.py b/packages/brk_client/brk_client/__init__.py index 95dba09b5..7cba09151 100644 --- a/packages/brk_client/brk_client/__init__.py +++ b/packages/brk_client/brk_client/__init__.py @@ -49,8 +49,6 @@ BasisPointsSigned16 = int BasisPointsSigned32 = int # Bitcoin amount as floating point (1 BTC = 100,000,000 satoshis) Bitcoin = float -# Position within a .blk file, encoding file index and byte offset -BlkPosition = int # Block height Height = int # UNIX timestamp in seconds @@ -2244,7 +2242,20 @@ class AverageBlockCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern: class AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern(Generic[T]): """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.average: _1m1w1y24hPattern[T] = _1m1w1y24hPattern(client, _m(acc, 'average')) + self.base: SeriesPattern18[T] = SeriesPattern18(client, acc) + self.cumulative: SeriesPattern1[T] = SeriesPattern1(client, _m(acc, 'cumulative')) + self.max: _1m1w1y24hPattern[T] = _1m1w1y24hPattern(client, _m(acc, 'max')) + self.median: _1m1w1y24hPattern[T] = _1m1w1y24hPattern(client, _m(acc, 'median')) + self.min: _1m1w1y24hPattern[T] = _1m1w1y24hPattern(client, _m(acc, 'min')) + self.pct10: _1m1w1y24hPattern[T] = _1m1w1y24hPattern(client, _m(acc, 'pct10')) + self.pct25: _1m1w1y24hPattern[T] = _1m1w1y24hPattern(client, _m(acc, 'pct25')) + self.pct75: _1m1w1y24hPattern[T] = _1m1w1y24hPattern(client, _m(acc, 'pct75')) + self.pct90: _1m1w1y24hPattern[T] = _1m1w1y24hPattern(client, _m(acc, 'pct90')) + self.sum: _1m1w1y24hPattern[T] = _1m1w1y24hPattern(client, _m(acc, 'sum')) class AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern3: """Pattern struct for repeated tree structure.""" @@ -2278,7 +2289,18 @@ class AverageMaxMedianMinPct10Pct25Pct75Pct90SumPattern: class GrossInvestedInvestorLossNetNuplProfitSentimentPattern2: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.gross_pnl: CentsUsdPattern3 = CentsUsdPattern3(client, _m(acc, 'unrealized_gross_pnl')) + self.invested_capital: InPattern = InPattern(client, _m(acc, 'invested_capital_in')) + self.investor_cap_in_loss_raw: SeriesPattern18[CentsSquaredSats] = SeriesPattern18(client, _m(acc, 'investor_cap_in_loss_raw')) + self.investor_cap_in_profit_raw: SeriesPattern18[CentsSquaredSats] = SeriesPattern18(client, _m(acc, 'investor_cap_in_profit_raw')) + self.loss: CentsNegativeToUsdPattern2 = CentsNegativeToUsdPattern2(client, _m(acc, 'unrealized_loss')) + self.net_pnl: CentsToUsdPattern3 = CentsToUsdPattern3(client, _m(acc, 'net_unrealized_pnl')) + self.nupl: BpsRatioPattern = BpsRatioPattern(client, _m(acc, 'nupl')) + self.profit: CentsToUsdPattern4 = CentsToUsdPattern4(client, _m(acc, 'unrealized_profit')) + self.sentiment: GreedNetPainPattern = GreedNetPainPattern(client, acc) class BpsCentsPercentilesRatioSatsSmaStdUsdPattern: """Pattern struct for repeated tree structure.""" @@ -2325,7 +2347,16 @@ class CapLossMvrvNetPriceProfitSoprPattern: class InMaxMinPerSupplyPattern: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.in_loss: PerPattern = PerPattern(client, _m(acc, 'cost_basis_in_loss_per')) + self.in_profit: PerPattern = PerPattern(client, _m(acc, 'cost_basis_in_profit_per')) + self.max: CentsSatsUsdPattern = CentsSatsUsdPattern(client, _m(acc, 'cost_basis_max')) + self.min: CentsSatsUsdPattern = CentsSatsUsdPattern(client, _m(acc, 'cost_basis_min')) + self.per_coin: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, _m(acc, 'cost_basis_per_coin')) + self.per_dollar: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, _m(acc, 'cost_basis_per_dollar')) + self.supply_density: BpsPercentRatioPattern3 = BpsPercentRatioPattern3(client, _m(acc, 'supply_density')) class MaxMedianMinPct10Pct25Pct75Pct90Pattern2: """Pattern struct for repeated tree structure.""" @@ -2367,7 +2398,15 @@ class _1m1w1y2y4yAllPattern: class ActivityAddrOutputsRealizedSupplyUnrealizedPattern: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.activity: TransferPattern = TransferPattern(client, _m(acc, 'transfer_volume')) + self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, _m(acc, 'addr_count')) + self.outputs: SpendingSpentUnspentPattern = SpendingSpentUnspentPattern(client, acc) + self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, acc) + self.supply: DeltaTotalPattern = DeltaTotalPattern(client, _m(acc, 'supply')) + self.unrealized: NuplPattern = NuplPattern(client, _m(acc, 'nupl')) class AverageBlockCumulativeInSumPattern: """Pattern struct for repeated tree structure.""" @@ -2466,15 +2505,36 @@ class _1m1w1y24hBlockPattern: class ActivityOutputsRealizedSupplyUnrealizedPattern: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, acc) + self.outputs: SpendingSpentUnspentPattern = SpendingSpentUnspentPattern(client, acc) + self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, acc) + self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, _m(acc, 'supply')) + self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, acc) class ActivityOutputsRealizedSupplyUnrealizedPattern3: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.activity: TransferPattern = TransferPattern(client, _m(acc, 'transfer_volume')) + self.outputs: SpendingSpentUnspentPattern = SpendingSpentUnspentPattern(client, acc) + self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, acc) + self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, _m(acc, 'supply')) + self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, acc) class ActivityOutputsRealizedSupplyUnrealizedPattern2: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.activity: TransferPattern = TransferPattern(client, _m(acc, 'transfer_volume')) + self.outputs: SpendingSpentUnspentPattern = SpendingSpentUnspentPattern(client, acc) + self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, acc) + self.supply: DeltaTotalPattern = DeltaTotalPattern(client, _m(acc, 'supply')) + self.unrealized: NuplPattern = NuplPattern(client, _m(acc, 'nupl')) class BlockChangeCumulativeDeltaSumPattern: """Pattern struct for repeated tree structure.""" @@ -2755,7 +2815,13 @@ class CentsToUsdPattern3: class CoindaysCoinyearsDormancyTransferPattern: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.coindays_destroyed: AverageBlockCumulativeSumPattern[StoredF64] = AverageBlockCumulativeSumPattern(client, _m(acc, 'coindays_destroyed')) + self.coinyears_destroyed: SeriesPattern1[StoredF64] = SeriesPattern1(client, _m(acc, 'coinyears_destroyed')) + self.dormancy: _1m1w1y24hPattern[StoredF32] = _1m1w1y24hPattern(client, _m(acc, 'dormancy')) + self.transfer_volume: AverageBlockCumulativeInSumPattern = AverageBlockCumulativeInSumPattern(client, _m(acc, 'transfer_volume')) class LossNetNuplProfitPattern: """Pattern struct for repeated tree structure.""" @@ -2773,9 +2839,9 @@ class NuplRealizedSupplyUnrealizedPattern: def __init__(self, client: BrkClientBase, acc: str): """Create pattern node with accumulated series name.""" self.nupl: BpsRatioPattern = BpsRatioPattern(client, _m(acc, 'nupl')) - self.realized_cap: AllSthPattern = AllSthPattern(client, acc, '') + self.realized_cap: AllSthPattern = AllSthPattern(client, acc, 'realized_cap') self.supply: AllSthPattern2 = AllSthPattern2(client, acc) - self.unrealized_pnl: AllSthPattern = AllSthPattern(client, acc, '') + self.unrealized_pnl: AllSthPattern = AllSthPattern(client, acc, 'unrealized_pnl') class _1m1w1y24hPattern(Generic[T]): """Pattern struct for repeated tree structure.""" @@ -2799,7 +2865,12 @@ class AverageBlockCumulativeSumPattern(Generic[T]): class AdjustedRatioValuePattern: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.adjusted: RatioTransferValuePattern = RatioTransferValuePattern(client, acc) + self.ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, _m(acc, 'sopr')) + self.value_destroyed: AverageBlockCumulativeSumPattern[Cents] = AverageBlockCumulativeSumPattern(client, _m(acc, 'value_destroyed')) class BlockCumulativeSumPattern: """Pattern struct for repeated tree structure.""" @@ -2911,7 +2982,12 @@ class CumulativeRollingSumPattern: class GreedNetPainPattern: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.greed_index: CentsUsdPattern3 = CentsUsdPattern3(client, _m(acc, 'greed_index')) + self.net: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'net_sentiment')) + self.pain_index: CentsUsdPattern3 = CentsUsdPattern3(client, _m(acc, 'pain_index')) class LossNuplProfitPattern: """Pattern struct for repeated tree structure.""" @@ -2924,7 +3000,12 @@ class LossNuplProfitPattern: class RatioTransferValuePattern: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, _m(acc, 'asopr')) + self.transfer_volume: AverageBlockCumulativeSumPattern[Cents] = AverageBlockCumulativeSumPattern(client, _m(acc, 'adj_value_created')) + self.value_destroyed: AverageBlockCumulativeSumPattern[Cents] = AverageBlockCumulativeSumPattern(client, _m(acc, 'adj_value_destroyed')) class RsiStochPattern: """Pattern struct for repeated tree structure.""" @@ -2937,7 +3018,12 @@ class RsiStochPattern: class SpendingSpentUnspentPattern: """Pattern struct for repeated tree structure.""" - pass + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated series name.""" + self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'spending_rate')) + self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, _m(acc, 'spent_utxo_count')) + self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, _m(acc, 'utxo_count')) class _6bBlockTxPattern(Generic[T]): """Pattern struct for repeated tree structure.""" @@ -3185,22 +3271,6 @@ class SeriesTree_Blocks_Size: self.pct75: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_pct75') self.pct90: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_pct90') -class SeriesTree_Blocks_Weight: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.base: SeriesPattern18[Weight] = SeriesPattern18(client, 'block_weight') - self.cumulative: SeriesPattern1[Weight] = SeriesPattern1(client, 'block_weight_cumulative') - self.sum: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_sum') - self.average: _1m1w1y24hPattern[StoredF32] = _1m1w1y24hPattern(client, 'block_weight_average') - self.min: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_min') - self.max: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_max') - self.pct10: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_pct10') - self.pct25: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_pct25') - self.median: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_median') - self.pct75: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_pct75') - self.pct90: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_pct90') - class SeriesTree_Blocks_Count: """Series tree node.""" @@ -3290,7 +3360,7 @@ class SeriesTree_Blocks: self.difficulty: SeriesTree_Blocks_Difficulty = SeriesTree_Blocks_Difficulty(client) self.time: SeriesTree_Blocks_Time = SeriesTree_Blocks_Time(client) self.size: SeriesTree_Blocks_Size = SeriesTree_Blocks_Size(client) - self.weight: SeriesTree_Blocks_Weight = SeriesTree_Blocks_Weight(client) + self.weight: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern[Weight] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern(client, 'block_weight') self.count: SeriesTree_Blocks_Count = SeriesTree_Blocks_Count(client) self.lookback: SeriesTree_Blocks_Lookback = SeriesTree_Blocks_Lookback(client) self.interval: SeriesTree_Blocks_Interval = SeriesTree_Blocks_Interval(client) @@ -3726,8 +3796,7 @@ class SeriesTree_Positions: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self.block: SeriesPattern18[BlkPosition] = SeriesPattern18(client, 'position') - self.tx: SeriesPattern19[BlkPosition] = SeriesPattern19(client, 'position') + pass class SeriesTree_Cointime_Activity: """Series tree node.""" @@ -4930,23 +4999,6 @@ class SeriesTree_Cohorts_Utxo_All: self.cost_basis: SeriesTree_Cohorts_Utxo_All_CostBasis = SeriesTree_Cohorts_Utxo_All_CostBasis(client) self.unrealized: SeriesTree_Cohorts_Utxo_All_Unrealized = SeriesTree_Cohorts_Utxo_All_Unrealized(client) -class SeriesTree_Cohorts_Utxo_Sth_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'sth_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'sth_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'sth_spending_rate') - -class SeriesTree_Cohorts_Utxo_Sth_Activity: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.transfer_volume: AverageBlockCumulativeInSumPattern = AverageBlockCumulativeInSumPattern(client, 'sth_transfer_volume') - self.coindays_destroyed: AverageBlockCumulativeSumPattern[StoredF64] = AverageBlockCumulativeSumPattern(client, 'sth_coindays_destroyed') - self.coinyears_destroyed: SeriesPattern1[StoredF64] = SeriesPattern1(client, 'sth_coinyears_destroyed') - self.dormancy: _1m1w1y24hPattern[StoredF32] = _1m1w1y24hPattern(client, 'sth_dormancy') - class SeriesTree_Cohorts_Utxo_Sth_Realized_Price_StdDev_All: """Series tree node.""" @@ -5049,22 +5101,6 @@ class SeriesTree_Cohorts_Utxo_Sth_Realized_Price: self.sma: _1m1w1y2y4yAllPattern = _1m1w1y2y4yAllPattern(client, 'sth_realized_price_ratio_sma') self.std_dev: SeriesTree_Cohorts_Utxo_Sth_Realized_Price_StdDev = SeriesTree_Cohorts_Utxo_Sth_Realized_Price_StdDev(client) -class SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr_Adjusted: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'sth_asopr') - self.transfer_volume: AverageBlockCumulativeSumPattern[Cents] = AverageBlockCumulativeSumPattern(client, 'sth_adj_value_created') - self.value_destroyed: AverageBlockCumulativeSumPattern[Cents] = AverageBlockCumulativeSumPattern(client, 'sth_adj_value_destroyed') - -class SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.value_destroyed: AverageBlockCumulativeSumPattern[Cents] = AverageBlockCumulativeSumPattern(client, 'sth_value_destroyed') - self.ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'sth_sopr') - self.adjusted: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr_Adjusted = SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr_Adjusted(client) - class SeriesTree_Cohorts_Utxo_Sth_Realized: """Series tree node.""" @@ -5075,74 +5111,23 @@ class SeriesTree_Cohorts_Utxo_Sth_Realized: self.price: SeriesTree_Cohorts_Utxo_Sth_Realized_Price = SeriesTree_Cohorts_Utxo_Sth_Realized_Price(client) self.mvrv: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'sth_mvrv') self.net_pnl: BlockChangeCumulativeDeltaSumPattern = BlockChangeCumulativeDeltaSumPattern(client, 'sth_net') - self.sopr: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr = SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr(client) + self.sopr: AdjustedRatioValuePattern = AdjustedRatioValuePattern(client, 'sth') self.gross_pnl: BlockCumulativeSumPattern = BlockCumulativeSumPattern(client, 'sth_realized_gross_pnl') self.sell_side_risk_ratio: _1m1w1y24hPattern7 = _1m1w1y24hPattern7(client, 'sth_sell_side_risk_ratio') self.peak_regret: BlockCumulativeSumPattern = BlockCumulativeSumPattern(client, 'sth_realized_peak_regret') self.investor: PricePattern = PricePattern(client, 'sth_investor_price') self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'sth_realized_profit_to_loss_ratio') -class SeriesTree_Cohorts_Utxo_Sth_CostBasis: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.in_profit: PerPattern = PerPattern(client, 'sth_cost_basis_in_profit_per') - self.in_loss: PerPattern = PerPattern(client, 'sth_cost_basis_in_loss_per') - self.min: CentsSatsUsdPattern = CentsSatsUsdPattern(client, 'sth_cost_basis_min') - self.max: CentsSatsUsdPattern = CentsSatsUsdPattern(client, 'sth_cost_basis_max') - self.per_coin: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, 'sth_cost_basis_per_coin') - self.per_dollar: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, 'sth_cost_basis_per_dollar') - self.supply_density: BpsPercentRatioPattern3 = BpsPercentRatioPattern3(client, 'sth_supply_density') - -class SeriesTree_Cohorts_Utxo_Sth_Unrealized_Sentiment: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.pain_index: CentsUsdPattern3 = CentsUsdPattern3(client, 'sth_pain_index') - self.greed_index: CentsUsdPattern3 = CentsUsdPattern3(client, 'sth_greed_index') - self.net: CentsUsdPattern = CentsUsdPattern(client, 'sth_net_sentiment') - -class SeriesTree_Cohorts_Utxo_Sth_Unrealized: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.nupl: BpsRatioPattern = BpsRatioPattern(client, 'sth_nupl') - self.profit: CentsToUsdPattern4 = CentsToUsdPattern4(client, 'sth_unrealized_profit') - self.loss: CentsNegativeToUsdPattern2 = CentsNegativeToUsdPattern2(client, 'sth_unrealized_loss') - self.net_pnl: CentsToUsdPattern3 = CentsToUsdPattern3(client, 'sth_net_unrealized_pnl') - self.gross_pnl: CentsUsdPattern3 = CentsUsdPattern3(client, 'sth_unrealized_gross_pnl') - self.invested_capital: InPattern = InPattern(client, 'sth_invested_capital_in') - self.investor_cap_in_profit_raw: SeriesPattern18[CentsSquaredSats] = SeriesPattern18(client, 'sth_investor_cap_in_profit_raw') - self.investor_cap_in_loss_raw: SeriesPattern18[CentsSquaredSats] = SeriesPattern18(client, 'sth_investor_cap_in_loss_raw') - self.sentiment: SeriesTree_Cohorts_Utxo_Sth_Unrealized_Sentiment = SeriesTree_Cohorts_Utxo_Sth_Unrealized_Sentiment(client) - class SeriesTree_Cohorts_Utxo_Sth: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): self.supply: DeltaHalfInToTotalPattern2 = DeltaHalfInToTotalPattern2(client, 'sth_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Sth_Outputs = SeriesTree_Cohorts_Utxo_Sth_Outputs(client) - self.activity: SeriesTree_Cohorts_Utxo_Sth_Activity = SeriesTree_Cohorts_Utxo_Sth_Activity(client) + self.outputs: SpendingSpentUnspentPattern = SpendingSpentUnspentPattern(client, 'sth') + self.activity: CoindaysCoinyearsDormancyTransferPattern = CoindaysCoinyearsDormancyTransferPattern(client, 'sth') self.realized: SeriesTree_Cohorts_Utxo_Sth_Realized = SeriesTree_Cohorts_Utxo_Sth_Realized(client) - self.cost_basis: SeriesTree_Cohorts_Utxo_Sth_CostBasis = SeriesTree_Cohorts_Utxo_Sth_CostBasis(client) - self.unrealized: SeriesTree_Cohorts_Utxo_Sth_Unrealized = SeriesTree_Cohorts_Utxo_Sth_Unrealized(client) - -class SeriesTree_Cohorts_Utxo_Lth_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'lth_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'lth_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'lth_spending_rate') - -class SeriesTree_Cohorts_Utxo_Lth_Activity: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.transfer_volume: AverageBlockCumulativeInSumPattern = AverageBlockCumulativeInSumPattern(client, 'lth_transfer_volume') - self.coindays_destroyed: AverageBlockCumulativeSumPattern[StoredF64] = AverageBlockCumulativeSumPattern(client, 'lth_coindays_destroyed') - self.coinyears_destroyed: SeriesPattern1[StoredF64] = SeriesPattern1(client, 'lth_coinyears_destroyed') - self.dormancy: _1m1w1y24hPattern[StoredF32] = _1m1w1y24hPattern(client, 'lth_dormancy') + self.cost_basis: InMaxMinPerSupplyPattern = InMaxMinPerSupplyPattern(client, 'sth') + self.unrealized: GrossInvestedInvestorLossNetNuplProfitSentimentPattern2 = GrossInvestedInvestorLossNetNuplProfitSentimentPattern2(client, 'sth') class SeriesTree_Cohorts_Utxo_Lth_Realized_Price_StdDev_All: """Series tree node.""" @@ -5270,2603 +5255,193 @@ class SeriesTree_Cohorts_Utxo_Lth_Realized: self.investor: PricePattern = PricePattern(client, 'lth_investor_price') self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'lth_realized_profit_to_loss_ratio') -class SeriesTree_Cohorts_Utxo_Lth_CostBasis: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.in_profit: PerPattern = PerPattern(client, 'lth_cost_basis_in_profit_per') - self.in_loss: PerPattern = PerPattern(client, 'lth_cost_basis_in_loss_per') - self.min: CentsSatsUsdPattern = CentsSatsUsdPattern(client, 'lth_cost_basis_min') - self.max: CentsSatsUsdPattern = CentsSatsUsdPattern(client, 'lth_cost_basis_max') - self.per_coin: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, 'lth_cost_basis_per_coin') - self.per_dollar: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, 'lth_cost_basis_per_dollar') - self.supply_density: BpsPercentRatioPattern3 = BpsPercentRatioPattern3(client, 'lth_supply_density') - -class SeriesTree_Cohorts_Utxo_Lth_Unrealized_Sentiment: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.pain_index: CentsUsdPattern3 = CentsUsdPattern3(client, 'lth_pain_index') - self.greed_index: CentsUsdPattern3 = CentsUsdPattern3(client, 'lth_greed_index') - self.net: CentsUsdPattern = CentsUsdPattern(client, 'lth_net_sentiment') - -class SeriesTree_Cohorts_Utxo_Lth_Unrealized: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.nupl: BpsRatioPattern = BpsRatioPattern(client, 'lth_nupl') - self.profit: CentsToUsdPattern4 = CentsToUsdPattern4(client, 'lth_unrealized_profit') - self.loss: CentsNegativeToUsdPattern2 = CentsNegativeToUsdPattern2(client, 'lth_unrealized_loss') - self.net_pnl: CentsToUsdPattern3 = CentsToUsdPattern3(client, 'lth_net_unrealized_pnl') - self.gross_pnl: CentsUsdPattern3 = CentsUsdPattern3(client, 'lth_unrealized_gross_pnl') - self.invested_capital: InPattern = InPattern(client, 'lth_invested_capital_in') - self.investor_cap_in_profit_raw: SeriesPattern18[CentsSquaredSats] = SeriesPattern18(client, 'lth_investor_cap_in_profit_raw') - self.investor_cap_in_loss_raw: SeriesPattern18[CentsSquaredSats] = SeriesPattern18(client, 'lth_investor_cap_in_loss_raw') - self.sentiment: SeriesTree_Cohorts_Utxo_Lth_Unrealized_Sentiment = SeriesTree_Cohorts_Utxo_Lth_Unrealized_Sentiment(client) - class SeriesTree_Cohorts_Utxo_Lth: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): self.supply: DeltaHalfInToTotalPattern2 = DeltaHalfInToTotalPattern2(client, 'lth_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Lth_Outputs = SeriesTree_Cohorts_Utxo_Lth_Outputs(client) - self.activity: SeriesTree_Cohorts_Utxo_Lth_Activity = SeriesTree_Cohorts_Utxo_Lth_Activity(client) + self.outputs: SpendingSpentUnspentPattern = SpendingSpentUnspentPattern(client, 'lth') + self.activity: CoindaysCoinyearsDormancyTransferPattern = CoindaysCoinyearsDormancyTransferPattern(client, 'lth') self.realized: SeriesTree_Cohorts_Utxo_Lth_Realized = SeriesTree_Cohorts_Utxo_Lth_Realized(client) - self.cost_basis: SeriesTree_Cohorts_Utxo_Lth_CostBasis = SeriesTree_Cohorts_Utxo_Lth_CostBasis(client) - self.unrealized: SeriesTree_Cohorts_Utxo_Lth_Unrealized = SeriesTree_Cohorts_Utxo_Lth_Unrealized(client) - -class SeriesTree_Cohorts_Utxo_AgeRange_Under1h_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_1h_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_1h_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_1h_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_Under1h: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_1h_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_Under1h_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_Under1h_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_1h_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_1h_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_1h_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1h_to_1d_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1h_to_1d_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1h_to_1d_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_1h_to_1d_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_1h_to_1d_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_1h_to_1d_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_1h_to_1d_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1d_to_1w_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1d_to_1w_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1d_to_1w_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_1d_to_1w_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_1d_to_1w_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_1d_to_1w_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_1d_to_1w_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1w_to_1m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1w_to_1m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1w_to_1m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_1w_to_1m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_1w_to_1m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_1w_to_1m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_1w_to_1m_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1m_to_2m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1m_to_2m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1m_to_2m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_1m_to_2m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_1m_to_2m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_1m_to_2m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_1m_to_2m_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_2m_to_3m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_2m_to_3m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_2m_to_3m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_2m_to_3m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_2m_to_3m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_2m_to_3m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_2m_to_3m_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_3m_to_4m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_3m_to_4m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_3m_to_4m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_3m_to_4m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_3m_to_4m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_3m_to_4m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_3m_to_4m_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_4m_to_5m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_4m_to_5m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_4m_to_5m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_4m_to_5m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_4m_to_5m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_4m_to_5m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_4m_to_5m_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_5m_to_6m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_5m_to_6m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_5m_to_6m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_5m_to_6m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_5m_to_6m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_5m_to_6m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_5m_to_6m_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_6m_to_1y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_6m_to_1y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_6m_to_1y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_6m_to_1y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_6m_to_1y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_6m_to_1y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_6m_to_1y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1y_to_2y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1y_to_2y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1y_to_2y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_1y_to_2y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_1y_to_2y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_1y_to_2y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_1y_to_2y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_2y_to_3y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_2y_to_3y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_2y_to_3y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_2y_to_3y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_2y_to_3y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_2y_to_3y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_2y_to_3y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_3y_to_4y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_3y_to_4y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_3y_to_4y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_3y_to_4y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_3y_to_4y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_3y_to_4y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_3y_to_4y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_4y_to_5y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_4y_to_5y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_4y_to_5y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_4y_to_5y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_4y_to_5y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_4y_to_5y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_4y_to_5y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_5y_to_6y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_5y_to_6y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_5y_to_6y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_5y_to_6y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_5y_to_6y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_5y_to_6y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_5y_to_6y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_6y_to_7y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_6y_to_7y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_6y_to_7y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_6y_to_7y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_6y_to_7y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_6y_to_7y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_6y_to_7y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_7y_to_8y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_7y_to_8y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_7y_to_8y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_7y_to_8y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_7y_to_8y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_7y_to_8y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_7y_to_8y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_8y_to_10y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_8y_to_10y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_8y_to_10y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_8y_to_10y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_8y_to_10y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_8y_to_10y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_8y_to_10y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_10y_to_12y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_10y_to_12y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_10y_to_12y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_10y_to_12y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_10y_to_12y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_10y_to_12y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_10y_to_12y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_12y_to_15y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_12y_to_15y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_12y_to_15y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_12y_to_15y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_12y_to_15y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_12y_to_15y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_12y_to_15y_old') - -class SeriesTree_Cohorts_Utxo_AgeRange_Over15y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_15y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_15y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_15y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_AgeRange_Over15y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_15y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AgeRange_Over15y_Outputs = SeriesTree_Cohorts_Utxo_AgeRange_Over15y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_15y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_15y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_15y_old') + self.cost_basis: InMaxMinPerSupplyPattern = InMaxMinPerSupplyPattern(client, 'lth') + self.unrealized: GrossInvestedInvestorLossNetNuplProfitSentimentPattern2 = GrossInvestedInvestorLossNetNuplProfitSentimentPattern2(client, 'lth') class SeriesTree_Cohorts_Utxo_AgeRange: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self.under_1h: SeriesTree_Cohorts_Utxo_AgeRange_Under1h = SeriesTree_Cohorts_Utxo_AgeRange_Under1h(client) - self._1h_to_1d: SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d = SeriesTree_Cohorts_Utxo_AgeRange_1hTo1d(client) - self._1d_to_1w: SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w = SeriesTree_Cohorts_Utxo_AgeRange_1dTo1w(client) - self._1w_to_1m: SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m = SeriesTree_Cohorts_Utxo_AgeRange_1wTo1m(client) - self._1m_to_2m: SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m = SeriesTree_Cohorts_Utxo_AgeRange_1mTo2m(client) - self._2m_to_3m: SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m = SeriesTree_Cohorts_Utxo_AgeRange_2mTo3m(client) - self._3m_to_4m: SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m = SeriesTree_Cohorts_Utxo_AgeRange_3mTo4m(client) - self._4m_to_5m: SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m = SeriesTree_Cohorts_Utxo_AgeRange_4mTo5m(client) - self._5m_to_6m: SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m = SeriesTree_Cohorts_Utxo_AgeRange_5mTo6m(client) - self._6m_to_1y: SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y = SeriesTree_Cohorts_Utxo_AgeRange_6mTo1y(client) - self._1y_to_2y: SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y = SeriesTree_Cohorts_Utxo_AgeRange_1yTo2y(client) - self._2y_to_3y: SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y = SeriesTree_Cohorts_Utxo_AgeRange_2yTo3y(client) - self._3y_to_4y: SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y = SeriesTree_Cohorts_Utxo_AgeRange_3yTo4y(client) - self._4y_to_5y: SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y = SeriesTree_Cohorts_Utxo_AgeRange_4yTo5y(client) - self._5y_to_6y: SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y = SeriesTree_Cohorts_Utxo_AgeRange_5yTo6y(client) - self._6y_to_7y: SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y = SeriesTree_Cohorts_Utxo_AgeRange_6yTo7y(client) - self._7y_to_8y: SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y = SeriesTree_Cohorts_Utxo_AgeRange_7yTo8y(client) - self._8y_to_10y: SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y = SeriesTree_Cohorts_Utxo_AgeRange_8yTo10y(client) - self._10y_to_12y: SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y = SeriesTree_Cohorts_Utxo_AgeRange_10yTo12y(client) - self._12y_to_15y: SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y = SeriesTree_Cohorts_Utxo_AgeRange_12yTo15y(client) - self.over_15y: SeriesTree_Cohorts_Utxo_AgeRange_Over15y = SeriesTree_Cohorts_Utxo_AgeRange_Over15y(client) - -class SeriesTree_Cohorts_Utxo_UnderAge_1w_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_1w_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_1w_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_1w_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_1w: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_1w_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_1w_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_1w_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_1w_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_1w_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_1w_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_1m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_1m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_1m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_1m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_1m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_1m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_1m_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_1m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_1m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_1m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_1m_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_2m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_2m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_2m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_2m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_2m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_2m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_2m_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_2m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_2m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_2m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_2m_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_3m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_3m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_3m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_3m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_3m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_3m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_3m_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_3m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_3m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_3m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_3m_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_4m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_4m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_4m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_4m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_4m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_4m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_4m_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_4m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_4m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_4m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_4m_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_5m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_5m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_5m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_5m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_5m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_5m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_5m_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_5m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_5m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_5m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_5m_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_6m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_6m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_6m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_6m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_6m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_6m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_6m_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_6m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_6m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_6m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_6m_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_1y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_1y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_1y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_1y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_1y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_1y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_1y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_1y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_1y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_1y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_1y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_2y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_2y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_2y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_2y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_2y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_2y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_2y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_2y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_2y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_2y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_2y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_3y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_3y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_3y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_3y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_3y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_3y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_3y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_3y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_3y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_3y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_3y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_4y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_4y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_4y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_4y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_4y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_4y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_4y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_4y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_4y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_4y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_4y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_5y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_5y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_5y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_5y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_5y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_5y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_5y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_5y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_5y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_5y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_5y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_6y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_6y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_6y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_6y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_6y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_6y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_6y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_6y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_6y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_6y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_6y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_7y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_7y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_7y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_7y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_7y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_7y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_7y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_7y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_7y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_7y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_7y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_8y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_8y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_8y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_8y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_8y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_8y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_8y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_8y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_8y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_8y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_8y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_10y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_10y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_10y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_10y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_10y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_10y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_10y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_10y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_10y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_10y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_10y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_12y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_12y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_12y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_12y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_12y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_12y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_12y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_12y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_12y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_12y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_12y_old') - -class SeriesTree_Cohorts_Utxo_UnderAge_15y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_15y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_15y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_15y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAge_15y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_under_15y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAge_15y_Outputs = SeriesTree_Cohorts_Utxo_UnderAge_15y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_under_15y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_under_15y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_under_15y_old') + self.under_1h: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_1h_old') + self._1h_to_1d: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_1h_to_1d_old') + self._1d_to_1w: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_1d_to_1w_old') + self._1w_to_1m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_1w_to_1m_old') + self._1m_to_2m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_1m_to_2m_old') + self._2m_to_3m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_2m_to_3m_old') + self._3m_to_4m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_3m_to_4m_old') + self._4m_to_5m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_4m_to_5m_old') + self._5m_to_6m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_5m_to_6m_old') + self._6m_to_1y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_6m_to_1y_old') + self._1y_to_2y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_1y_to_2y_old') + self._2y_to_3y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_2y_to_3y_old') + self._3y_to_4y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_3y_to_4y_old') + self._4y_to_5y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_4y_to_5y_old') + self._5y_to_6y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_5y_to_6y_old') + self._6y_to_7y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_6y_to_7y_old') + self._7y_to_8y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_7y_to_8y_old') + self._8y_to_10y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_8y_to_10y_old') + self._10y_to_12y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_10y_to_12y_old') + self._12y_to_15y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_12y_to_15y_old') + self.over_15y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_15y_old') class SeriesTree_Cohorts_Utxo_UnderAge: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._1w: SeriesTree_Cohorts_Utxo_UnderAge_1w = SeriesTree_Cohorts_Utxo_UnderAge_1w(client) - self._1m: SeriesTree_Cohorts_Utxo_UnderAge_1m = SeriesTree_Cohorts_Utxo_UnderAge_1m(client) - self._2m: SeriesTree_Cohorts_Utxo_UnderAge_2m = SeriesTree_Cohorts_Utxo_UnderAge_2m(client) - self._3m: SeriesTree_Cohorts_Utxo_UnderAge_3m = SeriesTree_Cohorts_Utxo_UnderAge_3m(client) - self._4m: SeriesTree_Cohorts_Utxo_UnderAge_4m = SeriesTree_Cohorts_Utxo_UnderAge_4m(client) - self._5m: SeriesTree_Cohorts_Utxo_UnderAge_5m = SeriesTree_Cohorts_Utxo_UnderAge_5m(client) - self._6m: SeriesTree_Cohorts_Utxo_UnderAge_6m = SeriesTree_Cohorts_Utxo_UnderAge_6m(client) - self._1y: SeriesTree_Cohorts_Utxo_UnderAge_1y = SeriesTree_Cohorts_Utxo_UnderAge_1y(client) - self._2y: SeriesTree_Cohorts_Utxo_UnderAge_2y = SeriesTree_Cohorts_Utxo_UnderAge_2y(client) - self._3y: SeriesTree_Cohorts_Utxo_UnderAge_3y = SeriesTree_Cohorts_Utxo_UnderAge_3y(client) - self._4y: SeriesTree_Cohorts_Utxo_UnderAge_4y = SeriesTree_Cohorts_Utxo_UnderAge_4y(client) - self._5y: SeriesTree_Cohorts_Utxo_UnderAge_5y = SeriesTree_Cohorts_Utxo_UnderAge_5y(client) - self._6y: SeriesTree_Cohorts_Utxo_UnderAge_6y = SeriesTree_Cohorts_Utxo_UnderAge_6y(client) - self._7y: SeriesTree_Cohorts_Utxo_UnderAge_7y = SeriesTree_Cohorts_Utxo_UnderAge_7y(client) - self._8y: SeriesTree_Cohorts_Utxo_UnderAge_8y = SeriesTree_Cohorts_Utxo_UnderAge_8y(client) - self._10y: SeriesTree_Cohorts_Utxo_UnderAge_10y = SeriesTree_Cohorts_Utxo_UnderAge_10y(client) - self._12y: SeriesTree_Cohorts_Utxo_UnderAge_12y = SeriesTree_Cohorts_Utxo_UnderAge_12y(client) - self._15y: SeriesTree_Cohorts_Utxo_UnderAge_15y = SeriesTree_Cohorts_Utxo_UnderAge_15y(client) - -class SeriesTree_Cohorts_Utxo_OverAge_1d_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_1d_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_1d_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_1d_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_1d: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_1d_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_1d_Outputs = SeriesTree_Cohorts_Utxo_OverAge_1d_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_1d_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_1d_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_1d_old') - -class SeriesTree_Cohorts_Utxo_OverAge_1w_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_1w_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_1w_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_1w_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_1w: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_1w_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_1w_Outputs = SeriesTree_Cohorts_Utxo_OverAge_1w_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_1w_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_1w_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_1w_old') - -class SeriesTree_Cohorts_Utxo_OverAge_1m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_1m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_1m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_1m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_1m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_1m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_1m_Outputs = SeriesTree_Cohorts_Utxo_OverAge_1m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_1m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_1m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_1m_old') - -class SeriesTree_Cohorts_Utxo_OverAge_2m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_2m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_2m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_2m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_2m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_2m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_2m_Outputs = SeriesTree_Cohorts_Utxo_OverAge_2m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_2m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_2m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_2m_old') - -class SeriesTree_Cohorts_Utxo_OverAge_3m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_3m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_3m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_3m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_3m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_3m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_3m_Outputs = SeriesTree_Cohorts_Utxo_OverAge_3m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_3m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_3m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_3m_old') - -class SeriesTree_Cohorts_Utxo_OverAge_4m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_4m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_4m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_4m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_4m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_4m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_4m_Outputs = SeriesTree_Cohorts_Utxo_OverAge_4m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_4m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_4m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_4m_old') - -class SeriesTree_Cohorts_Utxo_OverAge_5m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_5m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_5m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_5m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_5m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_5m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_5m_Outputs = SeriesTree_Cohorts_Utxo_OverAge_5m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_5m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_5m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_5m_old') - -class SeriesTree_Cohorts_Utxo_OverAge_6m_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_6m_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_6m_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_6m_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_6m: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_6m_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_6m_Outputs = SeriesTree_Cohorts_Utxo_OverAge_6m_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_6m_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_6m_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_6m_old') - -class SeriesTree_Cohorts_Utxo_OverAge_1y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_1y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_1y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_1y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_1y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_1y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_1y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_1y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_1y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_1y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_1y_old') - -class SeriesTree_Cohorts_Utxo_OverAge_2y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_2y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_2y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_2y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_2y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_2y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_2y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_2y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_2y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_2y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_2y_old') - -class SeriesTree_Cohorts_Utxo_OverAge_3y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_3y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_3y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_3y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_3y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_3y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_3y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_3y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_3y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_3y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_3y_old') - -class SeriesTree_Cohorts_Utxo_OverAge_4y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_4y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_4y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_4y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_4y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_4y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_4y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_4y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_4y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_4y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_4y_old') - -class SeriesTree_Cohorts_Utxo_OverAge_5y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_5y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_5y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_5y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_5y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_5y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_5y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_5y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_5y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_5y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_5y_old') - -class SeriesTree_Cohorts_Utxo_OverAge_6y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_6y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_6y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_6y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_6y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_6y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_6y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_6y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_6y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_6y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_6y_old') - -class SeriesTree_Cohorts_Utxo_OverAge_7y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_7y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_7y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_7y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_7y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_7y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_7y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_7y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_7y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_7y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_7y_old') - -class SeriesTree_Cohorts_Utxo_OverAge_8y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_8y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_8y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_8y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_8y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_8y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_8y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_8y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_8y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_8y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_8y_old') - -class SeriesTree_Cohorts_Utxo_OverAge_10y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_10y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_10y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_10y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_10y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_10y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_10y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_10y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_10y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_10y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_10y_old') - -class SeriesTree_Cohorts_Utxo_OverAge_12y_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_12y_old_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_12y_old_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_12y_old_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAge_12y: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'utxos_over_12y_old_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAge_12y_Outputs = SeriesTree_Cohorts_Utxo_OverAge_12y_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'utxos_over_12y_old') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'utxos_over_12y_old') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'utxos_over_12y_old') + self._1w: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_1w_old') + self._1m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_1m_old') + self._2m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_2m_old') + self._3m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_3m_old') + self._4m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_4m_old') + self._5m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_5m_old') + self._6m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_6m_old') + self._1y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_1y_old') + self._2y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_2y_old') + self._3y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_3y_old') + self._4y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_4y_old') + self._5y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_5y_old') + self._6y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_6y_old') + self._7y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_7y_old') + self._8y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_8y_old') + self._10y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_10y_old') + self._12y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_12y_old') + self._15y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_15y_old') class SeriesTree_Cohorts_Utxo_OverAge: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._1d: SeriesTree_Cohorts_Utxo_OverAge_1d = SeriesTree_Cohorts_Utxo_OverAge_1d(client) - self._1w: SeriesTree_Cohorts_Utxo_OverAge_1w = SeriesTree_Cohorts_Utxo_OverAge_1w(client) - self._1m: SeriesTree_Cohorts_Utxo_OverAge_1m = SeriesTree_Cohorts_Utxo_OverAge_1m(client) - self._2m: SeriesTree_Cohorts_Utxo_OverAge_2m = SeriesTree_Cohorts_Utxo_OverAge_2m(client) - self._3m: SeriesTree_Cohorts_Utxo_OverAge_3m = SeriesTree_Cohorts_Utxo_OverAge_3m(client) - self._4m: SeriesTree_Cohorts_Utxo_OverAge_4m = SeriesTree_Cohorts_Utxo_OverAge_4m(client) - self._5m: SeriesTree_Cohorts_Utxo_OverAge_5m = SeriesTree_Cohorts_Utxo_OverAge_5m(client) - self._6m: SeriesTree_Cohorts_Utxo_OverAge_6m = SeriesTree_Cohorts_Utxo_OverAge_6m(client) - self._1y: SeriesTree_Cohorts_Utxo_OverAge_1y = SeriesTree_Cohorts_Utxo_OverAge_1y(client) - self._2y: SeriesTree_Cohorts_Utxo_OverAge_2y = SeriesTree_Cohorts_Utxo_OverAge_2y(client) - self._3y: SeriesTree_Cohorts_Utxo_OverAge_3y = SeriesTree_Cohorts_Utxo_OverAge_3y(client) - self._4y: SeriesTree_Cohorts_Utxo_OverAge_4y = SeriesTree_Cohorts_Utxo_OverAge_4y(client) - self._5y: SeriesTree_Cohorts_Utxo_OverAge_5y = SeriesTree_Cohorts_Utxo_OverAge_5y(client) - self._6y: SeriesTree_Cohorts_Utxo_OverAge_6y = SeriesTree_Cohorts_Utxo_OverAge_6y(client) - self._7y: SeriesTree_Cohorts_Utxo_OverAge_7y = SeriesTree_Cohorts_Utxo_OverAge_7y(client) - self._8y: SeriesTree_Cohorts_Utxo_OverAge_8y = SeriesTree_Cohorts_Utxo_OverAge_8y(client) - self._10y: SeriesTree_Cohorts_Utxo_OverAge_10y = SeriesTree_Cohorts_Utxo_OverAge_10y(client) - self._12y: SeriesTree_Cohorts_Utxo_OverAge_12y = SeriesTree_Cohorts_Utxo_OverAge_12y(client) - -class SeriesTree_Cohorts_Utxo_Epoch_0_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'epoch_0_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'epoch_0_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'epoch_0_spending_rate') - -class SeriesTree_Cohorts_Utxo_Epoch_0: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'epoch_0_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Epoch_0_Outputs = SeriesTree_Cohorts_Utxo_Epoch_0_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'epoch_0') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'epoch_0') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'epoch_0') - -class SeriesTree_Cohorts_Utxo_Epoch_1_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'epoch_1_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'epoch_1_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'epoch_1_spending_rate') - -class SeriesTree_Cohorts_Utxo_Epoch_1: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'epoch_1_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Epoch_1_Outputs = SeriesTree_Cohorts_Utxo_Epoch_1_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'epoch_1') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'epoch_1') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'epoch_1') - -class SeriesTree_Cohorts_Utxo_Epoch_2_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'epoch_2_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'epoch_2_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'epoch_2_spending_rate') - -class SeriesTree_Cohorts_Utxo_Epoch_2: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'epoch_2_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Epoch_2_Outputs = SeriesTree_Cohorts_Utxo_Epoch_2_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'epoch_2') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'epoch_2') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'epoch_2') - -class SeriesTree_Cohorts_Utxo_Epoch_3_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'epoch_3_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'epoch_3_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'epoch_3_spending_rate') - -class SeriesTree_Cohorts_Utxo_Epoch_3: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'epoch_3_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Epoch_3_Outputs = SeriesTree_Cohorts_Utxo_Epoch_3_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'epoch_3') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'epoch_3') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'epoch_3') - -class SeriesTree_Cohorts_Utxo_Epoch_4_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'epoch_4_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'epoch_4_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'epoch_4_spending_rate') - -class SeriesTree_Cohorts_Utxo_Epoch_4: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'epoch_4_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Epoch_4_Outputs = SeriesTree_Cohorts_Utxo_Epoch_4_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'epoch_4') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'epoch_4') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'epoch_4') + self._1d: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_1d_old') + self._1w: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_1w_old') + self._1m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_1m_old') + self._2m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_2m_old') + self._3m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_3m_old') + self._4m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_4m_old') + self._5m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_5m_old') + self._6m: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_6m_old') + self._1y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_1y_old') + self._2y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_2y_old') + self._3y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_3y_old') + self._4y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_4y_old') + self._5y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_5y_old') + self._6y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_6y_old') + self._7y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_7y_old') + self._8y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_8y_old') + self._10y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_10y_old') + self._12y: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_12y_old') class SeriesTree_Cohorts_Utxo_Epoch: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._0: SeriesTree_Cohorts_Utxo_Epoch_0 = SeriesTree_Cohorts_Utxo_Epoch_0(client) - self._1: SeriesTree_Cohorts_Utxo_Epoch_1 = SeriesTree_Cohorts_Utxo_Epoch_1(client) - self._2: SeriesTree_Cohorts_Utxo_Epoch_2 = SeriesTree_Cohorts_Utxo_Epoch_2(client) - self._3: SeriesTree_Cohorts_Utxo_Epoch_3 = SeriesTree_Cohorts_Utxo_Epoch_3(client) - self._4: SeriesTree_Cohorts_Utxo_Epoch_4 = SeriesTree_Cohorts_Utxo_Epoch_4(client) - -class SeriesTree_Cohorts_Utxo_Class_2009_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2009_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2009_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2009_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2009: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2009_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2009_Outputs = SeriesTree_Cohorts_Utxo_Class_2009_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2009') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2009') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2009') - -class SeriesTree_Cohorts_Utxo_Class_2010_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2010_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2010_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2010_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2010: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2010_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2010_Outputs = SeriesTree_Cohorts_Utxo_Class_2010_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2010') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2010') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2010') - -class SeriesTree_Cohorts_Utxo_Class_2011_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2011_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2011_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2011_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2011: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2011_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2011_Outputs = SeriesTree_Cohorts_Utxo_Class_2011_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2011') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2011') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2011') - -class SeriesTree_Cohorts_Utxo_Class_2012_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2012_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2012_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2012_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2012: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2012_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2012_Outputs = SeriesTree_Cohorts_Utxo_Class_2012_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2012') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2012') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2012') - -class SeriesTree_Cohorts_Utxo_Class_2013_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2013_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2013_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2013_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2013: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2013_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2013_Outputs = SeriesTree_Cohorts_Utxo_Class_2013_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2013') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2013') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2013') - -class SeriesTree_Cohorts_Utxo_Class_2014_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2014_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2014_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2014_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2014: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2014_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2014_Outputs = SeriesTree_Cohorts_Utxo_Class_2014_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2014') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2014') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2014') - -class SeriesTree_Cohorts_Utxo_Class_2015_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2015_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2015_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2015_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2015: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2015_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2015_Outputs = SeriesTree_Cohorts_Utxo_Class_2015_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2015') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2015') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2015') - -class SeriesTree_Cohorts_Utxo_Class_2016_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2016_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2016_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2016_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2016: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2016_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2016_Outputs = SeriesTree_Cohorts_Utxo_Class_2016_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2016') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2016') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2016') - -class SeriesTree_Cohorts_Utxo_Class_2017_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2017_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2017_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2017_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2017: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2017_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2017_Outputs = SeriesTree_Cohorts_Utxo_Class_2017_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2017') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2017') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2017') - -class SeriesTree_Cohorts_Utxo_Class_2018_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2018_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2018_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2018_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2018: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2018_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2018_Outputs = SeriesTree_Cohorts_Utxo_Class_2018_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2018') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2018') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2018') - -class SeriesTree_Cohorts_Utxo_Class_2019_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2019_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2019_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2019_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2019: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2019_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2019_Outputs = SeriesTree_Cohorts_Utxo_Class_2019_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2019') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2019') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2019') - -class SeriesTree_Cohorts_Utxo_Class_2020_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2020_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2020_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2020_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2020: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2020_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2020_Outputs = SeriesTree_Cohorts_Utxo_Class_2020_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2020') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2020') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2020') - -class SeriesTree_Cohorts_Utxo_Class_2021_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2021_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2021_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2021_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2021: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2021_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2021_Outputs = SeriesTree_Cohorts_Utxo_Class_2021_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2021') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2021') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2021') - -class SeriesTree_Cohorts_Utxo_Class_2022_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2022_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2022_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2022_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2022: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2022_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2022_Outputs = SeriesTree_Cohorts_Utxo_Class_2022_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2022') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2022') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2022') - -class SeriesTree_Cohorts_Utxo_Class_2023_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2023_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2023_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2023_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2023: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2023_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2023_Outputs = SeriesTree_Cohorts_Utxo_Class_2023_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2023') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2023') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2023') - -class SeriesTree_Cohorts_Utxo_Class_2024_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2024_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2024_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2024_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2024: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2024_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2024_Outputs = SeriesTree_Cohorts_Utxo_Class_2024_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2024') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2024') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2024') - -class SeriesTree_Cohorts_Utxo_Class_2025_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2025_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2025_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2025_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2025: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2025_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2025_Outputs = SeriesTree_Cohorts_Utxo_Class_2025_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2025') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2025') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2025') - -class SeriesTree_Cohorts_Utxo_Class_2026_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'class_2026_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'class_2026_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'class_2026_spending_rate') - -class SeriesTree_Cohorts_Utxo_Class_2026: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInToTotalPattern = DeltaHalfInToTotalPattern(client, 'class_2026_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Class_2026_Outputs = SeriesTree_Cohorts_Utxo_Class_2026_Outputs(client) - self.activity: CoindaysTransferPattern = CoindaysTransferPattern(client, 'class_2026') - self.realized: CapLossMvrvNetPriceProfitSoprPattern = CapLossMvrvNetPriceProfitSoprPattern(client, 'class_2026') - self.unrealized: LossNetNuplProfitPattern = LossNetNuplProfitPattern(client, 'class_2026') + self._0: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'epoch_0') + self._1: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'epoch_1') + self._2: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'epoch_2') + self._3: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'epoch_3') + self._4: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'epoch_4') class SeriesTree_Cohorts_Utxo_Class: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._2009: SeriesTree_Cohorts_Utxo_Class_2009 = SeriesTree_Cohorts_Utxo_Class_2009(client) - self._2010: SeriesTree_Cohorts_Utxo_Class_2010 = SeriesTree_Cohorts_Utxo_Class_2010(client) - self._2011: SeriesTree_Cohorts_Utxo_Class_2011 = SeriesTree_Cohorts_Utxo_Class_2011(client) - self._2012: SeriesTree_Cohorts_Utxo_Class_2012 = SeriesTree_Cohorts_Utxo_Class_2012(client) - self._2013: SeriesTree_Cohorts_Utxo_Class_2013 = SeriesTree_Cohorts_Utxo_Class_2013(client) - self._2014: SeriesTree_Cohorts_Utxo_Class_2014 = SeriesTree_Cohorts_Utxo_Class_2014(client) - self._2015: SeriesTree_Cohorts_Utxo_Class_2015 = SeriesTree_Cohorts_Utxo_Class_2015(client) - self._2016: SeriesTree_Cohorts_Utxo_Class_2016 = SeriesTree_Cohorts_Utxo_Class_2016(client) - self._2017: SeriesTree_Cohorts_Utxo_Class_2017 = SeriesTree_Cohorts_Utxo_Class_2017(client) - self._2018: SeriesTree_Cohorts_Utxo_Class_2018 = SeriesTree_Cohorts_Utxo_Class_2018(client) - self._2019: SeriesTree_Cohorts_Utxo_Class_2019 = SeriesTree_Cohorts_Utxo_Class_2019(client) - self._2020: SeriesTree_Cohorts_Utxo_Class_2020 = SeriesTree_Cohorts_Utxo_Class_2020(client) - self._2021: SeriesTree_Cohorts_Utxo_Class_2021 = SeriesTree_Cohorts_Utxo_Class_2021(client) - self._2022: SeriesTree_Cohorts_Utxo_Class_2022 = SeriesTree_Cohorts_Utxo_Class_2022(client) - self._2023: SeriesTree_Cohorts_Utxo_Class_2023 = SeriesTree_Cohorts_Utxo_Class_2023(client) - self._2024: SeriesTree_Cohorts_Utxo_Class_2024 = SeriesTree_Cohorts_Utxo_Class_2024(client) - self._2025: SeriesTree_Cohorts_Utxo_Class_2025 = SeriesTree_Cohorts_Utxo_Class_2025(client) - self._2026: SeriesTree_Cohorts_Utxo_Class_2026 = SeriesTree_Cohorts_Utxo_Class_2026(client) - -class SeriesTree_Cohorts_Utxo_OverAmount_1sat_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_1sat_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_1sat_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_1sat_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_1sat: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_1sat_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_1sat_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_1sat_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_1sat_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_1sat') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_1sat_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_10sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_10sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_10sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_10sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_10sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_10sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_10sats_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_10sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_10sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_10sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_10sats_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_100sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_100sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_100sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_100sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_100sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_100sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_100sats_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_100sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_100sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_100sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_100sats_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_1kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_1k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_1k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_1k_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_1kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_1k_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_1kSats_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_1kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_1k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_1k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_1k_sats_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_10kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_10k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_10k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_10k_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_10kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_10k_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_10kSats_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_10kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_10k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_10k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_10k_sats_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_100kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_100k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_100k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_100k_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_100kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_100k_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_100kSats_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_100kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_100k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_100k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_100k_sats_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_1mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_1m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_1m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_1m_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_1mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_1m_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_1mSats_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_1mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_1m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_1m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_1m_sats_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_10mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_10m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_10m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_10m_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_10mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_10m_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_10mSats_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_10mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_10m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_10m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_10m_sats_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_1btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_1btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_1btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_1btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_1btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_1btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_1btc_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_1btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_1btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_1btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_1btc_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_10btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_10btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_10btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_10btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_10btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_10btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_10btc_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_10btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_10btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_10btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_10btc_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_100btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_100btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_100btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_100btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_100btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_100btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_100btc_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_100btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_100btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_100btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_100btc_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_1kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_1k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_1k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_1k_btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_1kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_1k_btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_1kBtc_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_1kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_1k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_1k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_1k_btc_nupl') - -class SeriesTree_Cohorts_Utxo_OverAmount_10kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_10k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_10k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_10k_btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_OverAmount_10kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_10k_btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_OverAmount_10kBtc_Outputs = SeriesTree_Cohorts_Utxo_OverAmount_10kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_10k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_10k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_10k_btc_nupl') + self._2009: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2009') + self._2010: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2010') + self._2011: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2011') + self._2012: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2012') + self._2013: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2013') + self._2014: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2014') + self._2015: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2015') + self._2016: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2016') + self._2017: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2017') + self._2018: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2018') + self._2019: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2019') + self._2020: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2020') + self._2021: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2021') + self._2022: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2022') + self._2023: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2023') + self._2024: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2024') + self._2025: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2025') + self._2026: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'class_2026') class SeriesTree_Cohorts_Utxo_OverAmount: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._1sat: SeriesTree_Cohorts_Utxo_OverAmount_1sat = SeriesTree_Cohorts_Utxo_OverAmount_1sat(client) - self._10sats: SeriesTree_Cohorts_Utxo_OverAmount_10sats = SeriesTree_Cohorts_Utxo_OverAmount_10sats(client) - self._100sats: SeriesTree_Cohorts_Utxo_OverAmount_100sats = SeriesTree_Cohorts_Utxo_OverAmount_100sats(client) - self._1k_sats: SeriesTree_Cohorts_Utxo_OverAmount_1kSats = SeriesTree_Cohorts_Utxo_OverAmount_1kSats(client) - self._10k_sats: SeriesTree_Cohorts_Utxo_OverAmount_10kSats = SeriesTree_Cohorts_Utxo_OverAmount_10kSats(client) - self._100k_sats: SeriesTree_Cohorts_Utxo_OverAmount_100kSats = SeriesTree_Cohorts_Utxo_OverAmount_100kSats(client) - self._1m_sats: SeriesTree_Cohorts_Utxo_OverAmount_1mSats = SeriesTree_Cohorts_Utxo_OverAmount_1mSats(client) - self._10m_sats: SeriesTree_Cohorts_Utxo_OverAmount_10mSats = SeriesTree_Cohorts_Utxo_OverAmount_10mSats(client) - self._1btc: SeriesTree_Cohorts_Utxo_OverAmount_1btc = SeriesTree_Cohorts_Utxo_OverAmount_1btc(client) - self._10btc: SeriesTree_Cohorts_Utxo_OverAmount_10btc = SeriesTree_Cohorts_Utxo_OverAmount_10btc(client) - self._100btc: SeriesTree_Cohorts_Utxo_OverAmount_100btc = SeriesTree_Cohorts_Utxo_OverAmount_100btc(client) - self._1k_btc: SeriesTree_Cohorts_Utxo_OverAmount_1kBtc = SeriesTree_Cohorts_Utxo_OverAmount_1kBtc(client) - self._10k_btc: SeriesTree_Cohorts_Utxo_OverAmount_10kBtc = SeriesTree_Cohorts_Utxo_OverAmount_10kBtc(client) - -class SeriesTree_Cohorts_Utxo_AmountRange_0sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_0sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_0sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_0sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_0sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_0sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_0sats_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_0sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_0sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_0sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_0sats_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1sat_to_10sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1sat_to_10sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1sat_to_10sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_1sat_to_10sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_1sat_to_10sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_1sat_to_10sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_1sat_to_10sats_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_10sats_to_100sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_10sats_to_100sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_10sats_to_100sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_10sats_to_100sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_10sats_to_100sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_10sats_to_100sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_10sats_to_100sats_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_100sats_to_1k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_100sats_to_1k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_100sats_to_1k_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_100sats_to_1k_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_100sats_to_1k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_100sats_to_1k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_100sats_to_1k_sats_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1k_sats_to_10k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1k_sats_to_10k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1k_sats_to_10k_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_1k_sats_to_10k_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_1k_sats_to_10k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_1k_sats_to_10k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_1k_sats_to_10k_sats_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_10k_sats_to_100k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_10k_sats_to_100k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_10k_sats_to_100k_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_10k_sats_to_100k_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_10k_sats_to_100k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_10k_sats_to_100k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_10k_sats_to_100k_sats_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_100k_sats_to_1m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_100k_sats_to_1m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_100k_sats_to_1m_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_100k_sats_to_1m_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_100k_sats_to_1m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_100k_sats_to_1m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_100k_sats_to_1m_sats_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1m_sats_to_10m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1m_sats_to_10m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1m_sats_to_10m_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_1m_sats_to_10m_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_1m_sats_to_10m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_1m_sats_to_10m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_1m_sats_to_10m_sats_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_10m_sats_to_1btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_10m_sats_to_1btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_10m_sats_to_1btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_10m_sats_to_1btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_10m_sats_to_1btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_10m_sats_to_1btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_10m_sats_to_1btc_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1btc_to_10btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1btc_to_10btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1btc_to_10btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_1btc_to_10btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_1btc_to_10btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_1btc_to_10btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_1btc_to_10btc_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_10btc_to_100btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_10btc_to_100btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_10btc_to_100btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_10btc_to_100btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_10btc_to_100btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_10btc_to_100btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_10btc_to_100btc_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_100btc_to_1k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_100btc_to_1k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_100btc_to_1k_btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_100btc_to_1k_btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_100btc_to_1k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_100btc_to_1k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_100btc_to_1k_btc_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_1k_btc_to_10k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_1k_btc_to_10k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_1k_btc_to_10k_btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_1k_btc_to_10k_btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_1k_btc_to_10k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_1k_btc_to_10k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_1k_btc_to_10k_btc_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_10k_btc_to_100k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_10k_btc_to_100k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_10k_btc_to_100k_btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_10k_btc_to_100k_btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_10k_btc_to_100k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_10k_btc_to_100k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_10k_btc_to_100k_btc_nupl') - -class SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_over_100k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_over_100k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_over_100k_btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_over_100k_btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc_Outputs = SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_over_100k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_over_100k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_over_100k_btc_nupl') + self._1sat: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_1sat') + self._10sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_10sats') + self._100sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_100sats') + self._1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_1k_sats') + self._10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_10k_sats') + self._100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_100k_sats') + self._1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_1m_sats') + self._10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_10m_sats') + self._1btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_1btc') + self._10btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_10btc') + self._100btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_100btc') + self._1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_1k_btc') + self._10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_10k_btc') class SeriesTree_Cohorts_Utxo_AmountRange: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._0sats: SeriesTree_Cohorts_Utxo_AmountRange_0sats = SeriesTree_Cohorts_Utxo_AmountRange_0sats(client) - self._1sat_to_10sats: SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats = SeriesTree_Cohorts_Utxo_AmountRange_1satTo10sats(client) - self._10sats_to_100sats: SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats = SeriesTree_Cohorts_Utxo_AmountRange_10satsTo100sats(client) - self._100sats_to_1k_sats: SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats = SeriesTree_Cohorts_Utxo_AmountRange_100satsTo1kSats(client) - self._1k_sats_to_10k_sats: SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats = SeriesTree_Cohorts_Utxo_AmountRange_1kSatsTo10kSats(client) - self._10k_sats_to_100k_sats: SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats = SeriesTree_Cohorts_Utxo_AmountRange_10kSatsTo100kSats(client) - self._100k_sats_to_1m_sats: SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats = SeriesTree_Cohorts_Utxo_AmountRange_100kSatsTo1mSats(client) - self._1m_sats_to_10m_sats: SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats = SeriesTree_Cohorts_Utxo_AmountRange_1mSatsTo10mSats(client) - self._10m_sats_to_1btc: SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc = SeriesTree_Cohorts_Utxo_AmountRange_10mSatsTo1btc(client) - self._1btc_to_10btc: SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc = SeriesTree_Cohorts_Utxo_AmountRange_1btcTo10btc(client) - self._10btc_to_100btc: SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc = SeriesTree_Cohorts_Utxo_AmountRange_10btcTo100btc(client) - self._100btc_to_1k_btc: SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc = SeriesTree_Cohorts_Utxo_AmountRange_100btcTo1kBtc(client) - self._1k_btc_to_10k_btc: SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc = SeriesTree_Cohorts_Utxo_AmountRange_1kBtcTo10kBtc(client) - self._10k_btc_to_100k_btc: SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc = SeriesTree_Cohorts_Utxo_AmountRange_10kBtcTo100kBtc(client) - self.over_100k_btc: SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc = SeriesTree_Cohorts_Utxo_AmountRange_Over100kBtc(client) - -class SeriesTree_Cohorts_Utxo_UnderAmount_10sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_10sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_10sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_10sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_10sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_10sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10sats_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_10sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_10sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_10sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_10sats_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_100sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_100sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_100sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_100sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_100sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_100sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100sats_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_100sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_100sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_100sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_100sats_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_1kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_1k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_1k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_1k_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_1kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_1k_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1kSats_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_1kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_1k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_1k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_1k_sats_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_10kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_10k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_10k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_10k_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_10kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_10k_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10kSats_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_10kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_10k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_10k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_10k_sats_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_100kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_100k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_100k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_100k_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_100kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_100k_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100kSats_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_100kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_100k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_100k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_100k_sats_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_1mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_1m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_1m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_1m_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_1mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_1m_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1mSats_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_1mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_1m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_1m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_1m_sats_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_10mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_10m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_10m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_10m_sats_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_10mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_10m_sats_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10mSats_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_10mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_10m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_10m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_10m_sats_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_1btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_1btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_1btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_1btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_1btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_1btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1btc_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_1btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_1btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_1btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_1btc_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_10btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_10btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_10btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_10btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_10btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_10btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10btc_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_10btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_10btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_10btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_10btc_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_100btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_100btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_100btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_100btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_100btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_100btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100btc_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_100btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_100btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_100btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_100btc_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_1k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_1k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_1k_btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_1k_btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_1k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_1k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_1k_btc_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_10k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_10k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_10k_btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_10k_btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_10k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_10k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_10k_btc_nupl') - -class SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'utxos_under_100k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'utxos_under_100k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'utxos_under_100k_btc_spending_rate') - -class SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'utxos_under_100k_btc_supply') - self.outputs: SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc_Outputs = SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'utxos_under_100k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'utxos_under_100k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'utxos_under_100k_btc_nupl') + self._0sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_0sats') + self._1sat_to_10sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_1sat_to_10sats') + self._10sats_to_100sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_10sats_to_100sats') + self._100sats_to_1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_100sats_to_1k_sats') + self._1k_sats_to_10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_1k_sats_to_10k_sats') + self._10k_sats_to_100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_10k_sats_to_100k_sats') + self._100k_sats_to_1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_100k_sats_to_1m_sats') + self._1m_sats_to_10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_1m_sats_to_10m_sats') + self._10m_sats_to_1btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_10m_sats_to_1btc') + self._1btc_to_10btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_1btc_to_10btc') + self._10btc_to_100btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_10btc_to_100btc') + self._100btc_to_1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_100btc_to_1k_btc') + self._1k_btc_to_10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_1k_btc_to_10k_btc') + self._10k_btc_to_100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_10k_btc_to_100k_btc') + self.over_100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_over_100k_btc') class SeriesTree_Cohorts_Utxo_UnderAmount: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._10sats: SeriesTree_Cohorts_Utxo_UnderAmount_10sats = SeriesTree_Cohorts_Utxo_UnderAmount_10sats(client) - self._100sats: SeriesTree_Cohorts_Utxo_UnderAmount_100sats = SeriesTree_Cohorts_Utxo_UnderAmount_100sats(client) - self._1k_sats: SeriesTree_Cohorts_Utxo_UnderAmount_1kSats = SeriesTree_Cohorts_Utxo_UnderAmount_1kSats(client) - self._10k_sats: SeriesTree_Cohorts_Utxo_UnderAmount_10kSats = SeriesTree_Cohorts_Utxo_UnderAmount_10kSats(client) - self._100k_sats: SeriesTree_Cohorts_Utxo_UnderAmount_100kSats = SeriesTree_Cohorts_Utxo_UnderAmount_100kSats(client) - self._1m_sats: SeriesTree_Cohorts_Utxo_UnderAmount_1mSats = SeriesTree_Cohorts_Utxo_UnderAmount_1mSats(client) - self._10m_sats: SeriesTree_Cohorts_Utxo_UnderAmount_10mSats = SeriesTree_Cohorts_Utxo_UnderAmount_10mSats(client) - self._1btc: SeriesTree_Cohorts_Utxo_UnderAmount_1btc = SeriesTree_Cohorts_Utxo_UnderAmount_1btc(client) - self._10btc: SeriesTree_Cohorts_Utxo_UnderAmount_10btc = SeriesTree_Cohorts_Utxo_UnderAmount_10btc(client) - self._100btc: SeriesTree_Cohorts_Utxo_UnderAmount_100btc = SeriesTree_Cohorts_Utxo_UnderAmount_100btc(client) - self._1k_btc: SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc = SeriesTree_Cohorts_Utxo_UnderAmount_1kBtc(client) - self._10k_btc: SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc = SeriesTree_Cohorts_Utxo_UnderAmount_10kBtc(client) - self._100k_btc: SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc = SeriesTree_Cohorts_Utxo_UnderAmount_100kBtc(client) - -class SeriesTree_Cohorts_Utxo_Type_P2pk65_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'p2pk65_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'p2pk65_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'p2pk65_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_P2pk65: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'p2pk65_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_P2pk65_Outputs = SeriesTree_Cohorts_Utxo_Type_P2pk65_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'p2pk65_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'p2pk65') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'p2pk65') - -class SeriesTree_Cohorts_Utxo_Type_P2pk33_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'p2pk33_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'p2pk33_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'p2pk33_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_P2pk33: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'p2pk33_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_P2pk33_Outputs = SeriesTree_Cohorts_Utxo_Type_P2pk33_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'p2pk33_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'p2pk33') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'p2pk33') - -class SeriesTree_Cohorts_Utxo_Type_P2pkh_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'p2pkh_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'p2pkh_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'p2pkh_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_P2pkh: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'p2pkh_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_P2pkh_Outputs = SeriesTree_Cohorts_Utxo_Type_P2pkh_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'p2pkh_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'p2pkh') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'p2pkh') - -class SeriesTree_Cohorts_Utxo_Type_P2ms_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'p2ms_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'p2ms_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'p2ms_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_P2ms: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'p2ms_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_P2ms_Outputs = SeriesTree_Cohorts_Utxo_Type_P2ms_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'p2ms_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'p2ms') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'p2ms') - -class SeriesTree_Cohorts_Utxo_Type_P2sh_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'p2sh_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'p2sh_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'p2sh_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_P2sh: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'p2sh_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_P2sh_Outputs = SeriesTree_Cohorts_Utxo_Type_P2sh_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'p2sh_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'p2sh') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'p2sh') - -class SeriesTree_Cohorts_Utxo_Type_P2wpkh_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'p2wpkh_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'p2wpkh_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'p2wpkh_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_P2wpkh: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'p2wpkh_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_P2wpkh_Outputs = SeriesTree_Cohorts_Utxo_Type_P2wpkh_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'p2wpkh_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'p2wpkh') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'p2wpkh') - -class SeriesTree_Cohorts_Utxo_Type_P2wsh_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'p2wsh_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'p2wsh_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'p2wsh_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_P2wsh: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'p2wsh_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_P2wsh_Outputs = SeriesTree_Cohorts_Utxo_Type_P2wsh_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'p2wsh_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'p2wsh') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'p2wsh') - -class SeriesTree_Cohorts_Utxo_Type_P2tr_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'p2tr_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'p2tr_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'p2tr_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_P2tr: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'p2tr_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_P2tr_Outputs = SeriesTree_Cohorts_Utxo_Type_P2tr_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'p2tr_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'p2tr') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'p2tr') - -class SeriesTree_Cohorts_Utxo_Type_P2a_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'p2a_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'p2a_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'p2a_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_P2a: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'p2a_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_P2a_Outputs = SeriesTree_Cohorts_Utxo_Type_P2a_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'p2a_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'p2a') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'p2a') - -class SeriesTree_Cohorts_Utxo_Type_Unknown_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'unknown_outputs_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'unknown_outputs_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'unknown_outputs_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_Unknown: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'unknown_outputs_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_Unknown_Outputs = SeriesTree_Cohorts_Utxo_Type_Unknown_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'unknown_outputs_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'unknown_outputs') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'unknown_outputs') - -class SeriesTree_Cohorts_Utxo_Type_Empty_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'empty_outputs_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'empty_outputs_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'empty_outputs_spending_rate') - -class SeriesTree_Cohorts_Utxo_Type_Empty: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaHalfInTotalPattern2 = DeltaHalfInTotalPattern2(client, 'empty_outputs_supply') - self.outputs: SeriesTree_Cohorts_Utxo_Type_Empty_Outputs = SeriesTree_Cohorts_Utxo_Type_Empty_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'empty_outputs_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'empty_outputs') - self.unrealized: LossNuplProfitPattern = LossNuplProfitPattern(client, 'empty_outputs') + self._10sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_10sats') + self._100sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_100sats') + self._1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_1k_sats') + self._10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_10k_sats') + self._100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_100k_sats') + self._1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_1m_sats') + self._10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_10m_sats') + self._1btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_1btc') + self._10btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_10btc') + self._100btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_100btc') + self._1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_1k_btc') + self._10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_10k_btc') + self._100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern2 = ActivityOutputsRealizedSupplyUnrealizedPattern2(client, 'utxos_under_100k_btc') class SeriesTree_Cohorts_Utxo_Type: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self.p2pk65: SeriesTree_Cohorts_Utxo_Type_P2pk65 = SeriesTree_Cohorts_Utxo_Type_P2pk65(client) - self.p2pk33: SeriesTree_Cohorts_Utxo_Type_P2pk33 = SeriesTree_Cohorts_Utxo_Type_P2pk33(client) - self.p2pkh: SeriesTree_Cohorts_Utxo_Type_P2pkh = SeriesTree_Cohorts_Utxo_Type_P2pkh(client) - self.p2ms: SeriesTree_Cohorts_Utxo_Type_P2ms = SeriesTree_Cohorts_Utxo_Type_P2ms(client) - self.p2sh: SeriesTree_Cohorts_Utxo_Type_P2sh = SeriesTree_Cohorts_Utxo_Type_P2sh(client) - self.p2wpkh: SeriesTree_Cohorts_Utxo_Type_P2wpkh = SeriesTree_Cohorts_Utxo_Type_P2wpkh(client) - self.p2wsh: SeriesTree_Cohorts_Utxo_Type_P2wsh = SeriesTree_Cohorts_Utxo_Type_P2wsh(client) - self.p2tr: SeriesTree_Cohorts_Utxo_Type_P2tr = SeriesTree_Cohorts_Utxo_Type_P2tr(client) - self.p2a: SeriesTree_Cohorts_Utxo_Type_P2a = SeriesTree_Cohorts_Utxo_Type_P2a(client) - self.unknown: SeriesTree_Cohorts_Utxo_Type_Unknown = SeriesTree_Cohorts_Utxo_Type_Unknown(client) - self.empty: SeriesTree_Cohorts_Utxo_Type_Empty = SeriesTree_Cohorts_Utxo_Type_Empty(client) + self.p2pk65: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'p2pk65') + self.p2pk33: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'p2pk33') + self.p2pkh: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'p2pkh') + self.p2ms: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'p2ms') + self.p2sh: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'p2sh') + self.p2wpkh: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'p2wpkh') + self.p2wsh: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'p2wsh') + self.p2tr: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'p2tr') + self.p2a: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'p2a') + self.unknown: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'unknown_outputs') + self.empty: ActivityOutputsRealizedSupplyUnrealizedPattern3 = ActivityOutputsRealizedSupplyUnrealizedPattern3(client, 'empty_outputs') class SeriesTree_Cohorts_Utxo_Profitability_Range: """Series tree node.""" @@ -7984,840 +5559,61 @@ class SeriesTree_Cohorts_Utxo: self.profitability: SeriesTree_Cohorts_Utxo_Profitability = SeriesTree_Cohorts_Utxo_Profitability(client) self.matured: SeriesTree_Cohorts_Utxo_Matured = SeriesTree_Cohorts_Utxo_Matured(client) -class SeriesTree_Cohorts_Addr_OverAmount_1sat_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1sat_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_1sat_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_1sat_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_1sat: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_1sat_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_1sat_Outputs = SeriesTree_Cohorts_Addr_OverAmount_1sat_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_1sat_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_1sat') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_1sat_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1sat_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_10sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_10sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_10sats_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_10sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_10sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_10sats_Outputs = SeriesTree_Cohorts_Addr_OverAmount_10sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_10sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_10sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_10sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10sats_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_100sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_100sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_100sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_100sats_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_100sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_100sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_100sats_Outputs = SeriesTree_Cohorts_Addr_OverAmount_100sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_100sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_100sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_100sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_100sats_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_1kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_1k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_1k_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_1kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_1k_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_1kSats_Outputs = SeriesTree_Cohorts_Addr_OverAmount_1kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_1k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_1k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_1k_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1k_sats_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_10kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_10k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_10k_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_10kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_10k_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_10kSats_Outputs = SeriesTree_Cohorts_Addr_OverAmount_10kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_10k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_10k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_10k_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10k_sats_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_100kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_100k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_100k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_100k_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_100kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_100k_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_100kSats_Outputs = SeriesTree_Cohorts_Addr_OverAmount_100kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_100k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_100k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_100k_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_100k_sats_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_1mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_1m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_1m_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_1mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_1m_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_1mSats_Outputs = SeriesTree_Cohorts_Addr_OverAmount_1mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_1m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_1m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_1m_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1m_sats_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_10mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_10m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_10m_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_10mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_10m_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_10mSats_Outputs = SeriesTree_Cohorts_Addr_OverAmount_10mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_10m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_10m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_10m_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10m_sats_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_1btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_1btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_1btc_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_1btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_1btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_1btc_Outputs = SeriesTree_Cohorts_Addr_OverAmount_1btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_1btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_1btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_1btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1btc_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_10btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_10btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_10btc_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_10btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_10btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_10btc_Outputs = SeriesTree_Cohorts_Addr_OverAmount_10btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_10btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_10btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_10btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10btc_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_100btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_100btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_100btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_100btc_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_100btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_100btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_100btc_Outputs = SeriesTree_Cohorts_Addr_OverAmount_100btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_100btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_100btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_100btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_100btc_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_1kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_1k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_1k_btc_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_1kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_1k_btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_1kBtc_Outputs = SeriesTree_Cohorts_Addr_OverAmount_1kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_1k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_1k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_1k_btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_1k_btc_addr_count') - -class SeriesTree_Cohorts_Addr_OverAmount_10kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_10k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_10k_btc_spending_rate') - -class SeriesTree_Cohorts_Addr_OverAmount_10kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_10k_btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_OverAmount_10kBtc_Outputs = SeriesTree_Cohorts_Addr_OverAmount_10kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_10k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_10k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_10k_btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_10k_btc_addr_count') - class SeriesTree_Cohorts_Addr_OverAmount: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._1sat: SeriesTree_Cohorts_Addr_OverAmount_1sat = SeriesTree_Cohorts_Addr_OverAmount_1sat(client) - self._10sats: SeriesTree_Cohorts_Addr_OverAmount_10sats = SeriesTree_Cohorts_Addr_OverAmount_10sats(client) - self._100sats: SeriesTree_Cohorts_Addr_OverAmount_100sats = SeriesTree_Cohorts_Addr_OverAmount_100sats(client) - self._1k_sats: SeriesTree_Cohorts_Addr_OverAmount_1kSats = SeriesTree_Cohorts_Addr_OverAmount_1kSats(client) - self._10k_sats: SeriesTree_Cohorts_Addr_OverAmount_10kSats = SeriesTree_Cohorts_Addr_OverAmount_10kSats(client) - self._100k_sats: SeriesTree_Cohorts_Addr_OverAmount_100kSats = SeriesTree_Cohorts_Addr_OverAmount_100kSats(client) - self._1m_sats: SeriesTree_Cohorts_Addr_OverAmount_1mSats = SeriesTree_Cohorts_Addr_OverAmount_1mSats(client) - self._10m_sats: SeriesTree_Cohorts_Addr_OverAmount_10mSats = SeriesTree_Cohorts_Addr_OverAmount_10mSats(client) - self._1btc: SeriesTree_Cohorts_Addr_OverAmount_1btc = SeriesTree_Cohorts_Addr_OverAmount_1btc(client) - self._10btc: SeriesTree_Cohorts_Addr_OverAmount_10btc = SeriesTree_Cohorts_Addr_OverAmount_10btc(client) - self._100btc: SeriesTree_Cohorts_Addr_OverAmount_100btc = SeriesTree_Cohorts_Addr_OverAmount_100btc(client) - self._1k_btc: SeriesTree_Cohorts_Addr_OverAmount_1kBtc = SeriesTree_Cohorts_Addr_OverAmount_1kBtc(client) - self._10k_btc: SeriesTree_Cohorts_Addr_OverAmount_10kBtc = SeriesTree_Cohorts_Addr_OverAmount_10kBtc(client) - -class SeriesTree_Cohorts_Addr_AmountRange_0sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_0sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_0sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_0sats_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_0sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_0sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_0sats_Outputs = SeriesTree_Cohorts_Addr_AmountRange_0sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_0sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_0sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_0sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_0sats_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1sat_to_10sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_1sat_to_10sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_1sat_to_10sats_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_1sat_to_10sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats_Outputs = SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_1sat_to_10sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_1sat_to_10sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_1sat_to_10sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1sat_to_10sats_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10sats_to_100sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_10sats_to_100sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_10sats_to_100sats_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_10sats_to_100sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats_Outputs = SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_10sats_to_100sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_10sats_to_100sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_10sats_to_100sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10sats_to_100sats_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_100sats_to_1k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_100sats_to_1k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_100sats_to_1k_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_100sats_to_1k_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats_Outputs = SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_100sats_to_1k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_100sats_to_1k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_100sats_to_1k_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_100sats_to_1k_sats_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1k_sats_to_10k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_1k_sats_to_10k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_1k_sats_to_10k_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_1k_sats_to_10k_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats_Outputs = SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_1k_sats_to_10k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_1k_sats_to_10k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_1k_sats_to_10k_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1k_sats_to_10k_sats_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10k_sats_to_100k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_10k_sats_to_100k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_10k_sats_to_100k_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_10k_sats_to_100k_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats_Outputs = SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_10k_sats_to_100k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_10k_sats_to_100k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_10k_sats_to_100k_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10k_sats_to_100k_sats_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_100k_sats_to_1m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_100k_sats_to_1m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_100k_sats_to_1m_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_100k_sats_to_1m_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats_Outputs = SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_100k_sats_to_1m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_100k_sats_to_1m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_100k_sats_to_1m_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_100k_sats_to_1m_sats_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1m_sats_to_10m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_1m_sats_to_10m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_1m_sats_to_10m_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_1m_sats_to_10m_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats_Outputs = SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_1m_sats_to_10m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_1m_sats_to_10m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_1m_sats_to_10m_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1m_sats_to_10m_sats_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10m_sats_to_1btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_10m_sats_to_1btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_10m_sats_to_1btc_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_10m_sats_to_1btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc_Outputs = SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_10m_sats_to_1btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_10m_sats_to_1btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_10m_sats_to_1btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10m_sats_to_1btc_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1btc_to_10btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_1btc_to_10btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_1btc_to_10btc_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_1btc_to_10btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc_Outputs = SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_1btc_to_10btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_1btc_to_10btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_1btc_to_10btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1btc_to_10btc_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10btc_to_100btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_10btc_to_100btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_10btc_to_100btc_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_10btc_to_100btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc_Outputs = SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_10btc_to_100btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_10btc_to_100btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_10btc_to_100btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10btc_to_100btc_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_100btc_to_1k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_100btc_to_1k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_100btc_to_1k_btc_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_100btc_to_1k_btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc_Outputs = SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_100btc_to_1k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_100btc_to_1k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_100btc_to_1k_btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_100btc_to_1k_btc_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1k_btc_to_10k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_1k_btc_to_10k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_1k_btc_to_10k_btc_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_1k_btc_to_10k_btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc_Outputs = SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_1k_btc_to_10k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_1k_btc_to_10k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_1k_btc_to_10k_btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_1k_btc_to_10k_btc_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10k_btc_to_100k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_10k_btc_to_100k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_10k_btc_to_100k_btc_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_10k_btc_to_100k_btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc_Outputs = SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_10k_btc_to_100k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_10k_btc_to_100k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_10k_btc_to_100k_btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_10k_btc_to_100k_btc_addr_count') - -class SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_100k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_over_100k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_over_100k_btc_spending_rate') - -class SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_over_100k_btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc_Outputs = SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_over_100k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_over_100k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_over_100k_btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_over_100k_btc_addr_count') + self._1sat: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_1sat') + self._10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_10sats') + self._100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_100sats') + self._1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_1k_sats') + self._10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_10k_sats') + self._100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_100k_sats') + self._1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_1m_sats') + self._10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_10m_sats') + self._1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_1btc') + self._10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_10btc') + self._100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_100btc') + self._1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_1k_btc') + self._10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_10k_btc') class SeriesTree_Cohorts_Addr_AmountRange: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._0sats: SeriesTree_Cohorts_Addr_AmountRange_0sats = SeriesTree_Cohorts_Addr_AmountRange_0sats(client) - self._1sat_to_10sats: SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats = SeriesTree_Cohorts_Addr_AmountRange_1satTo10sats(client) - self._10sats_to_100sats: SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats = SeriesTree_Cohorts_Addr_AmountRange_10satsTo100sats(client) - self._100sats_to_1k_sats: SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats = SeriesTree_Cohorts_Addr_AmountRange_100satsTo1kSats(client) - self._1k_sats_to_10k_sats: SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats = SeriesTree_Cohorts_Addr_AmountRange_1kSatsTo10kSats(client) - self._10k_sats_to_100k_sats: SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats = SeriesTree_Cohorts_Addr_AmountRange_10kSatsTo100kSats(client) - self._100k_sats_to_1m_sats: SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats = SeriesTree_Cohorts_Addr_AmountRange_100kSatsTo1mSats(client) - self._1m_sats_to_10m_sats: SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats = SeriesTree_Cohorts_Addr_AmountRange_1mSatsTo10mSats(client) - self._10m_sats_to_1btc: SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc = SeriesTree_Cohorts_Addr_AmountRange_10mSatsTo1btc(client) - self._1btc_to_10btc: SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc = SeriesTree_Cohorts_Addr_AmountRange_1btcTo10btc(client) - self._10btc_to_100btc: SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc = SeriesTree_Cohorts_Addr_AmountRange_10btcTo100btc(client) - self._100btc_to_1k_btc: SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc = SeriesTree_Cohorts_Addr_AmountRange_100btcTo1kBtc(client) - self._1k_btc_to_10k_btc: SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc = SeriesTree_Cohorts_Addr_AmountRange_1kBtcTo10kBtc(client) - self._10k_btc_to_100k_btc: SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc = SeriesTree_Cohorts_Addr_AmountRange_10kBtcTo100kBtc(client) - self.over_100k_btc: SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc = SeriesTree_Cohorts_Addr_AmountRange_Over100kBtc(client) - -class SeriesTree_Cohorts_Addr_UnderAmount_10sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_10sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_10sats_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_10sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_10sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_10sats_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_10sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_10sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_10sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_10sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10sats_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_100sats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_100sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_100sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_100sats_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_100sats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_100sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_100sats_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_100sats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_100sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_100sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_100sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_100sats_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_1kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_1k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_1k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_1k_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_1kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_1k_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_1kSats_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_1kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_1k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_1k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_1k_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_1k_sats_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_10kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_10k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_10k_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_10kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_10k_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_10kSats_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_10kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_10k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_10k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_10k_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10k_sats_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_100kSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_100k_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_100k_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_100k_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_100kSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_100k_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_100kSats_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_100kSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_100k_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_100k_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_100k_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_100k_sats_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_1mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_1m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_1m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_1m_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_1mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_1m_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_1mSats_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_1mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_1m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_1m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_1m_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_1m_sats_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_10mSats_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10m_sats_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_10m_sats_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_10m_sats_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_10mSats: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_10m_sats_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_10mSats_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_10mSats_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_10m_sats_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_10m_sats') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_10m_sats_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10m_sats_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_1btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_1btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_1btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_1btc_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_1btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_1btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_1btc_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_1btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_1btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_1btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_1btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_1btc_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_10btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_10btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_10btc_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_10btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_10btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_10btc_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_10btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_10btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_10btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_10btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10btc_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_100btc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_100btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_100btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_100btc_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_100btc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_100btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_100btc_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_100btc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_100btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_100btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_100btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_100btc_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_1kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_1k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_1k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_1k_btc_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_1kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_1k_btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_1kBtc_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_1kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_1k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_1k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_1k_btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_1k_btc_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_10kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_10k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_10k_btc_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_10kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_10k_btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_10kBtc_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_10kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_10k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_10k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_10k_btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_10k_btc_addr_count') - -class SeriesTree_Cohorts_Addr_UnderAmount_100kBtc_Outputs: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.unspent_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_100k_btc_utxo_count') - self.spent_count: AverageBlockCumulativeSumPattern2 = AverageBlockCumulativeSumPattern2(client, 'addrs_under_100k_btc_spent_utxo_count') - self.spending_rate: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'addrs_under_100k_btc_spending_rate') - -class SeriesTree_Cohorts_Addr_UnderAmount_100kBtc: - """Series tree node.""" - - def __init__(self, client: BrkClientBase, base_path: str = ''): - self.supply: DeltaTotalPattern = DeltaTotalPattern(client, 'addrs_under_100k_btc_supply') - self.outputs: SeriesTree_Cohorts_Addr_UnderAmount_100kBtc_Outputs = SeriesTree_Cohorts_Addr_UnderAmount_100kBtc_Outputs(client) - self.activity: TransferPattern = TransferPattern(client, 'addrs_under_100k_btc_transfer_volume') - self.realized: CapLossMvrvPriceProfitPattern = CapLossMvrvPriceProfitPattern(client, 'addrs_under_100k_btc') - self.unrealized: NuplPattern = NuplPattern(client, 'addrs_under_100k_btc_nupl') - self.addr_count: BaseDeltaPattern = BaseDeltaPattern(client, 'addrs_under_100k_btc_addr_count') + self._0sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_0sats') + self._1sat_to_10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_1sat_to_10sats') + self._10sats_to_100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_10sats_to_100sats') + self._100sats_to_1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_100sats_to_1k_sats') + self._1k_sats_to_10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_1k_sats_to_10k_sats') + self._10k_sats_to_100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_10k_sats_to_100k_sats') + self._100k_sats_to_1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_100k_sats_to_1m_sats') + self._1m_sats_to_10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_1m_sats_to_10m_sats') + self._10m_sats_to_1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_10m_sats_to_1btc') + self._1btc_to_10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_1btc_to_10btc') + self._10btc_to_100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_10btc_to_100btc') + self._100btc_to_1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_100btc_to_1k_btc') + self._1k_btc_to_10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_1k_btc_to_10k_btc') + self._10k_btc_to_100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_10k_btc_to_100k_btc') + self.over_100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_over_100k_btc') class SeriesTree_Cohorts_Addr_UnderAmount: """Series tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._10sats: SeriesTree_Cohorts_Addr_UnderAmount_10sats = SeriesTree_Cohorts_Addr_UnderAmount_10sats(client) - self._100sats: SeriesTree_Cohorts_Addr_UnderAmount_100sats = SeriesTree_Cohorts_Addr_UnderAmount_100sats(client) - self._1k_sats: SeriesTree_Cohorts_Addr_UnderAmount_1kSats = SeriesTree_Cohorts_Addr_UnderAmount_1kSats(client) - self._10k_sats: SeriesTree_Cohorts_Addr_UnderAmount_10kSats = SeriesTree_Cohorts_Addr_UnderAmount_10kSats(client) - self._100k_sats: SeriesTree_Cohorts_Addr_UnderAmount_100kSats = SeriesTree_Cohorts_Addr_UnderAmount_100kSats(client) - self._1m_sats: SeriesTree_Cohorts_Addr_UnderAmount_1mSats = SeriesTree_Cohorts_Addr_UnderAmount_1mSats(client) - self._10m_sats: SeriesTree_Cohorts_Addr_UnderAmount_10mSats = SeriesTree_Cohorts_Addr_UnderAmount_10mSats(client) - self._1btc: SeriesTree_Cohorts_Addr_UnderAmount_1btc = SeriesTree_Cohorts_Addr_UnderAmount_1btc(client) - self._10btc: SeriesTree_Cohorts_Addr_UnderAmount_10btc = SeriesTree_Cohorts_Addr_UnderAmount_10btc(client) - self._100btc: SeriesTree_Cohorts_Addr_UnderAmount_100btc = SeriesTree_Cohorts_Addr_UnderAmount_100btc(client) - self._1k_btc: SeriesTree_Cohorts_Addr_UnderAmount_1kBtc = SeriesTree_Cohorts_Addr_UnderAmount_1kBtc(client) - self._10k_btc: SeriesTree_Cohorts_Addr_UnderAmount_10kBtc = SeriesTree_Cohorts_Addr_UnderAmount_10kBtc(client) - self._100k_btc: SeriesTree_Cohorts_Addr_UnderAmount_100kBtc = SeriesTree_Cohorts_Addr_UnderAmount_100kBtc(client) + self._10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_10sats') + self._100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_100sats') + self._1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_1k_sats') + self._10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_10k_sats') + self._100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_100k_sats') + self._1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_1m_sats') + self._10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_10m_sats') + self._1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_1btc') + self._10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_10btc') + self._100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_100btc') + self._1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_1k_btc') + self._10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_10k_btc') + self._100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_under_100k_btc') class SeriesTree_Cohorts_Addr: """Series tree node.""" diff --git a/website/scripts/options/cointime.js b/website/scripts/options/cointime.js index 9e1355474..1e9844fb4 100644 --- a/website/scripts/options/cointime.js +++ b/website/scripts/options/cointime.js @@ -266,7 +266,7 @@ export function createCointimeSection() { }), line({ series: activity.ratio, - name: "L/V Ratio", + name: "Liveliness / Vaultedness", color: colors.activity, unit: Unit.ratio, defaultActive: false, diff --git a/website/scripts/options/distribution/activity.js b/website/scripts/options/distribution/activity.js index 675f2e257..9b3b9af0b 100644 --- a/website/scripts/options/distribution/activity.js +++ b/website/scripts/options/distribution/activity.js @@ -66,7 +66,7 @@ function volumeTree(tv, color, title) { })), { name: "Cumulative", - title: title("Cumulative Transfer Volume"), + title: title("Cumulative Transfer Volume Profitability"), bottom: [ ...satsBtcUsd({ pattern: tv.inProfit.cumulative, @@ -231,7 +231,7 @@ function singleSellSideRiskTree(sellSideRisk, title) { title: title(`${w.title} Sell Side Risk`), bottom: percentRatio({ pattern: sellSideRisk[w.key], - name: "Risk", + name: "Sell Side Risk", color: w.color, }), })), @@ -381,7 +381,7 @@ export function createGroupedActivitySectionMinimal({ list, all, title }) { return { name: "Activity", tree: groupedWindowsCumulativeSatsBtcUsd({ - list, all, title, metricTitle: "Volume", + list, all, title, metricTitle: "Transfer Volume", getMetric: (c) => c.tree.activity.transferVolume, }), }; diff --git a/website/scripts/options/distribution/cost-basis.js b/website/scripts/options/distribution/cost-basis.js index 4e62eb3a6..5cfadb810 100644 --- a/website/scripts/options/distribution/cost-basis.js +++ b/website/scripts/options/distribution/cost-basis.js @@ -28,7 +28,7 @@ function percentileSeries(p, n = (x) => x) { .map(([key, s], i, arr) => price({ series: s, - name: n(key.replace("pct", "p")), + name: n(key.replace("pct", "P")), color: colors.at(i, arr.length), ...(ACTIVE_PCTS.has(key) ? {} : { defaultActive: false }), }), @@ -70,9 +70,9 @@ function singleWeightFolder({ avgPrice, avgName, inProfit, inLoss, percentiles, title: title(`Cost Basis Distribution (${weightLabel})`), top: [ price({ series: avgPrice, name: avgName, color }), - ...(max ? [price({ series: max, name: "p100", color: colors.stat.max, defaultActive: false })] : []), + ...(max ? [price({ series: max, name: "P100", color: colors.stat.max, defaultActive: false })] : []), ...percentileSeries(percentiles), - ...(min ? [price({ series: min, name: "p0", color: colors.stat.min, defaultActive: false })] : []), + ...(min ? [price({ series: min, name: "P0", color: colors.stat.min, defaultActive: false })] : []), ], }, ]; diff --git a/website/scripts/options/distribution/holdings.js b/website/scripts/options/distribution/holdings.js index 73f5f753d..4352fc14d 100644 --- a/website/scripts/options/distribution/holdings.js +++ b/website/scripts/options/distribution/holdings.js @@ -18,12 +18,14 @@ import { rollingPercentRatioTree, percentRatio, percentRatioBaseline, + chartsFromCount, } from "../series.js"; import { satsBtcUsd, flatMapCohorts, mapCohortsWithAll, flatMapCohortsWithAll, + groupedWindowsCumulative, } from "../shared.js"; import { colors } from "../../utils/colors.js"; import { priceLines } from "../constants.js"; @@ -46,18 +48,39 @@ function simpleSupplySeries(supply) { * @param {CohortAll} all * @param {(name: string) => string} title */ -function groupedUtxoCountFolder(list, all, title) { +function groupedOutputsFolder(list, all, title) { return { - name: "UTXOs", + name: "Outputs", tree: [ { - name: "Count", - title: title("UTXO Count"), + name: "Unspent", + tree: [ + { + name: "Count", + title: title("UTXO Count"), + bottom: mapCohortsWithAll(list, all, ({ name, color, tree }) => + line({ series: tree.outputs.unspentCount.base, name, color, unit: Unit.count }), + ), + }, + ...groupedDeltaItems(list, all, (c) => c.tree.outputs.unspentCount.delta, Unit.count, title, "UTXO Count"), + ], + }, + { + name: "Spent", + tree: groupedWindowsCumulative({ + list, all, title, metricTitle: "Spent UTXO Count", + getWindowSeries: (c, key) => c.tree.outputs.spentCount.sum[key], + getCumulativeSeries: (c) => c.tree.outputs.spentCount.cumulative, + seriesFn: line, unit: Unit.count, + }), + }, + { + name: "Spending Rate", + title: title("Spending Rate"), bottom: mapCohortsWithAll(list, all, ({ name, color, tree }) => - line({ series: tree.outputs.unspentCount.base, name, color, unit: Unit.count }), + line({ series: tree.outputs.spendingRate, name, color, unit: Unit.ratio }), ), }, - ...groupedDeltaItems(list, all, (c) => c.tree.outputs.unspentCount.delta, Unit.count, title, "UTXO Count"), ], }; } @@ -211,7 +234,32 @@ function ownSupplyChart(supply, title) { } /** - * Count folder (UTXO or Address) with value + change + * @param {OutputsPattern} outputs + * @param {Color} color + * @param {(name: string) => string} title + * @returns {PartialOptionsGroup} + */ +function outputsFolder(outputs, color, title) { + return { + name: "Outputs", + tree: [ + countFolder(outputs.unspentCount, "Unspent", "UTXO Count", color, title), + { + name: "Spent", + tree: chartsFromCount({ pattern: outputs.spentCount, title, metric: "Spent UTXO Count", unit: Unit.count, color }), + }, + { + name: "Spending Rate", + title: title("Spending Rate"), + bottom: [ + line({ series: outputs.spendingRate, name: "Rate", color, unit: Unit.ratio }), + ], + }, + ], + }; +} + +/** * @param {{ base: AnySeriesPattern, delta: DeltaPattern }} pattern * @param {string} name * @param {string} chartTitle @@ -262,7 +310,7 @@ export function createHoldingsSection({ cohort, title }) { ...singleDeltaItems(supply.delta, Unit.sats, title, "Supply"), ], }, - countFolder(cohort.tree.outputs.unspentCount, "UTXOs", "UTXO Count", cohort.color, title), + outputsFolder(cohort.tree.outputs, cohort.color, title), ]; } @@ -286,7 +334,7 @@ export function createHoldingsSectionAll({ cohort, title }) { ...singleDeltaItems(supply.delta, Unit.sats, title, "Supply"), ], }, - countFolder(cohort.tree.outputs.unspentCount, "UTXOs", "UTXO Count", cohort.color, title), + outputsFolder(cohort.tree.outputs, cohort.color, title), countFolder(cohort.addressCount, "Addresses", "Address Count", cohort.color, title), ]; } @@ -312,7 +360,7 @@ export function createHoldingsSectionWithRelative({ cohort, title }) { ...singleDeltaItems(supply.delta, Unit.sats, title, "Supply"), ], }, - countFolder(cohort.tree.outputs.unspentCount, "UTXOs", "UTXO Count", cohort.color, title), + outputsFolder(cohort.tree.outputs, cohort.color, title), ]; } @@ -336,7 +384,7 @@ export function createHoldingsSectionWithOwnSupply({ cohort, title }) { ...singleDeltaItems(supply.delta, Unit.sats, title, "Supply"), ], }, - countFolder(cohort.tree.outputs.unspentCount, "UTXOs", "UTXO Count", cohort.color, title), + outputsFolder(cohort.tree.outputs, cohort.color, title), ]; } @@ -359,7 +407,7 @@ export function createHoldingsSectionWithProfitLoss({ cohort, title }) { ...singleDeltaItems(supply.delta, Unit.sats, title, "Supply"), ], }, - countFolder(cohort.tree.outputs.unspentCount, "UTXOs", "UTXO Count", cohort.color, title), + outputsFolder(cohort.tree.outputs, cohort.color, title), ]; } @@ -382,7 +430,7 @@ export function createHoldingsSectionAddress({ cohort, title }) { ...singleDeltaItems(supply.delta, Unit.sats, title, "Supply"), ], }, - countFolder(cohort.tree.outputs.unspentCount, "UTXOs", "UTXO Count", cohort.color, title), + outputsFolder(cohort.tree.outputs, cohort.color, title), countFolder(cohort.addressCount, "Addresses", "Address Count", cohort.color, title), ]; } @@ -405,7 +453,7 @@ export function createHoldingsSectionAddressAmount({ cohort, title }) { ...singleDeltaItems(supply.delta, Unit.sats, title, "Supply"), ], }, - countFolder(cohort.tree.outputs.unspentCount, "UTXOs", "UTXO Count", cohort.color, title), + outputsFolder(cohort.tree.outputs, cohort.color, title), countFolder(cohort.addressCount, "Addresses", "Address Count", cohort.color, title), ]; } @@ -457,7 +505,7 @@ export function createGroupedHoldingsSectionAddress({ list, all, title }) { ...groupedDeltaItems(list, all, (c) => c.tree.supply.delta, Unit.sats, title, "Supply"), ], }, - groupedUtxoCountFolder(list, all, title), + groupedOutputsFolder(list, all, title), { name: "Addresses", tree: [ @@ -488,7 +536,7 @@ export function createGroupedHoldingsSectionAddressAmount({ list, all, title }) ...groupedDeltaItems(list, all, (c) => c.tree.supply.delta, Unit.sats, title, "Supply"), ], }, - groupedUtxoCountFolder(list, all, title), + groupedOutputsFolder(list, all, title), { name: "Addresses", tree: [ @@ -515,7 +563,7 @@ export function createGroupedHoldingsSection({ list, all, title }) { ...groupedDeltaItems(list, all, (c) => c.tree.supply.delta, Unit.sats, title, "Supply"), ], }, - groupedUtxoCountFolder(list, all, title), + groupedOutputsFolder(list, all, title), ]; } @@ -530,7 +578,7 @@ export function createGroupedHoldingsSectionWithProfitLoss({ list, all, title }) ...groupedDeltaItems(list, all, (c) => c.tree.supply.delta, Unit.sats, title, "Supply"), ], }, - groupedUtxoCountFolder(list, all, title), + groupedOutputsFolder(list, all, title), ]; } @@ -546,7 +594,7 @@ export function createGroupedHoldingsSectionWithOwnSupply({ list, all, title }) ...groupedDeltaItems(list, all, (c) => c.tree.supply.delta, Unit.sats, title, "Supply"), ], }, - groupedUtxoCountFolder(list, all, title), + groupedOutputsFolder(list, all, title), ]; } @@ -568,6 +616,6 @@ export function createGroupedHoldingsSectionWithRelative({ list, all, title }) { ...groupedDeltaItems(list, all, (c) => c.tree.supply.delta, Unit.sats, title, "Supply"), ], }, - groupedUtxoCountFolder(list, all, title), + groupedOutputsFolder(list, all, title), ]; } diff --git a/website/scripts/options/distribution/index.js b/website/scripts/options/distribution/index.js index 0d3c1eb99..4d5bc44c9 100644 --- a/website/scripts/options/distribution/index.js +++ b/website/scripts/options/distribution/index.js @@ -496,10 +496,11 @@ export function createGroupedAddressCohortFolder({ /** * @param {{ name: string, color: Color, pattern: RealizedSupplyPattern }} bucket + * @param {string} [parentName] * @returns {PartialOptionsGroup} */ -function singleBucketFolder({ name, color, pattern }) { - const title = formatCohortTitle(name); +function singleBucketFolder({ name, color, pattern }, parentName) { + const title = formatCohortTitle(parentName ? `${parentName} ${name}` : name); return { name, tree: [ @@ -507,7 +508,7 @@ function singleBucketFolder({ name, color, pattern }) { name: "Supply", tree: [ { - name: "Value", + name: "Total", title: title("Supply"), bottom: [ ...satsBtcUsd({ pattern: pattern.supply.all, name: "Total" }), @@ -519,26 +520,21 @@ function singleBucketFolder({ name, color, pattern }) { ], }, { + ...sumsTreeBaseline({ + windows: pattern.supply.all.delta.absolute, + title, + metric: "Supply Change", + unit: Unit.sats, + }), name: "Change", - tree: [ - { - ...sumsTreeBaseline({ - windows: pattern.supply.all.delta.absolute, - title, - metric: "Supply Change", - unit: Unit.sats, - }), - name: "Change", - }, - { - ...rollingPercentRatioTree({ - windows: pattern.supply.all.delta.rate, - title, - metric: "Supply Growth Rate", - }), - name: "Growth Rate", - }, - ], + }, + { + ...rollingPercentRatioTree({ + windows: pattern.supply.all.delta.rate, + title, + metric: "Supply Growth Rate", + }), + name: "Growth Rate", }, ], }, @@ -559,6 +555,23 @@ function singleBucketFolder({ name, color, pattern }) { }), ], }, + { + name: "Unrealized PnL", + title: title("Unrealized PnL"), + bottom: [ + line({ + series: pattern.unrealizedPnl.all, + name: "Total", + unit: Unit.usd, + }), + line({ + series: pattern.unrealizedPnl.sth, + name: "STH", + color: colors.term.short, + unit: Unit.usd, + }), + ], + }, { name: "NUPL", title: title("NUPL"), @@ -599,65 +612,60 @@ function groupedBucketCharts(list, groupTitle) { name: "Change", tree: [ { - name: "Change", - tree: [ - { - name: "Compare", - title: title("Supply Change"), - bottom: ROLLING_WINDOWS.flatMap((w) => - list.map(({ name, color, pattern }) => - baseline({ - series: pattern.supply.all.delta.absolute[w.key], - name: `${name} ${w.name}`, - color, - unit: Unit.sats, - }), - ), - ), - }, - ...ROLLING_WINDOWS.map((w) => ({ - name: w.name, - title: title(`${w.title} Supply Change`), - bottom: list.map(({ name, color, pattern }) => - baseline({ - series: pattern.supply.all.delta.absolute[w.key], - name, - color, - unit: Unit.sats, - }), - ), - })), - ], + name: "Compare", + title: title("Supply Change"), + bottom: ROLLING_WINDOWS.flatMap((w) => + list.map(({ name, color, pattern }) => + baseline({ + series: pattern.supply.all.delta.absolute[w.key], + name: `${name} ${w.name}`, + color, + unit: Unit.sats, + }), + ), + ), }, + ...ROLLING_WINDOWS.map((w) => ({ + name: w.name, + title: title(`${w.title} Supply Change`), + bottom: list.map(({ name, color, pattern }) => + baseline({ + series: pattern.supply.all.delta.absolute[w.key], + name, + color, + unit: Unit.sats, + }), + ), + })), + ], + }, + { + name: "Growth Rate", + tree: [ { - name: "Growth Rate", - tree: [ - { - name: "Compare", - title: title("Supply Growth Rate"), - bottom: ROLLING_WINDOWS.flatMap((w) => - list.flatMap(({ name, color, pattern }) => - percentRatio({ - pattern: pattern.supply.all.delta.rate[w.key], - name: `${name} ${w.name}`, - color, - }), - ), - ), - }, - ...ROLLING_WINDOWS.map((w) => ({ - name: w.name, - title: title(`${w.title} Supply Growth Rate`), - bottom: list.flatMap(({ name, color, pattern }) => - percentRatio({ - pattern: pattern.supply.all.delta.rate[w.key], - name, - color, - }), - ), - })), - ], + name: "Compare", + title: title("Supply Growth Rate"), + bottom: ROLLING_WINDOWS.flatMap((w) => + list.flatMap(({ name, color, pattern }) => + percentRatio({ + pattern: pattern.supply.all.delta.rate[w.key], + name: `${name} ${w.name}`, + color, + }), + ), + ), }, + ...ROLLING_WINDOWS.map((w) => ({ + name: w.name, + title: title(`${w.title} Supply Growth Rate`), + bottom: list.flatMap(({ name, color, pattern }) => + percentRatio({ + pattern: pattern.supply.all.delta.rate[w.key], + name, + color, + }), + ), + })), ], }, ], @@ -691,6 +699,35 @@ function groupedBucketCharts(list, groupTitle) { }, ], }, + { + name: "Unrealized PnL", + tree: [ + { + name: "All", + title: title("Unrealized PnL"), + bottom: list.map(({ name, color, pattern }) => + line({ + series: pattern.unrealizedPnl.all, + name, + color, + unit: Unit.usd, + }), + ), + }, + { + name: "STH", + title: title("STH Unrealized PnL"), + bottom: list.map(({ name, color, pattern }) => + line({ + series: pattern.unrealizedPnl.sth, + name, + color, + unit: Unit.usd, + }), + ), + }, + ], + }, { name: "NUPL", title: title("NUPL"), @@ -716,21 +753,21 @@ export function createUtxoProfitabilitySection({ range, profit, loss }) { name: "Compare", tree: groupedBucketCharts(range, "Profitability Range"), }, - ...range.map(singleBucketFolder), + ...range.map((bucket) => singleBucketFolder(bucket)), ], }, { name: "In Profit", tree: [ { name: "Compare", tree: groupedBucketCharts(profit, "In Profit") }, - ...profit.map(singleBucketFolder), + ...profit.map((bucket) => singleBucketFolder(bucket, "In Profit")), ], }, { name: "In Loss", tree: [ { name: "Compare", tree: groupedBucketCharts(loss, "In Loss") }, - ...loss.map(singleBucketFolder), + ...loss.map((bucket) => singleBucketFolder(bucket, "In Loss")), ], }, ], diff --git a/website/scripts/options/distribution/prices.js b/website/scripts/options/distribution/prices.js index 120c9224f..bac02c8d6 100644 --- a/website/scripts/options/distribution/prices.js +++ b/website/scripts/options/distribution/prices.js @@ -40,7 +40,7 @@ export function createPricesSectionFull({ cohort, title }) { { name: "Realized", tree: createPriceRatioCharts({ - context: cohort.name, + context: cohort.title, legend: "Realized", pricePattern: tree.realized.price, ratio: tree.realized.price, @@ -54,6 +54,7 @@ export function createPricesSectionFull({ cohort, title }) { tree: priceRatioPercentilesTree({ pattern: tree.realized.investor.price, title: title("Investor Price"), + ratioTitle: title("Investor Price Ratio"), legend: "Investor", color, }), @@ -82,24 +83,12 @@ export function createPricesSectionBasic({ cohort, title }) { top: [price({ series: tree.realized.price, name: "Realized", color })], }, { - name: "MVRV", - title: title("MVRV"), - bottom: [ - baseline({ - series: tree.realized.mvrv, - name: "MVRV", - unit: Unit.ratio, - base: 1, - }), - ], - }, - { - name: "Price Ratio", + name: "Ratio", title: title("Realized Price Ratio"), bottom: [ baseline({ series: tree.realized.price.ratio, - name: "Price Ratio", + name: "Ratio", unit: Unit.ratio, base: 1, }), @@ -136,7 +125,7 @@ function groupedRealizedPriceItems(list, all, title) { }, { name: "Ratio", - title: title("MVRV"), + title: title("Realized Price Ratio"), bottom: mapCohortsWithAll(list, all, ({ name, color, tree }) => baseline({ series: tree.realized.mvrv, name, color, unit: Unit.ratio, base: 1 }), ), diff --git a/website/scripts/options/distribution/profitability.js b/website/scripts/options/distribution/profitability.js index 018999f85..2b6182309 100644 --- a/website/scripts/options/distribution/profitability.js +++ b/website/scripts/options/distribution/profitability.js @@ -61,7 +61,7 @@ function unrealizedOverview(profit, loss, netPnlUsd, title) { }), dotted({ series: loss.negative, - name: "Neg. Loss", + name: "Negated Loss", color: colors.loss, unit: Unit.usd, }), @@ -233,12 +233,19 @@ function unrealizedTreeLongTerm(u, title) { ownPnlChart(u, title), { name: "% of Market Cap", - title: title("Unrealized Loss (% of Market Cap)"), - bottom: percentRatio({ - pattern: u.loss.toMcap, - name: "Loss", - color: colors.loss, - }), + title: title("Unrealized P&L (% of Market Cap)"), + bottom: [ + ...percentRatio({ + pattern: u.profit.toMcap, + name: "Profit", + color: colors.profit, + }), + ...percentRatio({ + pattern: u.loss.toMcap, + name: "Loss", + color: colors.loss, + }), + ], }, relPnlChartWithNet(u.netPnl.toOwnMcap, u.profit.toOwnMcap, u.loss.toOwnMcap, "% of Own Market Cap", title), ]; @@ -448,7 +455,7 @@ function realizedOverviewFolder({ }), dotted({ series: loss.negative.sum[w.key], - name: "Neg. Loss", + name: "Negated Loss", color: colors.loss, unit: Unit.usd, }), @@ -518,7 +525,7 @@ function realizedSubfolderFull(r, title) { title: title("Net Realized P&L Change (% of Market Cap)"), bottom: percentRatioBaseline({ pattern: r.netPnl.change1m.toMcap, - name: "30d Change", + name: "1m Change", }), }, { @@ -526,7 +533,7 @@ function realizedSubfolderFull(r, title) { title: title("Net Realized P&L Change (% of Realized Cap)"), bottom: percentRatioBaseline({ pattern: r.netPnl.change1m.toRcap, - name: "30d Change", + name: "1m Change", }), }, ], @@ -740,7 +747,7 @@ export function createProfitabilitySectionWithProfitLoss({ cohort, title }) { title: title("Unrealized P&L"), bottom: [ line({ series: u.profit.usd, name: "Profit", color: colors.profit, unit: Unit.usd }), - line({ series: u.loss.negative, name: "Neg. Loss", color: colors.loss, unit: Unit.usd }), + line({ series: u.loss.negative, name: "Negated Loss", color: colors.loss, unit: Unit.usd }), line({ series: u.loss.usd, name: "Loss", color: colors.loss, unit: Unit.usd, defaultActive: false }), priceLine({ unit: Unit.usd }), ], @@ -997,7 +1004,7 @@ function groupedRealizedSubfolderFull(list, all, title) { list, all, title, - metricTitle: "Gross Realized P&L", + metricTitle: "Realized Gross P&L", getMetric: (c) => c.tree.realized.grossPnl, }), }, diff --git a/website/scripts/options/distribution/valuation.js b/website/scripts/options/distribution/valuation.js index e2ee8a15c..99c1cd2f1 100644 --- a/website/scripts/options/distribution/valuation.js +++ b/website/scripts/options/distribution/valuation.js @@ -89,7 +89,7 @@ export function createValuationSectionFull({ cohort, title }) { }, { name: "MVRV", title: title("MVRV"), bottom: ratioBottomSeries(tree.realized.price) }, ...singleDeltaItems(tree, title), - { name: "% of Own Market Cap", title: title("Realized Cap (% of Own Market Cap)"), bottom: percentRatioBaseline({ pattern: tree.realized.cap.toOwnMcap, name: "Rel. to Own Market Cap", color }) }, + { name: "% of Own Market Cap", title: title("Realized Cap (% of Own Market Cap)"), bottom: percentRatioBaseline({ pattern: tree.realized.cap.toOwnMcap, name: "% of Own Market Cap", color }) }, ], }; } diff --git a/website/scripts/options/investing.js b/website/scripts/options/investing.js index cfedcf084..6077f5d48 100644 --- a/website/scripts/options/investing.js +++ b/website/scripts/options/investing.js @@ -231,7 +231,7 @@ function createSingleEntryTree(item, returnsBottom) { * @param {BaseEntryItem & { titlePrefix?: string }} item */ function createShortSingleEntry(item) { - return createSingleEntryTree(item, percentRatioBaseline({ pattern: item.returns, name: "Current" })); + return createSingleEntryTree(item, percentRatioBaseline({ pattern: item.returns, name: "Return" })); } /** @@ -249,7 +249,7 @@ function createLongSingleEntry(item) { name: "Returns", title: `Returns: ${titlePrefix}`, top, - bottom: percentRatioBaseline({ pattern: returns, name: "Current" }), + bottom: percentRatioBaseline({ pattern: returns, name: "Return" }), }, { name: "CAGR", diff --git a/website/scripts/options/market.js b/website/scripts/options/market.js index bb29203e3..abb420d33 100644 --- a/website/scripts/options/market.js +++ b/website/scripts/options/market.js @@ -86,7 +86,7 @@ function createMaSubSection(label, averages) { tree: simplePriceRatioTree({ pattern: a.ratio, title: `${periodIdToName(a.id, true)} ${label}`, - legend: "average", + legend: "Average", color: a.color, }), }); @@ -204,14 +204,14 @@ function historicalSubSection(name, periods) { tree: [ { name: "Compare", - title: `${name} Historical`, + title: `${name} Historical Prices`, top: periods.map((p) => price({ series: p.lookback, name: p.id, color: p.color }), ), }, ...periods.map((p) => ({ name: periodIdToName(p.id, true), - title: `${periodIdToName(p.id, true)} Ago`, + title: `Price ${periodIdToName(p.id)} Ago`, top: [price({ series: p.lookback, name: "Price" })], })), ], @@ -438,23 +438,23 @@ export function createMarketSection() { bottom: [ line({ series: ath.daysSince, - name: "Since", + name: "Days", unit: Unit.days, }), line({ series: ath.yearsSince, - name: "Since", + name: "Years", unit: Unit.years, }), line({ series: ath.maxDaysBetween, - name: "Max", + name: "Max Days", color: colors.loss, unit: Unit.days, }), line({ series: ath.maxYearsBetween, - name: "Max", + name: "Max Years", color: colors.loss, unit: Unit.years, }), @@ -490,7 +490,7 @@ export function createMarketSection() { tree: [ { name: "Compare", - title: "Historical Comparison", + title: "Historical Price Comparison", top: [...shortPeriods, ...longPeriods].map((p) => price({ series: p.lookback, @@ -511,7 +511,7 @@ export function createMarketSection() { tree: [ { name: "Compare", - title: "Market vs Realized Capitalization", + title: "Market vs Realized Cap", bottom: [ line({ series: supply.marketCap.usd, @@ -553,7 +553,7 @@ export function createMarketSection() { tree: [ { name: "Value", - title: "Realized Capitalization", + title: "Realized Cap", bottom: [ line({ series: cohorts.utxo.all.realized.cap.usd, @@ -802,11 +802,11 @@ export function createMarketSection() { tree: [ { name: "Daily", - title: "True Range (Daily)", + title: "Daily True Range", bottom: [ line({ series: range.trueRange, - name: "Daily", + name: "True Range", color: colors.time._24h, unit: Unit.usd, }), @@ -814,7 +814,7 @@ export function createMarketSection() { }, { name: "2 Week Sum", - title: "True Range (2 Week Sum)", + title: "2 Week True Range Sum", bottom: [ line({ series: range.trueRangeSum2w, @@ -867,7 +867,7 @@ export function createMarketSection() { ], }, { - name: "MinMax", + name: "Min/Max", tree: [ { id: "1w", @@ -895,7 +895,7 @@ export function createMarketSection() { }, ].map((p) => ({ name: p.id, - title: `${p.name} MinMax`, + title: `${p.name} Min/Max`, top: [ price({ series: p.max, diff --git a/website/scripts/options/mining.js b/website/scripts/options/mining.js index b70d08cec..0ff35813f 100644 --- a/website/scripts/options/mining.js +++ b/website/scripts/options/mining.js @@ -299,7 +299,7 @@ export function createMiningSection() { tree: [ ...ROLLING_WINDOWS.map((w) => ({ name: w.name, - title: `${w.title} Revenue`, + title: `${w.title} Mining Revenue`, bottom: revenueRollingBtcSatsUsd({ coinbase: mining.rewards.coinbase.average[w.key], subsidy: mining.rewards.subsidy.average[w.key], @@ -308,7 +308,7 @@ export function createMiningSection() { })), { name: "Cumulative", - title: "Revenue Comparison (Total)", + title: "Cumulative Mining Revenue", bottom: revenueBtcSatsUsd({ coinbase: mining.rewards.coinbase, subsidy: mining.rewards.subsidy, @@ -338,7 +338,7 @@ export function createMiningSection() { metric: "Transaction Fee Revenue", }), { - name: "Distributions", + name: "Distribution", tree: ROLLING_WINDOWS.map((w) => ({ name: w.name, title: `${w.title} Fee Revenue per Block Distribution`, @@ -352,15 +352,15 @@ export function createMiningSection() { tree: [ ...ROLLING_WINDOWS.map((w) => ({ name: w.name, - title: `${w.title} Revenue Dominance`, + title: `${w.title} Mining Revenue Dominance`, bottom: [ ...percentRatio({ pattern: mining.rewards.subsidy.dominance[w.key], name: "Subsidy", color: colors.mining.subsidy }), ...percentRatio({ pattern: mining.rewards.fees.dominance[w.key], name: "Fees", color: colors.mining.fee }), ], })), { - name: "All-time", - title: "Revenue Dominance (All-time)", + name: "All Time", + title: "All Time Mining Revenue Dominance", bottom: [ ...percentRatio({ pattern: mining.rewards.subsidy.dominance, name: "Subsidy", color: colors.mining.subsidy }), ...percentRatio({ pattern: mining.rewards.fees.dominance, name: "Fees", color: colors.mining.fee }), @@ -369,7 +369,7 @@ export function createMiningSection() { ], }, { - name: "Fee Multiple", + name: "Fee-to-Subsidy", tree: ROLLING_WINDOWS.map((w) => ({ name: w.name, title: `${w.title} Fee-to-Subsidy Ratio`, @@ -378,11 +378,11 @@ export function createMiningSection() { }, { name: "Unclaimed", - title: "Unclaimed Rewards (Total)", + title: "Unclaimed Rewards", bottom: satsBtcUsdFrom({ source: mining.rewards.unclaimed, key: "cumulative", - name: "all-time", + name: "All Time", }), }, ], @@ -397,8 +397,8 @@ export function createMiningSection() { bottom: [ line({ series: mining.hashrate.price.ths, name: "TH/s", color: colors.usd, unit: Unit.usdPerThsPerDay }), line({ series: mining.hashrate.price.phs, name: "PH/s", color: colors.usd, unit: Unit.usdPerPhsPerDay }), - dotted({ series: mining.hashrate.price.thsMin, name: "TH/s Min", color: colors.stat.min, unit: Unit.usdPerThsPerDay }), - dotted({ series: mining.hashrate.price.phsMin, name: "PH/s Min", color: colors.stat.min, unit: Unit.usdPerPhsPerDay }), + dotted({ series: mining.hashrate.price.thsMin, name: "TH/s ATL", color: colors.stat.min, unit: Unit.usdPerThsPerDay }), + dotted({ series: mining.hashrate.price.phsMin, name: "PH/s ATL", color: colors.stat.min, unit: Unit.usdPerPhsPerDay }), ], }, { @@ -407,13 +407,13 @@ export function createMiningSection() { bottom: [ line({ series: mining.hashrate.value.ths, name: "TH/s", color: colors.bitcoin, unit: Unit.satsPerThsPerDay }), line({ series: mining.hashrate.value.phs, name: "PH/s", color: colors.bitcoin, unit: Unit.satsPerPhsPerDay }), - dotted({ series: mining.hashrate.value.thsMin, name: "TH/s Min", color: colors.stat.min, unit: Unit.satsPerThsPerDay }), - dotted({ series: mining.hashrate.value.phsMin, name: "PH/s Min", color: colors.stat.min, unit: Unit.satsPerPhsPerDay }), + dotted({ series: mining.hashrate.value.thsMin, name: "TH/s ATL", color: colors.stat.min, unit: Unit.satsPerThsPerDay }), + dotted({ series: mining.hashrate.value.phsMin, name: "PH/s ATL", color: colors.stat.min, unit: Unit.satsPerPhsPerDay }), ], }, { name: "Recovery", - title: "Recovery", + title: "Mining Recovery", bottom: [ ...percentRatio({ pattern: mining.hashrate.price.rebound, name: "Hash Price", color: colors.usd }), ...percentRatio({ pattern: mining.hashrate.value.rebound, name: "Hash Value", color: colors.bitcoin }), @@ -429,8 +429,8 @@ export function createMiningSection() { name: "Countdown", title: "Next Halving", bottom: [ - line({ series: blocks.halving.blocksToHalving, name: "Remaining", unit: Unit.blocks }), - line({ series: blocks.halving.daysToHalving, name: "Remaining", unit: Unit.days }), + line({ series: blocks.halving.blocksToHalving, name: "Blocks", unit: Unit.blocks }), + line({ series: blocks.halving.daysToHalving, name: "Days", unit: Unit.days }), ], }, { @@ -458,8 +458,8 @@ export function createMiningSection() { name: "Countdown", title: "Next Difficulty Adjustment", bottom: [ - line({ series: blocks.difficulty.blocksToRetarget, name: "Remaining", unit: Unit.blocks }), - line({ series: blocks.difficulty.daysToRetarget, name: "Remaining", unit: Unit.days }), + line({ series: blocks.difficulty.blocksToRetarget, name: "Blocks", unit: Unit.blocks }), + line({ series: blocks.difficulty.daysToRetarget, name: "Days", unit: Unit.days }), ], }, { diff --git a/website/scripts/options/network.js b/website/scripts/options/network.js index 4f4ae34a4..0e4a2d6e0 100644 --- a/website/scripts/options/network.js +++ b/website/scripts/options/network.js @@ -7,6 +7,7 @@ import { entries } from "../utils/array.js"; import { line, fromSupplyPattern, + chartsFromFull, chartsFromFullPerBlock, chartsFromCount, chartsFromCountEntries, @@ -80,7 +81,7 @@ export function createNetworkSection() { const activityTypes = /** @type {const} */ ([ { key: "sending", name: "Sending" }, { key: "receiving", name: "Receiving" }, - { key: "both", name: "Both" }, + { key: "both", name: "Sending & Receiving" }, { key: "reactivated", name: "Reactivated" }, ]); @@ -227,7 +228,7 @@ export function createNetworkSection() { })), { name: "Cumulative", - title: `${groupName} Output Count (Total)`, + title: `Cumulative ${groupName} Output Count`, bottom: types.map((t) => line({ series: scripts.count[t.key].cumulative, @@ -288,7 +289,7 @@ export function createNetworkSection() { bottom: satsBtcUsdFrom({ source: supply.burned, key: "cumulative", - name: "all-time", + name: "All Time", }), }, { @@ -296,7 +297,7 @@ export function createNetworkSection() { title: "OP_RETURN Burned", bottom: satsBtcUsd({ pattern: scripts.value.opReturn.cumulative, - name: "all-time", + name: "All Time", }), }, ], @@ -420,11 +421,11 @@ export function createNetworkSection() { })), { name: "Cumulative", - title: "Block Count (Total)", + title: "Cumulative Block Count", bottom: [ { series: blocks.count.total.cumulative, - title: "all-time", + title: "All Time", unit: Unit.count, }, ], @@ -441,7 +442,7 @@ export function createNetworkSection() { }, { name: "Size", - tree: chartsFromFullPerBlock({ + tree: chartsFromFull({ pattern: blocks.size, metric: "Block Size", unit: Unit.bytes, @@ -449,7 +450,7 @@ export function createNetworkSection() { }, { name: "Weight", - tree: chartsFromFullPerBlock({ + tree: chartsFromFull({ pattern: blocks.weight, metric: "Block Weight", unit: Unit.wu, @@ -457,7 +458,7 @@ export function createNetworkSection() { }, { name: "vBytes", - tree: chartsFromFullPerBlock({ + tree: chartsFromFull({ pattern: blocks.vbytes, metric: "Block vBytes", unit: Unit.vb, @@ -612,7 +613,7 @@ export function createNetworkSection() { })), { name: "Cumulative", - title: "Output Count by Script Type (Total)", + title: "Cumulative Output Count by Script Type", bottom: scriptTypes.map((t) => line({ series: scripts.count[t.key].cumulative, diff --git a/website/scripts/options/series.js b/website/scripts/options/series.js index d671e9002..8eccb01fa 100644 --- a/website/scripts/options/series.js +++ b/website/scripts/options/series.js @@ -101,13 +101,13 @@ function percentileSeries({ pattern, unit, title = "" }) { }), line({ series: pattern.pct90, - name: `${title} pct90`.trim(), + name: `${title} P90`.trim(), color: stat.pct90, unit, }), line({ series: pattern.pct75, - name: `${title} pct75`.trim(), + name: `${title} P75`.trim(), color: stat.pct75, unit, }), @@ -119,13 +119,13 @@ function percentileSeries({ pattern, unit, title = "" }) { }), line({ series: pattern.pct25, - name: `${title} pct25`.trim(), + name: `${title} P25`.trim(), color: stat.pct25, unit, }), line({ series: pattern.pct10, - name: `${title} pct10`.trim(), + name: `${title} P10`.trim(), color: stat.pct10, unit, }), @@ -533,7 +533,7 @@ export function sumsAndAveragesCumulativeWith({ { name: "Cumulative", title: title(`Cumulative ${metric}`), - bottom: series({ pattern: cumulative, name: "all-time", color }), + bottom: series({ pattern: cumulative, name: "All Time", color }), }, ]; } diff --git a/website/scripts/options/shared.js b/website/scripts/options/shared.js index 7762b3888..475e59ef5 100644 --- a/website/scripts/options/shared.js +++ b/website/scripts/options/shared.js @@ -276,12 +276,12 @@ export function simplePriceRatioTree({ pattern, title, legend, color }) { */ function percentileBands(p, extract) { return [ - { name: "pct95", prop: extract(p.pct95), color: colors.ratioPct._95 }, - { name: "pct5", prop: extract(p.pct5), color: colors.ratioPct._5 }, - { name: "pct98", prop: extract(p.pct98), color: colors.ratioPct._98 }, - { name: "pct2", prop: extract(p.pct2), color: colors.ratioPct._2 }, - { name: "pct99", prop: extract(p.pct99), color: colors.ratioPct._99 }, - { name: "pct1", prop: extract(p.pct1), color: colors.ratioPct._1 }, + { name: "P95", prop: extract(p.pct95), color: colors.ratioPct._95 }, + { name: "P5", prop: extract(p.pct5), color: colors.ratioPct._5 }, + { name: "P98", prop: extract(p.pct98), color: colors.ratioPct._98 }, + { name: "P2", prop: extract(p.pct2), color: colors.ratioPct._2 }, + { name: "P99", prop: extract(p.pct99), color: colors.ratioPct._99 }, + { name: "P1", prop: extract(p.pct1), color: colors.ratioPct._1 }, ]; } @@ -306,6 +306,7 @@ function ratioBands(bands) { * @param {string} args.title * @param {string} args.legend * @param {Color} [args.color] + * @param {string} [args.ratioTitle] * @param {FetchedPriceSeriesBlueprint[]} [args.priceReferences] * @returns {PartialOptionsTree} */ @@ -314,6 +315,7 @@ export function priceRatioPercentilesTree({ title, legend, color, + ratioTitle, priceReferences, }) { const p = pattern.percentiles; @@ -331,7 +333,7 @@ export function priceRatioPercentilesTree({ }, { name: "Ratio", - title: `${title} Ratio`, + title: ratioTitle ?? `${title} Ratio`, top: [ price({ series: pattern, name: legend, color }), ...priceBands(pctUsd), @@ -384,12 +386,12 @@ export function revenueRollingBtcSatsUsd({ coinbase, subsidy, fee }) { export function percentileUsdMap(ratio) { const p = ratio.percentiles; return /** @type {const} */ ([ - { name: "pct95", prop: p.pct95.price, color: colors.ratioPct._95 }, - { name: "pct5", prop: p.pct5.price, color: colors.ratioPct._5 }, - { name: "pct98", prop: p.pct98.price, color: colors.ratioPct._98 }, - { name: "pct2", prop: p.pct2.price, color: colors.ratioPct._2 }, - { name: "pct99", prop: p.pct99.price, color: colors.ratioPct._99 }, - { name: "pct1", prop: p.pct1.price, color: colors.ratioPct._1 }, + { name: "P95", prop: p.pct95.price, color: colors.ratioPct._95 }, + { name: "P5", prop: p.pct5.price, color: colors.ratioPct._5 }, + { name: "P98", prop: p.pct98.price, color: colors.ratioPct._98 }, + { name: "P2", prop: p.pct2.price, color: colors.ratioPct._2 }, + { name: "P99", prop: p.pct99.price, color: colors.ratioPct._99 }, + { name: "P1", prop: p.pct1.price, color: colors.ratioPct._1 }, ]); } @@ -400,12 +402,12 @@ export function percentileUsdMap(ratio) { export function percentileMap(ratio) { const p = ratio.percentiles; return /** @type {const} */ ([ - { name: "pct95", prop: p.pct95.ratio, color: colors.ratioPct._95 }, - { name: "pct5", prop: p.pct5.ratio, color: colors.ratioPct._5 }, - { name: "pct98", prop: p.pct98.ratio, color: colors.ratioPct._98 }, - { name: "pct2", prop: p.pct2.ratio, color: colors.ratioPct._2 }, - { name: "pct99", prop: p.pct99.ratio, color: colors.ratioPct._99 }, - { name: "pct1", prop: p.pct1.ratio, color: colors.ratioPct._1 }, + { name: "P95", prop: p.pct95.ratio, color: colors.ratioPct._95 }, + { name: "P5", prop: p.pct5.ratio, color: colors.ratioPct._5 }, + { name: "P98", prop: p.pct98.ratio, color: colors.ratioPct._98 }, + { name: "P2", prop: p.pct2.ratio, color: colors.ratioPct._2 }, + { name: "P99", prop: p.pct99.ratio, color: colors.ratioPct._99 }, + { name: "P1", prop: p.pct1.ratio, color: colors.ratioPct._1 }, ]); } @@ -417,7 +419,7 @@ export function sdPatterns(ratio) { return /** @type {const} */ ([ { nameAddon: "All Time", - titleAddon: "", + titleAddon: "All Time", sd: ratio.stdDev.all, smaRatio: ratio.sma.all.ratio, }, @@ -498,7 +500,7 @@ export function ratioSmas(ratio) { { name: "1y SMA", series: ratio.sma._1y.ratio }, { name: "2y SMA", series: ratio.sma._2y.ratio }, { name: "4y SMA", series: ratio.sma._4y.ratio }, - { name: "All SMA", series: ratio.sma.all.ratio, color: colors.time.all }, + { name: "All Time SMA", series: ratio.sma.all.ratio, color: colors.time.all }, ].map((s, i, arr) => ({ color: colors.at(i, arr.length), ...s })); } @@ -542,7 +544,7 @@ export function ratioBottomSeries(ratio) { */ export function createRatioChart({ title, pricePattern, ratio, color, name }) { return { - name: name ?? "ratio", + name: name ?? "Ratio", title: title(name ?? "Ratio"), top: [ price({ series: pricePattern, name: "Price", color }), @@ -583,7 +585,7 @@ export function createZScoresFolder({ { name: "1y", sd: ratio.stdDev._1y }, { name: "2y", sd: ratio.stdDev._2y }, { name: "4y", sd: ratio.stdDev._4y }, - { name: "all", sd: ratio.stdDev.all, color: colors.time.all }, + { name: "All Time", sd: ratio.stdDev.all, color: colors.time.all }, ].map((s, i, arr) => ({ color: colors.at(i, arr.length), ...s })); return { diff --git a/website/scripts/options/utils.js b/website/scripts/options/utils.js index 3ccbccc61..3e3047e91 100644 --- a/website/scripts/options/utils.js +++ b/website/scripts/options/utils.js @@ -10,15 +10,15 @@ export function periodIdToName(id, compoundAdjective) { const s = compoundAdjective || num === 1 ? "" : "s"; switch (id.slice(-1)) { case "h": - return `${num} hour${s}`; + return `${num} Hour${s}`; case "d": - return `${num} day${s}`; + return `${num} Day${s}`; case "w": - return `${num} week${s}`; + return `${num} Week${s}`; case "m": - return `${num} month${s}`; + return `${num} Month${s}`; case "y": - return `${num} year${s}`; + return `${num} Year${s}`; default: return id; } diff --git a/website/scripts/types.js b/website/scripts/types.js index 7eb81313f..bab91c8c3 100644 --- a/website/scripts/types.js +++ b/website/scripts/types.js @@ -40,6 +40,7 @@ * @typedef {Brk.BtcCentsSatsUsdPattern} SupplyPattern * @typedef {Brk.AverageBlockCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern} BlockSizePattern * @typedef {keyof Brk.SeriesTree_Cohorts_Utxo_Type} SpendableType + * @typedef {Brk.SpendingSpentUnspentPattern} OutputsPattern * @typedef {keyof Brk.SeriesTree_Addrs_Raw} AddressableType * * Brk pattern types (using new pattern names) @@ -71,8 +72,8 @@ * @typedef {Brk.LossNetNuplProfitPattern} BasicRelativePattern * @typedef {Brk.GrossInvestedInvestorLossNetNuplProfitSentimentPattern2} FullRelativePattern * - * Profitability bucket pattern (supply + realized_cap + nupl) - * @typedef {Brk.NuplRealizedSupplyPattern} RealizedSupplyPattern + * Profitability bucket pattern (supply + realized_cap + unrealized_pnl + nupl) + * @typedef {Brk.NuplRealizedSupplyUnrealizedPattern} RealizedSupplyPattern * * Realized pattern (full: cap + gross + investor + loss + mvrv + net + peak + price + profit + sell + sopr) * @typedef {Brk.CapGrossInvestorLossMvrvNetPeakPriceProfitSellSoprPattern} RealizedPattern diff --git a/website/styles/panes/chart.css b/website/styles/panes/chart.css index ad354cd3e..b8c7fc91f 100644 --- a/website/styles/panes/chart.css +++ b/website/styles/panes/chart.css @@ -53,6 +53,7 @@ h1 { font-size: 1.375rem; letter-spacing: 0.075rem; + text-wrap: nowrap; } }