brk-client 0.1.2__py3-none-any.whl → 0.1.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
brk_client/__init__.py CHANGED
@@ -25,7 +25,7 @@ Sats = int
25
25
  TypeIndex = int
26
26
  # Transaction ID (hash)
27
27
  Txid = str
28
- # Unified index for any address type (loaded or empty)
28
+ # Unified index for any address type (funded or empty)
29
29
  AnyAddressIndex = TypeIndex
30
30
  # Bitcoin amount as floating point (1 BTC = 100,000,000 satoshis)
31
31
  Bitcoin = float
@@ -40,9 +40,18 @@ BlockHash = str
40
40
  TxIndex = int
41
41
  # Transaction or block weight in weight units (WU)
42
42
  Weight = int
43
- Cents = int
43
+ # Cents × Sats (u128) - price in cents multiplied by amount in sats.
44
+ # Uses u128 because large amounts at any price can overflow u64.
45
+ CentsSats = int
46
+ # Raw cents squared (u128) - stores cents² × sats without division.
47
+ # Used for precise accumulation of investor cap values: Σ(price² × sats).
48
+ # investor_price = investor_cap_raw / realized_cap_raw
49
+ CentsSquaredSats = int
50
+ # Unsigned cents (u64) - for values that should never be negative.
51
+ # Used for invested capital, realized cap, etc.
52
+ CentsUnsigned = int
44
53
  # Closing price value for a time period
45
- Close = Cents
54
+ Close = CentsUnsigned
46
55
  # Output format for API responses
47
56
  Format = Literal["json", "csv"]
48
57
  # Maximum number of results to return. Defaults to 100 if not specified.
@@ -58,14 +67,14 @@ EmptyAddressIndex = TypeIndex
58
67
  EmptyOutputIndex = TypeIndex
59
68
  # Fee rate in sats/vB
60
69
  FeeRate = float
70
+ FundedAddressIndex = TypeIndex
61
71
  HalvingEpoch = int
62
72
  # Hex-encoded string
63
73
  Hex = str
64
74
  # Highest price value for a time period
65
- High = Cents
66
- LoadedAddressIndex = TypeIndex
75
+ High = CentsUnsigned
67
76
  # Lowest price value for a time period
68
- Low = Cents
77
+ Low = CentsUnsigned
69
78
  # Virtual size in vbytes (weight / 4, rounded up)
70
79
  VSize = int
71
80
  # Metric name
@@ -74,7 +83,7 @@ Metric = str
74
83
  Metrics = str
75
84
  MonthIndex = int
76
85
  # Opening price value for a time period
77
- Open = Cents
86
+ Open = CentsUnsigned
78
87
  OpReturnIndex = TypeIndex
79
88
  OutPoint = int
80
89
  # Type (P2PKH, P2WPKH, P2SH, P2TR, etc.)
@@ -114,6 +123,9 @@ RawLockTime = int
114
123
  # - $0.001 = 1 sat
115
124
  # - $0.0001 = 0.1 sats (fractional)
116
125
  SatsFract = float
126
+ # Signed satoshis (i64) - for values that can be negative.
127
+ # Used for changes, deltas, profit/loss calculations, etc.
128
+ SatsSigned = int
117
129
  SemesterIndex = int
118
130
  # Fixed-size boolean value optimized for on-disk storage (stored as u8)
119
131
  StoredBool = int
@@ -145,7 +157,7 @@ WeekIndex = int
145
157
  YearIndex = int
146
158
  # Aggregation dimension for querying metrics. Includes time-based (date, week, month, year),
147
159
  # block-based (height, txindex), and address/output type indexes.
148
- Index = Literal["dateindex", "decadeindex", "difficultyepoch", "emptyoutputindex", "halvingepoch", "height", "txinindex", "monthindex", "opreturnindex", "txoutindex", "p2aaddressindex", "p2msoutputindex", "p2pk33addressindex", "p2pk65addressindex", "p2pkhaddressindex", "p2shaddressindex", "p2traddressindex", "p2wpkhaddressindex", "p2wshaddressindex", "quarterindex", "semesterindex", "txindex", "unknownoutputindex", "weekindex", "yearindex", "loadedaddressindex", "emptyaddressindex", "pairoutputindex"]
160
+ Index = Literal["dateindex", "decadeindex", "difficultyepoch", "emptyoutputindex", "halvingepoch", "height", "txinindex", "monthindex", "opreturnindex", "txoutindex", "p2aaddressindex", "p2msoutputindex", "p2pk33addressindex", "p2pk65addressindex", "p2pkhaddressindex", "p2shaddressindex", "p2traddressindex", "p2wpkhaddressindex", "p2wshaddressindex", "quarterindex", "semesterindex", "txindex", "unknownoutputindex", "weekindex", "yearindex", "fundedaddressindex", "emptyaddressindex", "pairoutputindex"]
149
161
  # Hierarchical tree node for organizing metrics into categories
150
162
  TreeNode = Union[dict[str, "TreeNode"], "MetricLeafWithSchema"]
151
163
  class AddressChainStats(TypedDict):
@@ -443,6 +455,27 @@ class EmptyAddressData(TypedDict):
443
455
  funded_txo_count: int
444
456
  transfered: Sats
445
457
 
458
+ class FundedAddressData(TypedDict):
459
+ """
460
+ Data for a funded (non-empty) address with current balance
461
+
462
+ Attributes:
463
+ tx_count: Total transaction count
464
+ funded_txo_count: Number of transaction outputs funded to this address
465
+ spent_txo_count: Number of transaction outputs spent by this address
466
+ received: Satoshis received by this address
467
+ sent: Satoshis sent by this address
468
+ realized_cap_raw: The realized capitalization: Σ(price × sats)
469
+ investor_cap_raw: The investor capitalization: Σ(price² × sats)
470
+ """
471
+ tx_count: int
472
+ funded_txo_count: int
473
+ spent_txo_count: int
474
+ received: Sats
475
+ sent: Sats
476
+ realized_cap_raw: CentsSats
477
+ investor_cap_raw: CentsSquaredSats
478
+
446
479
  class HashrateEntry(TypedDict):
447
480
  """
448
481
  A single hashrate data point.
@@ -500,25 +533,6 @@ class IndexInfo(TypedDict):
500
533
  class LimitParam(TypedDict):
501
534
  limit: Limit
502
535
 
503
- class LoadedAddressData(TypedDict):
504
- """
505
- Data for a loaded (non-empty) address with current balance
506
-
507
- Attributes:
508
- tx_count: Total transaction count
509
- funded_txo_count: Number of transaction outputs funded to this address
510
- spent_txo_count: Number of transaction outputs spent by this address
511
- received: Satoshis received by this address
512
- sent: Satoshis sent by this address
513
- realized_cap: The realized capitalization of this address
514
- """
515
- tx_count: int
516
- funded_txo_count: int
517
- spent_txo_count: int
518
- received: Sats
519
- sent: Sats
520
- realized_cap: Dollars
521
-
522
536
  class MempoolBlock(TypedDict):
523
537
  """
524
538
  Block info in a mempool.space like format for fee estimation.
@@ -614,7 +628,7 @@ class MetricWithIndex(TypedDict):
614
628
  metric: Metric
615
629
  index: Index
616
630
 
617
- class OHLCCents(TypedDict):
631
+ class OHLCCentsUnsigned(TypedDict):
618
632
  """
619
633
  OHLC (Open, High, Low, Close) data in cents
620
634
  """
@@ -1392,7 +1406,7 @@ _i27 = ('txindex',)
1392
1406
  _i28 = ('unknownoutputindex',)
1393
1407
  _i29 = ('weekindex',)
1394
1408
  _i30 = ('yearindex',)
1395
- _i31 = ('loadedaddressindex',)
1409
+ _i31 = ('fundedaddressindex',)
1396
1410
  _i32 = ('emptyaddressindex',)
1397
1411
 
1398
1412
  def _ep(c: BrkClientBase, n: str, i: Index) -> MetricEndpointBuilder[Any]:
@@ -1791,7 +1805,7 @@ class MetricPattern30(Generic[T]):
1791
1805
 
1792
1806
  class _MetricPattern31By(Generic[T]):
1793
1807
  def __init__(self, c: BrkClientBase, n: str): self._c, self._n = c, n
1794
- def loadedaddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'loadedaddressindex')
1808
+ def fundedaddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'fundedaddressindex')
1795
1809
 
1796
1810
  class MetricPattern31(Generic[T]):
1797
1811
  by: _MetricPattern31By[T]
@@ -1815,7 +1829,7 @@ class MetricPattern32(Generic[T]):
1815
1829
 
1816
1830
  # Reusable structural pattern classes
1817
1831
 
1818
- class RealizedPattern3:
1832
+ class AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern:
1819
1833
  """Pattern struct for repeated tree structure."""
1820
1834
 
1821
1835
  def __init__(self, client: BrkClientBase, acc: str):
@@ -1825,27 +1839,48 @@ class RealizedPattern3:
1825
1839
  self.adjusted_sopr_7d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'adjusted_sopr_7d_ema'))
1826
1840
  self.adjusted_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'adjusted_value_created'))
1827
1841
  self.adjusted_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'adjusted_value_destroyed'))
1842
+ self.cap_raw: MetricPattern11[CentsSats] = MetricPattern11(client, _m(acc, 'cap_raw'))
1843
+ self.capitulation_flow: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'capitulation_flow'))
1844
+ self.investor_cap_raw: MetricPattern11[CentsSquaredSats] = MetricPattern11(client, _m(acc, 'investor_cap_raw'))
1845
+ self.investor_price: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'investor_price'))
1846
+ self.investor_price_cents: MetricPattern1[CentsUnsigned] = MetricPattern1(client, _m(acc, 'investor_price_cents'))
1847
+ self.investor_price_extra: RatioPattern = RatioPattern(client, _m(acc, 'investor_price_ratio'))
1848
+ self.loss_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'loss_value_created'))
1849
+ self.loss_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'loss_value_destroyed'))
1828
1850
  self.mvrv: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'mvrv'))
1829
- self.neg_realized_loss: BitcoinPattern2[Dollars] = BitcoinPattern2(client, _m(acc, 'neg_realized_loss'))
1830
- self.net_realized_pnl: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'net_realized_pnl'))
1851
+ self.neg_realized_loss: CumulativeSumPattern2[Dollars] = CumulativeSumPattern2(client, _m(acc, 'neg_realized_loss'))
1852
+ self.net_realized_pnl: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'net_realized_pnl'))
1853
+ self.net_realized_pnl_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'net_realized_pnl_7d_ema'))
1831
1854
  self.net_realized_pnl_cumulative_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta'))
1832
1855
  self.net_realized_pnl_cumulative_30d_delta_rel_to_market_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta_rel_to_market_cap'))
1833
1856
  self.net_realized_pnl_cumulative_30d_delta_rel_to_realized_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta_rel_to_realized_cap'))
1834
- self.net_realized_pnl_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap'))
1857
+ self.net_realized_pnl_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap'))
1858
+ self.peak_regret: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_peak_regret'))
1859
+ self.peak_regret_rel_to_realized_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'peak_regret_rel_to_realized_cap'))
1860
+ self.profit_flow: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_flow'))
1861
+ self.profit_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_value_created'))
1862
+ self.profit_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_value_destroyed'))
1835
1863
  self.realized_cap: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_cap'))
1836
1864
  self.realized_cap_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_cap_30d_delta'))
1865
+ self.realized_cap_cents: MetricPattern1[CentsUnsigned] = MetricPattern1(client, _m(acc, 'realized_cap_cents'))
1837
1866
  self.realized_cap_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'realized_cap_rel_to_own_market_cap'))
1838
- self.realized_loss: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_loss'))
1839
- self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1840
- self.realized_price: ActivePricePattern = ActivePricePattern(client, _m(acc, 'realized_price'))
1841
- self.realized_price_extra: ActivePriceRatioPattern = ActivePriceRatioPattern(client, _m(acc, 'realized_price_ratio'))
1842
- self.realized_profit: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_profit'))
1843
- self.realized_profit_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
1867
+ self.realized_loss: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_loss'))
1868
+ self.realized_loss_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_loss_7d_ema'))
1869
+ self.realized_loss_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1870
+ self.realized_price: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'realized_price'))
1871
+ self.realized_price_extra: RatioPattern = RatioPattern(client, _m(acc, 'realized_price_ratio'))
1872
+ self.realized_profit: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_profit'))
1873
+ self.realized_profit_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_profit_7d_ema'))
1874
+ self.realized_profit_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
1844
1875
  self.realized_profit_to_loss_ratio: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'realized_profit_to_loss_ratio'))
1845
1876
  self.realized_value: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_value'))
1846
1877
  self.sell_side_risk_ratio: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio'))
1847
1878
  self.sell_side_risk_ratio_30d_ema: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio_30d_ema'))
1848
1879
  self.sell_side_risk_ratio_7d_ema: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio_7d_ema'))
1880
+ self.sent_in_loss: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent_in_loss'))
1881
+ self.sent_in_loss_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_in_loss_14d_ema'))
1882
+ self.sent_in_profit: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent_in_profit'))
1883
+ self.sent_in_profit_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_in_profit_14d_ema'))
1849
1884
  self.sopr: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr'))
1850
1885
  self.sopr_30d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr_30d_ema'))
1851
1886
  self.sopr_7d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr_7d_ema'))
@@ -1853,7 +1888,7 @@ class RealizedPattern3:
1853
1888
  self.value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'value_created'))
1854
1889
  self.value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'value_destroyed'))
1855
1890
 
1856
- class RealizedPattern4:
1891
+ class AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2:
1857
1892
  """Pattern struct for repeated tree structure."""
1858
1893
 
1859
1894
  def __init__(self, client: BrkClientBase, acc: str):
@@ -1863,25 +1898,46 @@ class RealizedPattern4:
1863
1898
  self.adjusted_sopr_7d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'adjusted_sopr_7d_ema'))
1864
1899
  self.adjusted_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'adjusted_value_created'))
1865
1900
  self.adjusted_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'adjusted_value_destroyed'))
1901
+ self.cap_raw: MetricPattern11[CentsSats] = MetricPattern11(client, _m(acc, 'cap_raw'))
1902
+ self.capitulation_flow: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'capitulation_flow'))
1903
+ self.investor_cap_raw: MetricPattern11[CentsSquaredSats] = MetricPattern11(client, _m(acc, 'investor_cap_raw'))
1904
+ self.investor_price: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'investor_price'))
1905
+ self.investor_price_cents: MetricPattern1[CentsUnsigned] = MetricPattern1(client, _m(acc, 'investor_price_cents'))
1906
+ self.investor_price_extra: RatioPattern2 = RatioPattern2(client, _m(acc, 'investor_price_ratio'))
1907
+ self.loss_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'loss_value_created'))
1908
+ self.loss_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'loss_value_destroyed'))
1866
1909
  self.mvrv: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'mvrv'))
1867
- self.neg_realized_loss: BitcoinPattern2[Dollars] = BitcoinPattern2(client, _m(acc, 'neg_realized_loss'))
1868
- self.net_realized_pnl: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'net_realized_pnl'))
1910
+ self.neg_realized_loss: CumulativeSumPattern2[Dollars] = CumulativeSumPattern2(client, _m(acc, 'neg_realized_loss'))
1911
+ self.net_realized_pnl: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'net_realized_pnl'))
1912
+ self.net_realized_pnl_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'net_realized_pnl_7d_ema'))
1869
1913
  self.net_realized_pnl_cumulative_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta'))
1870
1914
  self.net_realized_pnl_cumulative_30d_delta_rel_to_market_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta_rel_to_market_cap'))
1871
1915
  self.net_realized_pnl_cumulative_30d_delta_rel_to_realized_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta_rel_to_realized_cap'))
1872
- self.net_realized_pnl_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap'))
1916
+ self.net_realized_pnl_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap'))
1917
+ self.peak_regret: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_peak_regret'))
1918
+ self.peak_regret_rel_to_realized_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'peak_regret_rel_to_realized_cap'))
1919
+ self.profit_flow: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_flow'))
1920
+ self.profit_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_value_created'))
1921
+ self.profit_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_value_destroyed'))
1873
1922
  self.realized_cap: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_cap'))
1874
1923
  self.realized_cap_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_cap_30d_delta'))
1875
- self.realized_loss: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_loss'))
1876
- self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1877
- self.realized_price: ActivePricePattern = ActivePricePattern(client, _m(acc, 'realized_price'))
1878
- self.realized_price_extra: RealizedPriceExtraPattern = RealizedPriceExtraPattern(client, _m(acc, 'realized_price_ratio'))
1879
- self.realized_profit: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_profit'))
1880
- self.realized_profit_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
1924
+ self.realized_cap_cents: MetricPattern1[CentsUnsigned] = MetricPattern1(client, _m(acc, 'realized_cap_cents'))
1925
+ self.realized_loss: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_loss'))
1926
+ self.realized_loss_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_loss_7d_ema'))
1927
+ self.realized_loss_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1928
+ self.realized_price: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'realized_price'))
1929
+ self.realized_price_extra: RatioPattern2 = RatioPattern2(client, _m(acc, 'realized_price_ratio'))
1930
+ self.realized_profit: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_profit'))
1931
+ self.realized_profit_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_profit_7d_ema'))
1932
+ self.realized_profit_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
1881
1933
  self.realized_value: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_value'))
1882
1934
  self.sell_side_risk_ratio: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio'))
1883
1935
  self.sell_side_risk_ratio_30d_ema: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio_30d_ema'))
1884
1936
  self.sell_side_risk_ratio_7d_ema: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio_7d_ema'))
1937
+ self.sent_in_loss: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent_in_loss'))
1938
+ self.sent_in_loss_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_in_loss_14d_ema'))
1939
+ self.sent_in_profit: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent_in_profit'))
1940
+ self.sent_in_profit_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_in_profit_14d_ema'))
1885
1941
  self.sopr: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr'))
1886
1942
  self.sopr_30d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr_30d_ema'))
1887
1943
  self.sopr_7d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr_7d_ema'))
@@ -1889,66 +1945,53 @@ class RealizedPattern4:
1889
1945
  self.value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'value_created'))
1890
1946
  self.value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'value_destroyed'))
1891
1947
 
1892
- class Ratio1ySdPattern:
1893
- """Pattern struct for repeated tree structure."""
1894
-
1895
- def __init__(self, client: BrkClientBase, acc: str):
1896
- """Create pattern node with accumulated metric name."""
1897
- self._0sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, '0sd_usd'))
1898
- self.m0_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm0_5sd'))
1899
- self.m0_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm0_5sd_usd'))
1900
- self.m1_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm1_5sd'))
1901
- self.m1_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm1_5sd_usd'))
1902
- self.m1sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm1sd'))
1903
- self.m1sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm1sd_usd'))
1904
- self.m2_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm2_5sd'))
1905
- self.m2_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm2_5sd_usd'))
1906
- self.m2sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm2sd'))
1907
- self.m2sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm2sd_usd'))
1908
- self.m3sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm3sd'))
1909
- self.m3sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm3sd_usd'))
1910
- self.p0_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p0_5sd'))
1911
- self.p0_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p0_5sd_usd'))
1912
- self.p1_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p1_5sd'))
1913
- self.p1_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p1_5sd_usd'))
1914
- self.p1sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p1sd'))
1915
- self.p1sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p1sd_usd'))
1916
- self.p2_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p2_5sd'))
1917
- self.p2_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p2_5sd_usd'))
1918
- self.p2sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p2sd'))
1919
- self.p2sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p2sd_usd'))
1920
- self.p3sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p3sd'))
1921
- self.p3sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p3sd_usd'))
1922
- self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
1923
- self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
1924
- self.zscore: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'zscore'))
1925
-
1926
- class RealizedPattern2:
1948
+ class CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2:
1927
1949
  """Pattern struct for repeated tree structure."""
1928
1950
 
1929
1951
  def __init__(self, client: BrkClientBase, acc: str):
1930
1952
  """Create pattern node with accumulated metric name."""
1953
+ self.cap_raw: MetricPattern11[CentsSats] = MetricPattern11(client, _m(acc, 'cap_raw'))
1954
+ self.capitulation_flow: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'capitulation_flow'))
1955
+ self.investor_cap_raw: MetricPattern11[CentsSquaredSats] = MetricPattern11(client, _m(acc, 'investor_cap_raw'))
1956
+ self.investor_price: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'investor_price'))
1957
+ self.investor_price_cents: MetricPattern1[CentsUnsigned] = MetricPattern1(client, _m(acc, 'investor_price_cents'))
1958
+ self.investor_price_extra: RatioPattern = RatioPattern(client, _m(acc, 'investor_price_ratio'))
1959
+ self.loss_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'loss_value_created'))
1960
+ self.loss_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'loss_value_destroyed'))
1931
1961
  self.mvrv: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'mvrv'))
1932
- self.neg_realized_loss: BitcoinPattern2[Dollars] = BitcoinPattern2(client, _m(acc, 'neg_realized_loss'))
1933
- self.net_realized_pnl: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'net_realized_pnl'))
1962
+ self.neg_realized_loss: CumulativeSumPattern2[Dollars] = CumulativeSumPattern2(client, _m(acc, 'neg_realized_loss'))
1963
+ self.net_realized_pnl: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'net_realized_pnl'))
1964
+ self.net_realized_pnl_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'net_realized_pnl_7d_ema'))
1934
1965
  self.net_realized_pnl_cumulative_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta'))
1935
1966
  self.net_realized_pnl_cumulative_30d_delta_rel_to_market_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta_rel_to_market_cap'))
1936
1967
  self.net_realized_pnl_cumulative_30d_delta_rel_to_realized_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta_rel_to_realized_cap'))
1937
- self.net_realized_pnl_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap'))
1968
+ self.net_realized_pnl_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap'))
1969
+ self.peak_regret: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_peak_regret'))
1970
+ self.peak_regret_rel_to_realized_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'peak_regret_rel_to_realized_cap'))
1971
+ self.profit_flow: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_flow'))
1972
+ self.profit_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_value_created'))
1973
+ self.profit_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_value_destroyed'))
1938
1974
  self.realized_cap: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_cap'))
1939
1975
  self.realized_cap_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_cap_30d_delta'))
1976
+ self.realized_cap_cents: MetricPattern1[CentsUnsigned] = MetricPattern1(client, _m(acc, 'realized_cap_cents'))
1940
1977
  self.realized_cap_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'realized_cap_rel_to_own_market_cap'))
1941
- self.realized_loss: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_loss'))
1942
- self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1943
- self.realized_price: ActivePricePattern = ActivePricePattern(client, _m(acc, 'realized_price'))
1944
- self.realized_price_extra: ActivePriceRatioPattern = ActivePriceRatioPattern(client, _m(acc, 'realized_price_ratio'))
1945
- self.realized_profit: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_profit'))
1946
- self.realized_profit_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
1978
+ self.realized_loss: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_loss'))
1979
+ self.realized_loss_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_loss_7d_ema'))
1980
+ self.realized_loss_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1981
+ self.realized_price: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'realized_price'))
1982
+ self.realized_price_extra: RatioPattern = RatioPattern(client, _m(acc, 'realized_price_ratio'))
1983
+ self.realized_profit: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_profit'))
1984
+ self.realized_profit_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_profit_7d_ema'))
1985
+ self.realized_profit_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
1947
1986
  self.realized_profit_to_loss_ratio: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'realized_profit_to_loss_ratio'))
1948
1987
  self.realized_value: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_value'))
1949
1988
  self.sell_side_risk_ratio: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio'))
1950
1989
  self.sell_side_risk_ratio_30d_ema: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio_30d_ema'))
1951
1990
  self.sell_side_risk_ratio_7d_ema: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio_7d_ema'))
1991
+ self.sent_in_loss: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent_in_loss'))
1992
+ self.sent_in_loss_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_in_loss_14d_ema'))
1993
+ self.sent_in_profit: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent_in_profit'))
1994
+ self.sent_in_profit_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_in_profit_14d_ema'))
1952
1995
  self.sopr: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr'))
1953
1996
  self.sopr_30d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr_30d_ema'))
1954
1997
  self.sopr_7d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr_7d_ema'))
@@ -1956,30 +1999,51 @@ class RealizedPattern2:
1956
1999
  self.value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'value_created'))
1957
2000
  self.value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'value_destroyed'))
1958
2001
 
1959
- class RealizedPattern:
2002
+ class CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern:
1960
2003
  """Pattern struct for repeated tree structure."""
1961
2004
 
1962
2005
  def __init__(self, client: BrkClientBase, acc: str):
1963
2006
  """Create pattern node with accumulated metric name."""
2007
+ self.cap_raw: MetricPattern11[CentsSats] = MetricPattern11(client, _m(acc, 'cap_raw'))
2008
+ self.capitulation_flow: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'capitulation_flow'))
2009
+ self.investor_cap_raw: MetricPattern11[CentsSquaredSats] = MetricPattern11(client, _m(acc, 'investor_cap_raw'))
2010
+ self.investor_price: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'investor_price'))
2011
+ self.investor_price_cents: MetricPattern1[CentsUnsigned] = MetricPattern1(client, _m(acc, 'investor_price_cents'))
2012
+ self.investor_price_extra: RatioPattern2 = RatioPattern2(client, _m(acc, 'investor_price_ratio'))
2013
+ self.loss_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'loss_value_created'))
2014
+ self.loss_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'loss_value_destroyed'))
1964
2015
  self.mvrv: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'mvrv'))
1965
- self.neg_realized_loss: BitcoinPattern2[Dollars] = BitcoinPattern2(client, _m(acc, 'neg_realized_loss'))
1966
- self.net_realized_pnl: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'net_realized_pnl'))
2016
+ self.neg_realized_loss: CumulativeSumPattern2[Dollars] = CumulativeSumPattern2(client, _m(acc, 'neg_realized_loss'))
2017
+ self.net_realized_pnl: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'net_realized_pnl'))
2018
+ self.net_realized_pnl_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'net_realized_pnl_7d_ema'))
1967
2019
  self.net_realized_pnl_cumulative_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta'))
1968
2020
  self.net_realized_pnl_cumulative_30d_delta_rel_to_market_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta_rel_to_market_cap'))
1969
2021
  self.net_realized_pnl_cumulative_30d_delta_rel_to_realized_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'net_realized_pnl_cumulative_30d_delta_rel_to_realized_cap'))
1970
- self.net_realized_pnl_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap'))
2022
+ self.net_realized_pnl_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap'))
2023
+ self.peak_regret: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_peak_regret'))
2024
+ self.peak_regret_rel_to_realized_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'peak_regret_rel_to_realized_cap'))
2025
+ self.profit_flow: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_flow'))
2026
+ self.profit_value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_value_created'))
2027
+ self.profit_value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_value_destroyed'))
1971
2028
  self.realized_cap: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_cap'))
1972
2029
  self.realized_cap_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_cap_30d_delta'))
1973
- self.realized_loss: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_loss'))
1974
- self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1975
- self.realized_price: ActivePricePattern = ActivePricePattern(client, _m(acc, 'realized_price'))
1976
- self.realized_price_extra: RealizedPriceExtraPattern = RealizedPriceExtraPattern(client, _m(acc, 'realized_price_ratio'))
1977
- self.realized_profit: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_profit'))
1978
- self.realized_profit_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
2030
+ self.realized_cap_cents: MetricPattern1[CentsUnsigned] = MetricPattern1(client, _m(acc, 'realized_cap_cents'))
2031
+ self.realized_loss: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_loss'))
2032
+ self.realized_loss_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_loss_7d_ema'))
2033
+ self.realized_loss_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
2034
+ self.realized_price: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'realized_price'))
2035
+ self.realized_price_extra: RatioPattern2 = RatioPattern2(client, _m(acc, 'realized_price_ratio'))
2036
+ self.realized_profit: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'realized_profit'))
2037
+ self.realized_profit_7d_ema: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_profit_7d_ema'))
2038
+ self.realized_profit_rel_to_realized_cap: CumulativeSumPattern[StoredF32] = CumulativeSumPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
1979
2039
  self.realized_value: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_value'))
1980
2040
  self.sell_side_risk_ratio: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio'))
1981
2041
  self.sell_side_risk_ratio_30d_ema: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio_30d_ema'))
1982
2042
  self.sell_side_risk_ratio_7d_ema: MetricPattern6[StoredF32] = MetricPattern6(client, _m(acc, 'sell_side_risk_ratio_7d_ema'))
2043
+ self.sent_in_loss: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent_in_loss'))
2044
+ self.sent_in_loss_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_in_loss_14d_ema'))
2045
+ self.sent_in_profit: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent_in_profit'))
2046
+ self.sent_in_profit_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_in_profit_14d_ema'))
1983
2047
  self.sopr: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr'))
1984
2048
  self.sopr_30d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr_30d_ema'))
1985
2049
  self.sopr_7d_ema: MetricPattern6[StoredF64] = MetricPattern6(client, _m(acc, 'sopr_7d_ema'))
@@ -1987,58 +2051,119 @@ class RealizedPattern:
1987
2051
  self.value_created: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'value_created'))
1988
2052
  self.value_destroyed: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'value_destroyed'))
1989
2053
 
1990
- class Price111dSmaPattern:
2054
+ class _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern:
2055
+ """Pattern struct for repeated tree structure."""
2056
+
2057
+ def __init__(self, client: BrkClientBase, acc: str):
2058
+ """Create pattern node with accumulated metric name."""
2059
+ self._0sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, '0sd_usd'))
2060
+ self.m0_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm0_5sd'))
2061
+ self.m0_5sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'm0_5sd_usd'))
2062
+ self.m1_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm1_5sd'))
2063
+ self.m1_5sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'm1_5sd_usd'))
2064
+ self.m1sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm1sd'))
2065
+ self.m1sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'm1sd_usd'))
2066
+ self.m2_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm2_5sd'))
2067
+ self.m2_5sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'm2_5sd_usd'))
2068
+ self.m2sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm2sd'))
2069
+ self.m2sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'm2sd_usd'))
2070
+ self.m3sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm3sd'))
2071
+ self.m3sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'm3sd_usd'))
2072
+ self.p0_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p0_5sd'))
2073
+ self.p0_5sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'p0_5sd_usd'))
2074
+ self.p1_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p1_5sd'))
2075
+ self.p1_5sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'p1_5sd_usd'))
2076
+ self.p1sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p1sd'))
2077
+ self.p1sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'p1sd_usd'))
2078
+ self.p2_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p2_5sd'))
2079
+ self.p2_5sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'p2_5sd_usd'))
2080
+ self.p2sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p2sd'))
2081
+ self.p2sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'p2sd_usd'))
2082
+ self.p3sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p3sd'))
2083
+ self.p3sd_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'p3sd_usd'))
2084
+ self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
2085
+ self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
2086
+ self.zscore: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'zscore'))
2087
+
2088
+ class InvestedNegNetNuplSupplyUnrealizedPattern4:
2089
+ """Pattern struct for repeated tree structure."""
2090
+
2091
+ def __init__(self, client: BrkClientBase, acc: str):
2092
+ """Create pattern node with accumulated metric name."""
2093
+ self.invested_capital_in_loss_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_loss_pct'))
2094
+ self.invested_capital_in_profit_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_profit_pct'))
2095
+ self.neg_unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_market_cap'))
2096
+ self.neg_unrealized_loss_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_own_market_cap'))
2097
+ self.neg_unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_own_total_unrealized_pnl'))
2098
+ self.net_unrealized_pnl_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap'))
2099
+ self.net_unrealized_pnl_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_own_market_cap'))
2100
+ self.net_unrealized_pnl_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_own_total_unrealized_pnl'))
2101
+ self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl'))
2102
+ self.supply_in_loss_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply'))
2103
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2104
+ self.supply_in_profit_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply'))
2105
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2106
+ self.supply_rel_to_circulating_supply: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, 'supply_rel_to_circulating_supply'))
2107
+ self.unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_market_cap'))
2108
+ self.unrealized_loss_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_own_market_cap'))
2109
+ self.unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_own_total_unrealized_pnl'))
2110
+ self.unrealized_peak_regret_rel_to_market_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'unrealized_peak_regret_rel_to_market_cap'))
2111
+ self.unrealized_profit_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_market_cap'))
2112
+ self.unrealized_profit_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_market_cap'))
2113
+ self.unrealized_profit_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_total_unrealized_pnl'))
2114
+
2115
+ class PriceRatioPattern:
1991
2116
  """Pattern struct for repeated tree structure."""
1992
2117
 
1993
2118
  def __init__(self, client: BrkClientBase, acc: str):
1994
2119
  """Create pattern node with accumulated metric name."""
1995
- self.price: _0sdUsdPattern = _0sdUsdPattern(client, acc)
2120
+ self.price: DollarsSatsPattern2 = DollarsSatsPattern2(client, acc)
1996
2121
  self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio'))
1997
2122
  self.ratio_1m_sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_1m_sma'))
1998
2123
  self.ratio_1w_sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_1w_sma'))
