brk-client 0.1.2__py3-none-any.whl → 0.1.4__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,22 +2413,37 @@ 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 ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern:
2417
+ """Pattern struct for repeated tree structure."""
2418
+
2419
+ def __init__(self, client: BrkClientBase, acc: str):
2420
+ """Create pattern node with accumulated metric name."""
2421
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2422
+ self.addr_count: MetricPattern1[StoredU64] = MetricPattern1(client, _m(acc, 'addr_count'))
2423
+ self.addr_count_30d_change: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, 'addr_count_30d_change'))
2424
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2425
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2426
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2427
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern = InvestedNegNetNuplSupplyUnrealizedPattern(client, acc)
2428
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2429
+ self.unrealized: GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern(client, acc)
2430
+
2431
+ class AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern:
2248
2432
  """Pattern struct for repeated tree structure."""
2249
2433
 
2250
2434
  def __init__(self, client: BrkClientBase, acc: str):
2251
2435
  """Create pattern node with accumulated metric name."""
2252
- self.all: MetricPattern1[StoredU64] = MetricPattern1(client, acc)
2253
- self.p2a: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2a', acc))
2254
- self.p2pk33: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2pk33', acc))
2255
- self.p2pk65: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2pk65', acc))
2256
- self.p2pkh: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2pkh', acc))
2257
- self.p2sh: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2sh', acc))
2258
- self.p2tr: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2tr', acc))
2259
- self.p2wpkh: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2wpkh', acc))
2260
- self.p2wsh: MetricPattern1[StoredU64] = MetricPattern1(client, _p('p2wsh', acc))
2261
-
2262
- class FeeRatePattern(Generic[T]):
2436
+ self.all: _30dCountPattern = _30dCountPattern(client, acc)
2437
+ self.p2a: _30dCountPattern = _30dCountPattern(client, _p('p2a', acc))
2438
+ self.p2pk33: _30dCountPattern = _30dCountPattern(client, _p('p2pk33', acc))
2439
+ self.p2pk65: _30dCountPattern = _30dCountPattern(client, _p('p2pk65', acc))
2440
+ self.p2pkh: _30dCountPattern = _30dCountPattern(client, _p('p2pkh', acc))
2441
+ self.p2sh: _30dCountPattern = _30dCountPattern(client, _p('p2sh', acc))
2442
+ self.p2tr: _30dCountPattern = _30dCountPattern(client, _p('p2tr', acc))
2443
+ self.p2wpkh: _30dCountPattern = _30dCountPattern(client, _p('p2wpkh', acc))
2444
+ self.p2wsh: _30dCountPattern = _30dCountPattern(client, _p('p2wsh', acc))
2445
+
2446
+ class AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern(Generic[T]):
2263
2447
  """Pattern struct for repeated tree structure."""
2264
2448
 
2265
2449
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2274,7 +2458,7 @@ class FeeRatePattern(Generic[T]):
2274
2458
  self.pct90: MetricPattern11[T] = MetricPattern11(client, _m(acc, 'pct90'))
2275
2459
  self.txindex: MetricPattern27[T] = MetricPattern27(client, acc)
2276
2460
 
2277
- class FullnessPattern(Generic[T]):
2461
+ class AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(Generic[T]):
2278
2462
  """Pattern struct for repeated tree structure."""
2279
2463
 
2280
2464
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2289,21 +2473,7 @@ class FullnessPattern(Generic[T]):
2289
2473
  self.pct75: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct75'))
2290
2474
  self.pct90: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct90'))
2291
2475
 
2292
- class _0satsPattern:
2293
- """Pattern struct for repeated tree structure."""
2294
-
2295
- def __init__(self, client: BrkClientBase, acc: str):
2296
- """Create pattern node with accumulated metric name."""
2297
- self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2298
- 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:
2476
+ class _10y2y3y4y5y6y8yPattern:
2307
2477
  """Pattern struct for repeated tree structure."""
2308
2478
 
2309
2479
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2316,95 +2486,130 @@ class PeriodCagrPattern:
2316
2486
  self._6y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('6y', acc))
2317
2487
  self._8y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('8y', acc))
2318
2488
 
2319
- class _100btcPattern:
2489
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern:
2320
2490
  """Pattern struct for repeated tree structure."""
2321
2491
 
2322
2492
  def __init__(self, client: BrkClientBase, acc: str):
2323
2493
  """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:
2494
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2495
+ self.cost_basis: InvestedMaxMinPercentilesSpotPattern = InvestedMaxMinPercentilesSpotPattern(client, acc)
2496
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2497
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2 = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2(client, acc)
2498
+ self.relative: InvestedNegNetSupplyUnrealizedPattern = InvestedNegNetSupplyUnrealizedPattern(client, acc)
2499
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2500
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, acc)
2501
+
2502
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5:
2333
2503
  """Pattern struct for repeated tree structure."""
2334
2504
 
2335
2505
  def __init__(self, client: BrkClientBase, acc: str):
2336
2506
  """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:
2507
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2508
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2509
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2510
+ self.realized: AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2 = AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2(client, acc)
2511
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern3 = InvestedNegNetNuplSupplyUnrealizedPattern3(client, acc)
2512
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2513
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, acc)
2514
+
2515
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4:
2346
2516
  """Pattern struct for repeated tree structure."""
2347
2517
 
2348
2518
  def __init__(self, client: BrkClientBase, acc: str):
2349
2519
  """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:
2520
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2521
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2522
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2523
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2524
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern = InvestedNegNetNuplSupplyUnrealizedPattern(client, acc)
2525
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2526
+ self.unrealized: GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern(client, acc)
2527
+
2528
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6:
2359
2529
  """Pattern struct for repeated tree structure."""
2360
2530
 
2361
2531
  def __init__(self, client: BrkClientBase, acc: str):
2362
2532
  """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:
2533
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2534
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2535
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2536
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2537
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern3 = InvestedNegNetNuplSupplyUnrealizedPattern3(client, acc)
2538
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2539
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, acc)
2540
+
2541
+ class ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3:
2372
2542
  """Pattern struct for repeated tree structure."""
2373
2543
 
2374
2544
  def __init__(self, client: BrkClientBase, acc: str):
2375
2545
  """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:
2546
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2547
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2548
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2549
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2550
+ self.relative: InvestedSupplyPattern = InvestedSupplyPattern(client, acc)
2551
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2552
+ self.unrealized: GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern(client, acc)
2553
+
2554
+ class ActivityCostOutputsRealizedSupplyUnrealizedPattern:
2555
+ """Pattern struct for repeated tree structure."""
2556
+
2557
+ def __init__(self, client: BrkClientBase, acc: str):
2558
+ """Create pattern node with accumulated metric name."""
2559
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, acc)
2560
+ self.cost_basis: MaxMinPattern = MaxMinPattern(client, acc)
2561
+ self.outputs: UtxoPattern = UtxoPattern(client, _m(acc, 'utxo_count'))
2562
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, acc)
2563
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, acc)
2564
+ self.unrealized: GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainSupplyTotalUnrealizedPattern(client, acc)
2565
+
2566
+ class BalanceBothReactivatedReceivingSendingPattern:
2385
2567
  """Pattern struct for repeated tree structure."""
2386
2568
 
2387
2569
  def __init__(self, client: BrkClientBase, acc: str):
2388
2570
  """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:
2571
+ self.balance_decreased: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'balance_decreased'))
2572
+ self.balance_increased: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'balance_increased'))
2573
+ self.both: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'both'))
2574
+ self.reactivated: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'reactivated'))
2575
+ self.receiving: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'receiving'))
2576
+ self.sending: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredU32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, _m(acc, 'sending'))
2577
+
2578
+ class CoinblocksCoindaysSatblocksSatdaysSentPattern:
2397
2579
  """Pattern struct for repeated tree structure."""
2398
2580
 
2399
2581
  def __init__(self, client: BrkClientBase, acc: str):
2400
2582
  """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'))
2583
+ self.coinblocks_destroyed: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, _m(acc, 'coinblocks_destroyed'))
2584
+ self.coindays_destroyed: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, _m(acc, 'coindays_destroyed'))
2403
2585
  self.satblocks_destroyed: MetricPattern11[Sats] = MetricPattern11(client, _m(acc, 'satblocks_destroyed'))
2404
2586
  self.satdays_destroyed: MetricPattern11[Sats] = MetricPattern11(client, _m(acc, 'satdays_destroyed'))
2405
- self.sent: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, _m(acc, 'sent'))
2587
+ self.sent: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, _m(acc, 'sent'))
2588
+ self.sent_14d_ema: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, 'sent_14d_ema'))
2589
+
2590
+ class InvestedMaxMinPercentilesSpotPattern:
2591
+ """Pattern struct for repeated tree structure."""
2592
+
2593
+ def __init__(self, client: BrkClientBase, acc: str):
2594
+ """Create pattern node with accumulated metric name."""
2595
+ self.invested_capital: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, _m(acc, 'invested_capital'))
2596
+ self.max: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'max_cost_basis'))
2597
+ self.min: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'min_cost_basis'))
2598
+ self.percentiles: Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern = Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern(client, _m(acc, 'cost_basis'))
2599
+ self.spot_cost_basis_percentile: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'spot_cost_basis_percentile'))
2600
+ self.spot_invested_capital_percentile: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'spot_invested_capital_percentile'))
2601
+
2602
+ class InvestedSupplyPattern:
2603
+ """Pattern struct for repeated tree structure."""
2604
+
2605
+ def __init__(self, client: BrkClientBase, acc: str):
2606
+ """Create pattern node with accumulated metric name."""
2607
+ self.invested_capital_in_loss_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_loss_pct'))
2608
+ self.invested_capital_in_profit_pct: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'invested_capital_in_profit_pct'))
2609
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2610
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2406
2611
 
2407
- class SplitPattern2(Generic[T]):
2612
+ class CloseHighLowOpenPattern2(Generic[T]):
2408
2613
  """Pattern struct for repeated tree structure."""
2409
2614
 
2410
2615
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2414,7 +2619,16 @@ class SplitPattern2(Generic[T]):
2414
2619
  self.low: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'low'))
2415
2620
  self.open: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'open'))
2416
2621
 
2417
- class SegwitAdoptionPattern:
2622
+ class _30dHalvedTotalPattern:
2623
+ """Pattern struct for repeated tree structure."""
2624
+
2625
+ def __init__(self, client: BrkClientBase, acc: str):
2626
+ """Create pattern node with accumulated metric name."""
2627
+ self._30d_change: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, _m(acc, '_30d_change'))
2628
+ self.halved: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, _m(acc, 'supply_halved'))
2629
+ self.total: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, _m(acc, 'supply'))
2630
+
2631
+ class BaseCumulativeSumPattern:
2418
2632
  """Pattern struct for repeated tree structure."""
2419
2633
 
2420
2634
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2423,7 +2637,16 @@ class SegwitAdoptionPattern:
2423
2637
  self.cumulative: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'cumulative'))
2424
2638
  self.sum: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'sum'))
2425
2639
 
2426
- class ActiveSupplyPattern:
2640
+ class BitcoinDollarsSatsPattern2:
2641
+ """Pattern struct for repeated tree structure."""
2642
+
2643
+ def __init__(self, client: BrkClientBase, acc: str):
2644
+ """Create pattern node with accumulated metric name."""
2645
+ self.bitcoin: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern(client, _m(acc, 'btc'))
2646
+ self.dollars: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Dollars] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, _m(acc, 'usd'))
2647
+ self.sats: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Sats] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, acc)
2648
+
2649
+ class BitcoinDollarsSatsPattern4:
2427
2650
  """Pattern struct for repeated tree structure."""
2428
2651
 
2429
2652
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2432,7 +2655,7 @@ class ActiveSupplyPattern:
2432
2655
  self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'usd'))
2433
2656
  self.sats: MetricPattern1[Sats] = MetricPattern1(client, acc)
2434
2657
 
2435
- class _2015Pattern:
2658
+ class BitcoinDollarsSatsPattern5:
2436
2659
  """Pattern struct for repeated tree structure."""
2437
2660
 
2438
2661
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2441,43 +2664,33 @@ class _2015Pattern:
2441
2664
  self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'usd'))
2442
2665
  self.sats: MetricPattern4[Sats] = MetricPattern4(client, acc)
2443
2666
 
2444
- class CoinbasePattern:
2445
- """Pattern struct for repeated tree structure."""
2446
-
2447
- def __init__(self, client: BrkClientBase, acc: str):
2448
- """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)
2452
-
2453
- class UnclaimedRewardsPattern:
2667
+ class BitcoinDollarsSatsPattern6:
2454
2668
  """Pattern struct for repeated tree structure."""
2455
2669
 
2456
2670
  def __init__(self, client: BrkClientBase, acc: str):
2457
2671
  """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)
2672
+ self.bitcoin: CumulativeSumPattern[Bitcoin] = CumulativeSumPattern(client, _m(acc, 'btc'))
2673
+ self.dollars: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'usd'))
2674
+ self.sats: CumulativeSumPattern[Sats] = CumulativeSumPattern(client, acc)
2461
2675
 
2462
- class CoinbasePattern2:
2676
+ class BitcoinDollarsSatsPattern3:
2463
2677
  """Pattern struct for repeated tree structure."""
2464
2678
 
2465
2679
  def __init__(self, client: BrkClientBase, acc: str):
2466
2680
  """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)
2681
+ self.bitcoin: CumulativeSumPattern2[Bitcoin] = CumulativeSumPattern2(client, _m(acc, 'btc'))
2682
+ self.dollars: CumulativeSumPattern[Dollars] = CumulativeSumPattern(client, _m(acc, 'usd'))
2683
+ self.sats: CumulativeSumPattern[Sats] = CumulativeSumPattern(client, acc)
2470
2684
 
2471
- class CostBasisPattern2:
2685
+ class _30dCountPattern:
2472
2686
  """Pattern struct for repeated tree structure."""
2473
2687
 
2474
2688
  def __init__(self, client: BrkClientBase, acc: str):
2475
2689
  """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'))
2690
+ self._30d_change: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, '30d_change'))
2691
+ self.count: MetricPattern1[StoredU64] = MetricPattern1(client, acc)
2479
2692
 
2480
- class ActivePricePattern:
2693
+ class DollarsSatsPattern:
2481
2694
  """Pattern struct for repeated tree structure."""
2482
2695
 
2483
2696
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2485,7 +2698,7 @@ class ActivePricePattern:
2485
2698
  self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, acc)
2486
2699
  self.sats: MetricPattern1[SatsFract] = MetricPattern1(client, _m(acc, 'sats'))
2487
2700
 
2488
- class _0sdUsdPattern:
2701
+ class DollarsSatsPattern2:
2489
2702
  """Pattern struct for repeated tree structure."""
2490
2703
 
2491
2704
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2493,23 +2706,15 @@ class _0sdUsdPattern:
2493
2706
  self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, acc)
2494
2707
  self.sats: MetricPattern4[SatsFract] = MetricPattern4(client, _m(acc, 'sats'))
2495
2708
 
2496
- class SupplyPattern2:
2497
- """Pattern struct for repeated tree structure."""
2498
-
2499
- def __init__(self, client: BrkClientBase, acc: str):
2500
- """Create pattern node with accumulated metric name."""
2501
- self.halved: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'halved'))
2502
- self.total: ActiveSupplyPattern = ActiveSupplyPattern(client, acc)
2503
-
2504
- class CostBasisPattern:
2709
+ class MaxMinPattern:
2505
2710
  """Pattern struct for repeated tree structure."""
2506
2711
 
2507
2712
  def __init__(self, client: BrkClientBase, acc: str):
2508
2713
  """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'))
2714
+ self.max: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'max_cost_basis'))
2715
+ self.min: DollarsSatsPattern = DollarsSatsPattern(client, _m(acc, 'min_cost_basis'))
2511
2716
 
2512
- class _1dReturns1mSdPattern:
2717
+ class SdSmaPattern:
2513
2718
  """Pattern struct for repeated tree structure."""
2514
2719
 
2515
2720
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2517,15 +2722,15 @@ class _1dReturns1mSdPattern:
2517
2722
  self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
