diff --git a/crates/brk_client/src/lib.rs b/crates/brk_client/src/lib.rs index 5407d15bc..5090a626c 100644 --- a/crates/brk_client/src/lib.rs +++ b/crates/brk_client/src/lib.rs @@ -1183,52 +1183,6 @@ impl Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75 } } -/// Pattern struct for repeated tree structure. -pub struct InvestedNetNuplSupplyUnrealizedPattern3 { - pub invested_capital_in_loss_rel_to_realized_cap: BpsPercentRatioPattern, - pub invested_capital_in_profit_rel_to_realized_cap: BpsPercentRatioPattern, - pub net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern, - pub net_unrealized_pnl_rel_to_own_gross_pnl: BpsPercentRatioPattern, - pub net_unrealized_pnl_rel_to_own_market_cap: BpsPercentRatioPattern, - pub nupl: MetricPattern1, - pub supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern, - pub supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern, - pub supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern, - pub supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern, - pub supply_rel_to_circulating_supply: BpsPercentRatioPattern, - pub unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern, - pub unrealized_loss_rel_to_own_gross_pnl: BpsPercentRatioPattern, - pub unrealized_loss_rel_to_own_market_cap: BpsPercentRatioPattern, - pub unrealized_profit_rel_to_market_cap: BpsPercentRatioPattern, - pub unrealized_profit_rel_to_own_gross_pnl: BpsPercentRatioPattern, - pub unrealized_profit_rel_to_own_market_cap: BpsPercentRatioPattern, -} - -impl InvestedNetNuplSupplyUnrealizedPattern3 { - /// Create a new pattern node with accumulated metric name. - pub fn new(client: Arc, acc: String) -> Self { - Self { - invested_capital_in_loss_rel_to_realized_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "invested_capital_in_loss_rel_to_realized_cap")), - invested_capital_in_profit_rel_to_realized_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "invested_capital_in_profit_rel_to_realized_cap")), - net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "net_unrealized_pnl_rel_to_market_cap")), - net_unrealized_pnl_rel_to_own_gross_pnl: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "net_unrealized_pnl_rel_to_own_gross_pnl")), - net_unrealized_pnl_rel_to_own_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "net_unrealized_pnl_rel_to_own_market_cap")), - nupl: MetricPattern1::new(client.clone(), _m(&acc, "nupl")), - supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_loss_rel_to_circulating_supply")), - supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_loss_rel_to_own_supply")), - supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_profit_rel_to_circulating_supply")), - supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_profit_rel_to_own_supply")), - supply_rel_to_circulating_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_rel_to_circulating_supply")), - unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_loss_rel_to_market_cap")), - unrealized_loss_rel_to_own_gross_pnl: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_loss_rel_to_own_gross_pnl")), - unrealized_loss_rel_to_own_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_loss_rel_to_own_market_cap")), - unrealized_profit_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_profit_rel_to_market_cap")), - unrealized_profit_rel_to_own_gross_pnl: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_profit_rel_to_own_gross_pnl")), - unrealized_profit_rel_to_own_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_profit_rel_to_own_market_cap")), - } - } -} - /// Pattern struct for repeated tree structure. pub struct MvrvNegNetRealizedSentSoprValuePattern { pub mvrv: MetricPattern1, @@ -1363,6 +1317,48 @@ impl GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern { } } +/// Pattern struct for repeated tree structure. +pub struct NetNuplSupplyUnrealizedPattern2 { + pub net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern, + pub net_unrealized_pnl_rel_to_own_gross_pnl: BpsPercentRatioPattern, + pub net_unrealized_pnl_rel_to_own_market_cap: BpsPercentRatioPattern, + pub nupl: MetricPattern1, + pub supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern, + pub supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern, + pub supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern, + pub supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern, + pub supply_rel_to_circulating_supply: BpsPercentRatioPattern, + pub unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern, + pub unrealized_loss_rel_to_own_gross_pnl: BpsPercentRatioPattern, + pub unrealized_loss_rel_to_own_market_cap: BpsPercentRatioPattern, + pub unrealized_profit_rel_to_market_cap: BpsPercentRatioPattern, + pub unrealized_profit_rel_to_own_gross_pnl: BpsPercentRatioPattern, + pub unrealized_profit_rel_to_own_market_cap: BpsPercentRatioPattern, +} + +impl NetNuplSupplyUnrealizedPattern2 { + /// Create a new pattern node with accumulated metric name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "net_unrealized_pnl_rel_to_market_cap")), + net_unrealized_pnl_rel_to_own_gross_pnl: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "net_unrealized_pnl_rel_to_own_gross_pnl")), + net_unrealized_pnl_rel_to_own_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "net_unrealized_pnl_rel_to_own_market_cap")), + nupl: MetricPattern1::new(client.clone(), _m(&acc, "nupl")), + supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_loss_rel_to_circulating_supply")), + supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_loss_rel_to_own_supply")), + supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_profit_rel_to_circulating_supply")), + supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_profit_rel_to_own_supply")), + supply_rel_to_circulating_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_rel_to_circulating_supply")), + unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_loss_rel_to_market_cap")), + unrealized_loss_rel_to_own_gross_pnl: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_loss_rel_to_own_gross_pnl")), + unrealized_loss_rel_to_own_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_loss_rel_to_own_market_cap")), + unrealized_profit_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_profit_rel_to_market_cap")), + unrealized_profit_rel_to_own_gross_pnl: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_profit_rel_to_own_gross_pnl")), + unrealized_profit_rel_to_own_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_profit_rel_to_own_market_cap")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct RatioPattern { pub ratio_pct1: BpsRatioPattern, @@ -1403,44 +1399,6 @@ impl RatioPattern { } } -/// Pattern struct for repeated tree structure. -pub struct GrossInvestedInvestorNegNetSupplyUnrealizedPattern { - pub gross_pnl: CentsUsdPattern, - pub invested_capital_in_loss: CentsUsdPattern, - pub invested_capital_in_loss_raw: MetricPattern18, - pub invested_capital_in_profit: CentsUsdPattern, - pub invested_capital_in_profit_raw: MetricPattern18, - pub investor_cap_in_loss_raw: MetricPattern18, - pub investor_cap_in_profit_raw: MetricPattern18, - pub neg_unrealized_loss: MetricPattern1, - pub net_unrealized_pnl: CentsUsdPattern, - pub supply_in_loss: BtcCentsSatsUsdPattern, - pub supply_in_profit: BtcCentsSatsUsdPattern, - pub unrealized_loss: CentsUsdPattern, - pub unrealized_profit: CentsUsdPattern, -} - -impl GrossInvestedInvestorNegNetSupplyUnrealizedPattern { - /// Create a new pattern node with accumulated metric name. - pub fn new(client: Arc, acc: String) -> Self { - Self { - gross_pnl: CentsUsdPattern::new(client.clone(), _m(&acc, "unrealized_gross_pnl")), - invested_capital_in_loss: CentsUsdPattern::new(client.clone(), _m(&acc, "invested_capital_in_loss")), - invested_capital_in_loss_raw: MetricPattern18::new(client.clone(), _m(&acc, "invested_capital_in_loss_raw")), - invested_capital_in_profit: CentsUsdPattern::new(client.clone(), _m(&acc, "invested_capital_in_profit")), - invested_capital_in_profit_raw: MetricPattern18::new(client.clone(), _m(&acc, "invested_capital_in_profit_raw")), - investor_cap_in_loss_raw: MetricPattern18::new(client.clone(), _m(&acc, "investor_cap_in_loss_raw")), - investor_cap_in_profit_raw: MetricPattern18::new(client.clone(), _m(&acc, "investor_cap_in_profit_raw")), - neg_unrealized_loss: MetricPattern1::new(client.clone(), _m(&acc, "neg_unrealized_loss")), - net_unrealized_pnl: CentsUsdPattern::new(client.clone(), _m(&acc, "net_unrealized_pnl")), - supply_in_loss: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "supply_in_loss")), - supply_in_profit: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "supply_in_profit")), - unrealized_loss: CentsUsdPattern::new(client.clone(), _m(&acc, "unrealized_loss")), - unrealized_profit: CentsUsdPattern::new(client.clone(), _m(&acc, "unrealized_profit")), - } - } -} - /// Pattern struct for repeated tree structure. pub struct _10y1m1w1y2y3m3y4y5y6m6y8yPattern2 { pub _10y: BpsPercentRatioPattern, @@ -1615,40 +1573,6 @@ impl AverageCumulativeHeightMaxMedianMinPct10Pct25Pct75Pct90SumPattern { } } -/// Pattern struct for repeated tree structure. -pub struct InvestedNetNuplSupplyUnrealizedPattern { - pub invested_capital_in_loss_rel_to_realized_cap: BpsPercentRatioPattern, - pub invested_capital_in_profit_rel_to_realized_cap: BpsPercentRatioPattern, - pub net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern, - pub nupl: MetricPattern1, - pub supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern, - pub supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern, - pub supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern, - pub supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern, - pub supply_rel_to_circulating_supply: BpsPercentRatioPattern, - pub unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern, - pub unrealized_profit_rel_to_market_cap: BpsPercentRatioPattern, -} - -impl InvestedNetNuplSupplyUnrealizedPattern { - /// Create a new pattern node with accumulated metric name. - pub fn new(client: Arc, acc: String) -> Self { - Self { - invested_capital_in_loss_rel_to_realized_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "invested_capital_in_loss_rel_to_realized_cap")), - invested_capital_in_profit_rel_to_realized_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "invested_capital_in_profit_rel_to_realized_cap")), - net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "net_unrealized_pnl_rel_to_market_cap")), - nupl: MetricPattern1::new(client.clone(), _m(&acc, "nupl")), - supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_loss_rel_to_circulating_supply")), - supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_loss_rel_to_own_supply")), - supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_profit_rel_to_circulating_supply")), - supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_in_profit_rel_to_own_supply")), - supply_rel_to_circulating_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "supply_rel_to_circulating_supply")), - unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_loss_rel_to_market_cap")), - unrealized_profit_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "unrealized_profit_rel_to_market_cap")), - } - } -} - /// Pattern struct for repeated tree structure. pub struct AverageGainsLossesRsiStochPattern { pub average_gain: MetricPattern1, @@ -1681,6 +1605,38 @@ impl AverageGainsLossesRsiStochPattern { } } +/// Pattern struct for repeated tree structure. +pub struct InvestedInvestorNegNetSupplyUnrealizedPattern { + pub invested_capital_in_loss_raw: MetricPattern18, + pub invested_capital_in_profit_raw: MetricPattern18, + pub investor_cap_in_loss_raw: MetricPattern18, + pub investor_cap_in_profit_raw: MetricPattern18, + pub neg_unrealized_loss: MetricPattern1, + pub net_unrealized_pnl: CentsUsdPattern, + pub supply_in_loss: BtcCentsSatsUsdPattern, + pub supply_in_profit: BtcCentsSatsUsdPattern, + pub unrealized_loss: CentsUsdPattern, + pub unrealized_profit: CentsUsdPattern, +} + +impl InvestedInvestorNegNetSupplyUnrealizedPattern { + /// Create a new pattern node with accumulated metric name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + invested_capital_in_loss_raw: MetricPattern18::new(client.clone(), _m(&acc, "invested_capital_in_loss_raw")), + invested_capital_in_profit_raw: MetricPattern18::new(client.clone(), _m(&acc, "invested_capital_in_profit_raw")), + investor_cap_in_loss_raw: MetricPattern18::new(client.clone(), _m(&acc, "investor_cap_in_loss_raw")), + investor_cap_in_profit_raw: MetricPattern18::new(client.clone(), _m(&acc, "investor_cap_in_profit_raw")), + neg_unrealized_loss: MetricPattern1::new(client.clone(), _m(&acc, "neg_unrealized_loss")), + net_unrealized_pnl: CentsUsdPattern::new(client.clone(), _m(&acc, "net_unrealized_pnl")), + supply_in_loss: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "supply_in_loss")), + supply_in_profit: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "supply_in_profit")), + unrealized_loss: CentsUsdPattern::new(client.clone(), _m(&acc, "unrealized_loss")), + unrealized_profit: CentsUsdPattern::new(client.clone(), _m(&acc, "unrealized_profit")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern { pub all: MetricPattern1, @@ -1799,34 +1755,6 @@ impl _1m1w1y24hBtcCentsSatsUsdPattern { } } -/// Pattern struct for repeated tree structure. -pub struct ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern { - pub activity: SentPattern, - pub addr_count: MetricPattern1, - pub addr_count_change_1m: MetricPattern1, - pub outputs: UtxoPattern, - pub realized: MvrvRealizedPattern, - pub relative: SupplyPattern, - pub supply: ChangeHalvedTotalPattern, - pub unrealized: SupplyPattern2, -} - -impl ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern { - /// Create a new pattern node with accumulated metric name. - pub fn new(client: Arc, acc: String) -> Self { - Self { - activity: SentPattern::new(client.clone(), _m(&acc, "sent")), - addr_count: MetricPattern1::new(client.clone(), _m(&acc, "addr_count")), - addr_count_change_1m: MetricPattern1::new(client.clone(), _m(&acc, "addr_count_change_1m")), - outputs: UtxoPattern::new(client.clone(), _m(&acc, "utxo_count")), - realized: MvrvRealizedPattern::new(client.clone(), acc.clone()), - relative: SupplyPattern::new(client.clone(), _m(&acc, "supply_in")), - supply: ChangeHalvedTotalPattern::new(client.clone(), _m(&acc, "supply")), - unrealized: SupplyPattern2::new(client.clone(), _m(&acc, "supply_in")), - } - } -} - /// Pattern struct for repeated tree structure. pub struct AverageMaxMedianMinPct10Pct25Pct75Pct90Pattern { pub average: MetricPattern18, @@ -1887,9 +1815,9 @@ pub struct ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern { pub cost_basis: MaxMinPattern, pub outputs: UtxoPattern, pub realized: MvrvNegNetRealizedSentSoprValuePattern, - pub relative: InvestedNetNuplSupplyUnrealizedPattern, + pub relative: SupplyPattern2, pub supply: ChangeHalvedTotalPattern, - pub unrealized: GrossInvestedInvestorNegNetSupplyUnrealizedPattern, + pub unrealized: InvestedInvestorNegNetSupplyUnrealizedPattern, } impl ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern { @@ -1900,9 +1828,35 @@ impl ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern { cost_basis: MaxMinPattern::new(client.clone(), _m(&acc, "cost_basis")), outputs: UtxoPattern::new(client.clone(), _m(&acc, "utxo_count")), realized: MvrvNegNetRealizedSentSoprValuePattern::new(client.clone(), acc.clone()), - relative: InvestedNetNuplSupplyUnrealizedPattern::new(client.clone(), acc.clone()), + relative: SupplyPattern2::new(client.clone(), _m(&acc, "supply")), supply: ChangeHalvedTotalPattern::new(client.clone(), _m(&acc, "supply")), - unrealized: GrossInvestedInvestorNegNetSupplyUnrealizedPattern::new(client.clone(), acc.clone()), + unrealized: InvestedInvestorNegNetSupplyUnrealizedPattern::new(client.clone(), acc.clone()), + } + } +} + +/// Pattern struct for repeated tree structure. +pub struct ActivityAddrOutputsRealizedSupplyUnrealizedPattern { + pub activity: SentPattern, + pub addr_count: MetricPattern1, + pub addr_count_change_1m: MetricPattern1, + pub outputs: UtxoPattern, + pub realized: MvrvRealizedPattern, + pub supply: ChangeHalvedTotalPattern, + pub unrealized: SupplyPattern, +} + +impl ActivityAddrOutputsRealizedSupplyUnrealizedPattern { + /// Create a new pattern node with accumulated metric name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + activity: SentPattern::new(client.clone(), _m(&acc, "sent")), + addr_count: MetricPattern1::new(client.clone(), _m(&acc, "addr_count")), + addr_count_change_1m: MetricPattern1::new(client.clone(), _m(&acc, "addr_count_change_1m")), + outputs: UtxoPattern::new(client.clone(), _m(&acc, "utxo_count")), + realized: MvrvRealizedPattern::new(client.clone(), acc.clone()), + supply: ChangeHalvedTotalPattern::new(client.clone(), _m(&acc, "supply")), + unrealized: SupplyPattern::new(client.clone(), _m(&acc, "supply_in")), } } } @@ -1933,38 +1887,14 @@ impl MvrvRealizedPattern { } } -/// Pattern struct for repeated tree structure. -pub struct ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 { - pub activity: SentPattern, - pub outputs: UtxoPattern, - pub realized: MvrvNegNetRealizedSentSoprValuePattern, - pub relative: SupplyPattern3, - pub supply: ChangeHalvedTotalPattern, - pub unrealized: NegNetSupplyUnrealizedPattern, -} - -impl ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 { - /// Create a new pattern node with accumulated metric name. - pub fn new(client: Arc, acc: String) -> Self { - Self { - activity: SentPattern::new(client.clone(), _m(&acc, "sent")), - outputs: UtxoPattern::new(client.clone(), _m(&acc, "utxo_count")), - realized: MvrvNegNetRealizedSentSoprValuePattern::new(client.clone(), acc.clone()), - relative: SupplyPattern3::new(client.clone(), _m(&acc, "supply")), - supply: ChangeHalvedTotalPattern::new(client.clone(), _m(&acc, "supply")), - unrealized: NegNetSupplyUnrealizedPattern::new(client.clone(), acc.clone()), - } - } -} - /// Pattern struct for repeated tree structure. pub struct ActivityOutputsRealizedRelativeSupplyUnrealizedPattern { pub activity: SentPattern, pub outputs: UtxoPattern, - pub realized: MvrvRealizedPattern, - pub relative: SupplyPattern, + pub realized: MvrvNegNetRealizedSentSoprValuePattern, + pub relative: SupplyPattern2, pub supply: ChangeHalvedTotalPattern, - pub unrealized: SupplyPattern2, + pub unrealized: NegNetSupplyUnrealizedPattern, } impl ActivityOutputsRealizedRelativeSupplyUnrealizedPattern { @@ -1973,10 +1903,10 @@ impl ActivityOutputsRealizedRelativeSupplyUnrealizedPattern { Self { activity: SentPattern::new(client.clone(), _m(&acc, "sent")), outputs: UtxoPattern::new(client.clone(), _m(&acc, "utxo_count")), - realized: MvrvRealizedPattern::new(client.clone(), acc.clone()), - relative: SupplyPattern::new(client.clone(), _m(&acc, "supply_in")), + realized: MvrvNegNetRealizedSentSoprValuePattern::new(client.clone(), acc.clone()), + relative: SupplyPattern2::new(client.clone(), _m(&acc, "supply")), supply: ChangeHalvedTotalPattern::new(client.clone(), _m(&acc, "supply")), - unrealized: SupplyPattern2::new(client.clone(), _m(&acc, "supply_in")), + unrealized: NegNetSupplyUnrealizedPattern::new(client.clone(), acc.clone()), } } } @@ -2005,6 +1935,28 @@ impl NegNetSupplyUnrealizedPattern { } } +/// Pattern struct for repeated tree structure. +pub struct ActivityOutputsRealizedSupplyUnrealizedPattern { + pub activity: SentPattern, + pub outputs: UtxoPattern, + pub realized: MvrvRealizedPattern, + pub supply: ChangeHalvedTotalPattern, + pub unrealized: SupplyPattern, +} + +impl ActivityOutputsRealizedSupplyUnrealizedPattern { + /// Create a new pattern node with accumulated metric name. + pub fn new(client: Arc, acc: String) -> Self { + Self { + activity: SentPattern::new(client.clone(), _m(&acc, "sent")), + outputs: UtxoPattern::new(client.clone(), _m(&acc, "utxo_count")), + realized: MvrvRealizedPattern::new(client.clone(), acc.clone()), + supply: ChangeHalvedTotalPattern::new(client.clone(), _m(&acc, "supply")), + unrealized: SupplyPattern::new(client.clone(), _m(&acc, "supply_in")), + } + } +} + /// Pattern struct for repeated tree structure. pub struct BaseBtcCentsSatsUsdPattern { pub base: MetricPattern1, @@ -2050,7 +2002,7 @@ impl EmaHistogramLineSignalPattern { } /// Pattern struct for repeated tree structure. -pub struct SupplyPattern3 { +pub struct SupplyPattern2 { pub supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern, pub supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern, pub supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern, @@ -2058,7 +2010,7 @@ pub struct SupplyPattern3 { pub supply_rel_to_circulating_supply: BpsPercentRatioPattern, } -impl SupplyPattern3 { +impl SupplyPattern2 { /// Create a new pattern node with accumulated metric name. pub fn new(client: Arc, acc: String) -> Self { Self { @@ -2596,33 +2548,17 @@ impl SentPattern { } /// Pattern struct for repeated tree structure. -pub struct SupplyPattern2 { +pub struct SupplyPattern { pub supply_in_loss: BtcCentsSatsUsdPattern, pub supply_in_profit: BtcCentsSatsUsdPattern, } -impl SupplyPattern2 { - /// Create a new pattern node with accumulated metric name. - pub fn new(client: Arc, acc: String) -> Self { - Self { - supply_in_loss: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "loss")), - supply_in_profit: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "profit")), - } - } -} - -/// Pattern struct for repeated tree structure. -pub struct SupplyPattern { - pub supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern, - pub supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern, -} - impl SupplyPattern { /// Create a new pattern node with accumulated metric name. pub fn new(client: Arc, acc: String) -> Self { Self { - supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "loss_rel_to_own_supply")), - supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "profit_rel_to_own_supply")), + supply_in_loss: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "loss")), + supply_in_profit: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "profit")), } } } @@ -5601,8 +5537,6 @@ pub struct MetricsTree_Distribution_UtxoCohorts_All_Relative { pub unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern, pub net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern, pub nupl: MetricPattern1, - pub invested_capital_in_profit_rel_to_realized_cap: BpsPercentRatioPattern, - pub invested_capital_in_loss_rel_to_realized_cap: BpsPercentRatioPattern, pub supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern, pub supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern, pub unrealized_profit_rel_to_own_gross_pnl: BpsPercentRatioPattern, @@ -5617,8 +5551,6 @@ impl MetricsTree_Distribution_UtxoCohorts_All_Relative { unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), "unrealized_loss_rel_to_market_cap".to_string()), net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern::new(client.clone(), "net_unrealized_pnl_rel_to_market_cap".to_string()), nupl: MetricPattern1::new(client.clone(), "nupl".to_string()), - invested_capital_in_profit_rel_to_realized_cap: BpsPercentRatioPattern::new(client.clone(), "invested_capital_in_profit_rel_to_realized_cap".to_string()), - invested_capital_in_loss_rel_to_realized_cap: BpsPercentRatioPattern::new(client.clone(), "invested_capital_in_loss_rel_to_realized_cap".to_string()), supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), "supply_in_profit_rel_to_own_supply".to_string()), supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern::new(client.clone(), "supply_in_loss_rel_to_own_supply".to_string()), unrealized_profit_rel_to_own_gross_pnl: BpsPercentRatioPattern::new(client.clone(), "unrealized_profit_rel_to_own_gross_pnl".to_string()), @@ -5636,7 +5568,7 @@ pub struct MetricsTree_Distribution_UtxoCohorts_Sth { pub realized: CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern, pub cost_basis: InvestedMaxMinPercentilesPattern, pub unrealized: GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern, - pub relative: InvestedNetNuplSupplyUnrealizedPattern3, + pub relative: NetNuplSupplyUnrealizedPattern2, pub dormancy: MetricPattern1, pub velocity: MetricPattern1, pub adjusted_value_created: MetricPattern1, @@ -5656,7 +5588,7 @@ impl MetricsTree_Distribution_UtxoCohorts_Sth { realized: CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern::new(client.clone(), "sth".to_string()), cost_basis: InvestedMaxMinPercentilesPattern::new(client.clone(), "sth".to_string()), unrealized: GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern::new(client.clone(), "sth".to_string()), - relative: InvestedNetNuplSupplyUnrealizedPattern3::new(client.clone(), "sth".to_string()), + relative: NetNuplSupplyUnrealizedPattern2::new(client.clone(), "sth".to_string()), dormancy: MetricPattern1::new(client.clone(), "sth_dormancy".to_string()), velocity: MetricPattern1::new(client.clone(), "sth_velocity".to_string()), adjusted_value_created: MetricPattern1::new(client.clone(), "sth_adjusted_value_created".to_string()), @@ -5677,7 +5609,7 @@ pub struct MetricsTree_Distribution_UtxoCohorts_Lth { pub realized: CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern, pub cost_basis: InvestedMaxMinPercentilesPattern, pub unrealized: GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern, - pub relative: InvestedNetNuplSupplyUnrealizedPattern3, + pub relative: NetNuplSupplyUnrealizedPattern2, pub dormancy: MetricPattern1, pub velocity: MetricPattern1, } @@ -5691,7 +5623,7 @@ impl MetricsTree_Distribution_UtxoCohorts_Lth { realized: CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern::new(client.clone(), "lth".to_string()), cost_basis: InvestedMaxMinPercentilesPattern::new(client.clone(), "lth".to_string()), unrealized: GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern::new(client.clone(), "lth".to_string()), - relative: InvestedNetNuplSupplyUnrealizedPattern3::new(client.clone(), "lth".to_string()), + relative: NetNuplSupplyUnrealizedPattern2::new(client.clone(), "lth".to_string()), dormancy: MetricPattern1::new(client.clone(), "lth_dormancy".to_string()), velocity: MetricPattern1::new(client.clone(), "lth_velocity".to_string()), } @@ -5753,310 +5685,310 @@ impl MetricsTree_Distribution_UtxoCohorts_AgeRange { /// Metrics tree node. pub struct MetricsTree_Distribution_UtxoCohorts_MaxAge { - pub _1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _15y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, + pub _1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _15y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, } impl MetricsTree_Distribution_UtxoCohorts_MaxAge { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_1w_old".to_string()), - _1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_1m_old".to_string()), - _2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_2m_old".to_string()), - _3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_3m_old".to_string()), - _4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_4m_old".to_string()), - _5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_5m_old".to_string()), - _6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_6m_old".to_string()), - _1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_1y_old".to_string()), - _2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_2y_old".to_string()), - _3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_3y_old".to_string()), - _4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_4y_old".to_string()), - _5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_5y_old".to_string()), - _6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_6y_old".to_string()), - _7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_7y_old".to_string()), - _8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_8y_old".to_string()), - _10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_10y_old".to_string()), - _12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_12y_old".to_string()), - _15y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_under_15y_old".to_string()), + _1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1w_old".to_string()), + _1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1m_old".to_string()), + _2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_2m_old".to_string()), + _3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_3m_old".to_string()), + _4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_4m_old".to_string()), + _5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_5m_old".to_string()), + _6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_6m_old".to_string()), + _1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1y_old".to_string()), + _2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_2y_old".to_string()), + _3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_3y_old".to_string()), + _4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_4y_old".to_string()), + _5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_5y_old".to_string()), + _6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_6y_old".to_string()), + _7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_7y_old".to_string()), + _8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_8y_old".to_string()), + _10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10y_old".to_string()), + _12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_12y_old".to_string()), + _15y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_15y_old".to_string()), } } } /// Metrics tree node. pub struct MetricsTree_Distribution_UtxoCohorts_MinAge { - pub _1d: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, + pub _1d: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, } impl MetricsTree_Distribution_UtxoCohorts_MinAge { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_1d_old".to_string()), - _1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_1w_old".to_string()), - _1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_1m_old".to_string()), - _2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_2m_old".to_string()), - _3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_3m_old".to_string()), - _4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_4m_old".to_string()), - _5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_5m_old".to_string()), - _6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_6m_old".to_string()), - _1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_1y_old".to_string()), - _2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_2y_old".to_string()), - _3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_3y_old".to_string()), - _4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_4y_old".to_string()), - _5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_5y_old".to_string()), - _6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_6y_old".to_string()), - _7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_7y_old".to_string()), - _8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_8y_old".to_string()), - _10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_10y_old".to_string()), - _12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "utxos_over_12y_old".to_string()), + _1d: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1d_old".to_string()), + _1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1w_old".to_string()), + _1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1m_old".to_string()), + _2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_2m_old".to_string()), + _3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_3m_old".to_string()), + _4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_4m_old".to_string()), + _5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_5m_old".to_string()), + _6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_6m_old".to_string()), + _1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1y_old".to_string()), + _2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_2y_old".to_string()), + _3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_3y_old".to_string()), + _4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_4y_old".to_string()), + _5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_5y_old".to_string()), + _6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_6y_old".to_string()), + _7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_7y_old".to_string()), + _8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_8y_old".to_string()), + _10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10y_old".to_string()), + _12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_12y_old".to_string()), } } } /// Metrics tree node. pub struct MetricsTree_Distribution_UtxoCohorts_Epoch { - pub _0: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _1: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _3: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _4: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, + pub _0: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _1: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _3: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _4: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, } impl MetricsTree_Distribution_UtxoCohorts_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "epoch_0".to_string()), - _1: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "epoch_1".to_string()), - _2: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "epoch_2".to_string()), - _3: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "epoch_3".to_string()), - _4: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "epoch_4".to_string()), + _0: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "epoch_0".to_string()), + _1: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "epoch_1".to_string()), + _2: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "epoch_2".to_string()), + _3: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "epoch_3".to_string()), + _4: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "epoch_4".to_string()), } } } /// Metrics tree node. pub struct MetricsTree_Distribution_UtxoCohorts_Class { - pub _2009: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2010: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2011: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2012: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2013: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2014: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2015: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2016: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2017: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2018: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2019: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2020: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2021: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2022: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2023: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2024: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2025: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, - pub _2026: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2, + pub _2009: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2010: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2011: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2012: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2013: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2014: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2015: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2016: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2017: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2018: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2019: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2020: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2021: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2022: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2023: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2024: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2025: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _2026: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, } impl MetricsTree_Distribution_UtxoCohorts_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2009".to_string()), - _2010: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2010".to_string()), - _2011: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2011".to_string()), - _2012: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2012".to_string()), - _2013: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2013".to_string()), - _2014: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2014".to_string()), - _2015: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2015".to_string()), - _2016: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2016".to_string()), - _2017: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2017".to_string()), - _2018: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2018".to_string()), - _2019: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2019".to_string()), - _2020: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2020".to_string()), - _2021: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2021".to_string()), - _2022: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2022".to_string()), - _2023: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2023".to_string()), - _2024: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2024".to_string()), - _2025: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2025".to_string()), - _2026: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2::new(client.clone(), "class_2026".to_string()), + _2009: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2009".to_string()), + _2010: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2010".to_string()), + _2011: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2011".to_string()), + _2012: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2012".to_string()), + _2013: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2013".to_string()), + _2014: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2014".to_string()), + _2015: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2015".to_string()), + _2016: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2016".to_string()), + _2017: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2017".to_string()), + _2018: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2018".to_string()), + _2019: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2019".to_string()), + _2020: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2020".to_string()), + _2021: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2021".to_string()), + _2022: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2022".to_string()), + _2023: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2023".to_string()), + _2024: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2024".to_string()), + _2025: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2025".to_string()), + _2026: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "class_2026".to_string()), } } } /// Metrics tree node. pub struct MetricsTree_Distribution_UtxoCohorts_GeAmount { - pub _1sat: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _1sat: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern, } impl MetricsTree_Distribution_UtxoCohorts_GeAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1sat".to_string()), - _10sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10sats".to_string()), - _100sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_100sats".to_string()), - _1k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1k_sats".to_string()), - _10k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10k_sats".to_string()), - _100k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_100k_sats".to_string()), - _1m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1m_sats".to_string()), - _10m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10m_sats".to_string()), - _1btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1btc".to_string()), - _10btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10btc".to_string()), - _100btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_100btc".to_string()), - _1k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1k_btc".to_string()), - _10k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10k_btc".to_string()), + _1sat: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1sat".to_string()), + _10sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10sats".to_string()), + _100sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_100sats".to_string()), + _1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1k_sats".to_string()), + _10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10k_sats".to_string()), + _100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_100k_sats".to_string()), + _1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1m_sats".to_string()), + _10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10m_sats".to_string()), + _1btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1btc".to_string()), + _10btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10btc".to_string()), + _100btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_100btc".to_string()), + _1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_1k_btc".to_string()), + _10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_over_10k_btc".to_string()), } } } /// Metrics tree node. pub struct MetricsTree_Distribution_UtxoCohorts_AmountRange { - pub _0sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1sat_to_10sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10sats_to_100sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100sats_to_1k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_sats_to_10k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_sats_to_100k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_sats_to_1m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1m_sats_to_10m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10m_sats_to_1btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1btc_to_10btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10btc_to_100btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100btc_to_1k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_btc_to_10k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_btc_to_100k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_btc_or_more: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _0sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1sat_to_10sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10sats_to_100sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100sats_to_1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1k_sats_to_10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10k_sats_to_100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100k_sats_to_1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1m_sats_to_10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10m_sats_to_1btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1btc_to_10btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10btc_to_100btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100btc_to_1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1k_btc_to_10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10k_btc_to_100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100k_btc_or_more: ActivityOutputsRealizedSupplyUnrealizedPattern, } impl MetricsTree_Distribution_UtxoCohorts_AmountRange { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_with_0sats".to_string()), - _1sat_to_10sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1sat_under_10sats".to_string()), - _10sats_to_100sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10sats_under_100sats".to_string()), - _100sats_to_1k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_100sats_under_1k_sats".to_string()), - _1k_sats_to_10k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1k_sats_under_10k_sats".to_string()), - _10k_sats_to_100k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10k_sats_under_100k_sats".to_string()), - _100k_sats_to_1m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_100k_sats_under_1m_sats".to_string()), - _1m_sats_to_10m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1m_sats_under_10m_sats".to_string()), - _10m_sats_to_1btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10m_sats_under_1btc".to_string()), - _1btc_to_10btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1btc_under_10btc".to_string()), - _10btc_to_100btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10btc_under_100btc".to_string()), - _100btc_to_1k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_100btc_under_1k_btc".to_string()), - _1k_btc_to_10k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1k_btc_under_10k_btc".to_string()), - _10k_btc_to_100k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10k_btc_under_100k_btc".to_string()), - _100k_btc_or_more: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_above_100k_btc".to_string()), + _0sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_with_0sats".to_string()), + _1sat_to_10sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1sat_under_10sats".to_string()), + _10sats_to_100sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10sats_under_100sats".to_string()), + _100sats_to_1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_100sats_under_1k_sats".to_string()), + _1k_sats_to_10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1k_sats_under_10k_sats".to_string()), + _10k_sats_to_100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10k_sats_under_100k_sats".to_string()), + _100k_sats_to_1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_100k_sats_under_1m_sats".to_string()), + _1m_sats_to_10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1m_sats_under_10m_sats".to_string()), + _10m_sats_to_1btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10m_sats_under_1btc".to_string()), + _1btc_to_10btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1btc_under_10btc".to_string()), + _10btc_to_100btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10btc_under_100btc".to_string()), + _100btc_to_1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_100btc_under_1k_btc".to_string()), + _1k_btc_to_10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_1k_btc_under_10k_btc".to_string()), + _10k_btc_to_100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_10k_btc_under_100k_btc".to_string()), + _100k_btc_or_more: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_above_100k_btc".to_string()), } } } /// Metrics tree node. pub struct MetricsTree_Distribution_UtxoCohorts_LtAmount { - pub _10sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub _10sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub _100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern, } impl MetricsTree_Distribution_UtxoCohorts_LtAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10sats".to_string()), - _100sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_100sats".to_string()), - _1k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1k_sats".to_string()), - _10k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10k_sats".to_string()), - _100k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_100k_sats".to_string()), - _1m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1m_sats".to_string()), - _10m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10m_sats".to_string()), - _1btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1btc".to_string()), - _10btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10btc".to_string()), - _100btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_100btc".to_string()), - _1k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1k_btc".to_string()), - _10k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10k_btc".to_string()), - _100k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "utxos_under_100k_btc".to_string()), + _10sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10sats".to_string()), + _100sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_100sats".to_string()), + _1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1k_sats".to_string()), + _10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10k_sats".to_string()), + _100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_100k_sats".to_string()), + _1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1m_sats".to_string()), + _10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10m_sats".to_string()), + _1btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1btc".to_string()), + _10btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10btc".to_string()), + _100btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_100btc".to_string()), + _1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_1k_btc".to_string()), + _10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_10k_btc".to_string()), + _100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "utxos_under_100k_btc".to_string()), } } } /// Metrics tree node. pub struct MetricsTree_Distribution_UtxoCohorts_Type { - pub p2pk65: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub p2pk33: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub p2pkh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub p2ms: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub p2sh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub p2wpkh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub p2wsh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub p2tr: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub p2a: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub unknown: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, - pub empty: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern, + pub p2pk65: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub p2pk33: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub p2pkh: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub p2ms: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub p2sh: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub p2wpkh: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub p2wsh: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub p2tr: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub p2a: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub unknown: ActivityOutputsRealizedSupplyUnrealizedPattern, + pub empty: ActivityOutputsRealizedSupplyUnrealizedPattern, } impl MetricsTree_Distribution_UtxoCohorts_Type { pub fn new(client: Arc, base_path: String) -> Self { Self { - p2pk65: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "p2pk65".to_string()), - p2pk33: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "p2pk33".to_string()), - p2pkh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "p2pkh".to_string()), - p2ms: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "p2ms".to_string()), - p2sh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "p2sh".to_string()), - p2wpkh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "p2wpkh".to_string()), - p2wsh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "p2wsh".to_string()), - p2tr: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "p2tr".to_string()), - p2a: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "p2a".to_string()), - unknown: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "unknown_outputs".to_string()), - empty: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "empty_outputs".to_string()), + p2pk65: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "p2pk65".to_string()), + p2pk33: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "p2pk33".to_string()), + p2pkh: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "p2pkh".to_string()), + p2ms: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "p2ms".to_string()), + p2sh: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "p2sh".to_string()), + p2wpkh: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "p2wpkh".to_string()), + p2wsh: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "p2wsh".to_string()), + p2tr: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "p2tr".to_string()), + p2a: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "p2a".to_string()), + unknown: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "unknown_outputs".to_string()), + empty: ActivityOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "empty_outputs".to_string()), } } } @@ -6080,115 +6012,115 @@ impl MetricsTree_Distribution_AddressCohorts { /// Metrics tree node. pub struct MetricsTree_Distribution_AddressCohorts_GeAmount { - pub _1sat: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, + 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 MetricsTree_Distribution_AddressCohorts_GeAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1sat".to_string()), - _10sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10sats".to_string()), - _100sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_100sats".to_string()), - _1k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1k_sats".to_string()), - _10k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10k_sats".to_string()), - _100k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_100k_sats".to_string()), - _1m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1m_sats".to_string()), - _10m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10m_sats".to_string()), - _1btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1btc".to_string()), - _10btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10btc".to_string()), - _100btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_100btc".to_string()), - _1k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_1k_btc".to_string()), - _10k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_over_10k_btc".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()), } } } /// Metrics tree node. pub struct MetricsTree_Distribution_AddressCohorts_AmountRange { - pub _0sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1sat_to_10sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10sats_to_100sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100sats_to_1k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_sats_to_10k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_sats_to_100k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_sats_to_1m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1m_sats_to_10m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10m_sats_to_1btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1btc_to_10btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10btc_to_100btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100btc_to_1k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_btc_to_10k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_btc_to_100k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_btc_or_more: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, + 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 _100k_btc_or_more: ActivityAddrOutputsRealizedSupplyUnrealizedPattern, } impl MetricsTree_Distribution_AddressCohorts_AmountRange { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_with_0sats".to_string()), - _1sat_to_10sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1sat_under_10sats".to_string()), - _10sats_to_100sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10sats_under_100sats".to_string()), - _100sats_to_1k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_100sats_under_1k_sats".to_string()), - _1k_sats_to_10k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1k_sats_under_10k_sats".to_string()), - _10k_sats_to_100k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10k_sats_under_100k_sats".to_string()), - _100k_sats_to_1m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_100k_sats_under_1m_sats".to_string()), - _1m_sats_to_10m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1m_sats_under_10m_sats".to_string()), - _10m_sats_to_1btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10m_sats_under_1btc".to_string()), - _1btc_to_10btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1btc_under_10btc".to_string()), - _10btc_to_100btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10btc_under_100btc".to_string()), - _100btc_to_1k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_100btc_under_1k_btc".to_string()), - _1k_btc_to_10k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1k_btc_under_10k_btc".to_string()), - _10k_btc_to_100k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10k_btc_under_100k_btc".to_string()), - _100k_btc_or_more: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_above_100k_btc".to_string()), + _0sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_with_0sats".to_string()), + _1sat_to_10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1sat_under_10sats".to_string()), + _10sats_to_100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10sats_under_100sats".to_string()), + _100sats_to_1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_100sats_under_1k_sats".to_string()), + _1k_sats_to_10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1k_sats_under_10k_sats".to_string()), + _10k_sats_to_100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10k_sats_under_100k_sats".to_string()), + _100k_sats_to_1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_100k_sats_under_1m_sats".to_string()), + _1m_sats_to_10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1m_sats_under_10m_sats".to_string()), + _10m_sats_to_1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10m_sats_under_1btc".to_string()), + _1btc_to_10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1btc_under_10btc".to_string()), + _10btc_to_100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10btc_under_100btc".to_string()), + _100btc_to_1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_100btc_under_1k_btc".to_string()), + _1k_btc_to_10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_1k_btc_under_10k_btc".to_string()), + _10k_btc_to_100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_10k_btc_under_100k_btc".to_string()), + _100k_btc_or_more: ActivityAddrOutputsRealizedSupplyUnrealizedPattern::new(client.clone(), "addrs_above_100k_btc".to_string()), } } } /// Metrics tree node. pub struct MetricsTree_Distribution_AddressCohorts_LtAmount { - pub _10sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _1k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _10k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, - pub _100k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern, + 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 MetricsTree_Distribution_AddressCohorts_LtAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10sats".to_string()), - _100sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_100sats".to_string()), - _1k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_1k_sats".to_string()), - _10k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10k_sats".to_string()), - _100k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_100k_sats".to_string()), - _1m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_1m_sats".to_string()), - _10m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10m_sats".to_string()), - _1btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_1btc".to_string()), - _10btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10btc".to_string()), - _100btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_100btc".to_string()), - _1k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_1k_btc".to_string()), - _10k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_10k_btc".to_string()), - _100k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern::new(client.clone(), "addrs_under_100k_btc".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/cohorts/utxo/groups.rs b/crates/brk_computer/src/distribution/cohorts/utxo/groups.rs index 1963871f7..ef13d7c27 100644 --- a/crates/brk_computer/src/distribution/cohorts/utxo/groups.rs +++ b/crates/brk_computer/src/distribution/cohorts/utxo/groups.rs @@ -476,7 +476,6 @@ impl UTXOCohorts { blocks, prices, starting_indexes, - height_to_market_cap, ss, exit, ) diff --git a/crates/brk_computer/src/distribution/metrics/cohort/all.rs b/crates/brk_computer/src/distribution/metrics/cohort/all.rs index c2a86f3b1..e67365d96 100644 --- a/crates/brk_computer/src/distribution/metrics/cohort/all.rs +++ b/crates/brk_computer/src/distribution/metrics/cohort/all.rs @@ -117,7 +117,6 @@ impl AllCohortMetrics { self.relative.compute( starting_indexes.height, &self.unrealized, - &self.realized, &self.supply.total.sats.height, height_to_market_cap, exit, diff --git a/crates/brk_computer/src/distribution/metrics/cohort/basic.rs b/crates/brk_computer/src/distribution/metrics/cohort/basic.rs index 564506357..d9afd8b8c 100644 --- a/crates/brk_computer/src/distribution/metrics/cohort/basic.rs +++ b/crates/brk_computer/src/distribution/metrics/cohort/basic.rs @@ -1,14 +1,14 @@ use brk_cohort::Filter; use brk_error::Result; use brk_traversable::Traversable; -use brk_types::{Dollars, Height, Indexes, Sats}; +use brk_types::{Height, Indexes, Sats}; use vecdb::{AnyStoredVec, Exit, ReadableVec, Rw, StorageMode}; use crate::{blocks, prices}; use crate::distribution::metrics::{ ActivityFull, CohortMetricsBase, CostBasisBase, ImportConfig, OutputsMetrics, RealizedBase, - RelativeWithRelToAll, SupplyMetrics, UnrealizedBase, + RelativeBaseWithRelToAll, SupplyMetrics, UnrealizedBase, }; /// Basic cohort metrics: no extensions, with relative (rel_to_all). @@ -23,7 +23,7 @@ pub struct BasicCohortMetrics { pub realized: Box>, pub cost_basis: Box>, pub unrealized: Box>, - pub relative: Box>, + pub relative: Box>, } impl CohortMetricsBase for BasicCohortMetrics { @@ -51,7 +51,7 @@ impl BasicCohortMetrics { let unrealized = UnrealizedBase::forced_import(cfg)?; let realized = RealizedBase::forced_import(cfg)?; - let relative = RelativeWithRelToAll::forced_import(cfg)?; + let relative = RelativeBaseWithRelToAll::forced_import(cfg)?; Ok(Self { filter: cfg.filter.clone(), @@ -70,7 +70,6 @@ impl BasicCohortMetrics { blocks: &blocks::Vecs, prices: &prices::Vecs, starting_indexes: &Indexes, - height_to_market_cap: &impl ReadableVec, all_supply_sats: &impl ReadableVec, exit: &Exit, ) -> Result<()> { @@ -84,10 +83,8 @@ impl BasicCohortMetrics { self.relative.compute( starting_indexes.height, - &self.unrealized, - &self.realized, + &self.unrealized.core, &self.supply.total.sats.height, - height_to_market_cap, all_supply_sats, exit, )?; diff --git a/crates/brk_computer/src/distribution/metrics/cohort/extended.rs b/crates/brk_computer/src/distribution/metrics/cohort/extended.rs index d99808372..07a672bc9 100644 --- a/crates/brk_computer/src/distribution/metrics/cohort/extended.rs +++ b/crates/brk_computer/src/distribution/metrics/cohort/extended.rs @@ -95,7 +95,6 @@ impl ExtendedCohortMetrics { self.relative.compute( starting_indexes.height, &self.unrealized, - &self.realized, &self.supply.total.sats.height, height_to_market_cap, all_supply_sats, diff --git a/crates/brk_computer/src/distribution/metrics/cohort/minimal.rs b/crates/brk_computer/src/distribution/metrics/cohort/minimal.rs index e86ff91e5..38632f29d 100644 --- a/crates/brk_computer/src/distribution/metrics/cohort/minimal.rs +++ b/crates/brk_computer/src/distribution/metrics/cohort/minimal.rs @@ -1,17 +1,12 @@ use brk_cohort::Filter; use brk_error::Result; use brk_traversable::Traversable; -use brk_types::{ - BasisPoints16, Height, Indexes, Sats, Version, -}; -use vecdb::{AnyStoredVec, AnyVec, Exit, ReadableVec, Rw, StorageMode, WritableVec}; +use brk_types::{Height, Indexes, Version}; +use vecdb::{AnyStoredVec, AnyVec, Exit, Rw, StorageMode, WritableVec}; use crate::{blocks, prices}; -use crate::internal::{ - PercentFromHeight, RatioSatsBp16, - ValueFromHeight, -}; +use crate::internal::ValueFromHeight; use crate::distribution::{ metrics::{ActivityBase, ImportConfig, OutputsMetrics, RealizedMinimal, SupplyMetrics}, @@ -25,15 +20,8 @@ pub struct MinimalUnrealized { pub supply_in_loss: ValueFromHeight, } -/// Minimal relative metrics: supply in profit/loss relative to own supply. -#[derive(Traversable)] -pub struct MinimalRelative { - pub supply_in_profit_rel_to_own_supply: PercentFromHeight, - pub supply_in_loss_rel_to_own_supply: PercentFromHeight, -} - /// MinimalCohortMetrics: supply, outputs, sent+ema, realized cap/price/mvrv/profit/loss, -/// supply in profit/loss, relative to own supply. +/// supply in profit/loss. /// /// Used for type_, amount, and address cohorts. /// Does NOT implement CohortMetricsBase — standalone, not aggregatable via trait. @@ -46,7 +34,6 @@ pub struct MinimalCohortMetrics { pub activity: Box>, pub realized: Box>, pub unrealized: Box>, - pub relative: Box>, } impl MinimalUnrealized { @@ -113,42 +100,6 @@ impl MinimalUnrealized { } } -impl MinimalRelative { - pub(crate) fn forced_import(cfg: &ImportConfig) -> Result { - Ok(Self { - supply_in_profit_rel_to_own_supply: cfg - .import("supply_in_profit_rel_to_own_supply", Version::ONE)?, - supply_in_loss_rel_to_own_supply: cfg - .import("supply_in_loss_rel_to_own_supply", Version::ONE)?, - }) - } - - pub(crate) fn compute( - &mut self, - max_from: Height, - supply_in_profit_sats: &impl ReadableVec, - supply_in_loss_sats: &impl ReadableVec, - supply_total_sats: &impl ReadableVec, - exit: &Exit, - ) -> Result<()> { - self.supply_in_profit_rel_to_own_supply - .compute_binary::( - max_from, - supply_in_profit_sats, - supply_total_sats, - exit, - )?; - self.supply_in_loss_rel_to_own_supply - .compute_binary::( - max_from, - supply_in_loss_sats, - supply_total_sats, - exit, - )?; - Ok(()) - } -} - impl MinimalCohortMetrics { pub(crate) fn forced_import(cfg: &ImportConfig) -> Result { Ok(Self { @@ -158,7 +109,6 @@ impl MinimalCohortMetrics { activity: Box::new(ActivityBase::forced_import(cfg)?), realized: Box::new(RealizedMinimal::forced_import(cfg)?), unrealized: Box::new(MinimalUnrealized::forced_import(cfg)?), - relative: Box::new(MinimalRelative::forced_import(cfg)?), }) } @@ -262,14 +212,6 @@ impl MinimalCohortMetrics { exit, )?; - self.relative.compute( - starting_indexes.height, - &self.unrealized.supply_in_profit.sats.height, - &self.unrealized.supply_in_loss.sats.height, - &self.supply.total.sats.height, - exit, - )?; - Ok(()) } } diff --git a/crates/brk_computer/src/distribution/metrics/mod.rs b/crates/brk_computer/src/distribution/metrics/mod.rs index 98473bf71..c8d80c7a7 100644 --- a/crates/brk_computer/src/distribution/metrics/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/mod.rs @@ -55,7 +55,7 @@ pub use realized::{ RealizedAdjusted, RealizedBase, RealizedFull, RealizedLike, RealizedMinimal, }; pub use relative::{ - RelativeBaseWithRelToAll, RelativeForAll, RelativeWithExtended, RelativeWithRelToAll, + RelativeBaseWithRelToAll, RelativeForAll, RelativeWithExtended, }; pub use supply::SupplyMetrics; pub use unrealized::{UnrealizedBase, UnrealizedCore, UnrealizedFull, UnrealizedLike}; diff --git a/crates/brk_computer/src/distribution/metrics/relative/extended_own_market_cap.rs b/crates/brk_computer/src/distribution/metrics/relative/extended_own_market_cap.rs index 56b85ba67..5d5795a5b 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/extended_own_market_cap.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/extended_own_market_cap.rs @@ -5,7 +5,7 @@ use vecdb::{Exit, ReadableVec, Rw, StorageMode}; use crate::internal::{PercentFromHeight, RatioDollarsBp16, RatioDollarsBp32, RatioDollarsBps32}; -use crate::distribution::metrics::{ImportConfig, UnrealizedBase}; +use crate::distribution::metrics::{ImportConfig, UnrealizedCore}; /// Extended relative metrics for own market cap (extended && rel_to_all). #[derive(Traversable)] @@ -32,7 +32,7 @@ impl RelativeExtendedOwnMarketCap { pub(crate) fn compute( &mut self, max_from: Height, - unrealized: &UnrealizedBase, + unrealized: &UnrealizedCore, own_market_cap: &impl ReadableVec, exit: &Exit, ) -> Result<()> { diff --git a/crates/brk_computer/src/distribution/metrics/relative/extended_own_pnl.rs b/crates/brk_computer/src/distribution/metrics/relative/extended_own_pnl.rs index 900549ece..134713464 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/extended_own_pnl.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/extended_own_pnl.rs @@ -1,11 +1,11 @@ use brk_error::Result; use brk_traversable::Traversable; use brk_types::{BasisPoints16, BasisPointsSigned32, Dollars, Height, Version}; -use vecdb::{Exit, Rw, StorageMode}; +use vecdb::{Exit, ReadableVec, Rw, StorageMode}; use crate::internal::{PercentFromHeight, RatioDollarsBp16, RatioDollarsBps32}; -use crate::distribution::metrics::{ImportConfig, UnrealizedBase}; +use crate::distribution::metrics::{ImportConfig, UnrealizedCore}; /// Extended relative metrics for own total unrealized PnL (extended only). #[derive(Traversable)] @@ -32,28 +32,29 @@ impl RelativeExtendedOwnPnl { pub(crate) fn compute( &mut self, max_from: Height, - unrealized: &UnrealizedBase, + unrealized: &UnrealizedCore, + gross_pnl_usd: &impl ReadableVec, exit: &Exit, ) -> Result<()> { self.unrealized_profit_rel_to_own_gross_pnl .compute_binary::( max_from, &unrealized.unrealized_profit.usd.height, - &unrealized.gross_pnl.usd.height, + gross_pnl_usd, exit, )?; self.unrealized_loss_rel_to_own_gross_pnl .compute_binary::( max_from, &unrealized.unrealized_loss.usd.height, - &unrealized.gross_pnl.usd.height, + gross_pnl_usd, exit, )?; self.net_unrealized_pnl_rel_to_own_gross_pnl .compute_binary::( max_from, &unrealized.net_unrealized_pnl.usd.height, - &unrealized.gross_pnl.usd.height, + gross_pnl_usd, exit, )?; Ok(()) diff --git a/crates/brk_computer/src/distribution/metrics/relative/for_all.rs b/crates/brk_computer/src/distribution/metrics/relative/for_all.rs index f2e462d22..9d776d575 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/for_all.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/for_all.rs @@ -4,7 +4,7 @@ use brk_types::{Dollars, Height, Sats}; use derive_more::{Deref, DerefMut}; use vecdb::{Exit, ReadableVec, Rw, StorageMode}; -use crate::distribution::metrics::{ImportConfig, RealizedBase, UnrealizedBase}; +use crate::distribution::metrics::{ImportConfig, UnrealizedFull}; use super::{RelativeFull, RelativeExtendedOwnPnl}; @@ -30,21 +30,20 @@ impl RelativeForAll { pub(crate) fn compute( &mut self, max_from: Height, - unrealized: &UnrealizedBase, - realized: &RealizedBase, + unrealized: &UnrealizedFull, supply_total_sats: &impl ReadableVec, market_cap: &impl ReadableVec, exit: &Exit, ) -> Result<()> { self.base.compute( max_from, - unrealized, - realized, + &unrealized.inner.core, supply_total_sats, market_cap, exit, )?; - self.extended_own_pnl.compute(max_from, unrealized, exit)?; + self.extended_own_pnl + .compute(max_from, &unrealized.inner.core, &unrealized.gross_pnl.usd.height, exit)?; Ok(()) } } diff --git a/crates/brk_computer/src/distribution/metrics/relative/full.rs b/crates/brk_computer/src/distribution/metrics/relative/full.rs index 01b6f929f..2ddb4de90 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/full.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/full.rs @@ -10,7 +10,7 @@ use crate::internal::{ Bps32ToFloat, LazyFromHeight, PercentFromHeight, RatioDollarsBp16, RatioDollarsBps32, }; -use crate::distribution::metrics::{ImportConfig, RealizedBase, UnrealizedBase}; +use crate::distribution::metrics::{ImportConfig, UnrealizedCore}; use super::RelativeBase; @@ -26,9 +26,6 @@ pub struct RelativeFull { pub unrealized_loss_rel_to_market_cap: PercentFromHeight, pub net_unrealized_pnl_rel_to_market_cap: PercentFromHeight, pub nupl: LazyFromHeight, - - pub invested_capital_in_profit_rel_to_realized_cap: PercentFromHeight, - pub invested_capital_in_loss_rel_to_realized_cap: PercentFromHeight, } impl RelativeFull { @@ -59,29 +56,20 @@ impl RelativeFull { .import("unrealized_loss_rel_to_market_cap", v2)?, net_unrealized_pnl_rel_to_market_cap, nupl, - invested_capital_in_profit_rel_to_realized_cap: cfg.import( - "invested_capital_in_profit_rel_to_realized_cap", - Version::ZERO, - )?, - invested_capital_in_loss_rel_to_realized_cap: cfg.import( - "invested_capital_in_loss_rel_to_realized_cap", - Version::ZERO, - )?, }) } pub(crate) fn compute( &mut self, max_from: Height, - unrealized: &UnrealizedBase, - realized: &RealizedBase, + unrealized: &UnrealizedCore, supply_total_sats: &impl ReadableVec, market_cap: &impl ReadableVec, exit: &Exit, ) -> Result<()> { self.base.compute( max_from, - &unrealized.core, + unrealized, supply_total_sats, exit, )?; @@ -107,20 +95,6 @@ impl RelativeFull { market_cap, exit, )?; - self.invested_capital_in_profit_rel_to_realized_cap - .compute_binary::( - max_from, - &unrealized.invested_capital_in_profit.usd.height, - &realized.realized_cap.height, - exit, - )?; - self.invested_capital_in_loss_rel_to_realized_cap - .compute_binary::( - max_from, - &unrealized.invested_capital_in_loss.usd.height, - &realized.realized_cap.height, - exit, - )?; Ok(()) } } diff --git a/crates/brk_computer/src/distribution/metrics/relative/mod.rs b/crates/brk_computer/src/distribution/metrics/relative/mod.rs index 2e57889ba..84d9a45c7 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/mod.rs @@ -6,7 +6,6 @@ mod full; mod to_all; mod with_extended; mod with_rel_to_all; -mod with_rel_to_all_base; pub use base::RelativeBase; pub use extended_own_market_cap::RelativeExtendedOwnMarketCap; @@ -15,5 +14,4 @@ pub use for_all::RelativeForAll; pub use full::RelativeFull; pub use to_all::RelativeToAll; pub use with_extended::RelativeWithExtended; -pub use with_rel_to_all::RelativeWithRelToAll; -pub use with_rel_to_all_base::RelativeBaseWithRelToAll; +pub use with_rel_to_all::RelativeBaseWithRelToAll; diff --git a/crates/brk_computer/src/distribution/metrics/relative/with_extended.rs b/crates/brk_computer/src/distribution/metrics/relative/with_extended.rs index 730d376ee..fbfc2f994 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/with_extended.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/with_extended.rs @@ -4,12 +4,12 @@ use brk_types::{Dollars, Height, Sats}; use derive_more::{Deref, DerefMut}; use vecdb::{Exit, ReadableVec, Rw, StorageMode}; -use crate::distribution::metrics::{ImportConfig, RealizedBase, UnrealizedBase}; +use crate::distribution::metrics::{ImportConfig, UnrealizedFull}; use super::{RelativeFull, RelativeExtendedOwnMarketCap, RelativeExtendedOwnPnl, RelativeToAll}; /// Full extended relative metrics (base + rel_to_all + own_market_cap + own_pnl). -/// Used by: sth, lth, age_range cohorts. +/// Used by: sth, lth cohorts. #[derive(Deref, DerefMut, Traversable)] pub struct RelativeWithExtended { #[deref] @@ -38,8 +38,7 @@ impl RelativeWithExtended { pub(crate) fn compute( &mut self, max_from: Height, - unrealized: &UnrealizedBase, - realized: &RealizedBase, + unrealized: &UnrealizedFull, supply_total_sats: &impl ReadableVec, market_cap: &impl ReadableVec, all_supply_sats: &impl ReadableVec, @@ -48,8 +47,7 @@ impl RelativeWithExtended { ) -> Result<()> { self.base.compute( max_from, - unrealized, - realized, + &unrealized.inner.core, supply_total_sats, market_cap, exit, @@ -63,8 +61,9 @@ impl RelativeWithExtended { exit, )?; self.extended_own_market_cap - .compute(max_from, unrealized, own_market_cap, exit)?; - self.extended_own_pnl.compute(max_from, unrealized, exit)?; + .compute(max_from, &unrealized.inner.core, own_market_cap, exit)?; + self.extended_own_pnl + .compute(max_from, &unrealized.inner.core, &unrealized.gross_pnl.usd.height, exit)?; Ok(()) } } diff --git a/crates/brk_computer/src/distribution/metrics/relative/with_rel_to_all.rs b/crates/brk_computer/src/distribution/metrics/relative/with_rel_to_all.rs index 1ea4a864c..dd89cf0d2 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/with_rel_to_all.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/with_rel_to_all.rs @@ -1,50 +1,45 @@ use brk_error::Result; use brk_traversable::Traversable; -use brk_types::{Dollars, Height, Sats}; +use brk_types::{Height, Sats}; use derive_more::{Deref, DerefMut}; use vecdb::{Exit, ReadableVec, Rw, StorageMode}; -use crate::distribution::metrics::{ImportConfig, RealizedBase, UnrealizedBase}; +use crate::distribution::metrics::{ImportConfig, UnrealizedCore}; -use super::{RelativeFull, RelativeToAll}; +use super::{RelativeBase, RelativeToAll}; -/// Relative metrics with rel_to_all (no extended, no peak_regret). -/// Used by: epoch, year, type, amount, address cohorts. +/// Base relative metrics with rel_to_all. +/// Used by: age_range, epoch, class, min_age, max_age cohorts. #[derive(Deref, DerefMut, Traversable)] -pub struct RelativeWithRelToAll { +pub struct RelativeBaseWithRelToAll { #[deref] #[deref_mut] #[traversable(flatten)] - pub base: RelativeFull, + pub base: RelativeBase, #[traversable(flatten)] pub rel_to_all: RelativeToAll, } -impl RelativeWithRelToAll { +impl RelativeBaseWithRelToAll { pub(crate) fn forced_import(cfg: &ImportConfig) -> Result { Ok(Self { - base: RelativeFull::forced_import(cfg)?, + base: RelativeBase::forced_import(cfg)?, rel_to_all: RelativeToAll::forced_import(cfg)?, }) } - #[allow(clippy::too_many_arguments)] pub(crate) fn compute( &mut self, max_from: Height, - unrealized: &UnrealizedBase, - realized: &RealizedBase, + unrealized: &UnrealizedCore, supply_total_sats: &impl ReadableVec, - market_cap: &impl ReadableVec, all_supply_sats: &impl ReadableVec, exit: &Exit, ) -> Result<()> { self.base.compute( max_from, unrealized, - realized, supply_total_sats, - market_cap, exit, )?; self.rel_to_all.compute( diff --git a/crates/brk_computer/src/distribution/metrics/relative/with_rel_to_all_base.rs b/crates/brk_computer/src/distribution/metrics/relative/with_rel_to_all_base.rs deleted file mode 100644 index 84fd30a1b..000000000 --- a/crates/brk_computer/src/distribution/metrics/relative/with_rel_to_all_base.rs +++ /dev/null @@ -1,55 +0,0 @@ -use brk_error::Result; -use brk_traversable::Traversable; -use brk_types::{Height, Sats}; -use derive_more::{Deref, DerefMut}; -use vecdb::{Exit, ReadableVec, Rw, StorageMode}; - -use crate::distribution::metrics::{ImportConfig, UnrealizedCore}; - -use super::{RelativeBase, RelativeToAll}; - -/// Complete relative metrics with rel_to_all. -/// Used by CompleteCohortMetrics (epoch, class, min_age, max_age). -#[derive(Deref, DerefMut, Traversable)] -pub struct RelativeBaseWithRelToAll { - #[deref] - #[deref_mut] - #[traversable(flatten)] - pub base: RelativeBase, - #[traversable(flatten)] - pub rel_to_all: RelativeToAll, -} - -impl RelativeBaseWithRelToAll { - pub(crate) fn forced_import(cfg: &ImportConfig) -> Result { - Ok(Self { - base: RelativeBase::forced_import(cfg)?, - rel_to_all: RelativeToAll::forced_import(cfg)?, - }) - } - - pub(crate) fn compute( - &mut self, - max_from: Height, - unrealized: &UnrealizedCore, - supply_total_sats: &impl ReadableVec, - all_supply_sats: &impl ReadableVec, - exit: &Exit, - ) -> Result<()> { - self.base.compute( - max_from, - unrealized, - supply_total_sats, - exit, - )?; - self.rel_to_all.compute( - max_from, - &unrealized.supply_in_profit.sats.height, - &unrealized.supply_in_loss.sats.height, - supply_total_sats, - all_supply_sats, - exit, - )?; - Ok(()) - } -} diff --git a/crates/brk_computer/src/distribution/metrics/unrealized/base.rs b/crates/brk_computer/src/distribution/metrics/unrealized/base.rs index fccb843a5..7977aebbb 100644 --- a/crates/brk_computer/src/distribution/metrics/unrealized/base.rs +++ b/crates/brk_computer/src/distribution/metrics/unrealized/base.rs @@ -1,14 +1,10 @@ use brk_error::Result; use brk_traversable::Traversable; -use brk_types::{Cents, CentsSats, CentsSquaredSats, Height, Indexes, Version}; +use brk_types::{CentsSats, CentsSquaredSats, Height, Indexes, Version}; use derive_more::{Deref, DerefMut}; use vecdb::{AnyStoredVec, AnyVec, BytesVec, Exit, ReadableVec, Rw, StorageMode, WritableVec}; -use crate::{ - distribution::state::UnrealizedState, - internal::FiatFromHeight, - prices, -}; +use crate::distribution::state::UnrealizedState; use crate::distribution::metrics::ImportConfig; @@ -21,11 +17,6 @@ pub struct UnrealizedBase { #[traversable(flatten)] pub core: UnrealizedCore, - pub gross_pnl: FiatFromHeight, - - pub invested_capital_in_profit: FiatFromHeight, - pub invested_capital_in_loss: FiatFromHeight, - pub invested_capital_in_profit_raw: M::Stored>, pub invested_capital_in_loss_raw: M::Stored>, pub investor_cap_in_profit_raw: M::Stored>, @@ -38,11 +29,6 @@ impl UnrealizedBase { let core = UnrealizedCore::forced_import(cfg)?; - let gross_pnl = cfg.import("unrealized_gross_pnl", v0)?; - - let invested_capital_in_profit = cfg.import("invested_capital_in_profit", v0)?; - let invested_capital_in_loss = cfg.import("invested_capital_in_loss", v0)?; - let invested_capital_in_profit_raw = cfg.import("invested_capital_in_profit_raw", v0)?; let invested_capital_in_loss_raw = cfg.import("invested_capital_in_loss_raw", v0)?; @@ -51,9 +37,6 @@ impl UnrealizedBase { Ok(Self { core, - gross_pnl, - invested_capital_in_profit, - invested_capital_in_loss, invested_capital_in_profit_raw, invested_capital_in_loss_raw, investor_cap_in_profit_raw, @@ -64,8 +47,6 @@ impl UnrealizedBase { pub(crate) fn min_stateful_height_len(&self) -> usize { self.core .min_stateful_height_len() - .min(self.invested_capital_in_profit.cents.height.len()) - .min(self.invested_capital_in_loss.cents.height.len()) .min(self.invested_capital_in_profit_raw.len()) .min(self.invested_capital_in_loss_raw.len()) .min(self.investor_cap_in_profit_raw.len()) @@ -79,15 +60,6 @@ impl UnrealizedBase { ) -> Result<()> { self.core.truncate_push(height, height_state)?; - self.invested_capital_in_profit - .cents - .height - .truncate_push(height, height_state.invested_capital_in_profit)?; - self.invested_capital_in_loss - .cents - .height - .truncate_push(height, height_state.invested_capital_in_loss)?; - self.invested_capital_in_profit_raw.truncate_push( height, CentsSats::new(height_state.invested_capital_in_profit_raw), @@ -110,8 +82,6 @@ impl UnrealizedBase { pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = self.core.collect_vecs_mut(); - vecs.push(&mut self.invested_capital_in_profit.cents.height as &mut dyn AnyStoredVec); - vecs.push(&mut self.invested_capital_in_loss.cents.height as &mut dyn AnyStoredVec); vecs.push(&mut self.invested_capital_in_profit_raw as &mut dyn AnyStoredVec); vecs.push(&mut self.invested_capital_in_loss_raw as &mut dyn AnyStoredVec); vecs.push(&mut self.investor_cap_in_profit_raw as &mut dyn AnyStoredVec); @@ -130,9 +100,6 @@ impl UnrealizedBase { self.core .compute_from_stateful(starting_indexes, &core_refs, exit)?; - sum_others!(self, starting_indexes, others, exit; invested_capital_in_profit.cents.height); - sum_others!(self, starting_indexes, others, exit; invested_capital_in_loss.cents.height); - let start = self .invested_capital_in_profit_raw .len() @@ -196,19 +163,10 @@ impl UnrealizedBase { pub(crate) fn compute_rest( &mut self, - _prices: &prices::Vecs, starting_indexes: &Indexes, exit: &Exit, ) -> Result<()> { self.core.compute_rest(starting_indexes, exit)?; - - self.gross_pnl.cents.height.compute_add( - starting_indexes.height, - &self.core.unrealized_profit.cents.height, - &self.core.unrealized_loss.cents.height, - exit, - )?; - Ok(()) } } diff --git a/crates/brk_computer/src/distribution/metrics/unrealized/full.rs b/crates/brk_computer/src/distribution/metrics/unrealized/full.rs index 649c73193..19bbfd2f2 100644 --- a/crates/brk_computer/src/distribution/metrics/unrealized/full.rs +++ b/crates/brk_computer/src/distribution/metrics/unrealized/full.rs @@ -1,13 +1,12 @@ use brk_error::Result; use brk_traversable::Traversable; -use brk_types::{Cents, CentsSigned, Indexes, Version}; +use brk_types::{Cents, CentsSats, CentsSigned, Height, Indexes, Version}; use derive_more::{Deref, DerefMut}; -use vecdb::{Exit, Rw, StorageMode}; +use vecdb::{AnyStoredVec, Exit, Rw, StorageMode, WritableVec}; +use crate::distribution::state::UnrealizedState; use crate::internal::{CentsSubtractToCentsSigned, FiatFromHeight}; -use crate::prices; - -use crate::distribution::metrics::ImportConfig; +use crate::{distribution::metrics::ImportConfig, prices}; use super::UnrealizedBase; @@ -18,6 +17,10 @@ pub struct UnrealizedFull { #[traversable(flatten)] pub inner: UnrealizedBase, + pub gross_pnl: FiatFromHeight, + pub invested_capital_in_profit: FiatFromHeight, + pub invested_capital_in_loss: FiatFromHeight, + pub pain_index: FiatFromHeight, pub greed_index: FiatFromHeight, pub net_sentiment: FiatFromHeight, @@ -25,28 +28,95 @@ pub struct UnrealizedFull { impl UnrealizedFull { pub(crate) fn forced_import(cfg: &ImportConfig) -> Result { + let v0 = Version::ZERO; let inner = UnrealizedBase::forced_import(cfg)?; - let pain_index = cfg.import("pain_index", Version::ZERO)?; - let greed_index = cfg.import("greed_index", Version::ZERO)?; + let gross_pnl = cfg.import("unrealized_gross_pnl", v0)?; + let invested_capital_in_profit = cfg.import("invested_capital_in_profit", v0)?; + let invested_capital_in_loss = cfg.import("invested_capital_in_loss", v0)?; + + let pain_index = cfg.import("pain_index", v0)?; + let greed_index = cfg.import("greed_index", v0)?; let net_sentiment = cfg.import("net_sentiment", Version::ONE)?; Ok(Self { inner, + gross_pnl, + invested_capital_in_profit, + invested_capital_in_loss, pain_index, greed_index, net_sentiment, }) } - pub(crate) fn compute_rest( + pub(crate) fn truncate_push_all( + &mut self, + height: Height, + state: &UnrealizedState, + ) -> Result<()> { + self.inner.truncate_push(height, state)?; + self.invested_capital_in_profit + .cents + .height + .truncate_push(height, state.invested_capital_in_profit)?; + self.invested_capital_in_loss + .cents + .height + .truncate_push(height, state.invested_capital_in_loss)?; + Ok(()) + } + + pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + let mut vecs = self.inner.collect_vecs_mut(); + vecs.push(&mut self.gross_pnl.cents.height as &mut dyn AnyStoredVec); + vecs.push(&mut self.invested_capital_in_profit.cents.height as &mut dyn AnyStoredVec); + vecs.push(&mut self.invested_capital_in_loss.cents.height as &mut dyn AnyStoredVec); + vecs.push(&mut self.pain_index.cents.height as &mut dyn AnyStoredVec); + vecs.push(&mut self.greed_index.cents.height as &mut dyn AnyStoredVec); + vecs.push(&mut self.net_sentiment.cents.height as &mut dyn AnyStoredVec); + vecs + } + + pub(crate) fn compute_rest_all( &mut self, prices: &prices::Vecs, starting_indexes: &Indexes, exit: &Exit, ) -> Result<()> { - self.inner.compute_rest(prices, starting_indexes, exit)?; + self.inner.compute_rest(starting_indexes, exit)?; + self.gross_pnl.cents.height.compute_add( + starting_indexes.height, + &self.inner.core.unrealized_profit.cents.height, + &self.inner.core.unrealized_loss.cents.height, + exit, + )?; + + self.invested_capital_in_profit.cents.height.compute_transform( + starting_indexes.height, + &self.inner.invested_capital_in_profit_raw, + |(h, raw, ..)| (h, CentsSats::to_cents(raw)), + exit, + )?; + + self.invested_capital_in_loss.cents.height.compute_transform( + starting_indexes.height, + &self.inner.invested_capital_in_loss_raw, + |(h, raw, ..)| (h, CentsSats::to_cents(raw)), + exit, + )?; + + self.compute_rest_extended(prices, starting_indexes, exit)?; + Ok(()) + } + + fn compute_rest_extended( + &mut self, + prices: &prices::Vecs, + starting_indexes: &Indexes, + exit: &Exit, + ) -> Result<()> { self.pain_index.cents.height.compute_transform3( starting_indexes.height, &self.inner.investor_cap_in_loss_raw, diff --git a/crates/brk_computer/src/distribution/metrics/unrealized/mod.rs b/crates/brk_computer/src/distribution/metrics/unrealized/mod.rs index 993022431..72aade9bc 100644 --- a/crates/brk_computer/src/distribution/metrics/unrealized/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/unrealized/mod.rs @@ -28,8 +28,8 @@ impl UnrealizedLike for UnrealizedBase { fn truncate_push(&mut self, height: Height, state: &UnrealizedState) -> Result<()> { self.truncate_push(height, state) } - fn compute_rest(&mut self, prices: &prices::Vecs, starting_indexes: &Indexes, exit: &Exit) -> Result<()> { - self.compute_rest(prices, starting_indexes, exit) + fn compute_rest(&mut self, _prices: &prices::Vecs, starting_indexes: &Indexes, exit: &Exit) -> Result<()> { + self.compute_rest(starting_indexes, exit) } fn compute_net_sentiment_height(&mut self, _starting_indexes: &Indexes, _exit: &Exit) -> Result<()> { Ok(()) @@ -41,10 +41,10 @@ impl UnrealizedLike for UnrealizedFull { fn as_base_mut(&mut self) -> &mut UnrealizedBase { &mut self.inner } fn min_stateful_height_len(&self) -> usize { self.inner.min_stateful_height_len() } fn truncate_push(&mut self, height: Height, state: &UnrealizedState) -> Result<()> { - self.inner.truncate_push(height, state) + self.truncate_push_all(height, state) } fn compute_rest(&mut self, prices: &prices::Vecs, starting_indexes: &Indexes, exit: &Exit) -> Result<()> { - self.compute_rest(prices, starting_indexes, exit) + self.compute_rest_all(prices, starting_indexes, exit) } fn compute_net_sentiment_height(&mut self, starting_indexes: &Indexes, exit: &Exit) -> Result<()> { self.compute_net_sentiment_height(starting_indexes, exit) diff --git a/modules/brk-client/index.js b/modules/brk-client/index.js index 4ac737c47..f6f4ec22b 100644 --- a/modules/brk-client/index.js +++ b/modules/brk-client/index.js @@ -1827,55 +1827,6 @@ function createPct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65 }; } -/** - * @typedef {Object} InvestedNetNuplSupplyUnrealizedPattern3 - * @property {BpsPercentRatioPattern} investedCapitalInLossRelToRealizedCap - * @property {BpsPercentRatioPattern} investedCapitalInProfitRelToRealizedCap - * @property {BpsPercentRatioPattern} netUnrealizedPnlRelToMarketCap - * @property {BpsPercentRatioPattern} netUnrealizedPnlRelToOwnGrossPnl - * @property {BpsPercentRatioPattern} netUnrealizedPnlRelToOwnMarketCap - * @property {MetricPattern1} nupl - * @property {BpsPercentRatioPattern} supplyInLossRelToCirculatingSupply - * @property {BpsPercentRatioPattern} supplyInLossRelToOwnSupply - * @property {BpsPercentRatioPattern} supplyInProfitRelToCirculatingSupply - * @property {BpsPercentRatioPattern} supplyInProfitRelToOwnSupply - * @property {BpsPercentRatioPattern} supplyRelToCirculatingSupply - * @property {BpsPercentRatioPattern} unrealizedLossRelToMarketCap - * @property {BpsPercentRatioPattern} unrealizedLossRelToOwnGrossPnl - * @property {BpsPercentRatioPattern} unrealizedLossRelToOwnMarketCap - * @property {BpsPercentRatioPattern} unrealizedProfitRelToMarketCap - * @property {BpsPercentRatioPattern} unrealizedProfitRelToOwnGrossPnl - * @property {BpsPercentRatioPattern} unrealizedProfitRelToOwnMarketCap - */ - -/** - * Create a InvestedNetNuplSupplyUnrealizedPattern3 pattern node - * @param {BrkClientBase} client - * @param {string} acc - Accumulated metric name - * @returns {InvestedNetNuplSupplyUnrealizedPattern3} - */ -function createInvestedNetNuplSupplyUnrealizedPattern3(client, acc) { - return { - investedCapitalInLossRelToRealizedCap: createBpsPercentRatioPattern(client, _m(acc, 'invested_capital_in_loss_rel_to_realized_cap')), - investedCapitalInProfitRelToRealizedCap: createBpsPercentRatioPattern(client, _m(acc, 'invested_capital_in_profit_rel_to_realized_cap')), - netUnrealizedPnlRelToMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap')), - netUnrealizedPnlRelToOwnGrossPnl: createBpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_own_gross_pnl')), - netUnrealizedPnlRelToOwnMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_own_market_cap')), - nupl: createMetricPattern1(client, _m(acc, 'nupl')), - supplyInLossRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply')), - supplyInLossRelToOwnSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_own_supply')), - supplyInProfitRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply')), - supplyInProfitRelToOwnSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_own_supply')), - supplyRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_rel_to_circulating_supply')), - unrealizedLossRelToMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_market_cap')), - unrealizedLossRelToOwnGrossPnl: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_own_gross_pnl')), - unrealizedLossRelToOwnMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_own_market_cap')), - unrealizedProfitRelToMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_market_cap')), - unrealizedProfitRelToOwnGrossPnl: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_own_gross_pnl')), - unrealizedProfitRelToOwnMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_own_market_cap')), - }; -} - /** * @typedef {Object} MvrvNegNetRealizedSentSoprValuePattern * @property {MetricPattern1} mvrv @@ -2019,6 +1970,51 @@ function createGreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern(clien }; } +/** + * @typedef {Object} NetNuplSupplyUnrealizedPattern2 + * @property {BpsPercentRatioPattern} netUnrealizedPnlRelToMarketCap + * @property {BpsPercentRatioPattern} netUnrealizedPnlRelToOwnGrossPnl + * @property {BpsPercentRatioPattern} netUnrealizedPnlRelToOwnMarketCap + * @property {MetricPattern1} nupl + * @property {BpsPercentRatioPattern} supplyInLossRelToCirculatingSupply + * @property {BpsPercentRatioPattern} supplyInLossRelToOwnSupply + * @property {BpsPercentRatioPattern} supplyInProfitRelToCirculatingSupply + * @property {BpsPercentRatioPattern} supplyInProfitRelToOwnSupply + * @property {BpsPercentRatioPattern} supplyRelToCirculatingSupply + * @property {BpsPercentRatioPattern} unrealizedLossRelToMarketCap + * @property {BpsPercentRatioPattern} unrealizedLossRelToOwnGrossPnl + * @property {BpsPercentRatioPattern} unrealizedLossRelToOwnMarketCap + * @property {BpsPercentRatioPattern} unrealizedProfitRelToMarketCap + * @property {BpsPercentRatioPattern} unrealizedProfitRelToOwnGrossPnl + * @property {BpsPercentRatioPattern} unrealizedProfitRelToOwnMarketCap + */ + +/** + * Create a NetNuplSupplyUnrealizedPattern2 pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated metric name + * @returns {NetNuplSupplyUnrealizedPattern2} + */ +function createNetNuplSupplyUnrealizedPattern2(client, acc) { + return { + netUnrealizedPnlRelToMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap')), + netUnrealizedPnlRelToOwnGrossPnl: createBpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_own_gross_pnl')), + netUnrealizedPnlRelToOwnMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_own_market_cap')), + nupl: createMetricPattern1(client, _m(acc, 'nupl')), + supplyInLossRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply')), + supplyInLossRelToOwnSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_own_supply')), + supplyInProfitRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply')), + supplyInProfitRelToOwnSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_own_supply')), + supplyRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_rel_to_circulating_supply')), + unrealizedLossRelToMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_market_cap')), + unrealizedLossRelToOwnGrossPnl: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_own_gross_pnl')), + unrealizedLossRelToOwnMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_own_market_cap')), + unrealizedProfitRelToMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_market_cap')), + unrealizedProfitRelToOwnGrossPnl: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_own_gross_pnl')), + unrealizedProfitRelToOwnMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_own_market_cap')), + }; +} + /** * @typedef {Object} RatioPattern * @property {BpsRatioPattern} ratioPct1 @@ -2062,47 +2058,6 @@ function createRatioPattern(client, acc) { }; } -/** - * @typedef {Object} GrossInvestedInvestorNegNetSupplyUnrealizedPattern - * @property {CentsUsdPattern} grossPnl - * @property {CentsUsdPattern} investedCapitalInLoss - * @property {MetricPattern18} investedCapitalInLossRaw - * @property {CentsUsdPattern} investedCapitalInProfit - * @property {MetricPattern18} investedCapitalInProfitRaw - * @property {MetricPattern18} investorCapInLossRaw - * @property {MetricPattern18} investorCapInProfitRaw - * @property {MetricPattern1} negUnrealizedLoss - * @property {CentsUsdPattern} netUnrealizedPnl - * @property {BtcCentsSatsUsdPattern} supplyInLoss - * @property {BtcCentsSatsUsdPattern} supplyInProfit - * @property {CentsUsdPattern} unrealizedLoss - * @property {CentsUsdPattern} unrealizedProfit - */ - -/** - * Create a GrossInvestedInvestorNegNetSupplyUnrealizedPattern pattern node - * @param {BrkClientBase} client - * @param {string} acc - Accumulated metric name - * @returns {GrossInvestedInvestorNegNetSupplyUnrealizedPattern} - */ -function createGrossInvestedInvestorNegNetSupplyUnrealizedPattern(client, acc) { - return { - grossPnl: createCentsUsdPattern(client, _m(acc, 'unrealized_gross_pnl')), - investedCapitalInLoss: createCentsUsdPattern(client, _m(acc, 'invested_capital_in_loss')), - investedCapitalInLossRaw: createMetricPattern18(client, _m(acc, 'invested_capital_in_loss_raw')), - investedCapitalInProfit: createCentsUsdPattern(client, _m(acc, 'invested_capital_in_profit')), - investedCapitalInProfitRaw: createMetricPattern18(client, _m(acc, 'invested_capital_in_profit_raw')), - investorCapInLossRaw: createMetricPattern18(client, _m(acc, 'investor_cap_in_loss_raw')), - investorCapInProfitRaw: createMetricPattern18(client, _m(acc, 'investor_cap_in_profit_raw')), - negUnrealizedLoss: createMetricPattern1(client, _m(acc, 'neg_unrealized_loss')), - netUnrealizedPnl: createCentsUsdPattern(client, _m(acc, 'net_unrealized_pnl')), - supplyInLoss: createBtcCentsSatsUsdPattern(client, _m(acc, 'supply_in_loss')), - supplyInProfit: createBtcCentsSatsUsdPattern(client, _m(acc, 'supply_in_profit')), - unrealizedLoss: createCentsUsdPattern(client, _m(acc, 'unrealized_loss')), - unrealizedProfit: createCentsUsdPattern(client, _m(acc, 'unrealized_profit')), - }; -} - /** * @typedef {Object} _10y1m1w1y2y3m3y4y5y6m6y8yPattern2 * @property {BpsPercentRatioPattern} _10y @@ -2292,43 +2247,6 @@ function createAverageCumulativeHeightMaxMedianMinPct10Pct25Pct75Pct90SumPattern }; } -/** - * @typedef {Object} InvestedNetNuplSupplyUnrealizedPattern - * @property {BpsPercentRatioPattern} investedCapitalInLossRelToRealizedCap - * @property {BpsPercentRatioPattern} investedCapitalInProfitRelToRealizedCap - * @property {BpsPercentRatioPattern} netUnrealizedPnlRelToMarketCap - * @property {MetricPattern1} nupl - * @property {BpsPercentRatioPattern} supplyInLossRelToCirculatingSupply - * @property {BpsPercentRatioPattern} supplyInLossRelToOwnSupply - * @property {BpsPercentRatioPattern} supplyInProfitRelToCirculatingSupply - * @property {BpsPercentRatioPattern} supplyInProfitRelToOwnSupply - * @property {BpsPercentRatioPattern} supplyRelToCirculatingSupply - * @property {BpsPercentRatioPattern} unrealizedLossRelToMarketCap - * @property {BpsPercentRatioPattern} unrealizedProfitRelToMarketCap - */ - -/** - * Create a InvestedNetNuplSupplyUnrealizedPattern pattern node - * @param {BrkClientBase} client - * @param {string} acc - Accumulated metric name - * @returns {InvestedNetNuplSupplyUnrealizedPattern} - */ -function createInvestedNetNuplSupplyUnrealizedPattern(client, acc) { - return { - investedCapitalInLossRelToRealizedCap: createBpsPercentRatioPattern(client, _m(acc, 'invested_capital_in_loss_rel_to_realized_cap')), - investedCapitalInProfitRelToRealizedCap: createBpsPercentRatioPattern(client, _m(acc, 'invested_capital_in_profit_rel_to_realized_cap')), - netUnrealizedPnlRelToMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap')), - nupl: createMetricPattern1(client, _m(acc, 'nupl')), - supplyInLossRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply')), - supplyInLossRelToOwnSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_own_supply')), - supplyInProfitRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply')), - supplyInProfitRelToOwnSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_own_supply')), - supplyRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'supply_rel_to_circulating_supply')), - unrealizedLossRelToMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_market_cap')), - unrealizedProfitRelToMarketCap: createBpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_market_cap')), - }; -} - /** * @typedef {Object} AverageGainsLossesRsiStochPattern * @property {MetricPattern1} averageGain @@ -2364,6 +2282,41 @@ function createAverageGainsLossesRsiStochPattern(client, acc) { }; } +/** + * @typedef {Object} InvestedInvestorNegNetSupplyUnrealizedPattern + * @property {MetricPattern18} investedCapitalInLossRaw + * @property {MetricPattern18} investedCapitalInProfitRaw + * @property {MetricPattern18} investorCapInLossRaw + * @property {MetricPattern18} investorCapInProfitRaw + * @property {MetricPattern1} negUnrealizedLoss + * @property {CentsUsdPattern} netUnrealizedPnl + * @property {BtcCentsSatsUsdPattern} supplyInLoss + * @property {BtcCentsSatsUsdPattern} supplyInProfit + * @property {CentsUsdPattern} unrealizedLoss + * @property {CentsUsdPattern} unrealizedProfit + */ + +/** + * Create a InvestedInvestorNegNetSupplyUnrealizedPattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated metric name + * @returns {InvestedInvestorNegNetSupplyUnrealizedPattern} + */ +function createInvestedInvestorNegNetSupplyUnrealizedPattern(client, acc) { + return { + investedCapitalInLossRaw: createMetricPattern18(client, _m(acc, 'invested_capital_in_loss_raw')), + investedCapitalInProfitRaw: createMetricPattern18(client, _m(acc, 'invested_capital_in_profit_raw')), + investorCapInLossRaw: createMetricPattern18(client, _m(acc, 'investor_cap_in_loss_raw')), + investorCapInProfitRaw: createMetricPattern18(client, _m(acc, 'investor_cap_in_profit_raw')), + negUnrealizedLoss: createMetricPattern1(client, _m(acc, 'neg_unrealized_loss')), + netUnrealizedPnl: createCentsUsdPattern(client, _m(acc, 'net_unrealized_pnl')), + supplyInLoss: createBtcCentsSatsUsdPattern(client, _m(acc, 'supply_in_loss')), + supplyInProfit: createBtcCentsSatsUsdPattern(client, _m(acc, 'supply_in_profit')), + unrealizedLoss: createCentsUsdPattern(client, _m(acc, 'unrealized_loss')), + unrealizedProfit: createCentsUsdPattern(client, _m(acc, 'unrealized_profit')), + }; +} + /** * @typedef {Object} AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern * @property {MetricPattern1} all @@ -2494,37 +2447,6 @@ function create_1m1w1y24hBtcCentsSatsUsdPattern(client, acc) { }; } -/** - * @typedef {Object} ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern - * @property {SentPattern} activity - * @property {MetricPattern1} addrCount - * @property {MetricPattern1} addrCountChange1m - * @property {UtxoPattern} outputs - * @property {MvrvRealizedPattern} realized - * @property {SupplyPattern} relative - * @property {ChangeHalvedTotalPattern} supply - * @property {SupplyPattern2} unrealized - */ - -/** - * Create a ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern pattern node - * @param {BrkClientBase} client - * @param {string} acc - Accumulated metric name - * @returns {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} - */ -function createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, acc) { - return { - activity: createSentPattern(client, _m(acc, 'sent')), - addrCount: createMetricPattern1(client, _m(acc, 'addr_count')), - addrCountChange1m: createMetricPattern1(client, _m(acc, 'addr_count_change_1m')), - outputs: createUtxoPattern(client, _m(acc, 'utxo_count')), - realized: createMvrvRealizedPattern(client, acc), - relative: createSupplyPattern(client, _m(acc, 'supply_in')), - supply: createChangeHalvedTotalPattern(client, _m(acc, 'supply')), - unrealized: createSupplyPattern2(client, _m(acc, 'supply_in')), - }; -} - /** * @template T * @typedef {Object} AverageMaxMedianMinPct10Pct25Pct75Pct90Pattern @@ -2593,9 +2515,9 @@ function create_10y2y3y4y5y6y8yPattern(client, acc) { * @property {MaxMinPattern} costBasis * @property {UtxoPattern} outputs * @property {MvrvNegNetRealizedSentSoprValuePattern} realized - * @property {InvestedNetNuplSupplyUnrealizedPattern} relative + * @property {SupplyPattern2} relative * @property {ChangeHalvedTotalPattern} supply - * @property {GrossInvestedInvestorNegNetSupplyUnrealizedPattern} unrealized + * @property {InvestedInvestorNegNetSupplyUnrealizedPattern} unrealized */ /** @@ -2610,9 +2532,38 @@ function createActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client costBasis: createMaxMinPattern(client, _m(acc, 'cost_basis')), outputs: createUtxoPattern(client, _m(acc, 'utxo_count')), realized: createMvrvNegNetRealizedSentSoprValuePattern(client, acc), - relative: createInvestedNetNuplSupplyUnrealizedPattern(client, acc), + relative: createSupplyPattern2(client, _m(acc, 'supply')), supply: createChangeHalvedTotalPattern(client, _m(acc, 'supply')), - unrealized: createGrossInvestedInvestorNegNetSupplyUnrealizedPattern(client, acc), + unrealized: createInvestedInvestorNegNetSupplyUnrealizedPattern(client, acc), + }; +} + +/** + * @typedef {Object} ActivityAddrOutputsRealizedSupplyUnrealizedPattern + * @property {SentPattern} activity + * @property {MetricPattern1} addrCount + * @property {MetricPattern1} addrCountChange1m + * @property {UtxoPattern} outputs + * @property {MvrvRealizedPattern} realized + * @property {ChangeHalvedTotalPattern} supply + * @property {SupplyPattern} unrealized + */ + +/** + * Create a ActivityAddrOutputsRealizedSupplyUnrealizedPattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated metric name + * @returns {ActivityAddrOutputsRealizedSupplyUnrealizedPattern} + */ +function createActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, acc) { + return { + activity: createSentPattern(client, _m(acc, 'sent')), + addrCount: createMetricPattern1(client, _m(acc, 'addr_count')), + addrCountChange1m: createMetricPattern1(client, _m(acc, 'addr_count_change_1m')), + outputs: createUtxoPattern(client, _m(acc, 'utxo_count')), + realized: createMvrvRealizedPattern(client, acc), + supply: createChangeHalvedTotalPattern(client, _m(acc, 'supply')), + unrealized: createSupplyPattern(client, _m(acc, 'supply_in')), }; } @@ -2645,41 +2596,14 @@ function createMvrvRealizedPattern(client, acc) { }; } -/** - * @typedef {Object} ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 - * @property {SentPattern} activity - * @property {UtxoPattern} outputs - * @property {MvrvNegNetRealizedSentSoprValuePattern} realized - * @property {SupplyPattern3} relative - * @property {ChangeHalvedTotalPattern} supply - * @property {NegNetSupplyUnrealizedPattern} unrealized - */ - -/** - * Create a ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 pattern node - * @param {BrkClientBase} client - * @param {string} acc - Accumulated metric name - * @returns {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} - */ -function createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, acc) { - return { - activity: createSentPattern(client, _m(acc, 'sent')), - outputs: createUtxoPattern(client, _m(acc, 'utxo_count')), - realized: createMvrvNegNetRealizedSentSoprValuePattern(client, acc), - relative: createSupplyPattern3(client, _m(acc, 'supply')), - supply: createChangeHalvedTotalPattern(client, _m(acc, 'supply')), - unrealized: createNegNetSupplyUnrealizedPattern(client, acc), - }; -} - /** * @typedef {Object} ActivityOutputsRealizedRelativeSupplyUnrealizedPattern * @property {SentPattern} activity * @property {UtxoPattern} outputs - * @property {MvrvRealizedPattern} realized - * @property {SupplyPattern} relative + * @property {MvrvNegNetRealizedSentSoprValuePattern} realized + * @property {SupplyPattern2} relative * @property {ChangeHalvedTotalPattern} supply - * @property {SupplyPattern2} unrealized + * @property {NegNetSupplyUnrealizedPattern} unrealized */ /** @@ -2692,10 +2616,10 @@ function createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, ac return { activity: createSentPattern(client, _m(acc, 'sent')), outputs: createUtxoPattern(client, _m(acc, 'utxo_count')), - realized: createMvrvRealizedPattern(client, acc), - relative: createSupplyPattern(client, _m(acc, 'supply_in')), + realized: createMvrvNegNetRealizedSentSoprValuePattern(client, acc), + relative: createSupplyPattern2(client, _m(acc, 'supply')), supply: createChangeHalvedTotalPattern(client, _m(acc, 'supply')), - unrealized: createSupplyPattern2(client, _m(acc, 'supply_in')), + unrealized: createNegNetSupplyUnrealizedPattern(client, acc), }; } @@ -2726,6 +2650,31 @@ function createNegNetSupplyUnrealizedPattern(client, acc) { }; } +/** + * @typedef {Object} ActivityOutputsRealizedSupplyUnrealizedPattern + * @property {SentPattern} activity + * @property {UtxoPattern} outputs + * @property {MvrvRealizedPattern} realized + * @property {ChangeHalvedTotalPattern} supply + * @property {SupplyPattern} unrealized + */ + +/** + * Create a ActivityOutputsRealizedSupplyUnrealizedPattern pattern node + * @param {BrkClientBase} client + * @param {string} acc - Accumulated metric name + * @returns {ActivityOutputsRealizedSupplyUnrealizedPattern} + */ +function createActivityOutputsRealizedSupplyUnrealizedPattern(client, acc) { + return { + activity: createSentPattern(client, _m(acc, 'sent')), + outputs: createUtxoPattern(client, _m(acc, 'utxo_count')), + realized: createMvrvRealizedPattern(client, acc), + supply: createChangeHalvedTotalPattern(client, _m(acc, 'supply')), + unrealized: createSupplyPattern(client, _m(acc, 'supply_in')), + }; +} + /** * @typedef {Object} BaseBtcCentsSatsUsdPattern * @property {MetricPattern1} base @@ -2777,7 +2726,7 @@ function createEmaHistogramLineSignalPattern(client, acc) { } /** - * @typedef {Object} SupplyPattern3 + * @typedef {Object} SupplyPattern2 * @property {BpsPercentRatioPattern} supplyInLossRelToCirculatingSupply * @property {BpsPercentRatioPattern} supplyInLossRelToOwnSupply * @property {BpsPercentRatioPattern} supplyInProfitRelToCirculatingSupply @@ -2786,12 +2735,12 @@ function createEmaHistogramLineSignalPattern(client, acc) { */ /** - * Create a SupplyPattern3 pattern node + * Create a SupplyPattern2 pattern node * @param {BrkClientBase} client * @param {string} acc - Accumulated metric name - * @returns {SupplyPattern3} + * @returns {SupplyPattern2} */ -function createSupplyPattern3(client, acc) { +function createSupplyPattern2(client, acc) { return { supplyInLossRelToCirculatingSupply: createBpsPercentRatioPattern(client, _m(acc, 'in_loss_rel_to_circulating_supply')), supplyInLossRelToOwnSupply: createBpsPercentRatioPattern(client, _m(acc, 'in_loss_rel_to_own_supply')), @@ -3423,30 +3372,11 @@ function createSentPattern(client, acc) { } /** - * @typedef {Object} SupplyPattern2 + * @typedef {Object} SupplyPattern * @property {BtcCentsSatsUsdPattern} supplyInLoss * @property {BtcCentsSatsUsdPattern} supplyInProfit */ -/** - * Create a SupplyPattern2 pattern node - * @param {BrkClientBase} client - * @param {string} acc - Accumulated metric name - * @returns {SupplyPattern2} - */ -function createSupplyPattern2(client, acc) { - return { - supplyInLoss: createBtcCentsSatsUsdPattern(client, _m(acc, 'loss')), - supplyInProfit: createBtcCentsSatsUsdPattern(client, _m(acc, 'profit')), - }; -} - -/** - * @typedef {Object} SupplyPattern - * @property {BpsPercentRatioPattern} supplyInLossRelToOwnSupply - * @property {BpsPercentRatioPattern} supplyInProfitRelToOwnSupply - */ - /** * Create a SupplyPattern pattern node * @param {BrkClientBase} client @@ -3455,8 +3385,8 @@ function createSupplyPattern2(client, acc) { */ function createSupplyPattern(client, acc) { return { - supplyInLossRelToOwnSupply: createBpsPercentRatioPattern(client, _m(acc, 'loss_rel_to_own_supply')), - supplyInProfitRelToOwnSupply: createBpsPercentRatioPattern(client, _m(acc, 'profit_rel_to_own_supply')), + supplyInLoss: createBtcCentsSatsUsdPattern(client, _m(acc, 'loss')), + supplyInProfit: createBtcCentsSatsUsdPattern(client, _m(acc, 'profit')), }; } @@ -4832,8 +4762,6 @@ function create_24hPattern(client, acc) { * @property {BpsPercentRatioPattern} unrealizedLossRelToMarketCap * @property {BpsPercentRatioPattern} netUnrealizedPnlRelToMarketCap * @property {MetricPattern1} nupl - * @property {BpsPercentRatioPattern} investedCapitalInProfitRelToRealizedCap - * @property {BpsPercentRatioPattern} investedCapitalInLossRelToRealizedCap * @property {BpsPercentRatioPattern} supplyInProfitRelToOwnSupply * @property {BpsPercentRatioPattern} supplyInLossRelToOwnSupply * @property {BpsPercentRatioPattern} unrealizedProfitRelToOwnGrossPnl @@ -4849,7 +4777,7 @@ function create_24hPattern(client, acc) { * @property {CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern} realized * @property {InvestedMaxMinPercentilesPattern} costBasis * @property {GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern} unrealized - * @property {InvestedNetNuplSupplyUnrealizedPattern3} relative + * @property {NetNuplSupplyUnrealizedPattern2} relative * @property {MetricPattern1} dormancy * @property {MetricPattern1} velocity * @property {MetricPattern1} adjustedValueCreated @@ -4868,7 +4796,7 @@ function create_24hPattern(client, acc) { * @property {CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern} realized * @property {InvestedMaxMinPercentilesPattern} costBasis * @property {GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern} unrealized - * @property {InvestedNetNuplSupplyUnrealizedPattern3} relative + * @property {NetNuplSupplyUnrealizedPattern2} relative * @property {MetricPattern1} dormancy * @property {MetricPattern1} velocity */ @@ -4900,145 +4828,145 @@ function create_24hPattern(client, acc) { /** * @typedef {Object} MetricsTree_Distribution_UtxoCohorts_MaxAge - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _1w - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _1m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _3m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _4m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _5m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _6m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _1y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _3y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _4y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _5y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _6y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _7y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _8y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _10y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _12y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _15y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1w + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _3m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _4m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _5m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _6m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _3y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _4y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _5y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _6y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _7y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _8y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _12y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _15y */ /** * @typedef {Object} MetricsTree_Distribution_UtxoCohorts_MinAge - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _1d - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _1w - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _1m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _3m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _4m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _5m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _6m - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _1y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _3y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _4y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _5y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _6y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _7y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _8y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _10y - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _12y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1d + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1w + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _3m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _4m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _5m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _6m + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _3y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _4y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _5y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _6y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _7y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _8y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10y + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _12y */ /** * @typedef {Object} MetricsTree_Distribution_UtxoCohorts_Epoch - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _0 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _1 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _3 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _4 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _0 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _3 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _4 */ /** * @typedef {Object} MetricsTree_Distribution_UtxoCohorts_Class - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2009 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2010 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2011 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2012 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2013 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2014 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2015 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2016 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2017 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2018 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2019 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2020 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2021 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2022 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2023 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2024 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2025 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2} _2026 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2009 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2010 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2011 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2012 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2013 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2014 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2015 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2016 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2017 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2018 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2019 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2020 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2021 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2022 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2023 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2024 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2025 + * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _2026 */ /** * @typedef {Object} MetricsTree_Distribution_UtxoCohorts_GeAmount - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1sat - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10sats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100sats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1kSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10kSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100kSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1mSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10mSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1btc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10btc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100btc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1kBtc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1sat + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10kBtc */ /** * @typedef {Object} MetricsTree_Distribution_UtxoCohorts_AmountRange - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _0sats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1satTo10sats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10satsTo100sats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100satsTo1kSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1kSatsTo10kSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10kSatsTo100kSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100kSatsTo1mSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1mSatsTo10mSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10mSatsTo1btc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1btcTo10btc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10btcTo100btc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100btcTo1kBtc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1kBtcTo10kBtc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10kBtcTo100kBtc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100kBtcOrMore + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _0sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1satTo10sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10satsTo100sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100satsTo1kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1kSatsTo10kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10kSatsTo100kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100kSatsTo1mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1mSatsTo10mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10mSatsTo1btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1btcTo10btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10btcTo100btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100btcTo1kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1kBtcTo10kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10kBtcTo100kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100kBtcOrMore */ /** * @typedef {Object} MetricsTree_Distribution_UtxoCohorts_LtAmount - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10sats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100sats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1kSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10kSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100kSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1mSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10mSats - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1btc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10btc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100btc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _1kBtc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _10kBtc - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} _100kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100sats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100kSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10mSats + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100btc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _1kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _10kBtc + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} _100kBtc */ /** * @typedef {Object} MetricsTree_Distribution_UtxoCohorts_Type - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} p2pk65 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} p2pk33 - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} p2pkh - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} p2ms - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} p2sh - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} p2wpkh - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} p2wsh - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} p2tr - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} p2a - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} unknown - * @property {ActivityOutputsRealizedRelativeSupplyUnrealizedPattern} empty + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} p2pk65 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} p2pk33 + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} p2pkh + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} p2ms + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} p2sh + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} p2wpkh + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} p2wsh + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} p2tr + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} p2a + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} unknown + * @property {ActivityOutputsRealizedSupplyUnrealizedPattern} empty */ /** @@ -5050,55 +4978,55 @@ function create_24hPattern(client, acc) { /** * @typedef {Object} MetricsTree_Distribution_AddressCohorts_GeAmount - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1sat - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10sats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100sats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1kSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10kSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100kSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1mSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10mSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1btc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10btc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100btc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1kBtc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10kBtc + * @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} MetricsTree_Distribution_AddressCohorts_AmountRange - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _0sats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1satTo10sats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10satsTo100sats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100satsTo1kSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1kSatsTo10kSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10kSatsTo100kSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100kSatsTo1mSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1mSatsTo10mSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10mSatsTo1btc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1btcTo10btc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10btcTo100btc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100btcTo1kBtc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1kBtcTo10kBtc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10kBtcTo100kBtc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100kBtcOrMore + * @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} _100kBtcOrMore */ /** * @typedef {Object} MetricsTree_Distribution_AddressCohorts_LtAmount - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10sats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100sats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1kSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10kSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100kSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1mSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10mSats - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1btc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10btc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100btc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _1kBtc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _10kBtc - * @property {ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern} _100kBtc + * @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 */ /** @@ -7045,8 +6973,6 @@ class BrkClient extends BrkClientBase { unrealizedLossRelToMarketCap: createBpsPercentRatioPattern(this, 'unrealized_loss_rel_to_market_cap'), netUnrealizedPnlRelToMarketCap: createBpsPercentRatioPattern(this, 'net_unrealized_pnl_rel_to_market_cap'), nupl: createMetricPattern1(this, 'nupl'), - investedCapitalInProfitRelToRealizedCap: createBpsPercentRatioPattern(this, 'invested_capital_in_profit_rel_to_realized_cap'), - investedCapitalInLossRelToRealizedCap: createBpsPercentRatioPattern(this, 'invested_capital_in_loss_rel_to_realized_cap'), supplyInProfitRelToOwnSupply: createBpsPercentRatioPattern(this, 'supply_in_profit_rel_to_own_supply'), supplyInLossRelToOwnSupply: createBpsPercentRatioPattern(this, 'supply_in_loss_rel_to_own_supply'), unrealizedProfitRelToOwnGrossPnl: createBpsPercentRatioPattern(this, 'unrealized_profit_rel_to_own_gross_pnl'), @@ -7063,7 +6989,7 @@ class BrkClient extends BrkClientBase { realized: createCapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern(this, 'sth'), costBasis: createInvestedMaxMinPercentilesPattern(this, 'sth'), unrealized: createGreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern(this, 'sth'), - relative: createInvestedNetNuplSupplyUnrealizedPattern3(this, 'sth'), + relative: createNetNuplSupplyUnrealizedPattern2(this, 'sth'), dormancy: createMetricPattern1(this, 'sth_dormancy'), velocity: createMetricPattern1(this, 'sth_velocity'), adjustedValueCreated: createMetricPattern1(this, 'sth_adjusted_value_created'), @@ -7080,7 +7006,7 @@ class BrkClient extends BrkClientBase { realized: createCapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern(this, 'lth'), costBasis: createInvestedMaxMinPercentilesPattern(this, 'lth'), unrealized: createGreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern(this, 'lth'), - relative: createInvestedNetNuplSupplyUnrealizedPattern3(this, 'lth'), + relative: createNetNuplSupplyUnrealizedPattern2(this, 'lth'), dormancy: createMetricPattern1(this, 'lth_dormancy'), velocity: createMetricPattern1(this, 'lth_velocity'), }, @@ -7108,180 +7034,180 @@ class BrkClient extends BrkClientBase { from15y: createActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_15y_old'), }, maxAge: { - _1w: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_1w_old'), - _1m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_1m_old'), - _2m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_2m_old'), - _3m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_3m_old'), - _4m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_4m_old'), - _5m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_5m_old'), - _6m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_6m_old'), - _1y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_1y_old'), - _2y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_2y_old'), - _3y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_3y_old'), - _4y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_4y_old'), - _5y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_5y_old'), - _6y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_6y_old'), - _7y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_7y_old'), - _8y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_8y_old'), - _10y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_10y_old'), - _12y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_12y_old'), - _15y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_under_15y_old'), + _1w: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_1w_old'), + _1m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_1m_old'), + _2m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_2m_old'), + _3m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_3m_old'), + _4m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_4m_old'), + _5m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_5m_old'), + _6m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_6m_old'), + _1y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_1y_old'), + _2y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_2y_old'), + _3y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_3y_old'), + _4y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_4y_old'), + _5y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_5y_old'), + _6y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_6y_old'), + _7y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_7y_old'), + _8y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_8y_old'), + _10y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_10y_old'), + _12y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_12y_old'), + _15y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_15y_old'), }, minAge: { - _1d: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_1d_old'), - _1w: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_1w_old'), - _1m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_1m_old'), - _2m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_2m_old'), - _3m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_3m_old'), - _4m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_4m_old'), - _5m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_5m_old'), - _6m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_6m_old'), - _1y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_1y_old'), - _2y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_2y_old'), - _3y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_3y_old'), - _4y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_4y_old'), - _5y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_5y_old'), - _6y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_6y_old'), - _7y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_7y_old'), - _8y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_8y_old'), - _10y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_10y_old'), - _12y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'utxos_over_12y_old'), + _1d: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_1d_old'), + _1w: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_1w_old'), + _1m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_1m_old'), + _2m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_2m_old'), + _3m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_3m_old'), + _4m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_4m_old'), + _5m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_5m_old'), + _6m: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_6m_old'), + _1y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_1y_old'), + _2y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_2y_old'), + _3y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_3y_old'), + _4y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_4y_old'), + _5y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_5y_old'), + _6y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_6y_old'), + _7y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_7y_old'), + _8y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_8y_old'), + _10y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_10y_old'), + _12y: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_12y_old'), }, epoch: { - _0: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'epoch_0'), - _1: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'epoch_1'), - _2: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'epoch_2'), - _3: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'epoch_3'), - _4: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'epoch_4'), + _0: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'epoch_0'), + _1: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'epoch_1'), + _2: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'epoch_2'), + _3: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'epoch_3'), + _4: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'epoch_4'), }, class: { - _2009: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2009'), - _2010: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2010'), - _2011: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2011'), - _2012: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2012'), - _2013: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2013'), - _2014: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2014'), - _2015: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2015'), - _2016: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2016'), - _2017: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2017'), - _2018: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2018'), - _2019: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2019'), - _2020: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2020'), - _2021: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2021'), - _2022: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2022'), - _2023: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2023'), - _2024: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2024'), - _2025: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2025'), - _2026: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(this, 'class_2026'), + _2009: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2009'), + _2010: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2010'), + _2011: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2011'), + _2012: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2012'), + _2013: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2013'), + _2014: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2014'), + _2015: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2015'), + _2016: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2016'), + _2017: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2017'), + _2018: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2018'), + _2019: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2019'), + _2020: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2020'), + _2021: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2021'), + _2022: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2022'), + _2023: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2023'), + _2024: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2024'), + _2025: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2025'), + _2026: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'class_2026'), }, geAmount: { - _1sat: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_1sat'), - _10sats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_10sats'), - _100sats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_100sats'), - _1kSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_1k_sats'), - _10kSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_10k_sats'), - _100kSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_100k_sats'), - _1mSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_1m_sats'), - _10mSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_10m_sats'), - _1btc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_1btc'), - _10btc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_10btc'), - _100btc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_100btc'), - _1kBtc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_1k_btc'), - _10kBtc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_over_10k_btc'), + _1sat: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_1sat'), + _10sats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_10sats'), + _100sats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_100sats'), + _1kSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_1k_sats'), + _10kSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_10k_sats'), + _100kSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_100k_sats'), + _1mSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_1m_sats'), + _10mSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_10m_sats'), + _1btc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_1btc'), + _10btc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_10btc'), + _100btc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_100btc'), + _1kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_1k_btc'), + _10kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_over_10k_btc'), }, amountRange: { - _0sats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_with_0sats'), - _1satTo10sats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_1sat_under_10sats'), - _10satsTo100sats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_10sats_under_100sats'), - _100satsTo1kSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_100sats_under_1k_sats'), - _1kSatsTo10kSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_1k_sats_under_10k_sats'), - _10kSatsTo100kSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_10k_sats_under_100k_sats'), - _100kSatsTo1mSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_100k_sats_under_1m_sats'), - _1mSatsTo10mSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_1m_sats_under_10m_sats'), - _10mSatsTo1btc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_10m_sats_under_1btc'), - _1btcTo10btc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_1btc_under_10btc'), - _10btcTo100btc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_10btc_under_100btc'), - _100btcTo1kBtc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_100btc_under_1k_btc'), - _1kBtcTo10kBtc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_1k_btc_under_10k_btc'), - _10kBtcTo100kBtc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_10k_btc_under_100k_btc'), - _100kBtcOrMore: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_above_100k_btc'), + _0sats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_with_0sats'), + _1satTo10sats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_1sat_under_10sats'), + _10satsTo100sats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_10sats_under_100sats'), + _100satsTo1kSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_100sats_under_1k_sats'), + _1kSatsTo10kSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_1k_sats_under_10k_sats'), + _10kSatsTo100kSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_10k_sats_under_100k_sats'), + _100kSatsTo1mSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_100k_sats_under_1m_sats'), + _1mSatsTo10mSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_1m_sats_under_10m_sats'), + _10mSatsTo1btc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_10m_sats_under_1btc'), + _1btcTo10btc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_1btc_under_10btc'), + _10btcTo100btc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_10btc_under_100btc'), + _100btcTo1kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_100btc_under_1k_btc'), + _1kBtcTo10kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_1k_btc_under_10k_btc'), + _10kBtcTo100kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_10k_btc_under_100k_btc'), + _100kBtcOrMore: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_above_100k_btc'), }, ltAmount: { - _10sats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_10sats'), - _100sats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_100sats'), - _1kSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_1k_sats'), - _10kSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_10k_sats'), - _100kSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_100k_sats'), - _1mSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_1m_sats'), - _10mSats: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_10m_sats'), - _1btc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_1btc'), - _10btc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_10btc'), - _100btc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_100btc'), - _1kBtc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_1k_btc'), - _10kBtc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_10k_btc'), - _100kBtc: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'utxos_under_100k_btc'), + _10sats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_10sats'), + _100sats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_100sats'), + _1kSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_1k_sats'), + _10kSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_10k_sats'), + _100kSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_100k_sats'), + _1mSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_1m_sats'), + _10mSats: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_10m_sats'), + _1btc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_1btc'), + _10btc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_10btc'), + _100btc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_100btc'), + _1kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_1k_btc'), + _10kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_10k_btc'), + _100kBtc: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'utxos_under_100k_btc'), }, type: { - p2pk65: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'p2pk65'), - p2pk33: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'p2pk33'), - p2pkh: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'p2pkh'), - p2ms: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'p2ms'), - p2sh: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'p2sh'), - p2wpkh: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'p2wpkh'), - p2wsh: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'p2wsh'), - p2tr: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'p2tr'), - p2a: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'p2a'), - unknown: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'unknown_outputs'), - empty: createActivityOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'empty_outputs'), + p2pk65: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'p2pk65'), + p2pk33: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'p2pk33'), + p2pkh: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'p2pkh'), + p2ms: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'p2ms'), + p2sh: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'p2sh'), + p2wpkh: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'p2wpkh'), + p2wsh: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'p2wsh'), + p2tr: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'p2tr'), + p2a: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'p2a'), + unknown: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'unknown_outputs'), + empty: createActivityOutputsRealizedSupplyUnrealizedPattern(this, 'empty_outputs'), }, }, addressCohorts: { geAmount: { - _1sat: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_1sat'), - _10sats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_10sats'), - _100sats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_100sats'), - _1kSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_1k_sats'), - _10kSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_10k_sats'), - _100kSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_100k_sats'), - _1mSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_1m_sats'), - _10mSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_10m_sats'), - _1btc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_1btc'), - _10btc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_10btc'), - _100btc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_100btc'), - _1kBtc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_1k_btc'), - _10kBtc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_over_10k_btc'), + _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: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_with_0sats'), - _1satTo10sats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_1sat_under_10sats'), - _10satsTo100sats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_10sats_under_100sats'), - _100satsTo1kSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_100sats_under_1k_sats'), - _1kSatsTo10kSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_1k_sats_under_10k_sats'), - _10kSatsTo100kSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_10k_sats_under_100k_sats'), - _100kSatsTo1mSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_100k_sats_under_1m_sats'), - _1mSatsTo10mSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_1m_sats_under_10m_sats'), - _10mSatsTo1btc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_10m_sats_under_1btc'), - _1btcTo10btc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_1btc_under_10btc'), - _10btcTo100btc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_10btc_under_100btc'), - _100btcTo1kBtc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_100btc_under_1k_btc'), - _1kBtcTo10kBtc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_1k_btc_under_10k_btc'), - _10kBtcTo100kBtc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_10k_btc_under_100k_btc'), - _100kBtcOrMore: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_above_100k_btc'), + _0sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_with_0sats'), + _1satTo10sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_1sat_under_10sats'), + _10satsTo100sats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_10sats_under_100sats'), + _100satsTo1kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_100sats_under_1k_sats'), + _1kSatsTo10kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_1k_sats_under_10k_sats'), + _10kSatsTo100kSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_10k_sats_under_100k_sats'), + _100kSatsTo1mSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_100k_sats_under_1m_sats'), + _1mSatsTo10mSats: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_1m_sats_under_10m_sats'), + _10mSatsTo1btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_10m_sats_under_1btc'), + _1btcTo10btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_1btc_under_10btc'), + _10btcTo100btc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_10btc_under_100btc'), + _100btcTo1kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_100btc_under_1k_btc'), + _1kBtcTo10kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_1k_btc_under_10k_btc'), + _10kBtcTo100kBtc: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_10k_btc_under_100k_btc'), + _100kBtcOrMore: createActivityAddrOutputsRealizedSupplyUnrealizedPattern(this, 'addrs_above_100k_btc'), }, ltAmount: { - _10sats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_10sats'), - _100sats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_100sats'), - _1kSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_1k_sats'), - _10kSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_10k_sats'), - _100kSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_100k_sats'), - _1mSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_1m_sats'), - _10mSats: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_10m_sats'), - _1btc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_1btc'), - _10btc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_10btc'), - _100btc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_100btc'), - _1kBtc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_1k_btc'), - _10kBtc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_10k_btc'), - _100kBtc: createActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(this, 'addrs_under_100k_btc'), + _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'), }, }, addrCount: createAllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern(this, 'addr_count'), diff --git a/packages/brk_client/brk_client/__init__.py b/packages/brk_client/brk_client/__init__.py index 8fc15e5de..099663950 100644 --- a/packages/brk_client/brk_client/__init__.py +++ b/packages/brk_client/brk_client/__init__.py @@ -2188,29 +2188,6 @@ class Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct7 self.pct90: CentsSatsUsdPattern = CentsSatsUsdPattern(client, _m(acc, 'pct90')) self.pct95: CentsSatsUsdPattern = CentsSatsUsdPattern(client, _m(acc, 'pct95')) -class InvestedNetNuplSupplyUnrealizedPattern3: - """Pattern struct for repeated tree structure.""" - - def __init__(self, client: BrkClientBase, acc: str): - """Create pattern node with accumulated metric name.""" - self.invested_capital_in_loss_rel_to_realized_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'invested_capital_in_loss_rel_to_realized_cap')) - self.invested_capital_in_profit_rel_to_realized_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'invested_capital_in_profit_rel_to_realized_cap')) - self.net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap')) - self.net_unrealized_pnl_rel_to_own_gross_pnl: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_own_gross_pnl')) - self.net_unrealized_pnl_rel_to_own_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_own_market_cap')) - self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl')) - self.supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply')) - self.supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_own_supply')) - self.supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply')) - self.supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_own_supply')) - self.supply_rel_to_circulating_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_rel_to_circulating_supply')) - self.unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_market_cap')) - self.unrealized_loss_rel_to_own_gross_pnl: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_own_gross_pnl')) - self.unrealized_loss_rel_to_own_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_own_market_cap')) - self.unrealized_profit_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_market_cap')) - self.unrealized_profit_rel_to_own_gross_pnl: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_own_gross_pnl')) - self.unrealized_profit_rel_to_own_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_own_market_cap')) - class MvrvNegNetRealizedSentSoprValuePattern: """Pattern struct for repeated tree structure.""" @@ -2278,6 +2255,27 @@ class GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern: self.unrealized_loss: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'unrealized_loss')) self.unrealized_profit: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'unrealized_profit')) +class NetNuplSupplyUnrealizedPattern2: + """Pattern struct for repeated tree structure.""" + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated metric name.""" + self.net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap')) + self.net_unrealized_pnl_rel_to_own_gross_pnl: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_own_gross_pnl')) + self.net_unrealized_pnl_rel_to_own_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_own_market_cap')) + self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl')) + self.supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply')) + self.supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_own_supply')) + self.supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply')) + self.supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_own_supply')) + self.supply_rel_to_circulating_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_rel_to_circulating_supply')) + self.unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_market_cap')) + self.unrealized_loss_rel_to_own_gross_pnl: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_own_gross_pnl')) + self.unrealized_loss_rel_to_own_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_own_market_cap')) + self.unrealized_profit_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_market_cap')) + self.unrealized_profit_rel_to_own_gross_pnl: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_own_gross_pnl')) + self.unrealized_profit_rel_to_own_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_own_market_cap')) + class RatioPattern: """Pattern struct for repeated tree structure.""" @@ -2298,25 +2296,6 @@ class RatioPattern: self.ratio_sma_1m: BpsRatioPattern = BpsRatioPattern(client, _m(acc, 'sma_1m')) self.ratio_sma_1w: BpsRatioPattern = BpsRatioPattern(client, _m(acc, 'sma_1w')) -class GrossInvestedInvestorNegNetSupplyUnrealizedPattern: - """Pattern struct for repeated tree structure.""" - - def __init__(self, client: BrkClientBase, acc: str): - """Create pattern node with accumulated metric name.""" - self.gross_pnl: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'unrealized_gross_pnl')) - self.invested_capital_in_loss: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'invested_capital_in_loss')) - self.invested_capital_in_loss_raw: MetricPattern18[CentsSats] = MetricPattern18(client, _m(acc, 'invested_capital_in_loss_raw')) - self.invested_capital_in_profit: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'invested_capital_in_profit')) - self.invested_capital_in_profit_raw: MetricPattern18[CentsSats] = MetricPattern18(client, _m(acc, 'invested_capital_in_profit_raw')) - self.investor_cap_in_loss_raw: MetricPattern18[CentsSquaredSats] = MetricPattern18(client, _m(acc, 'investor_cap_in_loss_raw')) - self.investor_cap_in_profit_raw: MetricPattern18[CentsSquaredSats] = MetricPattern18(client, _m(acc, 'investor_cap_in_profit_raw')) - self.neg_unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss')) - self.net_unrealized_pnl: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'net_unrealized_pnl')) - self.supply_in_loss: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'supply_in_loss')) - self.supply_in_profit: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'supply_in_profit')) - self.unrealized_loss: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'unrealized_loss')) - self.unrealized_profit: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'unrealized_profit')) - class _10y1m1w1y2y3m3y4y5y6m6y8yPattern2: """Pattern struct for repeated tree structure.""" @@ -2404,23 +2383,6 @@ class AverageCumulativeHeightMaxMedianMinPct10Pct25Pct75Pct90SumPattern: self.pct90: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'p90')) self.sum: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'sum')) -class InvestedNetNuplSupplyUnrealizedPattern: - """Pattern struct for repeated tree structure.""" - - def __init__(self, client: BrkClientBase, acc: str): - """Create pattern node with accumulated metric name.""" - self.invested_capital_in_loss_rel_to_realized_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'invested_capital_in_loss_rel_to_realized_cap')) - self.invested_capital_in_profit_rel_to_realized_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'invested_capital_in_profit_rel_to_realized_cap')) - self.net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap')) - self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl')) - self.supply_in_loss_rel_to_circulating_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply')) - self.supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_loss_rel_to_own_supply')) - self.supply_in_profit_rel_to_circulating_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply')) - self.supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_in_profit_rel_to_own_supply')) - self.supply_rel_to_circulating_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'supply_rel_to_circulating_supply')) - self.unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_loss_rel_to_market_cap')) - self.unrealized_profit_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'unrealized_profit_rel_to_market_cap')) - class AverageGainsLossesRsiStochPattern: """Pattern struct for repeated tree structure.""" @@ -2437,6 +2399,22 @@ class AverageGainsLossesRsiStochPattern: self.stoch_rsi_d: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'stoch_d_24h')) self.stoch_rsi_k: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'stoch_k_24h')) +class InvestedInvestorNegNetSupplyUnrealizedPattern: + """Pattern struct for repeated tree structure.""" + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated metric name.""" + self.invested_capital_in_loss_raw: MetricPattern18[CentsSats] = MetricPattern18(client, _m(acc, 'invested_capital_in_loss_raw')) + self.invested_capital_in_profit_raw: MetricPattern18[CentsSats] = MetricPattern18(client, _m(acc, 'invested_capital_in_profit_raw')) + self.investor_cap_in_loss_raw: MetricPattern18[CentsSquaredSats] = MetricPattern18(client, _m(acc, 'investor_cap_in_loss_raw')) + self.investor_cap_in_profit_raw: MetricPattern18[CentsSquaredSats] = MetricPattern18(client, _m(acc, 'investor_cap_in_profit_raw')) + self.neg_unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss')) + self.net_unrealized_pnl: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'net_unrealized_pnl')) + self.supply_in_loss: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'supply_in_loss')) + self.supply_in_profit: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'supply_in_profit')) + self.unrealized_loss: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'unrealized_loss')) + self.unrealized_profit: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'unrealized_profit')) + class AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern: """Pattern struct for repeated tree structure.""" @@ -2496,20 +2474,6 @@ class _1m1w1y24hBtcCentsSatsUsdPattern: self.sats: MetricPattern18[Sats] = MetricPattern18(client, acc) self.usd: MetricPattern18[Dollars] = MetricPattern18(client, _m(acc, 'usd')) -class ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern: - """Pattern struct for repeated tree structure.""" - - def __init__(self, client: BrkClientBase, acc: str): - """Create pattern node with accumulated metric name.""" - self.activity: SentPattern = SentPattern(client, _m(acc, 'sent')) - self.addr_count: MetricPattern1[StoredU64] = MetricPattern1(client, _m(acc, 'addr_count')) - self.addr_count_change_1m: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'addr_count_change_1m')) - self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count')) - self.realized: MvrvRealizedPattern = MvrvRealizedPattern(client, acc) - self.relative: SupplyPattern = SupplyPattern(client, _m(acc, 'supply_in')) - self.supply: ChangeHalvedTotalPattern = ChangeHalvedTotalPattern(client, _m(acc, 'supply')) - self.unrealized: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply_in')) - class AverageMaxMedianMinPct10Pct25Pct75Pct90Pattern(Generic[T]): """Pattern struct for repeated tree structure.""" @@ -2546,9 +2510,22 @@ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern: self.cost_basis: MaxMinPattern = MaxMinPattern(client, _m(acc, 'cost_basis')) self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count')) self.realized: MvrvNegNetRealizedSentSoprValuePattern = MvrvNegNetRealizedSentSoprValuePattern(client, acc) - self.relative: InvestedNetNuplSupplyUnrealizedPattern = InvestedNetNuplSupplyUnrealizedPattern(client, acc) + self.relative: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply')) self.supply: ChangeHalvedTotalPattern = ChangeHalvedTotalPattern(client, _m(acc, 'supply')) - self.unrealized: GrossInvestedInvestorNegNetSupplyUnrealizedPattern = GrossInvestedInvestorNegNetSupplyUnrealizedPattern(client, acc) + self.unrealized: InvestedInvestorNegNetSupplyUnrealizedPattern = InvestedInvestorNegNetSupplyUnrealizedPattern(client, acc) + +class ActivityAddrOutputsRealizedSupplyUnrealizedPattern: + """Pattern struct for repeated tree structure.""" + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated metric name.""" + self.activity: SentPattern = SentPattern(client, _m(acc, 'sent')) + self.addr_count: MetricPattern1[StoredU64] = MetricPattern1(client, _m(acc, 'addr_count')) + self.addr_count_change_1m: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'addr_count_change_1m')) + self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count')) + self.realized: MvrvRealizedPattern = MvrvRealizedPattern(client, acc) + self.supply: ChangeHalvedTotalPattern = ChangeHalvedTotalPattern(client, _m(acc, 'supply')) + self.unrealized: SupplyPattern = SupplyPattern(client, _m(acc, 'supply_in')) class MvrvRealizedPattern: """Pattern struct for repeated tree structure.""" @@ -2563,18 +2540,6 @@ class MvrvRealizedPattern: self.realized_price_ratio: BpsRatioPattern = BpsRatioPattern(client, _m(acc, 'realized_price_ratio')) self.realized_profit: CumulativeHeightPattern[Cents] = CumulativeHeightPattern(client, _m(acc, 'realized_profit')) -class ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2: - """Pattern struct for repeated tree structure.""" - - def __init__(self, client: BrkClientBase, acc: str): - """Create pattern node with accumulated metric name.""" - self.activity: SentPattern = SentPattern(client, _m(acc, 'sent')) - self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count')) - self.realized: MvrvNegNetRealizedSentSoprValuePattern = MvrvNegNetRealizedSentSoprValuePattern(client, acc) - self.relative: SupplyPattern3 = SupplyPattern3(client, _m(acc, 'supply')) - self.supply: ChangeHalvedTotalPattern = ChangeHalvedTotalPattern(client, _m(acc, 'supply')) - self.unrealized: NegNetSupplyUnrealizedPattern = NegNetSupplyUnrealizedPattern(client, acc) - class ActivityOutputsRealizedRelativeSupplyUnrealizedPattern: """Pattern struct for repeated tree structure.""" @@ -2582,10 +2547,10 @@ class ActivityOutputsRealizedRelativeSupplyUnrealizedPattern: """Create pattern node with accumulated metric name.""" self.activity: SentPattern = SentPattern(client, _m(acc, 'sent')) self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count')) - self.realized: MvrvRealizedPattern = MvrvRealizedPattern(client, acc) - self.relative: SupplyPattern = SupplyPattern(client, _m(acc, 'supply_in')) + self.realized: MvrvNegNetRealizedSentSoprValuePattern = MvrvNegNetRealizedSentSoprValuePattern(client, acc) + self.relative: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply')) self.supply: ChangeHalvedTotalPattern = ChangeHalvedTotalPattern(client, _m(acc, 'supply')) - self.unrealized: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply_in')) + self.unrealized: NegNetSupplyUnrealizedPattern = NegNetSupplyUnrealizedPattern(client, acc) class NegNetSupplyUnrealizedPattern: """Pattern struct for repeated tree structure.""" @@ -2599,6 +2564,17 @@ class NegNetSupplyUnrealizedPattern: self.unrealized_loss: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'unrealized_loss')) self.unrealized_profit: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'unrealized_profit')) +class ActivityOutputsRealizedSupplyUnrealizedPattern: + """Pattern struct for repeated tree structure.""" + + def __init__(self, client: BrkClientBase, acc: str): + """Create pattern node with accumulated metric name.""" + self.activity: SentPattern = SentPattern(client, _m(acc, 'sent')) + self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count')) + self.realized: MvrvRealizedPattern = MvrvRealizedPattern(client, acc) + self.supply: ChangeHalvedTotalPattern = ChangeHalvedTotalPattern(client, _m(acc, 'supply')) + self.unrealized: SupplyPattern = SupplyPattern(client, _m(acc, 'supply_in')) + class BaseBtcCentsSatsUsdPattern: """Pattern struct for repeated tree structure.""" @@ -2621,7 +2597,7 @@ class EmaHistogramLineSignalPattern: self.line: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'line_24h')) self.signal: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'signal_24h')) -class SupplyPattern3: +class SupplyPattern2: """Pattern struct for repeated tree structure.""" def __init__(self, client: BrkClientBase, acc: str): @@ -2894,7 +2870,7 @@ class SentPattern: self.sent: BaseCumulativePattern = BaseCumulativePattern(client, acc) self.sent_ema: _2wPattern = _2wPattern(client, _m(acc, 'ema_2w')) -class SupplyPattern2: +class SupplyPattern: """Pattern struct for repeated tree structure.""" def __init__(self, client: BrkClientBase, acc: str): @@ -2902,14 +2878,6 @@ class SupplyPattern2: self.supply_in_loss: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'loss')) self.supply_in_profit: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'profit')) -class SupplyPattern: - """Pattern struct for repeated tree structure.""" - - def __init__(self, client: BrkClientBase, acc: str): - """Create pattern node with accumulated metric name.""" - self.supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'loss_rel_to_own_supply')) - self.supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'profit_rel_to_own_supply')) - class UtxoPattern: """Pattern struct for repeated tree structure.""" @@ -4277,8 +4245,6 @@ class MetricsTree_Distribution_UtxoCohorts_All_Relative: self.unrealized_loss_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, 'unrealized_loss_rel_to_market_cap') self.net_unrealized_pnl_rel_to_market_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, 'net_unrealized_pnl_rel_to_market_cap') self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, 'nupl') - self.invested_capital_in_profit_rel_to_realized_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, 'invested_capital_in_profit_rel_to_realized_cap') - self.invested_capital_in_loss_rel_to_realized_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, 'invested_capital_in_loss_rel_to_realized_cap') self.supply_in_profit_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, 'supply_in_profit_rel_to_own_supply') self.supply_in_loss_rel_to_own_supply: BpsPercentRatioPattern = BpsPercentRatioPattern(client, 'supply_in_loss_rel_to_own_supply') self.unrealized_profit_rel_to_own_gross_pnl: BpsPercentRatioPattern = BpsPercentRatioPattern(client, 'unrealized_profit_rel_to_own_gross_pnl') @@ -4310,7 +4276,7 @@ class MetricsTree_Distribution_UtxoCohorts_Sth: self.realized: CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern = CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern(client, 'sth') self.cost_basis: InvestedMaxMinPercentilesPattern = InvestedMaxMinPercentilesPattern(client, 'sth') self.unrealized: GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern = GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern(client, 'sth') - self.relative: InvestedNetNuplSupplyUnrealizedPattern3 = InvestedNetNuplSupplyUnrealizedPattern3(client, 'sth') + self.relative: NetNuplSupplyUnrealizedPattern2 = NetNuplSupplyUnrealizedPattern2(client, 'sth') self.dormancy: MetricPattern1[StoredF32] = MetricPattern1(client, 'sth_dormancy') self.velocity: MetricPattern1[StoredF32] = MetricPattern1(client, 'sth_velocity') self.adjusted_value_created: MetricPattern1[Cents] = MetricPattern1(client, 'sth_adjusted_value_created') @@ -4330,7 +4296,7 @@ class MetricsTree_Distribution_UtxoCohorts_Lth: self.realized: CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern = CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSoprUpperValuePattern(client, 'lth') self.cost_basis: InvestedMaxMinPercentilesPattern = InvestedMaxMinPercentilesPattern(client, 'lth') self.unrealized: GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern = GreedGrossInvestedInvestorNegNetPainSupplyUnrealizedPattern(client, 'lth') - self.relative: InvestedNetNuplSupplyUnrealizedPattern3 = InvestedNetNuplSupplyUnrealizedPattern3(client, 'lth') + self.relative: NetNuplSupplyUnrealizedPattern2 = NetNuplSupplyUnrealizedPattern2(client, 'lth') self.dormancy: MetricPattern1[StoredF32] = MetricPattern1(client, 'lth_dormancy') self.velocity: MetricPattern1[StoredF32] = MetricPattern1(client, 'lth_velocity') @@ -4364,152 +4330,152 @@ class MetricsTree_Distribution_UtxoCohorts_MaxAge: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_1w_old') - self._1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_1m_old') - self._2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_2m_old') - self._3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_3m_old') - self._4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_4m_old') - self._5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_5m_old') - self._6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_6m_old') - self._1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_1y_old') - self._2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_2y_old') - self._3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_3y_old') - self._4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_4y_old') - self._5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_5y_old') - self._6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_6y_old') - self._7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_7y_old') - self._8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_8y_old') - self._10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_10y_old') - self._12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_12y_old') - self._15y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_under_15y_old') + self._1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_1w_old') + self._1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_1m_old') + self._2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_2m_old') + self._3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_3m_old') + self._4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_4m_old') + self._5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_5m_old') + self._6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_6m_old') + self._1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_1y_old') + self._2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_2y_old') + self._3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_3y_old') + self._4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_4y_old') + self._5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_5y_old') + self._6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_6y_old') + self._7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_7y_old') + self._8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_8y_old') + self._10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_10y_old') + self._12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_12y_old') + self._15y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_15y_old') class MetricsTree_Distribution_UtxoCohorts_MinAge: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._1d: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_1d_old') - self._1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_1w_old') - self._1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_1m_old') - self._2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_2m_old') - self._3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_3m_old') - self._4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_4m_old') - self._5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_5m_old') - self._6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_6m_old') - self._1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_1y_old') - self._2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_2y_old') - self._3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_3y_old') - self._4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_4y_old') - self._5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_5y_old') - self._6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_6y_old') - self._7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_7y_old') - self._8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_8y_old') - self._10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_10y_old') - self._12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'utxos_over_12y_old') + self._1d: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_1d_old') + self._1w: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_1w_old') + self._1m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_1m_old') + self._2m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_2m_old') + self._3m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_3m_old') + self._4m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_4m_old') + self._5m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_5m_old') + self._6m: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_6m_old') + self._1y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_1y_old') + self._2y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_2y_old') + self._3y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_3y_old') + self._4y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_4y_old') + self._5y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_5y_old') + self._6y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_6y_old') + self._7y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_7y_old') + self._8y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_8y_old') + self._10y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_10y_old') + self._12y: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_12y_old') class MetricsTree_Distribution_UtxoCohorts_Epoch: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._0: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'epoch_0') - self._1: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'epoch_1') - self._2: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'epoch_2') - self._3: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'epoch_3') - self._4: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'epoch_4') + self._0: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'epoch_0') + self._1: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'epoch_1') + self._2: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'epoch_2') + self._3: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'epoch_3') + self._4: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'epoch_4') class MetricsTree_Distribution_UtxoCohorts_Class: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._2009: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2009') - self._2010: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2010') - self._2011: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2011') - self._2012: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2012') - self._2013: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2013') - self._2014: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2014') - self._2015: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2015') - self._2016: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2016') - self._2017: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2017') - self._2018: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2018') - self._2019: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2019') - self._2020: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2020') - self._2021: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2021') - self._2022: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2022') - self._2023: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2023') - self._2024: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2024') - self._2025: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2025') - self._2026: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2 = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern2(client, 'class_2026') + self._2009: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2009') + self._2010: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2010') + self._2011: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2011') + self._2012: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2012') + self._2013: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2013') + self._2014: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2014') + self._2015: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2015') + self._2016: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2016') + self._2017: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2017') + self._2018: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2018') + self._2019: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2019') + self._2020: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2020') + self._2021: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2021') + self._2022: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2022') + self._2023: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2023') + self._2024: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2024') + self._2025: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2025') + self._2026: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'class_2026') class MetricsTree_Distribution_UtxoCohorts_GeAmount: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._1sat: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_1sat') - self._10sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_10sats') - self._100sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_100sats') - self._1k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_1k_sats') - self._10k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_10k_sats') - self._100k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_100k_sats') - self._1m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_1m_sats') - self._10m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_10m_sats') - self._1btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_1btc') - self._10btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_10btc') - self._100btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_100btc') - self._1k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_1k_btc') - self._10k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_10k_btc') + self._1sat: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_1sat') + self._10sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_10sats') + self._100sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_100sats') + self._1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_1k_sats') + self._10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_10k_sats') + self._100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_100k_sats') + self._1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_1m_sats') + self._10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_10m_sats') + self._1btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_1btc') + self._10btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_10btc') + self._100btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_100btc') + self._1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_1k_btc') + self._10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_over_10k_btc') class MetricsTree_Distribution_UtxoCohorts_AmountRange: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._0sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_with_0sats') - self._1sat_to_10sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_1sat_under_10sats') - self._10sats_to_100sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_10sats_under_100sats') - self._100sats_to_1k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_100sats_under_1k_sats') - self._1k_sats_to_10k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_1k_sats_under_10k_sats') - self._10k_sats_to_100k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_10k_sats_under_100k_sats') - self._100k_sats_to_1m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_100k_sats_under_1m_sats') - self._1m_sats_to_10m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_1m_sats_under_10m_sats') - self._10m_sats_to_1btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_10m_sats_under_1btc') - self._1btc_to_10btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_1btc_under_10btc') - self._10btc_to_100btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_10btc_under_100btc') - self._100btc_to_1k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_100btc_under_1k_btc') - self._1k_btc_to_10k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_1k_btc_under_10k_btc') - self._10k_btc_to_100k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_10k_btc_under_100k_btc') - self._100k_btc_or_more: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_above_100k_btc') + self._0sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_with_0sats') + self._1sat_to_10sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_1sat_under_10sats') + self._10sats_to_100sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_10sats_under_100sats') + self._100sats_to_1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_100sats_under_1k_sats') + self._1k_sats_to_10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_1k_sats_under_10k_sats') + self._10k_sats_to_100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_10k_sats_under_100k_sats') + self._100k_sats_to_1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_100k_sats_under_1m_sats') + self._1m_sats_to_10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_1m_sats_under_10m_sats') + self._10m_sats_to_1btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_10m_sats_under_1btc') + self._1btc_to_10btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_1btc_under_10btc') + self._10btc_to_100btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_10btc_under_100btc') + self._100btc_to_1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_100btc_under_1k_btc') + self._1k_btc_to_10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_1k_btc_under_10k_btc') + self._10k_btc_to_100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_10k_btc_under_100k_btc') + self._100k_btc_or_more: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_above_100k_btc') class MetricsTree_Distribution_UtxoCohorts_LtAmount: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._10sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_10sats') - self._100sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_100sats') - self._1k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_1k_sats') - self._10k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_10k_sats') - self._100k_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_100k_sats') - self._1m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_1m_sats') - self._10m_sats: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_10m_sats') - self._1btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_1btc') - self._10btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_10btc') - self._100btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_100btc') - self._1k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_1k_btc') - self._10k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_10k_btc') - self._100k_btc: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_100k_btc') + self._10sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_10sats') + self._100sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_100sats') + self._1k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_1k_sats') + self._10k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_10k_sats') + self._100k_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_100k_sats') + self._1m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_1m_sats') + self._10m_sats: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_10m_sats') + self._1btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_1btc') + self._10btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_10btc') + self._100btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_100btc') + self._1k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_1k_btc') + self._10k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_10k_btc') + self._100k_btc: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'utxos_under_100k_btc') class MetricsTree_Distribution_UtxoCohorts_Type: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self.p2pk65: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'p2pk65') - self.p2pk33: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'p2pk33') - self.p2pkh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'p2pkh') - self.p2ms: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'p2ms') - self.p2sh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'p2sh') - self.p2wpkh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'p2wpkh') - self.p2wsh: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'p2wsh') - self.p2tr: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'p2tr') - self.p2a: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'p2a') - self.unknown: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'unknown_outputs') - self.empty: ActivityOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'empty_outputs') + self.p2pk65: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'p2pk65') + self.p2pk33: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'p2pk33') + self.p2pkh: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'p2pkh') + self.p2ms: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'p2ms') + self.p2sh: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'p2sh') + self.p2wpkh: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'p2wpkh') + self.p2wsh: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'p2wsh') + self.p2tr: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'p2tr') + self.p2a: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'p2a') + self.unknown: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'unknown_outputs') + self.empty: ActivityOutputsRealizedSupplyUnrealizedPattern = ActivityOutputsRealizedSupplyUnrealizedPattern(client, 'empty_outputs') class MetricsTree_Distribution_UtxoCohorts: """Metrics tree node.""" @@ -4532,57 +4498,57 @@ class MetricsTree_Distribution_AddressCohorts_GeAmount: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._1sat: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1sat') - self._10sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10sats') - self._100sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_100sats') - self._1k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1k_sats') - self._10k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10k_sats') - self._100k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_100k_sats') - self._1m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1m_sats') - self._10m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10m_sats') - self._1btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1btc') - self._10btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10btc') - self._100btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_100btc') - self._1k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1k_btc') - self._10k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10k_btc') + 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 MetricsTree_Distribution_AddressCohorts_AmountRange: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._0sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_with_0sats') - self._1sat_to_10sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1sat_under_10sats') - self._10sats_to_100sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10sats_under_100sats') - self._100sats_to_1k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100sats_under_1k_sats') - self._1k_sats_to_10k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1k_sats_under_10k_sats') - self._10k_sats_to_100k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10k_sats_under_100k_sats') - self._100k_sats_to_1m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100k_sats_under_1m_sats') - self._1m_sats_to_10m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1m_sats_under_10m_sats') - self._10m_sats_to_1btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10m_sats_under_1btc') - self._1btc_to_10btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1btc_under_10btc') - self._10btc_to_100btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10btc_under_100btc') - self._100btc_to_1k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100btc_under_1k_btc') - self._1k_btc_to_10k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1k_btc_under_10k_btc') - self._10k_btc_to_100k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10k_btc_under_100k_btc') - self._100k_btc_or_more: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100k_btc') + self._0sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_with_0sats') + self._1sat_to_10sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_1sat_under_10sats') + self._10sats_to_100sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_10sats_under_100sats') + self._100sats_to_1k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_100sats_under_1k_sats') + self._1k_sats_to_10k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_1k_sats_under_10k_sats') + self._10k_sats_to_100k_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_10k_sats_under_100k_sats') + self._100k_sats_to_1m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_100k_sats_under_1m_sats') + self._1m_sats_to_10m_sats: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_1m_sats_under_10m_sats') + self._10m_sats_to_1btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_10m_sats_under_1btc') + self._1btc_to_10btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_1btc_under_10btc') + self._10btc_to_100btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_10btc_under_100btc') + self._100btc_to_1k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_100btc_under_1k_btc') + self._1k_btc_to_10k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_1k_btc_under_10k_btc') + self._10k_btc_to_100k_btc: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_10k_btc_under_100k_btc') + self._100k_btc_or_more: ActivityAddrOutputsRealizedSupplyUnrealizedPattern = ActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, 'addrs_above_100k_btc') class MetricsTree_Distribution_AddressCohorts_LtAmount: """Metrics tree node.""" def __init__(self, client: BrkClientBase, base_path: str = ''): - self._10sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10sats') - self._100sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100sats') - self._1k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1k_sats') - self._10k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10k_sats') - self._100k_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100k_sats') - self._1m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1m_sats') - self._10m_sats: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10m_sats') - self._1btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1btc') - self._10btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10btc') - self._100btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100btc') - self._1k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1k_btc') - self._10k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10k_btc') - self._100k_btc: ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100k_btc') + 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 MetricsTree_Distribution_AddressCohorts: """Metrics tree node."""