1999
- self.ratio_1y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, 'ratio_1y'))
2000
- self.ratio_2y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, 'ratio_2y'))
2001
- self.ratio_4y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, 'ratio_4y'))
2124
+ self.ratio_1y_sd: _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern = _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern(client, _m(acc, 'ratio_1y'))
2125
+ self.ratio_2y_sd: _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern = _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern(client, _m(acc, 'ratio_2y'))
2126
+ self.ratio_4y_sd: _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern = _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern(client, _m(acc, 'ratio_4y'))
2002
2127
  self.ratio_pct1: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct1'))
2003
- self.ratio_pct1_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct1_usd'))
2128
+ self.ratio_pct1_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'ratio_pct1_usd'))
2004
2129
  self.ratio_pct2: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct2'))
2005
- self.ratio_pct2_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct2_usd'))
2130
+ self.ratio_pct2_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'ratio_pct2_usd'))
2006
2131
  self.ratio_pct5: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct5'))
2007
- self.ratio_pct5_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct5_usd'))
2132
+ self.ratio_pct5_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'ratio_pct5_usd'))
2008
2133
  self.ratio_pct95: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct95'))
2009
- self.ratio_pct95_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct95_usd'))
2134
+ self.ratio_pct95_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'ratio_pct95_usd'))
2010
2135
  self.ratio_pct98: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct98'))
2011
- self.ratio_pct98_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct98_usd'))
2136
+ self.ratio_pct98_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'ratio_pct98_usd'))
2012
2137
  self.ratio_pct99: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct99'))
2013
- self.ratio_pct99_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct99_usd'))
2014
- self.ratio_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, 'ratio'))
2138
+ self.ratio_pct99_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'ratio_pct99_usd'))
2139
+ self.ratio_sd: _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern = _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern(client, _m(acc, 'ratio'))
2015
2140
 
2016
- class PercentilesPattern:
2141
+ class Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern:
2017
2142
  """Pattern struct for repeated tree structure."""
2018
2143
 
2019
2144
  def __init__(self, client: BrkClientBase, acc: str):
2020
2145
  """Create pattern node with accumulated metric name."""
2021
- self.pct05: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct05'))
2022
- self.pct10: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct10'))
2023
- self.pct15: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct15'))
2024
- self.pct20: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct20'))
2025
- self.pct25: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct25'))
2026
- self.pct30: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct30'))
2027
- self.pct35: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct35'))
2028
- self.pct40: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct40'))
2029
- self.pct45: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct45'))
2030
- self.pct50: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct50'))
2031
- self.pct55: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct55'))
2032
- self.pct60: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct60'))
2033
- self.pct65: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct65'))
2034
- self.pct70: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct70'))
2035
- self.pct75: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct75'))
2036
- self.pct80: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct80'))
2037
- self.pct85: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct85'))
2038
- self.pct90: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct90'))
2039
- self.pct95: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct95'))
2040
-
2041
- class ActivePriceRatioPattern:
2146
+ self.pct05: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct05'))
2147
+ self.pct10: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct10'))
2148
+ self.pct15: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct15'))
2149
+ self.pct20: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct20'))
2150
+ self.pct25: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct25'))
2151
+ self.pct30: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct30'))
2152
+ self.pct35: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct35'))
2153
+ self.pct40: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct40'))
2154
+ self.pct45: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct45'))
2155
+ self.pct50: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct50'))
2156
+ self.pct55: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct55'))
2157
+ self.pct60: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct60'))
2158
+ self.pct65: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct65'))
2159
+ self.pct70: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct70'))
2160
+ self.pct75: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct75'))
2161
+ self.pct80: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct80'))
2162
+ self.pct85: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct85'))
2163
+ self.pct90: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct90'))
2164
+ self.pct95: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct95'))
2165
+
2166
+ class RatioPattern:
2042
2167
  """Pattern struct for repeated tree structure."""
2043
2168
 
2044
2169
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2046,48 +2171,69 @@ class ActivePriceRatioPattern:
2046
2171
  self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, acc)
2047
2172
  self.ratio_1m_sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, '1m_sma'))
2048
2173
  self.ratio_1w_sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, '1w_sma'))
2049
- self.ratio_1y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, '1y'))
2050
- self.ratio_2y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, '2y'))
2051
- self.ratio_4y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, '4y'))
2174
+ self.ratio_1y_sd: _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern = _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern(client, _m(acc, '1y'))
2175
+ self.ratio_2y_sd: _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern = _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern(client, _m(acc, '2y'))
2176
+ self.ratio_4y_sd: _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern = _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern(client, _m(acc, '4y'))
2052
2177
  self.ratio_pct1: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct1'))
2053
- self.ratio_pct1_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct1_usd'))
2178
+ self.ratio_pct1_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct1_usd'))
2054
2179
  self.ratio_pct2: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct2'))
2055
- self.ratio_pct2_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct2_usd'))
2180
+ self.ratio_pct2_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct2_usd'))
2056
2181
  self.ratio_pct5: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct5'))
2057
- self.ratio_pct5_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct5_usd'))
2182
+ self.ratio_pct5_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct5_usd'))
2058
2183
  self.ratio_pct95: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct95'))
2059
- self.ratio_pct95_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct95_usd'))
2184
+ self.ratio_pct95_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct95_usd'))
2060
2185
  self.ratio_pct98: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct98'))
2061
- self.ratio_pct98_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct98_usd'))
2186
+ self.ratio_pct98_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct98_usd'))
2062
2187
  self.ratio_pct99: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct99'))
2063
- self.ratio_pct99_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct99_usd'))
2064
- self.ratio_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, acc)
2188
+ self.ratio_pct99_usd: DollarsSatsPattern2 = DollarsSatsPattern2(client, _m(acc, 'pct99_usd'))
2189
+ self.ratio_sd: _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern = _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern(client, acc)
2065
2190
 
2066
- class RelativePattern5:
2191
+ class GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern:
2067
2192
  """Pattern struct for repeated tree structure."""
2068
2193
 
2069
2194
  def __init__(self, client: BrkClientBase, acc: str):
2070
2195
  """Create pattern node with accumulated metric name."""
2071
- self.neg_unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_market_cap'))
2072
- self.neg_unrealized_loss_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_own_market_cap'))
2073
- self.neg_unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_own_total_unrealized_pnl'))
2074
- self.net_unrealized_pnl_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap'))
2075
- self.net_unrealized_pnl_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_own_market_cap'))
2076
- self.net_unrealized_pnl_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_own_total_unrealized_pnl'))
2077
- self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl'))
2078
- self.supply_in_loss_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply'))
2079
- self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2080
- self.supply_in_profit_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply'))
2081
- self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2082
- self.supply_rel_to_circulating_supply: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, 'supply_rel_to_circulating_supply'))
2083
- self.unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_market_cap'))
2084
- self.unrealized_loss_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_own_market_cap'))
2085
- self.unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_own_total_unrealized_pnl'))
2086
- self.unrealized_profit_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_market_cap'))
2087
- self.unrealized_profit_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_market_cap'))
2088
- self.unrealized_profit_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_total_unrealized_pnl'))
2196
+ self.greed_index: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'greed_index'))
2197
+ self.invested_capital_in_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'invested_capital_in_loss'))
2198
+ self.invested_capital_in_loss_raw: MetricPattern11[CentsSats] = MetricPattern11(client, _m(acc, 'invested_capital_in_loss_raw'))
2199
+ self.invested_capital_in_profit: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'invested_capital_in_profit'))
2200
+ self.invested_capital_in_profit_raw: MetricPattern11[CentsSats] = MetricPattern11(client, _m(acc, 'invested_capital_in_profit_raw'))
2201
+ self.investor_cap_in_loss_raw: MetricPattern11[CentsSquaredSats] = MetricPattern11(client, _m(acc, 'investor_cap_in_loss_raw'))
2202
+ self.investor_cap_in_profit_raw: MetricPattern11[CentsSquaredSats] = MetricPattern11(client, _m(acc, 'investor_cap_in_profit_raw'))
2203
+ self.neg_unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss'))
2204
+ self.net_sentiment: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'net_sentiment'))
2205
+ self.net_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl'))
2206
+ self.pain_index: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'pain_index'))
2207
+ self.peak_regret: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'unrealized_peak_regret'))
2208
+ self.supply_in_loss: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, _m(acc, 'supply_in_loss'))
2209
+ self.supply_in_profit: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, _m(acc, 'supply_in_profit'))
2210
+ self.total_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'total_unrealized_pnl'))
2211
+ self.unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_loss'))
2212
+ self.unrealized_profit: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_profit'))
2213
+
2214
+ class GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern:
2215
+ """Pattern struct for repeated tree structure."""
2216
+
2217
+ def __init__(self, client: BrkClientBase, acc: str):
2218
+ """Create pattern node with accumulated metric name."""
2219
+ self.greed_index: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'greed_index'))
2220
+ self.invested_capital_in_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'invested_capital_in_loss'))
2221
+ self.invested_capital_in_loss_raw: MetricPattern11[CentsSats] = MetricPattern11(client, _m(acc, 'invested_capital_in_loss_raw'))
2222
+ self.invested_capital_in_profit: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'invested_capital_in_profit'))
2223
+ self.invested_capital_in_profit_raw: MetricPattern11[CentsSats] = MetricPattern11(client, _m(acc, 'invested_capital_in_profit_raw'))
2224
+ self.investor_cap_in_loss_raw: MetricPattern11[CentsSquaredSats] = MetricPattern11(client, _m(acc, 'investor_cap_in_loss_raw'))
2225
+ self.investor_cap_in_profit_raw: MetricPattern11[CentsSquaredSats] = MetricPattern11(client, _m(acc, 'investor_cap_in_profit_raw'))
2226
+ self.neg_unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss'))
2227
+ self.net_sentiment: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'net_sentiment'))
2228
+ self.net_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl'))
2229
+ self.pain_index: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'pain_index'))
2230
+ self.supply_in_loss: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, _m(acc, 'supply_in_loss'))
2231
+ self.supply_in_profit: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, _m(acc, 'supply_in_profit'))
2232
+ self.total_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'total_unrealized_pnl'))
2233
+ self.unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_loss'))
2234
+ self.unrealized_profit: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_profit'))
2089
2235
 
2090
- class AaopoolPattern:
2236
+ class _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern:
2091
2237
  """Pattern struct for repeated tree structure."""
2092
2238
 
2093
2239
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2100,33 +2246,88 @@ class AaopoolPattern:
2100
2246
  self._1y_dominance: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, '1y_dominance'))
2101
2247
  self._24h_blocks_mined: MetricPattern1[StoredU32] = MetricPattern1(client, _m(acc, '24h_blocks_mined'))
2102
2248
  self._24h_dominance: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, '24h_dominance'))
2103
- self.blocks_mined: BlockCountPattern[StoredU32] = BlockCountPattern(client, _m(acc, 'blocks_mined'))
2249
+ self.blocks_mined: CumulativeSumPattern[StoredU32] = CumulativeSumPattern(client, _m(acc, 'blocks_mined'))
2104
2250
  self.blocks_since_block: MetricPattern1[StoredU32] = MetricPattern1(client, _m(acc, 'blocks_since_block'))
2105
- self.coinbase: CoinbasePattern2 = CoinbasePattern2(client, _m(acc, 'coinbase'))
2251
+ self.coinbase: BitcoinDollarsSatsPattern6 = BitcoinDollarsSatsPattern6(client, _m(acc, 'coinbase'))
2106
2252
  self.days_since_block: MetricPattern4[StoredU16] = MetricPattern4(client, _m(acc, 'days_since_block'))
2107
2253
  self.dominance: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'dominance'))
2108
- self.fee: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, _m(acc, 'fee'))
2109
- self.subsidy: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, _m(acc, 'subsidy'))
2254
+ self.fee: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'fee'))
2255
+ self.subsidy: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'subsidy'))
2256
+
2257
+ class InvestedNegNetNuplSupplyUnrealizedPattern3:
2258
+ """Pattern struct for repeated tree structure."""
2259
+
2260
+ def __init__(self, client: BrkClientBase, acc: str):
2261
+ """Create pattern node with accumulated metric name."""
2262
+ self.invested_capital_in_loss_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_loss_pct'))
2263
+ self.invested_capital_in_profit_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_profit_pct'))
2264
+ self.neg_unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_market_cap'))
2265
+ self.net_unrealized_pnl_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap'))
2266
+ self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl'))
2267
+ self.supply_in_loss_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply'))
2268
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2269
+ self.supply_in_profit_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply'))
2270
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2271
+ self.supply_rel_to_circulating_supply: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, 'supply_rel_to_circulating_supply'))
2272
+ self.unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_market_cap'))
2273
+ self.unrealized_peak_regret_rel_to_market_cap: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'unrealized_peak_regret_rel_to_market_cap'))
2274
+ self.unrealized_profit_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_market_cap'))
2275
+
2276
+ class _10y1m1w1y2y3m3y4y5y6m6y8yPattern3:
2277
+ """Pattern struct for repeated tree structure."""
2278
+
2279
+ def __init__(self, client: BrkClientBase, acc: str):
2280
+ """Create pattern node with accumulated metric name."""
2281
+ self._10y: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('10y', acc))
2282
+ self._1m: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('1m', acc))
2283
+ self._1w: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('1w', acc))
2284
+ self._1y: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('1y', acc))
2285
+ self._2y: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('2y', acc))
2286
+ self._3m: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('3m', acc))
2287
+ self._3y: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('3y', acc))
2288
+ self._4y: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('4y', acc))
2289
+ self._5y: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('5y', acc))
2290
+ self._6m: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('6m', acc))
2291
+ self._6y: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('6y', acc))
2292
+ self._8y: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _p('8y', acc))
2293
+
2294
+ class InvestedNegNetNuplSupplyUnrealizedPattern:
2295
+ """Pattern struct for repeated tree structure."""
2296
+
2297
+ def __init__(self, client: BrkClientBase, acc: str):
2298
+ """Create pattern node with accumulated metric name."""
2299
+ self.invested_capital_in_loss_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_loss_pct'))
2300
+ self.invested_capital_in_profit_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_profit_pct'))
2301
+ self.neg_unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_market_cap'))
2302
+ self.net_unrealized_pnl_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap'))
2303
+ self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl'))
2304
+ self.supply_in_loss_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply'))
2305
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2306
+ self.supply_in_profit_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply'))
2307
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2308
+ self.supply_rel_to_circulating_supply: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, 'supply_rel_to_circulating_supply'))
2309
+ self.unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_market_cap'))
2310
+ self.unrealized_profit_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_market_cap'))
2110
2311
 
2111
- class PeriodLumpSumStackPattern:
2312
+ class InvestedNegNetSupplyUnrealizedPattern:
2112
2313
  """Pattern struct for repeated tree structure."""
2113
2314
 
2114
2315
  def __init__(self, client: BrkClientBase, acc: str):
2115
2316
  """Create pattern node with accumulated metric name."""
2116
- self._10y: _2015Pattern = _2015Pattern(client, _p('10y', acc))
2117
- self._1m: _2015Pattern = _2015Pattern(client, _p('1m', acc))
2118
- self._1w: _2015Pattern = _2015Pattern(client, _p('1w', acc))
2119
- self._1y: _2015Pattern = _2015Pattern(client, _p('1y', acc))
2120
- self._2y: _2015Pattern = _2015Pattern(client, _p('2y', acc))
2121
- self._3m: _2015Pattern = _2015Pattern(client, _p('3m', acc))
2122
- self._3y: _2015Pattern = _2015Pattern(client, _p('3y', acc))
2123
- self._4y: _2015Pattern = _2015Pattern(client, _p('4y', acc))
2124
- self._5y: _2015Pattern = _2015Pattern(client, _p('5y', acc))
2125
- self._6m: _2015Pattern = _2015Pattern(client, _p('6m', acc))
2126
- self._6y: _2015Pattern = _2015Pattern(client, _p('6y', acc))
2127
- self._8y: _2015Pattern = _2015Pattern(client, _p('8y', acc))
2128
-
2129
- class PeriodDaysInLossPattern(Generic[T]):
2317
+ self.invested_capital_in_loss_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_loss_pct'))
2318
+ self.invested_capital_in_profit_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_profit_pct'))
2319
+ self.neg_unrealized_loss_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_own_market_cap'))
2320
+ self.neg_unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_own_total_unrealized_pnl'))
2321
+ self.net_unrealized_pnl_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_own_market_cap'))
2322
+ self.net_unrealized_pnl_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_own_total_unrealized_pnl'))
2323
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2324
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2325
+ self.unrealized_loss_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_own_market_cap'))
2326
+ self.unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_own_total_unrealized_pnl'))
2327
+ self.unrealized_profit_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_market_cap'))
2328
+ self.unrealized_profit_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_total_unrealized_pnl'))
2329
+
2330
+ class _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(Generic[T]):
2130
2331
  """Pattern struct for repeated tree structure."""
2131
2332
 
2132
2333
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2144,7 +2345,7 @@ class PeriodDaysInLossPattern(Generic[T]):
2144
2345
  self._6y: MetricPattern4[T] = MetricPattern4(client, _p('6y', acc))
2145
2346
  self._8y: MetricPattern4[T] = MetricPattern4(client, _p('8y', acc))
2146
2347
 
2147
- class ClassDaysInLossPattern(Generic[T]):
2348
+ class _201520162017201820192020202120222023202420252026Pattern2(Generic[T]):
2148
2349
  """Pattern struct for repeated tree structure."""
2149
2350
 
2150
2351
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2162,7 +2363,7 @@ class ClassDaysInLossPattern(Generic[T]):
2162
2363
  self._2025: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2025_returns'))
2163
2364
  self._2026: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2026_returns'))
2164
2365
 
2165
- class BitcoinPattern:
2366
+ class AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern:
2166
2367
  """Pattern struct for repeated tree structure."""
2167
2368
 
2168
2369
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2179,7 +2380,7 @@ class BitcoinPattern:
2179
2380
  self.pct90: MetricPattern6[Bitcoin] = MetricPattern6(client, _m(acc, 'pct90'))
2180
2381
  self.sum: MetricPattern2[Bitcoin] = MetricPattern2(client, _m(acc, 'sum'))
2181
2382
 
2182
- class DollarsPattern(Generic[T]):
2383
+ class AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(Generic[T]):
2183
2384
  """Pattern struct for repeated tree structure."""
2184
2385
 
2185
2386
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2196,39 +2397,7 @@ class DollarsPattern(Generic[T]):
2196
2397
  self.pct90: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct90'))
2197
2398
  self.sum: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'sum'))
2198
2399
 
2199
- class RelativePattern:
2200
- """Pattern struct for repeated tree structure."""
2201
-
2202
- def __init__(self, client: BrkClientBase, acc: str):
2203
- """Create pattern node with accumulated metric name."""
2204
- self.neg_unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_market_cap'))
2205
- self.net_unrealized_pnl_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap'))
2206
- self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl'))
2207
- self.supply_in_loss_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply'))
2208
- self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2209
- self.supply_in_profit_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply'))
2210
- self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2211
- self.supply_rel_to_circulating_supply: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, 'supply_rel_to_circulating_supply'))
2212
- self.unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_market_cap'))
2213
- self.unrealized_profit_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_market_cap'))
2214
-
2215
- class RelativePattern2:
2216
- """Pattern struct for repeated tree structure."""
2217
-
2218
- def __init__(self, client: BrkClientBase, acc: str):
2219
- """Create pattern node with accumulated metric name."""
2220
- self.neg_unrealized_loss_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_own_market_cap'))
2221
- self.neg_unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_own_total_unrealized_pnl'))
2222
- self.net_unrealized_pnl_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_own_market_cap'))
2223
- self.net_unrealized_pnl_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_own_total_unrealized_pnl'))
2224
- self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2225
- self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2226
- self.unrealized_loss_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_own_market_cap'))
2227
- self.unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_own_total_unrealized_pnl'))
2228
- self.unrealized_profit_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_market_cap'))
2229
- self.unrealized_profit_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_total_unrealized_pnl'))
2230
-
2231
- class CountPattern2(Generic[T]):
2400
+ class AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(Generic[T]):
2232
2401
  """Pattern struct for repeated tree structure."""
2233
2402
 
2234
2403
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2244,7 +2413,7 @@ class CountPattern2(Generic[T]):
2244
2413
  self.pct90: MetricPattern11[T] = MetricPattern11(client, _m(acc, 'pct90'))
2245
2414
  self.sum: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'sum'))
2246
2415
 
2247
- class AddrCountPattern:
2416
+ class AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern:
2248
2417
  """Pattern struct for repeated tree structure."""
2249
2418
 
2250
2419
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2259,7 +2428,7 @@ class AddrCountPattern:
2259
2428
  self.p2wpkh: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2wpkh', acc))
2260
2429
  self.p2wsh: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2wsh', acc))
2261
2430
 
2262
- class FeeRatePattern(Generic[T]):
2431
+ class AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern(Generic[T]):
2263
2432
  """Pattern struct for repeated tree structure."""
2264
2433
 
2265
2434
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2274,7 +2443,7 @@ class FeeRatePattern(Generic[T]):
2274
2443
  self.pct90: MetricPattern11[T] = MetricPattern11(client, _m(acc, 'pct90'))
2275
2444
  self.txindex: MetricPattern27[T] = MetricPattern27(client, acc)
2276
2445
 
2277
- class FullnessPattern(Generic[T]):
2446
+ class AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(Generic[T]):
2278
2447
  """Pattern struct for repeated tree structure."""
2279
2448
 
2280
2449
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2289,21 +2458,21 @@ class FullnessPattern(Generic[T]):
2289
2458
  self.pct75: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct75'))
2290
2459
  self.pct90: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct90'))
2291
2460
 
2292
- class _0satsPattern:
2461
+ class ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern:
2293
2462
  """Pattern struct for repeated tree structure."""
2294
2463
 
2295
2464
  def __init__(self, client: BrkClientBase, acc: str):
2296
2465
  """Create pattern node with accumulated metric name."""
2297
- self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2466
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2298
2467
  self.addr_count: MetricPattern1[StoredU64] = MetricPattern1(client, _m(acc, 'addr_count'))
2299
- self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2300
- self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2301
- self.realized: RealizedPattern = RealizedPattern(client, acc)
2302
- self.relative: RelativePattern = RelativePattern(client, acc)
2303
- self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2304
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2305
-
2306
- class PeriodCagrPattern:
2468
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2469
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2470
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2471
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern = InvestedNegNetNuplSupplyUnrealizedPattern(client, acc)
2472
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2473
+ self.unrealized: GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern(client, acc)
2474
+
2475
+ class _10y2y3y4y5y6y8yPattern:
2307
2476
  """Pattern struct for repeated tree structure."""
2308
2477
 
2309
2478
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2316,95 +2485,130 @@ class PeriodCagrPattern:
2316
2485
  self._6y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('6y', acc))
2317
2486
  self._8y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('8y', acc))
2318
2487
 
2319
- class _100btcPattern:
2488
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern:
2320
2489
  """Pattern struct for repeated tree structure."""
2321
2490
 
2322
2491
  def __init__(self, client: BrkClientBase, acc: str):
2323
2492
  """Create pattern node with accumulated metric name."""
2324
- self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2325
- self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2326
- self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2327
- self.realized: RealizedPattern = RealizedPattern(client, acc)
2328
- self.relative: RelativePattern = RelativePattern(client, acc)
2329
- self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2330
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2331
-
2332
- class _0satsPattern2:
2493
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2494
+ self.cost_basis: InvestedMaxMinPercentilesSpotPattern = InvestedMaxMinPercentilesSpotPattern(client, acc)
2495
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2496
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2 = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2(client, acc)
2497
+ self.relative: InvestedNegNetSupplyUnrealizedPattern = InvestedNegNetSupplyUnrealizedPattern(client, acc)
2498
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2499
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, acc)
2500
+
2501
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5:
2333
2502
  """Pattern struct for repeated tree structure."""
2334
2503
 
2335
2504
  def __init__(self, client: BrkClientBase, acc: str):
2336
2505
  """Create pattern node with accumulated metric name."""
2337
- self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2338
- self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2339
- self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2340
- self.realized: RealizedPattern = RealizedPattern(client, acc)
2341
- self.relative: RelativePattern4 = RelativePattern4(client, _m(acc, 'supply_in'))
2342
- self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2343
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2344
-
2345
- class _10yPattern:
2506
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2507
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2508
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2509
+ self.realized: AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2 = AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2(client, acc)
2510
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern3 = InvestedNegNetNuplSupplyUnrealizedPattern3(client, acc)
2511
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2512
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, acc)
2513
+
2514
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4:
2346
2515
  """Pattern struct for repeated tree structure."""
2347
2516
 
2348
2517
  def __init__(self, client: BrkClientBase, acc: str):
2349
2518
  """Create pattern node with accumulated metric name."""
2350
- self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2351
- self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2352
- self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2353
- self.realized: RealizedPattern4 = RealizedPattern4(client, acc)
2354
- self.relative: RelativePattern = RelativePattern(client, acc)
2355
- self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2356
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2357
-
2358
- class _10yTo12yPattern:
2519
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2520
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2521
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2522
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2523
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern = InvestedNegNetNuplSupplyUnrealizedPattern(client, acc)
2524
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2525
+ self.unrealized: GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern(client, acc)
2526
+
2527
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6:
2359
2528
  """Pattern struct for repeated tree structure."""
2360
2529
 
2361
2530
  def __init__(self, client: BrkClientBase, acc: str):
2362
2531
  """Create pattern node with accumulated metric name."""
2363
- self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2364
- self.cost_basis: CostBasisPattern2 = CostBasisPattern2(client, acc)
2365
- self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2366
- self.realized: RealizedPattern2 = RealizedPattern2(client, acc)
2367
- self.relative: RelativePattern2 = RelativePattern2(client, acc)
2368
- self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2369
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2370
-
2371
- class UnrealizedPattern:
2532
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2533
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2534
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2535
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2536
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern3 = InvestedNegNetNuplSupplyUnrealizedPattern3(client, acc)
2537
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2538
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, acc)
2539
+
2540
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3:
2372
2541
  """Pattern struct for repeated tree structure."""
2373
2542
 
2374
2543
  def __init__(self, client: BrkClientBase, acc: str):
2375
2544
  """Create pattern node with accumulated metric name."""
2376
- self.neg_unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss'))
2377
- self.net_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl'))
2378
- self.supply_in_loss: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'supply_in_loss'))
2379
- self.supply_in_profit: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'supply_in_profit'))
2380
- self.total_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'total_unrealized_pnl'))
2381
- self.unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_loss'))
2382
- self.unrealized_profit: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_profit'))
2383
-
2384
- class AllPattern:
2545
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2546
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2547
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2548
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2549
+ self.relative: InvestedSupplyPattern = InvestedSupplyPattern(client, acc)
2550
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2551
+ self.unrealized: GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern(client, acc)
2552
+
2553
+ class ActivityCostOutputsRealizedSupplyUnrealizedPattern:
2554
+ """Pattern struct for repeated tree structure."""
2555
+
2556
+ def __init__(self, client: BrkClientBase, acc: str):
2557
+ """Create pattern node with accumulated metric name."""
2558
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2559
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2560
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2561
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2562
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2563
+ self.unrealized: GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern(client, acc)
2564
+
2565
+ class BalanceBothReactivatedReceivingSendingPattern:
2385
2566
  """Pattern struct for repeated tree structure."""
2386
2567
 
2387
2568
  def __init__(self, client: BrkClientBase, acc: str):
2388
2569
  """Create pattern node with accumulated metric name."""
2389
- self.balance_decreased: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'balance_decreased'))
2390
- self.balance_increased: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'balance_increased'))
2391
- self.both: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'both'))
2392
- self.reactivated: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'reactivated'))
2393
- self.receiving: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'receiving'))
2394
- self.sending: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'sending'))
2395
-
2396
- class ActivityPattern2:
2570
+ self.balance_decreased: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'balance_decreased'))
2571
+ self.balance_increased: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'balance_increased'))
2572
+ self.both: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'both'))
2573
+ self.reactivated: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'reactivated'))
2574
+ self.receiving: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'receiving'))
2575
+ self.sending: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'sending'))
2576
+
2577
+ class CoinblocksCoindaysSatblocksSatdaysSentPattern:
2397
2578
  """Pattern struct for repeated tree structure."""
2398
2579
 
2399
2580
  def __init__(self, client: BrkClientBase, acc: str):
2400
2581
  """Create pattern node with accumulated metric name."""
2401
- self.coinblocks_destroyed: BlockCountPattern[StoredF64] = BlockCountPattern(client, _m(acc, 'coinblocks_destroyed'))
2402
- self.coindays_destroyed: BlockCountPattern[StoredF64] = BlockCountPattern(client, _m(acc, 'coindays_destroyed'))
2582
+ self.coinblocks_destroyed: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, _m(acc, 'coinblocks_destroyed'))
2583
+ self.coindays_destroyed: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, _m(acc, 'coindays_destroyed'))
2403
2584
  self.satblocks_destroyed: MetricPattern11[Sats] = MetricPattern11(client, _m(acc, 'satblocks_destroyed'))
2404
2585
  self.satdays_destroyed: MetricPattern11[Sats] = MetricPattern11(client, _m(acc, 'satdays_destroyed'))
2405
- self.sent: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, _m(acc, 'sent'))
2586
+ self.sent: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent'))
2587
+ self.sent_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_14d_ema'))
2588
+
2589
+ class InvestedMaxMinPercentilesSpotPattern:
2590
+ """Pattern struct for repeated tree structure."""
2591
+
2592
+ def __init__(self, client: BrkClientBase, acc: str):
2593
+ """Create pattern node with accumulated metric name."""
2594
+ self.invested_capital: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, _m(acc, 'invested_capital'))
2595
+ self.max: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'max_cost_basis'))
2596
+ self.min: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'min_cost_basis'))
2597
+ self.percentiles: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, _m(acc, 'cost_basis'))
2598
+ self.spot_cost_basis_percentile: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'spot_cost_basis_percentile'))
2599
+ self.spot_invested_capital_percentile: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'spot_invested_capital_percentile'))
2600
+
2601
+ class InvestedSupplyPattern:
2602
+ """Pattern struct for repeated tree structure."""
2603
+
2604
+ def __init__(self, client: BrkClientBase, acc: str):
2605
+ """Create pattern node with accumulated metric name."""
2606
+ self.invested_capital_in_loss_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_loss_pct'))
2607
+ self.invested_capital_in_profit_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_profit_pct'))
2608
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2609
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2406
2610
 
2407
- class SplitPattern2(Generic[T]):
2611
+ class CloseHighLowOpenPattern2(Generic[T]):
2408
2612
  """Pattern struct for repeated tree structure."""
2409
2613
 
2410
2614
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2414,70 +2618,70 @@ class SplitPattern2(Generic[T]):
2414
2618
  self.low: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'low'))
2415
2619
  self.open: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'open'))
2416
2620
 
2417
- class SegwitAdoptionPattern:
2621
+ class _30dHalvedTotalPattern:
2418
2622
  """Pattern struct for repeated tree structure."""
2419
2623
 
2420
2624
  def __init__(self, client: BrkClientBase, acc: str):
2421
2625
  """Create pattern node with accumulated metric name."""
2422
- self.base: MetricPattern11[StoredF32] = MetricPattern11(client, acc)
2423
- self.cumulative: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'cumulative'))
2424
- self.sum: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'sum'))
2626
+ self._30d_change: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, '_30d_change'))
2627
+ self.halved: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, _m(acc, 'supply_halved'))
2628
+ self.total: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, _m(acc, 'supply'))
2425
2629
 
2426
- class ActiveSupplyPattern:
2630
+ class BaseCumulativeSumPattern:
2427
2631
  """Pattern struct for repeated tree structure."""
2428
2632
 
2429
2633
  def __init__(self, client: BrkClientBase, acc: str):
2430
2634
  """Create pattern node with accumulated metric name."""
2431
- self.bitcoin: MetricPattern1[Bitcoin] = MetricPattern1(client, _m(acc, 'btc'))
2432
- self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'usd'))
2433
- self.sats: MetricPattern1[Sats] = MetricPattern1(client, acc)
2635
+ self.base: MetricPattern11[StoredF32] = MetricPattern11(client, acc)
2636
+ self.cumulative: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'cumulative'))
2637
+ self.sum: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'sum'))
2434
2638
 
2435
- class _2015Pattern:
2639
+ class BitcoinDollarsSatsPattern2:
2436
2640
  """Pattern struct for repeated tree structure."""
2437
2641
 
2438
2642
  def __init__(self, client: BrkClientBase, acc: str):
2439
2643
  """Create pattern node with accumulated metric name."""