2518
2723
  self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
2519
2724
 
2520
- class RelativePattern4:
2725
+ class UtxoPattern:
2521
2726
  """Pattern struct for repeated tree structure."""
2522
2727
 
2523
2728
  def __init__(self, client: BrkClientBase, acc: str):
2524
2729
  """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'))
2730
+ self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, acc)
2731
+ self.utxo_count_30d_change: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, '30d_change'))
2527
2732
 
2528
- class BlockCountPattern(Generic[T]):
2733
+ class CumulativeSumPattern(Generic[T]):
2529
2734
  """Pattern struct for repeated tree structure."""
2530
2735
 
2531
2736
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2533,7 +2738,7 @@ class BlockCountPattern(Generic[T]):
2533
2738
  self.cumulative: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'cumulative'))
2534
2739
  self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2535
2740
 
2536
- class BitcoinPattern2(Generic[T]):
2741
+ class CumulativeSumPattern2(Generic[T]):
2537
2742
  """Pattern struct for repeated tree structure."""
2538
2743
 
2539
2744
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2541,676 +2746,465 @@ class BitcoinPattern2(Generic[T]):
2541
2746
  self.cumulative: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'cumulative'))
2542
2747
  self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2543
2748
 
2544
- class SatsPattern(Generic[T]):
2749
+ class OhlcSplitPattern2(Generic[T]):
2545
2750
  """Pattern struct for repeated tree structure."""
2546
2751
 
2547
2752
  def __init__(self, client: BrkClientBase, acc: str):
2548
2753
  """Create pattern node with accumulated metric name."""
2549
2754
  self.ohlc: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'ohlc_sats'))
2550
- self.split: SplitPattern2[T] = SplitPattern2(client, _m(acc, 'sats'))
2755
+ self.split: CloseHighLowOpenPattern2[T] = CloseHighLowOpenPattern2(client, _m(acc, 'sats'))
2551
2756
 
2552
- class RealizedPriceExtraPattern:
2757
+ class RatioPattern2:
2553
2758
  """Pattern struct for repeated tree structure."""
2554
2759
 
2555
2760
  def __init__(self, client: BrkClientBase, acc: str):
2556
2761
  """Create pattern node with accumulated metric name."""
2557
2762
  self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, acc)
2558
2763
 
2559
- class OutputsPattern:
2560
- """Pattern struct for repeated tree structure."""
2561
-
2562
- def __init__(self, client: BrkClientBase, acc: str):
2563
- """Create pattern node with accumulated metric name."""
2564
- self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, acc)
2565
-
2566
2764
  # Metrics tree classes
2567
2765
 
2568
- class MetricsTree_Addresses:
2569
- """Metrics tree node."""
2570
-
2571
- 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')
2603
-
2604
2766
  class MetricsTree_Blocks_Difficulty:
2605
2767
  """Metrics tree node."""
2606
2768
 
2607
2769
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2608
- self.adjustment: MetricPattern1[StoredF32] = MetricPattern1(client, 'difficulty_adjustment')
2770
+ self.raw: MetricPattern1[StoredF64] = MetricPattern1(client, 'difficulty')
2609
2771
  self.as_hash: MetricPattern1[StoredF32] = MetricPattern1(client, 'difficulty_as_hash')
2772
+ self.adjustment: MetricPattern1[StoredF32] = MetricPattern1(client, 'difficulty_adjustment')
2773
+ self.epoch: MetricPattern4[DifficultyEpoch] = MetricPattern4(client, 'difficultyepoch')
2610
2774
  self.blocks_before_next_adjustment: MetricPattern1[StoredU32] = MetricPattern1(client, 'blocks_before_next_difficulty_adjustment')
2611
2775
  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')
2614
2776
 
2615
- class MetricsTree_Blocks_Halving:
2777
+ class MetricsTree_Blocks_Time:
2616
2778
  """Metrics tree node."""
2617
2779
 
2618
2780
  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')
2781
+ self.timestamp: MetricPattern1[Timestamp] = MetricPattern1(client, 'timestamp')
2782
+ self.date: MetricPattern11[Date] = MetricPattern11(client, 'date')
2783
+ self.timestamp_monotonic: MetricPattern11[Timestamp] = MetricPattern11(client, 'timestamp_monotonic')
2784
+
2785
+ class MetricsTree_Blocks_Count:
2786
+ """Metrics tree node."""
2787
+
2788
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
2789
+ self.block_count_target: MetricPattern4[StoredU64] = MetricPattern4(client, 'block_count_target')
2790
+ self.block_count: CumulativeSumPattern[StoredU32] = CumulativeSumPattern(client, 'block_count')
2791
+ self._24h_start: MetricPattern11[Height] = MetricPattern11(client, '24h_start')
2792
+ self._1w_start: MetricPattern11[Height] = MetricPattern11(client, '1w_start')
2793
+ self._1m_start: MetricPattern11[Height] = MetricPattern11(client, '1m_start')
2794
+ self._1y_start: MetricPattern11[Height] = MetricPattern11(client, '1y_start')
2795
+ self._24h_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '24h_block_count')
2796
+ self._1w_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '1w_block_count')
2797
+ self._1m_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '1m_block_count')
2798
+ self._1y_block_count: MetricPattern1[StoredU32] = MetricPattern1(client, '1y_block_count')
2622
2799
 
2623
2800
  class MetricsTree_Blocks_Mining:
2624
2801
  """Metrics tree node."""
2625
2802
 
2626
2803
  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
2804
  self.hash_rate: MetricPattern1[StoredF64] = MetricPattern1(client, 'hash_rate')
2633
- self.hash_rate_1m_sma: MetricPattern4[StoredF32] = MetricPattern4(client, 'hash_rate_1m_sma')
2634
2805
  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')
2806
+ self.hash_rate_1m_sma: MetricPattern4[StoredF32] = MetricPattern4(client, 'hash_rate_1m_sma')
2636
2807
  self.hash_rate_2m_sma: MetricPattern4[StoredF32] = MetricPattern4(client, 'hash_rate_2m_sma')
2808
+ self.hash_rate_1y_sma: MetricPattern4[StoredF32] = MetricPattern4(client, 'hash_rate_1y_sma')
2809
+ self.hash_rate_ath: MetricPattern1[StoredF64] = MetricPattern1(client, 'hash_rate_ath')
2810
+ self.hash_rate_drawdown: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_rate_drawdown')
2811
+ self.hash_price_ths: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_ths')
2812
+ self.hash_price_ths_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_ths_min')
2813
+ self.hash_price_phs: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_phs')
2814
+ self.hash_price_phs_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_phs_min')
2815
+ self.hash_price_rebound: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_price_rebound')
2816
+ self.hash_value_ths: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_ths')
2817
+ self.hash_value_ths_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_ths_min')
2637
2818
  self.hash_value_phs: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_phs')
2638
2819
  self.hash_value_phs_min: MetricPattern1[StoredF32] = MetricPattern1(client, 'hash_value_phs_min')
2639
2820
  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
2821
 
2643
2822
  class MetricsTree_Blocks_Rewards_24hCoinbaseSum:
2644
2823
  """Metrics tree node."""
2645
2824
 
2646
2825
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2826
+ self.sats: MetricPattern11[Sats] = MetricPattern11(client, '24h_coinbase_sum')
2647
2827
  self.bitcoin: MetricPattern11[Bitcoin] = MetricPattern11(client, '24h_coinbase_sum_btc')
2648
2828
  self.dollars: MetricPattern11[Dollars] = MetricPattern11(client, '24h_coinbase_sum_usd')
2649
- self.sats: MetricPattern11[Sats] = MetricPattern11(client, '24h_coinbase_sum')
2650
2829
 
2651
2830
  class MetricsTree_Blocks_Rewards:
2652
2831
  """Metrics tree node."""
2653
2832
 
2654
2833
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2655
2834
  self._24h_coinbase_sum: MetricsTree_Blocks_Rewards_24hCoinbaseSum = MetricsTree_Blocks_Rewards_24hCoinbaseSum(client)
2656
- self.coinbase: CoinbasePattern = CoinbasePattern(client, 'coinbase')
2835
+ self.coinbase: BitcoinDollarsSatsPattern2 = BitcoinDollarsSatsPattern2(client, 'coinbase')
2836
+ self.subsidy: BitcoinDollarsSatsPattern2 = BitcoinDollarsSatsPattern2(client, 'subsidy')
2837
+ self.unclaimed_rewards: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, 'unclaimed_rewards')
2657
2838
  self.fee_dominance: MetricPattern6[StoredF32] = MetricPattern6(client, 'fee_dominance')
2658
- self.subsidy: CoinbasePattern = CoinbasePattern(client, 'subsidy')
2659
2839
  self.subsidy_dominance: MetricPattern6[StoredF32] = MetricPattern6(client, 'subsidy_dominance')
2660
2840
  self.subsidy_usd_1y_sma: MetricPattern4[Dollars] = MetricPattern4(client, 'subsidy_usd_1y_sma')
2661
- self.unclaimed_rewards: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, 'unclaimed_rewards')
2841
+
2842
+ class MetricsTree_Blocks_Halving:
2843
+ """Metrics tree node."""
2844
+
2845
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
2846
+ self.epoch: MetricPattern4[HalvingEpoch] = MetricPattern4(client, 'halvingepoch')
2847
+ self.blocks_before_next_halving: MetricPattern1[StoredU32] = MetricPattern1(client, 'blocks_before_next_halving')
2848
+ self.days_before_next_halving: MetricPattern1[StoredF32] = MetricPattern1(client, 'days_before_next_halving')
2662
2849
 
2663
2850
  class MetricsTree_Blocks_Size:
2664
2851
  """Metrics tree node."""
2665
2852
 
2666
2853
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2667
- self.average: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_average')
2668
2854
  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')
2855
+ self.average: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_average')
2671
2856
  self.min: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_min')
2857
+ self.max: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_max')
2672
2858
  self.pct10: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_pct10')
2673
2859
  self.pct25: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_pct25')
2860
+ self.median: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_median')
2674
2861
  self.pct75: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_pct75')
2675
2862
  self.pct90: MetricPattern6[StoredU64] = MetricPattern6(client, 'block_size_pct90')
2676
2863
  self.sum: MetricPattern2[StoredU64] = MetricPattern2(client, 'block_size_sum')
2677
2864
 
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
2865
  class MetricsTree_Blocks:
2687
2866
  """Metrics tree node."""
2688
2867
 
2689
2868
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2690
2869
  self.blockhash: MetricPattern11[BlockHash] = MetricPattern11(client, 'blockhash')
2691
- self.count: MetricsTree_Blocks_Count = MetricsTree_Blocks_Count(client)
2692
2870
  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')
2871
+ self.time: MetricsTree_Blocks_Time = MetricsTree_Blocks_Time(client)
2872
+ self.total_size: MetricPattern11[StoredU64] = MetricPattern11(client, 'total_size')
2873
+ self.weight: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Weight] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'block_weight')
2874
+ self.count: MetricsTree_Blocks_Count = MetricsTree_Blocks_Count(client)
2875
+ self.interval: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[Timestamp] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'block_interval')
2696
2876
  self.mining: MetricsTree_Blocks_Mining = MetricsTree_Blocks_Mining(client)
2697
2877
  self.rewards: MetricsTree_Blocks_Rewards = MetricsTree_Blocks_Rewards(client)
2878
+ self.halving: MetricsTree_Blocks_Halving = MetricsTree_Blocks_Halving(client)
2879
+ self.vbytes: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'block_vbytes')
2698
2880
  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')
2881
+ self.fullness: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'block_fullness')
2703
2882
 
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')
2731
-
2732
- class MetricsTree_Cointime_Pricing:
2883
+ class MetricsTree_Transactions_Count:
2733
2884
  """Metrics tree node."""
2734
2885
 
2735
2886
  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')
2887
+ self.tx_count: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'tx_count')
2888
+ self.is_coinbase: MetricPattern27[StoredBool] = MetricPattern27(client, 'is_coinbase')
2744
2889
 
2745
- class MetricsTree_Cointime_ReserveRisk:
2890
+ class MetricsTree_Transactions_Size:
2746
2891
  """Metrics tree node."""
2747
2892
 
2748
2893
  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')
2894
+ self.vsize: AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern[VSize] = AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern(client, 'tx_vsize')
2895
+ self.weight: AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern[Weight] = AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern(client, 'tx_weight')
2752
2896
 
2753
- class MetricsTree_Cointime_Supply:
2897
+ class MetricsTree_Transactions_Fees_Fee:
2754
2898
  """Metrics tree node."""
2755
2899
 
2756
2900
  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')
2901
+ self.txindex: MetricPattern27[Sats] = MetricPattern27(client, 'fee')
2902
+ self.sats: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Sats] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'fee')
2903
+ self.bitcoin: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Bitcoin] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'fee_btc')
2904
+ self.dollars: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[Dollars] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'fee_usd')
2759
2905
 
2760
- class MetricsTree_Cointime_Value:
2906
+ class MetricsTree_Transactions_Fees:
2761
2907
  """Metrics tree node."""
2762
2908
 
2763
2909
  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')
2910
+ self.input_value: MetricPattern27[Sats] = MetricPattern27(client, 'input_value')
2911
+ self.output_value: MetricPattern27[Sats] = MetricPattern27(client, 'output_value')
2912
+ self.fee: MetricsTree_Transactions_Fees_Fee = MetricsTree_Transactions_Fees_Fee(client)
2913
+ self.fee_rate: AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern[FeeRate] = AverageMaxMedianMinPct10Pct25Pct75Pct90TxindexPattern(client, 'fee_rate')
2768
2914
 
2769
- class MetricsTree_Cointime:
2915
+ class MetricsTree_Transactions_Versions:
2770
2916
  """Metrics tree node."""
2771
2917
 
2772
2918
  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)
2919
+ self.v1: CumulativeSumPattern[StoredU64] = CumulativeSumPattern(client, 'tx_v1')
2920
+ self.v2: CumulativeSumPattern[StoredU64] = CumulativeSumPattern(client, 'tx_v2')
2921
+ self.v3: CumulativeSumPattern[StoredU64] = CumulativeSumPattern(client, 'tx_v3')
2780
2922
 
2781
- class MetricsTree_Constants:
2923
+ class MetricsTree_Transactions_Volume:
2782
2924
  """Metrics tree node."""
2783
2925
 
2784
2926
  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')
2927
+ self.sent_sum: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, 'sent_sum')
2928
+ self.received_sum: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, 'received_sum')
2929
+ self.annualized_volume: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'annualized_volume')
2930
+ self.tx_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'tx_per_sec')
2931
+ self.outputs_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'outputs_per_sec')
2932
+ self.inputs_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'inputs_per_sec')
2803
2933
 
2804
- class MetricsTree_Distribution_AddressActivity:
2934
+ class MetricsTree_Transactions:
2805
2935
  """Metrics tree node."""
2806
2936
 
2807
2937
  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')
2938
+ self.first_txindex: MetricPattern11[TxIndex] = MetricPattern11(client, 'first_txindex')
2939
+ self.height: MetricPattern27[Height] = MetricPattern27(client, 'height')
2940
+ self.txid: MetricPattern27[Txid] = MetricPattern27(client, 'txid')
2941
+ self.txversion: MetricPattern27[TxVersion] = MetricPattern27(client, 'txversion')
2942
+ self.rawlocktime: MetricPattern27[RawLockTime] = MetricPattern27(client, 'rawlocktime')
2943
+ self.base_size: MetricPattern27[StoredU32] = MetricPattern27(client, 'base_size')
2944
+ self.total_size: MetricPattern27[StoredU32] = MetricPattern27(client, 'total_size')
2945
+ self.is_explicitly_rbf: MetricPattern27[StoredBool] = MetricPattern27(client, 'is_explicitly_rbf')
2946
+ self.first_txinindex: MetricPattern27[TxInIndex] = MetricPattern27(client, 'first_txinindex')
2947
+ self.first_txoutindex: MetricPattern27[TxOutIndex] = MetricPattern27(client, 'first_txoutindex')
2948
+ self.count: MetricsTree_Transactions_Count = MetricsTree_Transactions_Count(client)
2949
+ self.size: MetricsTree_Transactions_Size = MetricsTree_Transactions_Size(client)
2950
+ self.fees: MetricsTree_Transactions_Fees = MetricsTree_Transactions_Fees(client)
2951
+ self.versions: MetricsTree_Transactions_Versions = MetricsTree_Transactions_Versions(client)
2952
+ self.volume: MetricsTree_Transactions_Volume = MetricsTree_Transactions_Volume(client)
2817
2953
 
2818
- class MetricsTree_Distribution_AddressCohorts_AmountRange:
2954
+ class MetricsTree_Inputs_Spent:
2819
2955
  """Metrics tree node."""
2820
2956
 
2821
2957
  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')
2958
+ self.txoutindex: MetricPattern12[TxOutIndex] = MetricPattern12(client, 'txoutindex')
2959
+ self.value: MetricPattern12[Sats] = MetricPattern12(client, 'value')
2837
2960
 
2838
- class MetricsTree_Distribution_AddressCohorts_GeAmount:
2961
+ class MetricsTree_Inputs:
2839
2962
  """Metrics tree node."""
2840
2963
 
2841
2964
  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')
2965
+ self.first_txinindex: MetricPattern11[TxInIndex] = MetricPattern11(client, 'first_txinindex')
2966
+ self.outpoint: MetricPattern12[OutPoint] = MetricPattern12(client, 'outpoint')
2967
+ self.txindex: MetricPattern12[TxIndex] = MetricPattern12(client, 'txindex')
2968
+ self.outputtype: MetricPattern12[OutputType] = MetricPattern12(client, 'outputtype')
2969
+ self.typeindex: MetricPattern12[TypeIndex] = MetricPattern12(client, 'typeindex')
2970
+ self.spent: MetricsTree_Inputs_Spent = MetricsTree_Inputs_Spent(client)
2971
+ self.count: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'input_count')
2855
2972
 
2856
- class MetricsTree_Distribution_AddressCohorts_LtAmount:
2973
+ class MetricsTree_Outputs_Spent:
2857
2974
  """Metrics tree node."""
2858
2975
 
2859
2976
  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')
2977
+ self.txinindex: MetricPattern15[TxInIndex] = MetricPattern15(client, 'txinindex')
2873
2978
 
2874
- class MetricsTree_Distribution_AddressCohorts:
2979
+ class MetricsTree_Outputs_Count:
2875
2980
  """Metrics tree node."""
2876
2981
 
2877
2982
  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)
2983
+ self.total_count: AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'output_count')
2984
+ self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, 'exact_utxo_count')
2881
2985
 
2882
- class MetricsTree_Distribution_AddressesData:
2986
+ class MetricsTree_Outputs:
2883
2987
  """Metrics tree node."""
2884
2988
 
2885
2989
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2886
- self.empty: MetricPattern32[EmptyAddressData] = MetricPattern32(client, 'emptyaddressdata')
2887
- self.loaded: MetricPattern31[LoadedAddressData] = MetricPattern31(client, 'loadedaddressdata')
2990
+ self.first_txoutindex: MetricPattern11[TxOutIndex] = MetricPattern11(client, 'first_txoutindex')
2991
+ self.value: MetricPattern15[Sats] = MetricPattern15(client, 'value')
2992
+ self.outputtype: MetricPattern15[OutputType] = MetricPattern15(client, 'outputtype')
2993
+ self.typeindex: MetricPattern15[TypeIndex] = MetricPattern15(client, 'typeindex')
2994
+ self.txindex: MetricPattern15[TxIndex] = MetricPattern15(client, 'txindex')
2995
+ self.spent: MetricsTree_Outputs_Spent = MetricsTree_Outputs_Spent(client)
2996
+ self.count: MetricsTree_Outputs_Count = MetricsTree_Outputs_Count(client)
2888
2997
 
2889
- class MetricsTree_Distribution_AnyAddressIndexes:
2998
+ class MetricsTree_Addresses:
2890
2999
  """Metrics tree node."""
2891
3000
 
2892
3001
  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')
3002
+ self.first_p2pk65addressindex: MetricPattern11[P2PK65AddressIndex] = MetricPattern11(client, 'first_p2pk65addressindex')
3003
+ self.first_p2pk33addressindex: MetricPattern11[P2PK33AddressIndex] = MetricPattern11(client, 'first_p2pk33addressindex')
3004
+ self.first_p2pkhaddressindex: MetricPattern11[P2PKHAddressIndex] = MetricPattern11(client, 'first_p2pkhaddressindex')
3005
+ self.first_p2shaddressindex: MetricPattern11[P2SHAddressIndex] = MetricPattern11(client, 'first_p2shaddressindex')
3006
+ self.first_p2wpkhaddressindex: MetricPattern11[P2WPKHAddressIndex] = MetricPattern11(client, 'first_p2wpkhaddressindex')
3007
+ self.first_p2wshaddressindex: MetricPattern11[P2WSHAddressIndex] = MetricPattern11(client, 'first_p2wshaddressindex')
3008
+ self.first_p2traddressindex: MetricPattern11[P2TRAddressIndex] = MetricPattern11(client, 'first_p2traddressindex')
3009
+ self.first_p2aaddressindex: MetricPattern11[P2AAddressIndex] = MetricPattern11(client, 'first_p2aaddressindex')
3010
+ self.p2pk65bytes: MetricPattern19[P2PK65Bytes] = MetricPattern19(client, 'p2pk65bytes')
3011
+ self.p2pk33bytes: MetricPattern18[P2PK33Bytes] = MetricPattern18(client, 'p2pk33bytes')
3012
+ self.p2pkhbytes: MetricPattern20[P2PKHBytes] = MetricPattern20(client, 'p2pkhbytes')
3013
+ self.p2shbytes: MetricPattern21[P2SHBytes] = MetricPattern21(client, 'p2shbytes')
3014
+ self.p2wpkhbytes: MetricPattern23[P2WPKHBytes] = MetricPattern23(client, 'p2wpkhbytes')
3015
+ self.p2wshbytes: MetricPattern24[P2WSHBytes] = MetricPattern24(client, 'p2wshbytes')
3016
+ self.p2trbytes: MetricPattern22[P2TRBytes] = MetricPattern22(client, 'p2trbytes')
3017
+ self.p2abytes: MetricPattern16[P2ABytes] = MetricPattern16(client, 'p2abytes')
2901
3018
 
2902
- class MetricsTree_Distribution_GrowthRate:
3019
+ class MetricsTree_Scripts_Count:
2903
3020
  """Metrics tree node."""
2904
3021
 
2905
3022
  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')
3023
+ self.p2a: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2a_count')
3024
+ self.p2ms: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2ms_count')
3025
+ self.p2pk33: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pk33_count')
3026
+ self.p2pk65: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pk65_count')
3027
+ self.p2pkh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pkh_count')
3028
+ self.p2sh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2sh_count')
3029
+ self.p2tr: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2tr_count')
3030
+ self.p2wpkh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2wpkh_count')
3031
+ self.p2wsh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2wsh_count')
3032
+ self.opreturn: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'opreturn_count')
3033
+ self.emptyoutput: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'emptyoutput_count')
3034
+ self.unknownoutput: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'unknownoutput_count')
3035
+ self.segwit: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'segwit_count')
3036
+ self.taproot_adoption: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'taproot_adoption')
3037
+ self.segwit_adoption: BaseCumulativeSumPattern = BaseCumulativeSumPattern(client, 'segwit_adoption')
2915
3038
 
2916
- class MetricsTree_Distribution_NewAddrCount:
3039
+ class MetricsTree_Scripts_Value:
2917
3040
  """Metrics tree node."""
2918
3041
 
2919
3042
  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')
3043
+ self.opreturn: BitcoinDollarsSatsPattern2 = BitcoinDollarsSatsPattern2(client, 'opreturn_value')
2929
3044
 
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:
3045
+ class MetricsTree_Scripts:
2957
3046
  """Metrics tree node."""
2958
3047
 
2959
3048
  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')
3049
+ self.first_emptyoutputindex: MetricPattern11[EmptyOutputIndex] = MetricPattern11(client, 'first_emptyoutputindex')
3050
+ self.first_opreturnindex: MetricPattern11[OpReturnIndex] = MetricPattern11(client, 'first_opreturnindex')
3051
+ self.first_p2msoutputindex: MetricPattern11[P2MSOutputIndex] = MetricPattern11(client, 'first_p2msoutputindex')
3052
+ self.first_unknownoutputindex: MetricPattern11[UnknownOutputIndex] = MetricPattern11(client, 'first_unknownoutputindex')
3053
+ self.empty_to_txindex: MetricPattern9[TxIndex] = MetricPattern9(client, 'txindex')
3054
+ self.opreturn_to_txindex: MetricPattern14[TxIndex] = MetricPattern14(client, 'txindex')
3055
+ self.p2ms_to_txindex: MetricPattern17[TxIndex] = MetricPattern17(client, 'txindex')
3056
+ self.unknown_to_txindex: MetricPattern28[TxIndex] = MetricPattern28(client, 'txindex')
3057
+ self.count: MetricsTree_Scripts_Count = MetricsTree_Scripts_Count(client)
3058
+ self.value: MetricsTree_Scripts_Value = MetricsTree_Scripts_Value(client)
2963
3059
 
2964
- class MetricsTree_Distribution_UtxoCohorts_All_Relative:
3060
+ class MetricsTree_Positions:
2965
3061
  """Metrics tree node."""
2966
3062
 
2967
3063
  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')
3064
+ self.block_position: MetricPattern11[BlkPosition] = MetricPattern11(client, 'position')
3065
+ self.tx_position: MetricPattern27[BlkPosition] = MetricPattern27(client, 'position')
2974
3066
 
2975
- class MetricsTree_Distribution_UtxoCohorts_All:
3067
+ class MetricsTree_Cointime_Activity:
2976
3068
  """Metrics tree node."""
2977
3069
 
2978
3070
  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, '')
3071
+ self.coinblocks_created: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'coinblocks_created')
3072
+ self.coinblocks_stored: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'coinblocks_stored')
3073
+ self.liveliness: MetricPattern1[StoredF64] = MetricPattern1(client, 'liveliness')
3074
+ self.vaultedness: MetricPattern1[StoredF64] = MetricPattern1(client, 'vaultedness')
3075
+ self.activity_to_vaultedness_ratio: MetricPattern1[StoredF64] = MetricPattern1(client, 'activity_to_vaultedness_ratio')
2986
3076
 
2987
- class MetricsTree_Distribution_UtxoCohorts_AmountRange:
3077
+ class MetricsTree_Cointime_Supply:
2988
3078
  """Metrics tree node."""
2989
3079
 
2990
3080
  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')
3081
+ self.vaulted_supply: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, 'vaulted_supply')
3082
+ self.active_supply: BitcoinDollarsSatsPattern4 = BitcoinDollarsSatsPattern4(client, 'active_supply')
3006
3083
 
3007
- class MetricsTree_Distribution_UtxoCohorts_Epoch:
3084
+ class MetricsTree_Cointime_Value:
3008
3085
  """Metrics tree node."""
3009
3086
 
3010
3087
  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')
3088
+ self.cointime_value_destroyed: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'cointime_value_destroyed')
3089
+ self.cointime_value_created: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'cointime_value_created')
3090
+ self.cointime_value_stored: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'cointime_value_stored')
3091
+ self.vocdd: CumulativeSumPattern[StoredF64] = CumulativeSumPattern(client, 'vocdd')
3016
3092
 
3017
- class MetricsTree_Distribution_UtxoCohorts_GeAmount:
3093
+ class MetricsTree_Cointime_Cap:
3018
3094
  """Metrics tree node."""
3019
3095
 
3020
3096
  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')
3097
+ self.thermo_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'thermo_cap')
3098
+ self.investor_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'investor_cap')
3099
+ self.vaulted_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'vaulted_cap')
3100
+ self.active_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'active_cap')
3101
+ self.cointime_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'cointime_cap')
3034
3102
 
3035
- class MetricsTree_Distribution_UtxoCohorts_LtAmount:
3103
+ class MetricsTree_Cointime_Pricing:
3036
3104
  """Metrics tree node."""
3037
3105
 
3038
3106
  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')
3107
+ self.vaulted_price: DollarsSatsPattern = DollarsSatsPattern(client, 'vaulted_price')
3108
+ self.vaulted_price_ratio: RatioPattern = RatioPattern(client, 'vaulted_price_ratio')
3109
+ self.active_price: DollarsSatsPattern = DollarsSatsPattern(client, 'active_price')
3110
+ self.active_price_ratio: RatioPattern = RatioPattern(client, 'active_price_ratio')
3111
+ self.true_market_mean: DollarsSatsPattern = DollarsSatsPattern(client, 'true_market_mean')
3112
+ self.true_market_mean_ratio: RatioPattern = RatioPattern(client, 'true_market_mean_ratio')
3113
+ self.cointime_price: DollarsSatsPattern = DollarsSatsPattern(client, 'cointime_price')
3114
+ self.cointime_price_ratio: RatioPattern = RatioPattern(client, 'cointime_price_ratio')
3052
3115
 
3053
- class MetricsTree_Distribution_UtxoCohorts_MaxAge:
3116
+ class MetricsTree_Cointime_Adjusted:
3054
3117
  """Metrics tree node."""
3055
3118
 
3056
3119
  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')
3120
+ self.cointime_adj_inflation_rate: MetricPattern4[StoredF32] = MetricPattern4(client, 'cointime_adj_inflation_rate')
3121
+ self.cointime_adj_tx_btc_velocity: MetricPattern4[StoredF64] = MetricPattern4(client, 'cointime_adj_tx_btc_velocity')
3122
+ self.cointime_adj_tx_usd_velocity: MetricPattern4[StoredF64] = MetricPattern4(client, 'cointime_adj_tx_usd_velocity')
3075
3123
 
3076
- class MetricsTree_Distribution_UtxoCohorts_MinAge:
3124
+ class MetricsTree_Cointime_ReserveRisk:
3077
3125
  """Metrics tree node."""
3078
3126
 
3079
3127
  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')
3128
+ self.vocdd_365d_median: MetricPattern6[StoredF64] = MetricPattern6(client, 'vocdd_365d_median')
3129
+ self.hodl_bank: MetricPattern6[StoredF64] = MetricPattern6(client, 'hodl_bank')
3130
+ self.reserve_risk: MetricPattern4[StoredF64] = MetricPattern4(client, 'reserve_risk')
3098
3131
 
3099
- class MetricsTree_Distribution_UtxoCohorts_Term_Long:
3132
+ class MetricsTree_Cointime:
3100
3133
  """Metrics tree node."""
3101
3134
 
3102
3135
  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')
3136
+ self.activity: MetricsTree_Cointime_Activity = MetricsTree_Cointime_Activity(client)
3137
+ self.supply: MetricsTree_Cointime_Supply = MetricsTree_Cointime_Supply(client)
3138
+ self.value: MetricsTree_Cointime_Value = MetricsTree_Cointime_Value(client)
3139
+ self.cap: MetricsTree_Cointime_Cap = MetricsTree_Cointime_Cap(client)
3140
+ self.pricing: MetricsTree_Cointime_Pricing = MetricsTree_Cointime_Pricing(client)
3141
+ self.adjusted: MetricsTree_Cointime_Adjusted = MetricsTree_Cointime_Adjusted(client)
3142
+ self.reserve_risk: MetricsTree_Cointime_ReserveRisk = MetricsTree_Cointime_ReserveRisk(client)
3110
3143
 
3111
- class MetricsTree_Distribution_UtxoCohorts_Term_Short:
3144
+ class MetricsTree_Constants:
3112
3145
  """Metrics tree node."""
3113
3146
 
3114
3147
  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')
3148
+ self.constant_0: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_0')
3149
+ self.constant_1: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_1')
3150
+ self.constant_2: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_2')
3151
+ self.constant_3: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_3')
3152
+ self.constant_4: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_4')
3153
+ self.constant_20: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_20')
3154
+ self.constant_30: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_30')
3155
+ self.constant_38_2: MetricPattern1[StoredF32] = MetricPattern1(client, 'constant_38_2')
3156
+ self.constant_50: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_50')
3157
+ self.constant_61_8: MetricPattern1[StoredF32] = MetricPattern1(client, 'constant_61_8')
3158
+ self.constant_70: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_70')
3159
+ self.constant_80: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_80')
3160
+ self.constant_100: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_100')
3161
+ self.constant_600: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_600')
3162
+ self.constant_minus_1: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_1')
3163
+ self.constant_minus_2: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_2')
3164
+ self.constant_minus_3: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_3')
3165
+ self.constant_minus_4: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_4')
3122
3166
 
3123
- class MetricsTree_Distribution_UtxoCohorts_Term:
3167
+ class MetricsTree_Indexes_Address_P2pk33:
3124
3168
  """Metrics tree node."""
3125
3169
 
3126
3170
  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)
3171
+ self.identity: MetricPattern18[P2PK33AddressIndex] = MetricPattern18(client, 'p2pk33addressindex')
3129
3172
 
3130
- class MetricsTree_Distribution_UtxoCohorts_Type:
3173
+ class MetricsTree_Indexes_Address_P2pk65:
3131
3174
  """Metrics tree node."""
3132
3175
 
3133
3176
  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')
3177
+ self.identity: MetricPattern19[P2PK65AddressIndex] = MetricPattern19(client, 'p2pk65addressindex')
3145
3178
 
3146
- class MetricsTree_Distribution_UtxoCohorts_Year:
3179
+ class MetricsTree_Indexes_Address_P2pkh:
3147
3180
  """Metrics tree node."""
3148
3181
 
3149
3182
  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')
3183
+ self.identity: MetricPattern20[P2PKHAddressIndex] = MetricPattern20(client, 'p2pkhaddressindex')
3168
3184
 
3169
- class MetricsTree_Distribution_UtxoCohorts:
3185
+ class MetricsTree_Indexes_Address_P2sh:
3170
3186
  """Metrics tree node."""
3171
3187
 
3172
3188
  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)
3189
+ self.identity: MetricPattern21[P2SHAddressIndex] = MetricPattern21(client, 'p2shaddressindex')
3184
3190
 
3185
- class MetricsTree_Distribution:
3191
+ class MetricsTree_Indexes_Address_P2tr:
3186
3192
  """Metrics tree node."""
3187
3193
 
3188
3194
  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)
3195
+ self.identity: MetricPattern22[P2TRAddressIndex] = MetricPattern22(client, 'p2traddressindex')
3202
3196
 
3203
- class MetricsTree_Indexes_Address_Empty:
3197
+ class MetricsTree_Indexes_Address_P2wpkh:
3204
3198
  """Metrics tree node."""
3205
3199
 
3206
3200
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3207
- self.identity: MetricPattern9[EmptyOutputIndex] = MetricPattern9(client, 'emptyoutputindex')
3201
+ self.identity: MetricPattern23[P2WPKHAddressIndex] = MetricPattern23(client, 'p2wpkhaddressindex')
3208
3202
 
3209
- class MetricsTree_Indexes_Address_Opreturn:
3203
+ class MetricsTree_Indexes_Address_P2wsh:
3210
3204
  """Metrics tree node."""
3211
3205
 
3212
3206
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3213
- self.identity: MetricPattern14[OpReturnIndex] = MetricPattern14(client, 'opreturnindex')
3207
+ self.identity: MetricPattern24[P2WSHAddressIndex] = MetricPattern24(client, 'p2wshaddressindex')
3214
3208
 
3215
3209
  class MetricsTree_Indexes_Address_P2a:
3216
3210
  """Metrics tree node."""
@@ -3224,62 +3218,28 @@ class MetricsTree_Indexes_Address_P2ms:
3224
3218
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3225
3219
  self.identity: MetricPattern17[P2MSOutputIndex] = MetricPattern17(client, 'p2msoutputindex')
3226
3220
 
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:
3221
+ class MetricsTree_Indexes_Address_Empty:
3258
3222
  """Metrics tree node."""
3259
3223
 
3260
3224
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3261
- self.identity: MetricPattern23[P2WPKHAddressIndex] = MetricPattern23(client, 'p2wpkhaddressindex')
3225
+ self.identity: MetricPattern9[EmptyOutputIndex] = MetricPattern9(client, 'emptyoutputindex')
3262
3226
 
3263
- class MetricsTree_Indexes_Address_P2wsh:
3227
+ class MetricsTree_Indexes_Address_Unknown:
3264
3228
  """Metrics tree node."""
3265
3229
 
3266
3230
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3267
- self.identity: MetricPattern24[P2WSHAddressIndex] = MetricPattern24(client, 'p2wshaddressindex')
3231
+ self.identity: MetricPattern28[UnknownOutputIndex] = MetricPattern28(client, 'unknownoutputindex')
3268
3232
 
3269
- class MetricsTree_Indexes_Address_Unknown:
3233
+ class MetricsTree_Indexes_Address_Opreturn:
3270
3234
  """Metrics tree node."""
3271
3235
 
3272
3236
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3273
- self.identity: MetricPattern28[UnknownOutputIndex] = MetricPattern28(client, 'unknownoutputindex')
3237
+ self.identity: MetricPattern14[OpReturnIndex] = MetricPattern14(client, 'opreturnindex')
3274
3238
 
3275
3239
  class MetricsTree_Indexes_Address:
3276
3240
  """Metrics tree node."""
3277
3241
 
3278
3242
  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
3243
  self.p2pk33: MetricsTree_Indexes_Address_P2pk33 = MetricsTree_Indexes_Address_P2pk33(client)
3284
3244
  self.p2pk65: MetricsTree_Indexes_Address_P2pk65 = MetricsTree_Indexes_Address_P2pk65(client)
3285
3245
  self.p2pkh: MetricsTree_Indexes_Address_P2pkh = MetricsTree_Indexes_Address_P2pkh(client)
@@ -3287,61 +3247,65 @@ class MetricsTree_Indexes_Address:
3287
3247
  self.p2tr: MetricsTree_Indexes_Address_P2tr = MetricsTree_Indexes_Address_P2tr(client)
3288
3248
  self.p2wpkh: MetricsTree_Indexes_Address_P2wpkh = MetricsTree_Indexes_Address_P2wpkh(client)
3289
3249
  self.p2wsh: MetricsTree_Indexes_Address_P2wsh = MetricsTree_Indexes_Address_P2wsh(client)
3250
+ self.p2a: MetricsTree_Indexes_Address_P2a = MetricsTree_Indexes_Address_P2a(client)
3251
+ self.p2ms: MetricsTree_Indexes_Address_P2ms = MetricsTree_Indexes_Address_P2ms(client)
3252
+ self.empty: MetricsTree_Indexes_Address_Empty = MetricsTree_Indexes_Address_Empty(client)
3290
3253
  self.unknown: MetricsTree_Indexes_Address_Unknown = MetricsTree_Indexes_Address_Unknown(client)
3254
+ self.opreturn: MetricsTree_Indexes_Address_Opreturn = MetricsTree_Indexes_Address_Opreturn(client)
3291
3255
 
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')
3302
-
3303
- class MetricsTree_Indexes_Decadeindex:
3304
- """Metrics tree node."""
3305
-
3306
- 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')
3256
+ class MetricsTree_Indexes_Height:
3257
+ """Metrics tree node."""
3258
+
3259
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3260
+ self.identity: MetricPattern11[Height] = MetricPattern11(client, 'height')
3261
+ self.dateindex: MetricPattern11[DateIndex] = MetricPattern11(client, 'dateindex')
3262
+ self.difficultyepoch: MetricPattern11[DifficultyEpoch] = MetricPattern11(client, 'difficultyepoch')
3263
+ self.halvingepoch: MetricPattern11[HalvingEpoch] = MetricPattern11(client, 'halvingepoch')
3264
+ self.txindex_count: MetricPattern11[StoredU64] = MetricPattern11(client, 'txindex_count')
3311
3265
 
3312
3266
  class MetricsTree_Indexes_Difficultyepoch:
3313
3267
  """Metrics tree node."""
3314
3268
 
3315
3269
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3270
+ self.identity: MetricPattern8[DifficultyEpoch] = MetricPattern8(client, 'difficultyepoch')
3316
3271
  self.first_height: MetricPattern8[Height] = MetricPattern8(client, 'first_height')
3317
3272
  self.height_count: MetricPattern8[StoredU64] = MetricPattern8(client, 'height_count')
3318
- self.identity: MetricPattern8[DifficultyEpoch] = MetricPattern8(client, 'difficultyepoch')
3319
3273
 
3320
3274
  class MetricsTree_Indexes_Halvingepoch:
3321
3275
  """Metrics tree node."""
3322
3276
 
3323
3277
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3324
- self.first_height: MetricPattern10[Height] = MetricPattern10(client, 'first_height')
3325
3278
  self.identity: MetricPattern10[HalvingEpoch] = MetricPattern10(client, 'halvingepoch')
3279
+ self.first_height: MetricPattern10[Height] = MetricPattern10(client, 'first_height')
3326
3280
 
3327
- class MetricsTree_Indexes_Height:
3281
+ class MetricsTree_Indexes_Dateindex:
3328
3282
  """Metrics tree node."""
3329
3283
 
3330
3284
  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')
3285
+ self.identity: MetricPattern6[DateIndex] = MetricPattern6(client, 'dateindex')
3286
+ self.date: MetricPattern6[Date] = MetricPattern6(client, 'date')
3287
+ self.first_height: MetricPattern6[Height] = MetricPattern6(client, 'first_height')
3288
+ self.height_count: MetricPattern6[StoredU64] = MetricPattern6(client, 'height_count')
3289
+ self.weekindex: MetricPattern6[WeekIndex] = MetricPattern6(client, 'weekindex')
3290
+ self.monthindex: MetricPattern6[MonthIndex] = MetricPattern6(client, 'monthindex')
3291
+
3292
+ class MetricsTree_Indexes_Weekindex:
3293
+ """Metrics tree node."""
3294
+
3295
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3296
+ self.identity: MetricPattern29[WeekIndex] = MetricPattern29(client, 'weekindex')
3297
+ self.date: MetricPattern29[Date] = MetricPattern29(client, 'date')
3298
+ self.first_dateindex: MetricPattern29[DateIndex] = MetricPattern29(client, 'first_dateindex')
3299
+ self.dateindex_count: MetricPattern29[StoredU64] = MetricPattern29(client, 'dateindex_count')
3336
3300
 
3337
3301
  class MetricsTree_Indexes_Monthindex:
3338
3302
  """Metrics tree node."""
3339
3303
 
3340
3304
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3305
+ self.identity: MetricPattern13[MonthIndex] = MetricPattern13(client, 'monthindex')
3341
3306
  self.date: MetricPattern13[Date] = MetricPattern13(client, 'date')
3342
- self.dateindex_count: MetricPattern13[StoredU64] = MetricPattern13(client, 'dateindex_count')
3343
3307
  self.first_dateindex: MetricPattern13[DateIndex] = MetricPattern13(client, 'first_dateindex')
3344
- self.identity: MetricPattern13[MonthIndex] = MetricPattern13(client, 'monthindex')
3308
+ self.dateindex_count: MetricPattern13[StoredU64] = MetricPattern13(client, 'dateindex_count')
3345
3309
  self.quarterindex: MetricPattern13[QuarterIndex] = MetricPattern13(client, 'quarterindex')
3346
3310
  self.semesterindex: MetricPattern13[SemesterIndex] = MetricPattern13(client, 'semesterindex')
3347
3311
  self.yearindex: MetricPattern13[YearIndex] = MetricPattern13(client, 'yearindex')
@@ -3350,141 +3314,259 @@ class MetricsTree_Indexes_Quarterindex:
3350
3314
  """Metrics tree node."""
3351
3315
 
3352
3316
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3317
+ self.identity: MetricPattern25[QuarterIndex] = MetricPattern25(client, 'quarterindex')
3353
3318
  self.date: MetricPattern25[Date] = MetricPattern25(client, 'date')
3354
3319
  self.first_monthindex: MetricPattern25[MonthIndex] = MetricPattern25(client, 'first_monthindex')
3355
- self.identity: MetricPattern25[QuarterIndex] = MetricPattern25(client, 'quarterindex')
3356
3320
  self.monthindex_count: MetricPattern25[StoredU64] = MetricPattern25(client, 'monthindex_count')
3357
3321
 
3358
3322
  class MetricsTree_Indexes_Semesterindex:
3359
3323
  """Metrics tree node."""
3360
3324
 
3361
3325
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3326
+ self.identity: MetricPattern26[SemesterIndex] = MetricPattern26(client, 'semesterindex')
3362
3327
  self.date: MetricPattern26[Date] = MetricPattern26(client, 'date')
3363
3328
  self.first_monthindex: MetricPattern26[MonthIndex] = MetricPattern26(client, 'first_monthindex')
3364
- self.identity: MetricPattern26[SemesterIndex] = MetricPattern26(client, 'semesterindex')
3365
3329
  self.monthindex_count: MetricPattern26[StoredU64] = MetricPattern26(client, 'monthindex_count')
3366
3330
 
3367
- class MetricsTree_Indexes_Txindex:
3331
+ class MetricsTree_Indexes_Yearindex:
3368
3332
  """Metrics tree node."""
3369
3333
 
3370
3334
  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')
3335
+ self.identity: MetricPattern30[YearIndex] = MetricPattern30(client, 'yearindex')
3336
+ self.date: MetricPattern30[Date] = MetricPattern30(client, 'date')
3337
+ self.first_monthindex: MetricPattern30[MonthIndex] = MetricPattern30(client, 'first_monthindex')
3338
+ self.monthindex_count: MetricPattern30[StoredU64] = MetricPattern30(client, 'monthindex_count')
3339
+ self.decadeindex: MetricPattern30[DecadeIndex] = MetricPattern30(client, 'decadeindex')
3374
3340
 
3375
- class MetricsTree_Indexes_Txinindex:
3341
+ class MetricsTree_Indexes_Decadeindex:
3376
3342
  """Metrics tree node."""
3377
3343
 
3378
3344
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3379
- self.identity: MetricPattern12[TxInIndex] = MetricPattern12(client, 'txinindex')
3345
+ self.identity: MetricPattern7[DecadeIndex] = MetricPattern7(client, 'decadeindex')
3346
+ self.date: MetricPattern7[Date] = MetricPattern7(client, 'date')
3347
+ self.first_yearindex: MetricPattern7[YearIndex] = MetricPattern7(client, 'first_yearindex')
3348
+ self.yearindex_count: MetricPattern7[StoredU64] = MetricPattern7(client, 'yearindex_count')
3380
3349
 
3381
- class MetricsTree_Indexes_Txoutindex:
3350
+ class MetricsTree_Indexes_Txindex:
3382
3351
  """Metrics tree node."""
3383
3352
 
3384
3353
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3385
- self.identity: MetricPattern15[TxOutIndex] = MetricPattern15(client, 'txoutindex')
3354
+ self.identity: MetricPattern27[TxIndex] = MetricPattern27(client, 'txindex')
3355
+ self.input_count: MetricPattern27[StoredU64] = MetricPattern27(client, 'input_count')
3356
+ self.output_count: MetricPattern27[StoredU64] = MetricPattern27(client, 'output_count')
3386
3357
 
3387
- class MetricsTree_Indexes_Weekindex:
3358
+ class MetricsTree_Indexes_Txinindex:
3388
3359
  """Metrics tree node."""
3389
3360
 
3390
3361
  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')
3362
+ self.identity: MetricPattern12[TxInIndex] = MetricPattern12(client, 'txinindex')
3395
3363
 
3396
- class MetricsTree_Indexes_Yearindex:
3364
+ class MetricsTree_Indexes_Txoutindex:
3397
3365
  """Metrics tree node."""
3398
3366
 
3399
3367
  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')
3368
+ self.identity: MetricPattern15[TxOutIndex] = MetricPattern15(client, 'txoutindex')
3405
3369
 
3406
3370
  class MetricsTree_Indexes:
3407
3371
  """Metrics tree node."""
3408
3372
 
3409
3373
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3410
3374
  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)
3375
+ self.height: MetricsTree_Indexes_Height = MetricsTree_Indexes_Height(client)
3413
3376
  self.difficultyepoch: MetricsTree_Indexes_Difficultyepoch = MetricsTree_Indexes_Difficultyepoch(client)
3414
3377
  self.halvingepoch: MetricsTree_Indexes_Halvingepoch = MetricsTree_Indexes_Halvingepoch(client)
3415
- self.height: MetricsTree_Indexes_Height = MetricsTree_Indexes_Height(client)
3378
+ self.dateindex: MetricsTree_Indexes_Dateindex = MetricsTree_Indexes_Dateindex(client)
3379
+ self.weekindex: MetricsTree_Indexes_Weekindex = MetricsTree_Indexes_Weekindex(client)
3416
3380
  self.monthindex: MetricsTree_Indexes_Monthindex = MetricsTree_Indexes_Monthindex(client)
3417
3381
  self.quarterindex: MetricsTree_Indexes_Quarterindex = MetricsTree_Indexes_Quarterindex(client)
3418
3382
  self.semesterindex: MetricsTree_Indexes_Semesterindex = MetricsTree_Indexes_Semesterindex(client)
3383
+ self.yearindex: MetricsTree_Indexes_Yearindex = MetricsTree_Indexes_Yearindex(client)
3384
+ self.decadeindex: MetricsTree_Indexes_Decadeindex = MetricsTree_Indexes_Decadeindex(client)
3419
3385
  self.txindex: MetricsTree_Indexes_Txindex = MetricsTree_Indexes_Txindex(client)
3420
3386
  self.txinindex: MetricsTree_Indexes_Txinindex = MetricsTree_Indexes_Txinindex(client)
3421
3387
  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
3388
 
3425
- class MetricsTree_Inputs_Spent:
3389
+ class MetricsTree_Market_Ath:
3426
3390
  """Metrics tree node."""
3427
3391
 
3428
3392
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3429
- self.txoutindex: MetricPattern12[TxOutIndex] = MetricPattern12(client, 'txoutindex')
3430
- self.value: MetricPattern12[Sats] = MetricPattern12(client, 'value')
3393
+ self.price_ath: DollarsSatsPattern = DollarsSatsPattern(client, 'price_ath')
3394
+ self.price_drawdown: MetricPattern3[StoredF32] = MetricPattern3(client, 'price_drawdown')
3395
+ self.days_since_price_ath: MetricPattern4[StoredU16] = MetricPattern4(client, 'days_since_price_ath')
3396
+ self.years_since_price_ath: MetricPattern4[StoredF32] = MetricPattern4(client, 'years_since_price_ath')
3397
+ self.max_days_between_price_aths: MetricPattern4[StoredU16] = MetricPattern4(client, 'max_days_between_price_aths')
3398
+ self.max_years_between_price_aths: MetricPattern4[StoredF32] = MetricPattern4(client, 'max_years_between_price_aths')
3431
3399
 
3432
- class MetricsTree_Inputs:
3400
+ class MetricsTree_Market_Lookback:
3433
3401
  """Metrics tree node."""
3434
3402
 
3435
3403
  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')
3404
+ self._1d: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1d_ago')
3405
+ self._1w: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1w_ago')
3406
+ self._1m: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1m_ago')
3407
+ self._3m: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_3m_ago')
3408
+ self._6m: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_6m_ago')
3409
+ self._1y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1y_ago')
3410
+ self._2y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_2y_ago')
3411
+ self._3y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_3y_ago')
3412
+ self._4y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_4y_ago')
3413
+ self._5y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_5y_ago')
3414
+ self._6y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_6y_ago')
3415
+ self._8y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_8y_ago')
3416
+ self._10y: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_10y_ago')
3443
3417
 
3444
- class MetricsTree_Market_Ath:
3418
+ class MetricsTree_Market_Returns_PriceReturns:
3445
3419
  """Metrics tree node."""
3446
3420
 
3447
3421
  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')
3422
+ self._1d: MetricPattern4[StoredF32] = MetricPattern4(client, '1d_price_returns')
3423
+ self._1w: MetricPattern4[StoredF32] = MetricPattern4(client, '1w_price_returns')
3424
+ self._1m: MetricPattern4[StoredF32] = MetricPattern4(client, '1m_price_returns')
3425
+ self._3m: MetricPattern4[StoredF32] = MetricPattern4(client, '3m_price_returns')
3426
+ self._6m: MetricPattern4[StoredF32] = MetricPattern4(client, '6m_price_returns')
3427
+ self._1y: MetricPattern4[StoredF32] = MetricPattern4(client, '1y_price_returns')
3428
+ self._2y: MetricPattern4[StoredF32] = MetricPattern4(client, '2y_price_returns')
3429
+ self._3y: MetricPattern4[StoredF32] = MetricPattern4(client, '3y_price_returns')
3430
+ self._4y: MetricPattern4[StoredF32] = MetricPattern4(client, '4y_price_returns')
3431
+ self._5y: MetricPattern4[StoredF32] = MetricPattern4(client, '5y_price_returns')
3432
+ self._6y: MetricPattern4[StoredF32] = MetricPattern4(client, '6y_price_returns')
3433
+ self._8y: MetricPattern4[StoredF32] = MetricPattern4(client, '8y_price_returns')
3434
+ self._10y: MetricPattern4[StoredF32] = MetricPattern4(client, '10y_price_returns')
3454
3435
 
3455
- class MetricsTree_Market_Dca_ClassAveragePrice:
3436
+ class MetricsTree_Market_Returns:
3456
3437
  """Metrics tree node."""
3457
3438
 
3458
3439
  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')
3440
+ self.price_returns: MetricsTree_Market_Returns_PriceReturns = MetricsTree_Market_Returns_PriceReturns(client)
3441
+ self.cagr: _10y2y3y4y5y6y8yPattern = _10y2y3y4y5y6y8yPattern(client, 'cagr')
3442
+ self._1d_returns_1w_sd: SdSmaPattern = SdSmaPattern(client, '1d_returns_1w_sd')
3443
+ self._1d_returns_1m_sd: SdSmaPattern = SdSmaPattern(client, '1d_returns_1m_sd')
3444
+ self._1d_returns_1y_sd: SdSmaPattern = SdSmaPattern(client, '1d_returns_1y_sd')
3445
+ self.downside_returns: MetricPattern6[StoredF32] = MetricPattern6(client, 'downside_returns')
3446
+ self.downside_1w_sd: SdSmaPattern = SdSmaPattern(client, 'downside_1w_sd')
3447
+ self.downside_1m_sd: SdSmaPattern = SdSmaPattern(client, 'downside_1m_sd')
3448
+ self.downside_1y_sd: SdSmaPattern = SdSmaPattern(client, 'downside_1y_sd')
3471
3449
 
3472
- class MetricsTree_Market_Dca_ClassDaysInLoss:
3450
+ class MetricsTree_Market_Volatility:
3473
3451
  """Metrics tree node."""
3474
3452
 
3475
3453
  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')
3454
+ self.price_1w_volatility: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_1w_volatility')
3455
+ self.price_1m_volatility: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_1m_volatility')
3456
+ self.price_1y_volatility: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_1y_volatility')
3457
+ self.sharpe_1w: MetricPattern6[StoredF32] = MetricPattern6(client, 'sharpe_1w')
3458
+ self.sharpe_1m: MetricPattern6[StoredF32] = MetricPattern6(client, 'sharpe_1m')
3459
+ self.sharpe_1y: MetricPattern6[StoredF32] = MetricPattern6(client, 'sharpe_1y')
3460
+ self.sortino_1w: MetricPattern6[StoredF32] = MetricPattern6(client, 'sortino_1w')
3461
+ self.sortino_1m: MetricPattern6[StoredF32] = MetricPattern6(client, 'sortino_1m')
3462
+ self.sortino_1y: MetricPattern6[StoredF32] = MetricPattern6(client, 'sortino_1y')
3463
+
3464
+ class MetricsTree_Market_Range:
3465
+ """Metrics tree node."""
3466
+
3467
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3468
+ self.price_1w_min: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1w_min')
3469
+ self.price_1w_max: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1w_max')
3470
+ self.price_2w_min: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_2w_min')
3471
+ self.price_2w_max: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_2w_max')
3472
+ self.price_1m_min: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1m_min')
3473
+ self.price_1m_max: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1m_max')
3474
+ self.price_1y_min: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1y_min')
3475
+ self.price_1y_max: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_1y_max')
3476
+ self.price_true_range: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range')
3477
+ self.price_true_range_2w_sum: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range_2w_sum')
3478
+ self.price_2w_choppiness_index: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_2w_choppiness_index')
3479
+
3480
+ class MetricsTree_Market_MovingAverage:
3481
+ """Metrics tree node."""
3482
+
3483
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3484
+ self.price_1w_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_1w_sma')
3485
+ self.price_8d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_8d_sma')
3486
+ self.price_13d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_13d_sma')
3487
+ self.price_21d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_21d_sma')
3488
+ self.price_1m_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_1m_sma')
3489
+ self.price_34d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_34d_sma')
3490
+ self.price_55d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_55d_sma')
3491
+ self.price_89d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_89d_sma')
3492
+ self.price_111d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_111d_sma')
3493
+ self.price_144d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_144d_sma')
3494
+ self.price_200d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_200d_sma')
3495
+ self.price_350d_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_350d_sma')
3496
+ self.price_1y_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_1y_sma')
3497
+ self.price_2y_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_2y_sma')
3498
+ self.price_200w_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_200w_sma')
3499
+ self.price_4y_sma: PriceRatioPattern = PriceRatioPattern(client, 'price_4y_sma')
3500
+ self.price_1w_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_1w_ema')
3501
+ self.price_8d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_8d_ema')
3502
+ self.price_12d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_12d_ema')
3503
+ self.price_13d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_13d_ema')
3504
+ self.price_21d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_21d_ema')
3505
+ self.price_26d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_26d_ema')
3506
+ self.price_1m_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_1m_ema')
3507
+ self.price_34d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_34d_ema')
3508
+ self.price_55d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_55d_ema')
3509
+ self.price_89d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_89d_ema')
3510
+ self.price_144d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_144d_ema')
3511
+ self.price_200d_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_200d_ema')
3512
+ self.price_1y_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_1y_ema')
3513
+ self.price_2y_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_2y_ema')
3514
+ self.price_200w_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_200w_ema')
3515
+ self.price_4y_ema: PriceRatioPattern = PriceRatioPattern(client, 'price_4y_ema')
3516
+ self.price_200d_sma_x2_4: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_200d_sma_x2_4')
3517
+ self.price_200d_sma_x0_8: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_200d_sma_x0_8')
3518
+ self.price_350d_sma_x2: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'price_350d_sma_x2')
3519
+
3520
+ class MetricsTree_Market_Dca_PeriodAveragePrice:
3521
+ """Metrics tree node."""
3522
+
3523
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3524
+ self._1w: DollarsSatsPattern2 = DollarsSatsPattern2(client, '1w_dca_average_price')
3525
+ self._1m: DollarsSatsPattern2 = DollarsSatsPattern2(client, '1m_dca_average_price')
3526
+ self._3m: DollarsSatsPattern2 = DollarsSatsPattern2(client, '3m_dca_average_price')
3527
+ self._6m: DollarsSatsPattern2 = DollarsSatsPattern2(client, '6m_dca_average_price')
3528
+ self._1y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '1y_dca_average_price')
3529
+ self._2y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '2y_dca_average_price')
3530
+ self._3y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '3y_dca_average_price')
3531
+ self._4y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '4y_dca_average_price')
3532
+ self._5y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '5y_dca_average_price')
3533
+ self._6y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '6y_dca_average_price')
3534
+ self._8y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '8y_dca_average_price')
3535
+ self._10y: DollarsSatsPattern2 = DollarsSatsPattern2(client, '10y_dca_average_price')
3536
+
3537
+ class MetricsTree_Market_Dca_ClassStack:
3538
+ """Metrics tree node."""
3539
+
3540
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3541
+ self._2015: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2015_stack')
3542
+ self._2016: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2016_stack')
3543
+ self._2017: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2017_stack')
3544
+ self._2018: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2018_stack')
3545
+ self._2019: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2019_stack')
3546
+ self._2020: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2020_stack')
3547
+ self._2021: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2021_stack')
3548
+ self._2022: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2022_stack')
3549
+ self._2023: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2023_stack')
3550
+ self._2024: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2024_stack')
3551
+ self._2025: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2025_stack')
3552
+ self._2026: BitcoinDollarsSatsPattern5 = BitcoinDollarsSatsPattern5(client, 'dca_class_2026_stack')
3553
+
3554
+ class MetricsTree_Market_Dca_ClassAveragePrice:
3555
+ """Metrics tree node."""
3556
+
3557
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3558
+ self._2015: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2015_average_price')
3559
+ self._2016: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2016_average_price')
3560
+ self._2017: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2017_average_price')
3561
+ self._2018: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2018_average_price')
3562
+ self._2019: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2019_average_price')
3563
+ self._2020: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2020_average_price')
3564
+ self._2021: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2021_average_price')
3565
+ self._2022: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2022_average_price')
3566
+ self._2023: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2023_average_price')
3567
+ self._2024: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2024_average_price')
3568
+ self._2025: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2025_average_price')
3569
+ self._2026: DollarsSatsPattern2 = DollarsSatsPattern2(client, 'dca_class_2026_average_price')
3488
3570
 
3489
3571
  class MetricsTree_Market_Dca_ClassDaysInProfit:
3490
3572
  """Metrics tree node."""
@@ -3503,22 +3585,39 @@ class MetricsTree_Market_Dca_ClassDaysInProfit:
3503
3585
  self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_profit')
3504
3586
  self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_profit')
3505
3587
 
3506
- class MetricsTree_Market_Dca_ClassMaxDrawdown:
3588
+ class MetricsTree_Market_Dca_ClassDaysInLoss:
3589
+ """Metrics tree node."""
3590
+
3591
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3592
+ self._2015: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2015_days_in_loss')
3593
+ self._2016: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2016_days_in_loss')
3594
+ self._2017: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2017_days_in_loss')
3595
+ self._2018: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2018_days_in_loss')
3596
+ self._2019: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2019_days_in_loss')
3597
+ self._2020: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2020_days_in_loss')
3598
+ self._2021: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2021_days_in_loss')
3599
+ self._2022: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2022_days_in_loss')
3600
+ self._2023: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2023_days_in_loss')
3601
+ self._2024: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2024_days_in_loss')
3602
+ self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_loss')
3603
+ self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_loss')
3604
+
3605
+ class MetricsTree_Market_Dca_ClassMinReturn:
3507
3606
  """Metrics tree node."""
3508
3607
 
3509
3608
  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')
3609
+ self._2015: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2015_min_return')
3610
+ self._2016: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2016_min_return')
3611
+ self._2017: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2017_min_return')
3612
+ self._2018: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2018_min_return')
3613
+ self._2019: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2019_min_return')
3614
+ self._2020: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2020_min_return')
3615
+ self._2021: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2021_min_return')
3616
+ self._2022: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2022_min_return')
3617
+ self._2023: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2023_min_return')
3618
+ self._2024: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2024_min_return')
3619
+ self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_min_return')
3620
+ self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_min_return')
3522
3621
 
3523
3622
  class MetricsTree_Market_Dca_ClassMaxReturn:
3524
3623
  """Metrics tree node."""
@@ -3537,624 +3636,739 @@ class MetricsTree_Market_Dca_ClassMaxReturn:
3537
3636
  self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_max_return')
3538
3637
  self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_max_return')
3539
3638
 
3540
- class MetricsTree_Market_Dca_ClassStack:
3639
+ class MetricsTree_Market_Dca:
3640
+ """Metrics tree node."""
3641
+
3642
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3643
+ self.period_stack: _10y1m1w1y2y3m3y4y5y6m6y8yPattern3 = _10y1m1w1y2y3m3y4y5y6m6y8yPattern3(client, 'dca_stack')
3644
+ self.period_average_price: MetricsTree_Market_Dca_PeriodAveragePrice = MetricsTree_Market_Dca_PeriodAveragePrice(client)
3645
+ self.period_returns: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_returns')
3646
+ self.period_cagr: _10y2y3y4y5y6y8yPattern = _10y2y3y4y5y6y8yPattern(client, 'dca_cagr')
3647
+ self.period_days_in_profit: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredU32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_days_in_profit')
3648
+ self.period_days_in_loss: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredU32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_days_in_loss')
3649
+ self.period_min_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_min_return')
3650
+ self.period_max_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'dca_max_return')
3651
+ self.period_lump_sum_stack: _10y1m1w1y2y3m3y4y5y6m6y8yPattern3 = _10y1m1w1y2y3m3y4y5y6m6y8yPattern3(client, 'lump_sum_stack')
3652
+ self.period_lump_sum_returns: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_returns')
3653
+ self.period_lump_sum_days_in_profit: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredU32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_days_in_profit')
3654
+ self.period_lump_sum_days_in_loss: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredU32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_days_in_loss')
3655
+ self.period_lump_sum_min_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_min_return')
3656
+ self.period_lump_sum_max_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2[StoredF32] = _10y1m1w1y2y3m3y4y5y6m6y8yPattern2(client, 'lump_sum_max_return')
3657
+ self.class_stack: MetricsTree_Market_Dca_ClassStack = MetricsTree_Market_Dca_ClassStack(client)
3658
+ self.class_average_price: MetricsTree_Market_Dca_ClassAveragePrice = MetricsTree_Market_Dca_ClassAveragePrice(client)
3659
+ self.class_returns: _201520162017201820192020202120222023202420252026Pattern2[StoredF32] = _201520162017201820192020202120222023202420252026Pattern2(client, 'dca_class')
3660
+ self.class_days_in_profit: MetricsTree_Market_Dca_ClassDaysInProfit = MetricsTree_Market_Dca_ClassDaysInProfit(client)
3661
+ self.class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss = MetricsTree_Market_Dca_ClassDaysInLoss(client)
3662
+ self.class_min_return: MetricsTree_Market_Dca_ClassMinReturn = MetricsTree_Market_Dca_ClassMinReturn(client)
3663
+ self.class_max_return: MetricsTree_Market_Dca_ClassMaxReturn = MetricsTree_Market_Dca_ClassMaxReturn(client)
3664
+
3665
+ class MetricsTree_Market_Indicators:
3666
+ """Metrics tree node."""
3667
+
3668
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3669
+ self.puell_multiple: MetricPattern4[StoredF32] = MetricPattern4(client, 'puell_multiple')
3670
+ self.nvt: MetricPattern4[StoredF32] = MetricPattern4(client, 'nvt')
3671
+ self.rsi_gains: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_gains')
3672
+ self.rsi_losses: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_losses')
3673
+ self.rsi_average_gain_14d: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_average_gain_14d')
3674
+ self.rsi_average_loss_14d: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_average_loss_14d')
3675
+ self.rsi_14d: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_14d')
3676
+ self.rsi_14d_min: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_14d_min')
3677
+ self.rsi_14d_max: MetricPattern6[StoredF32] = MetricPattern6(client, 'rsi_14d_max')
3678
+ self.stoch_rsi: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi')
3679
+ self.stoch_rsi_k: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_k')
3680
+ self.stoch_rsi_d: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_d')
3681
+ self.stoch_k: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_k')
3682
+ self.stoch_d: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_d')
3683
+ self.pi_cycle: MetricPattern6[StoredF32] = MetricPattern6(client, 'pi_cycle')
3684
+ self.macd_line: MetricPattern6[StoredF32] = MetricPattern6(client, 'macd_line')
3685
+ self.macd_signal: MetricPattern6[StoredF32] = MetricPattern6(client, 'macd_signal')
3686
+ self.macd_histogram: MetricPattern6[StoredF32] = MetricPattern6(client, 'macd_histogram')
3687
+ self.gini: MetricPattern6[StoredF32] = MetricPattern6(client, 'gini')
3688
+
3689
+ class MetricsTree_Market:
3690
+ """Metrics tree node."""
3691
+
3692
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3693
+ self.ath: MetricsTree_Market_Ath = MetricsTree_Market_Ath(client)
3694
+ self.lookback: MetricsTree_Market_Lookback = MetricsTree_Market_Lookback(client)
3695
+ self.returns: MetricsTree_Market_Returns = MetricsTree_Market_Returns(client)
3696
+ self.volatility: MetricsTree_Market_Volatility = MetricsTree_Market_Volatility(client)
3697
+ self.range: MetricsTree_Market_Range = MetricsTree_Market_Range(client)
3698
+ self.moving_average: MetricsTree_Market_MovingAverage = MetricsTree_Market_MovingAverage(client)
3699
+ self.dca: MetricsTree_Market_Dca = MetricsTree_Market_Dca(client)
3700
+ self.indicators: MetricsTree_Market_Indicators = MetricsTree_Market_Indicators(client)
3701
+
3702
+ class MetricsTree_Pools_Vecs:
3703
+ """Metrics tree node."""
3704
+
3705
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3706
+ self.unknown: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'unknown')
3707
+ self.blockfills: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'blockfills')
3708
+ self.ultimuspool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ultimuspool')
3709
+ self.terrapool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'terrapool')
3710
+ self.luxor: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'luxor')
3711
+ self.onethash: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'onethash')
3712
+ self.btccom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btccom')
3713
+ self.bitfarms: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitfarms')
3714
+ self.huobipool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'huobipool')
3715
+ self.wayicn: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'wayicn')
3716
+ self.canoepool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'canoepool')
3717
+ self.btctop: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btctop')
3718
+ self.bitcoincom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoincom')
3719
+ self.pool175btc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'pool175btc')
3720
+ self.gbminers: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'gbminers')
3721
+ self.axbt: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'axbt')
3722
+ self.asicminer: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'asicminer')
3723
+ self.bitminter: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitminter')
3724
+ self.bitcoinrussia: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoinrussia')
3725
+ self.btcserv: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcserv')
3726
+ self.simplecoinus: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'simplecoinus')
3727
+ self.btcguild: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcguild')
3728
+ self.eligius: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'eligius')
3729
+ self.ozcoin: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ozcoin')
3730
+ self.eclipsemc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'eclipsemc')
3731
+ self.maxbtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'maxbtc')
3732
+ self.triplemining: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'triplemining')
3733
+ self.coinlab: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'coinlab')
3734
+ self.pool50btc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'pool50btc')
3735
+ self.ghashio: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ghashio')
3736
+ self.stminingcorp: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'stminingcorp')
3737
+ self.bitparking: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitparking')
3738
+ self.mmpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'mmpool')
3739
+ self.polmine: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'polmine')
3740
+ self.kncminer: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'kncminer')
3741
+ self.bitalo: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitalo')
3742
+ self.f2pool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'f2pool')
3743
+ self.hhtt: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hhtt')
3744
+ self.megabigpower: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'megabigpower')
3745
+ self.mtred: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'mtred')
3746
+ self.nmcbit: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'nmcbit')
3747
+ self.yourbtcnet: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'yourbtcnet')
3748
+ self.givemecoins: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'givemecoins')
3749
+ self.braiinspool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'braiinspool')
3750
+ self.antpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'antpool')
3751
+ self.multicoinco: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'multicoinco')
3752
+ self.bcpoolio: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bcpoolio')
3753
+ self.cointerra: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'cointerra')
3754
+ self.kanopool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'kanopool')
3755
+ self.solock: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'solock')
3756
+ self.ckpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ckpool')
3757
+ self.nicehash: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'nicehash')
3758
+ self.bitclub: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitclub')
3759
+ self.bitcoinaffiliatenetwork: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoinaffiliatenetwork')
3760
+ self.btcc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcc')
3761
+ self.bwpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bwpool')
3762
+ self.exxbw: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'exxbw')
3763
+ self.bitsolo: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitsolo')
3764
+ self.bitfury: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitfury')
3765
+ self.twentyoneinc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'twentyoneinc')
3766
+ self.digitalbtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'digitalbtc')
3767
+ self.eightbaochi: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'eightbaochi')
3768
+ self.mybtccoinpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'mybtccoinpool')
3769
+ self.tbdice: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tbdice')
3770
+ self.hashpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hashpool')
3771
+ self.nexious: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'nexious')
3772
+ self.bravomining: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bravomining')
3773
+ self.hotpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hotpool')
3774
+ self.okexpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'okexpool')
3775
+ self.bcmonster: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bcmonster')
3776
+ self.onehash: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'onehash')
3777
+ self.bixin: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bixin')
3778
+ self.tatmaspool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tatmaspool')
3779
+ self.viabtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'viabtc')
3780
+ self.connectbtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'connectbtc')
3781
+ self.batpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'batpool')
3782
+ self.waterhole: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'waterhole')
3783
+ self.dcexploration: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'dcexploration')
3784
+ self.dcex: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'dcex')
3785
+ self.btpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btpool')
3786
+ self.fiftyeightcoin: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'fiftyeightcoin')
3787
+ self.bitcoinindia: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoinindia')
3788
+ self.shawnp0wers: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'shawnp0wers')
3789
+ self.phashio: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'phashio')
3790
+ self.rigpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'rigpool')
3791
+ self.haozhuzhu: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'haozhuzhu')
3792
+ self.sevenpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'sevenpool')
3793
+ self.miningkings: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'miningkings')
3794
+ self.hashbx: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hashbx')
3795
+ self.dpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'dpool')
3796
+ self.rawpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'rawpool')
3797
+ self.haominer: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'haominer')
3798
+ self.helix: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'helix')
3799
+ self.bitcoinukraine: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitcoinukraine')
3800
+ self.poolin: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'poolin')
3801
+ self.secretsuperstar: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'secretsuperstar')
3802
+ self.tigerpoolnet: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tigerpoolnet')
3803
+ self.sigmapoolcom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'sigmapoolcom')
3804
+ self.okpooltop: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'okpooltop')
3805
+ self.hummerpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'hummerpool')
3806
+ self.tangpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tangpool')
3807
+ self.bytepool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bytepool')
3808
+ self.spiderpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'spiderpool')
3809
+ self.novablock: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'novablock')
3810
+ self.miningcity: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'miningcity')
3811
+ self.binancepool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'binancepool')
3812
+ self.minerium: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'minerium')
3813
+ self.lubiancom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'lubiancom')
3814
+ self.okkong: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'okkong')
3815
+ self.aaopool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'aaopool')
3816
+ self.emcdpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'emcdpool')
3817
+ self.foundryusa: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'foundryusa')
3818
+ self.sbicrypto: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'sbicrypto')
3819
+ self.arkpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'arkpool')
3820
+ self.purebtccom: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'purebtccom')
3821
+ self.marapool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'marapool')
3822
+ self.kucoinpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'kucoinpool')
3823
+ self.entrustcharitypool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'entrustcharitypool')
3824
+ self.okminer: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'okminer')
3825
+ self.titan: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'titan')
3826
+ self.pegapool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'pegapool')
3827
+ self.btcnuggets: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcnuggets')
3828
+ self.cloudhashing: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'cloudhashing')
3829
+ self.digitalxmintsy: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'digitalxmintsy')
3830
+ self.telco214: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'telco214')
3831
+ self.btcpoolparty: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcpoolparty')
3832
+ self.multipool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'multipool')
3833
+ self.transactioncoinmining: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'transactioncoinmining')
3834
+ self.btcdig: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcdig')
3835
+ self.trickysbtcpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'trickysbtcpool')
3836
+ self.btcmp: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btcmp')
3837
+ self.eobot: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'eobot')
3838
+ self.unomp: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'unomp')
3839
+ self.patels: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'patels')
3840
+ self.gogreenlight: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'gogreenlight')
3841
+ self.ekanembtc: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ekanembtc')
3842
+ self.canoe: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'canoe')
3843
+ self.tiger: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'tiger')
3844
+ self.onem1x: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'onem1x')
3845
+ self.zulupool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'zulupool')
3846
+ self.secpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'secpool')
3847
+ self.ocean: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'ocean')
3848
+ self.whitepool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'whitepool')
3849
+ self.wk057: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'wk057')
3850
+ self.futurebitapollosolo: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'futurebitapollosolo')
3851
+ self.carbonnegative: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'carbonnegative')
3852
+ self.portlandhodl: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'portlandhodl')
3853
+ self.phoenix: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'phoenix')
3854
+ self.neopool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'neopool')
3855
+ self.maxipool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'maxipool')
3856
+ self.bitfufupool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'bitfufupool')
3857
+ self.luckypool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'luckypool')
3858
+ self.miningdutch: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'miningdutch')
3859
+ self.publicpool: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'publicpool')
3860
+ self.miningsquared: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'miningsquared')
3861
+ self.innopolistech: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'innopolistech')
3862
+ self.btclab: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'btclab')
3863
+ self.parasite: _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern = _1m1w1y24hBlocksCoinbaseDaysDominanceFeeSubsidyPattern(client, 'parasite')
3864
+
3865
+ class MetricsTree_Pools:
3541
3866
  """Metrics tree node."""
3542
3867
 
3543
3868
  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')
3869
+ self.height_to_pool: MetricPattern11[PoolSlug] = MetricPattern11(client, 'pool')
3870
+ self.vecs: MetricsTree_Pools_Vecs = MetricsTree_Pools_Vecs(client)
3556
3871
 
3557
- class MetricsTree_Market_Dca_PeriodAveragePrice:
3872
+ class MetricsTree_Price_Cents_Split:
3558
3873
  """Metrics tree node."""
3559
3874
 
3560
3875
  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')
3876
+ self.open: MetricPattern5[CentsUnsigned] = MetricPattern5(client, 'price_open_cents')
3877
+ self.high: MetricPattern5[CentsUnsigned] = MetricPattern5(client, 'price_high_cents')
3878
+ self.low: MetricPattern5[CentsUnsigned] = MetricPattern5(client, 'price_low_cents')
3879
+ self.close: MetricPattern5[CentsUnsigned] = MetricPattern5(client, 'price_close_cents')
3573
3880
 
3574
- class MetricsTree_Market_Dca:
3881
+ class MetricsTree_Price_Cents:
3575
3882
  """Metrics tree node."""
3576
3883
 
3577
3884
  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')
3885
+ self.split: MetricsTree_Price_Cents_Split = MetricsTree_Price_Cents_Split(client)
3886
+ self.ohlc: MetricPattern5[OHLCCentsUnsigned] = MetricPattern5(client, 'ohlc_cents')
3599
3887
 
3600
- class MetricsTree_Market_Indicators:
3888
+ class MetricsTree_Price_Usd:
3601
3889
  """Metrics tree node."""
3602
3890
 
3603
3891
  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')
3892
+ self.split: CloseHighLowOpenPattern2[Dollars] = CloseHighLowOpenPattern2(client, 'price')
3893
+ self.ohlc: MetricPattern1[OHLCDollars] = MetricPattern1(client, 'price_ohlc')
3623
3894
 
3624
- class MetricsTree_Market_Lookback:
3895
+ class MetricsTree_Price:
3625
3896
  """Metrics tree node."""
3626
3897
 
3627
3898
  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')
3899
+ self.cents: MetricsTree_Price_Cents = MetricsTree_Price_Cents(client)
3900
+ self.usd: MetricsTree_Price_Usd = MetricsTree_Price_Usd(client)
3901
+ self.sats: OhlcSplitPattern2[OHLCSats] = OhlcSplitPattern2(client, 'price')
3641
3902
 
3642
- class MetricsTree_Market_MovingAverage:
3903
+ class MetricsTree_Distribution_AnyAddressIndexes:
3643
3904
  """Metrics tree node."""
3644
3905
 
3645
3906
  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')
3907
+ self.p2a: MetricPattern16[AnyAddressIndex] = MetricPattern16(client, 'anyaddressindex')
3908
+ self.p2pk33: MetricPattern18[AnyAddressIndex] = MetricPattern18(client, 'anyaddressindex')
3909
+ self.p2pk65: MetricPattern19[AnyAddressIndex] = MetricPattern19(client, 'anyaddressindex')
3910
+ self.p2pkh: MetricPattern20[AnyAddressIndex] = MetricPattern20(client, 'anyaddressindex')
3911
+ self.p2sh: MetricPattern21[AnyAddressIndex] = MetricPattern21(client, 'anyaddressindex')
3912
+ self.p2tr: MetricPattern22[AnyAddressIndex] = MetricPattern22(client, 'anyaddressindex')
3913
+ self.p2wpkh: MetricPattern23[AnyAddressIndex] = MetricPattern23(client, 'anyaddressindex')
3914
+ self.p2wsh: MetricPattern24[AnyAddressIndex] = MetricPattern24(client, 'anyaddressindex')
3681
3915
 
3682
- class MetricsTree_Market_Range:
3916
+ class MetricsTree_Distribution_AddressesData:
3683
3917
  """Metrics tree node."""
3684
3918
 
3685
3919
  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')
3920
+ self.funded: MetricPattern31[FundedAddressData] = MetricPattern31(client, 'fundedaddressdata')
3921
+ self.empty: MetricPattern32[EmptyAddressData] = MetricPattern32(client, 'emptyaddressdata')
3697
3922
 
3698
- class MetricsTree_Market_Returns_PriceReturns:
3923
+ class MetricsTree_Distribution_UtxoCohorts_All_Relative:
3699
3924
  """Metrics tree node."""
3700
3925
 
3701
3926
  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')
3927
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, 'supply_in_profit_rel_to_own_supply')
3928
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, 'supply_in_loss_rel_to_own_supply')
3929
+ self.unrealized_profit_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_profit_rel_to_market_cap')
3930
+ self.unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_loss_rel_to_market_cap')
3931
+ self.neg_unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, 'neg_unrealized_loss_rel_to_market_cap')
3932
+ self.net_unrealized_pnl_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, 'net_unrealized_pnl_rel_to_market_cap')
3933
+ self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, 'nupl')
3934
+ self.unrealized_profit_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_profit_rel_to_own_total_unrealized_pnl')
3935
+ self.unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'unrealized_loss_rel_to_own_total_unrealized_pnl')
3936
+ self.neg_unrealized_loss_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'neg_unrealized_loss_rel_to_own_total_unrealized_pnl')
3937
+ self.net_unrealized_pnl_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, 'net_unrealized_pnl_rel_to_own_total_unrealized_pnl')
3938
+ self.invested_capital_in_profit_pct: MetricPattern1[StoredF32] = MetricPattern1(client, 'invested_capital_in_profit_pct')
3939
+ self.invested_capital_in_loss_pct: MetricPattern1[StoredF32] = MetricPattern1(client, 'invested_capital_in_loss_pct')
3940
+ self.unrealized_peak_regret_rel_to_market_cap: MetricPattern4[StoredF32] = MetricPattern4(client, 'unrealized_peak_regret_rel_to_market_cap')
3715
3941
 
3716
- class MetricsTree_Market_Returns:
3942
+ class MetricsTree_Distribution_UtxoCohorts_All:
3717
3943
  """Metrics tree node."""
3718
3944
 
3719
3945
  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)
3946
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, '')
3947
+ self.outputs: UtxoPattern = UtxoPattern(client, 'utxo_count')
3948
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, '')
3949
+ self.realized: AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, '')
3950
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, '')
3951
+ self.cost_basis: InvestedMaxMinPercentilesSpotPattern = InvestedMaxMinPercentilesSpotPattern(client, '')
3952
+ self.relative: MetricsTree_Distribution_UtxoCohorts_All_Relative = MetricsTree_Distribution_UtxoCohorts_All_Relative(client)
3729
3953
 
3730
- class MetricsTree_Market_Volatility:
3954
+ class MetricsTree_Distribution_UtxoCohorts_AgeRange:
3731
3955
  """Metrics tree node."""
3732
3956
 
3733
3957
  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')
3958
+ self.up_to_1h: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_under_1h_old')
3959
+ self._1h_to_1d: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1h_to_1d_old')
3960
+ self._1d_to_1w: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1d_to_1w_old')
3961
+ self._1w_to_1m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1w_to_1m_old')
3962
+ self._1m_to_2m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1m_to_2m_old')
3963
+ self._2m_to_3m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_2m_to_3m_old')
3964
+ self._3m_to_4m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_3m_to_4m_old')
3965
+ self._4m_to_5m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_4m_to_5m_old')
3966
+ self._5m_to_6m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_5m_to_6m_old')
3967
+ self._6m_to_1y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_6m_to_1y_old')
3968
+ self._1y_to_2y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_1y_to_2y_old')
3969
+ self._2y_to_3y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_2y_to_3y_old')
3970
+ self._3y_to_4y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_3y_to_4y_old')
3971
+ self._4y_to_5y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_4y_to_5y_old')
3972
+ self._5y_to_6y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_5y_to_6y_old')
3973
+ self._6y_to_7y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_6y_to_7y_old')
3974
+ self._7y_to_8y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_7y_to_8y_old')
3975
+ self._8y_to_10y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_8y_to_10y_old')
3976
+ self._10y_to_12y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_10y_to_12y_old')
3977
+ self._12y_to_15y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_12y_to_15y_old')
3978
+ self.from_15y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'utxos_over_15y_old')
3743
3979
 
3744
- class MetricsTree_Market:
3980
+ class MetricsTree_Distribution_UtxoCohorts_Epoch:
3745
3981
  """Metrics tree node."""
3746
3982
 
3747
3983
  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)
3984
+ self._0: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_0')
3985
+ self._1: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_1')
3986
+ self._2: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_2')
3987
+ self._3: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_3')
3988
+ self._4: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'epoch_4')
3756
3989
 
3757
- class MetricsTree_Outputs_Count:
3990
+ class MetricsTree_Distribution_UtxoCohorts_Year:
3758
3991
  """Metrics tree node."""
3759
3992
 
3760
3993
  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')
3994
+ self._2009: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2009')
3995
+ self._2010: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2010')
3996
+ self._2011: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2011')
3997
+ self._2012: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2012')
3998
+ self._2013: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2013')
3999
+ self._2014: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2014')
4000
+ self._2015: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2015')
4001
+ self._2016: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2016')
4002
+ self._2017: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2017')
4003
+ self._2018: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2018')
4004
+ self._2019: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2019')
4005
+ self._2020: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2020')
4006
+ self._2021: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2021')
4007
+ self._2022: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2022')
4008
+ self._2023: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2023')
4009
+ self._2024: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2024')
4010
+ self._2025: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2025')
4011
+ self._2026: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'year_2026')
3763
4012
 
3764
- class MetricsTree_Outputs_Spent:
4013
+ class MetricsTree_Distribution_UtxoCohorts_MinAge:
3765
4014
  """Metrics tree node."""
3766
4015
 
3767
4016
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3768
- self.txinindex: MetricPattern15[TxInIndex] = MetricPattern15(client, 'txinindex')
4017
+ self._1d: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_1d_old')
4018
+ self._1w: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_1w_old')
4019
+ self._1m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_1m_old')
4020
+ self._2m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_2m_old')
4021
+ self._3m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_3m_old')
4022
+ self._4m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_4m_old')
4023
+ self._5m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_5m_old')
4024
+ self._6m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_6m_old')
4025
+ self._1y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_1y_old')
4026
+ self._2y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_2y_old')
4027
+ self._3y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_3y_old')
4028
+ self._4y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_4y_old')
4029
+ self._5y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_5y_old')
4030
+ self._6y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_6y_old')
4031
+ self._7y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_7y_old')
4032
+ self._8y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_8y_old')
4033
+ self._10y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_10y_old')
4034
+ self._12y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern6(client, 'utxos_over_12y_old')
3769
4035
 
3770
- class MetricsTree_Outputs:
4036
+ class MetricsTree_Distribution_UtxoCohorts_GeAmount:
3771
4037
  """Metrics tree node."""
3772
4038
 
3773
4039
  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')
4040
+ self._1sat: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1sat')
4041
+ self._10sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10sats')
4042
+ self._100sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_100sats')
4043
+ self._1k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1k_sats')
4044
+ self._10k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10k_sats')
4045
+ self._100k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_100k_sats')
4046
+ self._1m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1m_sats')
4047
+ self._10m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10m_sats')
4048
+ self._1btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1btc')
4049
+ self._10btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10btc')
4050
+ self._100btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_100btc')
4051
+ self._1k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_1k_btc')
4052
+ self._10k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_over_10k_btc')
3781
4053
 
3782
- class MetricsTree_Pools_Vecs:
4054
+ class MetricsTree_Distribution_UtxoCohorts_AmountRange:
3783
4055
  """Metrics tree node."""
3784
4056
 
3785
4057
  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')
4058
+ self._0sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_with_0sats')
4059
+ self._1sat_to_10sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1sat_under_10sats')
4060
+ self._10sats_to_100sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10sats_under_100sats')
4061
+ self._100sats_to_1k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_100sats_under_1k_sats')
4062
+ self._1k_sats_to_10k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1k_sats_under_10k_sats')
4063
+ self._10k_sats_to_100k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10k_sats_under_100k_sats')
4064
+ self._100k_sats_to_1m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_100k_sats_under_1m_sats')
4065
+ self._1m_sats_to_10m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1m_sats_under_10m_sats')
4066
+ self._10m_sats_to_1btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10m_sats_under_1btc')
4067
+ self._1btc_to_10btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1btc_under_10btc')
4068
+ self._10btc_to_100btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10btc_under_100btc')
4069
+ self._100btc_to_1k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_100btc_under_1k_btc')
4070
+ self._1k_btc_to_10k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_1k_btc_under_10k_btc')
4071
+ self._10k_btc_to_100k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_10k_btc_under_100k_btc')
4072
+ self._100k_btc_or_more: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'utxos_above_100k_btc')
3944
4073
 
3945
- class MetricsTree_Pools:
4074
+ class MetricsTree_Distribution_UtxoCohorts_Term_Short:
3946
4075
  """Metrics tree node."""
3947
4076
 
3948
4077
  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)
4078
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, 'sth')
4079
+ self.outputs: UtxoPattern = UtxoPattern(client, 'sth_utxo_count')
4080
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, 'sth')
4081
+ self.realized: AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern = AdjustedCapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern(client, 'sth')
4082
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, 'sth')
4083
+ self.cost_basis: InvestedMaxMinPercentilesSpotPattern = InvestedMaxMinPercentilesSpotPattern(client, 'sth')
4084
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern4 = InvestedNegNetNuplSupplyUnrealizedPattern4(client, 'sth')
3951
4085
 
3952
- class MetricsTree_Positions:
4086
+ class MetricsTree_Distribution_UtxoCohorts_Term_Long:
3953
4087
  """Metrics tree node."""
3954
4088
 
3955
4089
  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')
4090
+ self.supply: _30dHalvedTotalPattern = _30dHalvedTotalPattern(client, 'lth')
4091
+ self.outputs: UtxoPattern = UtxoPattern(client, 'lth_utxo_count')
4092
+ self.activity: CoinblocksCoindaysSatblocksSatdaysSentPattern = CoinblocksCoindaysSatblocksSatdaysSentPattern(client, 'lth')
4093
+ self.realized: CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2 = CapCapitulationInvestorLossMvrvNegNetPeakProfitRealizedSellSentSoprTotalValuePattern2(client, 'lth')
4094
+ self.unrealized: GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern = GreedInvestedInvestorNegNetPainPeakSupplyTotalUnrealizedPattern(client, 'lth')
4095
+ self.cost_basis: InvestedMaxMinPercentilesSpotPattern = InvestedMaxMinPercentilesSpotPattern(client, 'lth')
4096
+ self.relative: InvestedNegNetNuplSupplyUnrealizedPattern4 = InvestedNegNetNuplSupplyUnrealizedPattern4(client, 'lth')
3958
4097
 
3959
- class MetricsTree_Price_Cents_Split:
4098
+ class MetricsTree_Distribution_UtxoCohorts_Term:
3960
4099
  """Metrics tree node."""
3961
4100
 
3962
4101
  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')
4102
+ self.short: MetricsTree_Distribution_UtxoCohorts_Term_Short = MetricsTree_Distribution_UtxoCohorts_Term_Short(client)
4103
+ self.long: MetricsTree_Distribution_UtxoCohorts_Term_Long = MetricsTree_Distribution_UtxoCohorts_Term_Long(client)
3967
4104
 
3968
- class MetricsTree_Price_Cents:
4105
+ class MetricsTree_Distribution_UtxoCohorts_Type:
3969
4106
  """Metrics tree node."""
3970
4107
 
3971
4108
  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)
4109
+ self.p2pk65: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2pk65')
4110
+ self.p2pk33: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2pk33')
4111
+ self.p2pkh: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2pkh')
4112
+ self.p2ms: ActivityCostOutputsRealizedSupplyUnrealizedPattern = ActivityCostOutputsRealizedSupplyUnrealizedPattern(client, 'p2ms')
4113
+ self.p2sh: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2sh')
4114
+ self.p2wpkh: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2wpkh')
4115
+ self.p2wsh: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2wsh')
4116
+ self.p2tr: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2tr')
4117
+ self.p2a: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern3(client, 'p2a')
4118
+ self.unknown: ActivityCostOutputsRealizedSupplyUnrealizedPattern = ActivityCostOutputsRealizedSupplyUnrealizedPattern(client, 'unknown_outputs')
4119
+ self.empty: ActivityCostOutputsRealizedSupplyUnrealizedPattern = ActivityCostOutputsRealizedSupplyUnrealizedPattern(client, 'empty_outputs')
3974
4120
 
3975
- class MetricsTree_Price_Usd:
4121
+ class MetricsTree_Distribution_UtxoCohorts_MaxAge:
3976
4122
  """Metrics tree node."""
3977
4123
 
3978
4124
  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')
4125
+ self._1w: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_1w_old')
4126
+ self._1m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_1m_old')
4127
+ self._2m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_2m_old')
4128
+ self._3m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_3m_old')
4129
+ self._4m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_4m_old')
4130
+ self._5m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_5m_old')
4131
+ self._6m: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_6m_old')
4132
+ self._1y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_1y_old')
4133
+ self._2y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_2y_old')
4134
+ self._3y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_3y_old')
4135
+ self._4y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_4y_old')
4136
+ self._5y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_5y_old')
4137
+ self._6y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_6y_old')
4138
+ self._7y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_7y_old')
4139
+ self._8y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_8y_old')
4140
+ self._10y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_10y_old')
4141
+ self._12y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_12y_old')
4142
+ self._15y: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern5(client, 'utxos_under_15y_old')
3981
4143
 
3982
- class MetricsTree_Price:
4144
+ class MetricsTree_Distribution_UtxoCohorts_LtAmount:
3983
4145
  """Metrics tree node."""
3984
4146
 
3985
4147
  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)
4148
+ self._10sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10sats')
4149
+ self._100sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_100sats')
4150
+ self._1k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_1k_sats')
4151
+ self._10k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10k_sats')
4152
+ self._100k_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_100k_sats')
4153
+ self._1m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_1m_sats')
4154
+ self._10m_sats: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10m_sats')
4155
+ self._1btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_1btc')
4156
+ self._10btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10btc')
4157
+ self._100btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_100btc')
4158
+ self._1k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_1k_btc')
4159
+ self._10k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_10k_btc')
4160
+ self._100k_btc: ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4 = ActivityCostOutputsRealizedRelativeSupplyUnrealizedPattern4(client, 'utxos_under_100k_btc')
3989
4161
 
3990
- class MetricsTree_Scripts_Count:
4162
+ class MetricsTree_Distribution_UtxoCohorts:
3991
4163
  """Metrics tree node."""
3992
4164
 
3993
4165
  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')
4166
+ self.all: MetricsTree_Distribution_UtxoCohorts_All = MetricsTree_Distribution_UtxoCohorts_All(client)
4167
+ self.age_range: MetricsTree_Distribution_UtxoCohorts_AgeRange = MetricsTree_Distribution_UtxoCohorts_AgeRange(client)
4168
+ self.epoch: MetricsTree_Distribution_UtxoCohorts_Epoch = MetricsTree_Distribution_UtxoCohorts_Epoch(client)
4169
+ self.year: MetricsTree_Distribution_UtxoCohorts_Year = MetricsTree_Distribution_UtxoCohorts_Year(client)
4170
+ self.min_age: MetricsTree_Distribution_UtxoCohorts_MinAge = MetricsTree_Distribution_UtxoCohorts_MinAge(client)
4171
+ self.ge_amount: MetricsTree_Distribution_UtxoCohorts_GeAmount = MetricsTree_Distribution_UtxoCohorts_GeAmount(client)
4172
+ self.amount_range: MetricsTree_Distribution_UtxoCohorts_AmountRange = MetricsTree_Distribution_UtxoCohorts_AmountRange(client)
4173
+ self.term: MetricsTree_Distribution_UtxoCohorts_Term = MetricsTree_Distribution_UtxoCohorts_Term(client)
4174
+ self.type_: MetricsTree_Distribution_UtxoCohorts_Type = MetricsTree_Distribution_UtxoCohorts_Type(client)
4175
+ self.max_age: MetricsTree_Distribution_UtxoCohorts_MaxAge = MetricsTree_Distribution_UtxoCohorts_MaxAge(client)
4176
+ self.lt_amount: MetricsTree_Distribution_UtxoCohorts_LtAmount = MetricsTree_Distribution_UtxoCohorts_LtAmount(client)
4009
4177
 
4010
- class MetricsTree_Scripts_Value:
4178
+ class MetricsTree_Distribution_AddressCohorts_GeAmount:
4011
4179
  """Metrics tree node."""
4012
4180
 
4013
4181
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4014
- self.opreturn: CoinbasePattern = CoinbasePattern(client, 'opreturn_value')
4182
+ self._1sat: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1sat')
4183
+ self._10sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10sats')
4184
+ self._100sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_100sats')
4185
+ self._1k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1k_sats')
4186
+ self._10k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10k_sats')
4187
+ self._100k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_100k_sats')
4188
+ self._1m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1m_sats')
4189
+ self._10m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10m_sats')
4190
+ self._1btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1btc')
4191
+ self._10btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10btc')
4192
+ self._100btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_100btc')
4193
+ self._1k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_1k_btc')
4194
+ self._10k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_over_10k_btc')
4015
4195
 
4016
- class MetricsTree_Scripts:
4196
+ class MetricsTree_Distribution_AddressCohorts_AmountRange:
4017
4197
  """Metrics tree node."""
4018
4198
 
4019
4199
  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)
4200
+ self._0sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_with_0sats')
4201
+ self._1sat_to_10sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1sat_under_10sats')
4202
+ self._10sats_to_100sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10sats_under_100sats')
4203
+ self._100sats_to_1k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100sats_under_1k_sats')
4204
+ self._1k_sats_to_10k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1k_sats_under_10k_sats')
4205
+ self._10k_sats_to_100k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10k_sats_under_100k_sats')
4206
+ self._100k_sats_to_1m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100k_sats_under_1m_sats')
4207
+ self._1m_sats_to_10m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1m_sats_under_10m_sats')
4208
+ self._10m_sats_to_1btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10m_sats_under_1btc')
4209
+ self._1btc_to_10btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1btc_under_10btc')
4210
+ self._10btc_to_100btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10btc_under_100btc')
4211
+ self._100btc_to_1k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100btc_under_1k_btc')
4212
+ self._1k_btc_to_10k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_1k_btc_under_10k_btc')
4213
+ self._10k_btc_to_100k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_10k_btc_under_100k_btc')
4214
+ self._100k_btc_or_more: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_above_100k_btc')
4030
4215
 
4031
- class MetricsTree_Supply_Burned:
4216
+ class MetricsTree_Distribution_AddressCohorts_LtAmount:
4032
4217
  """Metrics tree node."""
4033
4218
 
4034
4219
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4035
- self.opreturn: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, 'opreturn_supply')
4036
- self.unspendable: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, 'unspendable_supply')
4220
+ self._10sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10sats')
4221
+ self._100sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100sats')
4222
+ self._1k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1k_sats')
4223
+ self._10k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10k_sats')
4224
+ self._100k_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100k_sats')
4225
+ self._1m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1m_sats')
4226
+ self._10m_sats: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10m_sats')
4227
+ self._1btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1btc')
4228
+ self._10btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10btc')
4229
+ self._100btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100btc')
4230
+ self._1k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_1k_btc')
4231
+ self._10k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_10k_btc')
4232
+ self._100k_btc: ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern = ActivityAddrCostOutputsRealizedRelativeSupplyUnrealizedPattern(client, 'addrs_under_100k_btc')
4037
4233
 
4038
- class MetricsTree_Supply_Circulating:
4234
+ class MetricsTree_Distribution_AddressCohorts:
4039
4235
  """Metrics tree node."""
4040
4236
 
4041
4237
  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')
4238
+ self.ge_amount: MetricsTree_Distribution_AddressCohorts_GeAmount = MetricsTree_Distribution_AddressCohorts_GeAmount(client)
4239
+ self.amount_range: MetricsTree_Distribution_AddressCohorts_AmountRange = MetricsTree_Distribution_AddressCohorts_AmountRange(client)
4240
+ self.lt_amount: MetricsTree_Distribution_AddressCohorts_LtAmount = MetricsTree_Distribution_AddressCohorts_LtAmount(client)
4045
4241
 
4046
- class MetricsTree_Supply_Velocity:
4242
+ class MetricsTree_Distribution_AddressActivity:
4047
4243
  """Metrics tree node."""
4048
4244
 
4049
4245
  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')
4052
-
4053
- class MetricsTree_Supply:
4246
+ self.all: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'address_activity')
4247
+ self.p2pk65: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2pk65_address_activity')
4248
+ self.p2pk33: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2pk33_address_activity')
4249
+ self.p2pkh: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2pkh_address_activity')
4250
+ self.p2sh: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2sh_address_activity')
4251
+ self.p2wpkh: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2wpkh_address_activity')
4252
+ self.p2wsh: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2wsh_address_activity')
4253
+ self.p2tr: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2tr_address_activity')
4254
+ self.p2a: BalanceBothReactivatedReceivingSendingPattern = BalanceBothReactivatedReceivingSendingPattern(client, 'p2a_address_activity')
4255
+
4256
+ class MetricsTree_Distribution_TotalAddrCount:
4054
4257
  """Metrics tree node."""
4055
4258
 
4056
4259
  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)
4260
+ self.all: MetricPattern1[StoredU64] = MetricPattern1(client, 'total_addr_count')
4261
+ self.p2pk65: MetricPattern1[StoredU64] = MetricPattern1(client, 'p2pk65_total_addr_count')
4262
+ self.p2pk33: MetricPattern1[StoredU64] = MetricPattern1(client, 'p2pk33_total_addr_count')
4263
+ self.p2pkh: MetricPattern1[StoredU64] = MetricPattern1(client, 'p2pkh_total_addr_count')
4264
+ self.p2sh: MetricPattern1[StoredU64] = MetricPattern1(client, 'p2sh_total_addr_count')
4265
+ self.p2wpkh: MetricPattern1[StoredU64] = MetricPattern1(client, 'p2wpkh_total_addr_count')
4266
+ self.p2wsh: MetricPattern1[StoredU64] = MetricPattern1(client, 'p2wsh_total_addr_count')
4267
+ self.p2tr: MetricPattern1[StoredU64] = MetricPattern1(client, 'p2tr_total_addr_count')
4268
+ self.p2a: MetricPattern1[StoredU64] = MetricPattern1(client, 'p2a_total_addr_count')
4062
4269
 
4063
- class MetricsTree_Transactions_Count:
4270
+ class MetricsTree_Distribution_NewAddrCount:
4064
4271
  """Metrics tree node."""
4065
4272
 
4066
4273
  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')
4274
+ self.all: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'new_addr_count')
4275
+ self.p2pk65: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pk65_new_addr_count')
4276
+ self.p2pk33: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pk33_new_addr_count')
4277
+ self.p2pkh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2pkh_new_addr_count')
4278
+ self.p2sh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2sh_new_addr_count')
4279
+ self.p2wpkh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2wpkh_new_addr_count')
4280
+ self.p2wsh: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2wsh_new_addr_count')
4281
+ self.p2tr: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2tr_new_addr_count')
4282
+ self.p2a: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2[StoredU64] = AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern2(client, 'p2a_new_addr_count')
4069
4283
 
4070
- class MetricsTree_Transactions_Fees_Fee:
4284
+ class MetricsTree_Distribution_GrowthRate:
4071
4285
  """Metrics tree node."""
4072
4286
 
4073
4287
  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')
4288
+ self.all: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'growth_rate')
4289
+ self.p2pk65: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2pk65_growth_rate')
4290
+ self.p2pk33: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2pk33_growth_rate')
4291
+ self.p2pkh: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2pkh_growth_rate')
4292
+ self.p2sh: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2sh_growth_rate')
4293
+ self.p2wpkh: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2wpkh_growth_rate')
4294
+ self.p2wsh: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2wsh_growth_rate')
4295
+ self.p2tr: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2tr_growth_rate')
4296
+ self.p2a: AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern[StoredF32] = AverageBaseMaxMedianMinPct10Pct25Pct75Pct90Pattern(client, 'p2a_growth_rate')
4078
4297
 
4079
- class MetricsTree_Transactions_Fees:
4298
+ class MetricsTree_Distribution:
4080
4299
  """Metrics tree node."""
4081
4300
 
4082
4301
  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')
4302
+ self.supply_state: MetricPattern11[SupplyState] = MetricPattern11(client, 'supply_state')
4303
+ self.any_address_indexes: MetricsTree_Distribution_AnyAddressIndexes = MetricsTree_Distribution_AnyAddressIndexes(client)
4304
+ self.addresses_data: MetricsTree_Distribution_AddressesData = MetricsTree_Distribution_AddressesData(client)
4305
+ self.utxo_cohorts: MetricsTree_Distribution_UtxoCohorts = MetricsTree_Distribution_UtxoCohorts(client)
4306
+ self.address_cohorts: MetricsTree_Distribution_AddressCohorts = MetricsTree_Distribution_AddressCohorts(client)
4307
+ self.addr_count: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern = AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern(client, 'addr_count')
4308
+ self.empty_addr_count: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern = AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern(client, 'empty_addr_count')
4309
+ self.address_activity: MetricsTree_Distribution_AddressActivity = MetricsTree_Distribution_AddressActivity(client)
4310
+ self.total_addr_count: MetricsTree_Distribution_TotalAddrCount = MetricsTree_Distribution_TotalAddrCount(client)
4311
+ self.new_addr_count: MetricsTree_Distribution_NewAddrCount = MetricsTree_Distribution_NewAddrCount(client)
4312
+ self.growth_rate: MetricsTree_Distribution_GrowthRate = MetricsTree_Distribution_GrowthRate(client)
4313
+ self.fundedaddressindex: MetricPattern31[FundedAddressIndex] = MetricPattern31(client, 'fundedaddressindex')
4314
+ self.emptyaddressindex: MetricPattern32[EmptyAddressIndex] = MetricPattern32(client, 'emptyaddressindex')
4087
4315
 
4088
- class MetricsTree_Transactions_Size:
4316
+ class MetricsTree_Supply_Circulating:
4089
4317
  """Metrics tree node."""
4090
4318
 
4091
4319
  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')
4320
+ self.sats: MetricPattern3[Sats] = MetricPattern3(client, 'circulating_supply')
4321
+ self.bitcoin: MetricPattern3[Bitcoin] = MetricPattern3(client, 'circulating_supply_btc')
4322
+ self.dollars: MetricPattern3[Dollars] = MetricPattern3(client, 'circulating_supply_usd')
4094
4323
 
4095
- class MetricsTree_Transactions_Versions:
4324
+ class MetricsTree_Supply_Burned:
4096
4325
  """Metrics tree node."""
4097
4326
 
4098
4327
  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')
4328
+ self.opreturn: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, 'opreturn_supply')
4329
+ self.unspendable: BitcoinDollarsSatsPattern3 = BitcoinDollarsSatsPattern3(client, 'unspendable_supply')
4102
4330
 
4103
- class MetricsTree_Transactions_Volume:
4331
+ class MetricsTree_Supply_Velocity:
4104
4332
  """Metrics tree node."""
4105
4333
 
4106
4334
  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')
4335
+ self.btc: MetricPattern4[StoredF64] = MetricPattern4(client, 'btc_velocity')
4336
+ self.usd: MetricPattern4[StoredF64] = MetricPattern4(client, 'usd_velocity')
4113
4337
 
4114
- class MetricsTree_Transactions:
4338
+ class MetricsTree_Supply:
4115
4339
  """Metrics tree node."""
4116
4340
 
4117
4341
  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)
4342
+ self.circulating: MetricsTree_Supply_Circulating = MetricsTree_Supply_Circulating(client)
4343
+ self.burned: MetricsTree_Supply_Burned = MetricsTree_Supply_Burned(client)
4344
+ self.inflation: MetricPattern4[StoredF32] = MetricPattern4(client, 'inflation_rate')
4345
+ self.velocity: MetricsTree_Supply_Velocity = MetricsTree_Supply_Velocity(client)
4346
+ self.market_cap: MetricPattern1[Dollars] = MetricPattern1(client, 'market_cap')
4133
4347
 
4134
4348
  class MetricsTree:
4135
4349
  """Metrics tree node."""
4136
4350
 
4137
4351
  def __init__(self, client: BrkClientBase, base_path: str = ''):
4138
- self.addresses: MetricsTree_Addresses = MetricsTree_Addresses(client)
4139
4352
  self.blocks: MetricsTree_Blocks = MetricsTree_Blocks(client)
4353
+ self.transactions: MetricsTree_Transactions = MetricsTree_Transactions(client)
4354
+ self.inputs: MetricsTree_Inputs = MetricsTree_Inputs(client)
4355
+ self.outputs: MetricsTree_Outputs = MetricsTree_Outputs(client)
4356
+ self.addresses: MetricsTree_Addresses = MetricsTree_Addresses(client)
4357
+ self.scripts: MetricsTree_Scripts = MetricsTree_Scripts(client)
4358
+ self.positions: MetricsTree_Positions = MetricsTree_Positions(client)
4140
4359
  self.cointime: MetricsTree_Cointime = MetricsTree_Cointime(client)
4141
4360
  self.constants: MetricsTree_Constants = MetricsTree_Constants(client)
4142
- self.distribution: MetricsTree_Distribution = MetricsTree_Distribution(client)
4143
4361
  self.indexes: MetricsTree_Indexes = MetricsTree_Indexes(client)
4144
- self.inputs: MetricsTree_Inputs = MetricsTree_Inputs(client)
4145
4362
  self.market: MetricsTree_Market = MetricsTree_Market(client)
4146
- self.outputs: MetricsTree_Outputs = MetricsTree_Outputs(client)
4147
4363
  self.pools: MetricsTree_Pools = MetricsTree_Pools(client)
4148
- self.positions: MetricsTree_Positions = MetricsTree_Positions(client)
4149
4364
  self.price: MetricsTree_Price = MetricsTree_Price(client)
4150
- self.scripts: MetricsTree_Scripts = MetricsTree_Scripts(client)
4365
+ self.distribution: MetricsTree_Distribution = MetricsTree_Distribution(client)
4151
4366
  self.supply: MetricsTree_Supply = MetricsTree_Supply(client)
4152
- self.transactions: MetricsTree_Transactions = MetricsTree_Transactions(client)
4153
4367
 
4154
4368
  class BrkClient(BrkClientBase):
4155
4369
  """Main BRK client with metrics tree and API methods."""
4156
4370
 
4157
- VERSION = "v0.1.1"
4371
+ VERSION = "v0.1.4"
4158
4372
 
4159
4373
  INDEXES = [
4160
4374
  "dateindex",
@@ -4182,7 +4396,7 @@ class BrkClient(BrkClientBase):
4182
4396
  "unknownoutputindex",
4183
4397
  "weekindex",
4184
4398
  "yearindex",
4185
- "loadedaddressindex",
4399
+ "fundedaddressindex",
4186
4400
  "emptyaddressindex",
4187
4401
  "pairoutputindex"
4188
4402
  ]