global: snapshot part 5

This commit is contained in:
nym21
2026-03-20 16:51:03 +01:00
parent 8f93ff9f68
commit 17106f887a
12 changed files with 830 additions and 681 deletions

View File

@@ -1035,36 +1035,36 @@ impl _10y1m1w1y2y3m3y4y5y6m6y8yPattern2 {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct _10y1m1w1y2y3m3y4y5y6m6y8yPattern3 { pub struct _10y1m1w1y2y3m3y4y5y6m6y8yPattern3 {
pub _10y: BtcCentsSatsUsdPattern, pub _10y: BtcCentsSatsUsdPattern2,
pub _1m: BtcCentsSatsUsdPattern, pub _1m: BtcCentsSatsUsdPattern2,
pub _1w: BtcCentsSatsUsdPattern, pub _1w: BtcCentsSatsUsdPattern2,
pub _1y: BtcCentsSatsUsdPattern, pub _1y: BtcCentsSatsUsdPattern2,
pub _2y: BtcCentsSatsUsdPattern, pub _2y: BtcCentsSatsUsdPattern2,
pub _3m: BtcCentsSatsUsdPattern, pub _3m: BtcCentsSatsUsdPattern2,
pub _3y: BtcCentsSatsUsdPattern, pub _3y: BtcCentsSatsUsdPattern2,
pub _4y: BtcCentsSatsUsdPattern, pub _4y: BtcCentsSatsUsdPattern2,
pub _5y: BtcCentsSatsUsdPattern, pub _5y: BtcCentsSatsUsdPattern2,
pub _6m: BtcCentsSatsUsdPattern, pub _6m: BtcCentsSatsUsdPattern2,
pub _6y: BtcCentsSatsUsdPattern, pub _6y: BtcCentsSatsUsdPattern2,
pub _8y: BtcCentsSatsUsdPattern, pub _8y: BtcCentsSatsUsdPattern2,
} }
impl _10y1m1w1y2y3m3y4y5y6m6y8yPattern3 { impl _10y1m1w1y2y3m3y4y5y6m6y8yPattern3 {
/// Create a new pattern node with accumulated series name. /// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
_10y: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "10y")), _10y: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "10y")),
_1m: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "1m")), _1m: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "1m")),
_1w: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "1w")), _1w: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "1w")),
_1y: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "1y")), _1y: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "1y")),
_2y: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "2y")), _2y: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "2y")),
_3m: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "3m")), _3m: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "3m")),
_3y: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "3y")), _3y: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "3y")),
_4y: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "4y")), _4y: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "4y")),
_5y: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "5y")), _5y: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "5y")),
_6m: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "6m")), _6m: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "6m")),
_6y: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "6y")), _6y: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "6y")),
_8y: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "8y")), _8y: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "8y")),
} }
} }
} }
@@ -1081,13 +1081,13 @@ pub struct CapGrossInvestorLossMvrvNetPeakPriceProfitSellSoprPattern {
pub price: BpsCentsPercentilesRatioSatsSmaStdUsdPattern, pub price: BpsCentsPercentilesRatioSatsSmaStdUsdPattern,
pub profit: BaseCumulativeSumToPattern, pub profit: BaseCumulativeSumToPattern,
pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>, pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>,
pub sell_side_risk_ratio: _1m1w1y24hPattern6, pub sell_side_risk_ratio: _1m1w1y24hPattern7,
pub sopr: AdjustedRatioValuePattern, pub sopr: AdjustedRatioValuePattern,
} }
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2 { pub struct AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2 {
pub average: _1m1w1y24hPattern<StoredU64>, pub average: _1m1w1y24hPattern<StoredF32>,
pub base: SeriesPattern1<StoredU64>, pub base: SeriesPattern1<StoredU64>,
pub cumulative: SeriesPattern1<StoredU64>, pub cumulative: SeriesPattern1<StoredU64>,
pub max: _1m1w1y24hPattern<StoredU64>, pub max: _1m1w1y24hPattern<StoredU64>,
@@ -1198,7 +1198,7 @@ impl AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern3 {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct AverageMaxMedianMinPct10Pct25Pct75Pct90SumPattern { pub struct AverageMaxMedianMinPct10Pct25Pct75Pct90SumPattern {
pub average: _1m1w1y24hPattern<StoredU64>, pub average: _1m1w1y24hPattern<StoredF32>,
pub max: _1m1w1y24hPattern<StoredU64>, pub max: _1m1w1y24hPattern<StoredU64>,
pub median: _1m1w1y24hPattern<StoredU64>, pub median: _1m1w1y24hPattern<StoredU64>,
pub min: _1m1w1y24hPattern<StoredU64>, pub min: _1m1w1y24hPattern<StoredU64>,
@@ -1443,11 +1443,11 @@ impl ActivityAddrOutputsRealizedSupplyUnrealizedPattern {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct AverageBaseCumulativeInSumPattern { pub struct AverageBaseCumulativeInSumPattern {
pub average: _1m1w1y24hPattern3, pub average: _1m1w1y24hPattern3,
pub base: BtcCentsSatsUsdPattern, pub base: BtcCentsSatsUsdPattern2,
pub cumulative: BtcCentsSatsUsdPattern, pub cumulative: BtcCentsSatsUsdPattern2,
pub in_loss: AverageBaseCumulativeSumPattern3, pub in_loss: AverageBaseCumulativeSumPattern3,
pub in_profit: AverageBaseCumulativeSumPattern3, pub in_profit: AverageBaseCumulativeSumPattern3,
pub sum: _1m1w1y24hPattern3, pub sum: _1m1w1y24hPattern4,
} }
impl AverageBaseCumulativeInSumPattern { impl AverageBaseCumulativeInSumPattern {
@@ -1455,11 +1455,11 @@ impl AverageBaseCumulativeInSumPattern {
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
average: _1m1w1y24hPattern3::new(client.clone(), _m(&acc, "average")), average: _1m1w1y24hPattern3::new(client.clone(), _m(&acc, "average")),
base: BtcCentsSatsUsdPattern::new(client.clone(), acc.clone()), base: BtcCentsSatsUsdPattern2::new(client.clone(), acc.clone()),
cumulative: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "cumulative")), cumulative: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "cumulative")),
in_loss: AverageBaseCumulativeSumPattern3::new(client.clone(), _m(&acc, "in_loss")), in_loss: AverageBaseCumulativeSumPattern3::new(client.clone(), _m(&acc, "in_loss")),
in_profit: AverageBaseCumulativeSumPattern3::new(client.clone(), _m(&acc, "in_profit")), in_profit: AverageBaseCumulativeSumPattern3::new(client.clone(), _m(&acc, "in_profit")),
sum: _1m1w1y24hPattern3::new(client.clone(), _m(&acc, "sum")), sum: _1m1w1y24hPattern4::new(client.clone(), _m(&acc, "sum")),
} }
} }
} }
@@ -1470,7 +1470,7 @@ pub struct BaseChangeCumulativeDeltaSumToPattern {
pub change_1m: ToPattern, pub change_1m: ToPattern,
pub cumulative: CentsUsdPattern, pub cumulative: CentsUsdPattern,
pub delta: AbsoluteRatePattern2, pub delta: AbsoluteRatePattern2,
pub sum: _1m1w1y24hPattern4, pub sum: _1m1w1y24hPattern5,
pub to_rcap: BpsPercentRatioPattern, pub to_rcap: BpsPercentRatioPattern,
} }
@@ -1482,7 +1482,7 @@ impl BaseChangeCumulativeDeltaSumToPattern {
change_1m: ToPattern::new(client.clone(), _m(&acc, "pnl_change_1m_to")), change_1m: ToPattern::new(client.clone(), _m(&acc, "pnl_change_1m_to")),
cumulative: CentsUsdPattern::new(client.clone(), _m(&acc, "realized_pnl_cumulative")), cumulative: CentsUsdPattern::new(client.clone(), _m(&acc, "realized_pnl_cumulative")),
delta: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "realized_pnl_delta")), delta: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "realized_pnl_delta")),
sum: _1m1w1y24hPattern4::new(client.clone(), _m(&acc, "realized_pnl_sum")), sum: _1m1w1y24hPattern5::new(client.clone(), _m(&acc, "realized_pnl_sum")),
to_rcap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "realized_pnl_to_rcap")), to_rcap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "realized_pnl_to_rcap")),
} }
} }
@@ -1563,11 +1563,11 @@ impl CentsNegativeToUsdPattern2 {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct DeltaHalfInToTotalPattern { pub struct DeltaHalfInToTotalPattern {
pub delta: AbsoluteRatePattern, pub delta: AbsoluteRatePattern,
pub half: BtcCentsSatsUsdPattern, pub half: BtcCentsSatsUsdPattern2,
pub in_loss: BtcCentsSatsToUsdPattern, pub in_loss: BtcCentsSatsToUsdPattern,
pub in_profit: BtcCentsSatsToUsdPattern, pub in_profit: BtcCentsSatsToUsdPattern,
pub to_circulating: BpsPercentRatioPattern3, pub to_circulating: BpsPercentRatioPattern3,
pub total: BtcCentsSatsUsdPattern, pub total: BtcCentsSatsUsdPattern2,
} }
impl DeltaHalfInToTotalPattern { impl DeltaHalfInToTotalPattern {
@@ -1575,11 +1575,11 @@ impl DeltaHalfInToTotalPattern {
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
delta: AbsoluteRatePattern::new(client.clone(), _m(&acc, "delta")), delta: AbsoluteRatePattern::new(client.clone(), _m(&acc, "delta")),
half: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "half")), half: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "half")),
in_loss: BtcCentsSatsToUsdPattern::new(client.clone(), _m(&acc, "in_loss")), in_loss: BtcCentsSatsToUsdPattern::new(client.clone(), _m(&acc, "in_loss")),
in_profit: BtcCentsSatsToUsdPattern::new(client.clone(), _m(&acc, "in_profit")), in_profit: BtcCentsSatsToUsdPattern::new(client.clone(), _m(&acc, "in_profit")),
to_circulating: BpsPercentRatioPattern3::new(client.clone(), _m(&acc, "to_circulating")), to_circulating: BpsPercentRatioPattern3::new(client.clone(), _m(&acc, "to_circulating")),
total: BtcCentsSatsUsdPattern::new(client.clone(), acc.clone()), total: BtcCentsSatsUsdPattern2::new(client.clone(), acc.clone()),
} }
} }
} }
@@ -1587,11 +1587,11 @@ impl DeltaHalfInToTotalPattern {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct DeltaHalfInToTotalPattern2 { pub struct DeltaHalfInToTotalPattern2 {
pub delta: AbsoluteRatePattern, pub delta: AbsoluteRatePattern,
pub half: BtcCentsSatsUsdPattern, pub half: BtcCentsSatsUsdPattern2,
pub in_loss: BtcCentsSatsToUsdPattern3, pub in_loss: BtcCentsSatsToUsdPattern3,
pub in_profit: BtcCentsSatsToUsdPattern3, pub in_profit: BtcCentsSatsToUsdPattern3,
pub to_circulating: BpsPercentRatioPattern3, pub to_circulating: BpsPercentRatioPattern3,
pub total: BtcCentsSatsUsdPattern, pub total: BtcCentsSatsUsdPattern2,
} }
impl DeltaHalfInToTotalPattern2 { impl DeltaHalfInToTotalPattern2 {
@@ -1599,11 +1599,11 @@ impl DeltaHalfInToTotalPattern2 {
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
delta: AbsoluteRatePattern::new(client.clone(), _m(&acc, "delta")), delta: AbsoluteRatePattern::new(client.clone(), _m(&acc, "delta")),
half: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "half")), half: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "half")),
in_loss: BtcCentsSatsToUsdPattern3::new(client.clone(), _m(&acc, "in_loss")), in_loss: BtcCentsSatsToUsdPattern3::new(client.clone(), _m(&acc, "in_loss")),
in_profit: BtcCentsSatsToUsdPattern3::new(client.clone(), _m(&acc, "in_profit")), in_profit: BtcCentsSatsToUsdPattern3::new(client.clone(), _m(&acc, "in_profit")),
to_circulating: BpsPercentRatioPattern3::new(client.clone(), _m(&acc, "to_circulating")), to_circulating: BpsPercentRatioPattern3::new(client.clone(), _m(&acc, "to_circulating")),
total: BtcCentsSatsUsdPattern::new(client.clone(), acc.clone()), total: BtcCentsSatsUsdPattern2::new(client.clone(), acc.clone()),
} }
} }
} }
@@ -1632,6 +1632,28 @@ impl Pct1Pct2Pct5Pct95Pct98Pct99Pattern {
} }
} }
/// Pattern struct for repeated tree structure.
pub struct _1m1w1y24hBasePattern {
pub _1m: SeriesPattern1<StoredF32>,
pub _1w: SeriesPattern1<StoredF32>,
pub _1y: SeriesPattern1<StoredF32>,
pub _24h: SeriesPattern1<StoredF32>,
pub base: SeriesPattern18<StoredU32>,
}
impl _1m1w1y24hBasePattern {
/// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self {
_1m: SeriesPattern1::new(client.clone(), _m(&acc, "average_1m")),
_1w: SeriesPattern1::new(client.clone(), _m(&acc, "average_1w")),
_1y: SeriesPattern1::new(client.clone(), _m(&acc, "average_1y")),
_24h: SeriesPattern1::new(client.clone(), _m(&acc, "average_24h")),
base: SeriesPattern18::new(client.clone(), acc.clone()),
}
}
}
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct ActivityOutputsRealizedSupplyUnrealizedPattern { pub struct ActivityOutputsRealizedSupplyUnrealizedPattern {
pub activity: CoindaysTransferPattern, pub activity: CoindaysTransferPattern,
@@ -1703,7 +1725,7 @@ pub struct BaseCumulativeNegativeSumToPattern {
pub base: CentsUsdPattern2, pub base: CentsUsdPattern2,
pub cumulative: CentsUsdPattern2, pub cumulative: CentsUsdPattern2,
pub negative: BaseSumPattern, pub negative: BaseSumPattern,
pub sum: _1m1w1y24hPattern5, pub sum: _1m1w1y24hPattern6,
pub to_rcap: BpsPercentRatioPattern4, pub to_rcap: BpsPercentRatioPattern4,
} }
@@ -1842,10 +1864,10 @@ impl CentsToUsdPattern4 {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct DeltaHalfInTotalPattern2 { pub struct DeltaHalfInTotalPattern2 {
pub delta: AbsoluteRatePattern, pub delta: AbsoluteRatePattern,
pub half: BtcCentsSatsUsdPattern, pub half: BtcCentsSatsUsdPattern2,
pub in_loss: BtcCentsSatsUsdPattern, pub in_loss: BtcCentsSatsUsdPattern2,
pub in_profit: BtcCentsSatsUsdPattern, pub in_profit: BtcCentsSatsUsdPattern2,
pub total: BtcCentsSatsUsdPattern, pub total: BtcCentsSatsUsdPattern2,
} }
impl DeltaHalfInTotalPattern2 { impl DeltaHalfInTotalPattern2 {
@@ -1853,10 +1875,10 @@ impl DeltaHalfInTotalPattern2 {
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
delta: AbsoluteRatePattern::new(client.clone(), _m(&acc, "delta")), delta: AbsoluteRatePattern::new(client.clone(), _m(&acc, "delta")),
half: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "half")), half: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "half")),
in_loss: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "in_loss")), in_loss: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "in_loss")),
in_profit: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "in_profit")), in_profit: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "in_profit")),
total: BtcCentsSatsUsdPattern::new(client.clone(), acc.clone()), total: BtcCentsSatsUsdPattern2::new(client.clone(), acc.clone()),
} }
} }
} }
@@ -1892,28 +1914,6 @@ impl PhsReboundThsPattern {
} }
} }
/// Pattern struct for repeated tree structure.
pub struct _1m1w1y24hBasePattern<T> {
pub _1m: SeriesPattern1<T>,
pub _1w: SeriesPattern1<T>,
pub _1y: SeriesPattern1<T>,
pub _24h: SeriesPattern1<T>,
pub base: SeriesPattern18<T>,
}
impl<T: DeserializeOwned> _1m1w1y24hBasePattern<T> {
/// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self {
_1m: SeriesPattern1::new(client.clone(), _m(&acc, "average_1m")),
_1w: SeriesPattern1::new(client.clone(), _m(&acc, "average_1w")),
_1y: SeriesPattern1::new(client.clone(), _m(&acc, "average_1y")),
_24h: SeriesPattern1::new(client.clone(), _m(&acc, "average_24h")),
base: SeriesPattern18::new(client.clone(), acc.clone()),
}
}
}
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct _1m1w1y24hPattern2 { pub struct _1m1w1y24hPattern2 {
pub _1m: BpsPercentRatioPattern, pub _1m: BpsPercentRatioPattern,
@@ -1935,14 +1935,14 @@ impl _1m1w1y24hPattern2 {
} }
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct _1m1w1y24hPattern6 { pub struct _1m1w1y24hPattern7 {
pub _1m: BpsPercentRatioPattern4, pub _1m: BpsPercentRatioPattern4,
pub _1w: BpsPercentRatioPattern4, pub _1w: BpsPercentRatioPattern4,
pub _1y: BpsPercentRatioPattern4, pub _1y: BpsPercentRatioPattern4,
pub _24h: BpsPercentRatioPattern4, pub _24h: BpsPercentRatioPattern4,
} }
impl _1m1w1y24hPattern6 { impl _1m1w1y24hPattern7 {
/// Create a new pattern node with accumulated series name. /// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
@@ -1974,6 +1974,26 @@ impl _1m1w1y24hPattern3 {
} }
} }
/// Pattern struct for repeated tree structure.
pub struct _1m1w1y24hPattern4 {
pub _1m: BtcCentsSatsUsdPattern2,
pub _1w: BtcCentsSatsUsdPattern2,
pub _1y: BtcCentsSatsUsdPattern2,
pub _24h: BtcCentsSatsUsdPattern2,
}
impl _1m1w1y24hPattern4 {
/// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self {
_1m: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "1m")),
_1w: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "1w")),
_1y: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "1y")),
_24h: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "24h")),
}
}
}
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct _1m1w1y2wPattern { pub struct _1m1w1y2wPattern {
pub _1m: CentsSatsUsdPattern, pub _1m: CentsSatsUsdPattern,
@@ -1995,14 +2015,14 @@ impl _1m1w1y2wPattern {
} }
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct _1m1w1y24hPattern4 { pub struct _1m1w1y24hPattern5 {
pub _1m: CentsUsdPattern, pub _1m: CentsUsdPattern,
pub _1w: CentsUsdPattern, pub _1w: CentsUsdPattern,
pub _1y: CentsUsdPattern, pub _1y: CentsUsdPattern,
pub _24h: CentsUsdPattern, pub _24h: CentsUsdPattern,
} }
impl _1m1w1y24hPattern4 { impl _1m1w1y24hPattern5 {
/// Create a new pattern node with accumulated series name. /// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
@@ -2015,14 +2035,14 @@ impl _1m1w1y24hPattern4 {
} }
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct _1m1w1y24hPattern5 { pub struct _1m1w1y24hPattern6 {
pub _1m: CentsUsdPattern2, pub _1m: CentsUsdPattern2,
pub _1w: CentsUsdPattern2, pub _1w: CentsUsdPattern2,
pub _1y: CentsUsdPattern2, pub _1y: CentsUsdPattern2,
pub _24h: CentsUsdPattern2, pub _24h: CentsUsdPattern2,
} }
impl _1m1w1y24hPattern5 { impl _1m1w1y24hPattern6 {
/// Create a new pattern node with accumulated series name. /// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
@@ -2044,7 +2064,7 @@ pub struct _1y2y4yAllPattern {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct AverageBaseCumulativeSumPattern2 { pub struct AverageBaseCumulativeSumPattern2 {
pub average: _1m1w1y24hPattern<StoredU64>, pub average: _1m1w1y24hPattern<StoredF32>,
pub base: SeriesPattern1<StoredU32>, pub base: SeriesPattern1<StoredU32>,
pub cumulative: SeriesPattern1<StoredU64>, pub cumulative: SeriesPattern1<StoredU64>,
pub sum: _1m1w1y24hPattern<StoredU64>, pub sum: _1m1w1y24hPattern<StoredU64>,
@@ -2065,9 +2085,9 @@ impl AverageBaseCumulativeSumPattern2 {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct AverageBaseCumulativeSumPattern3 { pub struct AverageBaseCumulativeSumPattern3 {
pub average: _1m1w1y24hPattern3, pub average: _1m1w1y24hPattern3,
pub base: BtcCentsSatsUsdPattern, pub base: BtcCentsSatsUsdPattern2,
pub cumulative: BtcCentsSatsUsdPattern, pub cumulative: BtcCentsSatsUsdPattern2,
pub sum: _1m1w1y24hPattern3, pub sum: _1m1w1y24hPattern4,
} }
impl AverageBaseCumulativeSumPattern3 { impl AverageBaseCumulativeSumPattern3 {
@@ -2075,9 +2095,9 @@ impl AverageBaseCumulativeSumPattern3 {
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
average: _1m1w1y24hPattern3::new(client.clone(), _m(&acc, "average")), average: _1m1w1y24hPattern3::new(client.clone(), _m(&acc, "average")),
base: BtcCentsSatsUsdPattern::new(client.clone(), acc.clone()), base: BtcCentsSatsUsdPattern2::new(client.clone(), acc.clone()),
cumulative: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "cumulative")), cumulative: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "cumulative")),
sum: _1m1w1y24hPattern3::new(client.clone(), _m(&acc, "sum")), sum: _1m1w1y24hPattern4::new(client.clone(), _m(&acc, "sum")),
} }
} }
} }
@@ -2087,7 +2107,7 @@ pub struct BaseCumulativeDeltaSumPattern {
pub base: CentsUsdPattern, pub base: CentsUsdPattern,
pub cumulative: CentsUsdPattern, pub cumulative: CentsUsdPattern,
pub delta: AbsoluteRatePattern2, pub delta: AbsoluteRatePattern2,
pub sum: _1m1w1y24hPattern4, pub sum: _1m1w1y24hPattern5,
} }
impl BaseCumulativeDeltaSumPattern { impl BaseCumulativeDeltaSumPattern {
@@ -2097,7 +2117,7 @@ impl BaseCumulativeDeltaSumPattern {
base: CentsUsdPattern::new(client.clone(), acc.clone()), base: CentsUsdPattern::new(client.clone(), acc.clone()),
cumulative: CentsUsdPattern::new(client.clone(), _m(&acc, "cumulative")), cumulative: CentsUsdPattern::new(client.clone(), _m(&acc, "cumulative")),
delta: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "delta")), delta: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "delta")),
sum: _1m1w1y24hPattern4::new(client.clone(), _m(&acc, "sum")), sum: _1m1w1y24hPattern5::new(client.clone(), _m(&acc, "sum")),
} }
} }
} }
@@ -2107,7 +2127,7 @@ pub struct BaseCumulativeNegativeSumPattern {
pub base: CentsUsdPattern2, pub base: CentsUsdPattern2,
pub cumulative: CentsUsdPattern2, pub cumulative: CentsUsdPattern2,
pub negative: BaseSumPattern, pub negative: BaseSumPattern,
pub sum: _1m1w1y24hPattern5, pub sum: _1m1w1y24hPattern6,
} }
impl BaseCumulativeNegativeSumPattern { impl BaseCumulativeNegativeSumPattern {
@@ -2117,7 +2137,7 @@ impl BaseCumulativeNegativeSumPattern {
base: CentsUsdPattern2::new(client.clone(), _m(&acc, "realized_loss")), base: CentsUsdPattern2::new(client.clone(), _m(&acc, "realized_loss")),
cumulative: CentsUsdPattern2::new(client.clone(), _m(&acc, "realized_loss_cumulative")), cumulative: CentsUsdPattern2::new(client.clone(), _m(&acc, "realized_loss_cumulative")),
negative: BaseSumPattern::new(client.clone(), _m(&acc, "neg_realized_loss")), negative: BaseSumPattern::new(client.clone(), _m(&acc, "neg_realized_loss")),
sum: _1m1w1y24hPattern5::new(client.clone(), _m(&acc, "realized_loss_sum")), sum: _1m1w1y24hPattern6::new(client.clone(), _m(&acc, "realized_loss_sum")),
} }
} }
} }
@@ -2126,7 +2146,7 @@ impl BaseCumulativeNegativeSumPattern {
pub struct BaseCumulativeSumToPattern { pub struct BaseCumulativeSumToPattern {
pub base: CentsUsdPattern2, pub base: CentsUsdPattern2,
pub cumulative: CentsUsdPattern2, pub cumulative: CentsUsdPattern2,
pub sum: _1m1w1y24hPattern5, pub sum: _1m1w1y24hPattern6,
pub to_rcap: BpsPercentRatioPattern4, pub to_rcap: BpsPercentRatioPattern4,
} }
@@ -2136,7 +2156,7 @@ impl BaseCumulativeSumToPattern {
Self { Self {
base: CentsUsdPattern2::new(client.clone(), acc.clone()), base: CentsUsdPattern2::new(client.clone(), acc.clone()),
cumulative: CentsUsdPattern2::new(client.clone(), _m(&acc, "cumulative")), cumulative: CentsUsdPattern2::new(client.clone(), _m(&acc, "cumulative")),
sum: _1m1w1y24hPattern5::new(client.clone(), _m(&acc, "sum")), sum: _1m1w1y24hPattern6::new(client.clone(), _m(&acc, "sum")),
to_rcap: BpsPercentRatioPattern4::new(client.clone(), _m(&acc, "to_rcap")), to_rcap: BpsPercentRatioPattern4::new(client.clone(), _m(&acc, "to_rcap")),
} }
} }
@@ -2144,10 +2164,10 @@ impl BaseCumulativeSumToPattern {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct BothReactivatedReceivingSendingPattern { pub struct BothReactivatedReceivingSendingPattern {
pub both: _1m1w1y24hBasePattern<StoredU32>, pub both: _1m1w1y24hBasePattern,
pub reactivated: _1m1w1y24hBasePattern<StoredU32>, pub reactivated: _1m1w1y24hBasePattern,
pub receiving: _1m1w1y24hBasePattern<StoredU32>, pub receiving: _1m1w1y24hBasePattern,
pub sending: _1m1w1y24hBasePattern<StoredU32>, pub sending: _1m1w1y24hBasePattern,
} }
impl BothReactivatedReceivingSendingPattern { impl BothReactivatedReceivingSendingPattern {
@@ -2163,13 +2183,33 @@ impl BothReactivatedReceivingSendingPattern {
} }
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct BtcCentsSatsUsdPattern { pub struct BtcCentsSatsUsdPattern2 {
pub btc: SeriesPattern1<Bitcoin>, pub btc: SeriesPattern1<Bitcoin>,
pub cents: SeriesPattern1<Cents>, pub cents: SeriesPattern1<Cents>,
pub sats: SeriesPattern1<Sats>, pub sats: SeriesPattern1<Sats>,
pub usd: SeriesPattern1<Dollars>, pub usd: SeriesPattern1<Dollars>,
} }
impl BtcCentsSatsUsdPattern2 {
/// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self {
btc: SeriesPattern1::new(client.clone(), acc.clone()),
cents: SeriesPattern1::new(client.clone(), _m(&acc, "cents")),
sats: SeriesPattern1::new(client.clone(), _m(&acc, "sats")),
usd: SeriesPattern1::new(client.clone(), _m(&acc, "usd")),
}
}
}
/// Pattern struct for repeated tree structure.
pub struct BtcCentsSatsUsdPattern {
pub btc: SeriesPattern1<Bitcoin>,
pub cents: SeriesPattern1<StoredF32>,
pub sats: SeriesPattern1<StoredF32>,
pub usd: SeriesPattern1<Dollars>,
}
impl BtcCentsSatsUsdPattern { impl BtcCentsSatsUsdPattern {
/// Create a new pattern node with accumulated series name. /// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
@@ -2301,7 +2341,7 @@ pub struct AdjustedRatioValuePattern {
pub struct BaseCumulativeSumPattern { pub struct BaseCumulativeSumPattern {
pub base: CentsUsdPattern2, pub base: CentsUsdPattern2,
pub cumulative: CentsUsdPattern2, pub cumulative: CentsUsdPattern2,
pub sum: _1m1w1y24hPattern5, pub sum: _1m1w1y24hPattern6,
} }
impl BaseCumulativeSumPattern { impl BaseCumulativeSumPattern {
@@ -2310,7 +2350,7 @@ impl BaseCumulativeSumPattern {
Self { Self {
base: CentsUsdPattern2::new(client.clone(), acc.clone()), base: CentsUsdPattern2::new(client.clone(), acc.clone()),
cumulative: CentsUsdPattern2::new(client.clone(), _m(&acc, "cumulative")), cumulative: CentsUsdPattern2::new(client.clone(), _m(&acc, "cumulative")),
sum: _1m1w1y24hPattern5::new(client.clone(), _m(&acc, "sum")), sum: _1m1w1y24hPattern6::new(client.clone(), _m(&acc, "sum")),
} }
} }
} }
@@ -2516,8 +2556,8 @@ impl CumulativeRollingSumPattern {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct DeltaHalfTotalPattern { pub struct DeltaHalfTotalPattern {
pub delta: AbsoluteRatePattern, pub delta: AbsoluteRatePattern,
pub half: BtcCentsSatsUsdPattern, pub half: BtcCentsSatsUsdPattern2,
pub total: BtcCentsSatsUsdPattern, pub total: BtcCentsSatsUsdPattern2,
} }
impl DeltaHalfTotalPattern { impl DeltaHalfTotalPattern {
@@ -2525,8 +2565,8 @@ impl DeltaHalfTotalPattern {
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
delta: AbsoluteRatePattern::new(client.clone(), _m(&acc, "delta")), delta: AbsoluteRatePattern::new(client.clone(), _m(&acc, "delta")),
half: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "half")), half: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "half")),
total: BtcCentsSatsUsdPattern::new(client.clone(), acc.clone()), total: BtcCentsSatsUsdPattern2::new(client.clone(), acc.clone()),
} }
} }
} }
@@ -2617,7 +2657,7 @@ impl AbsoluteRatePattern {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct AbsoluteRatePattern2 { pub struct AbsoluteRatePattern2 {
pub absolute: _1m1w1y24hPattern4, pub absolute: _1m1w1y24hPattern5,
pub rate: _1m1w1y24hPattern2, pub rate: _1m1w1y24hPattern2,
} }
@@ -2625,7 +2665,7 @@ impl AbsoluteRatePattern2 {
/// Create a new pattern node with accumulated series name. /// Create a new pattern node with accumulated series name.
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
absolute: _1m1w1y24hPattern4::new(client.clone(), acc.clone()), absolute: _1m1w1y24hPattern5::new(client.clone(), acc.clone()),
rate: _1m1w1y24hPattern2::new(client.clone(), acc.clone()), rate: _1m1w1y24hPattern2::new(client.clone(), acc.clone()),
} }
} }
@@ -2634,7 +2674,7 @@ impl AbsoluteRatePattern2 {
/// Pattern struct for repeated tree structure. /// Pattern struct for repeated tree structure.
pub struct AllSthPattern2 { pub struct AllSthPattern2 {
pub all: BtcCentsDeltaSatsUsdPattern, pub all: BtcCentsDeltaSatsUsdPattern,
pub sth: BtcCentsSatsUsdPattern, pub sth: BtcCentsSatsUsdPattern2,
} }
impl AllSthPattern2 { impl AllSthPattern2 {
@@ -2642,7 +2682,7 @@ impl AllSthPattern2 {
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self { pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
Self { Self {
all: BtcCentsDeltaSatsUsdPattern::new(client.clone(), _m(&acc, "supply")), all: BtcCentsDeltaSatsUsdPattern::new(client.clone(), _m(&acc, "supply")),
sth: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "sth_supply")), sth: BtcCentsSatsUsdPattern2::new(client.clone(), _m(&acc, "sth_supply")),
} }
} }
} }
@@ -3003,7 +3043,7 @@ pub struct SeriesTree_Blocks {
pub weight: SeriesTree_Blocks_Weight, pub weight: SeriesTree_Blocks_Weight,
pub count: SeriesTree_Blocks_Count, pub count: SeriesTree_Blocks_Count,
pub lookback: SeriesTree_Blocks_Lookback, pub lookback: SeriesTree_Blocks_Lookback,
pub interval: _1m1w1y24hBasePattern<Timestamp>, pub interval: SeriesTree_Blocks_Interval,
pub vbytes: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2, pub vbytes: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2,
pub fullness: SeriesTree_Blocks_Fullness, pub fullness: SeriesTree_Blocks_Fullness,
pub halving: SeriesTree_Blocks_Halving, pub halving: SeriesTree_Blocks_Halving,
@@ -3019,7 +3059,7 @@ impl SeriesTree_Blocks {
weight: SeriesTree_Blocks_Weight::new(client.clone(), format!("{base_path}_weight")), weight: SeriesTree_Blocks_Weight::new(client.clone(), format!("{base_path}_weight")),
count: SeriesTree_Blocks_Count::new(client.clone(), format!("{base_path}_count")), count: SeriesTree_Blocks_Count::new(client.clone(), format!("{base_path}_count")),
lookback: SeriesTree_Blocks_Lookback::new(client.clone(), format!("{base_path}_lookback")), lookback: SeriesTree_Blocks_Lookback::new(client.clone(), format!("{base_path}_lookback")),
interval: _1m1w1y24hBasePattern::new(client.clone(), "block_interval".to_string()), interval: SeriesTree_Blocks_Interval::new(client.clone(), format!("{base_path}_interval")),
vbytes: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2::new(client.clone(), "block_vbytes".to_string()), vbytes: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2::new(client.clone(), "block_vbytes".to_string()),
fullness: SeriesTree_Blocks_Fullness::new(client.clone(), format!("{base_path}_fullness")), fullness: SeriesTree_Blocks_Fullness::new(client.clone(), format!("{base_path}_fullness")),
halving: SeriesTree_Blocks_Halving::new(client.clone(), format!("{base_path}_halving")), halving: SeriesTree_Blocks_Halving::new(client.clone(), format!("{base_path}_halving")),
@@ -3072,7 +3112,7 @@ pub struct SeriesTree_Blocks_Size {
pub base: SeriesPattern18<StoredU64>, pub base: SeriesPattern18<StoredU64>,
pub cumulative: SeriesPattern1<StoredU64>, pub cumulative: SeriesPattern1<StoredU64>,
pub sum: _1m1w1y24hPattern<StoredU64>, pub sum: _1m1w1y24hPattern<StoredU64>,
pub average: _1m1w1y24hPattern<StoredU64>, pub average: _1m1w1y24hPattern<StoredF32>,
pub min: _1m1w1y24hPattern<StoredU64>, pub min: _1m1w1y24hPattern<StoredU64>,
pub max: _1m1w1y24hPattern<StoredU64>, pub max: _1m1w1y24hPattern<StoredU64>,
pub pct10: _1m1w1y24hPattern<StoredU64>, pub pct10: _1m1w1y24hPattern<StoredU64>,
@@ -3105,7 +3145,7 @@ pub struct SeriesTree_Blocks_Weight {
pub base: SeriesPattern18<Weight>, pub base: SeriesPattern18<Weight>,
pub cumulative: SeriesPattern1<Weight>, pub cumulative: SeriesPattern1<Weight>,
pub sum: _1m1w1y24hPattern<Weight>, pub sum: _1m1w1y24hPattern<Weight>,
pub average: _1m1w1y24hPattern<Weight>, pub average: _1m1w1y24hPattern<StoredF32>,
pub min: _1m1w1y24hPattern<Weight>, pub min: _1m1w1y24hPattern<Weight>,
pub max: _1m1w1y24hPattern<Weight>, pub max: _1m1w1y24hPattern<Weight>,
pub pct10: _1m1w1y24hPattern<Weight>, pub pct10: _1m1w1y24hPattern<Weight>,
@@ -3245,6 +3285,27 @@ impl SeriesTree_Blocks_Lookback {
} }
} }
/// Series tree node.
pub struct SeriesTree_Blocks_Interval {
pub base: SeriesPattern18<Timestamp>,
pub _24h: SeriesPattern1<StoredF32>,
pub _1w: SeriesPattern1<StoredF32>,
pub _1m: SeriesPattern1<StoredF32>,
pub _1y: SeriesPattern1<StoredF32>,
}
impl SeriesTree_Blocks_Interval {
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
Self {
base: SeriesPattern18::new(client.clone(), "block_interval".to_string()),
_24h: SeriesPattern1::new(client.clone(), "block_interval_average_24h".to_string()),
_1w: SeriesPattern1::new(client.clone(), "block_interval_average_1w".to_string()),
_1m: SeriesPattern1::new(client.clone(), "block_interval_average_1m".to_string()),
_1y: SeriesPattern1::new(client.clone(), "block_interval_average_1y".to_string()),
}
}
}
/// Series tree node. /// Series tree node.
pub struct SeriesTree_Blocks_Fullness { pub struct SeriesTree_Blocks_Fullness {
pub bps: SeriesPattern18<BasisPoints16>, pub bps: SeriesPattern18<BasisPoints16>,
@@ -4043,9 +4104,9 @@ impl SeriesTree_Mining_Rewards {
/// Series tree node. /// Series tree node.
pub struct SeriesTree_Mining_Rewards_Subsidy { pub struct SeriesTree_Mining_Rewards_Subsidy {
pub base: BtcCentsSatsUsdPattern, pub base: BtcCentsSatsUsdPattern2,
pub cumulative: BtcCentsSatsUsdPattern, pub cumulative: BtcCentsSatsUsdPattern2,
pub sum: _1m1w1y24hPattern3, pub sum: _1m1w1y24hPattern4,
pub average: _1m1w1y24hPattern3, pub average: _1m1w1y24hPattern3,
pub dominance: _1m1w1y24hBpsPercentRatioPattern, pub dominance: _1m1w1y24hBpsPercentRatioPattern,
pub sma_1y: CentsUsdPattern2, pub sma_1y: CentsUsdPattern2,
@@ -4054,9 +4115,9 @@ pub struct SeriesTree_Mining_Rewards_Subsidy {
impl SeriesTree_Mining_Rewards_Subsidy { impl SeriesTree_Mining_Rewards_Subsidy {
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self { pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
Self { Self {
base: BtcCentsSatsUsdPattern::new(client.clone(), "subsidy".to_string()), base: BtcCentsSatsUsdPattern2::new(client.clone(), "subsidy".to_string()),
cumulative: BtcCentsSatsUsdPattern::new(client.clone(), "subsidy_cumulative".to_string()), cumulative: BtcCentsSatsUsdPattern2::new(client.clone(), "subsidy_cumulative".to_string()),
sum: _1m1w1y24hPattern3::new(client.clone(), "subsidy_sum".to_string()), sum: _1m1w1y24hPattern4::new(client.clone(), "subsidy_sum".to_string()),
average: _1m1w1y24hPattern3::new(client.clone(), "subsidy_average".to_string()), average: _1m1w1y24hPattern3::new(client.clone(), "subsidy_average".to_string()),
dominance: _1m1w1y24hBpsPercentRatioPattern::new(client.clone(), "subsidy_dominance".to_string()), dominance: _1m1w1y24hBpsPercentRatioPattern::new(client.clone(), "subsidy_dominance".to_string()),
sma_1y: CentsUsdPattern2::new(client.clone(), "subsidy_sma_1y".to_string()), sma_1y: CentsUsdPattern2::new(client.clone(), "subsidy_sma_1y".to_string()),
@@ -4066,17 +4127,17 @@ impl SeriesTree_Mining_Rewards_Subsidy {
/// Series tree node. /// Series tree node.
pub struct SeriesTree_Mining_Rewards_Fees { pub struct SeriesTree_Mining_Rewards_Fees {
pub base: BtcCentsSatsUsdPattern, pub base: BtcCentsSatsUsdPattern2,
pub cumulative: BtcCentsSatsUsdPattern, pub cumulative: BtcCentsSatsUsdPattern2,
pub sum: _1m1w1y24hPattern3, pub sum: _1m1w1y24hPattern4,
pub average: _1m1w1y24hPattern3, pub average: _1m1w1y24hPattern3,
pub min: _1m1w1y24hPattern3, pub min: _1m1w1y24hPattern4,
pub max: _1m1w1y24hPattern3, pub max: _1m1w1y24hPattern4,
pub pct10: _1m1w1y24hPattern3, pub pct10: _1m1w1y24hPattern4,
pub pct25: _1m1w1y24hPattern3, pub pct25: _1m1w1y24hPattern4,
pub median: _1m1w1y24hPattern3, pub median: _1m1w1y24hPattern4,
pub pct75: _1m1w1y24hPattern3, pub pct75: _1m1w1y24hPattern4,
pub pct90: _1m1w1y24hPattern3, pub pct90: _1m1w1y24hPattern4,
pub dominance: _1m1w1y24hBpsPercentRatioPattern, pub dominance: _1m1w1y24hBpsPercentRatioPattern,
pub to_subsidy_ratio: SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio, pub to_subsidy_ratio: SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio,
} }
@@ -4084,17 +4145,17 @@ pub struct SeriesTree_Mining_Rewards_Fees {
impl SeriesTree_Mining_Rewards_Fees { impl SeriesTree_Mining_Rewards_Fees {
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self { pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
Self { Self {
base: BtcCentsSatsUsdPattern::new(client.clone(), "fees".to_string()), base: BtcCentsSatsUsdPattern2::new(client.clone(), "fees".to_string()),
cumulative: BtcCentsSatsUsdPattern::new(client.clone(), "fees_cumulative".to_string()), cumulative: BtcCentsSatsUsdPattern2::new(client.clone(), "fees_cumulative".to_string()),
sum: _1m1w1y24hPattern3::new(client.clone(), "fees_sum".to_string()), sum: _1m1w1y24hPattern4::new(client.clone(), "fees_sum".to_string()),
average: _1m1w1y24hPattern3::new(client.clone(), "fees_average".to_string()), average: _1m1w1y24hPattern3::new(client.clone(), "fees_average".to_string()),
min: _1m1w1y24hPattern3::new(client.clone(), "fees_min".to_string()), min: _1m1w1y24hPattern4::new(client.clone(), "fees_min".to_string()),
max: _1m1w1y24hPattern3::new(client.clone(), "fees_max".to_string()), max: _1m1w1y24hPattern4::new(client.clone(), "fees_max".to_string()),
pct10: _1m1w1y24hPattern3::new(client.clone(), "fees_pct10".to_string()), pct10: _1m1w1y24hPattern4::new(client.clone(), "fees_pct10".to_string()),
pct25: _1m1w1y24hPattern3::new(client.clone(), "fees_pct25".to_string()), pct25: _1m1w1y24hPattern4::new(client.clone(), "fees_pct25".to_string()),
median: _1m1w1y24hPattern3::new(client.clone(), "fees_median".to_string()), median: _1m1w1y24hPattern4::new(client.clone(), "fees_median".to_string()),
pct75: _1m1w1y24hPattern3::new(client.clone(), "fees_pct75".to_string()), pct75: _1m1w1y24hPattern4::new(client.clone(), "fees_pct75".to_string()),
pct90: _1m1w1y24hPattern3::new(client.clone(), "fees_pct90".to_string()), pct90: _1m1w1y24hPattern4::new(client.clone(), "fees_pct90".to_string()),
dominance: _1m1w1y24hBpsPercentRatioPattern::new(client.clone(), "fee_dominance".to_string()), dominance: _1m1w1y24hBpsPercentRatioPattern::new(client.clone(), "fee_dominance".to_string()),
to_subsidy_ratio: SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio::new(client.clone(), format!("{base_path}_to_subsidy_ratio")), to_subsidy_ratio: SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio::new(client.clone(), format!("{base_path}_to_subsidy_ratio")),
} }
@@ -4122,15 +4183,15 @@ impl SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio {
/// Series tree node. /// Series tree node.
pub struct SeriesTree_Mining_Rewards_Unclaimed { pub struct SeriesTree_Mining_Rewards_Unclaimed {
pub base: BtcCentsSatsUsdPattern, pub base: BtcCentsSatsUsdPattern2,
pub cumulative: BtcCentsSatsUsdPattern, pub cumulative: BtcCentsSatsUsdPattern2,
} }
impl SeriesTree_Mining_Rewards_Unclaimed { impl SeriesTree_Mining_Rewards_Unclaimed {
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self { pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
Self { Self {
base: BtcCentsSatsUsdPattern::new(client.clone(), "unclaimed_rewards".to_string()), base: BtcCentsSatsUsdPattern2::new(client.clone(), "unclaimed_rewards".to_string()),
cumulative: BtcCentsSatsUsdPattern::new(client.clone(), "unclaimed_rewards_cumulative".to_string()), cumulative: BtcCentsSatsUsdPattern2::new(client.clone(), "unclaimed_rewards_cumulative".to_string()),
} }
} }
} }
@@ -4255,15 +4316,15 @@ impl SeriesTree_Cointime_Activity {
/// Series tree node. /// Series tree node.
pub struct SeriesTree_Cointime_Supply { pub struct SeriesTree_Cointime_Supply {
pub vaulted: BtcCentsSatsUsdPattern, pub vaulted: BtcCentsSatsUsdPattern2,
pub active: BtcCentsSatsUsdPattern, pub active: BtcCentsSatsUsdPattern2,
} }
impl SeriesTree_Cointime_Supply { impl SeriesTree_Cointime_Supply {
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self { pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
Self { Self {
vaulted: BtcCentsSatsUsdPattern::new(client.clone(), "vaulted_supply".to_string()), vaulted: BtcCentsSatsUsdPattern2::new(client.clone(), "vaulted_supply".to_string()),
active: BtcCentsSatsUsdPattern::new(client.clone(), "active_supply".to_string()), active: BtcCentsSatsUsdPattern2::new(client.clone(), "active_supply".to_string()),
} }
} }
} }
@@ -5529,35 +5590,35 @@ impl SeriesTree_Market_Dca_Class {
/// Series tree node. /// Series tree node.
pub struct SeriesTree_Market_Dca_Class_Stack { pub struct SeriesTree_Market_Dca_Class_Stack {
pub from_2015: BtcCentsSatsUsdPattern, pub from_2015: BtcCentsSatsUsdPattern2,
pub from_2016: BtcCentsSatsUsdPattern, pub from_2016: BtcCentsSatsUsdPattern2,
pub from_2017: BtcCentsSatsUsdPattern, pub from_2017: BtcCentsSatsUsdPattern2,
pub from_2018: BtcCentsSatsUsdPattern, pub from_2018: BtcCentsSatsUsdPattern2,
pub from_2019: BtcCentsSatsUsdPattern, pub from_2019: BtcCentsSatsUsdPattern2,
pub from_2020: BtcCentsSatsUsdPattern, pub from_2020: BtcCentsSatsUsdPattern2,
pub from_2021: BtcCentsSatsUsdPattern, pub from_2021: BtcCentsSatsUsdPattern2,
pub from_2022: BtcCentsSatsUsdPattern, pub from_2022: BtcCentsSatsUsdPattern2,
pub from_2023: BtcCentsSatsUsdPattern, pub from_2023: BtcCentsSatsUsdPattern2,
pub from_2024: BtcCentsSatsUsdPattern, pub from_2024: BtcCentsSatsUsdPattern2,
pub from_2025: BtcCentsSatsUsdPattern, pub from_2025: BtcCentsSatsUsdPattern2,
pub from_2026: BtcCentsSatsUsdPattern, pub from_2026: BtcCentsSatsUsdPattern2,
} }
impl SeriesTree_Market_Dca_Class_Stack { impl SeriesTree_Market_Dca_Class_Stack {
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self { pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
Self { Self {
from_2015: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2015".to_string()), from_2015: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2015".to_string()),
from_2016: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2016".to_string()), from_2016: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2016".to_string()),
from_2017: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2017".to_string()), from_2017: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2017".to_string()),
from_2018: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2018".to_string()), from_2018: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2018".to_string()),
from_2019: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2019".to_string()), from_2019: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2019".to_string()),
from_2020: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2020".to_string()), from_2020: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2020".to_string()),
from_2021: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2021".to_string()), from_2021: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2021".to_string()),
from_2022: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2022".to_string()), from_2022: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2022".to_string()),
from_2023: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2023".to_string()), from_2023: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2023".to_string()),
from_2024: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2024".to_string()), from_2024: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2024".to_string()),
from_2025: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2025".to_string()), from_2025: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2025".to_string()),
from_2026: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2026".to_string()), from_2026: BtcCentsSatsUsdPattern2::new(client.clone(), "dca_stack_from_2026".to_string()),
} }
} }
} }
@@ -6186,26 +6247,26 @@ impl SeriesTree_Prices_Spot {
/// Series tree node. /// Series tree node.
pub struct SeriesTree_Supply { pub struct SeriesTree_Supply {
pub state: SeriesPattern18<SupplyState>, pub state: SeriesPattern18<SupplyState>,
pub circulating: BtcCentsSatsUsdPattern, pub circulating: BtcCentsSatsUsdPattern2,
pub burned: AverageBaseCumulativeSumPattern3, pub burned: AverageBaseCumulativeSumPattern3,
pub inflation_rate: BpsPercentRatioPattern, pub inflation_rate: BpsPercentRatioPattern,
pub velocity: SeriesTree_Supply_Velocity, pub velocity: SeriesTree_Supply_Velocity,
pub market_cap: CentsDeltaUsdPattern, pub market_cap: CentsDeltaUsdPattern,
pub market_minus_realized_cap_growth_rate: _1m1w1y24hPattern<BasisPointsSigned32>, pub market_minus_realized_cap_growth_rate: _1m1w1y24hPattern<BasisPointsSigned32>,
pub hodled_or_lost: BtcCentsSatsUsdPattern, pub hodled_or_lost: BtcCentsSatsUsdPattern2,
} }
impl SeriesTree_Supply { impl SeriesTree_Supply {
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self { pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
Self { Self {
state: SeriesPattern18::new(client.clone(), "supply_state".to_string()), state: SeriesPattern18::new(client.clone(), "supply_state".to_string()),
circulating: BtcCentsSatsUsdPattern::new(client.clone(), "circulating_supply".to_string()), circulating: BtcCentsSatsUsdPattern2::new(client.clone(), "circulating_supply".to_string()),
burned: AverageBaseCumulativeSumPattern3::new(client.clone(), "unspendable_supply".to_string()), burned: AverageBaseCumulativeSumPattern3::new(client.clone(), "unspendable_supply".to_string()),
inflation_rate: BpsPercentRatioPattern::new(client.clone(), "inflation_rate".to_string()), inflation_rate: BpsPercentRatioPattern::new(client.clone(), "inflation_rate".to_string()),
velocity: SeriesTree_Supply_Velocity::new(client.clone(), format!("{base_path}_velocity")), velocity: SeriesTree_Supply_Velocity::new(client.clone(), format!("{base_path}_velocity")),
market_cap: CentsDeltaUsdPattern::new(client.clone(), "market_cap".to_string()), market_cap: CentsDeltaUsdPattern::new(client.clone(), "market_cap".to_string()),
market_minus_realized_cap_growth_rate: _1m1w1y24hPattern::new(client.clone(), "market_minus_realized_cap_growth_rate".to_string()), market_minus_realized_cap_growth_rate: _1m1w1y24hPattern::new(client.clone(), "market_minus_realized_cap_growth_rate".to_string()),
hodled_or_lost: BtcCentsSatsUsdPattern::new(client.clone(), "hodled_or_lost_supply".to_string()), hodled_or_lost: BtcCentsSatsUsdPattern2::new(client.clone(), "hodled_or_lost_supply".to_string()),
} }
} }
} }
@@ -6304,8 +6365,8 @@ impl SeriesTree_Cohorts_Utxo_All {
/// Series tree node. /// Series tree node.
pub struct SeriesTree_Cohorts_Utxo_All_Supply { pub struct SeriesTree_Cohorts_Utxo_All_Supply {
pub total: BtcCentsSatsUsdPattern, pub total: BtcCentsSatsUsdPattern2,
pub half: BtcCentsSatsUsdPattern, pub half: BtcCentsSatsUsdPattern2,
pub delta: AbsoluteRatePattern, pub delta: AbsoluteRatePattern,
pub in_profit: BtcCentsSatsToUsdPattern2, pub in_profit: BtcCentsSatsToUsdPattern2,
pub in_loss: BtcCentsSatsToUsdPattern2, pub in_loss: BtcCentsSatsToUsdPattern2,
@@ -6314,8 +6375,8 @@ pub struct SeriesTree_Cohorts_Utxo_All_Supply {
impl SeriesTree_Cohorts_Utxo_All_Supply { impl SeriesTree_Cohorts_Utxo_All_Supply {
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self { pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
Self { Self {
total: BtcCentsSatsUsdPattern::new(client.clone(), "supply".to_string()), total: BtcCentsSatsUsdPattern2::new(client.clone(), "supply".to_string()),
half: BtcCentsSatsUsdPattern::new(client.clone(), "supply_half".to_string()), half: BtcCentsSatsUsdPattern2::new(client.clone(), "supply_half".to_string()),
delta: AbsoluteRatePattern::new(client.clone(), "supply_delta".to_string()), delta: AbsoluteRatePattern::new(client.clone(), "supply_delta".to_string()),
in_profit: BtcCentsSatsToUsdPattern2::new(client.clone(), "supply_in_profit".to_string()), in_profit: BtcCentsSatsToUsdPattern2::new(client.clone(), "supply_in_profit".to_string()),
in_loss: BtcCentsSatsToUsdPattern2::new(client.clone(), "supply_in_loss".to_string()), in_loss: BtcCentsSatsToUsdPattern2::new(client.clone(), "supply_in_loss".to_string()),
@@ -6352,7 +6413,7 @@ pub struct SeriesTree_Cohorts_Utxo_All_Realized {
pub net_pnl: BaseChangeCumulativeDeltaSumToPattern, pub net_pnl: BaseChangeCumulativeDeltaSumToPattern,
pub sopr: SeriesTree_Cohorts_Utxo_All_Realized_Sopr, pub sopr: SeriesTree_Cohorts_Utxo_All_Realized_Sopr,
pub gross_pnl: BaseCumulativeSumPattern, pub gross_pnl: BaseCumulativeSumPattern,
pub sell_side_risk_ratio: _1m1w1y24hPattern6, pub sell_side_risk_ratio: _1m1w1y24hPattern7,
pub peak_regret: BaseCumulativeSumToPattern, pub peak_regret: BaseCumulativeSumToPattern,
pub investor: PricePattern, pub investor: PricePattern,
pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>, pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>,
@@ -6369,7 +6430,7 @@ impl SeriesTree_Cohorts_Utxo_All_Realized {
net_pnl: BaseChangeCumulativeDeltaSumToPattern::new(client.clone(), "net".to_string()), net_pnl: BaseChangeCumulativeDeltaSumToPattern::new(client.clone(), "net".to_string()),
sopr: SeriesTree_Cohorts_Utxo_All_Realized_Sopr::new(client.clone(), format!("{base_path}_sopr")), sopr: SeriesTree_Cohorts_Utxo_All_Realized_Sopr::new(client.clone(), format!("{base_path}_sopr")),
gross_pnl: BaseCumulativeSumPattern::new(client.clone(), "realized_gross_pnl".to_string()), gross_pnl: BaseCumulativeSumPattern::new(client.clone(), "realized_gross_pnl".to_string()),
sell_side_risk_ratio: _1m1w1y24hPattern6::new(client.clone(), "sell_side_risk_ratio".to_string()), sell_side_risk_ratio: _1m1w1y24hPattern7::new(client.clone(), "sell_side_risk_ratio".to_string()),
peak_regret: BaseCumulativeSumToPattern::new(client.clone(), "realized_peak_regret".to_string()), peak_regret: BaseCumulativeSumToPattern::new(client.clone(), "realized_peak_regret".to_string()),
investor: PricePattern::new(client.clone(), "investor_price".to_string()), investor: PricePattern::new(client.clone(), "investor_price".to_string()),
profit_to_loss_ratio: _1m1w1y24hPattern::new(client.clone(), "realized_profit_to_loss_ratio".to_string()), profit_to_loss_ratio: _1m1w1y24hPattern::new(client.clone(), "realized_profit_to_loss_ratio".to_string()),
@@ -6381,7 +6442,7 @@ impl SeriesTree_Cohorts_Utxo_All_Realized {
pub struct SeriesTree_Cohorts_Utxo_All_Realized_Loss { pub struct SeriesTree_Cohorts_Utxo_All_Realized_Loss {
pub base: CentsUsdPattern2, pub base: CentsUsdPattern2,
pub cumulative: CentsUsdPattern2, pub cumulative: CentsUsdPattern2,
pub sum: _1m1w1y24hPattern5, pub sum: _1m1w1y24hPattern6,
pub negative: BaseSumPattern, pub negative: BaseSumPattern,
pub to_rcap: BpsPercentRatioPattern4, pub to_rcap: BpsPercentRatioPattern4,
} }
@@ -6391,7 +6452,7 @@ impl SeriesTree_Cohorts_Utxo_All_Realized_Loss {
Self { Self {
base: CentsUsdPattern2::new(client.clone(), "realized_loss".to_string()), base: CentsUsdPattern2::new(client.clone(), "realized_loss".to_string()),
cumulative: CentsUsdPattern2::new(client.clone(), "realized_loss_cumulative".to_string()), cumulative: CentsUsdPattern2::new(client.clone(), "realized_loss_cumulative".to_string()),
sum: _1m1w1y24hPattern5::new(client.clone(), "realized_loss_sum".to_string()), sum: _1m1w1y24hPattern6::new(client.clone(), "realized_loss_sum".to_string()),
negative: BaseSumPattern::new(client.clone(), "neg_realized_loss".to_string()), negative: BaseSumPattern::new(client.clone(), "neg_realized_loss".to_string()),
to_rcap: BpsPercentRatioPattern4::new(client.clone(), "realized_loss_to_rcap".to_string()), to_rcap: BpsPercentRatioPattern4::new(client.clone(), "realized_loss_to_rcap".to_string()),
} }
@@ -6822,7 +6883,7 @@ pub struct SeriesTree_Cohorts_Utxo_Sth_Realized {
pub net_pnl: BaseChangeCumulativeDeltaSumToPattern, pub net_pnl: BaseChangeCumulativeDeltaSumToPattern,
pub sopr: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr, pub sopr: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr,
pub gross_pnl: BaseCumulativeSumPattern, pub gross_pnl: BaseCumulativeSumPattern,
pub sell_side_risk_ratio: _1m1w1y24hPattern6, pub sell_side_risk_ratio: _1m1w1y24hPattern7,
pub peak_regret: BaseCumulativeSumToPattern, pub peak_regret: BaseCumulativeSumToPattern,
pub investor: PricePattern, pub investor: PricePattern,
pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>, pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>,
@@ -6839,7 +6900,7 @@ impl SeriesTree_Cohorts_Utxo_Sth_Realized {
net_pnl: BaseChangeCumulativeDeltaSumToPattern::new(client.clone(), "sth_net".to_string()), net_pnl: BaseChangeCumulativeDeltaSumToPattern::new(client.clone(), "sth_net".to_string()),
sopr: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr::new(client.clone(), format!("{base_path}_sopr")), sopr: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr::new(client.clone(), format!("{base_path}_sopr")),
gross_pnl: BaseCumulativeSumPattern::new(client.clone(), "sth_realized_gross_pnl".to_string()), gross_pnl: BaseCumulativeSumPattern::new(client.clone(), "sth_realized_gross_pnl".to_string()),
sell_side_risk_ratio: _1m1w1y24hPattern6::new(client.clone(), "sth_sell_side_risk_ratio".to_string()), sell_side_risk_ratio: _1m1w1y24hPattern7::new(client.clone(), "sth_sell_side_risk_ratio".to_string()),
peak_regret: BaseCumulativeSumToPattern::new(client.clone(), "sth_realized_peak_regret".to_string()), peak_regret: BaseCumulativeSumToPattern::new(client.clone(), "sth_realized_peak_regret".to_string()),
investor: PricePattern::new(client.clone(), "sth_investor_price".to_string()), investor: PricePattern::new(client.clone(), "sth_investor_price".to_string()),
profit_to_loss_ratio: _1m1w1y24hPattern::new(client.clone(), "sth_realized_profit_to_loss_ratio".to_string()), profit_to_loss_ratio: _1m1w1y24hPattern::new(client.clone(), "sth_realized_profit_to_loss_ratio".to_string()),
@@ -6851,7 +6912,7 @@ impl SeriesTree_Cohorts_Utxo_Sth_Realized {
pub struct SeriesTree_Cohorts_Utxo_Sth_Realized_Loss { pub struct SeriesTree_Cohorts_Utxo_Sth_Realized_Loss {
pub base: CentsUsdPattern2, pub base: CentsUsdPattern2,
pub cumulative: CentsUsdPattern2, pub cumulative: CentsUsdPattern2,
pub sum: _1m1w1y24hPattern5, pub sum: _1m1w1y24hPattern6,
pub negative: BaseSumPattern, pub negative: BaseSumPattern,
pub to_rcap: BpsPercentRatioPattern4, pub to_rcap: BpsPercentRatioPattern4,
} }
@@ -6861,7 +6922,7 @@ impl SeriesTree_Cohorts_Utxo_Sth_Realized_Loss {
Self { Self {
base: CentsUsdPattern2::new(client.clone(), "sth_realized_loss".to_string()), base: CentsUsdPattern2::new(client.clone(), "sth_realized_loss".to_string()),
cumulative: CentsUsdPattern2::new(client.clone(), "sth_realized_loss_cumulative".to_string()), cumulative: CentsUsdPattern2::new(client.clone(), "sth_realized_loss_cumulative".to_string()),
sum: _1m1w1y24hPattern5::new(client.clone(), "sth_realized_loss_sum".to_string()), sum: _1m1w1y24hPattern6::new(client.clone(), "sth_realized_loss_sum".to_string()),
negative: BaseSumPattern::new(client.clone(), "sth_neg_realized_loss".to_string()), negative: BaseSumPattern::new(client.clone(), "sth_neg_realized_loss".to_string()),
to_rcap: BpsPercentRatioPattern4::new(client.clone(), "sth_realized_loss_to_rcap".to_string()), to_rcap: BpsPercentRatioPattern4::new(client.clone(), "sth_realized_loss_to_rcap".to_string()),
} }
@@ -7235,7 +7296,7 @@ pub struct SeriesTree_Cohorts_Utxo_Lth_Realized {
pub net_pnl: BaseChangeCumulativeDeltaSumToPattern, pub net_pnl: BaseChangeCumulativeDeltaSumToPattern,
pub sopr: SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr, pub sopr: SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr,
pub gross_pnl: BaseCumulativeSumPattern, pub gross_pnl: BaseCumulativeSumPattern,
pub sell_side_risk_ratio: _1m1w1y24hPattern6, pub sell_side_risk_ratio: _1m1w1y24hPattern7,
pub peak_regret: BaseCumulativeSumToPattern, pub peak_regret: BaseCumulativeSumToPattern,
pub investor: PricePattern, pub investor: PricePattern,
pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>, pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>,
@@ -7252,7 +7313,7 @@ impl SeriesTree_Cohorts_Utxo_Lth_Realized {
net_pnl: BaseChangeCumulativeDeltaSumToPattern::new(client.clone(), "lth_net".to_string()), net_pnl: BaseChangeCumulativeDeltaSumToPattern::new(client.clone(), "lth_net".to_string()),
sopr: SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr::new(client.clone(), format!("{base_path}_sopr")), sopr: SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr::new(client.clone(), format!("{base_path}_sopr")),
gross_pnl: BaseCumulativeSumPattern::new(client.clone(), "lth_realized_gross_pnl".to_string()), gross_pnl: BaseCumulativeSumPattern::new(client.clone(), "lth_realized_gross_pnl".to_string()),
sell_side_risk_ratio: _1m1w1y24hPattern6::new(client.clone(), "lth_sell_side_risk_ratio".to_string()), sell_side_risk_ratio: _1m1w1y24hPattern7::new(client.clone(), "lth_sell_side_risk_ratio".to_string()),
peak_regret: BaseCumulativeSumToPattern::new(client.clone(), "lth_realized_peak_regret".to_string()), peak_regret: BaseCumulativeSumToPattern::new(client.clone(), "lth_realized_peak_regret".to_string()),
investor: PricePattern::new(client.clone(), "lth_investor_price".to_string()), investor: PricePattern::new(client.clone(), "lth_investor_price".to_string()),
profit_to_loss_ratio: _1m1w1y24hPattern::new(client.clone(), "lth_realized_profit_to_loss_ratio".to_string()), profit_to_loss_ratio: _1m1w1y24hPattern::new(client.clone(), "lth_realized_profit_to_loss_ratio".to_string()),
@@ -7264,7 +7325,7 @@ impl SeriesTree_Cohorts_Utxo_Lth_Realized {
pub struct SeriesTree_Cohorts_Utxo_Lth_Realized_Loss { pub struct SeriesTree_Cohorts_Utxo_Lth_Realized_Loss {
pub base: CentsUsdPattern2, pub base: CentsUsdPattern2,
pub cumulative: CentsUsdPattern2, pub cumulative: CentsUsdPattern2,
pub sum: _1m1w1y24hPattern5, pub sum: _1m1w1y24hPattern6,
pub negative: BaseSumPattern, pub negative: BaseSumPattern,
pub to_rcap: BpsPercentRatioPattern4, pub to_rcap: BpsPercentRatioPattern4,
} }
@@ -7274,7 +7335,7 @@ impl SeriesTree_Cohorts_Utxo_Lth_Realized_Loss {
Self { Self {
base: CentsUsdPattern2::new(client.clone(), "lth_realized_loss".to_string()), base: CentsUsdPattern2::new(client.clone(), "lth_realized_loss".to_string()),
cumulative: CentsUsdPattern2::new(client.clone(), "lth_realized_loss_cumulative".to_string()), cumulative: CentsUsdPattern2::new(client.clone(), "lth_realized_loss_cumulative".to_string()),
sum: _1m1w1y24hPattern5::new(client.clone(), "lth_realized_loss_sum".to_string()), sum: _1m1w1y24hPattern6::new(client.clone(), "lth_realized_loss_sum".to_string()),
negative: BaseSumPattern::new(client.clone(), "lth_neg_realized_loss".to_string()), negative: BaseSumPattern::new(client.clone(), "lth_neg_realized_loss".to_string()),
to_rcap: BpsPercentRatioPattern4::new(client.clone(), "lth_realized_loss_to_rcap".to_string()), to_rcap: BpsPercentRatioPattern4::new(client.clone(), "lth_realized_loss_to_rcap".to_string()),
} }

View File

@@ -1,26 +1,26 @@
use brk_traversable::Traversable; use brk_traversable::Traversable;
use brk_types::{Bitcoin, Cents, Dollars, Height, Sats, Version}; use brk_types::{Bitcoin, Cents, Dollars, Height, Sats, StoredF32, Version};
use derive_more::{Deref, DerefMut}; use derive_more::{Deref, DerefMut};
use vecdb::{DeltaAvg, LazyDeltaVec, LazyVecFrom1, ReadableCloneableVec}; use vecdb::{DeltaAvg, LazyDeltaVec, LazyVecFrom1, ReadableCloneableVec};
use crate::{ use crate::{
indexes, indexes,
internal::{ internal::{
CachedWindowStarts, CentsUnsignedToDollars, DerivedResolutions, LazyPerBlock, CachedWindowStarts, DerivedResolutions, AvgCentsToUsd, AvgSatsToBtc, LazyPerBlock,
LazyRollingAvgFromHeight, Resolutions, SatsToBitcoin, Windows, LazyRollingAvgFromHeight, Resolutions, Windows,
}, },
}; };
/// Single window slot: lazy rolling average for Amount (sats + btc + cents + usd). /// Single window slot: lazy rolling average for Amount (sats + btc + cents + usd), all as f64.
#[derive(Clone, Traversable)] #[derive(Clone, Traversable)]
pub struct LazyRollingAvgAmountFromHeight { pub struct LazyRollingAvgAmountFromHeight {
pub btc: LazyPerBlock<Bitcoin, Sats>, pub btc: LazyPerBlock<Bitcoin, StoredF32>,
pub sats: LazyRollingAvgFromHeight<Sats>, pub sats: LazyRollingAvgFromHeight<Sats>,
pub usd: LazyPerBlock<Dollars, Cents>, pub usd: LazyPerBlock<Dollars, StoredF32>,
pub cents: LazyRollingAvgFromHeight<Cents>, pub cents: LazyRollingAvgFromHeight<Cents>,
} }
/// Lazy rolling averages for all 4 windows, for Amount (sats + btc + cents + usd). /// Lazy rolling averages for all 4 windows, for Amount (sats + btc + cents + usd), all as f64.
#[derive(Clone, Deref, DerefMut, Traversable)] #[derive(Clone, Deref, DerefMut, Traversable)]
#[traversable(transparent)] #[traversable(transparent)]
pub struct LazyRollingAvgsAmountFromHeight(pub Windows<LazyRollingAvgAmountFromHeight>); pub struct LazyRollingAvgsAmountFromHeight(pub Windows<LazyRollingAvgAmountFromHeight>);
@@ -42,8 +42,8 @@ impl LazyRollingAvgsAmountFromHeight {
let cached = cached_start.clone(); let cached = cached_start.clone();
let starts_version = cached.version(); let starts_version = cached.version();
// Sats lazy rolling avg // Sats lazy rolling avg → f64
let sats_avg = LazyDeltaVec::<Height, Sats, Sats, DeltaAvg>::new( let sats_avg = LazyDeltaVec::<Height, Sats, StoredF32, DeltaAvg>::new(
&format!("{full_name}_sats"), &format!("{full_name}_sats"),
version, version,
cum_sats.clone(), cum_sats.clone(),
@@ -64,22 +64,22 @@ impl LazyRollingAvgsAmountFromHeight {
resolutions: Box::new(sats_resolutions), resolutions: Box::new(sats_resolutions),
}; };
// Btc lazy from sats // Btc: f64 sats avg / 1e8
let btc = LazyPerBlock { let btc = LazyPerBlock {
height: LazyVecFrom1::transformed::<SatsToBitcoin>( height: LazyVecFrom1::transformed::<AvgSatsToBtc>(
&full_name, &full_name,
version, version,
sats.height.read_only_boxed_clone(), sats.height.read_only_boxed_clone(),
), ),
resolutions: Box::new(DerivedResolutions::from_derived_computed::<SatsToBitcoin>( resolutions: Box::new(DerivedResolutions::from_derived_computed::<AvgSatsToBtc>(
&full_name, &full_name,
version, version,
&sats.resolutions, &sats.resolutions,
)), )),
}; };
// Cents rolling avg // Cents lazy rolling avg → f64
let cents_avg = LazyDeltaVec::<Height, Cents, Cents, DeltaAvg>::new( let cents_avg = LazyDeltaVec::<Height, Cents, StoredF32, DeltaAvg>::new(
&format!("{full_name}_cents"), &format!("{full_name}_cents"),
version, version,
cum_cents.clone(), cum_cents.clone(),
@@ -97,17 +97,17 @@ impl LazyRollingAvgsAmountFromHeight {
resolutions: Box::new(cents_resolutions), resolutions: Box::new(cents_resolutions),
}; };
// Usd lazy from cents // Usd: f64 cents avg / 100
let usd = LazyPerBlock { let usd = LazyPerBlock {
height: LazyVecFrom1::transformed::<CentsUnsignedToDollars>( height: LazyVecFrom1::transformed::<AvgCentsToUsd>(
&format!("{full_name}_usd"), &format!("{full_name}_usd"),
version, version,
cents.height.read_only_boxed_clone(), cents.height.read_only_boxed_clone(),
), ),
resolutions: Box::new(DerivedResolutions::from_derived_computed::< resolutions: Box::new(DerivedResolutions::from_derived_computed::<AvgCentsToUsd>(
CentsUnsignedToDollars, &format!("{full_name}_usd"),
>( version,
&format!("{full_name}_usd"), version, &cents.resolutions &cents.resolutions,
)), )),
}; };

View File

@@ -1,18 +1,19 @@
use brk_traversable::Traversable; use brk_traversable::Traversable;
use brk_types::Height; use brk_types::{Height, StoredF32};
use schemars::JsonSchema; use schemars::JsonSchema;
use vecdb::{DeltaAvg, LazyDeltaVec}; use vecdb::{DeltaAvg, LazyDeltaVec};
use crate::internal::{NumericValue, Resolutions}; use crate::internal::{NumericValue, Resolutions};
/// A single lazy rolling-average slot from height: the lazy delta vec + its resolution views. /// A single lazy rolling-average slot from height: the lazy delta vec + its resolution views.
/// Output is always StoredF32 regardless of input type T.
#[derive(Clone, Traversable)] #[derive(Clone, Traversable)]
#[traversable(merge)] #[traversable(merge)]
pub struct LazyRollingAvgFromHeight<T> pub struct LazyRollingAvgFromHeight<T>
where where
T: NumericValue + JsonSchema, T: NumericValue + JsonSchema,
{ {
pub height: LazyDeltaVec<Height, T, T, DeltaAvg>, pub height: LazyDeltaVec<Height, T, StoredF32, DeltaAvg>,
#[traversable(flatten)] #[traversable(flatten)]
pub resolutions: Box<Resolutions<T>>, pub resolutions: Box<Resolutions<StoredF32>>,
} }

View File

@@ -1,5 +1,5 @@
use brk_traversable::Traversable; use brk_traversable::Traversable;
use brk_types::{Height, Version}; use brk_types::{Height, StoredF32, Version};
use derive_more::{Deref, DerefMut}; use derive_more::{Deref, DerefMut};
use schemars::JsonSchema; use schemars::JsonSchema;
use vecdb::{DeltaAvg, LazyDeltaVec, ReadableCloneableVec}; use vecdb::{DeltaAvg, LazyDeltaVec, ReadableCloneableVec};
@@ -15,8 +15,7 @@ use super::LazyRollingAvgFromHeight;
/// derived from a cumulative vec + cached window starts. /// derived from a cumulative vec + cached window starts.
/// ///
/// Nothing is stored on disk — all values are computed on-the-fly via /// Nothing is stored on disk — all values are computed on-the-fly via
/// `LazyDeltaVec<Height, T, T, DeltaAvg>`: `(cum[h] - cum[start-1]) / (h - start + 1)`. /// `LazyDeltaVec<Height, T, f64, DeltaAvg>`: `(cum[h] - cum[start-1]) / (h - start + 1)`.
/// T is converted to f64 internally for division, then back to T.
#[derive(Clone, Deref, DerefMut, Traversable)] #[derive(Clone, Deref, DerefMut, Traversable)]
#[traversable(transparent)] #[traversable(transparent)]
pub struct LazyRollingAvgsFromHeight<T>(pub Windows<LazyRollingAvgFromHeight<T>>) pub struct LazyRollingAvgsFromHeight<T>(pub Windows<LazyRollingAvgFromHeight<T>>)
@@ -40,7 +39,7 @@ where
let full_name = format!("{name}_{suffix}"); let full_name = format!("{name}_{suffix}");
let cached = cached_start.clone(); let cached = cached_start.clone();
let starts_version = cached.version(); let starts_version = cached.version();
let avg = LazyDeltaVec::<Height, T, T, DeltaAvg>::new( let avg = LazyDeltaVec::<Height, T, StoredF32, DeltaAvg>::new(
&full_name, &full_name,
version, version,
cum_source.clone(), cum_source.clone(),

View File

@@ -1,4 +1,4 @@
use brk_types::{Bitcoin, Cents, CentsSigned, Dollars, Sats, SatsFract}; use brk_types::{Bitcoin, Cents, CentsSigned, Dollars, Sats, SatsFract, StoredF32};
use vecdb::{BinaryTransform, UnaryTransform}; use vecdb::{BinaryTransform, UnaryTransform};
pub struct SatsToBitcoin; pub struct SatsToBitcoin;
@@ -10,6 +10,24 @@ impl UnaryTransform<Sats, Bitcoin> for SatsToBitcoin {
} }
} }
pub struct AvgSatsToBtc;
impl UnaryTransform<StoredF32, Bitcoin> for AvgSatsToBtc {
#[inline(always)]
fn apply(sats: StoredF32) -> Bitcoin {
Bitcoin::from(f64::from(sats) / Sats::ONE_BTC_U128 as f64)
}
}
pub struct AvgCentsToUsd;
impl UnaryTransform<StoredF32, Dollars> for AvgCentsToUsd {
#[inline(always)]
fn apply(cents: StoredF32) -> Dollars {
Dollars::from(f64::from(cents) / 100.0)
}
}
pub struct SatsToCents; pub struct SatsToCents;
impl BinaryTransform<Sats, Cents, Cents> for SatsToCents { impl BinaryTransform<Sats, Cents, Cents> for SatsToCents {

View File

@@ -16,7 +16,8 @@ pub use bps::{
}; };
pub use currency::{ pub use currency::{
CentsSignedToDollars, CentsSubtractToCentsSigned, CentsTimesTenths, CentsUnsignedToDollars, CentsSignedToDollars, CentsSubtractToCentsSigned, CentsTimesTenths, CentsUnsignedToDollars,
CentsUnsignedToSats, DollarsToSatsFract, NegCentsUnsignedToDollars, SatsToBitcoin, SatsToCents, CentsUnsignedToSats, DollarsToSatsFract, AvgCentsToUsd, AvgSatsToBtc,
NegCentsUnsignedToDollars, SatsToBitcoin, SatsToCents,
}; };
pub use derived::{ pub use derived::{
Days1, Days7, Days30, Days365, DaysToYears, PriceTimesRatioBp32Cents, PriceTimesRatioCents, Days1, Days7, Days30, Days365, DaysToYears, PriceTimesRatioBp32Cents, PriceTimesRatioCents,

View File

@@ -1746,18 +1746,18 @@ function create_10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, acc) {
/** /**
* @typedef {Object} _10y1m1w1y2y3m3y4y5y6m6y8yPattern3 * @typedef {Object} _10y1m1w1y2y3m3y4y5y6m6y8yPattern3
* @property {BtcCentsSatsUsdPattern} _10y * @property {BtcCentsSatsUsdPattern2} _10y
* @property {BtcCentsSatsUsdPattern} _1m * @property {BtcCentsSatsUsdPattern2} _1m
* @property {BtcCentsSatsUsdPattern} _1w * @property {BtcCentsSatsUsdPattern2} _1w
* @property {BtcCentsSatsUsdPattern} _1y * @property {BtcCentsSatsUsdPattern2} _1y
* @property {BtcCentsSatsUsdPattern} _2y * @property {BtcCentsSatsUsdPattern2} _2y
* @property {BtcCentsSatsUsdPattern} _3m * @property {BtcCentsSatsUsdPattern2} _3m
* @property {BtcCentsSatsUsdPattern} _3y * @property {BtcCentsSatsUsdPattern2} _3y
* @property {BtcCentsSatsUsdPattern} _4y * @property {BtcCentsSatsUsdPattern2} _4y
* @property {BtcCentsSatsUsdPattern} _5y * @property {BtcCentsSatsUsdPattern2} _5y
* @property {BtcCentsSatsUsdPattern} _6m * @property {BtcCentsSatsUsdPattern2} _6m
* @property {BtcCentsSatsUsdPattern} _6y * @property {BtcCentsSatsUsdPattern2} _6y
* @property {BtcCentsSatsUsdPattern} _8y * @property {BtcCentsSatsUsdPattern2} _8y
*/ */
/** /**
@@ -1768,18 +1768,18 @@ function create_10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, acc) {
*/ */
function create_10y1m1w1y2y3m3y4y5y6m6y8yPattern3(client, acc) { function create_10y1m1w1y2y3m3y4y5y6m6y8yPattern3(client, acc) {
return { return {
_10y: createBtcCentsSatsUsdPattern(client, _m(acc, '10y')), _10y: createBtcCentsSatsUsdPattern2(client, _m(acc, '10y')),
_1m: createBtcCentsSatsUsdPattern(client, _m(acc, '1m')), _1m: createBtcCentsSatsUsdPattern2(client, _m(acc, '1m')),
_1w: createBtcCentsSatsUsdPattern(client, _m(acc, '1w')), _1w: createBtcCentsSatsUsdPattern2(client, _m(acc, '1w')),
_1y: createBtcCentsSatsUsdPattern(client, _m(acc, '1y')), _1y: createBtcCentsSatsUsdPattern2(client, _m(acc, '1y')),
_2y: createBtcCentsSatsUsdPattern(client, _m(acc, '2y')), _2y: createBtcCentsSatsUsdPattern2(client, _m(acc, '2y')),
_3m: createBtcCentsSatsUsdPattern(client, _m(acc, '3m')), _3m: createBtcCentsSatsUsdPattern2(client, _m(acc, '3m')),
_3y: createBtcCentsSatsUsdPattern(client, _m(acc, '3y')), _3y: createBtcCentsSatsUsdPattern2(client, _m(acc, '3y')),
_4y: createBtcCentsSatsUsdPattern(client, _m(acc, '4y')), _4y: createBtcCentsSatsUsdPattern2(client, _m(acc, '4y')),
_5y: createBtcCentsSatsUsdPattern(client, _m(acc, '5y')), _5y: createBtcCentsSatsUsdPattern2(client, _m(acc, '5y')),
_6m: createBtcCentsSatsUsdPattern(client, _m(acc, '6m')), _6m: createBtcCentsSatsUsdPattern2(client, _m(acc, '6m')),
_6y: createBtcCentsSatsUsdPattern(client, _m(acc, '6y')), _6y: createBtcCentsSatsUsdPattern2(client, _m(acc, '6y')),
_8y: createBtcCentsSatsUsdPattern(client, _m(acc, '8y')), _8y: createBtcCentsSatsUsdPattern2(client, _m(acc, '8y')),
}; };
} }
@@ -1795,13 +1795,13 @@ function create_10y1m1w1y2y3m3y4y5y6m6y8yPattern3(client, acc) {
* @property {BpsCentsPercentilesRatioSatsSmaStdUsdPattern} price * @property {BpsCentsPercentilesRatioSatsSmaStdUsdPattern} price
* @property {BaseCumulativeSumToPattern} profit * @property {BaseCumulativeSumToPattern} profit
* @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio * @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio
* @property {_1m1w1y24hPattern6} sellSideRiskRatio * @property {_1m1w1y24hPattern7} sellSideRiskRatio
* @property {AdjustedRatioValuePattern} sopr * @property {AdjustedRatioValuePattern} sopr
*/ */
/** /**
* @typedef {Object} AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2 * @typedef {Object} AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2
* @property {_1m1w1y24hPattern<StoredU64>} average * @property {_1m1w1y24hPattern<StoredF32>} average
* @property {SeriesPattern1<StoredU64>} base * @property {SeriesPattern1<StoredU64>} base
* @property {SeriesPattern1<StoredU64>} cumulative * @property {SeriesPattern1<StoredU64>} cumulative
* @property {_1m1w1y24hPattern<StoredU64>} max * @property {_1m1w1y24hPattern<StoredU64>} max
@@ -1923,7 +1923,7 @@ function createAllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern3(client, acc) {
/** /**
* @typedef {Object} AverageMaxMedianMinPct10Pct25Pct75Pct90SumPattern * @typedef {Object} AverageMaxMedianMinPct10Pct25Pct75Pct90SumPattern
* @property {_1m1w1y24hPattern<StoredU64>} average * @property {_1m1w1y24hPattern<StoredF32>} average
* @property {_1m1w1y24hPattern<StoredU64>} max * @property {_1m1w1y24hPattern<StoredU64>} max
* @property {_1m1w1y24hPattern<StoredU64>} median * @property {_1m1w1y24hPattern<StoredU64>} median
* @property {_1m1w1y24hPattern<StoredU64>} min * @property {_1m1w1y24hPattern<StoredU64>} min
@@ -2194,11 +2194,11 @@ function createActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, acc) {
/** /**
* @typedef {Object} AverageBaseCumulativeInSumPattern * @typedef {Object} AverageBaseCumulativeInSumPattern
* @property {_1m1w1y24hPattern3} average * @property {_1m1w1y24hPattern3} average
* @property {BtcCentsSatsUsdPattern} base * @property {BtcCentsSatsUsdPattern2} base
* @property {BtcCentsSatsUsdPattern} cumulative * @property {BtcCentsSatsUsdPattern2} cumulative
* @property {AverageBaseCumulativeSumPattern3} inLoss * @property {AverageBaseCumulativeSumPattern3} inLoss
* @property {AverageBaseCumulativeSumPattern3} inProfit * @property {AverageBaseCumulativeSumPattern3} inProfit
* @property {_1m1w1y24hPattern3} sum * @property {_1m1w1y24hPattern4} sum
*/ */
/** /**
@@ -2210,11 +2210,11 @@ function createActivityAddrOutputsRealizedSupplyUnrealizedPattern(client, acc) {
function createAverageBaseCumulativeInSumPattern(client, acc) { function createAverageBaseCumulativeInSumPattern(client, acc) {
return { return {
average: create_1m1w1y24hPattern3(client, _m(acc, 'average')), average: create_1m1w1y24hPattern3(client, _m(acc, 'average')),
base: createBtcCentsSatsUsdPattern(client, acc), base: createBtcCentsSatsUsdPattern2(client, acc),
cumulative: createBtcCentsSatsUsdPattern(client, _m(acc, 'cumulative')), cumulative: createBtcCentsSatsUsdPattern2(client, _m(acc, 'cumulative')),
inLoss: createAverageBaseCumulativeSumPattern3(client, _m(acc, 'in_loss')), inLoss: createAverageBaseCumulativeSumPattern3(client, _m(acc, 'in_loss')),
inProfit: createAverageBaseCumulativeSumPattern3(client, _m(acc, 'in_profit')), inProfit: createAverageBaseCumulativeSumPattern3(client, _m(acc, 'in_profit')),
sum: create_1m1w1y24hPattern3(client, _m(acc, 'sum')), sum: create_1m1w1y24hPattern4(client, _m(acc, 'sum')),
}; };
} }
@@ -2224,7 +2224,7 @@ function createAverageBaseCumulativeInSumPattern(client, acc) {
* @property {ToPattern} change1m * @property {ToPattern} change1m
* @property {CentsUsdPattern} cumulative * @property {CentsUsdPattern} cumulative
* @property {AbsoluteRatePattern2} delta * @property {AbsoluteRatePattern2} delta
* @property {_1m1w1y24hPattern4} sum * @property {_1m1w1y24hPattern5} sum
* @property {BpsPercentRatioPattern} toRcap * @property {BpsPercentRatioPattern} toRcap
*/ */
@@ -2240,7 +2240,7 @@ function createBaseChangeCumulativeDeltaSumToPattern(client, acc) {
change1m: createToPattern(client, _m(acc, 'pnl_change_1m_to')), change1m: createToPattern(client, _m(acc, 'pnl_change_1m_to')),
cumulative: createCentsUsdPattern(client, _m(acc, 'realized_pnl_cumulative')), cumulative: createCentsUsdPattern(client, _m(acc, 'realized_pnl_cumulative')),
delta: createAbsoluteRatePattern2(client, _m(acc, 'realized_pnl_delta')), delta: createAbsoluteRatePattern2(client, _m(acc, 'realized_pnl_delta')),
sum: create_1m1w1y24hPattern4(client, _m(acc, 'realized_pnl_sum')), sum: create_1m1w1y24hPattern5(client, _m(acc, 'realized_pnl_sum')),
toRcap: createBpsPercentRatioPattern(client, _m(acc, 'realized_pnl_to_rcap')), toRcap: createBpsPercentRatioPattern(client, _m(acc, 'realized_pnl_to_rcap')),
}; };
} }
@@ -2329,11 +2329,11 @@ function createCentsNegativeToUsdPattern2(client, acc) {
/** /**
* @typedef {Object} DeltaHalfInToTotalPattern * @typedef {Object} DeltaHalfInToTotalPattern
* @property {AbsoluteRatePattern} delta * @property {AbsoluteRatePattern} delta
* @property {BtcCentsSatsUsdPattern} half * @property {BtcCentsSatsUsdPattern2} half
* @property {BtcCentsSatsToUsdPattern} inLoss * @property {BtcCentsSatsToUsdPattern} inLoss
* @property {BtcCentsSatsToUsdPattern} inProfit * @property {BtcCentsSatsToUsdPattern} inProfit
* @property {BpsPercentRatioPattern3} toCirculating * @property {BpsPercentRatioPattern3} toCirculating
* @property {BtcCentsSatsUsdPattern} total * @property {BtcCentsSatsUsdPattern2} total
*/ */
/** /**
@@ -2345,22 +2345,22 @@ function createCentsNegativeToUsdPattern2(client, acc) {
function createDeltaHalfInToTotalPattern(client, acc) { function createDeltaHalfInToTotalPattern(client, acc) {
return { return {
delta: createAbsoluteRatePattern(client, _m(acc, 'delta')), delta: createAbsoluteRatePattern(client, _m(acc, 'delta')),
half: createBtcCentsSatsUsdPattern(client, _m(acc, 'half')), half: createBtcCentsSatsUsdPattern2(client, _m(acc, 'half')),
inLoss: createBtcCentsSatsToUsdPattern(client, _m(acc, 'in_loss')), inLoss: createBtcCentsSatsToUsdPattern(client, _m(acc, 'in_loss')),
inProfit: createBtcCentsSatsToUsdPattern(client, _m(acc, 'in_profit')), inProfit: createBtcCentsSatsToUsdPattern(client, _m(acc, 'in_profit')),
toCirculating: createBpsPercentRatioPattern3(client, _m(acc, 'to_circulating')), toCirculating: createBpsPercentRatioPattern3(client, _m(acc, 'to_circulating')),
total: createBtcCentsSatsUsdPattern(client, acc), total: createBtcCentsSatsUsdPattern2(client, acc),
}; };
} }
/** /**
* @typedef {Object} DeltaHalfInToTotalPattern2 * @typedef {Object} DeltaHalfInToTotalPattern2
* @property {AbsoluteRatePattern} delta * @property {AbsoluteRatePattern} delta
* @property {BtcCentsSatsUsdPattern} half * @property {BtcCentsSatsUsdPattern2} half
* @property {BtcCentsSatsToUsdPattern3} inLoss * @property {BtcCentsSatsToUsdPattern3} inLoss
* @property {BtcCentsSatsToUsdPattern3} inProfit * @property {BtcCentsSatsToUsdPattern3} inProfit
* @property {BpsPercentRatioPattern3} toCirculating * @property {BpsPercentRatioPattern3} toCirculating
* @property {BtcCentsSatsUsdPattern} total * @property {BtcCentsSatsUsdPattern2} total
*/ */
/** /**
@@ -2372,11 +2372,11 @@ function createDeltaHalfInToTotalPattern(client, acc) {
function createDeltaHalfInToTotalPattern2(client, acc) { function createDeltaHalfInToTotalPattern2(client, acc) {
return { return {
delta: createAbsoluteRatePattern(client, _m(acc, 'delta')), delta: createAbsoluteRatePattern(client, _m(acc, 'delta')),
half: createBtcCentsSatsUsdPattern(client, _m(acc, 'half')), half: createBtcCentsSatsUsdPattern2(client, _m(acc, 'half')),
inLoss: createBtcCentsSatsToUsdPattern3(client, _m(acc, 'in_loss')), inLoss: createBtcCentsSatsToUsdPattern3(client, _m(acc, 'in_loss')),
inProfit: createBtcCentsSatsToUsdPattern3(client, _m(acc, 'in_profit')), inProfit: createBtcCentsSatsToUsdPattern3(client, _m(acc, 'in_profit')),
toCirculating: createBpsPercentRatioPattern3(client, _m(acc, 'to_circulating')), toCirculating: createBpsPercentRatioPattern3(client, _m(acc, 'to_circulating')),
total: createBtcCentsSatsUsdPattern(client, acc), total: createBtcCentsSatsUsdPattern2(client, acc),
}; };
} }
@@ -2407,6 +2407,31 @@ function createPct1Pct2Pct5Pct95Pct98Pct99Pattern(client, acc) {
}; };
} }
/**
* @typedef {Object} _1m1w1y24hBasePattern
* @property {SeriesPattern1<StoredF32>} _1m
* @property {SeriesPattern1<StoredF32>} _1w
* @property {SeriesPattern1<StoredF32>} _1y
* @property {SeriesPattern1<StoredF32>} _24h
* @property {SeriesPattern18<StoredU32>} base
*/
/**
* Create a _1m1w1y24hBasePattern pattern node
* @param {BrkClientBase} client
* @param {string} acc - Accumulated series name
* @returns {_1m1w1y24hBasePattern}
*/
function create_1m1w1y24hBasePattern(client, acc) {
return {
_1m: createSeriesPattern1(client, _m(acc, 'average_1m')),
_1w: createSeriesPattern1(client, _m(acc, 'average_1w')),
_1y: createSeriesPattern1(client, _m(acc, 'average_1y')),
_24h: createSeriesPattern1(client, _m(acc, 'average_24h')),
base: createSeriesPattern18(client, acc),
};
}
/** /**
* @typedef {Object} ActivityOutputsRealizedSupplyUnrealizedPattern * @typedef {Object} ActivityOutputsRealizedSupplyUnrealizedPattern
* @property {CoindaysTransferPattern} activity * @property {CoindaysTransferPattern} activity
@@ -2487,7 +2512,7 @@ function createActivityOutputsRealizedSupplyUnrealizedPattern2(client, acc) {
* @property {CentsUsdPattern2} base * @property {CentsUsdPattern2} base
* @property {CentsUsdPattern2} cumulative * @property {CentsUsdPattern2} cumulative
* @property {BaseSumPattern} negative * @property {BaseSumPattern} negative
* @property {_1m1w1y24hPattern5} sum * @property {_1m1w1y24hPattern6} sum
* @property {BpsPercentRatioPattern4} toRcap * @property {BpsPercentRatioPattern4} toRcap
*/ */
@@ -2644,10 +2669,10 @@ function createCentsToUsdPattern4(client, acc) {
/** /**
* @typedef {Object} DeltaHalfInTotalPattern2 * @typedef {Object} DeltaHalfInTotalPattern2
* @property {AbsoluteRatePattern} delta * @property {AbsoluteRatePattern} delta
* @property {BtcCentsSatsUsdPattern} half * @property {BtcCentsSatsUsdPattern2} half
* @property {BtcCentsSatsUsdPattern} inLoss * @property {BtcCentsSatsUsdPattern2} inLoss
* @property {BtcCentsSatsUsdPattern} inProfit * @property {BtcCentsSatsUsdPattern2} inProfit
* @property {BtcCentsSatsUsdPattern} total * @property {BtcCentsSatsUsdPattern2} total
*/ */
/** /**
@@ -2659,10 +2684,10 @@ function createCentsToUsdPattern4(client, acc) {
function createDeltaHalfInTotalPattern2(client, acc) { function createDeltaHalfInTotalPattern2(client, acc) {
return { return {
delta: createAbsoluteRatePattern(client, _m(acc, 'delta')), delta: createAbsoluteRatePattern(client, _m(acc, 'delta')),
half: createBtcCentsSatsUsdPattern(client, _m(acc, 'half')), half: createBtcCentsSatsUsdPattern2(client, _m(acc, 'half')),
inLoss: createBtcCentsSatsUsdPattern(client, _m(acc, 'in_loss')), inLoss: createBtcCentsSatsUsdPattern2(client, _m(acc, 'in_loss')),
inProfit: createBtcCentsSatsUsdPattern(client, _m(acc, 'in_profit')), inProfit: createBtcCentsSatsUsdPattern2(client, _m(acc, 'in_profit')),
total: createBtcCentsSatsUsdPattern(client, acc), total: createBtcCentsSatsUsdPattern2(client, acc),
}; };
} }
@@ -2700,33 +2725,6 @@ function createPhsReboundThsPattern(client, acc) {
}; };
} }
/**
* @template T
* @typedef {Object} _1m1w1y24hBasePattern
* @property {SeriesPattern1<T>} _1m
* @property {SeriesPattern1<T>} _1w
* @property {SeriesPattern1<T>} _1y
* @property {SeriesPattern1<T>} _24h
* @property {SeriesPattern18<T>} base
*/
/**
* Create a _1m1w1y24hBasePattern pattern node
* @template T
* @param {BrkClientBase} client
* @param {string} acc - Accumulated series name
* @returns {_1m1w1y24hBasePattern<T>}
*/
function create_1m1w1y24hBasePattern(client, acc) {
return {
_1m: createSeriesPattern1(client, _m(acc, 'average_1m')),
_1w: createSeriesPattern1(client, _m(acc, 'average_1w')),
_1y: createSeriesPattern1(client, _m(acc, 'average_1y')),
_24h: createSeriesPattern1(client, _m(acc, 'average_24h')),
base: createSeriesPattern18(client, acc),
};
}
/** /**
* @typedef {Object} _1m1w1y24hPattern2 * @typedef {Object} _1m1w1y24hPattern2
* @property {BpsPercentRatioPattern} _1m * @property {BpsPercentRatioPattern} _1m
@@ -2751,7 +2749,7 @@ function create_1m1w1y24hPattern2(client, acc) {
} }
/** /**
* @typedef {Object} _1m1w1y24hPattern6 * @typedef {Object} _1m1w1y24hPattern7
* @property {BpsPercentRatioPattern4} _1m * @property {BpsPercentRatioPattern4} _1m
* @property {BpsPercentRatioPattern4} _1w * @property {BpsPercentRatioPattern4} _1w
* @property {BpsPercentRatioPattern4} _1y * @property {BpsPercentRatioPattern4} _1y
@@ -2759,12 +2757,12 @@ function create_1m1w1y24hPattern2(client, acc) {
*/ */
/** /**
* Create a _1m1w1y24hPattern6 pattern node * Create a _1m1w1y24hPattern7 pattern node
* @param {BrkClientBase} client * @param {BrkClientBase} client
* @param {string} acc - Accumulated series name * @param {string} acc - Accumulated series name
* @returns {_1m1w1y24hPattern6} * @returns {_1m1w1y24hPattern7}
*/ */
function create_1m1w1y24hPattern6(client, acc) { function create_1m1w1y24hPattern7(client, acc) {
return { return {
_1m: createBpsPercentRatioPattern4(client, _m(acc, '1m')), _1m: createBpsPercentRatioPattern4(client, _m(acc, '1m')),
_1w: createBpsPercentRatioPattern4(client, _m(acc, '1w')), _1w: createBpsPercentRatioPattern4(client, _m(acc, '1w')),
@@ -2796,6 +2794,29 @@ function create_1m1w1y24hPattern3(client, acc) {
}; };
} }
/**
* @typedef {Object} _1m1w1y24hPattern4
* @property {BtcCentsSatsUsdPattern2} _1m
* @property {BtcCentsSatsUsdPattern2} _1w
* @property {BtcCentsSatsUsdPattern2} _1y
* @property {BtcCentsSatsUsdPattern2} _24h
*/
/**
* Create a _1m1w1y24hPattern4 pattern node
* @param {BrkClientBase} client
* @param {string} acc - Accumulated series name
* @returns {_1m1w1y24hPattern4}
*/
function create_1m1w1y24hPattern4(client, acc) {
return {
_1m: createBtcCentsSatsUsdPattern2(client, _m(acc, '1m')),
_1w: createBtcCentsSatsUsdPattern2(client, _m(acc, '1w')),
_1y: createBtcCentsSatsUsdPattern2(client, _m(acc, '1y')),
_24h: createBtcCentsSatsUsdPattern2(client, _m(acc, '24h')),
};
}
/** /**
* @typedef {Object} _1m1w1y2wPattern * @typedef {Object} _1m1w1y2wPattern
* @property {CentsSatsUsdPattern} _1m * @property {CentsSatsUsdPattern} _1m
@@ -2820,36 +2841,13 @@ function create_1m1w1y2wPattern(client, acc) {
} }
/** /**
* @typedef {Object} _1m1w1y24hPattern4 * @typedef {Object} _1m1w1y24hPattern5
* @property {CentsUsdPattern} _1m * @property {CentsUsdPattern} _1m
* @property {CentsUsdPattern} _1w * @property {CentsUsdPattern} _1w
* @property {CentsUsdPattern} _1y * @property {CentsUsdPattern} _1y
* @property {CentsUsdPattern} _24h * @property {CentsUsdPattern} _24h
*/ */
/**
* Create a _1m1w1y24hPattern4 pattern node
* @param {BrkClientBase} client
* @param {string} acc - Accumulated series name
* @returns {_1m1w1y24hPattern4}
*/
function create_1m1w1y24hPattern4(client, acc) {
return {
_1m: createCentsUsdPattern(client, _m(acc, '1m')),
_1w: createCentsUsdPattern(client, _m(acc, '1w')),
_1y: createCentsUsdPattern(client, _m(acc, '1y')),
_24h: createCentsUsdPattern(client, _m(acc, '24h')),
};
}
/**
* @typedef {Object} _1m1w1y24hPattern5
* @property {CentsUsdPattern2} _1m
* @property {CentsUsdPattern2} _1w
* @property {CentsUsdPattern2} _1y
* @property {CentsUsdPattern2} _24h
*/
/** /**
* Create a _1m1w1y24hPattern5 pattern node * Create a _1m1w1y24hPattern5 pattern node
* @param {BrkClientBase} client * @param {BrkClientBase} client
@@ -2857,6 +2855,29 @@ function create_1m1w1y24hPattern4(client, acc) {
* @returns {_1m1w1y24hPattern5} * @returns {_1m1w1y24hPattern5}
*/ */
function create_1m1w1y24hPattern5(client, acc) { function create_1m1w1y24hPattern5(client, acc) {
return {
_1m: createCentsUsdPattern(client, _m(acc, '1m')),
_1w: createCentsUsdPattern(client, _m(acc, '1w')),
_1y: createCentsUsdPattern(client, _m(acc, '1y')),
_24h: createCentsUsdPattern(client, _m(acc, '24h')),
};
}
/**
* @typedef {Object} _1m1w1y24hPattern6
* @property {CentsUsdPattern2} _1m
* @property {CentsUsdPattern2} _1w
* @property {CentsUsdPattern2} _1y
* @property {CentsUsdPattern2} _24h
*/
/**
* Create a _1m1w1y24hPattern6 pattern node
* @param {BrkClientBase} client
* @param {string} acc - Accumulated series name
* @returns {_1m1w1y24hPattern6}
*/
function create_1m1w1y24hPattern6(client, acc) {
return { return {
_1m: createCentsUsdPattern2(client, _m(acc, '1m')), _1m: createCentsUsdPattern2(client, _m(acc, '1m')),
_1w: createCentsUsdPattern2(client, _m(acc, '1w')), _1w: createCentsUsdPattern2(client, _m(acc, '1w')),
@@ -2875,7 +2896,7 @@ function create_1m1w1y24hPattern5(client, acc) {
/** /**
* @typedef {Object} AverageBaseCumulativeSumPattern2 * @typedef {Object} AverageBaseCumulativeSumPattern2
* @property {_1m1w1y24hPattern<StoredU64>} average * @property {_1m1w1y24hPattern<StoredF32>} average
* @property {SeriesPattern1<StoredU32>} base * @property {SeriesPattern1<StoredU32>} base
* @property {SeriesPattern1<StoredU64>} cumulative * @property {SeriesPattern1<StoredU64>} cumulative
* @property {_1m1w1y24hPattern<StoredU64>} sum * @property {_1m1w1y24hPattern<StoredU64>} sum
@@ -2899,9 +2920,9 @@ function createAverageBaseCumulativeSumPattern2(client, acc) {
/** /**
* @typedef {Object} AverageBaseCumulativeSumPattern3 * @typedef {Object} AverageBaseCumulativeSumPattern3
* @property {_1m1w1y24hPattern3} average * @property {_1m1w1y24hPattern3} average
* @property {BtcCentsSatsUsdPattern} base * @property {BtcCentsSatsUsdPattern2} base
* @property {BtcCentsSatsUsdPattern} cumulative * @property {BtcCentsSatsUsdPattern2} cumulative
* @property {_1m1w1y24hPattern3} sum * @property {_1m1w1y24hPattern4} sum
*/ */
/** /**
@@ -2913,9 +2934,9 @@ function createAverageBaseCumulativeSumPattern2(client, acc) {
function createAverageBaseCumulativeSumPattern3(client, acc) { function createAverageBaseCumulativeSumPattern3(client, acc) {
return { return {
average: create_1m1w1y24hPattern3(client, _m(acc, 'average')), average: create_1m1w1y24hPattern3(client, _m(acc, 'average')),
base: createBtcCentsSatsUsdPattern(client, acc), base: createBtcCentsSatsUsdPattern2(client, acc),
cumulative: createBtcCentsSatsUsdPattern(client, _m(acc, 'cumulative')), cumulative: createBtcCentsSatsUsdPattern2(client, _m(acc, 'cumulative')),
sum: create_1m1w1y24hPattern3(client, _m(acc, 'sum')), sum: create_1m1w1y24hPattern4(client, _m(acc, 'sum')),
}; };
} }
@@ -2924,7 +2945,7 @@ function createAverageBaseCumulativeSumPattern3(client, acc) {
* @property {CentsUsdPattern} base * @property {CentsUsdPattern} base
* @property {CentsUsdPattern} cumulative * @property {CentsUsdPattern} cumulative
* @property {AbsoluteRatePattern2} delta * @property {AbsoluteRatePattern2} delta
* @property {_1m1w1y24hPattern4} sum * @property {_1m1w1y24hPattern5} sum
*/ */
/** /**
@@ -2938,7 +2959,7 @@ function createBaseCumulativeDeltaSumPattern(client, acc) {
base: createCentsUsdPattern(client, acc), base: createCentsUsdPattern(client, acc),
cumulative: createCentsUsdPattern(client, _m(acc, 'cumulative')), cumulative: createCentsUsdPattern(client, _m(acc, 'cumulative')),
delta: createAbsoluteRatePattern2(client, _m(acc, 'delta')), delta: createAbsoluteRatePattern2(client, _m(acc, 'delta')),
sum: create_1m1w1y24hPattern4(client, _m(acc, 'sum')), sum: create_1m1w1y24hPattern5(client, _m(acc, 'sum')),
}; };
} }
@@ -2947,7 +2968,7 @@ function createBaseCumulativeDeltaSumPattern(client, acc) {
* @property {CentsUsdPattern2} base * @property {CentsUsdPattern2} base
* @property {CentsUsdPattern2} cumulative * @property {CentsUsdPattern2} cumulative
* @property {BaseSumPattern} negative * @property {BaseSumPattern} negative
* @property {_1m1w1y24hPattern5} sum * @property {_1m1w1y24hPattern6} sum
*/ */
/** /**
@@ -2961,7 +2982,7 @@ function createBaseCumulativeNegativeSumPattern(client, acc) {
base: createCentsUsdPattern2(client, _m(acc, 'realized_loss')), base: createCentsUsdPattern2(client, _m(acc, 'realized_loss')),
cumulative: createCentsUsdPattern2(client, _m(acc, 'realized_loss_cumulative')), cumulative: createCentsUsdPattern2(client, _m(acc, 'realized_loss_cumulative')),
negative: createBaseSumPattern(client, _m(acc, 'neg_realized_loss')), negative: createBaseSumPattern(client, _m(acc, 'neg_realized_loss')),
sum: create_1m1w1y24hPattern5(client, _m(acc, 'realized_loss_sum')), sum: create_1m1w1y24hPattern6(client, _m(acc, 'realized_loss_sum')),
}; };
} }
@@ -2969,7 +2990,7 @@ function createBaseCumulativeNegativeSumPattern(client, acc) {
* @typedef {Object} BaseCumulativeSumToPattern * @typedef {Object} BaseCumulativeSumToPattern
* @property {CentsUsdPattern2} base * @property {CentsUsdPattern2} base
* @property {CentsUsdPattern2} cumulative * @property {CentsUsdPattern2} cumulative
* @property {_1m1w1y24hPattern5} sum * @property {_1m1w1y24hPattern6} sum
* @property {BpsPercentRatioPattern4} toRcap * @property {BpsPercentRatioPattern4} toRcap
*/ */
@@ -2983,17 +3004,17 @@ function createBaseCumulativeSumToPattern(client, acc) {
return { return {
base: createCentsUsdPattern2(client, acc), base: createCentsUsdPattern2(client, acc),
cumulative: createCentsUsdPattern2(client, _m(acc, 'cumulative')), cumulative: createCentsUsdPattern2(client, _m(acc, 'cumulative')),
sum: create_1m1w1y24hPattern5(client, _m(acc, 'sum')), sum: create_1m1w1y24hPattern6(client, _m(acc, 'sum')),
toRcap: createBpsPercentRatioPattern4(client, _m(acc, 'to_rcap')), toRcap: createBpsPercentRatioPattern4(client, _m(acc, 'to_rcap')),
}; };
} }
/** /**
* @typedef {Object} BothReactivatedReceivingSendingPattern * @typedef {Object} BothReactivatedReceivingSendingPattern
* @property {_1m1w1y24hBasePattern<StoredU32>} both * @property {_1m1w1y24hBasePattern} both
* @property {_1m1w1y24hBasePattern<StoredU32>} reactivated * @property {_1m1w1y24hBasePattern} reactivated
* @property {_1m1w1y24hBasePattern<StoredU32>} receiving * @property {_1m1w1y24hBasePattern} receiving
* @property {_1m1w1y24hBasePattern<StoredU32>} sending * @property {_1m1w1y24hBasePattern} sending
*/ */
/** /**
@@ -3012,13 +3033,36 @@ function createBothReactivatedReceivingSendingPattern(client, acc) {
} }
/** /**
* @typedef {Object} BtcCentsSatsUsdPattern * @typedef {Object} BtcCentsSatsUsdPattern2
* @property {SeriesPattern1<Bitcoin>} btc * @property {SeriesPattern1<Bitcoin>} btc
* @property {SeriesPattern1<Cents>} cents * @property {SeriesPattern1<Cents>} cents
* @property {SeriesPattern1<Sats>} sats * @property {SeriesPattern1<Sats>} sats
* @property {SeriesPattern1<Dollars>} usd * @property {SeriesPattern1<Dollars>} usd
*/ */
/**
* Create a BtcCentsSatsUsdPattern2 pattern node
* @param {BrkClientBase} client
* @param {string} acc - Accumulated series name
* @returns {BtcCentsSatsUsdPattern2}
*/
function createBtcCentsSatsUsdPattern2(client, acc) {
return {
btc: createSeriesPattern1(client, acc),
cents: createSeriesPattern1(client, _m(acc, 'cents')),
sats: createSeriesPattern1(client, _m(acc, 'sats')),
usd: createSeriesPattern1(client, _m(acc, 'usd')),
};
}
/**
* @typedef {Object} BtcCentsSatsUsdPattern
* @property {SeriesPattern1<Bitcoin>} btc
* @property {SeriesPattern1<StoredF32>} cents
* @property {SeriesPattern1<StoredF32>} sats
* @property {SeriesPattern1<Dollars>} usd
*/
/** /**
* Create a BtcCentsSatsUsdPattern pattern node * Create a BtcCentsSatsUsdPattern pattern node
* @param {BrkClientBase} client * @param {BrkClientBase} client
@@ -3172,7 +3216,7 @@ function createAverageBaseCumulativeSumPattern(client, acc) {
* @typedef {Object} BaseCumulativeSumPattern * @typedef {Object} BaseCumulativeSumPattern
* @property {CentsUsdPattern2} base * @property {CentsUsdPattern2} base
* @property {CentsUsdPattern2} cumulative * @property {CentsUsdPattern2} cumulative
* @property {_1m1w1y24hPattern5} sum * @property {_1m1w1y24hPattern6} sum
*/ */
/** /**
@@ -3185,7 +3229,7 @@ function createBaseCumulativeSumPattern(client, acc) {
return { return {
base: createCentsUsdPattern2(client, acc), base: createCentsUsdPattern2(client, acc),
cumulative: createCentsUsdPattern2(client, _m(acc, 'cumulative')), cumulative: createCentsUsdPattern2(client, _m(acc, 'cumulative')),
sum: create_1m1w1y24hPattern5(client, _m(acc, 'sum')), sum: create_1m1w1y24hPattern6(client, _m(acc, 'sum')),
}; };
} }
@@ -3424,8 +3468,8 @@ function createCumulativeRollingSumPattern(client, acc) {
/** /**
* @typedef {Object} DeltaHalfTotalPattern * @typedef {Object} DeltaHalfTotalPattern
* @property {AbsoluteRatePattern} delta * @property {AbsoluteRatePattern} delta
* @property {BtcCentsSatsUsdPattern} half * @property {BtcCentsSatsUsdPattern2} half
* @property {BtcCentsSatsUsdPattern} total * @property {BtcCentsSatsUsdPattern2} total
*/ */
/** /**
@@ -3437,8 +3481,8 @@ function createCumulativeRollingSumPattern(client, acc) {
function createDeltaHalfTotalPattern(client, acc) { function createDeltaHalfTotalPattern(client, acc) {
return { return {
delta: createAbsoluteRatePattern(client, _m(acc, 'delta')), delta: createAbsoluteRatePattern(client, _m(acc, 'delta')),
half: createBtcCentsSatsUsdPattern(client, _m(acc, 'half')), half: createBtcCentsSatsUsdPattern2(client, _m(acc, 'half')),
total: createBtcCentsSatsUsdPattern(client, acc), total: createBtcCentsSatsUsdPattern2(client, acc),
}; };
} }
@@ -3542,7 +3586,7 @@ function createAbsoluteRatePattern(client, acc) {
/** /**
* @typedef {Object} AbsoluteRatePattern2 * @typedef {Object} AbsoluteRatePattern2
* @property {_1m1w1y24hPattern4} absolute * @property {_1m1w1y24hPattern5} absolute
* @property {_1m1w1y24hPattern2} rate * @property {_1m1w1y24hPattern2} rate
*/ */
@@ -3554,7 +3598,7 @@ function createAbsoluteRatePattern(client, acc) {
*/ */
function createAbsoluteRatePattern2(client, acc) { function createAbsoluteRatePattern2(client, acc) {
return { return {
absolute: create_1m1w1y24hPattern4(client, acc), absolute: create_1m1w1y24hPattern5(client, acc),
rate: create_1m1w1y24hPattern2(client, acc), rate: create_1m1w1y24hPattern2(client, acc),
}; };
} }
@@ -3562,7 +3606,7 @@ function createAbsoluteRatePattern2(client, acc) {
/** /**
* @typedef {Object} AllSthPattern2 * @typedef {Object} AllSthPattern2
* @property {BtcCentsDeltaSatsUsdPattern} all * @property {BtcCentsDeltaSatsUsdPattern} all
* @property {BtcCentsSatsUsdPattern} sth * @property {BtcCentsSatsUsdPattern2} sth
*/ */
/** /**
@@ -3574,7 +3618,7 @@ function createAbsoluteRatePattern2(client, acc) {
function createAllSthPattern2(client, acc) { function createAllSthPattern2(client, acc) {
return { return {
all: createBtcCentsDeltaSatsUsdPattern(client, _m(acc, 'supply')), all: createBtcCentsDeltaSatsUsdPattern(client, _m(acc, 'supply')),
sth: createBtcCentsSatsUsdPattern(client, _m(acc, 'sth_supply')), sth: createBtcCentsSatsUsdPattern2(client, _m(acc, 'sth_supply')),
}; };
} }
@@ -3968,7 +4012,7 @@ function createUnspentPattern(client, acc) {
* @property {SeriesTree_Blocks_Weight} weight * @property {SeriesTree_Blocks_Weight} weight
* @property {SeriesTree_Blocks_Count} count * @property {SeriesTree_Blocks_Count} count
* @property {SeriesTree_Blocks_Lookback} lookback * @property {SeriesTree_Blocks_Lookback} lookback
* @property {_1m1w1y24hBasePattern<Timestamp>} interval * @property {SeriesTree_Blocks_Interval} interval
* @property {AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2} vbytes * @property {AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2} vbytes
* @property {SeriesTree_Blocks_Fullness} fullness * @property {SeriesTree_Blocks_Fullness} fullness
* @property {SeriesTree_Blocks_Halving} halving * @property {SeriesTree_Blocks_Halving} halving
@@ -3996,7 +4040,7 @@ function createUnspentPattern(client, acc) {
* @property {SeriesPattern18<StoredU64>} base * @property {SeriesPattern18<StoredU64>} base
* @property {SeriesPattern1<StoredU64>} cumulative * @property {SeriesPattern1<StoredU64>} cumulative
* @property {_1m1w1y24hPattern<StoredU64>} sum * @property {_1m1w1y24hPattern<StoredU64>} sum
* @property {_1m1w1y24hPattern<StoredU64>} average * @property {_1m1w1y24hPattern<StoredF32>} average
* @property {_1m1w1y24hPattern<StoredU64>} min * @property {_1m1w1y24hPattern<StoredU64>} min
* @property {_1m1w1y24hPattern<StoredU64>} max * @property {_1m1w1y24hPattern<StoredU64>} max
* @property {_1m1w1y24hPattern<StoredU64>} pct10 * @property {_1m1w1y24hPattern<StoredU64>} pct10
@@ -4011,7 +4055,7 @@ function createUnspentPattern(client, acc) {
* @property {SeriesPattern18<Weight>} base * @property {SeriesPattern18<Weight>} base
* @property {SeriesPattern1<Weight>} cumulative * @property {SeriesPattern1<Weight>} cumulative
* @property {_1m1w1y24hPattern<Weight>} sum * @property {_1m1w1y24hPattern<Weight>} sum
* @property {_1m1w1y24hPattern<Weight>} average * @property {_1m1w1y24hPattern<StoredF32>} average
* @property {_1m1w1y24hPattern<Weight>} min * @property {_1m1w1y24hPattern<Weight>} min
* @property {_1m1w1y24hPattern<Weight>} max * @property {_1m1w1y24hPattern<Weight>} max
* @property {_1m1w1y24hPattern<Weight>} pct10 * @property {_1m1w1y24hPattern<Weight>} pct10
@@ -4074,6 +4118,15 @@ function createUnspentPattern(client, acc) {
* @property {SeriesPattern18<Height>} _26y * @property {SeriesPattern18<Height>} _26y
*/ */
/**
* @typedef {Object} SeriesTree_Blocks_Interval
* @property {SeriesPattern18<Timestamp>} base
* @property {SeriesPattern1<StoredF32>} _24h
* @property {SeriesPattern1<StoredF32>} _1w
* @property {SeriesPattern1<StoredF32>} _1m
* @property {SeriesPattern1<StoredF32>} _1y
*/
/** /**
* @typedef {Object} SeriesTree_Blocks_Fullness * @typedef {Object} SeriesTree_Blocks_Fullness
* @property {SeriesPattern18<BasisPoints16>} bps * @property {SeriesPattern18<BasisPoints16>} bps
@@ -4411,9 +4464,9 @@ function createUnspentPattern(client, acc) {
/** /**
* @typedef {Object} SeriesTree_Mining_Rewards_Subsidy * @typedef {Object} SeriesTree_Mining_Rewards_Subsidy
* @property {BtcCentsSatsUsdPattern} base * @property {BtcCentsSatsUsdPattern2} base
* @property {BtcCentsSatsUsdPattern} cumulative * @property {BtcCentsSatsUsdPattern2} cumulative
* @property {_1m1w1y24hPattern3} sum * @property {_1m1w1y24hPattern4} sum
* @property {_1m1w1y24hPattern3} average * @property {_1m1w1y24hPattern3} average
* @property {_1m1w1y24hBpsPercentRatioPattern} dominance * @property {_1m1w1y24hBpsPercentRatioPattern} dominance
* @property {CentsUsdPattern2} sma1y * @property {CentsUsdPattern2} sma1y
@@ -4421,17 +4474,17 @@ function createUnspentPattern(client, acc) {
/** /**
* @typedef {Object} SeriesTree_Mining_Rewards_Fees * @typedef {Object} SeriesTree_Mining_Rewards_Fees
* @property {BtcCentsSatsUsdPattern} base * @property {BtcCentsSatsUsdPattern2} base
* @property {BtcCentsSatsUsdPattern} cumulative * @property {BtcCentsSatsUsdPattern2} cumulative
* @property {_1m1w1y24hPattern3} sum * @property {_1m1w1y24hPattern4} sum
* @property {_1m1w1y24hPattern3} average * @property {_1m1w1y24hPattern3} average
* @property {_1m1w1y24hPattern3} min * @property {_1m1w1y24hPattern4} min
* @property {_1m1w1y24hPattern3} max * @property {_1m1w1y24hPattern4} max
* @property {_1m1w1y24hPattern3} pct10 * @property {_1m1w1y24hPattern4} pct10
* @property {_1m1w1y24hPattern3} pct25 * @property {_1m1w1y24hPattern4} pct25
* @property {_1m1w1y24hPattern3} median * @property {_1m1w1y24hPattern4} median
* @property {_1m1w1y24hPattern3} pct75 * @property {_1m1w1y24hPattern4} pct75
* @property {_1m1w1y24hPattern3} pct90 * @property {_1m1w1y24hPattern4} pct90
* @property {_1m1w1y24hBpsPercentRatioPattern} dominance * @property {_1m1w1y24hBpsPercentRatioPattern} dominance
* @property {SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio} toSubsidyRatio * @property {SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio} toSubsidyRatio
*/ */
@@ -4446,8 +4499,8 @@ function createUnspentPattern(client, acc) {
/** /**
* @typedef {Object} SeriesTree_Mining_Rewards_Unclaimed * @typedef {Object} SeriesTree_Mining_Rewards_Unclaimed
* @property {BtcCentsSatsUsdPattern} base * @property {BtcCentsSatsUsdPattern2} base
* @property {BtcCentsSatsUsdPattern} cumulative * @property {BtcCentsSatsUsdPattern2} cumulative
*/ */
/** /**
@@ -4502,8 +4555,8 @@ function createUnspentPattern(client, acc) {
/** /**
* @typedef {Object} SeriesTree_Cointime_Supply * @typedef {Object} SeriesTree_Cointime_Supply
* @property {BtcCentsSatsUsdPattern} vaulted * @property {BtcCentsSatsUsdPattern2} vaulted
* @property {BtcCentsSatsUsdPattern} active * @property {BtcCentsSatsUsdPattern2} active
*/ */
/** /**
@@ -5046,18 +5099,18 @@ function createUnspentPattern(client, acc) {
/** /**
* @typedef {Object} SeriesTree_Market_Dca_Class_Stack * @typedef {Object} SeriesTree_Market_Dca_Class_Stack
* @property {BtcCentsSatsUsdPattern} from2015 * @property {BtcCentsSatsUsdPattern2} from2015
* @property {BtcCentsSatsUsdPattern} from2016 * @property {BtcCentsSatsUsdPattern2} from2016
* @property {BtcCentsSatsUsdPattern} from2017 * @property {BtcCentsSatsUsdPattern2} from2017
* @property {BtcCentsSatsUsdPattern} from2018 * @property {BtcCentsSatsUsdPattern2} from2018
* @property {BtcCentsSatsUsdPattern} from2019 * @property {BtcCentsSatsUsdPattern2} from2019
* @property {BtcCentsSatsUsdPattern} from2020 * @property {BtcCentsSatsUsdPattern2} from2020
* @property {BtcCentsSatsUsdPattern} from2021 * @property {BtcCentsSatsUsdPattern2} from2021
* @property {BtcCentsSatsUsdPattern} from2022 * @property {BtcCentsSatsUsdPattern2} from2022
* @property {BtcCentsSatsUsdPattern} from2023 * @property {BtcCentsSatsUsdPattern2} from2023
* @property {BtcCentsSatsUsdPattern} from2024 * @property {BtcCentsSatsUsdPattern2} from2024
* @property {BtcCentsSatsUsdPattern} from2025 * @property {BtcCentsSatsUsdPattern2} from2025
* @property {BtcCentsSatsUsdPattern} from2026 * @property {BtcCentsSatsUsdPattern2} from2026
*/ */
/** /**
@@ -5351,13 +5404,13 @@ function createUnspentPattern(client, acc) {
/** /**
* @typedef {Object} SeriesTree_Supply * @typedef {Object} SeriesTree_Supply
* @property {SeriesPattern18<SupplyState>} state * @property {SeriesPattern18<SupplyState>} state
* @property {BtcCentsSatsUsdPattern} circulating * @property {BtcCentsSatsUsdPattern2} circulating
* @property {AverageBaseCumulativeSumPattern3} burned * @property {AverageBaseCumulativeSumPattern3} burned
* @property {BpsPercentRatioPattern} inflationRate * @property {BpsPercentRatioPattern} inflationRate
* @property {SeriesTree_Supply_Velocity} velocity * @property {SeriesTree_Supply_Velocity} velocity
* @property {CentsDeltaUsdPattern} marketCap * @property {CentsDeltaUsdPattern} marketCap
* @property {_1m1w1y24hPattern<BasisPointsSigned32>} marketMinusRealizedCapGrowthRate * @property {_1m1w1y24hPattern<BasisPointsSigned32>} marketMinusRealizedCapGrowthRate
* @property {BtcCentsSatsUsdPattern} hodledOrLost * @property {BtcCentsSatsUsdPattern2} hodledOrLost
*/ */
/** /**
@@ -5402,8 +5455,8 @@ function createUnspentPattern(client, acc) {
/** /**
* @typedef {Object} SeriesTree_Cohorts_Utxo_All_Supply * @typedef {Object} SeriesTree_Cohorts_Utxo_All_Supply
* @property {BtcCentsSatsUsdPattern} total * @property {BtcCentsSatsUsdPattern2} total
* @property {BtcCentsSatsUsdPattern} half * @property {BtcCentsSatsUsdPattern2} half
* @property {AbsoluteRatePattern} delta * @property {AbsoluteRatePattern} delta
* @property {BtcCentsSatsToUsdPattern2} inProfit * @property {BtcCentsSatsToUsdPattern2} inProfit
* @property {BtcCentsSatsToUsdPattern2} inLoss * @property {BtcCentsSatsToUsdPattern2} inLoss
@@ -5427,7 +5480,7 @@ function createUnspentPattern(client, acc) {
* @property {BaseChangeCumulativeDeltaSumToPattern} netPnl * @property {BaseChangeCumulativeDeltaSumToPattern} netPnl
* @property {SeriesTree_Cohorts_Utxo_All_Realized_Sopr} sopr * @property {SeriesTree_Cohorts_Utxo_All_Realized_Sopr} sopr
* @property {BaseCumulativeSumPattern} grossPnl * @property {BaseCumulativeSumPattern} grossPnl
* @property {_1m1w1y24hPattern6} sellSideRiskRatio * @property {_1m1w1y24hPattern7} sellSideRiskRatio
* @property {BaseCumulativeSumToPattern} peakRegret * @property {BaseCumulativeSumToPattern} peakRegret
* @property {PricePattern} investor * @property {PricePattern} investor
* @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio * @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio
@@ -5437,7 +5490,7 @@ function createUnspentPattern(client, acc) {
* @typedef {Object} SeriesTree_Cohorts_Utxo_All_Realized_Loss * @typedef {Object} SeriesTree_Cohorts_Utxo_All_Realized_Loss
* @property {CentsUsdPattern2} base * @property {CentsUsdPattern2} base
* @property {CentsUsdPattern2} cumulative * @property {CentsUsdPattern2} cumulative
* @property {_1m1w1y24hPattern5} sum * @property {_1m1w1y24hPattern6} sum
* @property {BaseSumPattern} negative * @property {BaseSumPattern} negative
* @property {BpsPercentRatioPattern4} toRcap * @property {BpsPercentRatioPattern4} toRcap
*/ */
@@ -5635,7 +5688,7 @@ function createUnspentPattern(client, acc) {
* @property {BaseChangeCumulativeDeltaSumToPattern} netPnl * @property {BaseChangeCumulativeDeltaSumToPattern} netPnl
* @property {SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr} sopr * @property {SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr} sopr
* @property {BaseCumulativeSumPattern} grossPnl * @property {BaseCumulativeSumPattern} grossPnl
* @property {_1m1w1y24hPattern6} sellSideRiskRatio * @property {_1m1w1y24hPattern7} sellSideRiskRatio
* @property {BaseCumulativeSumToPattern} peakRegret * @property {BaseCumulativeSumToPattern} peakRegret
* @property {PricePattern} investor * @property {PricePattern} investor
* @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio * @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio
@@ -5645,7 +5698,7 @@ function createUnspentPattern(client, acc) {
* @typedef {Object} SeriesTree_Cohorts_Utxo_Sth_Realized_Loss * @typedef {Object} SeriesTree_Cohorts_Utxo_Sth_Realized_Loss
* @property {CentsUsdPattern2} base * @property {CentsUsdPattern2} base
* @property {CentsUsdPattern2} cumulative * @property {CentsUsdPattern2} cumulative
* @property {_1m1w1y24hPattern5} sum * @property {_1m1w1y24hPattern6} sum
* @property {BaseSumPattern} negative * @property {BaseSumPattern} negative
* @property {BpsPercentRatioPattern4} toRcap * @property {BpsPercentRatioPattern4} toRcap
*/ */
@@ -5819,7 +5872,7 @@ function createUnspentPattern(client, acc) {
* @property {BaseChangeCumulativeDeltaSumToPattern} netPnl * @property {BaseChangeCumulativeDeltaSumToPattern} netPnl
* @property {SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr} sopr * @property {SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr} sopr
* @property {BaseCumulativeSumPattern} grossPnl * @property {BaseCumulativeSumPattern} grossPnl
* @property {_1m1w1y24hPattern6} sellSideRiskRatio * @property {_1m1w1y24hPattern7} sellSideRiskRatio
* @property {BaseCumulativeSumToPattern} peakRegret * @property {BaseCumulativeSumToPattern} peakRegret
* @property {PricePattern} investor * @property {PricePattern} investor
* @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio * @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio
@@ -5829,7 +5882,7 @@ function createUnspentPattern(client, acc) {
* @typedef {Object} SeriesTree_Cohorts_Utxo_Lth_Realized_Loss * @typedef {Object} SeriesTree_Cohorts_Utxo_Lth_Realized_Loss
* @property {CentsUsdPattern2} base * @property {CentsUsdPattern2} base
* @property {CentsUsdPattern2} cumulative * @property {CentsUsdPattern2} cumulative
* @property {_1m1w1y24hPattern5} sum * @property {_1m1w1y24hPattern6} sum
* @property {BaseSumPattern} negative * @property {BaseSumPattern} negative
* @property {BpsPercentRatioPattern4} toRcap * @property {BpsPercentRatioPattern4} toRcap
*/ */
@@ -7571,7 +7624,13 @@ class BrkClient extends BrkClientBase {
_14y: createSeriesPattern18(this, 'height_14y_ago'), _14y: createSeriesPattern18(this, 'height_14y_ago'),
_26y: createSeriesPattern18(this, 'height_26y_ago'), _26y: createSeriesPattern18(this, 'height_26y_ago'),
}, },
interval: create_1m1w1y24hBasePattern(this, 'block_interval'), interval: {
base: createSeriesPattern18(this, 'block_interval'),
_24h: createSeriesPattern1(this, 'block_interval_average_24h'),
_1w: createSeriesPattern1(this, 'block_interval_average_1w'),
_1m: createSeriesPattern1(this, 'block_interval_average_1m'),
_1y: createSeriesPattern1(this, 'block_interval_average_1y'),
},
vbytes: createAverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(this, 'block_vbytes'), vbytes: createAverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(this, 'block_vbytes'),
fullness: { fullness: {
bps: createSeriesPattern18(this, 'block_fullness_bps'), bps: createSeriesPattern18(this, 'block_fullness_bps'),
@@ -7786,25 +7845,25 @@ class BrkClient extends BrkClientBase {
rewards: { rewards: {
coinbase: createAverageBaseCumulativeSumPattern3(this, 'coinbase'), coinbase: createAverageBaseCumulativeSumPattern3(this, 'coinbase'),
subsidy: { subsidy: {
base: createBtcCentsSatsUsdPattern(this, 'subsidy'), base: createBtcCentsSatsUsdPattern2(this, 'subsidy'),
cumulative: createBtcCentsSatsUsdPattern(this, 'subsidy_cumulative'), cumulative: createBtcCentsSatsUsdPattern2(this, 'subsidy_cumulative'),
sum: create_1m1w1y24hPattern3(this, 'subsidy_sum'), sum: create_1m1w1y24hPattern4(this, 'subsidy_sum'),
average: create_1m1w1y24hPattern3(this, 'subsidy_average'), average: create_1m1w1y24hPattern3(this, 'subsidy_average'),
dominance: create_1m1w1y24hBpsPercentRatioPattern(this, 'subsidy_dominance'), dominance: create_1m1w1y24hBpsPercentRatioPattern(this, 'subsidy_dominance'),
sma1y: createCentsUsdPattern2(this, 'subsidy_sma_1y'), sma1y: createCentsUsdPattern2(this, 'subsidy_sma_1y'),
}, },
fees: { fees: {
base: createBtcCentsSatsUsdPattern(this, 'fees'), base: createBtcCentsSatsUsdPattern2(this, 'fees'),
cumulative: createBtcCentsSatsUsdPattern(this, 'fees_cumulative'), cumulative: createBtcCentsSatsUsdPattern2(this, 'fees_cumulative'),
sum: create_1m1w1y24hPattern3(this, 'fees_sum'), sum: create_1m1w1y24hPattern4(this, 'fees_sum'),
average: create_1m1w1y24hPattern3(this, 'fees_average'), average: create_1m1w1y24hPattern3(this, 'fees_average'),
min: create_1m1w1y24hPattern3(this, 'fees_min'), min: create_1m1w1y24hPattern4(this, 'fees_min'),
max: create_1m1w1y24hPattern3(this, 'fees_max'), max: create_1m1w1y24hPattern4(this, 'fees_max'),
pct10: create_1m1w1y24hPattern3(this, 'fees_pct10'), pct10: create_1m1w1y24hPattern4(this, 'fees_pct10'),
pct25: create_1m1w1y24hPattern3(this, 'fees_pct25'), pct25: create_1m1w1y24hPattern4(this, 'fees_pct25'),
median: create_1m1w1y24hPattern3(this, 'fees_median'), median: create_1m1w1y24hPattern4(this, 'fees_median'),
pct75: create_1m1w1y24hPattern3(this, 'fees_pct75'), pct75: create_1m1w1y24hPattern4(this, 'fees_pct75'),
pct90: create_1m1w1y24hPattern3(this, 'fees_pct90'), pct90: create_1m1w1y24hPattern4(this, 'fees_pct90'),
dominance: create_1m1w1y24hBpsPercentRatioPattern(this, 'fee_dominance'), dominance: create_1m1w1y24hBpsPercentRatioPattern(this, 'fee_dominance'),
toSubsidyRatio: { toSubsidyRatio: {
_24h: createBpsRatioPattern2(this, 'fee_to_subsidy_ratio_24h'), _24h: createBpsRatioPattern2(this, 'fee_to_subsidy_ratio_24h'),
@@ -7814,8 +7873,8 @@ class BrkClient extends BrkClientBase {
}, },
}, },
unclaimed: { unclaimed: {
base: createBtcCentsSatsUsdPattern(this, 'unclaimed_rewards'), base: createBtcCentsSatsUsdPattern2(this, 'unclaimed_rewards'),
cumulative: createBtcCentsSatsUsdPattern(this, 'unclaimed_rewards_cumulative'), cumulative: createBtcCentsSatsUsdPattern2(this, 'unclaimed_rewards_cumulative'),
}, },
}, },
hashrate: { hashrate: {
@@ -7848,8 +7907,8 @@ class BrkClient extends BrkClientBase {
coinblocksDestroyed: createAverageBaseCumulativeSumPattern(this, 'coinblocks_destroyed'), coinblocksDestroyed: createAverageBaseCumulativeSumPattern(this, 'coinblocks_destroyed'),
}, },
supply: { supply: {
vaulted: createBtcCentsSatsUsdPattern(this, 'vaulted_supply'), vaulted: createBtcCentsSatsUsdPattern2(this, 'vaulted_supply'),
active: createBtcCentsSatsUsdPattern(this, 'active_supply'), active: createBtcCentsSatsUsdPattern2(this, 'active_supply'),
}, },
value: { value: {
destroyed: createAverageBaseCumulativeSumPattern(this, 'cointime_value_destroyed'), destroyed: createAverageBaseCumulativeSumPattern(this, 'cointime_value_destroyed'),
@@ -8210,18 +8269,18 @@ class BrkClient extends BrkClientBase {
}, },
class: { class: {
stack: { stack: {
from2015: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2015'), from2015: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2015'),
from2016: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2016'), from2016: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2016'),
from2017: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2017'), from2017: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2017'),
from2018: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2018'), from2018: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2018'),
from2019: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2019'), from2019: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2019'),
from2020: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2020'), from2020: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2020'),
from2021: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2021'), from2021: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2021'),
from2022: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2022'), from2022: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2022'),
from2023: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2023'), from2023: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2023'),
from2024: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2024'), from2024: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2024'),
from2025: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2025'), from2025: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2025'),
from2026: createBtcCentsSatsUsdPattern(this, 'dca_stack_from_2026'), from2026: createBtcCentsSatsUsdPattern2(this, 'dca_stack_from_2026'),
}, },
costBasis: { costBasis: {
from2015: createCentsSatsUsdPattern(this, 'dca_cost_basis_from_2015'), from2015: createCentsSatsUsdPattern(this, 'dca_cost_basis_from_2015'),
@@ -8476,7 +8535,7 @@ class BrkClient extends BrkClientBase {
}, },
supply: { supply: {
state: createSeriesPattern18(this, 'supply_state'), state: createSeriesPattern18(this, 'supply_state'),
circulating: createBtcCentsSatsUsdPattern(this, 'circulating_supply'), circulating: createBtcCentsSatsUsdPattern2(this, 'circulating_supply'),
burned: createAverageBaseCumulativeSumPattern3(this, 'unspendable_supply'), burned: createAverageBaseCumulativeSumPattern3(this, 'unspendable_supply'),
inflationRate: createBpsPercentRatioPattern(this, 'inflation_rate'), inflationRate: createBpsPercentRatioPattern(this, 'inflation_rate'),
velocity: { velocity: {
@@ -8485,14 +8544,14 @@ class BrkClient extends BrkClientBase {
}, },
marketCap: createCentsDeltaUsdPattern(this, 'market_cap'), marketCap: createCentsDeltaUsdPattern(this, 'market_cap'),
marketMinusRealizedCapGrowthRate: create_1m1w1y24hPattern(this, 'market_minus_realized_cap_growth_rate'), marketMinusRealizedCapGrowthRate: create_1m1w1y24hPattern(this, 'market_minus_realized_cap_growth_rate'),
hodledOrLost: createBtcCentsSatsUsdPattern(this, 'hodled_or_lost_supply'), hodledOrLost: createBtcCentsSatsUsdPattern2(this, 'hodled_or_lost_supply'),
}, },
cohorts: { cohorts: {
utxo: { utxo: {
all: { all: {
supply: { supply: {
total: createBtcCentsSatsUsdPattern(this, 'supply'), total: createBtcCentsSatsUsdPattern2(this, 'supply'),
half: createBtcCentsSatsUsdPattern(this, 'supply_half'), half: createBtcCentsSatsUsdPattern2(this, 'supply_half'),
delta: createAbsoluteRatePattern(this, 'supply_delta'), delta: createAbsoluteRatePattern(this, 'supply_delta'),
inProfit: createBtcCentsSatsToUsdPattern2(this, 'supply_in_profit'), inProfit: createBtcCentsSatsToUsdPattern2(this, 'supply_in_profit'),
inLoss: createBtcCentsSatsToUsdPattern2(this, 'supply_in_loss'), inLoss: createBtcCentsSatsToUsdPattern2(this, 'supply_in_loss'),
@@ -8510,7 +8569,7 @@ class BrkClient extends BrkClientBase {
loss: { loss: {
base: createCentsUsdPattern2(this, 'realized_loss'), base: createCentsUsdPattern2(this, 'realized_loss'),
cumulative: createCentsUsdPattern2(this, 'realized_loss_cumulative'), cumulative: createCentsUsdPattern2(this, 'realized_loss_cumulative'),
sum: create_1m1w1y24hPattern5(this, 'realized_loss_sum'), sum: create_1m1w1y24hPattern6(this, 'realized_loss_sum'),
negative: createBaseSumPattern(this, 'neg_realized_loss'), negative: createBaseSumPattern(this, 'neg_realized_loss'),
toRcap: createBpsPercentRatioPattern4(this, 'realized_loss_to_rcap'), toRcap: createBpsPercentRatioPattern4(this, 'realized_loss_to_rcap'),
}, },
@@ -8605,7 +8664,7 @@ class BrkClient extends BrkClientBase {
}, },
}, },
grossPnl: createBaseCumulativeSumPattern(this, 'realized_gross_pnl'), grossPnl: createBaseCumulativeSumPattern(this, 'realized_gross_pnl'),
sellSideRiskRatio: create_1m1w1y24hPattern6(this, 'sell_side_risk_ratio'), sellSideRiskRatio: create_1m1w1y24hPattern7(this, 'sell_side_risk_ratio'),
peakRegret: createBaseCumulativeSumToPattern(this, 'realized_peak_regret'), peakRegret: createBaseCumulativeSumToPattern(this, 'realized_peak_regret'),
investor: createPricePattern(this, 'investor_price'), investor: createPricePattern(this, 'investor_price'),
profitToLossRatio: create_1m1w1y24hPattern(this, 'realized_profit_to_loss_ratio'), profitToLossRatio: create_1m1w1y24hPattern(this, 'realized_profit_to_loss_ratio'),
@@ -8665,7 +8724,7 @@ class BrkClient extends BrkClientBase {
loss: { loss: {
base: createCentsUsdPattern2(this, 'sth_realized_loss'), base: createCentsUsdPattern2(this, 'sth_realized_loss'),
cumulative: createCentsUsdPattern2(this, 'sth_realized_loss_cumulative'), cumulative: createCentsUsdPattern2(this, 'sth_realized_loss_cumulative'),
sum: create_1m1w1y24hPattern5(this, 'sth_realized_loss_sum'), sum: create_1m1w1y24hPattern6(this, 'sth_realized_loss_sum'),
negative: createBaseSumPattern(this, 'sth_neg_realized_loss'), negative: createBaseSumPattern(this, 'sth_neg_realized_loss'),
toRcap: createBpsPercentRatioPattern4(this, 'sth_realized_loss_to_rcap'), toRcap: createBpsPercentRatioPattern4(this, 'sth_realized_loss_to_rcap'),
}, },
@@ -8760,7 +8819,7 @@ class BrkClient extends BrkClientBase {
}, },
}, },
grossPnl: createBaseCumulativeSumPattern(this, 'sth_realized_gross_pnl'), grossPnl: createBaseCumulativeSumPattern(this, 'sth_realized_gross_pnl'),
sellSideRiskRatio: create_1m1w1y24hPattern6(this, 'sth_sell_side_risk_ratio'), sellSideRiskRatio: create_1m1w1y24hPattern7(this, 'sth_sell_side_risk_ratio'),
peakRegret: createBaseCumulativeSumToPattern(this, 'sth_realized_peak_regret'), peakRegret: createBaseCumulativeSumToPattern(this, 'sth_realized_peak_regret'),
investor: createPricePattern(this, 'sth_investor_price'), investor: createPricePattern(this, 'sth_investor_price'),
profitToLossRatio: create_1m1w1y24hPattern(this, 'sth_realized_profit_to_loss_ratio'), profitToLossRatio: create_1m1w1y24hPattern(this, 'sth_realized_profit_to_loss_ratio'),
@@ -8805,7 +8864,7 @@ class BrkClient extends BrkClientBase {
loss: { loss: {
base: createCentsUsdPattern2(this, 'lth_realized_loss'), base: createCentsUsdPattern2(this, 'lth_realized_loss'),
cumulative: createCentsUsdPattern2(this, 'lth_realized_loss_cumulative'), cumulative: createCentsUsdPattern2(this, 'lth_realized_loss_cumulative'),
sum: create_1m1w1y24hPattern5(this, 'lth_realized_loss_sum'), sum: create_1m1w1y24hPattern6(this, 'lth_realized_loss_sum'),
negative: createBaseSumPattern(this, 'lth_neg_realized_loss'), negative: createBaseSumPattern(this, 'lth_neg_realized_loss'),
toRcap: createBpsPercentRatioPattern4(this, 'lth_realized_loss_to_rcap'), toRcap: createBpsPercentRatioPattern4(this, 'lth_realized_loss_to_rcap'),
}, },
@@ -8895,7 +8954,7 @@ class BrkClient extends BrkClientBase {
ratio: create_1m1w1y24hPattern(this, 'lth_sopr'), ratio: create_1m1w1y24hPattern(this, 'lth_sopr'),
}, },
grossPnl: createBaseCumulativeSumPattern(this, 'lth_realized_gross_pnl'), grossPnl: createBaseCumulativeSumPattern(this, 'lth_realized_gross_pnl'),
sellSideRiskRatio: create_1m1w1y24hPattern6(this, 'lth_sell_side_risk_ratio'), sellSideRiskRatio: create_1m1w1y24hPattern7(this, 'lth_sell_side_risk_ratio'),
peakRegret: createBaseCumulativeSumToPattern(this, 'lth_realized_peak_regret'), peakRegret: createBaseCumulativeSumToPattern(this, 'lth_realized_peak_regret'),
investor: createPricePattern(this, 'lth_investor_price'), investor: createPricePattern(this, 'lth_investor_price'),
profitToLossRatio: create_1m1w1y24hPattern(this, 'lth_realized_profit_to_loss_ratio'), profitToLossRatio: create_1m1w1y24hPattern(this, 'lth_realized_profit_to_loss_ratio'),

View File

@@ -2208,18 +2208,18 @@ class _10y1m1w1y2y3m3y4y5y6m6y8yPattern3:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self._10y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '10y')) self._10y: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '10y'))
self._1m: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '1m')) self._1m: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '1m'))
self._1w: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '1w')) self._1w: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '1w'))
self._1y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '1y')) self._1y: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '1y'))
self._2y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '2y')) self._2y: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '2y'))
self._3m: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '3m')) self._3m: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '3m'))
self._3y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '3y')) self._3y: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '3y'))
self._4y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '4y')) self._4y: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '4y'))
self._5y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '5y')) self._5y: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '5y'))
self._6m: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '6m')) self._6m: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '6m'))
self._6y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '6y')) self._6y: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '6y'))
self._8y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '8y')) self._8y: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '8y'))
class CapGrossInvestorLossMvrvNetPeakPriceProfitSellSoprPattern: class CapGrossInvestorLossMvrvNetPeakPriceProfitSellSoprPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2230,7 +2230,7 @@ class AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.average: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'average')) self.average: _1m1w1y24hPattern[StoredF32] = _1m1w1y24hPattern(client, _m(acc, 'average'))
self.base: SeriesPattern1[StoredU64] = SeriesPattern1(client, acc) self.base: SeriesPattern1[StoredU64] = SeriesPattern1(client, acc)
self.cumulative: SeriesPattern1[StoredU64] = SeriesPattern1(client, _m(acc, 'cumulative')) self.cumulative: SeriesPattern1[StoredU64] = SeriesPattern1(client, _m(acc, 'cumulative'))
self.max: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'max')) self.max: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'max'))
@@ -2282,7 +2282,7 @@ class AverageMaxMedianMinPct10Pct25Pct75Pct90SumPattern:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.average: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'average')) self.average: _1m1w1y24hPattern[StoredF32] = _1m1w1y24hPattern(client, _m(acc, 'average'))
self.max: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'max')) self.max: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'max'))
self.median: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'median')) self.median: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'median'))
self.min: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'min')) self.min: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'min'))
@@ -2399,11 +2399,11 @@ class AverageBaseCumulativeInSumPattern:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.average: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, _m(acc, 'average')) self.average: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, _m(acc, 'average'))
self.base: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, acc) self.base: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, acc)
self.cumulative: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'cumulative')) self.cumulative: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, 'cumulative'))
self.in_loss: AverageBaseCumulativeSumPattern3 = AverageBaseCumulativeSumPattern3(client, _m(acc, 'in_loss')) self.in_loss: AverageBaseCumulativeSumPattern3 = AverageBaseCumulativeSumPattern3(client, _m(acc, 'in_loss'))
self.in_profit: AverageBaseCumulativeSumPattern3 = AverageBaseCumulativeSumPattern3(client, _m(acc, 'in_profit')) self.in_profit: AverageBaseCumulativeSumPattern3 = AverageBaseCumulativeSumPattern3(client, _m(acc, 'in_profit'))
self.sum: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, _m(acc, 'sum')) self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, _m(acc, 'sum'))
class BaseChangeCumulativeDeltaSumToPattern: class BaseChangeCumulativeDeltaSumToPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2414,7 +2414,7 @@ class BaseChangeCumulativeDeltaSumToPattern:
self.change_1m: ToPattern = ToPattern(client, _m(acc, 'pnl_change_1m_to')) self.change_1m: ToPattern = ToPattern(client, _m(acc, 'pnl_change_1m_to'))
self.cumulative: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'realized_pnl_cumulative')) self.cumulative: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'realized_pnl_cumulative'))
self.delta: AbsoluteRatePattern2 = AbsoluteRatePattern2(client, _m(acc, 'realized_pnl_delta')) self.delta: AbsoluteRatePattern2 = AbsoluteRatePattern2(client, _m(acc, 'realized_pnl_delta'))
self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, _m(acc, 'realized_pnl_sum')) self.sum: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, _m(acc, 'realized_pnl_sum'))
self.to_rcap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'realized_pnl_to_rcap')) self.to_rcap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'realized_pnl_to_rcap'))
class BpsCentsPercentilesRatioSatsUsdPattern: class BpsCentsPercentilesRatioSatsUsdPattern:
@@ -2459,11 +2459,11 @@ class DeltaHalfInToTotalPattern:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, _m(acc, 'delta')) self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, _m(acc, 'delta'))
self.half: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'half')) self.half: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, 'half'))
self.in_loss: BtcCentsSatsToUsdPattern = BtcCentsSatsToUsdPattern(client, _m(acc, 'in_loss')) self.in_loss: BtcCentsSatsToUsdPattern = BtcCentsSatsToUsdPattern(client, _m(acc, 'in_loss'))
self.in_profit: BtcCentsSatsToUsdPattern = BtcCentsSatsToUsdPattern(client, _m(acc, 'in_profit')) self.in_profit: BtcCentsSatsToUsdPattern = BtcCentsSatsToUsdPattern(client, _m(acc, 'in_profit'))
self.to_circulating: BpsPercentRatioPattern3 = BpsPercentRatioPattern3(client, _m(acc, 'to_circulating')) self.to_circulating: BpsPercentRatioPattern3 = BpsPercentRatioPattern3(client, _m(acc, 'to_circulating'))
self.total: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, acc) self.total: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, acc)
class DeltaHalfInToTotalPattern2: class DeltaHalfInToTotalPattern2:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2471,11 +2471,11 @@ class DeltaHalfInToTotalPattern2:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, _m(acc, 'delta')) self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, _m(acc, 'delta'))
self.half: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'half')) self.half: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, 'half'))
self.in_loss: BtcCentsSatsToUsdPattern3 = BtcCentsSatsToUsdPattern3(client, _m(acc, 'in_loss')) self.in_loss: BtcCentsSatsToUsdPattern3 = BtcCentsSatsToUsdPattern3(client, _m(acc, 'in_loss'))
self.in_profit: BtcCentsSatsToUsdPattern3 = BtcCentsSatsToUsdPattern3(client, _m(acc, 'in_profit')) self.in_profit: BtcCentsSatsToUsdPattern3 = BtcCentsSatsToUsdPattern3(client, _m(acc, 'in_profit'))
self.to_circulating: BpsPercentRatioPattern3 = BpsPercentRatioPattern3(client, _m(acc, 'to_circulating')) self.to_circulating: BpsPercentRatioPattern3 = BpsPercentRatioPattern3(client, _m(acc, 'to_circulating'))
self.total: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, acc) self.total: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, acc)
class Pct1Pct2Pct5Pct95Pct98Pct99Pattern: class Pct1Pct2Pct5Pct95Pct98Pct99Pattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2489,6 +2489,17 @@ class Pct1Pct2Pct5Pct95Pct98Pct99Pattern:
self.pct98: BpsPriceRatioPattern = BpsPriceRatioPattern(client, acc, 'pct98') self.pct98: BpsPriceRatioPattern = BpsPriceRatioPattern(client, acc, 'pct98')
self.pct99: BpsPriceRatioPattern = BpsPriceRatioPattern(client, acc, 'pct99') self.pct99: BpsPriceRatioPattern = BpsPriceRatioPattern(client, acc, 'pct99')
class _1m1w1y24hBasePattern:
"""Pattern struct for repeated tree structure."""
def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name."""
self._1m: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'average_1m'))
self._1w: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'average_1w'))
self._1y: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'average_1y'))
self._24h: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'average_24h'))
self.base: SeriesPattern18[StoredU32] = SeriesPattern18(client, acc)
class ActivityOutputsRealizedSupplyUnrealizedPattern: class ActivityOutputsRealizedSupplyUnrealizedPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2598,10 +2609,10 @@ class DeltaHalfInTotalPattern2:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, _m(acc, 'delta')) self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, _m(acc, 'delta'))
self.half: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'half')) self.half: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, 'half'))
self.in_loss: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'in_loss')) self.in_loss: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, 'in_loss'))
self.in_profit: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'in_profit')) self.in_profit: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, 'in_profit'))
self.total: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, acc) self.total: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, acc)
class EmaHistogramLineSignalPattern: class EmaHistogramLineSignalPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2618,17 +2629,6 @@ class PhsReboundThsPattern:
self.ths: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'ths')) self.ths: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'ths'))
self.ths_min: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'ths_min')) self.ths_min: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'ths_min'))
class _1m1w1y24hBasePattern(Generic[T]):
"""Pattern struct for repeated tree structure."""
def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name."""
self._1m: SeriesPattern1[T] = SeriesPattern1(client, _m(acc, 'average_1m'))
self._1w: SeriesPattern1[T] = SeriesPattern1(client, _m(acc, 'average_1w'))
self._1y: SeriesPattern1[T] = SeriesPattern1(client, _m(acc, 'average_1y'))
self._24h: SeriesPattern1[T] = SeriesPattern1(client, _m(acc, 'average_24h'))
self.base: SeriesPattern18[T] = SeriesPattern18(client, acc)
class _1m1w1y24hPattern2: class _1m1w1y24hPattern2:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2639,7 +2639,7 @@ class _1m1w1y24hPattern2:
self._1y: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, '1y_rate')) self._1y: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, '1y_rate'))
self._24h: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, '24h_rate')) self._24h: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, '24h_rate'))
class _1m1w1y24hPattern6: class _1m1w1y24hPattern7:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
@@ -2659,6 +2659,16 @@ class _1m1w1y24hPattern3:
self._1y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '1y')) self._1y: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '1y'))
self._24h: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '24h')) self._24h: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, '24h'))
class _1m1w1y24hPattern4:
"""Pattern struct for repeated tree structure."""
def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name."""
self._1m: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '1m'))
self._1w: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '1w'))
self._1y: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '1y'))
self._24h: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, '24h'))
class _1m1w1y2wPattern: class _1m1w1y2wPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2669,7 +2679,7 @@ class _1m1w1y2wPattern:
self._1y: CentsSatsUsdPattern = CentsSatsUsdPattern(client, _m(acc, '1y')) self._1y: CentsSatsUsdPattern = CentsSatsUsdPattern(client, _m(acc, '1y'))
self._2w: CentsSatsUsdPattern = CentsSatsUsdPattern(client, _m(acc, '2w')) self._2w: CentsSatsUsdPattern = CentsSatsUsdPattern(client, _m(acc, '2w'))
class _1m1w1y24hPattern4: class _1m1w1y24hPattern5:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
@@ -2679,7 +2689,7 @@ class _1m1w1y24hPattern4:
self._1y: CentsUsdPattern = CentsUsdPattern(client, _m(acc, '1y')) self._1y: CentsUsdPattern = CentsUsdPattern(client, _m(acc, '1y'))
self._24h: CentsUsdPattern = CentsUsdPattern(client, _m(acc, '24h')) self._24h: CentsUsdPattern = CentsUsdPattern(client, _m(acc, '24h'))
class _1m1w1y24hPattern5: class _1m1w1y24hPattern6:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
@@ -2698,7 +2708,7 @@ class AverageBaseCumulativeSumPattern2:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.average: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'average')) self.average: _1m1w1y24hPattern[StoredF32] = _1m1w1y24hPattern(client, _m(acc, 'average'))
self.base: SeriesPattern1[StoredU32] = SeriesPattern1(client, acc) self.base: SeriesPattern1[StoredU32] = SeriesPattern1(client, acc)
self.cumulative: SeriesPattern1[StoredU64] = SeriesPattern1(client, _m(acc, 'cumulative')) self.cumulative: SeriesPattern1[StoredU64] = SeriesPattern1(client, _m(acc, 'cumulative'))
self.sum: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'sum')) self.sum: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, _m(acc, 'sum'))
@@ -2709,9 +2719,9 @@ class AverageBaseCumulativeSumPattern3:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.average: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, _m(acc, 'average')) self.average: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, _m(acc, 'average'))
self.base: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, acc) self.base: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, acc)
self.cumulative: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'cumulative')) self.cumulative: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, 'cumulative'))
self.sum: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, _m(acc, 'sum')) self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, _m(acc, 'sum'))
class BaseCumulativeDeltaSumPattern: class BaseCumulativeDeltaSumPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2721,7 +2731,7 @@ class BaseCumulativeDeltaSumPattern:
self.base: CentsUsdPattern = CentsUsdPattern(client, acc) self.base: CentsUsdPattern = CentsUsdPattern(client, acc)
self.cumulative: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'cumulative')) self.cumulative: CentsUsdPattern = CentsUsdPattern(client, _m(acc, 'cumulative'))
self.delta: AbsoluteRatePattern2 = AbsoluteRatePattern2(client, _m(acc, 'delta')) self.delta: AbsoluteRatePattern2 = AbsoluteRatePattern2(client, _m(acc, 'delta'))
self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, _m(acc, 'sum')) self.sum: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, _m(acc, 'sum'))
class BaseCumulativeNegativeSumPattern: class BaseCumulativeNegativeSumPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2731,7 +2741,7 @@ class BaseCumulativeNegativeSumPattern:
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'realized_loss')) self.base: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'realized_loss'))
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'realized_loss_cumulative')) self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'realized_loss_cumulative'))
self.negative: BaseSumPattern = BaseSumPattern(client, _m(acc, 'neg_realized_loss')) self.negative: BaseSumPattern = BaseSumPattern(client, _m(acc, 'neg_realized_loss'))
self.sum: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, _m(acc, 'realized_loss_sum')) self.sum: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, _m(acc, 'realized_loss_sum'))
class BaseCumulativeSumToPattern: class BaseCumulativeSumToPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2740,7 +2750,7 @@ class BaseCumulativeSumToPattern:
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, acc) self.base: CentsUsdPattern2 = CentsUsdPattern2(client, acc)
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'cumulative')) self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'cumulative'))
self.sum: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, _m(acc, 'sum')) self.sum: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, _m(acc, 'sum'))
self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, _m(acc, 'to_rcap')) self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, _m(acc, 'to_rcap'))
class BothReactivatedReceivingSendingPattern: class BothReactivatedReceivingSendingPattern:
@@ -2748,12 +2758,12 @@ class BothReactivatedReceivingSendingPattern:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.both: _1m1w1y24hBasePattern[StoredU32] = _1m1w1y24hBasePattern(client, _m(acc, 'both')) self.both: _1m1w1y24hBasePattern = _1m1w1y24hBasePattern(client, _m(acc, 'both'))
self.reactivated: _1m1w1y24hBasePattern[StoredU32] = _1m1w1y24hBasePattern(client, _m(acc, 'reactivated')) self.reactivated: _1m1w1y24hBasePattern = _1m1w1y24hBasePattern(client, _m(acc, 'reactivated'))
self.receiving: _1m1w1y24hBasePattern[StoredU32] = _1m1w1y24hBasePattern(client, _m(acc, 'receiving')) self.receiving: _1m1w1y24hBasePattern = _1m1w1y24hBasePattern(client, _m(acc, 'receiving'))
self.sending: _1m1w1y24hBasePattern[StoredU32] = _1m1w1y24hBasePattern(client, _m(acc, 'sending')) self.sending: _1m1w1y24hBasePattern = _1m1w1y24hBasePattern(client, _m(acc, 'sending'))
class BtcCentsSatsUsdPattern: class BtcCentsSatsUsdPattern2:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
@@ -2763,6 +2773,16 @@ class BtcCentsSatsUsdPattern:
self.sats: SeriesPattern1[Sats] = SeriesPattern1(client, _m(acc, 'sats')) self.sats: SeriesPattern1[Sats] = SeriesPattern1(client, _m(acc, 'sats'))
self.usd: SeriesPattern1[Dollars] = SeriesPattern1(client, _m(acc, 'usd')) self.usd: SeriesPattern1[Dollars] = SeriesPattern1(client, _m(acc, 'usd'))
class BtcCentsSatsUsdPattern:
"""Pattern struct for repeated tree structure."""
def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name."""
self.btc: SeriesPattern1[Bitcoin] = SeriesPattern1(client, acc)
self.cents: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'cents'))
self.sats: SeriesPattern1[StoredF32] = SeriesPattern1(client, _m(acc, 'sats'))
self.usd: SeriesPattern1[Dollars] = SeriesPattern1(client, _m(acc, 'usd'))
class CentsDeltaToUsdPattern: class CentsDeltaToUsdPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2828,7 +2848,7 @@ class BaseCumulativeSumPattern:
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, acc) self.base: CentsUsdPattern2 = CentsUsdPattern2(client, acc)
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'cumulative')) self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'cumulative'))
self.sum: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, _m(acc, 'sum')) self.sum: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, _m(acc, 'sum'))
class BlocksDominanceRewardsPattern: class BlocksDominanceRewardsPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2935,8 +2955,8 @@ class DeltaHalfTotalPattern:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, _m(acc, 'delta')) self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, _m(acc, 'delta'))
self.half: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'half')) self.half: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, 'half'))
self.total: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, acc) self.total: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, acc)
class GreedNetPainPattern: class GreedNetPainPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -2986,7 +3006,7 @@ class AbsoluteRatePattern2:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.absolute: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, acc) self.absolute: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, acc)
self.rate: _1m1w1y24hPattern2 = _1m1w1y24hPattern2(client, acc) self.rate: _1m1w1y24hPattern2 = _1m1w1y24hPattern2(client, acc)
class AllSthPattern2: class AllSthPattern2:
@@ -2995,7 +3015,7 @@ class AllSthPattern2:
def __init__(self, client: BrkClientBase, acc: str): def __init__(self, client: BrkClientBase, acc: str):
"""Create pattern node with accumulated series name.""" """Create pattern node with accumulated series name."""
self.all: BtcCentsDeltaSatsUsdPattern = BtcCentsDeltaSatsUsdPattern(client, _m(acc, 'supply')) self.all: BtcCentsDeltaSatsUsdPattern = BtcCentsDeltaSatsUsdPattern(client, _m(acc, 'supply'))
self.sth: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'sth_supply')) self.sth: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, _m(acc, 'sth_supply'))
class AllSthPattern: class AllSthPattern:
"""Pattern struct for repeated tree structure.""" """Pattern struct for repeated tree structure."""
@@ -3176,7 +3196,7 @@ class SeriesTree_Blocks_Size:
self.base: SeriesPattern18[StoredU64] = SeriesPattern18(client, 'total_size') self.base: SeriesPattern18[StoredU64] = SeriesPattern18(client, 'total_size')
self.cumulative: SeriesPattern1[StoredU64] = SeriesPattern1(client, 'block_size_cumulative') self.cumulative: SeriesPattern1[StoredU64] = SeriesPattern1(client, 'block_size_cumulative')
self.sum: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_sum') self.sum: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_sum')
self.average: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_average') self.average: _1m1w1y24hPattern[StoredF32] = _1m1w1y24hPattern(client, 'block_size_average')
self.min: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_min') self.min: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_min')
self.max: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_max') self.max: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_max')
self.pct10: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_pct10') self.pct10: _1m1w1y24hPattern[StoredU64] = _1m1w1y24hPattern(client, 'block_size_pct10')
@@ -3192,7 +3212,7 @@ class SeriesTree_Blocks_Weight:
self.base: SeriesPattern18[Weight] = SeriesPattern18(client, 'block_weight') self.base: SeriesPattern18[Weight] = SeriesPattern18(client, 'block_weight')
self.cumulative: SeriesPattern1[Weight] = SeriesPattern1(client, 'block_weight_cumulative') self.cumulative: SeriesPattern1[Weight] = SeriesPattern1(client, 'block_weight_cumulative')
self.sum: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_sum') self.sum: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_sum')
self.average: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_average') self.average: _1m1w1y24hPattern[StoredF32] = _1m1w1y24hPattern(client, 'block_weight_average')
self.min: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_min') self.min: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_min')
self.max: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_max') self.max: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_max')
self.pct10: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_pct10') self.pct10: _1m1w1y24hPattern[Weight] = _1m1w1y24hPattern(client, 'block_weight_pct10')
@@ -3256,6 +3276,16 @@ class SeriesTree_Blocks_Lookback:
self._14y: SeriesPattern18[Height] = SeriesPattern18(client, 'height_14y_ago') self._14y: SeriesPattern18[Height] = SeriesPattern18(client, 'height_14y_ago')
self._26y: SeriesPattern18[Height] = SeriesPattern18(client, 'height_26y_ago') self._26y: SeriesPattern18[Height] = SeriesPattern18(client, 'height_26y_ago')
class SeriesTree_Blocks_Interval:
"""Series tree node."""
def __init__(self, client: BrkClientBase, base_path: str = ''):
self.base: SeriesPattern18[Timestamp] = SeriesPattern18(client, 'block_interval')
self._24h: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'block_interval_average_24h')
self._1w: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'block_interval_average_1w')
self._1m: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'block_interval_average_1m')
self._1y: SeriesPattern1[StoredF32] = SeriesPattern1(client, 'block_interval_average_1y')
class SeriesTree_Blocks_Fullness: class SeriesTree_Blocks_Fullness:
"""Series tree node.""" """Series tree node."""
@@ -3283,7 +3313,7 @@ class SeriesTree_Blocks:
self.weight: SeriesTree_Blocks_Weight = SeriesTree_Blocks_Weight(client) self.weight: SeriesTree_Blocks_Weight = SeriesTree_Blocks_Weight(client)
self.count: SeriesTree_Blocks_Count = SeriesTree_Blocks_Count(client) self.count: SeriesTree_Blocks_Count = SeriesTree_Blocks_Count(client)
self.lookback: SeriesTree_Blocks_Lookback = SeriesTree_Blocks_Lookback(client) self.lookback: SeriesTree_Blocks_Lookback = SeriesTree_Blocks_Lookback(client)
self.interval: _1m1w1y24hBasePattern[Timestamp] = _1m1w1y24hBasePattern(client, 'block_interval') self.interval: SeriesTree_Blocks_Interval = SeriesTree_Blocks_Interval(client)
self.vbytes: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2 = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'block_vbytes') self.vbytes: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2 = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'block_vbytes')
self.fullness: SeriesTree_Blocks_Fullness = SeriesTree_Blocks_Fullness(client) self.fullness: SeriesTree_Blocks_Fullness = SeriesTree_Blocks_Fullness(client)
self.halving: SeriesTree_Blocks_Halving = SeriesTree_Blocks_Halving(client) self.halving: SeriesTree_Blocks_Halving = SeriesTree_Blocks_Halving(client)
@@ -3637,9 +3667,9 @@ class SeriesTree_Mining_Rewards_Subsidy:
"""Series tree node.""" """Series tree node."""
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.base: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'subsidy') self.base: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'subsidy')
self.cumulative: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'subsidy_cumulative') self.cumulative: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'subsidy_cumulative')
self.sum: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'subsidy_sum') self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'subsidy_sum')
self.average: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'subsidy_average') self.average: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'subsidy_average')
self.dominance: _1m1w1y24hBpsPercentRatioPattern = _1m1w1y24hBpsPercentRatioPattern(client, 'subsidy_dominance') self.dominance: _1m1w1y24hBpsPercentRatioPattern = _1m1w1y24hBpsPercentRatioPattern(client, 'subsidy_dominance')
self.sma_1y: CentsUsdPattern2 = CentsUsdPattern2(client, 'subsidy_sma_1y') self.sma_1y: CentsUsdPattern2 = CentsUsdPattern2(client, 'subsidy_sma_1y')
@@ -3657,17 +3687,17 @@ class SeriesTree_Mining_Rewards_Fees:
"""Series tree node.""" """Series tree node."""
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.base: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'fees') self.base: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'fees')
self.cumulative: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'fees_cumulative') self.cumulative: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'fees_cumulative')
self.sum: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_sum') self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'fees_sum')
self.average: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_average') self.average: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_average')
self.min: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_min') self.min: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'fees_min')
self.max: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_max') self.max: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'fees_max')
self.pct10: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_pct10') self.pct10: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'fees_pct10')
self.pct25: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_pct25') self.pct25: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'fees_pct25')
self.median: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_median') self.median: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'fees_median')
self.pct75: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_pct75') self.pct75: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'fees_pct75')
self.pct90: _1m1w1y24hPattern3 = _1m1w1y24hPattern3(client, 'fees_pct90') self.pct90: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'fees_pct90')
self.dominance: _1m1w1y24hBpsPercentRatioPattern = _1m1w1y24hBpsPercentRatioPattern(client, 'fee_dominance') self.dominance: _1m1w1y24hBpsPercentRatioPattern = _1m1w1y24hBpsPercentRatioPattern(client, 'fee_dominance')
self.to_subsidy_ratio: SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio = SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio(client) self.to_subsidy_ratio: SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio = SeriesTree_Mining_Rewards_Fees_ToSubsidyRatio(client)
@@ -3675,8 +3705,8 @@ class SeriesTree_Mining_Rewards_Unclaimed:
"""Series tree node.""" """Series tree node."""
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.base: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'unclaimed_rewards') self.base: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'unclaimed_rewards')
self.cumulative: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'unclaimed_rewards_cumulative') self.cumulative: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'unclaimed_rewards_cumulative')
class SeriesTree_Mining_Rewards: class SeriesTree_Mining_Rewards:
"""Series tree node.""" """Series tree node."""
@@ -3742,8 +3772,8 @@ class SeriesTree_Cointime_Supply:
"""Series tree node.""" """Series tree node."""
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.vaulted: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'vaulted_supply') self.vaulted: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'vaulted_supply')
self.active: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'active_supply') self.active: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'active_supply')
class SeriesTree_Cointime_Value: class SeriesTree_Cointime_Value:
"""Series tree node.""" """Series tree node."""
@@ -4331,18 +4361,18 @@ class SeriesTree_Market_Dca_Class_Stack:
"""Series tree node.""" """Series tree node."""
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.from_2015: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2015') self.from_2015: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2015')
self.from_2016: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2016') self.from_2016: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2016')
self.from_2017: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2017') self.from_2017: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2017')
self.from_2018: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2018') self.from_2018: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2018')
self.from_2019: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2019') self.from_2019: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2019')
self.from_2020: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2020') self.from_2020: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2020')
self.from_2021: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2021') self.from_2021: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2021')
self.from_2022: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2022') self.from_2022: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2022')
self.from_2023: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2023') self.from_2023: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2023')
self.from_2024: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2024') self.from_2024: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2024')
self.from_2025: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2025') self.from_2025: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2025')
self.from_2026: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'dca_stack_from_2026') self.from_2026: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'dca_stack_from_2026')
class SeriesTree_Market_Dca_Class_CostBasis: class SeriesTree_Market_Dca_Class_CostBasis:
"""Series tree node.""" """Series tree node."""
@@ -4688,20 +4718,20 @@ class SeriesTree_Supply:
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.state: SeriesPattern18[SupplyState] = SeriesPattern18(client, 'supply_state') self.state: SeriesPattern18[SupplyState] = SeriesPattern18(client, 'supply_state')
self.circulating: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'circulating_supply') self.circulating: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'circulating_supply')
self.burned: AverageBaseCumulativeSumPattern3 = AverageBaseCumulativeSumPattern3(client, 'unspendable_supply') self.burned: AverageBaseCumulativeSumPattern3 = AverageBaseCumulativeSumPattern3(client, 'unspendable_supply')
self.inflation_rate: BpsPercentRatioPattern = BpsPercentRatioPattern(client, 'inflation_rate') self.inflation_rate: BpsPercentRatioPattern = BpsPercentRatioPattern(client, 'inflation_rate')
self.velocity: SeriesTree_Supply_Velocity = SeriesTree_Supply_Velocity(client) self.velocity: SeriesTree_Supply_Velocity = SeriesTree_Supply_Velocity(client)
self.market_cap: CentsDeltaUsdPattern = CentsDeltaUsdPattern(client, 'market_cap') self.market_cap: CentsDeltaUsdPattern = CentsDeltaUsdPattern(client, 'market_cap')
self.market_minus_realized_cap_growth_rate: _1m1w1y24hPattern[BasisPointsSigned32] = _1m1w1y24hPattern(client, 'market_minus_realized_cap_growth_rate') self.market_minus_realized_cap_growth_rate: _1m1w1y24hPattern[BasisPointsSigned32] = _1m1w1y24hPattern(client, 'market_minus_realized_cap_growth_rate')
self.hodled_or_lost: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'hodled_or_lost_supply') self.hodled_or_lost: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'hodled_or_lost_supply')
class SeriesTree_Cohorts_Utxo_All_Supply: class SeriesTree_Cohorts_Utxo_All_Supply:
"""Series tree node.""" """Series tree node."""
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.total: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'supply') self.total: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'supply')
self.half: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, 'supply_half') self.half: BtcCentsSatsUsdPattern2 = BtcCentsSatsUsdPattern2(client, 'supply_half')
self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, 'supply_delta') self.delta: AbsoluteRatePattern = AbsoluteRatePattern(client, 'supply_delta')
self.in_profit: BtcCentsSatsToUsdPattern2 = BtcCentsSatsToUsdPattern2(client, 'supply_in_profit') self.in_profit: BtcCentsSatsToUsdPattern2 = BtcCentsSatsToUsdPattern2(client, 'supply_in_profit')
self.in_loss: BtcCentsSatsToUsdPattern2 = BtcCentsSatsToUsdPattern2(client, 'supply_in_loss') self.in_loss: BtcCentsSatsToUsdPattern2 = BtcCentsSatsToUsdPattern2(client, 'supply_in_loss')
@@ -4721,7 +4751,7 @@ class SeriesTree_Cohorts_Utxo_All_Realized_Loss:
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, 'realized_loss') self.base: CentsUsdPattern2 = CentsUsdPattern2(client, 'realized_loss')
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, 'realized_loss_cumulative') self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, 'realized_loss_cumulative')
self.sum: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, 'realized_loss_sum') self.sum: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, 'realized_loss_sum')
self.negative: BaseSumPattern = BaseSumPattern(client, 'neg_realized_loss') self.negative: BaseSumPattern = BaseSumPattern(client, 'neg_realized_loss')
self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, 'realized_loss_to_rcap') self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, 'realized_loss_to_rcap')
@@ -4855,7 +4885,7 @@ class SeriesTree_Cohorts_Utxo_All_Realized:
self.net_pnl: BaseChangeCumulativeDeltaSumToPattern = BaseChangeCumulativeDeltaSumToPattern(client, 'net') self.net_pnl: BaseChangeCumulativeDeltaSumToPattern = BaseChangeCumulativeDeltaSumToPattern(client, 'net')
self.sopr: SeriesTree_Cohorts_Utxo_All_Realized_Sopr = SeriesTree_Cohorts_Utxo_All_Realized_Sopr(client) self.sopr: SeriesTree_Cohorts_Utxo_All_Realized_Sopr = SeriesTree_Cohorts_Utxo_All_Realized_Sopr(client)
self.gross_pnl: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'realized_gross_pnl') self.gross_pnl: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'realized_gross_pnl')
self.sell_side_risk_ratio: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, 'sell_side_risk_ratio') self.sell_side_risk_ratio: _1m1w1y24hPattern7 = _1m1w1y24hPattern7(client, 'sell_side_risk_ratio')
self.peak_regret: BaseCumulativeSumToPattern = BaseCumulativeSumToPattern(client, 'realized_peak_regret') self.peak_regret: BaseCumulativeSumToPattern = BaseCumulativeSumToPattern(client, 'realized_peak_regret')
self.investor: PricePattern = PricePattern(client, 'investor_price') self.investor: PricePattern = PricePattern(client, 'investor_price')
self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'realized_profit_to_loss_ratio') self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'realized_profit_to_loss_ratio')
@@ -4947,7 +4977,7 @@ class SeriesTree_Cohorts_Utxo_Sth_Realized_Loss:
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, 'sth_realized_loss') self.base: CentsUsdPattern2 = CentsUsdPattern2(client, 'sth_realized_loss')
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, 'sth_realized_loss_cumulative') self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, 'sth_realized_loss_cumulative')
self.sum: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, 'sth_realized_loss_sum') self.sum: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, 'sth_realized_loss_sum')
self.negative: BaseSumPattern = BaseSumPattern(client, 'sth_neg_realized_loss') self.negative: BaseSumPattern = BaseSumPattern(client, 'sth_neg_realized_loss')
self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, 'sth_realized_loss_to_rcap') self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, 'sth_realized_loss_to_rcap')
@@ -5081,7 +5111,7 @@ class SeriesTree_Cohorts_Utxo_Sth_Realized:
self.net_pnl: BaseChangeCumulativeDeltaSumToPattern = BaseChangeCumulativeDeltaSumToPattern(client, 'sth_net') self.net_pnl: BaseChangeCumulativeDeltaSumToPattern = BaseChangeCumulativeDeltaSumToPattern(client, 'sth_net')
self.sopr: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr = SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr(client) self.sopr: SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr = SeriesTree_Cohorts_Utxo_Sth_Realized_Sopr(client)
self.gross_pnl: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'sth_realized_gross_pnl') self.gross_pnl: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'sth_realized_gross_pnl')
self.sell_side_risk_ratio: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, 'sth_sell_side_risk_ratio') self.sell_side_risk_ratio: _1m1w1y24hPattern7 = _1m1w1y24hPattern7(client, 'sth_sell_side_risk_ratio')
self.peak_regret: BaseCumulativeSumToPattern = BaseCumulativeSumToPattern(client, 'sth_realized_peak_regret') self.peak_regret: BaseCumulativeSumToPattern = BaseCumulativeSumToPattern(client, 'sth_realized_peak_regret')
self.investor: PricePattern = PricePattern(client, 'sth_investor_price') self.investor: PricePattern = PricePattern(client, 'sth_investor_price')
self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'sth_realized_profit_to_loss_ratio') self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'sth_realized_profit_to_loss_ratio')
@@ -5146,7 +5176,7 @@ class SeriesTree_Cohorts_Utxo_Lth_Realized_Loss:
def __init__(self, client: BrkClientBase, base_path: str = ''): def __init__(self, client: BrkClientBase, base_path: str = ''):
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, 'lth_realized_loss') self.base: CentsUsdPattern2 = CentsUsdPattern2(client, 'lth_realized_loss')
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, 'lth_realized_loss_cumulative') self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, 'lth_realized_loss_cumulative')
self.sum: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, 'lth_realized_loss_sum') self.sum: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, 'lth_realized_loss_sum')
self.negative: BaseSumPattern = BaseSumPattern(client, 'lth_neg_realized_loss') self.negative: BaseSumPattern = BaseSumPattern(client, 'lth_neg_realized_loss')
self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, 'lth_realized_loss_to_rcap') self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, 'lth_realized_loss_to_rcap')
@@ -5271,7 +5301,7 @@ class SeriesTree_Cohorts_Utxo_Lth_Realized:
self.net_pnl: BaseChangeCumulativeDeltaSumToPattern = BaseChangeCumulativeDeltaSumToPattern(client, 'lth_net') self.net_pnl: BaseChangeCumulativeDeltaSumToPattern = BaseChangeCumulativeDeltaSumToPattern(client, 'lth_net')
self.sopr: SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr = SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr(client) self.sopr: SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr = SeriesTree_Cohorts_Utxo_Lth_Realized_Sopr(client)
self.gross_pnl: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'lth_realized_gross_pnl') self.gross_pnl: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'lth_realized_gross_pnl')
self.sell_side_risk_ratio: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, 'lth_sell_side_risk_ratio') self.sell_side_risk_ratio: _1m1w1y24hPattern7 = _1m1w1y24hPattern7(client, 'lth_sell_side_risk_ratio')
self.peak_regret: BaseCumulativeSumToPattern = BaseCumulativeSumToPattern(client, 'lth_realized_peak_regret') self.peak_regret: BaseCumulativeSumToPattern = BaseCumulativeSumToPattern(client, 'lth_realized_peak_regret')
self.investor: PricePattern = PricePattern(client, 'lth_investor_price') self.investor: PricePattern = PricePattern(client, 'lth_investor_price')
self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'lth_realized_profit_to_loss_ratio') self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'lth_realized_profit_to_loss_ratio')