2440
- self.bitcoin: MetricPattern4[Bitcoin] = MetricPattern4(client, _m(acc, 'btc'))
2441
- self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'usd'))
2442
- self.sats: MetricPattern4[Sats] = MetricPattern4(client, acc)
2644
+ self.bitcoin: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern(client, _m(acc, 'btc'))
2645
+ self.dollars: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Dollars] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, _m(acc, 'usd'))
2646
+ self.sats: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Sats] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, acc)
2443
2647
 
2444
- class CoinbasePattern:
2648
+ class BitcoinDollarsSatsPattern4:
2445
2649
  """Pattern struct for repeated tree structure."""
2446
2650
 
2447
2651
  def __init__(self, client: BrkClientBase, acc: str):
2448
2652
  """Create pattern node with accumulated metric name."""
2449
- self.bitcoin: BitcoinPattern = BitcoinPattern(client, _m(acc, 'btc'))
2450
- self.dollars: DollarsPattern[Dollars] = DollarsPattern(client, _m(acc, 'usd'))
2451
- self.sats: DollarsPattern[Sats] = DollarsPattern(client, acc)
2653
+ self.bitcoin: MetricPattern1[Bitcoin] = MetricPattern1(client, _m(acc, 'btc'))
2654
+ self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'usd'))
2655
+ self.sats: MetricPattern1[Sats] = MetricPattern1(client, acc)
2452
2656
 
2453
- class UnclaimedRewardsPattern:
2657
+ class BitcoinDollarsSatsPattern5:
2454
2658
  """Pattern struct for repeated tree structure."""
2455
2659
 
2456
2660
  def __init__(self, client: BrkClientBase, acc: str):
2457
2661
  """Create pattern node with accumulated metric name."""
2458
- self.bitcoin: BitcoinPattern2[Bitcoin] = BitcoinPattern2(client, _m(acc, 'btc'))
2459
- self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2460
- self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
2662
+ self.bitcoin: MetricPattern4[Bitcoin] = MetricPattern4(client, _m(acc, 'btc'))
2663
+ self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'usd'))
2664
+ self.sats: MetricPattern4[Sats] = MetricPattern4(client, acc)
2461
2665
 
2462
- class CoinbasePattern2:
2666
+ class BitcoinDollarsSatsPattern6:
2463
2667
  """Pattern struct for repeated tree structure."""
2464
2668
 
2465
2669
  def __init__(self, client: BrkClientBase, acc: str):
2466
2670
  """Create pattern node with accumulated metric name."""
2467
- self.bitcoin: BlockCountPattern[Bitcoin] = BlockCountPattern(client, _m(acc, 'btc'))
2468
- self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2469
- self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
2671
+ self.bitcoin: CumulativeSumPattern[Bitcoin] = CumulativeSumPattern(client, _m(acc, 'btc'))
2672
+ self.dollars: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'usd'))
2673
+ self.sats: CumulativeSumPattern[Sats] = CumulativeSumPattern(client, acc)
2470
2674
 
2471
- class CostBasisPattern2:
2675
+ class BitcoinDollarsSatsPattern3:
2472
2676
  """Pattern struct for repeated tree structure."""
2473
2677
 
2474
2678
  def __init__(self, client: BrkClientBase, acc: str):
2475
2679
  """Create pattern node with accumulated metric name."""
2476
- self.max: ActivePricePattern = ActivePricePattern(client, _m(acc, 'max_cost_basis'))
2477
- self.min: ActivePricePattern = ActivePricePattern(client, _m(acc, 'min_cost_basis'))
2478
- self.percentiles: PercentilesPattern = PercentilesPattern(client, _m(acc, 'cost_basis'))
2680
+ self.bitcoin: CumulativeSumPattern2[Bitcoin] = CumulativeSumPattern2(client, _m(acc, 'btc'))
2681
+ self.dollars: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'usd'))
2682
+ self.sats: CumulativeSumPattern[Sats] = CumulativeSumPattern(client, acc)
2479
2683
 
2480
- class ActivePricePattern:
2684
+ class DollarsSatsPattern:
2481
2685
  """Pattern struct for repeated tree structure."""
2482
2686
 
2483
2687
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2485,7 +2689,7 @@ class ActivePricePattern:
2485
2689
  self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, acc)
2486
2690
  self.sats: MetricPattern1[SatsFract] = MetricPattern1(client, _m(acc, 'sats'))
2487
2691
 
2488
- class _0sdUsdPattern:
2692
+ class DollarsSatsPattern2:
2489
2693
  """Pattern struct for repeated tree structure."""
2490
2694
 
2491
2695
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2493,23 +2697,15 @@ class _0sdUsdPattern:
2493
2697
  self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, acc)
2494
2698
  self.sats: MetricPattern4[SatsFract] = MetricPattern4(client, _m(acc, 'sats'))
2495
2699
 
2496
- class SupplyPattern2:
2700
+ class MaxMinPattern:
2497
2701
  """Pattern struct for repeated tree structure."""
2498
2702
 
2499
2703
  def __init__(self, client: BrkClientBase, acc: str):
2500
2704
  """Create pattern node with accumulated metric name."""
2501
- self.halved: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'halved'))
2502
- self.total: ActiveSupplyPattern = ActiveSupplyPattern(client, acc)
2705
+ self.max: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'max_cost_basis'))
2706
+ self.min: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'min_cost_basis'))
2503
2707
 
2504
- class CostBasisPattern:
2505
- """Pattern struct for repeated tree structure."""
2506
-
2507
- def __init__(self, client: BrkClientBase, acc: str):
2508
- """Create pattern node with accumulated metric name."""
2509
- self.max: ActivePricePattern = ActivePricePattern(client, _m(acc, 'max_cost_basis'))
2510
- self.min: ActivePricePattern = ActivePricePattern(client, _m(acc, 'min_cost_basis'))
2511
-
2512
- class _1dReturns1mSdPattern:
2708
+ class SdSmaPattern:
2513
2709
  """Pattern struct for repeated tree structure."""
2514
2710
 
2515
2711
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2517,15 +2713,7 @@ class _1dReturns1mSdPattern:
2517
2713
  self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
2518
2714
  self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
2519
2715
 
2520
- class RelativePattern4:
2521
- """Pattern struct for repeated tree structure."""
2522
-
2523
- def __init__(self, client: BrkClientBase, acc: str):
2524
- """Create pattern node with accumulated metric name."""
2525
- self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'loss_rel_to_own_supply'))
2526
- self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'profit_rel_to_own_supply'))
2527
-
2528
- class BlockCountPattern(Generic[T]):
2716
+ class CumulativeSumPattern(Generic[T]):
2529
2717
  """Pattern struct for repeated tree structure."""
2530
2718
 
2531
2719
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2533,7 +2721,7 @@ class BlockCountPattern(Generic[T]):
2533
2721
  self.cumulative: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'cumulative'))
2534
2722
  self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2535
2723
 
2536
- class BitcoinPattern2(Generic[T]):
2724
+ class CumulativeSumPattern2(Generic[T]):
2537
2725
  """Pattern struct for repeated tree structure."""
2538
2726
 
2539
2727
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2541,22 +2729,22 @@ class BitcoinPattern2(Generic[T]):
2541
2729
  self.cumulative: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'cumulative'))
2542
2730
  self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2543
2731
 
2544
- class SatsPattern(Generic[T]):
2732
+ class OhlcSplitPattern2(Generic[T]):
2545
2733
  """Pattern struct for repeated tree structure."""
2546
2734
 
2547
2735
  def __init__(self, client: BrkClientBase, acc: str):
2548
2736
  """Create pattern node with accumulated metric name."""
2549
2737
  self.ohlc: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'ohlc_sats'))
2550
- self.split: SplitPattern2[T] = SplitPattern2(client, _m(acc, 'sats'))
2738
+ self.split: CloseHighLowOpenPattern2[T] = CloseHighLowOpenPattern2(client, _m(acc, 'sats'))
2551
2739
 
2552
- class RealizedPriceExtraPattern:
2740
+ class RatioPattern2:
2553
2741
  """Pattern struct for repeated tree structure."""
2554
2742
 
2555
2743
  def __init__(self, client: BrkClientBase, acc: str):
2556
2744
  """Create pattern node with accumulated metric name."""
2557
2745
  self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, acc)
2558
2746
 
2559
- class OutputsPattern:
2747
+ class UtxoPattern:
2560
2748
  """Pattern struct for repeated tree structure."""
2561
2749
 
2562
2750
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2565,652 +2753,446 @@ class OutputsPattern:
2565
2753
 
2566
2754
  # Metrics tree classes
2567
2755
 
2568
- class MetricsTree_Addresses:
2756
+ class MetricsTree_Blocks_Difficulty:
2569
2757
  """Metrics tree node."""
2570
2758
 
2571
2759
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2572
- self.first_p2aaddressindex: MetricPattern11[P2AAddressIndex] = MetricPattern11(client, 'first_p2aaddressindex')
2573
- self.first_p2pk33addressindex: MetricPattern11[P2PK33AddressIndex] = MetricPattern11(client, 'first_p2pk33addressindex')
2574
- self.first_p2pk65addressindex: MetricPattern11[P2PK65AddressIndex] = MetricPattern11(client, 'first_p2pk65addressindex')
2575
- self.first_p2pkhaddressindex: MetricPattern11[P2PKHAddressIndex] = MetricPattern11(client, 'first_p2pkhaddressindex')
2576
- self.first_p2shaddressindex: MetricPattern11[P2SHAddressIndex] = MetricPattern11(client, 'first_p2shaddressindex')
2577
- self.first_p2traddressindex: MetricPattern11[P2TRAddressIndex] = MetricPattern11(client, 'first_p2traddressindex')
2578
- self.first_p2wpkhaddressindex: MetricPattern11[P2WPKHAddressIndex] = MetricPattern11(client, 'first_p2wpkhaddressindex')
2579
- self.first_p2wshaddressindex: MetricPattern11[P2WSHAddressIndex] = MetricPattern11(client, 'first_p2wshaddressindex')
2580
- self.p2abytes: MetricPattern16[P2ABytes] = MetricPattern16(client, 'p2abytes')
2581
- self.p2pk33bytes: MetricPattern18[P2PK33Bytes] = MetricPattern18(client, 'p2pk33bytes')
2582
- self.p2pk65bytes: MetricPattern19[P2PK65Bytes] = MetricPattern19(client, 'p2pk65bytes')
2583
- self.p2pkhbytes: MetricPattern20[P2PKHBytes] = MetricPattern20(client, 'p2pkhbytes')
2584
- self.p2shbytes: MetricPattern21[P2SHBytes] = MetricPattern21(client, 'p2shbytes')
2585
- self.p2trbytes: MetricPattern22[P2TRBytes] = MetricPattern22(client, 'p2trbytes')
2586
- self.p2wpkhbytes: MetricPattern23[P2WPKHBytes] = MetricPattern23(client, 'p2wpkhbytes')
2587
- self.p2wshbytes: MetricPattern24[P2WSHBytes] = MetricPattern24(client, 'p2wshbytes')
2588
-
2589
- class MetricsTree_Blocks_Count:
2590
- """Metrics tree node."""
2591
-
2592
- def __init__(self, client: BrkClientBase, base_path: str = ''):
2593
- self._1m_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '1m_block_count')
2594
- self._1m_start: MetricPattern11[Height] = MetricPattern11(client, '1m_start')
2595
- self._1w_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '1w_block_count')
2596
- self._1w_start: MetricPattern11[Height] = MetricPattern11(client, '1w_start')
2597
- self._1y_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '1y_block_count')
2598
- self._1y_start: MetricPattern11[Height] = MetricPattern11(client, '1y_start')
2599
- self._24h_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '24h_block_count')
2600
- self._24h_start: MetricPattern11[Height] = MetricPattern11(client, '24h_start')
2601
- self.block_count: BlockCountPattern[StoredU32] = BlockCountPattern(client, 'block_count')
2602
- self.block_count_target: MetricPattern4[StoredU64] = MetricPattern4(client, 'block_count_target')
2760
+ self.raw: MetricPattern1[StoredF64] = MetricPattern1(client, 'difficulty')
2761
+ self.as_hash: MetricPattern1[StoredF32] = MetricPattern1(client, 'difficulty_as_hash')
2762
+ self.adjustment: MetricPattern1[StoredF32] = MetricPattern1(client, 'difficulty_adjustment')
2763
+ self.epoch: MetricPattern4[DifficultyEpoch] = MetricPattern4(client, 'difficultyepoch')
2764
+ self.blocks_before_next_adjustment: MetricPattern1[StoredU32] = MetricPattern1(client, 'blocks_before_next_difficulty_adjustment')
2765
+ self.days_before_next_adjustment: MetricPattern1[StoredF32] = MetricPattern1(client, 'days_before_next_difficulty_adjustment')
2603
2766
 
2604
- class MetricsTree_Blocks_Difficulty:
2767
+ class MetricsTree_Blocks_Time:
2605
2768
  """Metrics tree node."""
2606
2769
 
2607
2770
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2608
- self.adjustment: MetricPattern1[StoredF32] = MetricPattern1(client, 'difficulty_adjustment')
2609
- self.as_hash: MetricPattern1[StoredF32] = MetricPattern1(client, 'difficulty_as_hash')
2610
- self.blocks_before_next_adjustment: MetricPattern1[StoredU32] = MetricPattern1(client, 'blocks_before_next_difficulty_adjustment')
2611
- self.days_before_next_adjustment: MetricPattern1[StoredF32] = MetricPattern1(client, 'days_before_next_difficulty_adjustment')
2612
- self.epoch: MetricPattern4[DifficultyEpoch] = MetricPattern4(client, 'difficultyepoch')
2613
- self.raw: MetricPattern1[StoredF64] = MetricPattern1(client, 'difficulty')
2771
+ self.timestamp: MetricPattern1[Timestamp] = MetricPattern1(client, 'timestamp')
2772
+ self.date: MetricPattern11[Date] = MetricPattern11(client, 'date')
2773
+ self.timestamp_monotonic: MetricPattern11[Timestamp] = MetricPattern11(client, 'timestamp_monotonic')
2614
2774
 
2615
- class MetricsTree_Blocks_Halving:
2775
+ class MetricsTree_Blocks_Count:
2616
2776
  """Metrics tree node."""
2617
2777
 
2618
2778
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2619
- self.blocks_before_next_halving: MetricPattern1[StoredU32] = MetricPattern1(client, 'blocks_before_next_halving')
2620
- self.days_before_next_halving: MetricPattern1[StoredF32] = MetricPattern1(client, 'days_before_next_halving')
2621
- self.epoch: MetricPattern4[HalvingEpoch] = MetricPattern4(client, 'halvingepoch')
2779
+ self.block_count_target: MetricPattern4[StoredU64] = MetricPattern4(client, 'block_count_target')
2780
+ self.block_count: CumulativeSumPattern[StoredU32] = CumulativeSumPattern(client, 'block_count')
2781
+ self._24h_start: MetricPattern11[Height] = MetricPattern11(client, '24h_start')
2782
+ self._1w_start: MetricPattern11[Height] = MetricPattern11(client, '1w_start')
2783
+ self._1m_start: MetricPattern11[Height] = MetricPattern11(client, '1m_start')
2784
+ self._1y_start: MetricPattern11[Height] = MetricPattern11(client, '1y_start')
2785
+ self._24h_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '24h_block_count')
2786
+ self._1w_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '1w_block_count')
2787
+ self._1m_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '1m_block_count')
2788
+ self._1y_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '1y_block_count')
2622
2789
 
2623
2790
  class MetricsTree_Blocks_Mining:
2624
2791
  """Metrics tree node."""
2625
2792
 
2626
2793
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2627
- self.hash_price_phs: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_phs')
2628
- self.hash_price_phs_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_phs_min')
2629
- self.hash_price_rebound: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_rebound')
2630
- self.hash_price_ths: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_ths')
2631
- self.hash_price_ths_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_ths_min')
2632
2794
  self.hash_rate: MetricPattern1[StoredF64] = MetricPattern1(client, 'hash_rate')
2633
- self.hash_rate_1m_sma: MetricPattern4[StoredF32] = MetricPattern4(client, 'hash_rate_1m_sma')
2634
2795
  self.hash_rate_1w_sma: MetricPattern4[StoredF64] = MetricPattern4(client, 'hash_rate_1w_sma')
2635
- self.hash_rate_1y_sma: MetricPattern4[StoredF32] = MetricPattern4(client, 'hash_rate_1y_sma')
2796
+ self.hash_rate_1m_sma: MetricPattern4[StoredF32] = MetricPattern4(client, 'hash_rate_1m_sma')
2636
2797
  self.hash_rate_2m_sma: MetricPattern4[StoredF32] = MetricPattern4(client, 'hash_rate_2m_sma')
2798
+ self.hash_rate_1y_sma: MetricPattern4[StoredF32] = MetricPattern4(client, 'hash_rate_1y_sma')
2799
+ self.hash_price_ths: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_ths')
2800
+ self.hash_price_ths_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_ths_min')
2801
+ self.hash_price_phs: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_phs')
2802
+ self.hash_price_phs_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_phs_min')
2803
+ self.hash_price_rebound: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_rebound')
2804
+ self.hash_value_ths: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_ths')
2805
+ self.hash_value_ths_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_ths_min')
2637
2806
  self.hash_value_phs: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_phs')
2638
2807
  self.hash_value_phs_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_phs_min')
2639
2808
  self.hash_value_rebound: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_rebound')
2640
- self.hash_value_ths: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_ths')
2641
- self.hash_value_ths_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_ths_min')
2642
2809
 
2643
2810
  class MetricsTree_Blocks_Rewards_24hCoinbaseSum:
2644
2811
  """Metrics tree node."""
2645
2812
 
2646
2813
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2814
+ self.sats: MetricPattern11[Sats] = MetricPattern11(client, '24h_coinbase_sum')
2647
2815
  self.bitcoin: MetricPattern11[Bitcoin] = MetricPattern11(client, '24h_coinbase_sum_btc')
2648
2816
  self.dollars: MetricPattern11[Dollars] = MetricPattern11(client, '24h_coinbase_sum_usd')
2649
- self.sats: MetricPattern11[Sats] = MetricPattern11(client, '24h_coinbase_sum')
2650
2817
 
2651
2818
  class MetricsTree_Blocks_Rewards:
2652
2819
  """Metrics tree node."""
2653
2820
 
2654
2821
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2655
2822
  self._24h_coinbase_sum: MetricsTree_Blocks_Rewards_24hCoinbaseSum = MetricsTree_Blocks_Rewards_24hCoinbaseSum(client)
2656
- self.coinbase: CoinbasePattern = CoinbasePattern(client, 'coinbase')
2823
+ self.coinbase: BitcoinDollarsSatsPattern2 = BitcoinDollarsSatsPattern2(client, 'coinbase')
2824
+ self.subsidy: BitcoinDollarsSatsPattern2 = BitcoinDollarsSatsPattern2(client, 'subsidy')
2825
+ self.unclaimed_rewards: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, 'unclaimed_rewards')
2657
2826
  self.fee_dominance: MetricPattern6[StoredF32] = MetricPattern6(client, 'fee_dominance')
2658
- self.subsidy: CoinbasePattern = CoinbasePattern(client, 'subsidy')
2659
2827
  self.subsidy_dominance: MetricPattern6[StoredF32] = MetricPattern6(client, 'subsidy_dominance')
2660
2828
  self.subsidy_usd_1y_sma: MetricPattern4[Dollars] = MetricPattern4(client, 'subsidy_usd_1y_sma')
2661
- self.unclaimed_rewards: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, 'unclaimed_rewards')
2829
+
2830
+ class MetricsTree_Blocks_Halving:
2831
+ """Metrics tree node."""
2832
+
2833
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
2834
+ self.epoch: MetricPattern4[HalvingEpoch] = MetricPattern4(client, 'halvingepoch')
2835
+ self.blocks_before_next_halving: MetricPattern1[StoredU32] = MetricPattern1(client, 'blocks_before_next_halving')
2836
+ self.days_before_next_halving: MetricPattern1[StoredF32] = MetricPattern1(client, 'days_before_next_halving')
2662
2837
 
2663
2838
  class MetricsTree_Blocks_Size:
2664
2839
  """Metrics tree node."""
2665
2840
 
2666
2841
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2667
- self.average: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_average')
2668
2842
  self.cumulative: MetricPattern1[StoredU64] = MetricPattern1(client, 'block_size_cumulative')
2669
- self.max: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_max')
2670
- self.median: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_median')
2843
+ self.average: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_average')
2671
2844
  self.min: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_min')
2845
+ self.max: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_max')
2672
2846
  self.pct10: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_pct10')
2673
2847
  self.pct25: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_pct25')
2848
+ self.median: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_median')
2674
2849
  self.pct75: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_pct75')
2675
2850
  self.pct90: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_pct90')
2676
2851
  self.sum: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_sum')
2677
2852
 
2678
- class MetricsTree_Blocks_Time:
2679
- """Metrics tree node."""
2680
-
2681
- def __init__(self, client: BrkClientBase, base_path: str = ''):
2682
- self.date: MetricPattern11[Date] = MetricPattern11(client, 'date')
2683
- self.timestamp: MetricPattern1[Timestamp] = MetricPattern1(client, 'timestamp')
2684
- self.timestamp_monotonic: MetricPattern11[Timestamp] = MetricPattern11(client, 'timestamp_monotonic')
2685
-
2686
2853
  class MetricsTree_Blocks:
2687
2854
  """Metrics tree node."""
2688
2855
 
2689
2856
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2690
2857
  self.blockhash: MetricPattern11[BlockHash] = MetricPattern11(client, 'blockhash')
2691
- self.count: MetricsTree_Blocks_Count = MetricsTree_Blocks_Count(client)
2692
2858
  self.difficulty: MetricsTree_Blocks_Difficulty = MetricsTree_Blocks_Difficulty(client)
2693
- self.fullness: FullnessPattern[StoredF32] = FullnessPattern(client, 'block_fullness')
2694
- self.halving: MetricsTree_Blocks_Halving = MetricsTree_Blocks_Halving(client)
2695
- self.interval: FullnessPattern[Timestamp] = FullnessPattern(client, 'block_interval')
2859
+ self.time: MetricsTree_Blocks_Time = MetricsTree_Blocks_Time(client)
2860
+ self.total_size: MetricPattern11[StoredU64] = MetricPattern11(client, 'total_size')
2861
+ self.weight: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Weight] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'block_weight')
2862
+ self.count: MetricsTree_Blocks_Count = MetricsTree_Blocks_Count(client)
2863
+ self.interval: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[Timestamp] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'block_interval')
2696
2864
  self.mining: MetricsTree_Blocks_Mining = MetricsTree_Blocks_Mining(client)
2697
2865
  self.rewards: MetricsTree_Blocks_Rewards = MetricsTree_Blocks_Rewards(client)
2866
+ self.halving: MetricsTree_Blocks_Halving = MetricsTree_Blocks_Halving(client)
2867
+ self.vbytes: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'block_vbytes')
2698
2868
  self.size: MetricsTree_Blocks_Size = MetricsTree_Blocks_Size(client)
2699
- self.time: MetricsTree_Blocks_Time = MetricsTree_Blocks_Time(client)
2700
- self.total_size: MetricPattern11[StoredU64] = MetricPattern11(client, 'total_size')
2701
- self.vbytes: DollarsPattern[StoredU64] = DollarsPattern(client, 'block_vbytes')
2702
- self.weight: DollarsPattern[Weight] = DollarsPattern(client, 'block_weight')
2703
-
2704
- class MetricsTree_Cointime_Activity:
2705
- """Metrics tree node."""
2706
-
2707
- def __init__(self, client: BrkClientBase, base_path: str = ''):
2708
- self.activity_to_vaultedness_ratio: MetricPattern1[StoredF64] = MetricPattern1(client, 'activity_to_vaultedness_ratio')
2709
- self.coinblocks_created: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'coinblocks_created')
2710
- self.coinblocks_stored: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'coinblocks_stored')
2711
- self.liveliness: MetricPattern1[StoredF64] = MetricPattern1(client, 'liveliness')
2712
- self.vaultedness: MetricPattern1[StoredF64] = MetricPattern1(client, 'vaultedness')
2713
-
2714
- class MetricsTree_Cointime_Adjusted:
2715
- """Metrics tree node."""
2716
-
2717
- def __init__(self, client: BrkClientBase, base_path: str = ''):
2718
- self.cointime_adj_inflation_rate: MetricPattern4[StoredF32] = MetricPattern4(client, 'cointime_adj_inflation_rate')
2719
- self.cointime_adj_tx_btc_velocity: MetricPattern4[StoredF64] = MetricPattern4(client, 'cointime_adj_tx_btc_velocity')
2720
- self.cointime_adj_tx_usd_velocity: MetricPattern4[StoredF64] = MetricPattern4(client, 'cointime_adj_tx_usd_velocity')
2721
-
2722
- class MetricsTree_Cointime_Cap:
2723
- """Metrics tree node."""
2724
-
2725
- def __init__(self, client: BrkClientBase, base_path: str = ''):
2726
- self.active_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'active_cap')
2727
- self.cointime_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'cointime_cap')
2728
- self.investor_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'investor_cap')
2729
- self.thermo_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'thermo_cap')
2730
- self.vaulted_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'vaulted_cap')
2869
+ self.fullness: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'block_fullness')
2731
2870
 
2732
- class MetricsTree_Cointime_Pricing:
2871
+ class MetricsTree_Transactions_Count:
2733
2872
  """Metrics tree node."""
2734
2873
 
2735
2874
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2736
- self.active_price: ActivePricePattern = ActivePricePattern(client, 'active_price')
2737
- self.active_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(client, 'active_price_ratio')
2738
- self.cointime_price: ActivePricePattern = ActivePricePattern(client, 'cointime_price')
2739
- self.cointime_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(client, 'cointime_price_ratio')
2740
- self.true_market_mean: ActivePricePattern = ActivePricePattern(client, 'true_market_mean')
2741
- self.true_market_mean_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(client, 'true_market_mean_ratio')
2742
- self.vaulted_price: ActivePricePattern = ActivePricePattern(client, 'vaulted_price')
2743
- self.vaulted_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(client, 'vaulted_price_ratio')
2875
+ self.tx_count: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'tx_count')
2876
+ self.is_coinbase: MetricPattern27[StoredBool] = MetricPattern27(client, 'is_coinbase')
2744
2877
 
2745
- class MetricsTree_Cointime_ReserveRisk:
2878
+ class MetricsTree_Transactions_Size:
2746
2879
  """Metrics tree node."""
2747
2880
 
2748
2881
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2749
- self.hodl_bank: MetricPattern6[StoredF64] = MetricPattern6(client, 'hodl_bank')
2750
- self.reserve_risk: MetricPattern4[StoredF64] = MetricPattern4(client, 'reserve_risk')
2751
- self.vocdd_365d_sma: MetricPattern6[StoredF64] = MetricPattern6(client, 'vocdd_365d_sma')
2882
+ self.vsize: AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern[VSize] = AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern(client, 'tx_vsize')
2883
+ self.weight: AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern[Weight] = AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern(client, 'tx_weight')
2752
2884
 
2753
- class MetricsTree_Cointime_Supply:
2885
+ class MetricsTree_Transactions_Fees_Fee:
2754
2886
  """Metrics tree node."""
2755
2887
 
2756
2888
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2757
- self.active_supply: ActiveSupplyPattern = ActiveSupplyPattern(client, 'active_supply')
2758
- self.vaulted_supply: ActiveSupplyPattern = ActiveSupplyPattern(client, 'vaulted_supply')
2889
+ self.txindex: MetricPattern27[Sats] = MetricPattern27(client, 'fee')
2890
+ self.sats: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Sats] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'fee')
2891
+ self.bitcoin: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Bitcoin] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'fee_btc')
2892
+ self.dollars: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Dollars] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'fee_usd')
2759
2893
 
2760
- class MetricsTree_Cointime_Value:
2894
+ class MetricsTree_Transactions_Fees:
2761
2895
  """Metrics tree node."""
2762
2896
 
2763
2897
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2764
- self.cointime_value_created: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'cointime_value_created')
2765
- self.cointime_value_destroyed: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'cointime_value_destroyed')
2766
- self.cointime_value_stored: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'cointime_value_stored')
2767
- self.vocdd: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'vocdd')
2898
+ self.input_value: MetricPattern27[Sats] = MetricPattern27(client, 'input_value')
2899
+ self.output_value: MetricPattern27[Sats] = MetricPattern27(client, 'output_value')
2900
+ self.fee: MetricsTree_Transactions_Fees_Fee = MetricsTree_Transactions_Fees_Fee(client)
2901
+ self.fee_rate: AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern[FeeRate] = AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern(client, 'fee_rate')
2768
2902
 
2769
- class MetricsTree_Cointime:
2903
+ class MetricsTree_Transactions_Versions:
2770
2904
  """Metrics tree node."""
2771
2905
 
2772
2906
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2773
- self.activity: MetricsTree_Cointime_Activity = MetricsTree_Cointime_Activity(client)
2774
- self.adjusted: MetricsTree_Cointime_Adjusted = MetricsTree_Cointime_Adjusted(client)
2775
- self.cap: MetricsTree_Cointime_Cap = MetricsTree_Cointime_Cap(client)
2776
- self.pricing: MetricsTree_Cointime_Pricing = MetricsTree_Cointime_Pricing(client)
2777
- self.reserve_risk: MetricsTree_Cointime_ReserveRisk = MetricsTree_Cointime_ReserveRisk(client)
2778
- self.supply: MetricsTree_Cointime_Supply = MetricsTree_Cointime_Supply(client)
2779
- self.value: MetricsTree_Cointime_Value = MetricsTree_Cointime_Value(client)
2907
+ self.v1: CumulativeSumPattern[StoredU64] = CumulativeSumPattern(client, 'tx_v1')
2908
+ self.v2: CumulativeSumPattern[StoredU64] = CumulativeSumPattern(client, 'tx_v2')
2909
+ self.v3: CumulativeSumPattern[StoredU64] = CumulativeSumPattern(client, 'tx_v3')
2780
2910
 
2781
- class MetricsTree_Constants:
2911
+ class MetricsTree_Transactions_Volume:
2782
2912
  """Metrics tree node."""
2783
2913
 
2784
2914
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2785
- self.constant_0: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_0')
2786
- self.constant_1: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_1')
2787
- self.constant_100: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_100')
2788
- self.constant_2: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_2')
2789
- self.constant_20: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_20')
2790
- self.constant_3: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_3')
2791
- self.constant_30: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_30')
2792
- self.constant_38_2: MetricPattern1[StoredF32] = MetricPattern1(client, 'constant_38_2')
2793
- self.constant_4: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_4')
2794
- self.constant_50: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_50')
2795
- self.constant_600: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_600')
2796
- self.constant_61_8: MetricPattern1[StoredF32] = MetricPattern1(client, 'constant_61_8')
2797
- self.constant_70: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_70')
2798
- self.constant_80: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_80')
2799
- self.constant_minus_1: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_1')
2800
- self.constant_minus_2: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_2')
2801
- self.constant_minus_3: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_3')
2802
- self.constant_minus_4: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_4')
2915
+ self.sent_sum: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, 'sent_sum')
2916
+ self.received_sum: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, 'received_sum')
2917
+ self.annualized_volume: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'annualized_volume')
2918
+ self.tx_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'tx_per_sec')
2919
+ self.outputs_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'outputs_per_sec')
2920
+ self.inputs_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'inputs_per_sec')
2803
2921
 
2804
- class MetricsTree_Distribution_AddressActivity:
2922
+ class MetricsTree_Transactions:
2805
2923
  """Metrics tree node."""
2806
2924
 
2807
2925
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2808
- self.all: AllPattern = AllPattern(client, 'address_activity')
2809
- self.p2a: AllPattern = AllPattern(client, 'p2a_address_activity')
2810
- self.p2pk33: AllPattern = AllPattern(client, 'p2pk33_address_activity')
2811
- self.p2pk65: AllPattern = AllPattern(client, 'p2pk65_address_activity')
2812
- self.p2pkh: AllPattern = AllPattern(client, 'p2pkh_address_activity')
2813
- self.p2sh: AllPattern = AllPattern(client, 'p2sh_address_activity')
2814
- self.p2tr: AllPattern = AllPattern(client, 'p2tr_address_activity')
2815
- self.p2wpkh: AllPattern = AllPattern(client, 'p2wpkh_address_activity')
2816
- self.p2wsh: AllPattern = AllPattern(client, 'p2wsh_address_activity')
2926
+ self.first_txindex: MetricPattern11[TxIndex] = MetricPattern11(client, 'first_txindex')
2927
+ self.height: MetricPattern27[Height] = MetricPattern27(client, 'height')
2928
+ self.txid: MetricPattern27[Txid] = MetricPattern27(client, 'txid')
2929
+ self.txversion: MetricPattern27[TxVersion] = MetricPattern27(client, 'txversion')
2930
+ self.rawlocktime: MetricPattern27[RawLockTime] = MetricPattern27(client, 'rawlocktime')
2931
+ self.base_size: MetricPattern27[StoredU32] = MetricPattern27(client, 'base_size')
2932
+ self.total_size: MetricPattern27[StoredU32] = MetricPattern27(client, 'total_size')
2933
+ self.is_explicitly_rbf: MetricPattern27[StoredBool] = MetricPattern27(client, 'is_explicitly_rbf')
2934
+ self.first_txinindex: MetricPattern27[TxInIndex] = MetricPattern27(client, 'first_txinindex')
2935
+ self.first_txoutindex: MetricPattern27[TxOutIndex] = MetricPattern27(client, 'first_txoutindex')
2936
+ self.count: MetricsTree_Transactions_Count = MetricsTree_Transactions_Count(client)
2937
+ self.size: MetricsTree_Transactions_Size = MetricsTree_Transactions_Size(client)
2938
+ self.fees: MetricsTree_Transactions_Fees = MetricsTree_Transactions_Fees(client)
2939
+ self.versions: MetricsTree_Transactions_Versions = MetricsTree_Transactions_Versions(client)
2940
+ self.volume: MetricsTree_Transactions_Volume = MetricsTree_Transactions_Volume(client)
2817
2941
 
2818
- class MetricsTree_Distribution_AddressCohorts_AmountRange:
2942
+ class MetricsTree_Inputs_Spent:
2819
2943
  """Metrics tree node."""
2820
2944
 
2821
2945
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2822
- self._0sats: _0satsPattern = _0satsPattern(client, 'addrs_with_0sats')
2823
- self._100btc_to_1k_btc: _0satsPattern = _0satsPattern(client, 'addrs_above_100btc_under_1k_btc')
2824
- self._100k_btc_or_more: _0satsPattern = _0satsPattern(client, 'addrs_above_100k_btc')
2825
- self._100k_sats_to_1m_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_100k_sats_under_1m_sats')
2826
- self._100sats_to_1k_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_100sats_under_1k_sats')
2827
- self._10btc_to_100btc: _0satsPattern = _0satsPattern(client, 'addrs_above_10btc_under_100btc')
2828
- self._10k_btc_to_100k_btc: _0satsPattern = _0satsPattern(client, 'addrs_above_10k_btc_under_100k_btc')
2829
- self._10k_sats_to_100k_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_10k_sats_under_100k_sats')
2830
- self._10m_sats_to_1btc: _0satsPattern = _0satsPattern(client, 'addrs_above_10m_sats_under_1btc')
2831
- self._10sats_to_100sats: _0satsPattern = _0satsPattern(client, 'addrs_above_10sats_under_100sats')
2832
- self._1btc_to_10btc: _0satsPattern = _0satsPattern(client, 'addrs_above_1btc_under_10btc')
2833
- self._1k_btc_to_10k_btc: _0satsPattern = _0satsPattern(client, 'addrs_above_1k_btc_under_10k_btc')
2834
- self._1k_sats_to_10k_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_1k_sats_under_10k_sats')
2835
- self._1m_sats_to_10m_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_1m_sats_under_10m_sats')
2836
- self._1sat_to_10sats: _0satsPattern = _0satsPattern(client, 'addrs_above_1sat_under_10sats')
2946
+ self.txoutindex: MetricPattern12[TxOutIndex] = MetricPattern12(client, 'txoutindex')
2947
+ self.value: MetricPattern12[Sats] = MetricPattern12(client, 'value')
2837
2948
 
2838
- class MetricsTree_Distribution_AddressCohorts_GeAmount:
2949
+ class MetricsTree_Inputs:
2839
2950
  """Metrics tree node."""
2840
2951
 
2841
2952
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2842
- self._100btc: _0satsPattern = _0satsPattern(client, 'addrs_over_100btc')
2843
- self._100k_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_100k_sats')
2844
- self._100sats: _0satsPattern = _0satsPattern(client, 'addrs_over_100sats')
2845
- self._10btc: _0satsPattern = _0satsPattern(client, 'addrs_over_10btc')
2846
- self._10k_btc: _0satsPattern = _0satsPattern(client, 'addrs_over_10k_btc')
2847
- self._10k_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_10k_sats')
2848
- self._10m_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_10m_sats')
2849
- self._10sats: _0satsPattern = _0satsPattern(client, 'addrs_over_10sats')
2850
- self._1btc: _0satsPattern = _0satsPattern(client, 'addrs_over_1btc')
2851
- self._1k_btc: _0satsPattern = _0satsPattern(client, 'addrs_over_1k_btc')
2852
- self._1k_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_1k_sats')
2853
- self._1m_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_1m_sats')
2854
- self._1sat: _0satsPattern = _0satsPattern(client, 'addrs_over_1sat')
2953
+ self.first_txinindex: MetricPattern11[TxInIndex] = MetricPattern11(client, 'first_txinindex')
2954
+ self.outpoint: MetricPattern12[OutPoint] = MetricPattern12(client, 'outpoint')
2955
+ self.txindex: MetricPattern12[TxIndex] = MetricPattern12(client, 'txindex')
2956
+ self.outputtype: MetricPattern12[OutputType] = MetricPattern12(client, 'outputtype')
2957
+ self.typeindex: MetricPattern12[TypeIndex] = MetricPattern12(client, 'typeindex')
2958
+ self.spent: MetricsTree_Inputs_Spent = MetricsTree_Inputs_Spent(client)
2959
+ self.count: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'input_count')
2855
2960
 
2856
- class MetricsTree_Distribution_AddressCohorts_LtAmount:
2961
+ class MetricsTree_Outputs_Spent:
2857
2962
  """Metrics tree node."""
2858
2963
 
2859
2964
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2860
- self._100btc: _0satsPattern = _0satsPattern(client, 'addrs_under_100btc')
2861
- self._100k_btc: _0satsPattern = _0satsPattern(client, 'addrs_under_100k_btc')
2862
- self._100k_sats: _0satsPattern = _0satsPattern(client, 'addrs_under_100k_sats')
2863
- self._100sats: _0satsPattern = _0satsPattern(client, 'addrs_under_100sats')
2864
- self._10btc: _0satsPattern = _0satsPattern(client, 'addrs_under_10btc')
2865
- self._10k_btc: _0satsPattern = _0satsPattern(client, 'addrs_under_10k_btc')
2866
- self._10k_sats: _0satsPattern = _0satsPattern(client, 'addrs_under_10k_sats')
2867
- self._10m_sats: _0satsPattern = _0satsPattern(client, 'addrs_under_10m_sats')
2868
- self._10sats: _0satsPattern = _0satsPattern(client, 'addrs_under_10sats')
2869
- self._1btc: _0satsPattern = _0satsPattern(client, 'addrs_under_1btc')
2870
- self._1k_btc: _0satsPattern = _0satsPattern(client, 'addrs_under_1k_btc')
2871
- self._1k_sats: _0satsPattern = _0satsPattern(client, 'addrs_under_1k_sats')
2872
- self._1m_sats: _0satsPattern = _0satsPattern(client, 'addrs_under_1m_sats')
2965
+ self.txinindex: MetricPattern15[TxInIndex] = MetricPattern15(client, 'txinindex')
2873
2966
 
2874
- class MetricsTree_Distribution_AddressCohorts:
2967
+ class MetricsTree_Outputs_Count:
2875
2968
  """Metrics tree node."""
2876
2969
 
2877
2970
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2878
- self.amount_range: MetricsTree_Distribution_AddressCohorts_AmountRange = MetricsTree_Distribution_AddressCohorts_AmountRange(client)
2879
- self.ge_amount: MetricsTree_Distribution_AddressCohorts_GeAmount = MetricsTree_Distribution_AddressCohorts_GeAmount(client)
2880
- self.lt_amount: MetricsTree_Distribution_AddressCohorts_LtAmount = MetricsTree_Distribution_AddressCohorts_LtAmount(client)
2971
+ self.total_count: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'output_count')
2972
+ self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, 'exact_utxo_count')
2881
2973
 
2882
- class MetricsTree_Distribution_AddressesData:
2974
+ class MetricsTree_Outputs:
2883
2975
  """Metrics tree node."""
2884
2976
 
2885
2977
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2886
- self.empty: MetricPattern32[EmptyAddressData] = MetricPattern32(client, 'emptyaddressdata')
2887
- self.loaded: MetricPattern31[LoadedAddressData] = MetricPattern31(client, 'loadedaddressdata')
2978
+ self.first_txoutindex: MetricPattern11[TxOutIndex] = MetricPattern11(client, 'first_txoutindex')
2979
+ self.value: MetricPattern15[Sats] = MetricPattern15(client, 'value')
2980
+ self.outputtype: MetricPattern15[OutputType] = MetricPattern15(client, 'outputtype')
2981
+ self.typeindex: MetricPattern15[TypeIndex] = MetricPattern15(client, 'typeindex')
2982
+ self.txindex: MetricPattern15[TxIndex] = MetricPattern15(client, 'txindex')
2983
+ self.spent: MetricsTree_Outputs_Spent = MetricsTree_Outputs_Spent(client)
2984
+ self.count: MetricsTree_Outputs_Count = MetricsTree_Outputs_Count(client)
2888
2985
 
2889
- class MetricsTree_Distribution_AnyAddressIndexes:
2986
+ class MetricsTree_Addresses:
2890
2987
  """Metrics tree node."""
2891
2988
 
2892
2989
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2893
- self.p2a: MetricPattern16[AnyAddressIndex] = MetricPattern16(client, 'anyaddressindex')
2894
- self.p2pk33: MetricPattern18[AnyAddressIndex] = MetricPattern18(client, 'anyaddressindex')
2895
- self.p2pk65: MetricPattern19[AnyAddressIndex] = MetricPattern19(client, 'anyaddressindex')
2896
- self.p2pkh: MetricPattern20[AnyAddressIndex] = MetricPattern20(client, 'anyaddressindex')
2897
- self.p2sh: MetricPattern21[AnyAddressIndex] = MetricPattern21(client, 'anyaddressindex')
2898
- self.p2tr: MetricPattern22[AnyAddressIndex] = MetricPattern22(client, 'anyaddressindex')
2899
- self.p2wpkh: MetricPattern23[AnyAddressIndex] = MetricPattern23(client, 'anyaddressindex')
2900
- self.p2wsh: MetricPattern24[AnyAddressIndex] = MetricPattern24(client, 'anyaddressindex')
2990
+ self.first_p2pk65addressindex: MetricPattern11[P2PK65AddressIndex] = MetricPattern11(client, 'first_p2pk65addressindex')
2991
+ self.first_p2pk33addressindex: MetricPattern11[P2PK33AddressIndex] = MetricPattern11(client, 'first_p2pk33addressindex')
2992
+ self.first_p2pkhaddressindex: MetricPattern11[P2PKHAddressIndex] = MetricPattern11(client, 'first_p2pkhaddressindex')
2993
+ self.first_p2shaddressindex: MetricPattern11[P2SHAddressIndex] = MetricPattern11(client, 'first_p2shaddressindex')
2994
+ self.first_p2wpkhaddressindex: MetricPattern11[P2WPKHAddressIndex] = MetricPattern11(client, 'first_p2wpkhaddressindex')
2995
+ self.first_p2wshaddressindex: MetricPattern11[P2WSHAddressIndex] = MetricPattern11(client, 'first_p2wshaddressindex')
2996
+ self.first_p2traddressindex: MetricPattern11[P2TRAddressIndex] = MetricPattern11(client, 'first_p2traddressindex')
2997
+ self.first_p2aaddressindex: MetricPattern11[P2AAddressIndex] = MetricPattern11(client, 'first_p2aaddressindex')
2998
+ self.p2pk65bytes: MetricPattern19[P2PK65Bytes] = MetricPattern19(client, 'p2pk65bytes')
2999
+ self.p2pk33bytes: MetricPattern18[P2PK33Bytes] = MetricPattern18(client, 'p2pk33bytes')
3000
+ self.p2pkhbytes: MetricPattern20[P2PKHBytes] = MetricPattern20(client, 'p2pkhbytes')
3001
+ self.p2shbytes: MetricPattern21[P2SHBytes] = MetricPattern21(client, 'p2shbytes')
3002
+ self.p2wpkhbytes: MetricPattern23[P2WPKHBytes] = MetricPattern23(client, 'p2wpkhbytes')
3003
+ self.p2wshbytes: MetricPattern24[P2WSHBytes] = MetricPattern24(client, 'p2wshbytes')
3004
+ self.p2trbytes: MetricPattern22[P2TRBytes] = MetricPattern22(client, 'p2trbytes')
3005
+ self.p2abytes: MetricPattern16[P2ABytes] = MetricPattern16(client, 'p2abytes')
2901
3006
 
2902
- class MetricsTree_Distribution_GrowthRate:
3007
+ class MetricsTree_Scripts_Count:
2903
3008
  """Metrics tree node."""
2904
3009
 
2905
3010
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2906
- self.all: FullnessPattern[StoredF32] = FullnessPattern(client, 'growth_rate')
2907
- self.p2a: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2a_growth_rate')
2908
- self.p2pk33: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2pk33_growth_rate')
2909
- self.p2pk65: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2pk65_growth_rate')
2910
- self.p2pkh: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2pkh_growth_rate')
2911
- self.p2sh: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2sh_growth_rate')
2912
- self.p2tr: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2tr_growth_rate')
2913
- self.p2wpkh: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2wpkh_growth_rate')
2914
- self.p2wsh: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2wsh_growth_rate')
3011
+ self.p2a: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2a_count')
3012
+ self.p2ms: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2ms_count')
3013
+ self.p2pk33: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pk33_count')
3014
+ self.p2pk65: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pk65_count')
3015
+ self.p2pkh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pkh_count')
3016
+ self.p2sh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2sh_count')
3017
+ self.p2tr: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2tr_count')
3018
+ self.p2wpkh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2wpkh_count')
3019
+ self.p2wsh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2wsh_count')
3020
+ self.opreturn: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'opreturn_count')
3021
+ self.emptyoutput: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'emptyoutput_count')
3022
+ self.unknownoutput: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'unknownoutput_count')
3023
+ self.segwit: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'segwit_count')
3024
+ self.taproot_adoption: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'taproot_adoption')
3025
+ self.segwit_adoption: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'segwit_adoption')
2915
3026
 
2916
- class MetricsTree_Distribution_NewAddrCount:
3027
+ class MetricsTree_Scripts_Value:
2917
3028
  """Metrics tree node."""
2918
3029
 
2919
3030
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2920
- self.all: DollarsPattern[StoredU64] = DollarsPattern(client, 'new_addr_count')
2921
- self.p2a: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2a_new_addr_count')
2922
- self.p2pk33: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2pk33_new_addr_count')
2923
- self.p2pk65: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2pk65_new_addr_count')
2924
- self.p2pkh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2pkh_new_addr_count')
2925
- self.p2sh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2sh_new_addr_count')
2926
- self.p2tr: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2tr_new_addr_count')
2927
- self.p2wpkh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2wpkh_new_addr_count')
2928
- self.p2wsh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2wsh_new_addr_count')
3031
+ self.opreturn: BitcoinDollarsSatsPattern2 = BitcoinDollarsSatsPattern2(client, 'opreturn_value')
2929
3032
 
2930
- class MetricsTree_Distribution_UtxoCohorts_AgeRange:
2931
- """Metrics tree node."""
2932
-
2933
- def __init__(self, client: BrkClientBase, base_path: str = ''):
2934
- self._10y_to_12y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_10y_to_12y_old')
2935
- self._12y_to_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_12y_to_15y_old')
2936
- self._1d_to_1w: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1d_to_1w_old')
2937
- self._1h_to_1d: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1h_to_1d_old')
2938
- self._1m_to_2m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1m_to_2m_old')
2939
- self._1w_to_1m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1w_to_1m_old')
2940
- self._1y_to_2y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1y_to_2y_old')
2941
- self._2m_to_3m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_2m_to_3m_old')
2942
- self._2y_to_3y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_2y_to_3y_old')
2943
- self._3m_to_4m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_3m_to_4m_old')
2944
- self._3y_to_4y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_3y_to_4y_old')
2945
- self._4m_to_5m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_4m_to_5m_old')
2946
- self._4y_to_5y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_4y_to_5y_old')
2947
- self._5m_to_6m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_5m_to_6m_old')
2948
- self._5y_to_6y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_5y_to_6y_old')
2949
- self._6m_to_1y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_6m_to_1y_old')
2950
- self._6y_to_7y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_6y_to_7y_old')
2951
- self._7y_to_8y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_7y_to_8y_old')
2952
- self._8y_to_10y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_8y_to_10y_old')
2953
- self.from_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_over_15y_old')
2954
- self.up_to_1h: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_under_1h_old')
2955
-
2956
- class MetricsTree_Distribution_UtxoCohorts_All_CostBasis:
3033
+ class MetricsTree_Scripts:
2957
3034
  """Metrics tree node."""
2958
3035
 
2959
3036
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2960
- self.max: ActivePricePattern = ActivePricePattern(client, 'max_cost_basis')
2961
- self.min: ActivePricePattern = ActivePricePattern(client, 'min_cost_basis')
2962
- self.percentiles: PercentilesPattern = PercentilesPattern(client, 'cost_basis')
3037
+ self.first_emptyoutputindex: MetricPattern11[EmptyOutputIndex] = MetricPattern11(client, 'first_emptyoutputindex')
3038
+ self.first_opreturnindex: MetricPattern11[OpReturnIndex] = MetricPattern11(client, 'first_opreturnindex')
3039
+ self.first_p2msoutputindex: MetricPattern11[P2MSOutputIndex] = MetricPattern11(client, 'first_p2msoutputindex')
3040
+ self.first_unknownoutputindex: MetricPattern11[UnknownOutputIndex] = MetricPattern11(client, 'first_unknownoutputindex')
3041
+ self.empty_to_txindex: MetricPattern9[TxIndex] = MetricPattern9(client, 'txindex')
3042
+ self.opreturn_to_txindex: MetricPattern14[TxIndex] = MetricPattern14(client, 'txindex')
3043
+ self.p2ms_to_txindex: MetricPattern17[TxIndex] = MetricPattern17(client, 'txindex')
3044
+ self.unknown_to_txindex: MetricPattern28[TxIndex] = MetricPattern28(client, 'txindex')
3045
+ self.count: MetricsTree_Scripts_Count = MetricsTree_Scripts_Count(client)
3046
+ self.value: MetricsTree_Scripts_Value = MetricsTree_Scripts_Value(client)
2963
3047
 
2964
- class MetricsTree_Distribution_UtxoCohorts_All_Relative:
3048
+ class MetricsTree_Positions:
2965
3049
  """Metrics tree node."""
2966
3050
 
2967
3051
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2968
- self.neg_unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'neg_unrealized_loss_rel_to_own_total_unrealized_pnl')
2969
- self.net_unrealized_pnl_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'net_unrealized_pnl_rel_to_own_total_unrealized_pnl')
2970
- self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, 'supply_in_loss_rel_to_own_supply')
2971
- self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, 'supply_in_profit_rel_to_own_supply')
2972
- self.unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_loss_rel_to_own_total_unrealized_pnl')
2973
- self.unrealized_profit_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_profit_rel_to_own_total_unrealized_pnl')
3052
+ self.block_position: MetricPattern11[BlkPosition] = MetricPattern11(client, 'position')
3053
+ self.tx_position: MetricPattern27[BlkPosition] = MetricPattern27(client, 'position')
2974
3054
 
2975
- class MetricsTree_Distribution_UtxoCohorts_All:
3055
+ class MetricsTree_Cointime_Activity:
2976
3056
  """Metrics tree node."""
2977
3057
 
2978
3058
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2979
- self.activity: ActivityPattern2 = ActivityPattern2(client, '')
2980
- self.cost_basis: MetricsTree_Distribution_UtxoCohorts_All_CostBasis = MetricsTree_Distribution_UtxoCohorts_All_CostBasis(client)
2981
- self.outputs: OutputsPattern = OutputsPattern(client, 'utxo_count')
2982
- self.realized: RealizedPattern3 = RealizedPattern3(client, '')
2983
- self.relative: MetricsTree_Distribution_UtxoCohorts_All_Relative = MetricsTree_Distribution_UtxoCohorts_All_Relative(client)
2984
- self.supply: SupplyPattern2 = SupplyPattern2(client, 'supply')
2985
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, '')
3059
+ self.coinblocks_created: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'coinblocks_created')
3060
+ self.coinblocks_stored: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'coinblocks_stored')
3061
+ self.liveliness: MetricPattern1[StoredF64] = MetricPattern1(client, 'liveliness')
3062
+ self.vaultedness: MetricPattern1[StoredF64] = MetricPattern1(client, 'vaultedness')
3063
+ self.activity_to_vaultedness_ratio: MetricPattern1[StoredF64] = MetricPattern1(client, 'activity_to_vaultedness_ratio')
2986
3064
 
2987
- class MetricsTree_Distribution_UtxoCohorts_AmountRange:
3065
+ class MetricsTree_Cointime_Supply:
2988
3066
  """Metrics tree node."""
2989
3067
 
2990
3068
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2991
- self._0sats: _0satsPattern2 = _0satsPattern2(client, 'utxos_with_0sats')
2992
- self._100btc_to_1k_btc: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_100btc_under_1k_btc')
2993
- self._100k_btc_or_more: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_100k_btc')
2994
- self._100k_sats_to_1m_sats: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_100k_sats_under_1m_sats')
2995
- self._100sats_to_1k_sats: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_100sats_under_1k_sats')
2996
- self._10btc_to_100btc: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_10btc_under_100btc')
2997
- self._10k_btc_to_100k_btc: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_10k_btc_under_100k_btc')
2998
- self._10k_sats_to_100k_sats: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_10k_sats_under_100k_sats')
2999
- self._10m_sats_to_1btc: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_10m_sats_under_1btc')
3000
- self._10sats_to_100sats: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_10sats_under_100sats')
3001
- self._1btc_to_10btc: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_1btc_under_10btc')
3002
- self._1k_btc_to_10k_btc: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_1k_btc_under_10k_btc')
3003
- self._1k_sats_to_10k_sats: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_1k_sats_under_10k_sats')
3004
- self._1m_sats_to_10m_sats: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_1m_sats_under_10m_sats')
3005
- self._1sat_to_10sats: _0satsPattern2 = _0satsPattern2(client, 'utxos_above_1sat_under_10sats')
3069
+ self.vaulted_supply: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, 'vaulted_supply')
3070
+ self.active_supply: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, 'active_supply')
3006
3071
 
3007
- class MetricsTree_Distribution_UtxoCohorts_Epoch:
3072
+ class MetricsTree_Cointime_Value:
3008
3073
  """Metrics tree node."""
3009
3074
 
3010
3075
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3011
- self._0: _0satsPattern2 = _0satsPattern2(client, 'epoch_0')
3012
- self._1: _0satsPattern2 = _0satsPattern2(client, 'epoch_1')
3013
- self._2: _0satsPattern2 = _0satsPattern2(client, 'epoch_2')
3014
- self._3: _0satsPattern2 = _0satsPattern2(client, 'epoch_3')
3015
- self._4: _0satsPattern2 = _0satsPattern2(client, 'epoch_4')
3076
+ self.cointime_value_destroyed: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'cointime_value_destroyed')
3077
+ self.cointime_value_created: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'cointime_value_created')
3078
+ self.cointime_value_stored: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'cointime_value_stored')
3079
+ self.vocdd: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'vocdd')
3016
3080
 
3017
- class MetricsTree_Distribution_UtxoCohorts_GeAmount:
3081
+ class MetricsTree_Cointime_Cap:
3018
3082
  """Metrics tree node."""
3019
3083
 
3020
3084
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3021
- self._100btc: _100btcPattern = _100btcPattern(client, 'utxos_over_100btc')
3022
- self._100k_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_100k_sats')
3023
- self._100sats: _100btcPattern = _100btcPattern(client, 'utxos_over_100sats')
3024
- self._10btc: _100btcPattern = _100btcPattern(client, 'utxos_over_10btc')
3025
- self._10k_btc: _100btcPattern = _100btcPattern(client, 'utxos_over_10k_btc')
3026
- self._10k_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_10k_sats')
3027
- self._10m_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_10m_sats')
3028
- self._10sats: _100btcPattern = _100btcPattern(client, 'utxos_over_10sats')
3029
- self._1btc: _100btcPattern = _100btcPattern(client, 'utxos_over_1btc')
3030
- self._1k_btc: _100btcPattern = _100btcPattern(client, 'utxos_over_1k_btc')
3031
- self._1k_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_1k_sats')
3032
- self._1m_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_1m_sats')
3033
- self._1sat: _100btcPattern = _100btcPattern(client, 'utxos_over_1sat')
3085
+ self.thermo_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'thermo_cap')
3086
+ self.investor_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'investor_cap')
3087
+ self.vaulted_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'vaulted_cap')
3088
+ self.active_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'active_cap')
3089
+ self.cointime_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'cointime_cap')
3034
3090
 
3035
- class MetricsTree_Distribution_UtxoCohorts_LtAmount:
3091
+ class MetricsTree_Cointime_Pricing:
3036
3092
  """Metrics tree node."""
3037
3093
 
3038
3094
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3039
- self._100btc: _100btcPattern = _100btcPattern(client, 'utxos_under_100btc')
3040
- self._100k_btc: _100btcPattern = _100btcPattern(client, 'utxos_under_100k_btc')
3041
- self._100k_sats: _100btcPattern = _100btcPattern(client, 'utxos_under_100k_sats')
3042
- self._100sats: _100btcPattern = _100btcPattern(client, 'utxos_under_100sats')
3043
- self._10btc: _100btcPattern = _100btcPattern(client, 'utxos_under_10btc')
3044
- self._10k_btc: _100btcPattern = _100btcPattern(client, 'utxos_under_10k_btc')
3045
- self._10k_sats: _100btcPattern = _100btcPattern(client, 'utxos_under_10k_sats')
3046
- self._10m_sats: _100btcPattern = _100btcPattern(client, 'utxos_under_10m_sats')
3047
- self._10sats: _100btcPattern = _100btcPattern(client, 'utxos_under_10sats')
3048
- self._1btc: _100btcPattern = _100btcPattern(client, 'utxos_under_1btc')
3049
- self._1k_btc: _100btcPattern = _100btcPattern(client, 'utxos_under_1k_btc')
3050
- self._1k_sats: _100btcPattern = _100btcPattern(client, 'utxos_under_1k_sats')
3051
- self._1m_sats: _100btcPattern = _100btcPattern(client, 'utxos_under_1m_sats')
3095
+ self.vaulted_price: DollarsSatsPattern = DollarsSatsPattern(client, 'vaulted_price')
3096
+ self.vaulted_price_ratio: RatioPattern = RatioPattern(client, 'vaulted_price_ratio')
3097
+ self.active_price: DollarsSatsPattern = DollarsSatsPattern(client, 'active_price')
3098
+ self.active_price_ratio: RatioPattern = RatioPattern(client, 'active_price_ratio')
3099
+ self.true_market_mean: DollarsSatsPattern = DollarsSatsPattern(client, 'true_market_mean')
3100
+ self.true_market_mean_ratio: RatioPattern = RatioPattern(client, 'true_market_mean_ratio')
3101
+ self.cointime_price: DollarsSatsPattern = DollarsSatsPattern(client, 'cointime_price')
3102
+ self.cointime_price_ratio: RatioPattern = RatioPattern(client, 'cointime_price_ratio')
3052
3103
 
3053
- class MetricsTree_Distribution_UtxoCohorts_MaxAge:
3104
+ class MetricsTree_Cointime_Adjusted:
3054
3105
  """Metrics tree node."""
3055
3106
 
3056
3107
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3057
- self._10y: _10yPattern = _10yPattern(client, 'utxos_under_10y_old')
3058
- self._12y: _10yPattern = _10yPattern(client, 'utxos_under_12y_old')
3059
- self._15y: _10yPattern = _10yPattern(client, 'utxos_under_15y_old')
3060
- self._1m: _10yPattern = _10yPattern(client, 'utxos_under_1m_old')
3061
- self._1w: _10yPattern = _10yPattern(client, 'utxos_under_1w_old')
3062
- self._1y: _10yPattern = _10yPattern(client, 'utxos_under_1y_old')
3063
- self._2m: _10yPattern = _10yPattern(client, 'utxos_under_2m_old')
3064
- self._2y: _10yPattern = _10yPattern(client, 'utxos_under_2y_old')
3065
- self._3m: _10yPattern = _10yPattern(client, 'utxos_under_3m_old')
3066
- self._3y: _10yPattern = _10yPattern(client, 'utxos_under_3y_old')
3067
- self._4m: _10yPattern = _10yPattern(client, 'utxos_under_4m_old')
3068
- self._4y: _10yPattern = _10yPattern(client, 'utxos_under_4y_old')
3069
- self._5m: _10yPattern = _10yPattern(client, 'utxos_under_5m_old')
3070
- self._5y: _10yPattern = _10yPattern(client, 'utxos_under_5y_old')
3071
- self._6m: _10yPattern = _10yPattern(client, 'utxos_under_6m_old')
3072
- self._6y: _10yPattern = _10yPattern(client, 'utxos_under_6y_old')
3073
- self._7y: _10yPattern = _10yPattern(client, 'utxos_under_7y_old')
3074
- self._8y: _10yPattern = _10yPattern(client, 'utxos_under_8y_old')
3108
+ self.cointime_adj_inflation_rate: MetricPattern4[StoredF32] = MetricPattern4(client, 'cointime_adj_inflation_rate')
3109
+ self.cointime_adj_tx_btc_velocity: MetricPattern4[StoredF64] = MetricPattern4(client, 'cointime_adj_tx_btc_velocity')
3110
+ self.cointime_adj_tx_usd_velocity: MetricPattern4[StoredF64] = MetricPattern4(client, 'cointime_adj_tx_usd_velocity')
3075
3111
 
3076
- class MetricsTree_Distribution_UtxoCohorts_MinAge:
3112
+ class MetricsTree_Cointime_ReserveRisk:
3077
3113
  """Metrics tree node."""
3078
3114
 
3079
3115
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3080
- self._10y: _100btcPattern = _100btcPattern(client, 'utxos_over_10y_old')
3081
- self._12y: _100btcPattern = _100btcPattern(client, 'utxos_over_12y_old')
3082
- self._1d: _100btcPattern = _100btcPattern(client, 'utxos_over_1d_old')
3083
- self._1m: _100btcPattern = _100btcPattern(client, 'utxos_over_1m_old')
3084
- self._1w: _100btcPattern = _100btcPattern(client, 'utxos_over_1w_old')
3085
- self._1y: _100btcPattern = _100btcPattern(client, 'utxos_over_1y_old')
3086
- self._2m: _100btcPattern = _100btcPattern(client, 'utxos_over_2m_old')
3087
- self._2y: _100btcPattern = _100btcPattern(client, 'utxos_over_2y_old')
3088
- self._3m: _100btcPattern = _100btcPattern(client, 'utxos_over_3m_old')
3089
- self._3y: _100btcPattern = _100btcPattern(client, 'utxos_over_3y_old')
3090
- self._4m: _100btcPattern = _100btcPattern(client, 'utxos_over_4m_old')
3091
- self._4y: _100btcPattern = _100btcPattern(client, 'utxos_over_4y_old')
3092
- self._5m: _100btcPattern = _100btcPattern(client, 'utxos_over_5m_old')
3093
- self._5y: _100btcPattern = _100btcPattern(client, 'utxos_over_5y_old')
3094
- self._6m: _100btcPattern = _100btcPattern(client, 'utxos_over_6m_old')
3095
- self._6y: _100btcPattern = _100btcPattern(client, 'utxos_over_6y_old')
3096
- self._7y: _100btcPattern = _100btcPattern(client, 'utxos_over_7y_old')
3097
- self._8y: _100btcPattern = _100btcPattern(client, 'utxos_over_8y_old')
3116
+ self.vocdd_365d_sma: MetricPattern6[StoredF64] = MetricPattern6(client, 'vocdd_365d_sma')
3117
+ self.hodl_bank: MetricPattern6[StoredF64] = MetricPattern6(client, 'hodl_bank')
3118
+ self.reserve_risk: MetricPattern4[StoredF64] = MetricPattern4(client, 'reserve_risk')
3098
3119
 
3099
- class MetricsTree_Distribution_UtxoCohorts_Term_Long:
3120
+ class MetricsTree_Cointime:
3100
3121
  """Metrics tree node."""
3101
3122
 
3102
3123
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3103
- self.activity: ActivityPattern2 = ActivityPattern2(client, 'lth')
3104
- self.cost_basis: CostBasisPattern2 = CostBasisPattern2(client, 'lth')
3105
- self.outputs: OutputsPattern = OutputsPattern(client, 'lth_utxo_count')
3106
- self.realized: RealizedPattern2 = RealizedPattern2(client, 'lth')
3107
- self.relative: RelativePattern5 = RelativePattern5(client, 'lth')
3108
- self.supply: SupplyPattern2 = SupplyPattern2(client, 'lth_supply')
3109
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, 'lth')
3124
+ self.activity: MetricsTree_Cointime_Activity = MetricsTree_Cointime_Activity(client)
3125
+ self.supply: MetricsTree_Cointime_Supply = MetricsTree_Cointime_Supply(client)
3126
+ self.value: MetricsTree_Cointime_Value = MetricsTree_Cointime_Value(client)
3127
+ self.cap: MetricsTree_Cointime_Cap = MetricsTree_Cointime_Cap(client)
3128
+ self.pricing: MetricsTree_Cointime_Pricing = MetricsTree_Cointime_Pricing(client)
3129
+ self.adjusted: MetricsTree_Cointime_Adjusted = MetricsTree_Cointime_Adjusted(client)
3130
+ self.reserve_risk: MetricsTree_Cointime_ReserveRisk = MetricsTree_Cointime_ReserveRisk(client)
3110
3131
 