View File

@@ -171,7 +171,7 @@ function singleSellSideRiskTree(sellSideRisk, title) {
...ROLLING_WINDOWS.map((w) => ({ ...ROLLING_WINDOWS.map((w) => ({
name: w.name, name: w.name,
title: title(`Sell Side Risk (${w.title})`), title: title(`Sell Side Risk (${w.title})`),
bottom: percentRatio({ pattern: sellSideRisk[w.key], name: "Risk" }), bottom: percentRatio({ pattern: sellSideRisk[w.key], name: "Risk", color: w.color }),
})), })),
]; ];
} }

View File

@@ -377,40 +377,35 @@ export function createNetworkSection() {
name: "Count", name: "Count",
tree: [ tree: [
{ {
name: "Sums", name: "Compare",
tree: [ title: "Block Count",
{ bottom: ROLLING_WINDOWS.map((w) =>
name: "Compare", line({
title: "Block Count", series: blocks.count.total.sum[w.key],
bottom: ROLLING_WINDOWS.map((w) =>
line({
series: blocks.count.total.sum[w.key],
name: w.name,
color: w.color,
unit: Unit.count,
}),
),
},
...ROLLING_WINDOWS.map((w) => ({
name: w.name, name: w.name,
title: `Block Count ${w.title} Sum`, color: w.color,
bottom: [ unit: Unit.count,
line({ }),
series: blocks.count.total.sum[w.key], ),
name: "Actual",
unit: Unit.count,
}),
line({
series: blocks.count.target[w.key],
name: "Target",
color: colors.gray,
unit: Unit.count,
options: { lineStyle: 4 },
}),
],
})),
],
}, },
...ROLLING_WINDOWS.map((w) => ({
name: w.name,
title: `Block Count ${w.title}`,
bottom: [
line({
series: blocks.count.total.sum[w.key],
name: "Actual",
unit: Unit.count,
}),
line({
series: blocks.count.target[w.key],
name: "Target",
color: colors.gray,
unit: Unit.count,
options: { lineStyle: 4 },
}),
],
})),
{ {
name: "Cumulative", name: "Cumulative",
title: "Block Count (Total)", title: "Block Count (Total)",

View File

@@ -93,55 +93,13 @@ export function price({
function percentileSeries({ pattern, unit, title = "" }) { function percentileSeries({ pattern, unit, title = "" }) {
const { stat } = colors; const { stat } = colors;
return [ return [
dots({ line({ series: pattern.max, name: `${title} max`.trim(), color: stat.max, unit }),
series: pattern.max, line({ series: pattern.pct90, name: `${title} pct90`.trim(), color: stat.pct90, unit }),
name: `${title} max`.trim(), line({ series: pattern.pct75, name: `${title} pct75`.trim(), color: stat.pct75, unit }),
color: stat.max, line({ series: pattern.median, name: `${title} median`.trim(), color: stat.median, unit }),
unit, line({ series: pattern.pct25, name: `${title} pct25`.trim(), color: stat.pct25, unit }),
defaultActive: false, line({ series: pattern.pct10, name: `${title} pct10`.trim(), color: stat.pct10, unit }),
}), line({ series: pattern.min, name: `${title} min`.trim(), color: stat.min, unit }),
dots({
series: pattern.min,
name: `${title} min`.trim(),
color: stat.min,
unit,
defaultActive: false,
}),
dots({
series: pattern.median,
name: `${title} median`.trim(),
color: stat.median,
unit,
defaultActive: false,
}),
dots({
series: pattern.pct75,
name: `${title} pct75`.trim(),
color: stat.pct75,
unit,
defaultActive: false,
}),
dots({
series: pattern.pct25,
name: `${title} pct25`.trim(),
color: stat.pct25,
unit,
defaultActive: false,
}),
dots({
series: pattern.pct90,
name: `${title} pct90`.trim(),
color: stat.pct90,
unit,
defaultActive: false,
}),
dots({
series: pattern.pct10,
name: `${title} pct10`.trim(),
color: stat.pct10,
unit,
defaultActive: false,
}),
]; ];
} }
@@ -517,6 +475,59 @@ export function sumsArray({ windows, title, unit }) {
})); }));
} }
/**
* Generic helper: compare + per-window sum+avg + cumulative.
* @template P
* @param {Object} args
* @param {{ _24h: P, _1w: P, _1m: P, _1y: P }} args.sum
* @param {{ _24h: P, _1w: P, _1m: P, _1y: P }} args.average
* @param {P} args.cumulative
* @param {string} args.title
* @param {Color} [args.color]
* @param {(args: { pattern: P, name: string, color?: Color, defaultActive?: boolean }) => AnyFetchedSeriesBlueprint[]} args.series
* @returns {PartialChartOption[]}
*/
export function sumsAndAveragesCumulativeWith({
sum,
average,
cumulative,
title,
color,
series,
}) {
return [
{
name: "Compare",
title: `${title} Averages`,
bottom: ROLLING_WINDOWS.flatMap((w) =>
series({
pattern: average[w.key],
name: w.name,
color: w.color,
}),
),
},
...ROLLING_WINDOWS.map((w) => ({
name: w.name,
title: `${title} ${w.title}`,
bottom: [
...series({ pattern: sum[w.key], name: "Sum", color: w.color }),
...series({
pattern: average[w.key],
name: "Avg",
color: w.color,
defaultActive: false,
}),
],
})),
{
name: "Cumulative",
title: `${title} (Total)`,
bottom: series({ pattern: cumulative, name: "all-time", color }),
},
];
}
/** /**
* Flat array of per-window charts with both sum (active) and average (off by default) * Flat array of per-window charts with both sum (active) and average (off by default)
* @param {Object} args * @param {Object} args
@@ -544,7 +555,7 @@ export function sumsAndAveragesArray({ sum, average, title, unit }) {
} }
/** /**
* Windowed sum+avg charts + cumulative * Compare + windowed sum+avg + cumulative (single unit)
* @param {Object} args * @param {Object} args
* @param {{ _24h: AnySeriesPattern, _1w: AnySeriesPattern, _1m: AnySeriesPattern, _1y: AnySeriesPattern }} args.sum * @param {{ _24h: AnySeriesPattern, _1w: AnySeriesPattern, _1m: AnySeriesPattern, _1y: AnySeriesPattern }} args.sum
* @param {{ _24h: AnySeriesPattern, _1w: AnySeriesPattern, _1m: AnySeriesPattern, _1y: AnySeriesPattern }} args.average * @param {{ _24h: AnySeriesPattern, _1w: AnySeriesPattern, _1m: AnySeriesPattern, _1y: AnySeriesPattern }} args.average
@@ -555,21 +566,16 @@ export function sumsAndAveragesArray({ sum, average, title, unit }) {
* @returns {PartialChartOption[]} * @returns {PartialChartOption[]}
*/ */
export function sumsAndAveragesCumulative({ sum, average, cumulative, title, unit, color }) { export function sumsAndAveragesCumulative({ sum, average, cumulative, title, unit, color }) {
return [ return sumsAndAveragesCumulativeWith({
{ sum,
name: "Compare", average,
title: `${title} Averages`, cumulative,
bottom: ROLLING_WINDOWS.map((w) => title,
line({ series: average[w.key], name: w.name, color: w.color, unit }), color,
), series: ({ pattern, name, color, defaultActive }) => [
}, line({ series: pattern, name, color, unit, defaultActive }),
...sumsAndAveragesArray({ sum, average, title, unit }), ],
{ });
name: "Cumulative",
title: `${title} (Total)`,
bottom: [{ series: cumulative, title: "all-time", color, unit }],
},
];
} }
/** /**
@@ -601,13 +607,22 @@ export function sumsTree({ windows, title, unit, series }) {
* @returns {PartialChartOption[]} * @returns {PartialChartOption[]}
*/ */
export function averagesArray({ windows, title, unit }) { export function averagesArray({ windows, title, unit }) {
return ROLLING_WINDOWS.map((w) => ({ return [
name: w.name, {
title: `${title} ${w.title} Average`, name: "Compare",
bottom: [ title: `${title} Averages`,
line({ series: windows[w.key], name: w.name, color: w.color, unit }), bottom: ROLLING_WINDOWS.map((w) =>
], line({ series: windows[w.key], name: w.name, color: w.color, unit }),
})); ),
},
...ROLLING_WINDOWS.map((w) => ({
name: w.name,
title: `${title} ${w.title} Average`,
bottom: [
line({ series: windows[w.key], name: w.name, color: w.color, unit }),
],
})),
];
} }
/** /**
@@ -621,7 +636,7 @@ export function averagesArray({ windows, title, unit }) {
*/ */
export function distributionWindowsTree({ pattern, base, title, unit }) { export function distributionWindowsTree({ pattern, base, title, unit }) {
return { return {
name: "Distributions", name: "Distribution",
tree: [ tree: [
{ {
name: "Compare", name: "Compare",

View File

@@ -1,7 +1,7 @@
/** Shared helpers for options */ /** Shared helpers for options */
import { Unit } from "../utils/units.js"; import { Unit } from "../utils/units.js";
import { line, baseline, price, ROLLING_WINDOWS } from "./series.js"; import { line, baseline, price, sumsAndAveragesCumulativeWith } from "./series.js";
import { priceLine, priceLines } from "./constants.js"; import { priceLine, priceLines } from "./constants.js";
import { colors } from "../utils/colors.js"; import { colors } from "../utils/colors.js";
@@ -224,45 +224,15 @@ export function satsBtcUsdRolling({ pattern, name, color, defaultActive }) {
* @returns {PartialOptionsTree} * @returns {PartialOptionsTree}
*/ */
export function satsBtcUsdFullTree({ pattern, title, color }) { export function satsBtcUsdFullTree({ pattern, title, color }) {
return [ return sumsAndAveragesCumulativeWith({
{ sum: pattern.sum,
name: "Compare", average: pattern.average,
title: `${title} Average`, cumulative: pattern.cumulative,
bottom: ROLLING_WINDOWS.flatMap((w) => title,
satsBtcUsd({ color,
pattern: pattern.average[w.key], series: ({ pattern, name, color, defaultActive }) =>
name: w.name, satsBtcUsd({ pattern, name, color, defaultActive }),
color: w.color, });
}),
),
},
...ROLLING_WINDOWS.map((w) => ({
name: w.name,
title: `${title} ${w.title}`,
bottom: [
...satsBtcUsd({
pattern: pattern.sum[w.key],
name: "Sum",
color: w.color,
}),
...satsBtcUsd({
pattern: pattern.average[w.key],
name: "Avg",
color: w.color,
defaultActive: false,
}),
],
})),
{
name: "Cumulative",
title: `${title} (Total)`,
bottom: satsBtcUsd({
pattern: pattern.cumulative,
name: "all-time",
color,
}),
},
];
} }
/** /**