3111
- class MetricsTree_Distribution_UtxoCohorts_Term_Short:
3132
+ class MetricsTree_Constants:
3112
3133
  """Metrics tree node."""
3113
3134
 
3114
3135
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3115
- self.activity: ActivityPattern2 = ActivityPattern2(client, 'sth')
3116
- self.cost_basis: CostBasisPattern2 = CostBasisPattern2(client, 'sth')
3117
- self.outputs: OutputsPattern = OutputsPattern(client, 'sth_utxo_count')
3118
- self.realized: RealizedPattern3 = RealizedPattern3(client, 'sth')
3119
- self.relative: RelativePattern5 = RelativePattern5(client, 'sth')
3120
- self.supply: SupplyPattern2 = SupplyPattern2(client, 'sth_supply')
3121
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, 'sth')
3136
+ self.constant_0: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_0')
3137
+ self.constant_1: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_1')
3138
+ self.constant_2: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_2')
3139
+ self.constant_3: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_3')
3140
+ self.constant_4: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_4')
3141
+ self.constant_20: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_20')
3142
+ self.constant_30: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_30')
3143
+ self.constant_38_2: MetricPattern1[StoredF32] = MetricPattern1(client, 'constant_38_2')
3144
+ self.constant_50: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_50')
3145
+ self.constant_61_8: MetricPattern1[StoredF32] = MetricPattern1(client, 'constant_61_8')
3146
+ self.constant_70: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_70')
3147
+ self.constant_80: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_80')
3148
+ self.constant_100: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_100')
3149
+ self.constant_600: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_600')
3150
+ self.constant_minus_1: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_1')
3151
+ self.constant_minus_2: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_2')
3152
+ self.constant_minus_3: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_3')
3153
+ self.constant_minus_4: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_4')
3122
3154
 
3123
- class MetricsTree_Distribution_UtxoCohorts_Term:
3155
+ class MetricsTree_Indexes_Address_P2pk33:
3124
3156
  """Metrics tree node."""
3125
3157
 
3126
3158
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3127
- self.long: MetricsTree_Distribution_UtxoCohorts_Term_Long = MetricsTree_Distribution_UtxoCohorts_Term_Long(client)
3128
- self.short: MetricsTree_Distribution_UtxoCohorts_Term_Short = MetricsTree_Distribution_UtxoCohorts_Term_Short(client)
3159
+ self.identity: MetricPattern18[P2PK33AddressIndex] = MetricPattern18(client, 'p2pk33addressindex')
3129
3160
 
3130
- class MetricsTree_Distribution_UtxoCohorts_Type:
3161
+ class MetricsTree_Indexes_Address_P2pk65:
3131
3162
  """Metrics tree node."""
3132
3163
 
3133
3164
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3134
- self.empty: _0satsPattern2 = _0satsPattern2(client, 'empty_outputs')
3135
- self.p2a: _0satsPattern2 = _0satsPattern2(client, 'p2a')
3136
- self.p2ms: _0satsPattern2 = _0satsPattern2(client, 'p2ms')
3137
- self.p2pk33: _0satsPattern2 = _0satsPattern2(client, 'p2pk33')
3138
- self.p2pk65: _0satsPattern2 = _0satsPattern2(client, 'p2pk65')
3139
- self.p2pkh: _0satsPattern2 = _0satsPattern2(client, 'p2pkh')
3140
- self.p2sh: _0satsPattern2 = _0satsPattern2(client, 'p2sh')
3141
- self.p2tr: _0satsPattern2 = _0satsPattern2(client, 'p2tr')
3142
- self.p2wpkh: _0satsPattern2 = _0satsPattern2(client, 'p2wpkh')
3143
- self.p2wsh: _0satsPattern2 = _0satsPattern2(client, 'p2wsh')
3144
- self.unknown: _0satsPattern2 = _0satsPattern2(client, 'unknown_outputs')
3165
+ self.identity: MetricPattern19[P2PK65AddressIndex] = MetricPattern19(client, 'p2pk65addressindex')
3145
3166
 
3146
- class MetricsTree_Distribution_UtxoCohorts_Year:
3167
+ class MetricsTree_Indexes_Address_P2pkh:
3147
3168
  """Metrics tree node."""
3148
3169
 
3149
3170
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3150
- self._2009: _0satsPattern2 = _0satsPattern2(client, 'year_2009')
3151
- self._2010: _0satsPattern2 = _0satsPattern2(client, 'year_2010')
3152
- self._2011: _0satsPattern2 = _0satsPattern2(client, 'year_2011')
3153
- self._2012: _0satsPattern2 = _0satsPattern2(client, 'year_2012')
3154
- self._2013: _0satsPattern2 = _0satsPattern2(client, 'year_2013')
3155
- self._2014: _0satsPattern2 = _0satsPattern2(client, 'year_2014')
3156
- self._2015: _0satsPattern2 = _0satsPattern2(client, 'year_2015')
3157
- self._2016: _0satsPattern2 = _0satsPattern2(client, 'year_2016')
3158
- self._2017: _0satsPattern2 = _0satsPattern2(client, 'year_2017')
3159
- self._2018: _0satsPattern2 = _0satsPattern2(client, 'year_2018')
3160
- self._2019: _0satsPattern2 = _0satsPattern2(client, 'year_2019')
3161
- self._2020: _0satsPattern2 = _0satsPattern2(client, 'year_2020')
3162
- self._2021: _0satsPattern2 = _0satsPattern2(client, 'year_2021')
3163
- self._2022: _0satsPattern2 = _0satsPattern2(client, 'year_2022')
3164
- self._2023: _0satsPattern2 = _0satsPattern2(client, 'year_2023')
3165
- self._2024: _0satsPattern2 = _0satsPattern2(client, 'year_2024')
3166
- self._2025: _0satsPattern2 = _0satsPattern2(client, 'year_2025')
3167
- self._2026: _0satsPattern2 = _0satsPattern2(client, 'year_2026')
3171
+ self.identity: MetricPattern20[P2PKHAddressIndex] = MetricPattern20(client, 'p2pkhaddressindex')
3168
3172
 
3169
- class MetricsTree_Distribution_UtxoCohorts:
3173
+ class MetricsTree_Indexes_Address_P2sh:
3170
3174
  """Metrics tree node."""
3171
3175
 
3172
3176
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3173
- self.age_range: MetricsTree_Distribution_UtxoCohorts_AgeRange = MetricsTree_Distribution_UtxoCohorts_AgeRange(client)
3174
- self.all: MetricsTree_Distribution_UtxoCohorts_All = MetricsTree_Distribution_UtxoCohorts_All(client)
3175
- self.amount_range: MetricsTree_Distribution_UtxoCohorts_AmountRange = MetricsTree_Distribution_UtxoCohorts_AmountRange(client)
3176
- self.epoch: MetricsTree_Distribution_UtxoCohorts_Epoch = MetricsTree_Distribution_UtxoCohorts_Epoch(client)
3177
- self.ge_amount: MetricsTree_Distribution_UtxoCohorts_GeAmount = MetricsTree_Distribution_UtxoCohorts_GeAmount(client)
3178
- self.lt_amount: MetricsTree_Distribution_UtxoCohorts_LtAmount = MetricsTree_Distribution_UtxoCohorts_LtAmount(client)
3179
- self.max_age: MetricsTree_Distribution_UtxoCohorts_MaxAge = MetricsTree_Distribution_UtxoCohorts_MaxAge(client)
3180
- self.min_age: MetricsTree_Distribution_UtxoCohorts_MinAge = MetricsTree_Distribution_UtxoCohorts_MinAge(client)
3181
- self.term: MetricsTree_Distribution_UtxoCohorts_Term = MetricsTree_Distribution_UtxoCohorts_Term(client)
3182
- self.type_: MetricsTree_Distribution_UtxoCohorts_Type = MetricsTree_Distribution_UtxoCohorts_Type(client)
3183
- self.year: MetricsTree_Distribution_UtxoCohorts_Year = MetricsTree_Distribution_UtxoCohorts_Year(client)
3177
+ self.identity: MetricPattern21[P2SHAddressIndex] = MetricPattern21(client, 'p2shaddressindex')
3184
3178
 
3185
- class MetricsTree_Distribution:
3179
+ class MetricsTree_Indexes_Address_P2tr:
3186
3180
  """Metrics tree node."""
3187
3181
 
3188
3182
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3189
- self.addr_count: AddrCountPattern = AddrCountPattern(client, 'addr_count')
3190
- self.address_activity: MetricsTree_Distribution_AddressActivity = MetricsTree_Distribution_AddressActivity(client)
3191
- self.address_cohorts: MetricsTree_Distribution_AddressCohorts = MetricsTree_Distribution_AddressCohorts(client)
3192
- self.addresses_data: MetricsTree_Distribution_AddressesData = MetricsTree_Distribution_AddressesData(client)
3193
- self.any_address_indexes: MetricsTree_Distribution_AnyAddressIndexes = MetricsTree_Distribution_AnyAddressIndexes(client)
3194
- self.chain_state: MetricPattern11[SupplyState] = MetricPattern11(client, 'chain')
3195
- self.empty_addr_count: AddrCountPattern = AddrCountPattern(client, 'empty_addr_count')
3196
- self.emptyaddressindex: MetricPattern32[EmptyAddressIndex] = MetricPattern32(client, 'emptyaddressindex')
3197
- self.growth_rate: MetricsTree_Distribution_GrowthRate = MetricsTree_Distribution_GrowthRate(client)
3198
- self.loadedaddressindex: MetricPattern31[LoadedAddressIndex] = MetricPattern31(client, 'loadedaddressindex')
3199
- self.new_addr_count: MetricsTree_Distribution_NewAddrCount = MetricsTree_Distribution_NewAddrCount(client)
3200
- self.total_addr_count: AddrCountPattern = AddrCountPattern(client, 'total_addr_count')
3201
- self.utxo_cohorts: MetricsTree_Distribution_UtxoCohorts = MetricsTree_Distribution_UtxoCohorts(client)
3183
+ self.identity: MetricPattern22[P2TRAddressIndex] = MetricPattern22(client, 'p2traddressindex')
3202
3184
 
3203
- class MetricsTree_Indexes_Address_Empty:
3185
+ class MetricsTree_Indexes_Address_P2wpkh:
3204
3186
  """Metrics tree node."""
3205
3187
 
3206
3188
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3207
- self.identity: MetricPattern9[EmptyOutputIndex] = MetricPattern9(client, 'emptyoutputindex')
3189
+ self.identity: MetricPattern23[P2WPKHAddressIndex] = MetricPattern23(client, 'p2wpkhaddressindex')
3208
3190
 
3209
- class MetricsTree_Indexes_Address_Opreturn:
3191
+ class MetricsTree_Indexes_Address_P2wsh:
3210
3192
  """Metrics tree node."""
3211
3193
 
3212
3194
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3213
- self.identity: MetricPattern14[OpReturnIndex] = MetricPattern14(client, 'opreturnindex')
3195
+ self.identity: MetricPattern24[P2WSHAddressIndex] = MetricPattern24(client, 'p2wshaddressindex')
3214
3196
 
3215
3197
  class MetricsTree_Indexes_Address_P2a:
3216
3198
  """Metrics tree node."""
@@ -3224,62 +3206,28 @@ class MetricsTree_Indexes_Address_P2ms:
3224
3206
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3225
3207
  self.identity: MetricPattern17[P2MSOutputIndex] = MetricPattern17(client, 'p2msoutputindex')
3226
3208
 
3227
- class MetricsTree_Indexes_Address_P2pk33:
3228
- """Metrics tree node."""
3229
-
3230
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3231
- self.identity: MetricPattern18[P2PK33AddressIndex] = MetricPattern18(client, 'p2pk33addressindex')
3232
-
3233
- class MetricsTree_Indexes_Address_P2pk65:
3234
- """Metrics tree node."""
3235
-
3236
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3237
- self.identity: MetricPattern19[P2PK65AddressIndex] = MetricPattern19(client, 'p2pk65addressindex')
3238
-
3239
- class MetricsTree_Indexes_Address_P2pkh:
3240
- """Metrics tree node."""
3241
-
3242
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3243
- self.identity: MetricPattern20[P2PKHAddressIndex] = MetricPattern20(client, 'p2pkhaddressindex')
3244
-
3245
- class MetricsTree_Indexes_Address_P2sh:
3246
- """Metrics tree node."""
3247
-
3248
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3249
- self.identity: MetricPattern21[P2SHAddressIndex] = MetricPattern21(client, 'p2shaddressindex')
3250
-
3251
- class MetricsTree_Indexes_Address_P2tr:
3252
- """Metrics tree node."""
3253
-
3254
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3255
- self.identity: MetricPattern22[P2TRAddressIndex] = MetricPattern22(client, 'p2traddressindex')
3256
-
3257
- class MetricsTree_Indexes_Address_P2wpkh:
3209
+ class MetricsTree_Indexes_Address_Empty:
3258
3210
  """Metrics tree node."""
3259
3211
 
3260
3212
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3261
- self.identity: MetricPattern23[P2WPKHAddressIndex] = MetricPattern23(client, 'p2wpkhaddressindex')
3213
+ self.identity: MetricPattern9[EmptyOutputIndex] = MetricPattern9(client, 'emptyoutputindex')
3262
3214
 
3263
- class MetricsTree_Indexes_Address_P2wsh:
3215
+ class MetricsTree_Indexes_Address_Unknown:
3264
3216
  """Metrics tree node."""
3265
3217
 
3266
3218
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3267
- self.identity: MetricPattern24[P2WSHAddressIndex] = MetricPattern24(client, 'p2wshaddressindex')
3219
+ self.identity: MetricPattern28[UnknownOutputIndex] = MetricPattern28(client, 'unknownoutputindex')
3268
3220
 
3269
- class MetricsTree_Indexes_Address_Unknown:
3221
+ class MetricsTree_Indexes_Address_Opreturn:
3270
3222
  """Metrics tree node."""
3271
3223
 
3272
3224
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3273
- self.identity: MetricPattern28[UnknownOutputIndex] = MetricPattern28(client, 'unknownoutputindex')
3225
+ self.identity: MetricPattern14[OpReturnIndex] = MetricPattern14(client, 'opreturnindex')
3274
3226
 
3275
3227
  class MetricsTree_Indexes_Address:
3276
3228
  """Metrics tree node."""
3277
3229
 
3278
3230
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3279
- self.empty: MetricsTree_Indexes_Address_Empty = MetricsTree_Indexes_Address_Empty(client)
3280
- self.opreturn: MetricsTree_Indexes_Address_Opreturn = MetricsTree_Indexes_Address_Opreturn(client)
3281
- self.p2a: MetricsTree_Indexes_Address_P2a = MetricsTree_Indexes_Address_P2a(client)
3282
- self.p2ms: MetricsTree_Indexes_Address_P2ms = MetricsTree_Indexes_Address_P2ms(client)
3283
3231
  self.p2pk33: MetricsTree_Indexes_Address_P2pk33 = MetricsTree_Indexes_Address_P2pk33(client)
3284
3232
  self.p2pk65: MetricsTree_Indexes_Address_P2pk65 = MetricsTree_Indexes_Address_P2pk65(client)
3285
3233
  self.p2pkh: MetricsTree_Indexes_Address_P2pkh = MetricsTree_Indexes_Address_P2pkh(client)
@@ -3287,61 +3235,65 @@ class MetricsTree_Indexes_Address:
3287
3235
  self.p2tr: MetricsTree_Indexes_Address_P2tr = MetricsTree_Indexes_Address_P2tr(client)
3288
3236
  self.p2wpkh: MetricsTree_Indexes_Address_P2wpkh = MetricsTree_Indexes_Address_P2wpkh(client)
3289
3237
  self.p2wsh: MetricsTree_Indexes_Address_P2wsh = MetricsTree_Indexes_Address_P2wsh(client)
3290
- self.unknown: MetricsTree_Indexes_Address_Unknown = MetricsTree_Indexes_Address_Unknown(client)
3291
-
3292
- class MetricsTree_Indexes_Dateindex:
3293
- """Metrics tree node."""
3294
-
3295
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3296
- self.date: MetricPattern6[Date] = MetricPattern6(client, 'date')
3297
- self.first_height: MetricPattern6[Height] = MetricPattern6(client, 'first_height')
3298
- self.height_count: MetricPattern6[StoredU64] = MetricPattern6(client, 'height_count')
3299
- self.identity: MetricPattern6[DateIndex] = MetricPattern6(client, 'dateindex')
3300
- self.monthindex: MetricPattern6[MonthIndex] = MetricPattern6(client, 'monthindex')
3301
- self.weekindex: MetricPattern6[WeekIndex] = MetricPattern6(client, 'weekindex')
3238
+ self.p2a: MetricsTree_Indexes_Address_P2a = MetricsTree_Indexes_Address_P2a(client)
3239
+ self.p2ms: MetricsTree_Indexes_Address_P2ms = MetricsTree_Indexes_Address_P2ms(client)
3240
+ self.empty: MetricsTree_Indexes_Address_Empty = MetricsTree_Indexes_Address_Empty(client)
3241
+ self.unknown: MetricsTree_Indexes_Address_Unknown = MetricsTree_Indexes_Address_Unknown(client)
3242
+ self.opreturn: MetricsTree_Indexes_Address_Opreturn = MetricsTree_Indexes_Address_Opreturn(client)
3302
3243
 
3303
- class MetricsTree_Indexes_Decadeindex:
3244
+ class MetricsTree_Indexes_Height:
3304
3245
  """Metrics tree node."""
3305
3246
 
3306
3247
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3307
- self.date: MetricPattern7[Date] = MetricPattern7(client, 'date')
3308
- self.first_yearindex: MetricPattern7[YearIndex] = MetricPattern7(client, 'first_yearindex')
3309
- self.identity: MetricPattern7[DecadeIndex] = MetricPattern7(client, 'decadeindex')
3310
- self.yearindex_count: MetricPattern7[StoredU64] = MetricPattern7(client, 'yearindex_count')
3248
+ self.identity: MetricPattern11[Height] = MetricPattern11(client, 'height')
3249
+ self.dateindex: MetricPattern11[DateIndex] = MetricPattern11(client, 'dateindex')
3250
+ self.difficultyepoch: MetricPattern11[DifficultyEpoch] = MetricPattern11(client, 'difficultyepoch')
3251
+ self.halvingepoch: MetricPattern11[HalvingEpoch] = MetricPattern11(client, 'halvingepoch')
3252
+ self.txindex_count: MetricPattern11[StoredU64] = MetricPattern11(client, 'txindex_count')
3311
3253
 
3312
3254
  class MetricsTree_Indexes_Difficultyepoch:
3313
3255
  """Metrics tree node."""
3314
3256
 
3315
3257
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3258
+ self.identity: MetricPattern8[DifficultyEpoch] = MetricPattern8(client, 'difficultyepoch')
3316
3259
  self.first_height: MetricPattern8[Height] = MetricPattern8(client, 'first_height')
3317
3260
  self.height_count: MetricPattern8[StoredU64] = MetricPattern8(client, 'height_count')
3318
- self.identity: MetricPattern8[DifficultyEpoch] = MetricPattern8(client, 'difficultyepoch')
3319
3261
 
3320
3262
  class MetricsTree_Indexes_Halvingepoch:
3321
3263
  """Metrics tree node."""
3322
3264
 
3323
3265
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3324
- self.first_height: MetricPattern10[Height] = MetricPattern10(client, 'first_height')
3325
3266
  self.identity: MetricPattern10[HalvingEpoch] = MetricPattern10(client, 'halvingepoch')
3267
+ self.first_height: MetricPattern10[Height] = MetricPattern10(client, 'first_height')
3326
3268
 
3327
- class MetricsTree_Indexes_Height:
3269
+ class MetricsTree_Indexes_Dateindex:
3328
3270
  """Metrics tree node."""
3329
3271
 
3330
3272
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3331
- self.dateindex: MetricPattern11[DateIndex] = MetricPattern11(client, 'dateindex')
3332
- self.difficultyepoch: MetricPattern11[DifficultyEpoch] = MetricPattern11(client, 'difficultyepoch')
3333
- self.halvingepoch: MetricPattern11[HalvingEpoch] = MetricPattern11(client, 'halvingepoch')
3334
- self.identity: MetricPattern11[Height] = MetricPattern11(client, 'height')
3335
- self.txindex_count: MetricPattern11[StoredU64] = MetricPattern11(client, 'txindex_count')
3273
+ self.identity: MetricPattern6[DateIndex] = MetricPattern6(client, 'dateindex')
3274
+ self.date: MetricPattern6[Date] = MetricPattern6(client, 'date')
3275
+ self.first_height: MetricPattern6[Height] = MetricPattern6(client, 'first_height')
3276
+ self.height_count: MetricPattern6[StoredU64] = MetricPattern6(client, 'height_count')
3277
+ self.weekindex: MetricPattern6[WeekIndex] = MetricPattern6(client, 'weekindex')
3278
+ self.monthindex: MetricPattern6[MonthIndex] = MetricPattern6(client, 'monthindex')
3279
+
3280
+ class MetricsTree_Indexes_Weekindex:
3281
+ """Metrics tree node."""
3282
+
3283
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3284
+ self.identity: MetricPattern29[WeekIndex] = MetricPattern29(client, 'weekindex')
3285
+ self.date: MetricPattern29[Date] = MetricPattern29(client, 'date')
3286
+ self.first_dateindex: MetricPattern29[DateIndex] = MetricPattern29(client, 'first_dateindex')
3287
+ self.dateindex_count: MetricPattern29[StoredU64] = MetricPattern29(client, 'dateindex_count')
3336
3288
 
3337
3289
  class MetricsTree_Indexes_Monthindex:
3338
3290
  """Metrics tree node."""
3339
3291
 
3340
3292
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3293
+ self.identity: MetricPattern13[MonthIndex] = MetricPattern13(client, 'monthindex')
3341
3294
  self.date: MetricPattern13[Date] = MetricPattern13(client, 'date')
3342
- self.dateindex_count: MetricPattern13[StoredU64] = MetricPattern13(client, 'dateindex_count')
3343
3295
  self.first_dateindex: MetricPattern13[DateIndex] = MetricPattern13(client, 'first_dateindex')
3344
- self.identity: MetricPattern13[MonthIndex] = MetricPattern13(client, 'monthindex')
3296
+ self.dateindex_count: MetricPattern13[StoredU64] = MetricPattern13(client, 'dateindex_count')
3345
3297
  self.quarterindex: MetricPattern13[QuarterIndex] = MetricPattern13(client, 'quarterindex')
3346
3298
  self.semesterindex: MetricPattern13[SemesterIndex] = MetricPattern13(client, 'semesterindex')
3347
3299
  self.yearindex: MetricPattern13[YearIndex] = MetricPattern13(client, 'yearindex')
@@ -3350,141 +3302,259 @@ class MetricsTree_Indexes_Quarterindex:
3350
3302
  """Metrics tree node."""
3351
3303
 
3352
3304
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3305
+ self.identity: MetricPattern25[QuarterIndex] = MetricPattern25(client, 'quarterindex')
3353
3306
  self.date: MetricPattern25[Date] = MetricPattern25(client, 'date')
3354
3307
  self.first_monthindex: MetricPattern25[MonthIndex] = MetricPattern25(client, 'first_monthindex')
3355
- self.identity: MetricPattern25[QuarterIndex] = MetricPattern25(client, 'quarterindex')
3356
3308
  self.monthindex_count: MetricPattern25[StoredU64] = MetricPattern25(client, 'monthindex_count')
3357
3309
 
3358
3310
  class MetricsTree_Indexes_Semesterindex:
3359
3311
  """Metrics tree node."""
3360
3312
 
3361
3313
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3314
+ self.identity: MetricPattern26[SemesterIndex] = MetricPattern26(client, 'semesterindex')
3362
3315
  self.date: MetricPattern26[Date] = MetricPattern26(client, 'date')
3363
3316
  self.first_monthindex: MetricPattern26[MonthIndex] = MetricPattern26(client, 'first_monthindex')
3364
- self.identity: MetricPattern26[SemesterIndex] = MetricPattern26(client, 'semesterindex')
3365
3317
  self.monthindex_count: MetricPattern26[StoredU64] = MetricPattern26(client, 'monthindex_count')
3366
3318
 
3367
- class MetricsTree_Indexes_Txindex:
3319
+ class MetricsTree_Indexes_Yearindex:
3368
3320
  """Metrics tree node."""
3369
3321
 
3370
3322
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3371
- self.identity: MetricPattern27[TxIndex] = MetricPattern27(client, 'txindex')
3372
- self.input_count: MetricPattern27[StoredU64] = MetricPattern27(client, 'input_count')
3373
- self.output_count: MetricPattern27[StoredU64] = MetricPattern27(client, 'output_count')
3323
+ self.identity: MetricPattern30[YearIndex] = MetricPattern30(client, 'yearindex')
3324
+ self.date: MetricPattern30[Date] = MetricPattern30(client, 'date')
3325
+ self.first_monthindex: MetricPattern30[MonthIndex] = MetricPattern30(client, 'first_monthindex')
3326
+ self.monthindex_count: MetricPattern30[StoredU64] = MetricPattern30(client, 'monthindex_count')
3327
+ self.decadeindex: MetricPattern30[DecadeIndex] = MetricPattern30(client, 'decadeindex')
3374
3328
 
3375
- class MetricsTree_Indexes_Txinindex:
3329
+ class MetricsTree_Indexes_Decadeindex:
3376
3330
  """Metrics tree node."""
3377
3331
 
3378
3332
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3379
- self.identity: MetricPattern12[TxInIndex] = MetricPattern12(client, 'txinindex')
3333
+ self.identity: MetricPattern7[DecadeIndex] = MetricPattern7(client, 'decadeindex')
3334
+ self.date: MetricPattern7[Date] = MetricPattern7(client, 'date')
3335
+ self.first_yearindex: MetricPattern7[YearIndex] = MetricPattern7(client, 'first_yearindex')
3336
+ self.yearindex_count: MetricPattern7[StoredU64] = MetricPattern7(client, 'yearindex_count')
3380
3337
 
3381
- class MetricsTree_Indexes_Txoutindex:
3338
+ class MetricsTree_Indexes_Txindex:
3382
3339
  """Metrics tree node."""
3383
3340
 
3384
3341
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3385
- self.identity: MetricPattern15[TxOutIndex] = MetricPattern15(client, 'txoutindex')
3342
+ self.identity: MetricPattern27[TxIndex] = MetricPattern27(client, 'txindex')
3343
+ self.input_count: MetricPattern27[StoredU64] = MetricPattern27(client, 'input_count')
3344
+ self.output_count: MetricPattern27[StoredU64] = MetricPattern27(client, 'output_count')
3386
3345
 
3387
- class MetricsTree_Indexes_Weekindex:
3346
+ class MetricsTree_Indexes_Txinindex:
3388
3347
  """Metrics tree node."""
3389
3348
 
3390
3349
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3391
- self.date: MetricPattern29[Date] = MetricPattern29(client, 'date')
3392
- self.dateindex_count: MetricPattern29[StoredU64] = MetricPattern29(client, 'dateindex_count')
3393
- self.first_dateindex: MetricPattern29[DateIndex] = MetricPattern29(client, 'first_dateindex')
3394
- self.identity: MetricPattern29[WeekIndex] = MetricPattern29(client, 'weekindex')
3350
+ self.identity: MetricPattern12[TxInIndex] = MetricPattern12(client, 'txinindex')
3395
3351
 
3396
- class MetricsTree_Indexes_Yearindex:
3352
+ class MetricsTree_Indexes_Txoutindex:
3397
3353
  """Metrics tree node."""
3398
3354
 
3399
3355
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3400
- self.date: MetricPattern30[Date] = MetricPattern30(client, 'date')
3401
- self.decadeindex: MetricPattern30[DecadeIndex] = MetricPattern30(client, 'decadeindex')
3402
- self.first_monthindex: MetricPattern30[MonthIndex] = MetricPattern30(client, 'first_monthindex')
3403
- self.identity: MetricPattern30[YearIndex] = MetricPattern30(client, 'yearindex')
3404
- self.monthindex_count: MetricPattern30[StoredU64] = MetricPattern30(client, 'monthindex_count')
3356
+ self.identity: MetricPattern15[TxOutIndex] = MetricPattern15(client, 'txoutindex')
3405
3357
 
3406
3358
  class MetricsTree_Indexes:
3407
3359
  """Metrics tree node."""
3408
3360
 
3409
3361
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3410
3362
  self.address: MetricsTree_Indexes_Address = MetricsTree_Indexes_Address(client)
3411
- self.dateindex: MetricsTree_Indexes_Dateindex = MetricsTree_Indexes_Dateindex(client)
3412
- self.decadeindex: MetricsTree_Indexes_Decadeindex = MetricsTree_Indexes_Decadeindex(client)
3363
+ self.height: MetricsTree_Indexes_Height = MetricsTree_Indexes_Height(client)
3413
3364
  self.difficultyepoch: MetricsTree_Indexes_Difficultyepoch = MetricsTree_Indexes_Difficultyepoch(client)
3414
3365
  self.halvingepoch: MetricsTree_Indexes_Halvingepoch = MetricsTree_Indexes_Halvingepoch(client)
3415
- self.height: MetricsTree_Indexes_Height = MetricsTree_Indexes_Height(client)
3366
+ self.dateindex: MetricsTree_Indexes_Dateindex = MetricsTree_Indexes_Dateindex(client)
3367
+ self.weekindex: MetricsTree_Indexes_Weekindex = MetricsTree_Indexes_Weekindex(client)
3416
3368
  self.monthindex: MetricsTree_Indexes_Monthindex = MetricsTree_Indexes_Monthindex(client)
3417
3369
  self.quarterindex: MetricsTree_Indexes_Quarterindex = MetricsTree_Indexes_Quarterindex(client)
3418
3370
  self.semesterindex: MetricsTree_Indexes_Semesterindex = MetricsTree_Indexes_Semesterindex(client)
3371
+ self.yearindex: MetricsTree_Indexes_Yearindex = MetricsTree_Indexes_Yearindex(client)
3372
+ self.decadeindex: MetricsTree_Indexes_Decadeindex = MetricsTree_Indexes_Decadeindex(client)
3419
3373
  self.txindex: MetricsTree_Indexes_Txindex = MetricsTree_Indexes_Txindex(client)
3420
3374
  self.txinindex: MetricsTree_Indexes_Txinindex = MetricsTree_Indexes_Txinindex(client)
3421
3375
  self.txoutindex: MetricsTree_Indexes_Txoutindex = MetricsTree_Indexes_Txoutindex(client)
3422
- self.weekindex: MetricsTree_Indexes_Weekindex = MetricsTree_Indexes_Weekindex(client)
3423
- self.yearindex: MetricsTree_Indexes_Yearindex = MetricsTree_Indexes_Yearindex(client)
3424
3376
 
3425
- class MetricsTree_Inputs_Spent:
3377
+ class MetricsTree_Market_Ath:
3426
3378
  """Metrics tree node."""
3427
3379
 
3428
3380
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3429
- self.txoutindex: MetricPattern12[TxOutIndex] = MetricPattern12(client, 'txoutindex')
3430
- self.value: MetricPattern12[Sats] = MetricPattern12(client, 'value')
3381
+ self.price_ath: DollarsSatsPattern = DollarsSatsPattern(client, 'price_ath')
3382
+ self.price_drawdown: MetricPattern3[StoredF32] = MetricPattern3(client, 'price_drawdown')
3383
+ self.days_since_price_ath: MetricPattern4[StoredU16] = MetricPattern4(client, 'days_since_price_ath')
3384
+ self.years_since_price_ath: MetricPattern4[StoredF32] = MetricPattern4(client, 'years_since_price_ath')
3385
+ self.max_days_between_price_aths: MetricPattern4[StoredU16] = MetricPattern4(client, 'max_days_between_price_aths')
3386
+ self.max_years_between_price_aths: MetricPattern4[StoredF32] = MetricPattern4(client, 'max_years_between_price_aths')
3431
3387
 
3432
- class MetricsTree_Inputs:
3388
+ class MetricsTree_Market_Lookback:
3433
3389
  """Metrics tree node."""
3434
3390
 
3435
3391
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3436
- self.count: CountPattern2[StoredU64] = CountPattern2(client, 'input_count')
3437
- self.first_txinindex: MetricPattern11[TxInIndex] = MetricPattern11(client, 'first_txinindex')
3438
- self.outpoint: MetricPattern12[OutPoint] = MetricPattern12(client, 'outpoint')
3439
- self.outputtype: MetricPattern12[OutputType] = MetricPattern12(client, 'outputtype')
3440
- self.spent: MetricsTree_Inputs_Spent = MetricsTree_Inputs_Spent(client)
3441
- self.txindex: MetricPattern12[TxIndex] = MetricPattern12(client, 'txindex')
3442
- self.typeindex: MetricPattern12[TypeIndex] = MetricPattern12(client, 'typeindex')
3392
+ self._1d: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1d_ago')
3393
+ self._1w: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1w_ago')
3394
+ self._1m: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1m_ago')
3395
+ self._3m: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_3m_ago')
3396
+ self._6m: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_6m_ago')
3397
+ self._1y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1y_ago')
3398
+ self._2y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_2y_ago')
3399
+ self._3y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_3y_ago')
3400
+ self._4y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_4y_ago')
3401
+ self._5y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_5y_ago')
3402
+ self._6y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_6y_ago')
3403
+ self._8y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_8y_ago')
3404
+ self._10y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_10y_ago')
3443
3405
 
3444
- class MetricsTree_Market_Ath:
3406
+ class MetricsTree_Market_Returns_PriceReturns:
3445
3407
  """Metrics tree node."""
3446
3408
 
3447
3409
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3448
- self.days_since_price_ath: MetricPattern4[StoredU16] = MetricPattern4(client, 'days_since_price_ath')
3449
- self.max_days_between_price_aths: MetricPattern4[StoredU16] = MetricPattern4(client, 'max_days_between_price_aths')
3450
- self.max_years_between_price_aths: MetricPattern4[StoredF32] = MetricPattern4(client, 'max_years_between_price_aths')
3451
- self.price_ath: ActivePricePattern = ActivePricePattern(client, 'price_ath')
3452
- self.price_drawdown: MetricPattern3[StoredF32] = MetricPattern3(client, 'price_drawdown')
3453
- self.years_since_price_ath: MetricPattern4[StoredF32] = MetricPattern4(client, 'years_since_price_ath')
3410
+ self._1d: MetricPattern4[StoredF32] = MetricPattern4(client, '1d_price_returns')
3411
+ self._1w: MetricPattern4[StoredF32] = MetricPattern4(client, '1w_price_returns')
3412
+ self._1m: MetricPattern4[StoredF32] = MetricPattern4(client, '1m_price_returns')
3413
+ self._3m: MetricPattern4[StoredF32] = MetricPattern4(client, '3m_price_returns')
3414
+ self._6m: MetricPattern4[StoredF32] = MetricPattern4(client, '6m_price_returns')
3415
+ self._1y: MetricPattern4[StoredF32] = MetricPattern4(client, '1y_price_returns')
3416
+ self._2y: MetricPattern4[StoredF32] = MetricPattern4(client, '2y_price_returns')
3417
+ self._3y: MetricPattern4[StoredF32] = MetricPattern4(client, '3y_price_returns')
3418
+ self._4y: MetricPattern4[StoredF32] = MetricPattern4(client, '4y_price_returns')
3419
+ self._5y: MetricPattern4[StoredF32] = MetricPattern4(client, '5y_price_returns')
3420
+ self._6y: MetricPattern4[StoredF32] = MetricPattern4(client, '6y_price_returns')
3421
+ self._8y: MetricPattern4[StoredF32] = MetricPattern4(client, '8y_price_returns')
3422
+ self._10y: MetricPattern4[StoredF32] = MetricPattern4(client, '10y_price_returns')
3454
3423
 
3455
- class MetricsTree_Market_Dca_ClassAveragePrice:
3424
+ class MetricsTree_Market_Returns:
3456
3425
  """Metrics tree node."""
3457
3426
 
3458
3427
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3459
- self._2015: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2015_average_price')
3460
- self._2016: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2016_average_price')
3461
- self._2017: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2017_average_price')
3462
- self._2018: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2018_average_price')
3463
- self._2019: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2019_average_price')
3464
- self._2020: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2020_average_price')
3465
- self._2021: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2021_average_price')
3466
- self._2022: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2022_average_price')
3467
- self._2023: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2023_average_price')
3468
- self._2024: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2024_average_price')
3469
- self._2025: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2025_average_price')
3470
- self._2026: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2026_average_price')
3428
+ self.price_returns: MetricsTree_Market_Returns_PriceReturns = MetricsTree_Market_Returns_PriceReturns(client)
3429
+ self.cagr: _10y2y3y4y5y6y8yPattern = _10y2y3y4y5y6y8yPattern(client, 'cagr')
3430
+ self._1d_returns_1w_sd: SdSmaPattern = SdSmaPattern(client, '1d_returns_1w_sd')
3431
+ self._1d_returns_1m_sd: SdSmaPattern = SdSmaPattern(client, '1d_returns_1m_sd')
3432
+ self._1d_returns_1y_sd: SdSmaPattern = SdSmaPattern(client, '1d_returns_1y_sd')
3433
+ self.downside_returns: MetricPattern6[StoredF32] = MetricPattern6(client, 'downside_returns')
3434
+ self.downside_1w_sd: SdSmaPattern = SdSmaPattern(client, 'downside_1w_sd')
3435
+ self.downside_1m_sd: SdSmaPattern = SdSmaPattern(client, 'downside_1m_sd')
3436
+ self.downside_1y_sd: SdSmaPattern = SdSmaPattern(client, 'downside_1y_sd')
3471
3437
 
3472
- class MetricsTree_Market_Dca_ClassDaysInLoss:
3438
+ class MetricsTree_Market_Volatility:
3473
3439
  """Metrics tree node."""
3474
3440
 
3475
3441
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3476
- self._2015: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2015_days_in_loss')
3477
- self._2016: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2016_days_in_loss')
3478
- self._2017: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2017_days_in_loss')
3479
- self._2018: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2018_days_in_loss')
3480
- self._2019: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2019_days_in_loss')
3481
- self._2020: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2020_days_in_loss')
3482
- self._2021: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2021_days_in_loss')
3483
- self._2022: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2022_days_in_loss')
3484
- self._2023: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2023_days_in_loss')
3485
- self._2024: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2024_days_in_loss')
3486
- self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_loss')
3487
- self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_loss')
3442
+ self.price_1w_volatility: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_1w_volatility')
3443
+ self.price_1m_volatility: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_1m_volatility')
3444
+ self.price_1y_volatility: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_1y_volatility')
3445
+ self.sharpe_1w: MetricPattern6[StoredF32] = MetricPattern6(client, 'sharpe_1w')
3446
+ self.sharpe_1m: MetricPattern6[StoredF32] = MetricPattern6(client, 'sharpe_1m')
3447
+ self.sharpe_1y: MetricPattern6[StoredF32] = MetricPattern6(client, 'sharpe_1y')
3448
+ self.sortino_1w: MetricPattern6[StoredF32] = MetricPattern6(client, 'sortino_1w')
3449
+ self.sortino_1m: MetricPattern6[StoredF32] = MetricPattern6(client, 'sortino_1m')
3450
+ self.sortino_1y: MetricPattern6[StoredF32] = MetricPattern6(client, 'sortino_1y')
3451
+
3452
+ class MetricsTree_Market_Range:
3453
+ """Metrics tree node."""
3454
+
3455
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3456
+ self.price_1w_min: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1w_min')
3457
+ self.price_1w_max: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1w_max')
3458
+ self.price_2w_min: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_2w_min')
3459
+ self.price_2w_max: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_2w_max')
3460
+ self.price_1m_min: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1m_min')
3461
+ self.price_1m_max: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1m_max')
3462
+ self.price_1y_min: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1y_min')
3463
+ self.price_1y_max: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1y_max')
3464
+ self.price_true_range: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range')
3465
+ self.price_true_range_2w_sum: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range_2w_sum')
3466
+ self.price_2w_choppiness_index: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_2w_choppiness_index')
3467
+
3468
+ class MetricsTree_Market_MovingAverage:
3469
+ """Metrics tree node."""
3470
+
3471
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3472
+ self.price_1w_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_1w_sma')
3473
+ self.price_8d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_8d_sma')
3474
+ self.price_13d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_13d_sma')
3475
+ self.price_21d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_21d_sma')
3476
+ self.price_1m_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_1m_sma')
3477
+ self.price_34d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_34d_sma')
3478
+ self.price_55d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_55d_sma')
3479
+ self.price_89d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_89d_sma')
3480
+ self.price_111d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_111d_sma')
3481
+ self.price_144d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_144d_sma')
3482
+ self.price_200d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_200d_sma')
3483
+ self.price_350d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_350d_sma')
3484
+ self.price_1y_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_1y_sma')
3485
+ self.price_2y_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_2y_sma')
3486
+ self.price_200w_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_200w_sma')
3487
+ self.price_4y_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_4y_sma')
3488
+ self.price_1w_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_1w_ema')
3489
+ self.price_8d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_8d_ema')
3490
+ self.price_12d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_12d_ema')
3491
+ self.price_13d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_13d_ema')
3492
+ self.price_21d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_21d_ema')
3493
+ self.price_26d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_26d_ema')
3494
+ self.price_1m_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_1m_ema')
3495
+ self.price_34d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_34d_ema')
3496
+ self.price_55d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_55d_ema')
3497
+ self.price_89d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_89d_ema')
3498
+ self.price_144d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_144d_ema')
3499
+ self.price_200d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_200d_ema')
3500
+ self.price_1y_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_1y_ema')
3501
+ self.price_2y_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_2y_ema')
3502
+ self.price_200w_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_200w_ema')
3503
+ self.price_4y_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_4y_ema')
3504
+ self.price_200d_sma_x2_4: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_200d_sma_x2_4')
3505
+ self.price_200d_sma_x0_8: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_200d_sma_x0_8')
3506
+ self.price_350d_sma_x2: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_350d_sma_x2')
3507
+
3508
+ class MetricsTree_Market_Dca_PeriodAveragePrice:
3509
+ """Metrics tree node."""
3510
+
3511
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3512
+ self._1w: DollarsSatsPattern2 = DollarsSatsPattern2(client, '1w_dca_average_price')
3513
+ self._1m: DollarsSatsPattern2 = DollarsSatsPattern2(client, '1m_dca_average_price')
3514
+ self._3m: DollarsSatsPattern2 = DollarsSatsPattern2(client, '3m_dca_average_price')
3515
+ self._6m: DollarsSatsPattern2 = DollarsSatsPattern2(client, '6m_dca_average_price')
3516
+ self._1y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '1y_dca_average_price')
3517
+ self._2y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '2y_dca_average_price')
3518
+ self._3y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '3y_dca_average_price')
3519
+ self._4y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '4y_dca_average_price')
3520
+ self._5y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '5y_dca_average_price')
3521
+ self._6y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '6y_dca_average_price')
3522
+ self._8y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '8y_dca_average_price')
3523
+ self._10y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '10y_dca_average_price')
3524
+
3525
+ class MetricsTree_Market_Dca_ClassStack:
3526
+ """Metrics tree node."""
3527
+
3528
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3529
+ self._2015: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2015_stack')
3530
+ self._2016: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2016_stack')
3531
+ self._2017: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2017_stack')
3532
+ self._2018: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2018_stack')
3533
+ self._2019: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2019_stack')
3534
+ self._2020: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2020_stack')
3535
+ self._2021: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2021_stack')
3536
+ self._2022: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2022_stack')
3537
+ self._2023: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2023_stack')
3538
+ self._2024: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2024_stack')
3539
+ self._2025: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2025_stack')
3540
+ self._2026: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2026_stack')
3541
+
3542
+ class MetricsTree_Market_Dca_ClassAveragePrice:
3543
+ """Metrics tree node."""
3544
+
3545
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3546
+ self._2015: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2015_average_price')
3547
+ self._2016: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2016_average_price')
3548
+ self._2017: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2017_average_price')
3549
+ self._2018: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2018_average_price')
3550
+ self._2019: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2019_average_price')
3551
+ self._2020: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2020_average_price')
3552
+ self._2021: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2021_average_price')
3553
+ self._2022: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2022_average_price')
3554
+ self._2023: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2023_average_price')
3555
+ self._2024: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2024_average_price')
3556
+ self._2025: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2025_average_price')
3557
+ self._2026: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2026_average_price')
3488
3558
 
3489
3559
  class MetricsTree_Market_Dca_ClassDaysInProfit:
3490
3560
  """Metrics tree node."""
@@ -3503,22 +3573,39 @@ class MetricsTree_Market_Dca_ClassDaysInProfit:
3503
3573
  self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_profit')
3504
3574
  self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_profit')
3505
3575
 
3506
- class MetricsTree_Market_Dca_ClassMaxDrawdown:
3576
+ class MetricsTree_Market_Dca_ClassDaysInLoss:
3577
+ """Metrics tree node."""
3578
+
3579
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3580
+ self._2015: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2015_days_in_loss')
3581
+ self._2016: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2016_days_in_loss')
3582
+ self._2017: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2017_days_in_loss')
3583
+ self._2018: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2018_days_in_loss')
3584
+ self._2019: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2019_days_in_loss')
3585
+ self._2020: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2020_days_in_loss')
3586
+ self._2021: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2021_days_in_loss')
3587
+ self._2022: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2022_days_in_loss')
3588
+ self._2023: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2023_days_in_loss')
3589
+ self._2024: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2024_days_in_loss')
3590
+ self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_loss')
3591
+ self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_loss')
3592
+
3593
+ class MetricsTree_Market_Dca_ClassMinReturn:
3507
3594
  """Metrics tree node."""
3508
3595
 
3509
3596
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3510
- self._2015: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2015_max_drawdown')
3511
- self._2016: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2016_max_drawdown')
3512
- self._2017: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2017_max_drawdown')
3513
- self._2018: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2018_max_drawdown')
3514
- self._2019: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2019_max_drawdown')
3515
- self._2020: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2020_max_drawdown')
3516
- self._2021: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2021_max_drawdown')
3517
- self._2022: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2022_max_drawdown')
3518
- self._2023: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2023_max_drawdown')
3519
- self._2024: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2024_max_drawdown')
3520
- self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_max_drawdown')
3521
- self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_max_drawdown')
3597
+ self._2015: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2015_min_return')
3598
+ self._2016: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2016_min_return')
3599
+ self._2017: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2017_min_return')
3600
+ self._2018: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2018_min_return')
3601
+ self._2019: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2019_min_return')
3602
+ self._2020: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2020_min_return')
3603
+ self._2021: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2021_min_return')
3604
+ self._2022: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2022_min_return')
3605
+ self._2023: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2023_min_return')
3606
+ self._2024: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2024_min_return')
3607
+ self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_min_return')
3608
+ self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_min_return')
3522
3609
 
3523
3610
  class MetricsTree_Market_Dca_ClassMaxReturn:
3524
3611
  """Metrics tree node."""
@@ -3537,624 +3624,725 @@ class MetricsTree_Market_Dca_ClassMaxReturn:
3537
3624
  self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_max_return')
3538
3625
  self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_max_return')
3539
3626
 
3540
- class MetricsTree_Market_Dca_ClassStack:
3627
+ class MetricsTree_Market_Dca:
3541
3628
  """Metrics tree node."""
3542
3629
 
3543
3630
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3544
- self._2015: _2015Pattern = _2015Pattern(client, 'dca_class_2015_stack')
3545
- self._2016: _2015Pattern = _2015Pattern(client, 'dca_class_2016_stack')
3546
- self._2017: _2015Pattern = _2015Pattern(client, 'dca_class_2017_stack')
3547
- self._2018: _2015Pattern = _2015Pattern(client, 'dca_class_2018_stack')
3548
- self._2019: _2015Pattern = _2015Pattern(client, 'dca_class_2019_stack')
3549
- self._2020: _2015Pattern = _2015Pattern(client, 'dca_class_2020_stack')
3550
- self._2021: _2015Pattern = _2015Pattern(client, 'dca_class_2021_stack')
3551
- self._2022: _2015Pattern = _2015Pattern(client, 'dca_class_2022_stack')
3552
- self._2023: _2015Pattern = _2015Pattern(client, 'dca_class_2023_stack')
3553
- self._2024: _2015Pattern = _2015Pattern(client, 'dca_class_2024_stack')
3554
- self._2025: _2015Pattern = _2015Pattern(client, 'dca_class_2025_stack')
3555
- self._2026: _2015Pattern = _2015Pattern(client, 'dca_class_2026_stack')
3631
+ self.period_stack: _10y1m1w1y2y3m3y4y5y6m6y8yPattern3 = _10y1m1w1y2y3m3y4y5y6m6y8yPattern3(client, 'dca_stack')
3632
+ self.period_average_price: MetricsTree_Market_Dca_PeriodAveragePrice = MetricsTree_Market_Dca_PeriodAveragePrice(client)
3633
+ self.period_returns: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_returns')
3634
+ self.period_cagr: _10y2y3y4y5y6y8yPattern = _10y2y3y4y5y6y8yPattern(client, 'dca_cagr')
3635
+ self.period_days_in_profit: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredU32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_days_in_profit')
3636
+ self.period_days_in_loss: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredU32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_days_in_loss')
3637
+ self.period_min_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_min_return')
3638
+ self.period_max_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_max_return')
3639
+ self.period_lump_sum_stack: _10y1m1w1y2y3m3y4y5y6m6y8yPattern3 = _10y1m1w1y2y3m3y4y5y6m6y8yPattern3(client, 'lump_sum_stack')
3640
+ self.period_lump_sum_returns: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_returns')
3641
+ self.period_lump_sum_days_in_profit: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredU32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_days_in_profit')
3642
+ self.period_lump_sum_days_in_loss: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredU32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_days_in_loss')
3643
+ self.period_lump_sum_min_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_min_return')
3644
+ self.period_lump_sum_max_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_max_return')
3645
+ self.class_stack: MetricsTree_Market_Dca_ClassStack = MetricsTree_Market_Dca_ClassStack(client)
3646
+ self.class_average_price: MetricsTree_Market_Dca_ClassAveragePrice = MetricsTree_Market_Dca_ClassAveragePrice(client)
3647
+ self.class_returns: _201520162017201820192020202120222023202420252026Pattern2[StoredF32] = _201520162017201820192020202120222023202420252026Pattern2(client, 'dca_class')
3648
+ self.class_days_in_profit: MetricsTree_Market_Dca_ClassDaysInProfit = MetricsTree_Market_Dca_ClassDaysInProfit(client)
3649
+ self.class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss = MetricsTree_Market_Dca_ClassDaysInLoss(client)
3650
+ self.class_min_return: MetricsTree_Market_Dca_ClassMinReturn = MetricsTree_Market_Dca_ClassMinReturn(client)
3651
+ self.class_max_return: MetricsTree_Market_Dca_ClassMaxReturn = MetricsTree_Market_Dca_ClassMaxReturn(client)
3556
3652
 
3557
- class MetricsTree_Market_Dca_PeriodAveragePrice:
3653
+ class MetricsTree_Market_Indicators:
3654
+ """Metrics tree node."""
3655
+
3656
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3657
+ self.puell_multiple: MetricPattern4[StoredF32] = MetricPattern4(client, 'puell_multiple')
3658
+ self.nvt: MetricPattern4[StoredF32] = MetricPattern4(client, 'nvt')
3659
+ self.rsi_gains: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_gains')
3660
+ self.rsi_losses: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_losses')
3661
+ self.rsi_average_gain_14d: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_average_gain_14d')
3662
+ self.rsi_average_loss_14d: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_average_loss_14d')
3663
+ self.rsi_14d: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_14d')
3664
+ self.rsi_14d_min: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_14d_min')
3665
+ self.rsi_14d_max: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_14d_max')
3666
+ self.stoch_rsi: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi')
3667
+ self.stoch_rsi_k: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_k')
3668
+ self.stoch_rsi_d: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_d')
3669
+ self.stoch_k: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_k')
3670
+ self.stoch_d: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_d')
3671
+ self.pi_cycle: MetricPattern6[StoredF32] = MetricPattern6(client, 'pi_cycle')
3672
+ self.macd_line: MetricPattern6[StoredF32] = MetricPattern6(client, 'macd_line')
3673
+ self.macd_signal: MetricPattern6[StoredF32] = MetricPattern6(client, 'macd_signal')
3674
+ self.macd_histogram: MetricPattern6[StoredF32] = MetricPattern6(client, 'macd_histogram')
3675
+ self.gini: MetricPattern6[StoredF32] = MetricPattern6(client, 'gini')
3676
+
3677
+ class MetricsTree_Market:
3678
+ """Metrics tree node."""
3679
+
3680
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3681
+ self.ath: MetricsTree_Market_Ath = MetricsTree_Market_Ath(client)
3682
+ self.lookback: MetricsTree_Market_Lookback = MetricsTree_Market_Lookback(client)
3683
+ self.returns: MetricsTree_Market_Returns = MetricsTree_Market_Returns(client)
3684
+ self.volatility: MetricsTree_Market_Volatility = MetricsTree_Market_Volatility(client)
3685
+ self.range: MetricsTree_Market_Range = MetricsTree_Market_Range(client)
3686
+ self.moving_average: MetricsTree_Market_MovingAverage = MetricsTree_Market_MovingAverage(client)
3687
+ self.dca: MetricsTree_Market_Dca = MetricsTree_Market_Dca(client)
3688
+ self.indicators: MetricsTree_Market_Indicators = MetricsTree_Market_Indicators(client)
3689
+
3690
+ class MetricsTree_Pools_Vecs:
3691
+ """Metrics tree node."""
3692
+
3693
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3694
+ self.unknown: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'unknown')
3695
+ self.blockfills: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'blockfills')
3696
+ self.ultimuspool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ultimuspool')
3697
+ self.terrapool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'terrapool')
3698
+ self.luxor: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'luxor')
3699
+ self.onethash: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'onethash')
3700
+ self.btccom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btccom')
3701
+ self.bitfarms: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitfarms')
3702
+ self.huobipool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'huobipool')
3703
+ self.wayicn: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'wayicn')
3704
+ self.canoepool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'canoepool')
3705
+ self.btctop: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btctop')
3706
+ self.bitcoincom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoincom')
3707
+ self.pool175btc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'pool175btc')
3708
+ self.gbminers: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'gbminers')
3709
+ self.axbt: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'axbt')
3710
+ self.asicminer: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'asicminer')
3711
+ self.bitminter: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitminter')
3712
+ self.bitcoinrussia: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoinrussia')
3713
+ self.btcserv: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcserv')
3714
+ self.simplecoinus: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'simplecoinus')
3715
+ self.btcguild: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcguild')
3716
+ self.eligius: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'eligius')
3717
+ self.ozcoin: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ozcoin')
3718
+ self.eclipsemc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'eclipsemc')
3719
+ self.maxbtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'maxbtc')
3720
+ self.triplemining: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'triplemining')
3721
+ self.coinlab: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'coinlab')
3722
+ self.pool50btc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'pool50btc')
3723
+ self.ghashio: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ghashio')
3724
+ self.stminingcorp: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'stminingcorp')
3725
+ self.bitparking: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitparking')
3726
+ self.mmpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'mmpool')
3727
+ self.polmine: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'polmine')
3728
+ self.kncminer: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'kncminer')
3729
+ self.bitalo: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitalo')
3730
+ self.f2pool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'f2pool')
3731
+ self.hhtt: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hhtt')
3732
+ self.megabigpower: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'megabigpower')
3733
+ self.mtred: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'mtred')
3734
+ self.nmcbit: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'nmcbit')
3735
+ self.yourbtcnet: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'yourbtcnet')
3736
+ self.givemecoins: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'givemecoins')
3737
+ self.braiinspool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'braiinspool')
3738
+ self.antpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'antpool')
3739
+ self.multicoinco: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'multicoinco')
3740
+ self.bcpoolio: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bcpoolio')
3741
+ self.cointerra: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'cointerra')
3742
+ self.kanopool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'kanopool')
3743
+ self.solock: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'solock')
3744
+ self.ckpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ckpool')
3745
+ self.nicehash: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'nicehash')
3746
+ self.bitclub: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitclub')
3747
+ self.bitcoinaffiliatenetwork: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoinaffiliatenetwork')
3748
+ self.btcc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcc')
3749
+ self.bwpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bwpool')
3750
+ self.exxbw: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'exxbw')
3751
+ self.bitsolo: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitsolo')
3752
+ self.bitfury: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitfury')
3753
+ self.twentyoneinc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'twentyoneinc')
3754
+ self.digitalbtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'digitalbtc')
3755
+ self.eightbaochi: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'eightbaochi')
3756
+ self.mybtccoinpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'mybtccoinpool')
3757
+ self.tbdice: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tbdice')
3758
+ self.hashpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hashpool')
3759
+ self.nexious: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'nexious')
3760
+ self.bravomining: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bravomining')
3761
+ self.hotpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hotpool')
3762
+ self.okexpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'okexpool')
3763
+ self.bcmonster: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bcmonster')
3764
+ self.onehash: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'onehash')
3765
+ self.bixin: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bixin')
3766
+ self.tatmaspool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tatmaspool')
3767
+ self.viabtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'viabtc')
3768
+ self.connectbtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'connectbtc')
3769
+ self.batpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'batpool')
3770
+ self.waterhole: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'waterhole')
3771
+ self.dcexploration: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'dcexploration')
3772
+ self.dcex: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'dcex')
3773
+ self.btpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btpool')
3774
+ self.fiftyeightcoin: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'fiftyeightcoin')
3775
+ self.bitcoinindia: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoinindia')
3776
+ self.shawnp0wers: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'shawnp0wers')
3777
+ self.phashio: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'phashio')
3778
+ self.rigpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'rigpool')
3779
+ self.haozhuzhu: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'haozhuzhu')
3780
+ self.sevenpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'sevenpool')
3781
+ self.miningkings: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'miningkings')
3782
+ self.hashbx: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hashbx')
3783
+ self.dpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'dpool')
3784
+ self.rawpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'rawpool')
3785
+ self.haominer: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'haominer')
3786
+ self.helix: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'helix')
3787
+ self.bitcoinukraine: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoinukraine')
3788
+ self.poolin: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'poolin')
3789
+ self.secretsuperstar: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'secretsuperstar')
3790
+ self.tigerpoolnet: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tigerpoolnet')
3791
+ self.sigmapoolcom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'sigmapoolcom')
3792
+ self.okpooltop: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'okpooltop')
3793
+ self.hummerpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hummerpool')
3794
+ self.tangpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tangpool')
3795
+ self.bytepool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bytepool')
3796
+ self.spiderpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'spiderpool')
3797
+ self.novablock: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'novablock')
3798
+ self.miningcity: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'miningcity')
3799
+ self.binancepool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'binancepool')
3800
+ self.minerium: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'minerium')
3801
+ self.lubiancom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'lubiancom')
3802
+ self.okkong: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'okkong')
3803
+ self.aaopool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'aaopool')
3804
+ self.emcdpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'emcdpool')
3805
+ self.foundryusa: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'foundryusa')
3806
+ self.sbicrypto: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'sbicrypto')
3807
+ self.arkpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'arkpool')
3808
+ self.purebtccom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'purebtccom')
3809
+ self.marapool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'marapool')
3810
+ self.kucoinpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'kucoinpool')
3811
+ self.entrustcharitypool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'entrustcharitypool')
3812
+ self.okminer: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'okminer')
3813
+ self.titan: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'titan')
3814
+ self.pegapool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'pegapool')
3815
+ self.btcnuggets: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcnuggets')
3816
+ self.cloudhashing: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'cloudhashing')
3817
+ self.digitalxmintsy: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'digitalxmintsy')
3818
+ self.telco214: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'telco214')
3819
+ self.btcpoolparty: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcpoolparty')
3820
+ self.multipool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'multipool')
3821
+ self.transactioncoinmining: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'transactioncoinmining')
3822
+ self.btcdig: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcdig')
3823
+ self.trickysbtcpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'trickysbtcpool')
3824
+ self.btcmp: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcmp')
3825
+ self.eobot: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'eobot')
3826
+ self.unomp: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'unomp')
3827
+ self.patels: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'patels')
3828
+ self.gogreenlight: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'gogreenlight')
3829
+ self.ekanembtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ekanembtc')
3830
+ self.canoe: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'canoe')
3831
+ self.tiger: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tiger')
3832
+ self.onem1x: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'onem1x')
3833
+ self.zulupool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'zulupool')
3834
+ self.secpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'secpool')
3835
+ self.ocean: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ocean')
3836
+ self.whitepool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'whitepool')
3837
+ self.wk057: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'wk057')
3838
+ self.futurebitapollosolo: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'futurebitapollosolo')
3839
+ self.carbonnegative: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'carbonnegative')
3840
+ self.portlandhodl: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'portlandhodl')
3841
+ self.phoenix: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'phoenix')
3842
+ self.neopool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'neopool')
3843
+ self.maxipool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'maxipool')
3844
+ self.bitfufupool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitfufupool')
3845
+ self.luckypool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'luckypool')
3846
+ self.miningdutch: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'miningdutch')
3847
+ self.publicpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'publicpool')
3848
+ self.miningsquared: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'miningsquared')
3849
+ self.innopolistech: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'innopolistech')
3850
+ self.btclab: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btclab')
3851
+ self.parasite: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'parasite')
3852
+
3853
+ class MetricsTree_Pools:
3558
3854
  """Metrics tree node."""
3559
3855
 
3560
3856
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3561
- self._10y: _0sdUsdPattern = _0sdUsdPattern(client, '10y_dca_average_price')
3562
- self._1m: _0sdUsdPattern = _0sdUsdPattern(client, '1m_dca_average_price')
3563
- self._1w: _0sdUsdPattern = _0sdUsdPattern(client, '1w_dca_average_price')
3564
- self._1y: _0sdUsdPattern = _0sdUsdPattern(client, '1y_dca_average_price')
3565
- self._2y: _0sdUsdPattern = _0sdUsdPattern(client, '2y_dca_average_price')
3566
- self._3m: _0sdUsdPattern = _0sdUsdPattern(client, '3m_dca_average_price')
3567
- self._3y: _0sdUsdPattern = _0sdUsdPattern(client, '3y_dca_average_price')
3568
- self._4y: _0sdUsdPattern = _0sdUsdPattern(client, '4y_dca_average_price')
3569
- self._5y: _0sdUsdPattern = _0sdUsdPattern(client, '5y_dca_average_price')
3570
- self._6m: _0sdUsdPattern = _0sdUsdPattern(client, '6m_dca_average_price')
3571
- self._6y: _0sdUsdPattern = _0sdUsdPattern(client, '6y_dca_average_price')
3572
- self._8y: _0sdUsdPattern = _0sdUsdPattern(client, '8y_dca_average_price')
3857
+ self.height_to_pool: MetricPattern11[PoolSlug] = MetricPattern11(client, 'pool')
3858
+ self.vecs: MetricsTree_Pools_Vecs = MetricsTree_Pools_Vecs(client)
3573
3859
 
3574
- class MetricsTree_Market_Dca:
3860
+ class MetricsTree_Price_Cents_Split:
3575
3861
  """Metrics tree node."""
3576
3862
 
3577
3863
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3578
- self.class_average_price: MetricsTree_Market_Dca_ClassAveragePrice = MetricsTree_Market_Dca_ClassAveragePrice(client)
3579
- self.class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss = MetricsTree_Market_Dca_ClassDaysInLoss(client)
3580
- self.class_days_in_profit: MetricsTree_Market_Dca_ClassDaysInProfit = MetricsTree_Market_Dca_ClassDaysInProfit(client)
3581
- self.class_max_drawdown: MetricsTree_Market_Dca_ClassMaxDrawdown = MetricsTree_Market_Dca_ClassMaxDrawdown(client)
3582
- self.class_max_return: MetricsTree_Market_Dca_ClassMaxReturn = MetricsTree_Market_Dca_ClassMaxReturn(client)
3583
- self.class_returns: ClassDaysInLossPattern[StoredF32] = ClassDaysInLossPattern(client, 'dca_class')
3584
- self.class_stack: MetricsTree_Market_Dca_ClassStack = MetricsTree_Market_Dca_ClassStack(client)
3585
- self.period_average_price: MetricsTree_Market_Dca_PeriodAveragePrice = MetricsTree_Market_Dca_PeriodAveragePrice(client)
3586
- self.period_cagr: PeriodCagrPattern = PeriodCagrPattern(client, 'dca_cagr')
3587
- self.period_days_in_loss: PeriodDaysInLossPattern[StoredU32] = PeriodDaysInLossPattern(client, 'dca_days_in_loss')
3588
- self.period_days_in_profit: PeriodDaysInLossPattern[StoredU32] = PeriodDaysInLossPattern(client, 'dca_days_in_profit')
3589
- self.period_lump_sum_days_in_loss: PeriodDaysInLossPattern[StoredU32] = PeriodDaysInLossPattern(client, 'lump_sum_days_in_loss')
3590
- self.period_lump_sum_days_in_profit: PeriodDaysInLossPattern[StoredU32] = PeriodDaysInLossPattern(client, 'lump_sum_days_in_profit')
3591
- self.period_lump_sum_max_drawdown: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'lump_sum_max_drawdown')
3592
- self.period_lump_sum_max_return: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'lump_sum_max_return')
3593
- self.period_lump_sum_returns: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'lump_sum_returns')
3594
- self.period_lump_sum_stack: PeriodLumpSumStackPattern = PeriodLumpSumStackPattern(client, 'lump_sum_stack')
3595
- self.period_max_drawdown: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'dca_max_drawdown')
3596
- self.period_max_return: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'dca_max_return')
3597
- self.period_returns: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'dca_returns')
3598
- self.period_stack: PeriodLumpSumStackPattern = PeriodLumpSumStackPattern(client, 'dca_stack')
3864
+ self.open: MetricPattern5[CentsUnsigned] = MetricPattern5(client, 'price_open_cents')
3865
+ self.high: MetricPattern5[CentsUnsigned] = MetricPattern5(client, 'price_high_cents')
3866
+ self.low: MetricPattern5[CentsUnsigned] = MetricPattern5(client, 'price_low_cents')
3867
+ self.close: MetricPattern5[CentsUnsigned] = MetricPattern5(client, 'price_close_cents')
3599
3868
 
3600
- class MetricsTree_Market_Indicators:
3869
+ class MetricsTree_Price_Cents:
3601
3870
  """Metrics tree node."""
3602
3871
 
3603
3872
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3604
- self.gini: MetricPattern6[StoredF32] = MetricPattern6(client, 'gini')
3605
- self.macd_histogram: MetricPattern6[StoredF32] = MetricPattern6(client, 'macd_histogram')
3606
- self.macd_line: MetricPattern6[StoredF32] = MetricPattern6(client, 'macd_line')
3607
- self.macd_signal: MetricPattern6[StoredF32] = MetricPattern6(client, 'macd_signal')
3608
- self.nvt: MetricPattern4[StoredF32] = MetricPattern4(client, 'nvt')
3609
- self.pi_cycle: MetricPattern6[StoredF32] = MetricPattern6(client, 'pi_cycle')
3610
- self.puell_multiple: MetricPattern4[StoredF32] = MetricPattern4(client, 'puell_multiple')
3611
- self.rsi_14d: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_14d')
3612
- self.rsi_14d_max: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_14d_max')
3613
- self.rsi_14d_min: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_14d_min')
3614
- self.rsi_average_gain_14d: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_average_gain_14d')
3615
- self.rsi_average_loss_14d: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_average_loss_14d')
3616
- self.rsi_gains: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_gains')
3617
- self.rsi_losses: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_losses')
3618
- self.stoch_d: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_d')
3619
- self.stoch_k: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_k')
3620
- self.stoch_rsi: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi')
3621
- self.stoch_rsi_d: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_d')
3622
- self.stoch_rsi_k: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_k')
3873
+ self.split: MetricsTree_Price_Cents_Split = MetricsTree_Price_Cents_Split(client)
3874
+ self.ohlc: MetricPattern5[OHLCCentsUnsigned] = MetricPattern5(client, 'ohlc_cents')
3623
3875
 
3624
- class MetricsTree_Market_Lookback:
3876
+ class MetricsTree_Price_Usd:
3625
3877
  """Metrics tree node."""
3626
3878
 
3627
3879
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3628
- self._10y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_10y_ago')
3629
- self._1d: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1d_ago')
3630
- self._1m: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1m_ago')
3631
- self._1w: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1w_ago')
3632
- self._1y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1y_ago')
3633
- self._2y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_2y_ago')
3634
- self._3m: _0sdUsdPattern = _0sdUsdPattern(client, 'price_3m_ago')
3635
- self._3y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_3y_ago')
3636
- self._4y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_4y_ago')
3637
- self._5y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_5y_ago')
3638
- self._6m: _0sdUsdPattern = _0sdUsdPattern(client, 'price_6m_ago')
3639
- self._6y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_6y_ago')
3640
- self._8y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_8y_ago')
3880
+ self.split: CloseHighLowOpenPattern2[Dollars] = CloseHighLowOpenPattern2(client, 'price')
3881
+ self.ohlc: MetricPattern1[OHLCDollars] = MetricPattern1(client, 'price_ohlc')
3641
3882
 
3642
- class MetricsTree_Market_MovingAverage:
3883
+ class MetricsTree_Price:
3643
3884
  """Metrics tree node."""
3644
3885
 
3645
3886
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3646
- self.price_111d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_111d_sma')
3647
- self.price_12d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_12d_ema')
3648
- self.price_13d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_13d_ema')
3649
- self.price_13d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_13d_sma')
3650
- self.price_144d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_144d_ema')
3651
- self.price_144d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_144d_sma')
3652
- self.price_1m_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_1m_ema')
3653
- self.price_1m_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_1m_sma')
3654
- self.price_1w_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_1w_ema')
3655
- self.price_1w_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_1w_sma')
3656
- self.price_1y_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_1y_ema')
3657
- self.price_1y_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_1y_sma')
3658
- self.price_200d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200d_ema')
3659
- self.price_200d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200d_sma')
3660
- self.price_200d_sma_x0_8: _0sdUsdPattern = _0sdUsdPattern(client, 'price_200d_sma_x0_8')
3661
- self.price_200d_sma_x2_4: _0sdUsdPattern = _0sdUsdPattern(client, 'price_200d_sma_x2_4')
3662
- self.price_200w_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200w_ema')
3663
- self.price_200w_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200w_sma')
3664
- self.price_21d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_21d_ema')
3665
- self.price_21d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_21d_sma')
3666
- self.price_26d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_26d_ema')
3667
- self.price_2y_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_2y_ema')
3668
- self.price_2y_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_2y_sma')
3669
- self.price_34d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_34d_ema')
3670
- self.price_34d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_34d_sma')
3671
- self.price_350d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_350d_sma')
3672
- self.price_350d_sma_x2: _0sdUsdPattern = _0sdUsdPattern(client, 'price_350d_sma_x2')
3673
- self.price_4y_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_4y_ema')
3674
- self.price_4y_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_4y_sma')
3675
- self.price_55d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_55d_ema')
3676
- self.price_55d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_55d_sma')
3677
- self.price_89d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_89d_ema')
3678
- self.price_89d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_89d_sma')
3679
- self.price_8d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_8d_ema')
3680
- self.price_8d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_8d_sma')
3887
+ self.cents: MetricsTree_Price_Cents = MetricsTree_Price_Cents(client)
3888
+ self.usd: MetricsTree_Price_Usd = MetricsTree_Price_Usd(client)
3889
+ self.sats: OhlcSplitPattern2[OHLCSats] = OhlcSplitPattern2(client, 'price')
3681
3890
 
3682
- class MetricsTree_Market_Range:
3891
+ class MetricsTree_Distribution_AnyAddressIndexes:
3683
3892
  """Metrics tree node."""
3684
3893
 
3685
3894
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3686
- self.price_1m_max: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1m_max')
3687
- self.price_1m_min: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1m_min')
3688
- self.price_1w_max: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1w_max')
3689
- self.price_1w_min: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1w_min')
3690
- self.price_1y_max: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1y_max')
3691
- self.price_1y_min: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1y_min')
3692
- self.price_2w_choppiness_index: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_2w_choppiness_index')
3693
- self.price_2w_max: _0sdUsdPattern = _0sdUsdPattern(client, 'price_2w_max')
3694
- self.price_2w_min: _0sdUsdPattern = _0sdUsdPattern(client, 'price_2w_min')
3695
- self.price_true_range: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range')
3696
- self.price_true_range_2w_sum: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range_2w_sum')
3895
+ self.p2a: MetricPattern16[AnyAddressIndex] = MetricPattern16(client, 'anyaddressindex')
3896
+ self.p2pk33: MetricPattern18[AnyAddressIndex] = MetricPattern18(client, 'anyaddressindex')
3897
+ self.p2pk65: MetricPattern19[AnyAddressIndex] = MetricPattern19(client, 'anyaddressindex')
3898
+ self.p2pkh: MetricPattern20[AnyAddressIndex] = MetricPattern20(client, 'anyaddressindex')
3899
+ self.p2sh: MetricPattern21[AnyAddressIndex] = MetricPattern21(client, 'anyaddressindex')
3900
+ self.p2tr: MetricPattern22[AnyAddressIndex] = MetricPattern22(client, 'anyaddressindex')
3901
+ self.p2wpkh: MetricPattern23[AnyAddressIndex] = MetricPattern23(client, 'anyaddressindex')
3902
+ self.p2wsh: MetricPattern24[AnyAddressIndex] = MetricPattern24(client, 'anyaddressindex')
3697
3903
 
3698
- class MetricsTree_Market_Returns_PriceReturns:
3904
+ class MetricsTree_Distribution_AddressesData:
3699
3905
  """Metrics tree node."""
3700
3906
 
3701
3907
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3702
- self._10y: MetricPattern4[StoredF32] = MetricPattern4(client, '10y_price_returns')
3703
- self._1d: MetricPattern4[StoredF32] = MetricPattern4(client, '1d_price_returns')
3704
- self._1m: MetricPattern4[StoredF32] = MetricPattern4(client, '1m_price_returns')
3705
- self._1w: MetricPattern4[StoredF32] = MetricPattern4(client, '1w_price_returns')
3706
- self._1y: MetricPattern4[StoredF32] = MetricPattern4(client, '1y_price_returns')
3707
- self._2y: MetricPattern4[StoredF32] = MetricPattern4(client, '2y_price_returns')
3708
- self._3m: MetricPattern4[StoredF32] = MetricPattern4(client, '3m_price_returns')
3709
- self._3y: MetricPattern4[StoredF32] = MetricPattern4(client, '3y_price_returns')
3710
- self._4y: MetricPattern4[StoredF32] = MetricPattern4(client, '4y_price_returns')
3711
- self._5y: MetricPattern4[StoredF32] = MetricPattern4(client, '5y_price_returns')
3712
- self._6m: MetricPattern4[StoredF32] = MetricPattern4(client, '6m_price_returns')
3713
- self._6y: MetricPattern4[StoredF32] = MetricPattern4(client, '6y_price_returns')
3714
- self._8y: MetricPattern4[StoredF32] = MetricPattern4(client, '8y_price_returns')
3908
+ self.funded: MetricPattern31[FundedAddressData] = MetricPattern31(client, 'fundedaddressdata')
3909
+ self.empty: MetricPattern32[EmptyAddressData] = MetricPattern32(client, 'emptyaddressdata')
3715
3910
 
3716
- class MetricsTree_Market_Returns:
3911
+ class MetricsTree_Distribution_UtxoCohorts_All_Relative:
3717
3912
  """Metrics tree node."""
3718
3913
 
3719
3914
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3720
- self._1d_returns_1m_sd: _1dReturns1mSdPattern = _1dReturns1mSdPattern(client, '1d_returns_1m_sd')
3721
- self._1d_returns_1w_sd: _1dReturns1mSdPattern = _1dReturns1mSdPattern(client, '1d_returns_1w_sd')
3722
- self._1d_returns_1y_sd: _1dReturns1mSdPattern = _1dReturns1mSdPattern(client, '1d_returns_1y_sd')
3723
- self.cagr: PeriodCagrPattern = PeriodCagrPattern(client, 'cagr')
3724
- self.downside_1m_sd: _1dReturns1mSdPattern = _1dReturns1mSdPattern(client, 'downside_1m_sd')
3725
- self.downside_1w_sd: _1dReturns1mSdPattern = _1dReturns1mSdPattern(client, 'downside_1w_sd')
3726
- self.downside_1y_sd: _1dReturns1mSdPattern = _1dReturns1mSdPattern(client, 'downside_1y_sd')
3727
- self.downside_returns: MetricPattern6[StoredF32] = MetricPattern6(client, 'downside_returns')
3728
- self.price_returns: MetricsTree_Market_Returns_PriceReturns = MetricsTree_Market_Returns_PriceReturns(client)
3915
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, 'supply_in_profit_rel_to_own_supply')
3916
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, 'supply_in_loss_rel_to_own_supply')
3917
+ self.unrealized_profit_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_profit_rel_to_market_cap')
3918
+ self.unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_loss_rel_to_market_cap')
3919
+ self.neg_unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, 'neg_unrealized_loss_rel_to_market_cap')
3920
+ self.net_unrealized_pnl_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, 'net_unrealized_pnl_rel_to_market_cap')
3921
+ self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, 'nupl')
3922
+ self.unrealized_profit_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_profit_rel_to_own_total_unrealized_pnl')
3923
+ self.unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_loss_rel_to_own_total_unrealized_pnl')
3924
+ self.neg_unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'neg_unrealized_loss_rel_to_own_total_unrealized_pnl')
3925
+ self.net_unrealized_pnl_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'net_unrealized_pnl_rel_to_own_total_unrealized_pnl')
3926
+ self.invested_capital_in_profit_pct: MetricPattern1[StoredF32] = MetricPattern1(client, 'invested_capital_in_profit_pct')
3927
+ self.invested_capital_in_loss_pct: MetricPattern1[StoredF32] = MetricPattern1(client, 'invested_capital_in_loss_pct')
3928
+ self.unrealized_peak_regret_rel_to_market_cap: MetricPattern4[StoredF32] = MetricPattern4(client, 'unrealized_peak_regret_rel_to_market_cap')
3729
3929
 
3730
- class MetricsTree_Market_Volatility:
3930
+ class MetricsTree_Distribution_UtxoCohorts_All:
3731
3931
  """Metrics tree node."""
3732
3932
 
3733
3933
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3734
- self.price_1m_volatility: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_1m_volatility')
3735
- self.price_1w_volatility: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_1w_volatility')
3736
- self.price_1y_volatility: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_1y_volatility')
3737
- self.sharpe_1m: MetricPattern6[StoredF32] = MetricPattern6(client, 'sharpe_1m')
3738
- self.sharpe_1w: MetricPattern6[StoredF32] = MetricPattern6(client, 'sharpe_1w')
3739
- self.sharpe_1y: MetricPattern6[StoredF32] = MetricPattern6(client, 'sharpe_1y')
3740
- self.sortino_1m: MetricPattern6[StoredF32] = MetricPattern6(client, 'sortino_1m')
3741
- self.sortino_1w: MetricPattern6[StoredF32] = MetricPattern6(client, 'sortino_1w')
3742
- self.sortino_1y: MetricPattern6[StoredF32] = MetricPattern6(client, 'sortino_1y')
3934
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, '')
3935
+ self.outputs: UtxoPattern = UtxoPattern(client, 'utxo_count')
3936
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, '')
3937
+ self.realized: AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, '')
3938
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, '')
3939
+ self.cost_basis: InvestedMaxMinPercentilesSpotPattern = InvestedMaxMinPercentilesSpotPattern(client, '')
3940
+ self.relative: MetricsTree_Distribution_UtxoCohorts_All_Relative = MetricsTree_Distribution_UtxoCohorts_All_Relative(client)
3743
3941
 
3744
- class MetricsTree_Market:
3942
+ class MetricsTree_Distribution_UtxoCohorts_AgeRange:
3745
3943
  """Metrics tree node."""
3746
3944
 
3747
3945
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3748
- self.ath: MetricsTree_Market_Ath = MetricsTree_Market_Ath(client)
3749
- self.dca: MetricsTree_Market_Dca = MetricsTree_Market_Dca(client)
3750
- self.indicators: MetricsTree_Market_Indicators = MetricsTree_Market_Indicators(client)
3751
- self.lookback: MetricsTree_Market_Lookback = MetricsTree_Market_Lookback(client)
3752
- self.moving_average: MetricsTree_Market_MovingAverage = MetricsTree_Market_MovingAverage(client)
3753
- self.range: MetricsTree_Market_Range = MetricsTree_Market_Range(client)
3754
- self.returns: MetricsTree_Market_Returns = MetricsTree_Market_Returns(client)
3755
- self.volatility: MetricsTree_Market_Volatility = MetricsTree_Market_Volatility(client)
3946
+ self.up_to_1h: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_1h_old')
3947
+ self._1h_to_1d: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1h_to_1d_old')
3948
+ self._1d_to_1w: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1d_to_1w_old')
3949
+ self._1w_to_1m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1w_to_1m_old')
3950
+ self._1m_to_2m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1m_to_2m_old')
3951
+ self._2m_to_3m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_2m_to_3m_old')
3952
+ self._3m_to_4m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_3m_to_4m_old')
3953
+ self._4m_to_5m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_4m_to_5m_old')
3954
+ self._5m_to_6m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_5m_to_6m_old')
3955
+ self._6m_to_1y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_6m_to_1y_old')
3956
+ self._1y_to_2y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1y_to_2y_old')
3957
+ self._2y_to_3y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_2y_to_3y_old')
3958
+ self._3y_to_4y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_3y_to_4y_old')
3959
+ self._4y_to_5y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_4y_to_5y_old')
3960
+ self._5y_to_6y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_5y_to_6y_old')
3961
+ self._6y_to_7y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_6y_to_7y_old')
3962
+ self._7y_to_8y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_7y_to_8y_old')
3963
+ self._8y_to_10y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_8y_to_10y_old')
3964
+ self._10y_to_12y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_10y_to_12y_old')
3965
+ self._12y_to_15y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_12y_to_15y_old')
3966
+ self.from_15y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_15y_old')
3756
3967
 
3757
- class MetricsTree_Outputs_Count:
3968
+ class MetricsTree_Distribution_UtxoCohorts_Epoch:
3758
3969
  """Metrics tree node."""
3759
3970
 
3760
3971
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3761
- self.total_count: CountPattern2[StoredU64] = CountPattern2(client, 'output_count')
3762
- self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, 'exact_utxo_count')
3972
+ self._0: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_0')
3973
+ self._1: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_1')
3974
+ self._2: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_2')
3975
+ self._3: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_3')
3976
+ self._4: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_4')
3763
3977
 
3764
- class MetricsTree_Outputs_Spent:
3978
+ class MetricsTree_Distribution_UtxoCohorts_Year:
3765
3979
  """Metrics tree node."""
3766
3980
 
3767
3981
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3768
- self.txinindex: MetricPattern15[TxInIndex] = MetricPattern15(client, 'txinindex')
3982
+ self._2009: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2009')
3983
+ self._2010: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2010')
3984
+ self._2011: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2011')
3985
+ self._2012: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2012')
3986
+ self._2013: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2013')
3987
+ self._2014: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2014')
3988
+ self._2015: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2015')
3989
+ self._2016: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2016')
3990
+ self._2017: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2017')
3991
+ self._2018: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2018')
3992
+ self._2019: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2019')
3993
+ self._2020: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2020')
3994
+ self._2021: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2021')
3995
+ self._2022: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2022')
3996
+ self._2023: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2023')
3997
+ self._2024: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2024')
3998
+ self._2025: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2025')
3999
+ self._2026: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2026')
3769
4000
 
3770
- class MetricsTree_Outputs:
4001
+ class MetricsTree_Distribution_UtxoCohorts_MinAge:
3771
4002
  """Metrics tree node."""
3772
4003
 
3773
4004
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3774
- self.count: MetricsTree_Outputs_Count = MetricsTree_Outputs_Count(client)
3775
- self.first_txoutindex: MetricPattern11[TxOutIndex] = MetricPattern11(client, 'first_txoutindex')
3776
- self.outputtype: MetricPattern15[OutputType] = MetricPattern15(client, 'outputtype')
3777
- self.spent: MetricsTree_Outputs_Spent = MetricsTree_Outputs_Spent(client)
3778
- self.txindex: MetricPattern15[TxIndex] = MetricPattern15(client, 'txindex')
3779
- self.typeindex: MetricPattern15[TypeIndex] = MetricPattern15(client, 'typeindex')
3780
- self.value: MetricPattern15[Sats] = MetricPattern15(client, 'value')
4005
+ self._1d: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_1d_old')
4006
+ self._1w: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_1w_old')
4007
+ self._1m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_1m_old')
4008
+ self._2m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_2m_old')
4009
+ self._3m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_3m_old')
4010
+ self._4m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_4m_old')
4011
+ self._5m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_5m_old')
4012
+ self._6m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_6m_old')
4013
+ self._1y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_1y_old')
4014
+ self._2y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_2y_old')
4015
+ self._3y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_3y_old')
4016
+ self._4y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_4y_old')
4017
+ self._5y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_5y_old')
4018
+ self._6y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_6y_old')
4019
+ self._7y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_7y_old')
4020
+ self._8y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_8y_old')
4021
+ self._10y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_10y_old')
4022
+ self._12y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_12y_old')
3781
4023
 
3782
- class MetricsTree_Pools_Vecs:
4024
+ class MetricsTree_Distribution_UtxoCohorts_GeAmount:
3783
4025
  """Metrics tree node."""
3784
4026
 
3785
4027
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3786
- self.aaopool: AaopoolPattern = AaopoolPattern(client, 'aaopool')
3787
- self.antpool: AaopoolPattern = AaopoolPattern(client, 'antpool')
3788
- self.arkpool: AaopoolPattern = AaopoolPattern(client, 'arkpool')
3789
- self.asicminer: AaopoolPattern = AaopoolPattern(client, 'asicminer')
3790
- self.axbt: AaopoolPattern = AaopoolPattern(client, 'axbt')
3791
- self.batpool: AaopoolPattern = AaopoolPattern(client, 'batpool')
3792
- self.bcmonster: AaopoolPattern = AaopoolPattern(client, 'bcmonster')
3793
- self.bcpoolio: AaopoolPattern = AaopoolPattern(client, 'bcpoolio')
3794
- self.binancepool: AaopoolPattern = AaopoolPattern(client, 'binancepool')
3795
- self.bitalo: AaopoolPattern = AaopoolPattern(client, 'bitalo')
3796
- self.bitclub: AaopoolPattern = AaopoolPattern(client, 'bitclub')
3797
- self.bitcoinaffiliatenetwork: AaopoolPattern = AaopoolPattern(client, 'bitcoinaffiliatenetwork')
3798
- self.bitcoincom: AaopoolPattern = AaopoolPattern(client, 'bitcoincom')
3799
- self.bitcoinindia: AaopoolPattern = AaopoolPattern(client, 'bitcoinindia')
3800
- self.bitcoinrussia: AaopoolPattern = AaopoolPattern(client, 'bitcoinrussia')
3801
- self.bitcoinukraine: AaopoolPattern = AaopoolPattern(client, 'bitcoinukraine')
3802
- self.bitfarms: AaopoolPattern = AaopoolPattern(client, 'bitfarms')
3803
- self.bitfufupool: AaopoolPattern = AaopoolPattern(client, 'bitfufupool')
3804
- self.bitfury: AaopoolPattern = AaopoolPattern(client, 'bitfury')
3805
- self.bitminter: AaopoolPattern = AaopoolPattern(client, 'bitminter')
3806
- self.bitparking: AaopoolPattern = AaopoolPattern(client, 'bitparking')
3807
- self.bitsolo: AaopoolPattern = AaopoolPattern(client, 'bitsolo')
3808
- self.bixin: AaopoolPattern = AaopoolPattern(client, 'bixin')
3809
- self.blockfills: AaopoolPattern = AaopoolPattern(client, 'blockfills')
3810
- self.braiinspool: AaopoolPattern = AaopoolPattern(client, 'braiinspool')
3811
- self.bravomining: AaopoolPattern = AaopoolPattern(client, 'bravomining')
3812
- self.btcc: AaopoolPattern = AaopoolPattern(client, 'btcc')
3813
- self.btccom: AaopoolPattern = AaopoolPattern(client, 'btccom')
3814
- self.btcdig: AaopoolPattern = AaopoolPattern(client, 'btcdig')
3815
- self.btcguild: AaopoolPattern = AaopoolPattern(client, 'btcguild')
3816
- self.btclab: AaopoolPattern = AaopoolPattern(client, 'btclab')
3817
- self.btcmp: AaopoolPattern = AaopoolPattern(client, 'btcmp')
3818
- self.btcnuggets: AaopoolPattern = AaopoolPattern(client, 'btcnuggets')
3819
- self.btcpoolparty: AaopoolPattern = AaopoolPattern(client, 'btcpoolparty')
3820
- self.btcserv: AaopoolPattern = AaopoolPattern(client, 'btcserv')
3821
- self.btctop: AaopoolPattern = AaopoolPattern(client, 'btctop')
3822
- self.btpool: AaopoolPattern = AaopoolPattern(client, 'btpool')
3823
- self.bwpool: AaopoolPattern = AaopoolPattern(client, 'bwpool')
3824
- self.bytepool: AaopoolPattern = AaopoolPattern(client, 'bytepool')
3825
- self.canoe: AaopoolPattern = AaopoolPattern(client, 'canoe')
3826
- self.canoepool: AaopoolPattern = AaopoolPattern(client, 'canoepool')
3827
- self.carbonnegative: AaopoolPattern = AaopoolPattern(client, 'carbonnegative')
3828
- self.ckpool: AaopoolPattern = AaopoolPattern(client, 'ckpool')
3829
- self.cloudhashing: AaopoolPattern = AaopoolPattern(client, 'cloudhashing')
3830
- self.coinlab: AaopoolPattern = AaopoolPattern(client, 'coinlab')
3831
- self.cointerra: AaopoolPattern = AaopoolPattern(client, 'cointerra')
3832
- self.connectbtc: AaopoolPattern = AaopoolPattern(client, 'connectbtc')
3833
- self.dcex: AaopoolPattern = AaopoolPattern(client, 'dcex')
3834
- self.dcexploration: AaopoolPattern = AaopoolPattern(client, 'dcexploration')
3835
- self.digitalbtc: AaopoolPattern = AaopoolPattern(client, 'digitalbtc')
3836
- self.digitalxmintsy: AaopoolPattern = AaopoolPattern(client, 'digitalxmintsy')
3837
- self.dpool: AaopoolPattern = AaopoolPattern(client, 'dpool')
3838
- self.eclipsemc: AaopoolPattern = AaopoolPattern(client, 'eclipsemc')
3839
- self.eightbaochi: AaopoolPattern = AaopoolPattern(client, 'eightbaochi')
3840
- self.ekanembtc: AaopoolPattern = AaopoolPattern(client, 'ekanembtc')
3841
- self.eligius: AaopoolPattern = AaopoolPattern(client, 'eligius')
3842
- self.emcdpool: AaopoolPattern = AaopoolPattern(client, 'emcdpool')
3843
- self.entrustcharitypool: AaopoolPattern = AaopoolPattern(client, 'entrustcharitypool')
3844
- self.eobot: AaopoolPattern = AaopoolPattern(client, 'eobot')
3845
- self.exxbw: AaopoolPattern = AaopoolPattern(client, 'exxbw')
3846
- self.f2pool: AaopoolPattern = AaopoolPattern(client, 'f2pool')
3847
- self.fiftyeightcoin: AaopoolPattern = AaopoolPattern(client, 'fiftyeightcoin')
3848
- self.foundryusa: AaopoolPattern = AaopoolPattern(client, 'foundryusa')
3849
- self.futurebitapollosolo: AaopoolPattern = AaopoolPattern(client, 'futurebitapollosolo')
3850
- self.gbminers: AaopoolPattern = AaopoolPattern(client, 'gbminers')
3851
- self.ghashio: AaopoolPattern = AaopoolPattern(client, 'ghashio')
3852
- self.givemecoins: AaopoolPattern = AaopoolPattern(client, 'givemecoins')
3853
- self.gogreenlight: AaopoolPattern = AaopoolPattern(client, 'gogreenlight')
3854
- self.haominer: AaopoolPattern = AaopoolPattern(client, 'haominer')
3855
- self.haozhuzhu: AaopoolPattern = AaopoolPattern(client, 'haozhuzhu')
3856
- self.hashbx: AaopoolPattern = AaopoolPattern(client, 'hashbx')
3857
- self.hashpool: AaopoolPattern = AaopoolPattern(client, 'hashpool')
3858
- self.helix: AaopoolPattern = AaopoolPattern(client, 'helix')
3859
- self.hhtt: AaopoolPattern = AaopoolPattern(client, 'hhtt')
3860
- self.hotpool: AaopoolPattern = AaopoolPattern(client, 'hotpool')
3861
- self.hummerpool: AaopoolPattern = AaopoolPattern(client, 'hummerpool')
3862
- self.huobipool: AaopoolPattern = AaopoolPattern(client, 'huobipool')
3863
- self.innopolistech: AaopoolPattern = AaopoolPattern(client, 'innopolistech')
3864
- self.kanopool: AaopoolPattern = AaopoolPattern(client, 'kanopool')
3865
- self.kncminer: AaopoolPattern = AaopoolPattern(client, 'kncminer')
3866
- self.kucoinpool: AaopoolPattern = AaopoolPattern(client, 'kucoinpool')
3867
- self.lubiancom: AaopoolPattern = AaopoolPattern(client, 'lubiancom')
3868
- self.luckypool: AaopoolPattern = AaopoolPattern(client, 'luckypool')
3869
- self.luxor: AaopoolPattern = AaopoolPattern(client, 'luxor')
3870
- self.marapool: AaopoolPattern = AaopoolPattern(client, 'marapool')
3871
- self.maxbtc: AaopoolPattern = AaopoolPattern(client, 'maxbtc')
3872
- self.maxipool: AaopoolPattern = AaopoolPattern(client, 'maxipool')
3873
- self.megabigpower: AaopoolPattern = AaopoolPattern(client, 'megabigpower')
3874
- self.minerium: AaopoolPattern = AaopoolPattern(client, 'minerium')
3875
- self.miningcity: AaopoolPattern = AaopoolPattern(client, 'miningcity')
3876
- self.miningdutch: AaopoolPattern = AaopoolPattern(client, 'miningdutch')
3877
- self.miningkings: AaopoolPattern = AaopoolPattern(client, 'miningkings')
3878
- self.miningsquared: AaopoolPattern = AaopoolPattern(client, 'miningsquared')
3879
- self.mmpool: AaopoolPattern = AaopoolPattern(client, 'mmpool')
3880
- self.mtred: AaopoolPattern = AaopoolPattern(client, 'mtred')
3881
- self.multicoinco: AaopoolPattern = AaopoolPattern(client, 'multicoinco')
3882
- self.multipool: AaopoolPattern = AaopoolPattern(client, 'multipool')
3883
- self.mybtccoinpool: AaopoolPattern = AaopoolPattern(client, 'mybtccoinpool')
3884
- self.neopool: AaopoolPattern = AaopoolPattern(client, 'neopool')
3885
- self.nexious: AaopoolPattern = AaopoolPattern(client, 'nexious')
3886
- self.nicehash: AaopoolPattern = AaopoolPattern(client, 'nicehash')
3887
- self.nmcbit: AaopoolPattern = AaopoolPattern(client, 'nmcbit')
3888
- self.novablock: AaopoolPattern = AaopoolPattern(client, 'novablock')
3889
- self.ocean: AaopoolPattern = AaopoolPattern(client, 'ocean')
3890
- self.okexpool: AaopoolPattern = AaopoolPattern(client, 'okexpool')
3891
- self.okkong: AaopoolPattern = AaopoolPattern(client, 'okkong')
3892
- self.okminer: AaopoolPattern = AaopoolPattern(client, 'okminer')
3893
- self.okpooltop: AaopoolPattern = AaopoolPattern(client, 'okpooltop')
3894
- self.onehash: AaopoolPattern = AaopoolPattern(client, 'onehash')
3895
- self.onem1x: AaopoolPattern = AaopoolPattern(client, 'onem1x')
3896
- self.onethash: AaopoolPattern = AaopoolPattern(client, 'onethash')
3897
- self.ozcoin: AaopoolPattern = AaopoolPattern(client, 'ozcoin')
3898
- self.parasite: AaopoolPattern = AaopoolPattern(client, 'parasite')
3899
- self.patels: AaopoolPattern = AaopoolPattern(client, 'patels')
3900
- self.pegapool: AaopoolPattern = AaopoolPattern(client, 'pegapool')
3901
- self.phashio: AaopoolPattern = AaopoolPattern(client, 'phashio')
3902
- self.phoenix: AaopoolPattern = AaopoolPattern(client, 'phoenix')
3903
- self.polmine: AaopoolPattern = AaopoolPattern(client, 'polmine')
3904
- self.pool175btc: AaopoolPattern = AaopoolPattern(client, 'pool175btc')
3905
- self.pool50btc: AaopoolPattern = AaopoolPattern(client, 'pool50btc')
3906
- self.poolin: AaopoolPattern = AaopoolPattern(client, 'poolin')
3907
- self.portlandhodl: AaopoolPattern = AaopoolPattern(client, 'portlandhodl')
3908
- self.publicpool: AaopoolPattern = AaopoolPattern(client, 'publicpool')
3909
- self.purebtccom: AaopoolPattern = AaopoolPattern(client, 'purebtccom')
3910
- self.rawpool: AaopoolPattern = AaopoolPattern(client, 'rawpool')
3911
- self.rigpool: AaopoolPattern = AaopoolPattern(client, 'rigpool')
3912
- self.sbicrypto: AaopoolPattern = AaopoolPattern(client, 'sbicrypto')
3913
- self.secpool: AaopoolPattern = AaopoolPattern(client, 'secpool')
3914
- self.secretsuperstar: AaopoolPattern = AaopoolPattern(client, 'secretsuperstar')
3915
- self.sevenpool: AaopoolPattern = AaopoolPattern(client, 'sevenpool')
3916
- self.shawnp0wers: AaopoolPattern = AaopoolPattern(client, 'shawnp0wers')
3917
- self.sigmapoolcom: AaopoolPattern = AaopoolPattern(client, 'sigmapoolcom')
3918
- self.simplecoinus: AaopoolPattern = AaopoolPattern(client, 'simplecoinus')
3919
- self.solock: AaopoolPattern = AaopoolPattern(client, 'solock')
3920
- self.spiderpool: AaopoolPattern = AaopoolPattern(client, 'spiderpool')
3921
- self.stminingcorp: AaopoolPattern = AaopoolPattern(client, 'stminingcorp')
3922
- self.tangpool: AaopoolPattern = AaopoolPattern(client, 'tangpool')
3923
- self.tatmaspool: AaopoolPattern = AaopoolPattern(client, 'tatmaspool')
3924
- self.tbdice: AaopoolPattern = AaopoolPattern(client, 'tbdice')
3925
- self.telco214: AaopoolPattern = AaopoolPattern(client, 'telco214')
3926
- self.terrapool: AaopoolPattern = AaopoolPattern(client, 'terrapool')
3927
- self.tiger: AaopoolPattern = AaopoolPattern(client, 'tiger')
3928
- self.tigerpoolnet: AaopoolPattern = AaopoolPattern(client, 'tigerpoolnet')
3929
- self.titan: AaopoolPattern = AaopoolPattern(client, 'titan')
3930
- self.transactioncoinmining: AaopoolPattern = AaopoolPattern(client, 'transactioncoinmining')
3931
- self.trickysbtcpool: AaopoolPattern = AaopoolPattern(client, 'trickysbtcpool')
3932
- self.triplemining: AaopoolPattern = AaopoolPattern(client, 'triplemining')
3933
- self.twentyoneinc: AaopoolPattern = AaopoolPattern(client, 'twentyoneinc')
3934
- self.ultimuspool: AaopoolPattern = AaopoolPattern(client, 'ultimuspool')
3935
- self.unknown: AaopoolPattern = AaopoolPattern(client, 'unknown')
3936
- self.unomp: AaopoolPattern = AaopoolPattern(client, 'unomp')
3937
- self.viabtc: AaopoolPattern = AaopoolPattern(client, 'viabtc')
3938
- self.waterhole: AaopoolPattern = AaopoolPattern(client, 'waterhole')
3939
- self.wayicn: AaopoolPattern = AaopoolPattern(client, 'wayicn')
3940
- self.whitepool: AaopoolPattern = AaopoolPattern(client, 'whitepool')
3941
- self.wk057: AaopoolPattern = AaopoolPattern(client, 'wk057')
3942
- self.yourbtcnet: AaopoolPattern = AaopoolPattern(client, 'yourbtcnet')
3943
- self.zulupool: AaopoolPattern = AaopoolPattern(client, 'zulupool')
4028
+ self._1sat: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1sat')
4029
+ self._10sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10sats')
4030
+ self._100sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_100sats')
4031
+ self._1k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1k_sats')
4032
+ self._10k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10k_sats')
4033
+ self._100k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_100k_sats')
4034
+ self._1m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1m_sats')
4035
+ self._10m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10m_sats')
4036
+ self._1btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1btc')
4037
+ self._10btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10btc')
4038
+ self._100btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_100btc')
4039
+ self._1k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1k_btc')
4040
+ self._10k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10k_btc')
3944
4041
 
3945
- class MetricsTree_Pools:
4042
+ class MetricsTree_Distribution_UtxoCohorts_AmountRange:
3946
4043
  """Metrics tree node."""
3947
4044
 
3948
4045
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3949
- self.height_to_pool: MetricPattern11[PoolSlug] = MetricPattern11(client, 'pool')
3950
- self.vecs: MetricsTree_Pools_Vecs = MetricsTree_Pools_Vecs(client)
4046
+ self._0sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_with_0sats')
4047
+ self._1sat_to_10sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1sat_under_10sats')
4048
+ self._10sats_to_100sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10sats_under_100sats')
4049
+ self._100sats_to_1k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_100sats_under_1k_sats')
4050
+ self._1k_sats_to_10k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1k_sats_under_10k_sats')
4051
+ self._10k_sats_to_100k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10k_sats_under_100k_sats')
4052
+ self._100k_sats_to_1m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_100k_sats_under_1m_sats')
4053
+ self._1m_sats_to_10m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1m_sats_under_10m_sats')
4054
+ self._10m_sats_to_1btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10m_sats_under_1btc')
4055
+ self._1btc_to_10btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1btc_under_10btc')
4056
+ self._10btc_to_100btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10btc_under_100btc')
4057
+ self._100btc_to_1k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_100btc_under_1k_btc')
4058
+ self._1k_btc_to_10k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1k_btc_under_10k_btc')
4059
+ self._10k_btc_to_100k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10k_btc_under_100k_btc')
4060
+ self._100k_btc_or_more: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_100k_btc')
3951
4061
 
3952
- class MetricsTree_Positions:
4062
+ class MetricsTree_Distribution_UtxoCohorts_Term_Short:
3953
4063
  """Metrics tree node."""
3954
4064
 
3955
4065
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3956
- self.block_position: MetricPattern11[BlkPosition] = MetricPattern11(client, 'position')
3957
- self.tx_position: MetricPattern27[BlkPosition] = MetricPattern27(client, 'position')
4066
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, 'sth')
4067
+ self.outputs: UtxoPattern = UtxoPattern(client, 'sth_utxo_count')
4068
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, 'sth')
4069
+ self.realized: AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, 'sth')
4070
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, 'sth')
4071
+ self.cost_basis: InvestedMaxMinPercentilesSpotPattern = InvestedMaxMinPercentilesSpotPattern(client, 'sth')
4072
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern4 = InvestedNegNetNuplSupplyUnrealizedPattern4(client, 'sth')
3958
4073
 
3959
- class MetricsTree_Price_Cents_Split:
4074
+ class MetricsTree_Distribution_UtxoCohorts_Term_Long:
3960
4075
  """Metrics tree node."""
3961
4076
 
3962
4077
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3963
- self.close: MetricPattern5[Cents] = MetricPattern5(client, 'price_close_cents')
3964
- self.high: MetricPattern5[Cents] = MetricPattern5(client, 'price_high_cents')
3965
- self.low: MetricPattern5[Cents] = MetricPattern5(client, 'price_low_cents')
3966
- self.open: MetricPattern5[Cents] = MetricPattern5(client, 'price_open_cents')
4078
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, 'lth')
4079
+ self.outputs: UtxoPattern = UtxoPattern(client, 'lth_utxo_count')
4080
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, 'lth')
4081
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2 = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2(client, 'lth')
4082
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, 'lth')
4083
+ self.cost_basis: InvestedMaxMinPercentilesSpotPattern = InvestedMaxMinPercentilesSpotPattern(client, 'lth')
4084
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern4 = InvestedNegNetNuplSupplyUnrealizedPattern4(client, 'lth')
3967
4085
 
3968
- class MetricsTree_Price_Cents:
4086
+ class MetricsTree_Distribution_UtxoCohorts_Term:
3969
4087
  """Metrics tree node."""
3970
4088
 
3971
4089
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3972
- self.ohlc: MetricPattern5[OHLCCents] = MetricPattern5(client, 'ohlc_cents')
3973
- self.split: MetricsTree_Price_Cents_Split = MetricsTree_Price_Cents_Split(client)
4090
+ self.short: MetricsTree_Distribution_UtxoCohorts_Term_Short = MetricsTree_Distribution_UtxoCohorts_Term_Short(client)
4091
+ self.long: MetricsTree_Distribution_UtxoCohorts_Term_Long = MetricsTree_Distribution_UtxoCohorts_Term_Long(client)
3974
4092
 
3975
- class MetricsTree_Price_Usd:
4093
+ class MetricsTree_Distribution_UtxoCohorts_Type:
3976
4094
  """Metrics tree node."""
3977
4095
 
3978
4096
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3979
- self.ohlc: MetricPattern1[OHLCDollars] = MetricPattern1(client, 'price_ohlc')
3980
- self.split: SplitPattern2[Dollars] = SplitPattern2(client, 'price')
4097
+ self.p2pk65: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2pk65')
4098
+ self.p2pk33: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2pk33')
4099
+ self.p2pkh: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2pkh')
4100
+ self.p2ms: ActivityCostOutputsRealizedSupplyUnrealizedPattern = ActivityCostOutputsRealizedSupplyUnrealizedPattern(client, 'p2ms')
4101
+ self.p2sh: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2sh')
4102
+ self.p2wpkh: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2wpkh')
4103
+ self.p2wsh: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2wsh')
4104
+ self.p2tr: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2tr')
4105
+ self.p2a: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2a')
4106
+ self.unknown: ActivityCostOutputsRealizedSupplyUnrealizedPattern = ActivityCostOutputsRealizedSupplyUnrealizedPattern(client, 'unknown_outputs')
4107
+ self.empty: ActivityCostOutputsRealizedSupplyUnrealizedPattern = ActivityCostOutputsRealizedSupplyUnrealizedPattern(client, 'empty_outputs')
3981
4108
 
3982
- class MetricsTree_Price:
4109
+ class MetricsTree_Distribution_UtxoCohorts_MaxAge:
3983
4110
  """Metrics tree node."""
3984
4111
 
3985
4112
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3986
- self.cents: MetricsTree_Price_Cents = MetricsTree_Price_Cents(client)
3987
- self.sats: SatsPattern[OHLCSats] = SatsPattern(client, 'price')
3988
- self.usd: MetricsTree_Price_Usd = MetricsTree_Price_Usd(client)
4113
+ self._1w: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_1w_old')
4114
+ self._1m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_1m_old')
4115
+ self._2m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_2m_old')
4116
+ self._3m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_3m_old')
4117
+ self._4m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_4m_old')
4118
+ self._5m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_5m_old')
4119
+ self._6m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_6m_old')
4120
+ self._1y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_1y_old')
4121
+ self._2y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_2y_old')
4122
+ self._3y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_3y_old')
4123
+ self._4y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_4y_old')
4124
+ self._5y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_5y_old')
4125
+ self._6y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_6y_old')
4126
+ self._7y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_7y_old')
4127
+ self._8y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_8y_old')
4128
+ self._10y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_10y_old')
4129
+ self._12y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_12y_old')
4130
+ self._15y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_15y_old')
3989
4131
 
3990
- class MetricsTree_Scripts_Count:
4132
+ class MetricsTree_Distribution_UtxoCohorts_LtAmount:
3991
4133
  """Metrics tree node."""
3992
4134
 
3993
4135
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3994
- self.emptyoutput: DollarsPattern[StoredU64] = DollarsPattern(client, 'emptyoutput_count')
3995
- self.opreturn: DollarsPattern[StoredU64] = DollarsPattern(client, 'opreturn_count')
3996
- self.p2a: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2a_count')
3997
- self.p2ms: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2ms_count')
3998
- self.p2pk33: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2pk33_count')
3999
- self.p2pk65: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2pk65_count')
4000
- self.p2pkh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2pkh_count')
4001
- self.p2sh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2sh_count')
4002
- self.p2tr: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2tr_count')
4003
- self.p2wpkh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2wpkh_count')
4004
- self.p2wsh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2wsh_count')
4005
- self.segwit: DollarsPattern[StoredU64] = DollarsPattern(client, 'segwit_count')
4006
- self.segwit_adoption: SegwitAdoptionPattern = SegwitAdoptionPattern(client, 'segwit_adoption')
4007
- self.taproot_adoption: SegwitAdoptionPattern = SegwitAdoptionPattern(client, 'taproot_adoption')
4008
- self.unknownoutput: DollarsPattern[StoredU64] = DollarsPattern(client, 'unknownoutput_count')
4136
+ self._10sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10sats')
4137
+ self._100sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_100sats')
4138
+ self._1k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_1k_sats')
4139
+ self._10k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10k_sats')
4140
+ self._100k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_100k_sats')
4141
+ self._1m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_1m_sats')
4142
+ self._10m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10m_sats')
4143
+ self._1btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_1btc')
4144
+ self._10btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10btc')
4145
+ self._100btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_100btc')
4146
+ self._1k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_1k_btc')
4147
+ self._10k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10k_btc')
4148
+ self._100k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_100k_btc')
4009
4149
 
4010
- class MetricsTree_Scripts_Value:
4150
+ class MetricsTree_Distribution_UtxoCohorts:
4011
4151
  """Metrics tree node."""
4012
4152
 
4013
4153
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4014
- self.opreturn: CoinbasePattern = CoinbasePattern(client, 'opreturn_value')
4154
+ self.all: MetricsTree_Distribution_UtxoCohorts_All = MetricsTree_Distribution_UtxoCohorts_All(client)
4155
+ self.age_range: MetricsTree_Distribution_UtxoCohorts_AgeRange = MetricsTree_Distribution_UtxoCohorts_AgeRange(client)
4156
+ self.epoch: MetricsTree_Distribution_UtxoCohorts_Epoch = MetricsTree_Distribution_UtxoCohorts_Epoch(client)
4157
+ self.year: MetricsTree_Distribution_UtxoCohorts_Year = MetricsTree_Distribution_UtxoCohorts_Year(client)
4158
+ self.min_age: MetricsTree_Distribution_UtxoCohorts_MinAge = MetricsTree_Distribution_UtxoCohorts_MinAge(client)
4159
+ self.ge_amount: MetricsTree_Distribution_UtxoCohorts_GeAmount = MetricsTree_Distribution_UtxoCohorts_GeAmount(client)
4160
+ self.amount_range: MetricsTree_Distribution_UtxoCohorts_AmountRange = MetricsTree_Distribution_UtxoCohorts_AmountRange(client)
4161
+ self.term: MetricsTree_Distribution_UtxoCohorts_Term = MetricsTree_Distribution_UtxoCohorts_Term(client)
4162
+ self.type_: MetricsTree_Distribution_UtxoCohorts_Type = MetricsTree_Distribution_UtxoCohorts_Type(client)
4163
+ self.max_age: MetricsTree_Distribution_UtxoCohorts_MaxAge = MetricsTree_Distribution_UtxoCohorts_MaxAge(client)
4164
+ self.lt_amount: MetricsTree_Distribution_UtxoCohorts_LtAmount = MetricsTree_Distribution_UtxoCohorts_LtAmount(client)
4015
4165
 
4016
- class MetricsTree_Scripts:
4166
+ class MetricsTree_Distribution_AddressCohorts_GeAmount:
4017
4167
  """Metrics tree node."""
4018
4168
 
4019
4169
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4020
- self.count: MetricsTree_Scripts_Count = MetricsTree_Scripts_Count(client)
4021
- self.empty_to_txindex: MetricPattern9[TxIndex] = MetricPattern9(client, 'txindex')
4022
- self.first_emptyoutputindex: MetricPattern11[EmptyOutputIndex] = MetricPattern11(client, 'first_emptyoutputindex')
4023
- self.first_opreturnindex: MetricPattern11[OpReturnIndex] = MetricPattern11(client, 'first_opreturnindex')
4024
- self.first_p2msoutputindex: MetricPattern11[P2MSOutputIndex] = MetricPattern11(client, 'first_p2msoutputindex')
4025
- self.first_unknownoutputindex: MetricPattern11[UnknownOutputIndex] = MetricPattern11(client, 'first_unknownoutputindex')
4026
- self.opreturn_to_txindex: MetricPattern14[TxIndex] = MetricPattern14(client, 'txindex')
4027
- self.p2ms_to_txindex: MetricPattern17[TxIndex] = MetricPattern17(client, 'txindex')
4028
- self.unknown_to_txindex: MetricPattern28[TxIndex] = MetricPattern28(client, 'txindex')
4029
- self.value: MetricsTree_Scripts_Value = MetricsTree_Scripts_Value(client)
4170
+ self._1sat: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1sat')
4171
+ self._10sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10sats')
4172
+ self._100sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_100sats')
4173
+ self._1k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1k_sats')
4174
+ self._10k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10k_sats')
4175
+ self._100k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_100k_sats')
4176
+ self._1m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1m_sats')
4177
+ self._10m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10m_sats')
4178
+ self._1btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1btc')
4179
+ self._10btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10btc')
4180
+ self._100btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_100btc')
4181
+ self._1k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1k_btc')
4182
+ self._10k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10k_btc')
4030
4183
 
4031
- class MetricsTree_Supply_Burned:
4184
+ class MetricsTree_Distribution_AddressCohorts_AmountRange:
4032
4185
  """Metrics tree node."""
4033
4186
 
4034
4187
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4035
- self.opreturn: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, 'opreturn_supply')
4036
- self.unspendable: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, 'unspendable_supply')
4188
+ self._0sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_with_0sats')
4189
+ self._1sat_to_10sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1sat_under_10sats')
4190
+ self._10sats_to_100sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10sats_under_100sats')
4191
+ self._100sats_to_1k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100sats_under_1k_sats')
4192
+ self._1k_sats_to_10k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1k_sats_under_10k_sats')
4193
+ self._10k_sats_to_100k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10k_sats_under_100k_sats')
4194
+ self._100k_sats_to_1m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100k_sats_under_1m_sats')
4195
+ self._1m_sats_to_10m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1m_sats_under_10m_sats')
4196
+ self._10m_sats_to_1btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10m_sats_under_1btc')
4197
+ self._1btc_to_10btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1btc_under_10btc')
4198
+ self._10btc_to_100btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10btc_under_100btc')
4199
+ self._100btc_to_1k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100btc_under_1k_btc')
4200
+ self._1k_btc_to_10k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1k_btc_under_10k_btc')
4201
+ self._10k_btc_to_100k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10k_btc_under_100k_btc')
4202
+ self._100k_btc_or_more: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100k_btc')
4037
4203
 
4038
- class MetricsTree_Supply_Circulating:
4204
+ class MetricsTree_Distribution_AddressCohorts_LtAmount:
4039
4205
  """Metrics tree node."""
4040
4206
 
4041
4207
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4042
- self.bitcoin: MetricPattern3[Bitcoin] = MetricPattern3(client, 'circulating_supply_btc')
4043
- self.dollars: MetricPattern3[Dollars] = MetricPattern3(client, 'circulating_supply_usd')
4044
- self.sats: MetricPattern3[Sats] = MetricPattern3(client, 'circulating_supply')
4208
+ self._10sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10sats')
4209
+ self._100sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100sats')
4210
+ self._1k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1k_sats')
4211
+ self._10k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10k_sats')
4212
+ self._100k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100k_sats')
4213
+ self._1m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1m_sats')
4214
+ self._10m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10m_sats')
4215
+ self._1btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1btc')
4216
+ self._10btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10btc')
4217
+ self._100btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100btc')
4218
+ self._1k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1k_btc')
4219
+ self._10k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10k_btc')
4220
+ self._100k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100k_btc')
4045
4221
 
4046
- class MetricsTree_Supply_Velocity:
4222
+ class MetricsTree_Distribution_AddressCohorts:
4047
4223
  """Metrics tree node."""
4048
4224
 
4049
4225
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4050
- self.btc: MetricPattern4[StoredF64] = MetricPattern4(client, 'btc_velocity')
4051
- self.usd: MetricPattern4[StoredF64] = MetricPattern4(client, 'usd_velocity')
4226
+ self.ge_amount: MetricsTree_Distribution_AddressCohorts_GeAmount = MetricsTree_Distribution_AddressCohorts_GeAmount(client)
4227
+ self.amount_range: MetricsTree_Distribution_AddressCohorts_AmountRange = MetricsTree_Distribution_AddressCohorts_AmountRange(client)
4228
+ self.lt_amount: MetricsTree_Distribution_AddressCohorts_LtAmount = MetricsTree_Distribution_AddressCohorts_LtAmount(client)
4052
4229
 
4053
- class MetricsTree_Supply:
4230
+ class MetricsTree_Distribution_AddressActivity:
4054
4231
  """Metrics tree node."""
4055
4232
 
4056
4233
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4057
- self.burned: MetricsTree_Supply_Burned = MetricsTree_Supply_Burned(client)
4058
- self.circulating: MetricsTree_Supply_Circulating = MetricsTree_Supply_Circulating(client)
4059
- self.inflation: MetricPattern4[StoredF32] = MetricPattern4(client, 'inflation_rate')
4060
- self.market_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'market_cap')
4061
- self.velocity: MetricsTree_Supply_Velocity = MetricsTree_Supply_Velocity(client)
4234
+ self.all: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'address_activity')
4235
+ self.p2pk65: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2pk65_address_activity')
4236
+ self.p2pk33: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2pk33_address_activity')
4237
+ self.p2pkh: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2pkh_address_activity')
4238
+ self.p2sh: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2sh_address_activity')
4239
+ self.p2wpkh: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2wpkh_address_activity')
4240
+ self.p2wsh: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2wsh_address_activity')
4241
+ self.p2tr: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2tr_address_activity')
4242
+ self.p2a: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2a_address_activity')
4062
4243
 
4063
- class MetricsTree_Transactions_Count:
4244
+ class MetricsTree_Distribution_NewAddrCount:
4064
4245
  """Metrics tree node."""
4065
4246
 
4066
4247
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4067
- self.is_coinbase: MetricPattern27[StoredBool] = MetricPattern27(client, 'is_coinbase')
4068
- self.tx_count: DollarsPattern[StoredU64] = DollarsPattern(client, 'tx_count')
4248
+ self.all: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'new_addr_count')
4249
+ self.p2pk65: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pk65_new_addr_count')
4250
+ self.p2pk33: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pk33_new_addr_count')
4251
+ self.p2pkh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pkh_new_addr_count')
4252
+ self.p2sh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2sh_new_addr_count')
4253
+ self.p2wpkh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2wpkh_new_addr_count')
4254
+ self.p2wsh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2wsh_new_addr_count')
4255
+ self.p2tr: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2tr_new_addr_count')
4256
+ self.p2a: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2a_new_addr_count')
4069
4257
 
4070
- class MetricsTree_Transactions_Fees_Fee:
4258
+ class MetricsTree_Distribution_GrowthRate:
4071
4259
  """Metrics tree node."""
4072
4260
 
4073
4261
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4074
- self.bitcoin: CountPattern2[Bitcoin] = CountPattern2(client, 'fee_btc')
4075
- self.dollars: CountPattern2[Dollars] = CountPattern2(client, 'fee_usd')
4076
- self.sats: CountPattern2[Sats] = CountPattern2(client, 'fee')
4077
- self.txindex: MetricPattern27[Sats] = MetricPattern27(client, 'fee')
4262
+ self.all: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'growth_rate')
4263
+ self.p2pk65: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2pk65_growth_rate')
4264
+ self.p2pk33: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2pk33_growth_rate')
4265
+ self.p2pkh: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2pkh_growth_rate')
4266
+ self.p2sh: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2sh_growth_rate')
4267
+ self.p2wpkh: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2wpkh_growth_rate')
4268
+ self.p2wsh: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2wsh_growth_rate')
4269
+ self.p2tr: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2tr_growth_rate')
4270
+ self.p2a: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2a_growth_rate')
4078
4271
 
4079
- class MetricsTree_Transactions_Fees:
4272
+ class MetricsTree_Distribution:
4080
4273
  """Metrics tree node."""
4081
4274
 
4082
4275
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4083
- self.fee: MetricsTree_Transactions_Fees_Fee = MetricsTree_Transactions_Fees_Fee(client)
4084
- self.fee_rate: FeeRatePattern[FeeRate] = FeeRatePattern(client, 'fee_rate')
4085
- self.input_value: MetricPattern27[Sats] = MetricPattern27(client, 'input_value')
4086
- self.output_value: MetricPattern27[Sats] = MetricPattern27(client, 'output_value')
4276
+ self.supply_state: MetricPattern11[SupplyState] = MetricPattern11(client, 'supply_state')
4277
+ self.any_address_indexes: MetricsTree_Distribution_AnyAddressIndexes = MetricsTree_Distribution_AnyAddressIndexes(client)
4278
+ self.addresses_data: MetricsTree_Distribution_AddressesData = MetricsTree_Distribution_AddressesData(client)
4279
+ self.utxo_cohorts: MetricsTree_Distribution_UtxoCohorts = MetricsTree_Distribution_UtxoCohorts(client)
4280
+ self.address_cohorts: MetricsTree_Distribution_AddressCohorts = MetricsTree_Distribution_AddressCohorts(client)
4281
+ self.addr_count: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern = AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern(client, 'addr_count')
4282
+ self.empty_addr_count: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern = AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern(client, 'empty_addr_count')
4283
+ self.address_activity: MetricsTree_Distribution_AddressActivity = MetricsTree_Distribution_AddressActivity(client)
4284
+ self.total_addr_count: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern = AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern(client, 'total_addr_count')
4285
+ self.new_addr_count: MetricsTree_Distribution_NewAddrCount = MetricsTree_Distribution_NewAddrCount(client)
4286
+ self.growth_rate: MetricsTree_Distribution_GrowthRate = MetricsTree_Distribution_GrowthRate(client)
4287
+ self.fundedaddressindex: MetricPattern31[FundedAddressIndex] = MetricPattern31(client, 'fundedaddressindex')
4288
+ self.emptyaddressindex: MetricPattern32[EmptyAddressIndex] = MetricPattern32(client, 'emptyaddressindex')
4087
4289
 
4088
- class MetricsTree_Transactions_Size:
4290
+ class MetricsTree_Supply_Circulating:
4089
4291
  """Metrics tree node."""
4090
4292
 
4091
4293
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4092
- self.vsize: FeeRatePattern[VSize] = FeeRatePattern(client, 'tx_vsize')
4093
- self.weight: FeeRatePattern[Weight] = FeeRatePattern(client, 'tx_weight')
4294
+ self.sats: MetricPattern3[Sats] = MetricPattern3(client, 'circulating_supply')
4295
+ self.bitcoin: MetricPattern3[Bitcoin] = MetricPattern3(client, 'circulating_supply_btc')
4296
+ self.dollars: MetricPattern3[Dollars] = MetricPattern3(client, 'circulating_supply_usd')
4094
4297
 
4095
- class MetricsTree_Transactions_Versions:
4298
+ class MetricsTree_Supply_Burned:
4096
4299
  """Metrics tree node."""
4097
4300
 
4098
4301
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4099
- self.v1: BlockCountPattern[StoredU64] = BlockCountPattern(client, 'tx_v1')
4100
- self.v2: BlockCountPattern[StoredU64] = BlockCountPattern(client, 'tx_v2')
4101
- self.v3: BlockCountPattern[StoredU64] = BlockCountPattern(client, 'tx_v3')
4302
+ self.opreturn: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, 'opreturn_supply')
4303
+ self.unspendable: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, 'unspendable_supply')
4102
4304
 
4103
- class MetricsTree_Transactions_Volume:
4305
+ class MetricsTree_Supply_Velocity:
4104
4306
  """Metrics tree node."""
4105
4307
 
4106
4308
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4107
- self.annualized_volume: _2015Pattern = _2015Pattern(client, 'annualized_volume')
4108
- self.inputs_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'inputs_per_sec')
4109
- self.outputs_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'outputs_per_sec')
4110
- self.received_sum: ActiveSupplyPattern = ActiveSupplyPattern(client, 'received_sum')
4111
- self.sent_sum: ActiveSupplyPattern = ActiveSupplyPattern(client, 'sent_sum')
4112
- self.tx_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'tx_per_sec')
4309
+ self.btc: MetricPattern4[StoredF64] = MetricPattern4(client, 'btc_velocity')
4310
+ self.usd: MetricPattern4[StoredF64] = MetricPattern4(client, 'usd_velocity')
4113
4311
 
4114
- class MetricsTree_Transactions:
4312
+ class MetricsTree_Supply:
4115
4313
  """Metrics tree node."""
4116
4314
 
4117
4315
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4118
- self.base_size: MetricPattern27[StoredU32] = MetricPattern27(client, 'base_size')
4119
- self.count: MetricsTree_Transactions_Count = MetricsTree_Transactions_Count(client)
4120
- self.fees: MetricsTree_Transactions_Fees = MetricsTree_Transactions_Fees(client)
4121
- self.first_txindex: MetricPattern11[TxIndex] = MetricPattern11(client, 'first_txindex')
4122
- self.first_txinindex: MetricPattern27[TxInIndex] = MetricPattern27(client, 'first_txinindex')
4123
- self.first_txoutindex: MetricPattern27[TxOutIndex] = MetricPattern27(client, 'first_txoutindex')
4124
- self.height: MetricPattern27[Height] = MetricPattern27(client, 'height')
4125
- self.is_explicitly_rbf: MetricPattern27[StoredBool] = MetricPattern27(client, 'is_explicitly_rbf')
4126
- self.rawlocktime: MetricPattern27[RawLockTime] = MetricPattern27(client, 'rawlocktime')
4127
- self.size: MetricsTree_Transactions_Size = MetricsTree_Transactions_Size(client)
4128
- self.total_size: MetricPattern27[StoredU32] = MetricPattern27(client, 'total_size')
4129
- self.txid: MetricPattern27[Txid] = MetricPattern27(client, 'txid')
4130
- self.txversion: MetricPattern27[TxVersion] = MetricPattern27(client, 'txversion')
4131
- self.versions: MetricsTree_Transactions_Versions = MetricsTree_Transactions_Versions(client)
4132
- self.volume: MetricsTree_Transactions_Volume = MetricsTree_Transactions_Volume(client)
4316
+ self.circulating: MetricsTree_Supply_Circulating = MetricsTree_Supply_Circulating(client)
4317
+ self.burned: MetricsTree_Supply_Burned = MetricsTree_Supply_Burned(client)
4318
+ self.inflation: MetricPattern4[StoredF32] = MetricPattern4(client, 'inflation_rate')
4319
+ self.velocity: MetricsTree_Supply_Velocity = MetricsTree_Supply_Velocity(client)
4320
+ self.market_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'market_cap')
4133
4321
 
4134
4322
  class MetricsTree:
4135
4323
  """Metrics tree node."""
4136
4324
 
4137
4325
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4138
- self.addresses: MetricsTree_Addresses = MetricsTree_Addresses(client)
4139
4326
  self.blocks: MetricsTree_Blocks = MetricsTree_Blocks(client)
4327
+ self.transactions: MetricsTree_Transactions = MetricsTree_Transactions(client)
4328
+ self.inputs: MetricsTree_Inputs = MetricsTree_Inputs(client)
4329
+ self.outputs: MetricsTree_Outputs = MetricsTree_Outputs(client)
4330
+ self.addresses: MetricsTree_Addresses = MetricsTree_Addresses(client)
4331
+ self.scripts: MetricsTree_Scripts = MetricsTree_Scripts(client)
4332
+ self.positions: MetricsTree_Positions = MetricsTree_Positions(client)
4140
4333
  self.cointime: MetricsTree_Cointime = MetricsTree_Cointime(client)
4141
4334
  self.constants: MetricsTree_Constants = MetricsTree_Constants(client)
4142
- self.distribution: MetricsTree_Distribution = MetricsTree_Distribution(client)
4143
4335
  self.indexes: MetricsTree_Indexes = MetricsTree_Indexes(client)
4144
- self.inputs: MetricsTree_Inputs = MetricsTree_Inputs(client)
4145
4336
  self.market: MetricsTree_Market = MetricsTree_Market(client)
4146
- self.outputs: MetricsTree_Outputs = MetricsTree_Outputs(client)
4147
4337
  self.pools: MetricsTree_Pools = MetricsTree_Pools(client)
4148
- self.positions: MetricsTree_Positions = MetricsTree_Positions(client)
4149
4338
  self.price: MetricsTree_Price = MetricsTree_Price(client)
4150
- self.scripts: MetricsTree_Scripts = MetricsTree_Scripts(client)
4339
+ self.distribution: MetricsTree_Distribution = MetricsTree_Distribution(client)
4151
4340
  self.supply: MetricsTree_Supply = MetricsTree_Supply(client)
4152
- self.transactions: MetricsTree_Transactions = MetricsTree_Transactions(client)
4153
4341
 
4154
4342
  class BrkClient(BrkClientBase):
4155
4343
  """Main BRK client with metrics tree and API methods."""
4156
4344
 
4157
- VERSION = "v0.1.1"
4345
+ VERSION = "v0.1.2"
4158
4346
 
4159
4347
  INDEXES = [
4160
4348
  "dateindex",
@@ -4182,7 +4370,7 @@ class BrkClient(BrkClientBase):
4182
4370
  "unknownoutputindex",
4183
4371
  "weekindex",
4184
4372
  "yearindex",
4185
- "loadedaddressindex",
4373
+ "fundedaddressindex",
4186
4374
  "emptyaddressindex",
4187
4375
  "pairoutputindex"
4188
4376
  ]