brk-client 0.1.0b0__py3-none-any.whl → 0.1.1__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
@@ -71,8 +71,6 @@ MonthIndex = int
71
71
  # Opening price value for a time period
72
72
  Open = Cents
73
73
  OpReturnIndex = TypeIndex
74
- OracleBins = List[int]
75
- OracleBinsV2 = List[int]
76
74
  OutPoint = int
77
75
  # Type (P2PKH, P2WPKH, P2SH, P2TR, etc.)
78
76
  OutputType = Literal["p2pk65", "p2pk33", "p2pkh", "p2ms", "p2sh", "opreturn", "p2wpkh", "p2wsh", "p2tr", "p2a", "empty", "unknown"]
@@ -98,15 +96,19 @@ P2WPKHAddressIndex = TypeIndex
98
96
  P2WPKHBytes = U8x20
99
97
  P2WSHAddressIndex = TypeIndex
100
98
  P2WSHBytes = U8x32
101
- # Index for 2-output transactions (oracle pair candidates)
102
- #
103
- # This indexes all transactions with exactly 2 outputs, which are
104
- # candidates for the UTXOracle algorithm (payment + change pattern).
105
- PairOutputIndex = int
106
99
  PoolSlug = Literal["unknown", "blockfills", "ultimuspool", "terrapool", "luxor", "onethash", "btccom", "bitfarms", "huobipool", "wayicn", "canoepool", "btctop", "bitcoincom", "pool175btc", "gbminers", "axbt", "asicminer", "bitminter", "bitcoinrussia", "btcserv", "simplecoinus", "btcguild", "eligius", "ozcoin", "eclipsemc", "maxbtc", "triplemining", "coinlab", "pool50btc", "ghashio", "stminingcorp", "bitparking", "mmpool", "polmine", "kncminer", "bitalo", "f2pool", "hhtt", "megabigpower", "mtred", "nmcbit", "yourbtcnet", "givemecoins", "braiinspool", "antpool", "multicoinco", "bcpoolio", "cointerra", "kanopool", "solock", "ckpool", "nicehash", "bitclub", "bitcoinaffiliatenetwork", "btcc", "bwpool", "exxbw", "bitsolo", "bitfury", "twentyoneinc", "digitalbtc", "eightbaochi", "mybtccoinpool", "tbdice", "hashpool", "nexious", "bravomining", "hotpool", "okexpool", "bcmonster", "onehash", "bixin", "tatmaspool", "viabtc", "connectbtc", "batpool", "waterhole", "dcexploration", "dcex", "btpool", "fiftyeightcoin", "bitcoinindia", "shawnp0wers", "phashio", "rigpool", "haozhuzhu", "sevenpool", "miningkings", "hashbx", "dpool", "rawpool", "haominer", "helix", "bitcoinukraine", "poolin", "secretsuperstar", "tigerpoolnet", "sigmapoolcom", "okpooltop", "hummerpool", "tangpool", "bytepool", "spiderpool", "novablock", "miningcity", "binancepool", "minerium", "lubiancom", "okkong", "aaopool", "emcdpool", "foundryusa", "sbicrypto", "arkpool", "purebtccom", "marapool", "kucoinpool", "entrustcharitypool", "okminer", "titan", "pegapool", "btcnuggets", "cloudhashing", "digitalxmintsy", "telco214", "btcpoolparty", "multipool", "transactioncoinmining", "btcdig", "trickysbtcpool", "btcmp", "eobot", "unomp", "patels", "gogreenlight", "ekanembtc", "canoe", "tiger", "onem1x", "zulupool", "secpool", "ocean", "whitepool", "wk057", "futurebitapollosolo", "carbonnegative", "portlandhodl", "phoenix", "neopool", "maxipool", "bitfufupool", "luckypool", "miningdutch", "publicpool", "miningsquared", "innopolistech", "btclab", "parasite"]
107
100
  QuarterIndex = int
108
101
  # Transaction locktime
109
102
  RawLockTime = int
103
+ # Fractional satoshis (f64) - for representing USD prices in sats
104
+ #
105
+ # Formula: `sats_fract = usd_value * 100_000_000 / btc_price`
106
+ #
107
+ # When BTC is $100,000:
108
+ # - $1 = 1,000 sats
109
+ # - $0.001 = 1 sat
110
+ # - $0.0001 = 0.1 sats (fractional)
111
+ SatsFract = float
110
112
  SemesterIndex = int
111
113
  # Fixed-size boolean value optimized for on-disk storage (stored as u8)
112
114
  StoredBool = int
@@ -1290,7 +1292,6 @@ _i29 = ('weekindex',)
1290
1292
  _i30 = ('yearindex',)
1291
1293
  _i31 = ('loadedaddressindex',)
1292
1294
  _i32 = ('emptyaddressindex',)
1293
- _i33 = ('pairoutputindex',)
1294
1295
 
1295
1296
  def _ep(c: BrkClientBase, n: str, i: Index) -> MetricEndpointBuilder[Any]:
1296
1297
  return MetricEndpointBuilder(c, n, i)
@@ -1710,18 +1711,6 @@ class MetricPattern32(Generic[T]):
1710
1711
  def indexes(self) -> List[str]: return list(_i32)
1711
1712
  def get(self, index: Index) -> Optional[MetricEndpointBuilder[T]]: return _ep(self.by._c, self._n, index) if index in _i32 else None
1712
1713
 
1713
- class _MetricPattern33By(Generic[T]):
1714
- def __init__(self, c: BrkClientBase, n: str): self._c, self._n = c, n
1715
- def pairoutputindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'pairoutputindex')
1716
-
1717
- class MetricPattern33(Generic[T]):
1718
- by: _MetricPattern33By[T]
1719
- def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern33By(c, n)
1720
- @property
1721
- def name(self) -> str: return self._n
1722
- def indexes(self) -> List[str]: return list(_i33)
1723
- def get(self, index: Index) -> Optional[MetricEndpointBuilder[T]]: return _ep(self.by._c, self._n, index) if index in _i33 else None
1724
-
1725
1714
  # Reusable structural pattern classes
1726
1715
 
1727
1716
  class RealizedPattern3:
@@ -1746,7 +1735,7 @@ class RealizedPattern3:
1746
1735
  self.realized_cap_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'realized_cap_rel_to_own_market_cap'))
1747
1736
  self.realized_loss: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_loss'))
1748
1737
  self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1749
- self.realized_price: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_price'))
1738
+ self.realized_price: ActivePricePattern = ActivePricePattern(client, _m(acc, 'realized_price'))
1750
1739
  self.realized_price_extra: ActivePriceRatioPattern = ActivePriceRatioPattern(client, _m(acc, 'realized_price_ratio'))
1751
1740
  self.realized_profit: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_profit'))
1752
1741
  self.realized_profit_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
@@ -1783,7 +1772,7 @@ class RealizedPattern4:
1783
1772
  self.realized_cap_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_cap_30d_delta'))
1784
1773
  self.realized_loss: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_loss'))
1785
1774
  self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1786
- self.realized_price: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_price'))
1775
+ self.realized_price: ActivePricePattern = ActivePricePattern(client, _m(acc, 'realized_price'))
1787
1776
  self.realized_price_extra: RealizedPriceExtraPattern = RealizedPriceExtraPattern(client, _m(acc, 'realized_price_ratio'))
1788
1777
  self.realized_profit: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_profit'))
1789
1778
  self.realized_profit_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
@@ -1803,31 +1792,31 @@ class Ratio1ySdPattern:
1803
1792
 
1804
1793
  def __init__(self, client: BrkClientBase, acc: str):
1805
1794
  """Create pattern node with accumulated metric name."""
1806
- self._0sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, '0sd_usd'))
1795
+ self._0sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, '0sd_usd'))
1807
1796
  self.m0_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm0_5sd'))
1808
- self.m0_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'm0_5sd_usd'))
1797
+ self.m0_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm0_5sd_usd'))
1809
1798
  self.m1_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm1_5sd'))
1810
- self.m1_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'm1_5sd_usd'))
1799
+ self.m1_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm1_5sd_usd'))
1811
1800
  self.m1sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm1sd'))
1812
- self.m1sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'm1sd_usd'))
1801
+ self.m1sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm1sd_usd'))
1813
1802
  self.m2_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm2_5sd'))
1814
- self.m2_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'm2_5sd_usd'))
1803
+ self.m2_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm2_5sd_usd'))
1815
1804
  self.m2sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm2sd'))
1816
- self.m2sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'm2sd_usd'))
1805
+ self.m2sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm2sd_usd'))
1817
1806
  self.m3sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'm3sd'))
1818
- self.m3sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'm3sd_usd'))
1807
+ self.m3sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'm3sd_usd'))
1819
1808
  self.p0_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p0_5sd'))
1820
- self.p0_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'p0_5sd_usd'))
1809
+ self.p0_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p0_5sd_usd'))
1821
1810
  self.p1_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p1_5sd'))
1822
- self.p1_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'p1_5sd_usd'))
1811
+ self.p1_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p1_5sd_usd'))
1823
1812
  self.p1sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p1sd'))
1824
- self.p1sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'p1sd_usd'))
1813
+ self.p1sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p1sd_usd'))
1825
1814
  self.p2_5sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p2_5sd'))
1826
- self.p2_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'p2_5sd_usd'))
1815
+ self.p2_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p2_5sd_usd'))
1827
1816
  self.p2sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p2sd'))
1828
- self.p2sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'p2sd_usd'))
1817
+ self.p2sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p2sd_usd'))
1829
1818
  self.p3sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'p3sd'))
1830
- self.p3sd_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'p3sd_usd'))
1819
+ self.p3sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'p3sd_usd'))
1831
1820
  self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
1832
1821
  self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
1833
1822
  self.zscore: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'zscore'))
@@ -1849,7 +1838,7 @@ class RealizedPattern2:
1849
1838
  self.realized_cap_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'realized_cap_rel_to_own_market_cap'))
1850
1839
  self.realized_loss: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_loss'))
1851
1840
  self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1852
- self.realized_price: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_price'))
1841
+ self.realized_price: ActivePricePattern = ActivePricePattern(client, _m(acc, 'realized_price'))
1853
1842
  self.realized_price_extra: ActivePriceRatioPattern = ActivePriceRatioPattern(client, _m(acc, 'realized_price_ratio'))
1854
1843
  self.realized_profit: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_profit'))
1855
1844
  self.realized_profit_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
@@ -1881,7 +1870,7 @@ class RealizedPattern:
1881
1870
  self.realized_cap_30d_delta: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'realized_cap_30d_delta'))
1882
1871
  self.realized_loss: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_loss'))
1883
1872
  self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_loss_rel_to_realized_cap'))
1884
- self.realized_price: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_price'))
1873
+ self.realized_price: ActivePricePattern = ActivePricePattern(client, _m(acc, 'realized_price'))
1885
1874
  self.realized_price_extra: RealizedPriceExtraPattern = RealizedPriceExtraPattern(client, _m(acc, 'realized_price_ratio'))
1886
1875
  self.realized_profit: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'realized_profit'))
1887
1876
  self.realized_profit_rel_to_realized_cap: BlockCountPattern[StoredF32] = BlockCountPattern(client, _m(acc, 'realized_profit_rel_to_realized_cap'))
@@ -1901,7 +1890,7 @@ class Price111dSmaPattern:
1901
1890
 
1902
1891
  def __init__(self, client: BrkClientBase, acc: str):
1903
1892
  """Create pattern node with accumulated metric name."""
1904
- self.price: MetricPattern4[Dollars] = MetricPattern4(client, acc)
1893
+ self.price: _0sdUsdPattern = _0sdUsdPattern(client, acc)
1905
1894
  self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio'))
1906
1895
  self.ratio_1m_sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_1m_sma'))
1907
1896
  self.ratio_1w_sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_1w_sma'))
@@ -1909,19 +1898,44 @@ class Price111dSmaPattern:
1909
1898
  self.ratio_2y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, 'ratio_2y'))
1910
1899
  self.ratio_4y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, 'ratio_4y'))
1911
1900
  self.ratio_pct1: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct1'))
1912
- self.ratio_pct1_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'ratio_pct1_usd'))
1901
+ self.ratio_pct1_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct1_usd'))
1913
1902
  self.ratio_pct2: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct2'))
1914
- self.ratio_pct2_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'ratio_pct2_usd'))
1903
+ self.ratio_pct2_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct2_usd'))
1915
1904
  self.ratio_pct5: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct5'))
1916
- self.ratio_pct5_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'ratio_pct5_usd'))
1905
+ self.ratio_pct5_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct5_usd'))
1917
1906
  self.ratio_pct95: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct95'))
1918
- self.ratio_pct95_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'ratio_pct95_usd'))
1907
+ self.ratio_pct95_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct95_usd'))
1919
1908
  self.ratio_pct98: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct98'))
1920
- self.ratio_pct98_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'ratio_pct98_usd'))
1909
+ self.ratio_pct98_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct98_usd'))
1921
1910
  self.ratio_pct99: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'ratio_pct99'))
1922
- self.ratio_pct99_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'ratio_pct99_usd'))
1911
+ self.ratio_pct99_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'ratio_pct99_usd'))
1923
1912
  self.ratio_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, 'ratio'))
1924
1913
 
1914
+ class PercentilesPattern:
1915
+ """Pattern struct for repeated tree structure."""
1916
+
1917
+ def __init__(self, client: BrkClientBase, acc: str):
1918
+ """Create pattern node with accumulated metric name."""
1919
+ self.pct05: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct05'))
1920
+ self.pct10: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct10'))
1921
+ self.pct15: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct15'))
1922
+ self.pct20: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct20'))
1923
+ self.pct25: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct25'))
1924
+ self.pct30: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct30'))
1925
+ self.pct35: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct35'))
1926
+ self.pct40: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct40'))
1927
+ self.pct45: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct45'))
1928
+ self.pct50: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct50'))
1929
+ self.pct55: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct55'))
1930
+ self.pct60: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct60'))
1931
+ self.pct65: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct65'))
1932
+ self.pct70: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct70'))
1933
+ self.pct75: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct75'))
1934
+ self.pct80: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct80'))
1935
+ self.pct85: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct85'))
1936
+ self.pct90: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct90'))
1937
+ self.pct95: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct95'))
1938
+
1925
1939
  class ActivePriceRatioPattern:
1926
1940
  """Pattern struct for repeated tree structure."""
1927
1941
 
@@ -1934,44 +1948,19 @@ class ActivePriceRatioPattern:
1934
1948
  self.ratio_2y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, '2y'))
1935
1949
  self.ratio_4y_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, '4y'))
1936
1950
  self.ratio_pct1: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct1'))
1937
- self.ratio_pct1_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct1_usd'))
1951
+ self.ratio_pct1_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct1_usd'))
1938
1952
  self.ratio_pct2: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct2'))
1939
- self.ratio_pct2_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct2_usd'))
1953
+ self.ratio_pct2_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct2_usd'))
1940
1954
  self.ratio_pct5: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct5'))
1941
- self.ratio_pct5_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct5_usd'))
1955
+ self.ratio_pct5_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct5_usd'))
1942
1956
  self.ratio_pct95: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct95'))
1943
- self.ratio_pct95_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct95_usd'))
1957
+ self.ratio_pct95_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct95_usd'))
1944
1958
  self.ratio_pct98: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct98'))
1945
- self.ratio_pct98_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct98_usd'))
1959
+ self.ratio_pct98_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct98_usd'))
1946
1960
  self.ratio_pct99: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'pct99'))
1947
- self.ratio_pct99_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct99_usd'))
1961
+ self.ratio_pct99_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, 'pct99_usd'))
1948
1962
  self.ratio_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, acc)
1949
1963
 
1950
- class PercentilesPattern:
1951
- """Pattern struct for repeated tree structure."""
1952
-
1953
- def __init__(self, client: BrkClientBase, acc: str):
1954
- """Create pattern node with accumulated metric name."""
1955
- self.pct05: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct05'))
1956
- self.pct10: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct10'))
1957
- self.pct15: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct15'))
1958
- self.pct20: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct20'))
1959
- self.pct25: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct25'))
1960
- self.pct30: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct30'))
1961
- self.pct35: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct35'))
1962
- self.pct40: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct40'))
1963
- self.pct45: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct45'))
1964
- self.pct50: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct50'))
1965
- self.pct55: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct55'))
1966
- self.pct60: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct60'))
1967
- self.pct65: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct65'))
1968
- self.pct70: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct70'))
1969
- self.pct75: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct75'))
1970
- self.pct80: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct80'))
1971
- self.pct85: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct85'))
1972
- self.pct90: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct90'))
1973
- self.pct95: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct95'))
1974
-
1975
1964
  class RelativePattern5:
1976
1965
  """Pattern struct for repeated tree structure."""
1977
1966
 
@@ -2017,25 +2006,6 @@ class AaopoolPattern:
2017
2006
  self.fee: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, _m(acc, 'fee'))
2018
2007
  self.subsidy: UnclaimedRewardsPattern = UnclaimedRewardsPattern(client, _m(acc, 'subsidy'))
2019
2008
 
2020
- class LookbackPattern(Generic[T]):
2021
- """Pattern struct for repeated tree structure."""
2022
-
2023
- def __init__(self, client: BrkClientBase, acc: str):
2024
- """Create pattern node with accumulated metric name."""
2025
- self._10y: MetricPattern4[T] = MetricPattern4(client, _m(acc, '10y_ago'))
2026
- self._1d: MetricPattern4[T] = MetricPattern4(client, _m(acc, '1d_ago'))
2027
- self._1m: MetricPattern4[T] = MetricPattern4(client, _m(acc, '1m_ago'))
2028
- self._1w: MetricPattern4[T] = MetricPattern4(client, _m(acc, '1w_ago'))
2029
- self._1y: MetricPattern4[T] = MetricPattern4(client, _m(acc, '1y_ago'))
2030
- self._2y: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2y_ago'))
2031
- self._3m: MetricPattern4[T] = MetricPattern4(client, _m(acc, '3m_ago'))
2032
- self._3y: MetricPattern4[T] = MetricPattern4(client, _m(acc, '3y_ago'))
2033
- self._4y: MetricPattern4[T] = MetricPattern4(client, _m(acc, '4y_ago'))
2034
- self._5y: MetricPattern4[T] = MetricPattern4(client, _m(acc, '5y_ago'))
2035
- self._6m: MetricPattern4[T] = MetricPattern4(client, _m(acc, '6m_ago'))
2036
- self._6y: MetricPattern4[T] = MetricPattern4(client, _m(acc, '6y_ago'))
2037
- self._8y: MetricPattern4[T] = MetricPattern4(client, _m(acc, '8y_ago'))
2038
-
2039
2009
  class PeriodLumpSumStackPattern:
2040
2010
  """Pattern struct for repeated tree structure."""
2041
2011
 
@@ -2054,7 +2024,7 @@ class PeriodLumpSumStackPattern:
2054
2024
  self._6y: _2015Pattern = _2015Pattern(client, _p('6y', acc))
2055
2025
  self._8y: _2015Pattern = _2015Pattern(client, _p('8y', acc))
2056
2026
 
2057
- class PeriodAveragePricePattern(Generic[T]):
2027
+ class PeriodDaysInLossPattern(Generic[T]):
2058
2028
  """Pattern struct for repeated tree structure."""
2059
2029
 
2060
2030
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2072,23 +2042,23 @@ class PeriodAveragePricePattern(Generic[T]):
2072
2042
  self._6y: MetricPattern4[T] = MetricPattern4(client, _p('6y', acc))
2073
2043
  self._8y: MetricPattern4[T] = MetricPattern4(client, _p('8y', acc))
2074
2044
 
2075
- class ClassAveragePricePattern(Generic[T]):
2045
+ class ClassDaysInLossPattern(Generic[T]):
2076
2046
  """Pattern struct for repeated tree structure."""
2077
2047
 
2078
2048
  def __init__(self, client: BrkClientBase, acc: str):
2079
2049
  """Create pattern node with accumulated metric name."""
2080
- self._2015: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2015_average_price'))
2081
- self._2016: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2016_average_price'))
2082
- self._2017: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2017_average_price'))
2083
- self._2018: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2018_average_price'))
2084
- self._2019: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2019_average_price'))
2085
- self._2020: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2020_average_price'))
2086
- self._2021: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2021_average_price'))
2087
- self._2022: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2022_average_price'))
2088
- self._2023: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2023_average_price'))
2089
- self._2024: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2024_average_price'))
2090
- self._2025: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2025_average_price'))
2091
- self._2026: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2026_average_price'))
2050
+ self._2015: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2015_days_in_profit'))
2051
+ self._2016: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2016_days_in_profit'))
2052
+ self._2017: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2017_days_in_profit'))
2053
+ self._2018: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2018_days_in_profit'))
2054
+ self._2019: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2019_days_in_profit'))
2055
+ self._2020: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2020_days_in_profit'))
2056
+ self._2021: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2021_days_in_profit'))
2057
+ self._2022: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2022_days_in_profit'))
2058
+ self._2023: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2023_days_in_profit'))
2059
+ self._2024: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2024_days_in_profit'))
2060
+ self._2025: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2025_days_in_profit'))
2061
+ self._2026: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2026_days_in_profit'))
2092
2062
 
2093
2063
  class BitcoinPattern:
2094
2064
  """Pattern struct for repeated tree structure."""
@@ -2231,30 +2201,42 @@ class _0satsPattern:
2231
2201
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2232
2202
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2233
2203
 
2234
- class PhaseDailyCentsPattern(Generic[T]):
2204
+ class _100btcPattern:
2235
2205
  """Pattern struct for repeated tree structure."""
2236
2206
 
2237
2207
  def __init__(self, client: BrkClientBase, acc: str):
2238
2208
  """Create pattern node with accumulated metric name."""
2239
- self.average: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'average'))
2240
- self.max: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'max'))
2241
- self.median: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'median'))
2242
- self.min: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'min'))
2243
- self.pct10: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct10'))
2244
- self.pct25: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct25'))
2245
- self.pct75: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct75'))
2246
- self.pct90: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct90'))
2209
+ self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2210
+ self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2211
+ self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2212
+ self.realized: RealizedPattern = RealizedPattern(client, acc)
2213
+ self.relative: RelativePattern = RelativePattern(client, acc)
2214
+ self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2215
+ self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2247
2216
 
2248
- class _10yTo12yPattern:
2217
+ class _0satsPattern2:
2249
2218
  """Pattern struct for repeated tree structure."""
2250
2219
 
2251
2220
  def __init__(self, client: BrkClientBase, acc: str):
2252
2221
  """Create pattern node with accumulated metric name."""
2253
2222
  self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2254
- self.cost_basis: CostBasisPattern2 = CostBasisPattern2(client, acc)
2223
+ self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2255
2224
  self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2256
- self.realized: RealizedPattern2 = RealizedPattern2(client, acc)
2257
- self.relative: RelativePattern2 = RelativePattern2(client, acc)
2225
+ self.realized: RealizedPattern = RealizedPattern(client, acc)
2226
+ self.relative: RelativePattern4 = RelativePattern4(client, _m(acc, 'supply_in'))
2227
+ self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2228
+ self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2229
+
2230
+ class _10yPattern:
2231
+ """Pattern struct for repeated tree structure."""
2232
+
2233
+ def __init__(self, client: BrkClientBase, acc: str):
2234
+ """Create pattern node with accumulated metric name."""
2235
+ self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2236
+ self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2237
+ self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2238
+ self.realized: RealizedPattern4 = RealizedPattern4(client, acc)
2239
+ self.relative: RelativePattern = RelativePattern(client, acc)
2258
2240
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2259
2241
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2260
2242
 
@@ -2271,19 +2253,6 @@ class UnrealizedPattern:
2271
2253
  self.unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_loss'))
2272
2254
  self.unrealized_profit: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_profit'))
2273
2255
 
2274
- class _0satsPattern2:
2275
- """Pattern struct for repeated tree structure."""
2276
-
2277
- def __init__(self, client: BrkClientBase, acc: str):
2278
- """Create pattern node with accumulated metric name."""
2279
- self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2280
- self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2281
- self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2282
- self.realized: RealizedPattern = RealizedPattern(client, acc)
2283
- self.relative: RelativePattern4 = RelativePattern4(client, _m(acc, 'supply_in'))
2284
- self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2285
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2286
-
2287
2256
  class PeriodCagrPattern:
2288
2257
  """Pattern struct for repeated tree structure."""
2289
2258
 
@@ -2297,31 +2266,30 @@ class PeriodCagrPattern:
2297
2266
  self._6y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('6y', acc))
2298
2267
  self._8y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('8y', acc))
2299
2268
 
2300
- class _10yPattern:
2269
+ class _10yTo12yPattern:
2301
2270
  """Pattern struct for repeated tree structure."""
2302
2271
 
2303
2272
  def __init__(self, client: BrkClientBase, acc: str):
2304
2273
  """Create pattern node with accumulated metric name."""
2305
2274
  self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2306
- self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2275
+ self.cost_basis: CostBasisPattern2 = CostBasisPattern2(client, acc)
2307
2276
  self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2308
- self.realized: RealizedPattern4 = RealizedPattern4(client, acc)
2309
- self.relative: RelativePattern = RelativePattern(client, acc)
2277
+ self.realized: RealizedPattern2 = RealizedPattern2(client, acc)
2278
+ self.relative: RelativePattern2 = RelativePattern2(client, acc)
2310
2279
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2311
2280
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2312
2281
 
2313
- class _100btcPattern:
2282
+ class AllPattern:
2314
2283
  """Pattern struct for repeated tree structure."""
2315
2284
 
2316
2285
  def __init__(self, client: BrkClientBase, acc: str):
2317
2286
  """Create pattern node with accumulated metric name."""
2318
- self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2319
- self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2320
- self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2321
- self.realized: RealizedPattern = RealizedPattern(client, acc)
2322
- self.relative: RelativePattern = RelativePattern(client, acc)
2323
- self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2324
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2287
+ self.balance_decreased: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'balance_decreased'))
2288
+ self.balance_increased: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'balance_increased'))
2289
+ self.both: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'both'))
2290
+ self.reactivated: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'reactivated'))
2291
+ self.receiving: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'receiving'))
2292
+ self.sending: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, 'sending'))
2325
2293
 
2326
2294
  class ActivityPattern2:
2327
2295
  """Pattern struct for repeated tree structure."""
@@ -2353,6 +2321,24 @@ class UnclaimedRewardsPattern:
2353
2321
  self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2354
2322
  self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
2355
2323
 
2324
+ class _2015Pattern:
2325
+ """Pattern struct for repeated tree structure."""
2326
+
2327
+ def __init__(self, client: BrkClientBase, acc: str):
2328
+ """Create pattern node with accumulated metric name."""
2329
+ self.bitcoin: MetricPattern4[Bitcoin] = MetricPattern4(client, _m(acc, 'btc'))
2330
+ self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'usd'))
2331
+ self.sats: MetricPattern4[Sats] = MetricPattern4(client, acc)
2332
+
2333
+ class ActiveSupplyPattern:
2334
+ """Pattern struct for repeated tree structure."""
2335
+
2336
+ def __init__(self, client: BrkClientBase, acc: str):
2337
+ """Create pattern node with accumulated metric name."""
2338
+ self.bitcoin: MetricPattern1[Bitcoin] = MetricPattern1(client, _m(acc, 'btc'))
2339
+ self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'usd'))
2340
+ self.sats: MetricPattern1[Sats] = MetricPattern1(client, acc)
2341
+
2356
2342
  class CoinbasePattern:
2357
2343
  """Pattern struct for repeated tree structure."""
2358
2344
 
@@ -2376,36 +2362,34 @@ class CostBasisPattern2:
2376
2362
 
2377
2363
  def __init__(self, client: BrkClientBase, acc: str):
2378
2364
  """Create pattern node with accumulated metric name."""
2379
- self.max: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'max_cost_basis'))
2380
- self.min: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'min_cost_basis'))
2365
+ self.max: ActivePricePattern = ActivePricePattern(client, _m(acc, 'max_cost_basis'))
2366
+ self.min: ActivePricePattern = ActivePricePattern(client, _m(acc, 'min_cost_basis'))
2381
2367
  self.percentiles: PercentilesPattern = PercentilesPattern(client, _m(acc, 'cost_basis'))
2382
2368
 
2383
- class ActiveSupplyPattern:
2369
+ class CoinbasePattern2:
2384
2370
  """Pattern struct for repeated tree structure."""
2385
2371
 
2386
2372
  def __init__(self, client: BrkClientBase, acc: str):
2387
2373
  """Create pattern node with accumulated metric name."""
2388
- self.bitcoin: MetricPattern1[Bitcoin] = MetricPattern1(client, _m(acc, 'btc'))
2389
- self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'usd'))
2390
- self.sats: MetricPattern1[Sats] = MetricPattern1(client, acc)
2374
+ self.bitcoin: BlockCountPattern[Bitcoin] = BlockCountPattern(client, _m(acc, 'btc'))
2375
+ self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2376
+ self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
2391
2377
 
2392
- class _2015Pattern:
2378
+ class RelativePattern4:
2393
2379
  """Pattern struct for repeated tree structure."""
2394
2380
 
2395
2381
  def __init__(self, client: BrkClientBase, acc: str):
2396
2382
  """Create pattern node with accumulated metric name."""
2397
- self.bitcoin: MetricPattern4[Bitcoin] = MetricPattern4(client, _m(acc, 'btc'))
2398
- self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'usd'))
2399
- self.sats: MetricPattern4[Sats] = MetricPattern4(client, acc)
2383
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'loss_rel_to_own_supply'))
2384
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'profit_rel_to_own_supply'))
2400
2385
 
2401
- class CoinbasePattern2:
2386
+ class ActivePricePattern:
2402
2387
  """Pattern struct for repeated tree structure."""
2403
2388
 
2404
2389
  def __init__(self, client: BrkClientBase, acc: str):
2405
2390
  """Create pattern node with accumulated metric name."""
2406
- self.bitcoin: BlockCountPattern[Bitcoin] = BlockCountPattern(client, _m(acc, 'btc'))
2407
- self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2408
- self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
2391
+ self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, acc)
2392
+ self.sats: MetricPattern1[SatsFract] = MetricPattern1(client, _m(acc, 'sats'))
2409
2393
 
2410
2394
  class _1dReturns1mSdPattern:
2411
2395
  """Pattern struct for repeated tree structure."""
@@ -2415,53 +2399,53 @@ class _1dReturns1mSdPattern:
2415
2399
  self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
2416
2400
  self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
2417
2401
 
2418
- class CostBasisPattern:
2402
+ class SupplyPattern2:
2419
2403
  """Pattern struct for repeated tree structure."""
2420
2404
 
2421
2405
  def __init__(self, client: BrkClientBase, acc: str):
2422
2406
  """Create pattern node with accumulated metric name."""
2423
- self.max: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'max_cost_basis'))
2424
- self.min: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'min_cost_basis'))
2407
+ self.halved: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'halved'))
2408
+ self.total: ActiveSupplyPattern = ActiveSupplyPattern(client, acc)
2425
2409
 
2426
- class SupplyPattern2:
2410
+ class _0sdUsdPattern:
2427
2411
  """Pattern struct for repeated tree structure."""
2428
2412
 
2429
2413
  def __init__(self, client: BrkClientBase, acc: str):
2430
2414
  """Create pattern node with accumulated metric name."""
2431
- self.halved: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'halved'))
2432
- self.total: ActiveSupplyPattern = ActiveSupplyPattern(client, acc)
2415
+ self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, acc)
2416
+ self.sats: MetricPattern4[SatsFract] = MetricPattern4(client, _m(acc, 'sats'))
2433
2417
 
2434
- class RelativePattern4:
2418
+ class CostBasisPattern:
2435
2419
  """Pattern struct for repeated tree structure."""
2436
2420
 
2437
2421
  def __init__(self, client: BrkClientBase, acc: str):
2438
2422
  """Create pattern node with accumulated metric name."""
2439
- self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'loss_rel_to_own_supply'))
2440
- self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'profit_rel_to_own_supply'))
2423
+ self.max: ActivePricePattern = ActivePricePattern(client, _m(acc, 'max_cost_basis'))
2424
+ self.min: ActivePricePattern = ActivePricePattern(client, _m(acc, 'min_cost_basis'))
2441
2425
 
2442
- class BitcoinPattern2(Generic[T]):
2426
+ class BlockCountPattern(Generic[T]):
2443
2427
  """Pattern struct for repeated tree structure."""
2444
2428
 
2445
2429
  def __init__(self, client: BrkClientBase, acc: str):
2446
2430
  """Create pattern node with accumulated metric name."""
2447
- self.cumulative: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'cumulative'))
2431
+ self.cumulative: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'cumulative'))
2448
2432
  self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2449
2433
 
2450
- class SatsPattern(Generic[T]):
2434
+ class BitcoinPattern2(Generic[T]):
2451
2435
  """Pattern struct for repeated tree structure."""
2452
2436
 
2453
2437
  def __init__(self, client: BrkClientBase, acc: str):
2454
2438
  """Create pattern node with accumulated metric name."""
2455
- self.ohlc: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'ohlc'))
2456
- self.split: SplitPattern2[T] = SplitPattern2(client, acc)
2439
+ self.cumulative: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'cumulative'))
2440
+ self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2457
2441
 
2458
- class BlockCountPattern(Generic[T]):
2442
+ class SatsPattern(Generic[T]):
2459
2443
  """Pattern struct for repeated tree structure."""
2460
2444
 
2461
2445
  def __init__(self, client: BrkClientBase, acc: str):
2462
2446
  """Create pattern node with accumulated metric name."""
2463
- self.cumulative: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'cumulative'))
2464
- self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2447
+ self.ohlc: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'ohlc_sats'))
2448
+ self.split: SplitPattern2[T] = SplitPattern2(client, _m(acc, 'sats'))
2465
2449
 
2466
2450
  class OutputsPattern:
2467
2451
  """Pattern struct for repeated tree structure."""
@@ -2647,13 +2631,13 @@ class MetricsTree_Cointime_Pricing:
2647
2631
  """Metrics tree node."""
2648
2632
 
2649
2633
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2650
- self.active_price: MetricPattern1[Dollars] = MetricPattern1(client, 'active_price')
2634
+ self.active_price: ActivePricePattern = ActivePricePattern(client, 'active_price')
2651
2635
  self.active_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(client, 'active_price_ratio')
2652
- self.cointime_price: MetricPattern1[Dollars] = MetricPattern1(client, 'cointime_price')
2636
+ self.cointime_price: ActivePricePattern = ActivePricePattern(client, 'cointime_price')
2653
2637
  self.cointime_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(client, 'cointime_price_ratio')
2654
- self.true_market_mean: MetricPattern1[Dollars] = MetricPattern1(client, 'true_market_mean')
2638
+ self.true_market_mean: ActivePricePattern = ActivePricePattern(client, 'true_market_mean')
2655
2639
  self.true_market_mean_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(client, 'true_market_mean_ratio')
2656
- self.vaulted_price: MetricPattern1[Dollars] = MetricPattern1(client, 'vaulted_price')
2640
+ self.vaulted_price: ActivePricePattern = ActivePricePattern(client, 'vaulted_price')
2657
2641
  self.vaulted_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(client, 'vaulted_price_ratio')
2658
2642
 
2659
2643
  class MetricsTree_Cointime_ReserveRisk:
@@ -2715,6 +2699,20 @@ class MetricsTree_Constants:
2715
2699
  self.constant_minus_3: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_3')
2716
2700
  self.constant_minus_4: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_4')
2717
2701
 
2702
+ class MetricsTree_Distribution_AddressActivity:
2703
+ """Metrics tree node."""
2704
+
2705
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
2706
+ self.all: AllPattern = AllPattern(client, 'address_activity')
2707
+ self.p2a: AllPattern = AllPattern(client, 'p2a_address_activity')
2708
+ self.p2pk33: AllPattern = AllPattern(client, 'p2pk33_address_activity')
2709
+ self.p2pk65: AllPattern = AllPattern(client, 'p2pk65_address_activity')
2710
+ self.p2pkh: AllPattern = AllPattern(client, 'p2pkh_address_activity')
2711
+ self.p2sh: AllPattern = AllPattern(client, 'p2sh_address_activity')
2712
+ self.p2tr: AllPattern = AllPattern(client, 'p2tr_address_activity')
2713
+ self.p2wpkh: AllPattern = AllPattern(client, 'p2wpkh_address_activity')
2714
+ self.p2wsh: AllPattern = AllPattern(client, 'p2wsh_address_activity')
2715
+
2718
2716
  class MetricsTree_Distribution_AddressCohorts_AmountRange:
2719
2717
  """Metrics tree node."""
2720
2718
 
@@ -2739,19 +2737,19 @@ class MetricsTree_Distribution_AddressCohorts_GeAmount:
2739
2737
  """Metrics tree node."""
2740
2738
 
2741
2739
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2742
- self._100btc: _0satsPattern = _0satsPattern(client, 'addrs_above_100btc')
2743
- self._100k_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_100k_sats')
2744
- self._100sats: _0satsPattern = _0satsPattern(client, 'addrs_above_100sats')
2745
- self._10btc: _0satsPattern = _0satsPattern(client, 'addrs_above_10btc')
2746
- self._10k_btc: _0satsPattern = _0satsPattern(client, 'addrs_above_10k_btc')
2747
- self._10k_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_10k_sats')
2748
- self._10m_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_10m_sats')
2749
- self._10sats: _0satsPattern = _0satsPattern(client, 'addrs_above_10sats')
2750
- self._1btc: _0satsPattern = _0satsPattern(client, 'addrs_above_1btc')
2751
- self._1k_btc: _0satsPattern = _0satsPattern(client, 'addrs_above_1k_btc')
2752
- self._1k_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_1k_sats')
2753
- self._1m_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_1m_sats')
2754
- self._1sat: _0satsPattern = _0satsPattern(client, 'addrs_above_1sat')
2740
+ self._100btc: _0satsPattern = _0satsPattern(client, 'addrs_over_100btc')
2741
+ self._100k_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_100k_sats')
2742
+ self._100sats: _0satsPattern = _0satsPattern(client, 'addrs_over_100sats')
2743
+ self._10btc: _0satsPattern = _0satsPattern(client, 'addrs_over_10btc')
2744
+ self._10k_btc: _0satsPattern = _0satsPattern(client, 'addrs_over_10k_btc')
2745
+ self._10k_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_10k_sats')
2746
+ self._10m_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_10m_sats')
2747
+ self._10sats: _0satsPattern = _0satsPattern(client, 'addrs_over_10sats')
2748
+ self._1btc: _0satsPattern = _0satsPattern(client, 'addrs_over_1btc')
2749
+ self._1k_btc: _0satsPattern = _0satsPattern(client, 'addrs_over_1k_btc')
2750
+ self._1k_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_1k_sats')
2751
+ self._1m_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_1m_sats')
2752
+ self._1sat: _0satsPattern = _0satsPattern(client, 'addrs_over_1sat')
2755
2753
 
2756
2754
  class MetricsTree_Distribution_AddressCohorts_LtAmount:
2757
2755
  """Metrics tree node."""
@@ -2799,38 +2797,66 @@ class MetricsTree_Distribution_AnyAddressIndexes:
2799
2797
  self.p2wpkh: MetricPattern23[AnyAddressIndex] = MetricPattern23(client, 'anyaddressindex')
2800
2798
  self.p2wsh: MetricPattern24[AnyAddressIndex] = MetricPattern24(client, 'anyaddressindex')
2801
2799
 
2800
+ class MetricsTree_Distribution_GrowthRate:
2801
+ """Metrics tree node."""
2802
+
2803
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
2804
+ self.all: FullnessPattern[StoredF32] = FullnessPattern(client, 'growth_rate')
2805
+ self.p2a: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2a_growth_rate')
2806
+ self.p2pk33: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2pk33_growth_rate')
2807
+ self.p2pk65: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2pk65_growth_rate')
2808
+ self.p2pkh: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2pkh_growth_rate')
2809
+ self.p2sh: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2sh_growth_rate')
2810
+ self.p2tr: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2tr_growth_rate')
2811
+ self.p2wpkh: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2wpkh_growth_rate')
2812
+ self.p2wsh: FullnessPattern[StoredF32] = FullnessPattern(client, 'p2wsh_growth_rate')
2813
+
2814
+ class MetricsTree_Distribution_NewAddrCount:
2815
+ """Metrics tree node."""
2816
+
2817
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
2818
+ self.all: DollarsPattern[StoredU64] = DollarsPattern(client, 'new_addr_count')
2819
+ self.p2a: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2a_new_addr_count')
2820
+ self.p2pk33: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2pk33_new_addr_count')
2821
+ self.p2pk65: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2pk65_new_addr_count')
2822
+ self.p2pkh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2pkh_new_addr_count')
2823
+ self.p2sh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2sh_new_addr_count')
2824
+ self.p2tr: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2tr_new_addr_count')
2825
+ self.p2wpkh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2wpkh_new_addr_count')
2826
+ self.p2wsh: DollarsPattern[StoredU64] = DollarsPattern(client, 'p2wsh_new_addr_count')
2827
+
2802
2828
  class MetricsTree_Distribution_UtxoCohorts_AgeRange:
2803
2829
  """Metrics tree node."""
2804
2830
 
2805
2831
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2806
- self._10y_to_12y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_10y_up_to_12y_old')
2807
- self._12y_to_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_12y_up_to_15y_old')
2808
- self._1d_to_1w: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1d_up_to_1w_old')
2809
- self._1h_to_1d: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1h_up_to_1d_old')
2810
- self._1m_to_2m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1m_up_to_2m_old')
2811
- self._1w_to_1m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1w_up_to_1m_old')
2812
- self._1y_to_2y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1y_up_to_2y_old')
2813
- self._2m_to_3m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_2m_up_to_3m_old')
2814
- self._2y_to_3y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_2y_up_to_3y_old')
2815
- self._3m_to_4m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_3m_up_to_4m_old')
2816
- self._3y_to_4y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_3y_up_to_4y_old')
2817
- self._4m_to_5m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_4m_up_to_5m_old')
2818
- self._4y_to_5y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_4y_up_to_5y_old')
2819
- self._5m_to_6m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_5m_up_to_6m_old')
2820
- self._5y_to_6y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_5y_up_to_6y_old')
2821
- self._6m_to_1y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_6m_up_to_1y_old')
2822
- self._6y_to_7y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_6y_up_to_7y_old')
2823
- self._7y_to_8y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_7y_up_to_8y_old')
2824
- self._8y_to_10y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_8y_up_to_10y_old')
2825
- self.from_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_15y_old')
2826
- self.up_to_1h: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_up_to_1h_old')
2832
+ self._10y_to_12y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_10y_to_12y_old')
2833
+ self._12y_to_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_12y_to_15y_old')
2834
+ self._1d_to_1w: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1d_to_1w_old')
2835
+ self._1h_to_1d: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1h_to_1d_old')
2836
+ self._1m_to_2m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1m_to_2m_old')
2837
+ self._1w_to_1m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1w_to_1m_old')
2838
+ self._1y_to_2y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1y_to_2y_old')
2839
+ self._2m_to_3m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_2m_to_3m_old')
2840
+ self._2y_to_3y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_2y_to_3y_old')
2841
+ self._3m_to_4m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_3m_to_4m_old')
2842
+ self._3y_to_4y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_3y_to_4y_old')
2843
+ self._4m_to_5m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_4m_to_5m_old')
2844
+ self._4y_to_5y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_4y_to_5y_old')
2845
+ self._5m_to_6m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_5m_to_6m_old')
2846
+ self._5y_to_6y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_5y_to_6y_old')
2847
+ self._6m_to_1y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_6m_to_1y_old')
2848
+ self._6y_to_7y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_6y_to_7y_old')
2849
+ self._7y_to_8y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_7y_to_8y_old')
2850
+ self._8y_to_10y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_8y_to_10y_old')
2851
+ self.from_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_over_15y_old')
2852
+ self.up_to_1h: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_under_1h_old')
2827
2853
 
2828
2854
  class MetricsTree_Distribution_UtxoCohorts_All_CostBasis:
2829
2855
  """Metrics tree node."""
2830
2856
 
2831
2857
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2832
- self.max: MetricPattern1[Dollars] = MetricPattern1(client, 'max_cost_basis')
2833
- self.min: MetricPattern1[Dollars] = MetricPattern1(client, 'min_cost_basis')
2858
+ self.max: ActivePricePattern = ActivePricePattern(client, 'max_cost_basis')
2859
+ self.min: ActivePricePattern = ActivePricePattern(client, 'min_cost_basis')
2834
2860
  self.percentiles: PercentilesPattern = PercentilesPattern(client, 'cost_basis')
2835
2861
 
2836
2862
  class MetricsTree_Distribution_UtxoCohorts_All_Relative:
@@ -2890,19 +2916,19 @@ class MetricsTree_Distribution_UtxoCohorts_GeAmount:
2890
2916
  """Metrics tree node."""
2891
2917
 
2892
2918
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2893
- self._100btc: _100btcPattern = _100btcPattern(client, 'utxos_above_100btc')
2894
- self._100k_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_100k_sats')
2895
- self._100sats: _100btcPattern = _100btcPattern(client, 'utxos_above_100sats')
2896
- self._10btc: _100btcPattern = _100btcPattern(client, 'utxos_above_10btc')
2897
- self._10k_btc: _100btcPattern = _100btcPattern(client, 'utxos_above_10k_btc')
2898
- self._10k_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_10k_sats')
2899
- self._10m_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_10m_sats')
2900
- self._10sats: _100btcPattern = _100btcPattern(client, 'utxos_above_10sats')
2901
- self._1btc: _100btcPattern = _100btcPattern(client, 'utxos_above_1btc')
2902
- self._1k_btc: _100btcPattern = _100btcPattern(client, 'utxos_above_1k_btc')
2903
- self._1k_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_1k_sats')
2904
- self._1m_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_1m_sats')
2905
- self._1sat: _100btcPattern = _100btcPattern(client, 'utxos_above_1sat')
2919
+ self._100btc: _100btcPattern = _100btcPattern(client, 'utxos_over_100btc')
2920
+ self._100k_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_100k_sats')
2921
+ self._100sats: _100btcPattern = _100btcPattern(client, 'utxos_over_100sats')
2922
+ self._10btc: _100btcPattern = _100btcPattern(client, 'utxos_over_10btc')
2923
+ self._10k_btc: _100btcPattern = _100btcPattern(client, 'utxos_over_10k_btc')
2924
+ self._10k_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_10k_sats')
2925
+ self._10m_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_10m_sats')
2926
+ self._10sats: _100btcPattern = _100btcPattern(client, 'utxos_over_10sats')
2927
+ self._1btc: _100btcPattern = _100btcPattern(client, 'utxos_over_1btc')
2928
+ self._1k_btc: _100btcPattern = _100btcPattern(client, 'utxos_over_1k_btc')
2929
+ self._1k_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_1k_sats')
2930
+ self._1m_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_1m_sats')
2931
+ self._1sat: _100btcPattern = _100btcPattern(client, 'utxos_over_1sat')
2906
2932
 
2907
2933
  class MetricsTree_Distribution_UtxoCohorts_LtAmount:
2908
2934
  """Metrics tree node."""
@@ -2926,47 +2952,47 @@ class MetricsTree_Distribution_UtxoCohorts_MaxAge:
2926
2952
  """Metrics tree node."""
2927
2953
 
2928
2954
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2929
- self._10y: _10yPattern = _10yPattern(client, 'utxos_up_to_10y_old')
2930
- self._12y: _10yPattern = _10yPattern(client, 'utxos_up_to_12y_old')
2931
- self._15y: _10yPattern = _10yPattern(client, 'utxos_up_to_15y_old')
2932
- self._1m: _10yPattern = _10yPattern(client, 'utxos_up_to_1m_old')
2933
- self._1w: _10yPattern = _10yPattern(client, 'utxos_up_to_1w_old')
2934
- self._1y: _10yPattern = _10yPattern(client, 'utxos_up_to_1y_old')
2935
- self._2m: _10yPattern = _10yPattern(client, 'utxos_up_to_2m_old')
2936
- self._2y: _10yPattern = _10yPattern(client, 'utxos_up_to_2y_old')
2937
- self._3m: _10yPattern = _10yPattern(client, 'utxos_up_to_3m_old')
2938
- self._3y: _10yPattern = _10yPattern(client, 'utxos_up_to_3y_old')
2939
- self._4m: _10yPattern = _10yPattern(client, 'utxos_up_to_4m_old')
2940
- self._4y: _10yPattern = _10yPattern(client, 'utxos_up_to_4y_old')
2941
- self._5m: _10yPattern = _10yPattern(client, 'utxos_up_to_5m_old')
2942
- self._5y: _10yPattern = _10yPattern(client, 'utxos_up_to_5y_old')
2943
- self._6m: _10yPattern = _10yPattern(client, 'utxos_up_to_6m_old')
2944
- self._6y: _10yPattern = _10yPattern(client, 'utxos_up_to_6y_old')
2945
- self._7y: _10yPattern = _10yPattern(client, 'utxos_up_to_7y_old')
2946
- self._8y: _10yPattern = _10yPattern(client, 'utxos_up_to_8y_old')
2955
+ self._10y: _10yPattern = _10yPattern(client, 'utxos_under_10y_old')
2956
+ self._12y: _10yPattern = _10yPattern(client, 'utxos_under_12y_old')
2957
+ self._15y: _10yPattern = _10yPattern(client, 'utxos_under_15y_old')
2958
+ self._1m: _10yPattern = _10yPattern(client, 'utxos_under_1m_old')
2959
+ self._1w: _10yPattern = _10yPattern(client, 'utxos_under_1w_old')
2960
+ self._1y: _10yPattern = _10yPattern(client, 'utxos_under_1y_old')
2961
+ self._2m: _10yPattern = _10yPattern(client, 'utxos_under_2m_old')
2962
+ self._2y: _10yPattern = _10yPattern(client, 'utxos_under_2y_old')
2963
+ self._3m: _10yPattern = _10yPattern(client, 'utxos_under_3m_old')
2964
+ self._3y: _10yPattern = _10yPattern(client, 'utxos_under_3y_old')
2965
+ self._4m: _10yPattern = _10yPattern(client, 'utxos_under_4m_old')
2966
+ self._4y: _10yPattern = _10yPattern(client, 'utxos_under_4y_old')
2967
+ self._5m: _10yPattern = _10yPattern(client, 'utxos_under_5m_old')
2968
+ self._5y: _10yPattern = _10yPattern(client, 'utxos_under_5y_old')
2969
+ self._6m: _10yPattern = _10yPattern(client, 'utxos_under_6m_old')
2970
+ self._6y: _10yPattern = _10yPattern(client, 'utxos_under_6y_old')
2971
+ self._7y: _10yPattern = _10yPattern(client, 'utxos_under_7y_old')
2972
+ self._8y: _10yPattern = _10yPattern(client, 'utxos_under_8y_old')
2947
2973
 
2948
2974
  class MetricsTree_Distribution_UtxoCohorts_MinAge:
2949
2975
  """Metrics tree node."""
2950
2976
 
2951
2977
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2952
- self._10y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_10y_old')
2953
- self._12y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_12y_old')
2954
- self._1d: _100btcPattern = _100btcPattern(client, 'utxos_at_least_1d_old')
2955
- self._1m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_1m_old')
2956
- self._1w: _100btcPattern = _100btcPattern(client, 'utxos_at_least_1w_old')
2957
- self._1y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_1y_old')
2958
- self._2m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_2m_old')
2959
- self._2y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_2y_old')
2960
- self._3m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_3m_old')
2961
- self._3y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_3y_old')
2962
- self._4m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_4m_old')
2963
- self._4y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_4y_old')
2964
- self._5m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_5m_old')
2965
- self._5y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_5y_old')
2966
- self._6m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_6m_old')
2967
- self._6y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_6y_old')
2968
- self._7y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_7y_old')
2969
- self._8y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_8y_old')
2978
+ self._10y: _100btcPattern = _100btcPattern(client, 'utxos_over_10y_old')
2979
+ self._12y: _100btcPattern = _100btcPattern(client, 'utxos_over_12y_old')
2980
+ self._1d: _100btcPattern = _100btcPattern(client, 'utxos_over_1d_old')
2981
+ self._1m: _100btcPattern = _100btcPattern(client, 'utxos_over_1m_old')
2982
+ self._1w: _100btcPattern = _100btcPattern(client, 'utxos_over_1w_old')
2983
+ self._1y: _100btcPattern = _100btcPattern(client, 'utxos_over_1y_old')
2984
+ self._2m: _100btcPattern = _100btcPattern(client, 'utxos_over_2m_old')
2985
+ self._2y: _100btcPattern = _100btcPattern(client, 'utxos_over_2y_old')
2986
+ self._3m: _100btcPattern = _100btcPattern(client, 'utxos_over_3m_old')
2987
+ self._3y: _100btcPattern = _100btcPattern(client, 'utxos_over_3y_old')
2988
+ self._4m: _100btcPattern = _100btcPattern(client, 'utxos_over_4m_old')
2989
+ self._4y: _100btcPattern = _100btcPattern(client, 'utxos_over_4y_old')
2990
+ self._5m: _100btcPattern = _100btcPattern(client, 'utxos_over_5m_old')
2991
+ self._5y: _100btcPattern = _100btcPattern(client, 'utxos_over_5y_old')
2992
+ self._6m: _100btcPattern = _100btcPattern(client, 'utxos_over_6m_old')
2993
+ self._6y: _100btcPattern = _100btcPattern(client, 'utxos_over_6y_old')
2994
+ self._7y: _100btcPattern = _100btcPattern(client, 'utxos_over_7y_old')
2995
+ self._8y: _100btcPattern = _100btcPattern(client, 'utxos_over_8y_old')
2970
2996
 
2971
2997
  class MetricsTree_Distribution_UtxoCohorts_Term_Long:
2972
2998
  """Metrics tree node."""
@@ -3059,13 +3085,17 @@ class MetricsTree_Distribution:
3059
3085
 
3060
3086
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3061
3087
  self.addr_count: AddrCountPattern = AddrCountPattern(client, 'addr_count')
3088
+ self.address_activity: MetricsTree_Distribution_AddressActivity = MetricsTree_Distribution_AddressActivity(client)
3062
3089
  self.address_cohorts: MetricsTree_Distribution_AddressCohorts = MetricsTree_Distribution_AddressCohorts(client)
3063
3090
  self.addresses_data: MetricsTree_Distribution_AddressesData = MetricsTree_Distribution_AddressesData(client)
3064
3091
  self.any_address_indexes: MetricsTree_Distribution_AnyAddressIndexes = MetricsTree_Distribution_AnyAddressIndexes(client)
3065
3092
  self.chain_state: MetricPattern11[SupplyState] = MetricPattern11(client, 'chain')
3066
3093
  self.empty_addr_count: AddrCountPattern = AddrCountPattern(client, 'empty_addr_count')
3067
3094
  self.emptyaddressindex: MetricPattern32[EmptyAddressIndex] = MetricPattern32(client, 'emptyaddressindex')
3095
+ self.growth_rate: MetricsTree_Distribution_GrowthRate = MetricsTree_Distribution_GrowthRate(client)
3068
3096
  self.loadedaddressindex: MetricPattern31[LoadedAddressIndex] = MetricPattern31(client, 'loadedaddressindex')
3097
+ self.new_addr_count: MetricsTree_Distribution_NewAddrCount = MetricsTree_Distribution_NewAddrCount(client)
3098
+ self.total_addr_count: AddrCountPattern = AddrCountPattern(client, 'total_addr_count')
3069
3099
  self.utxo_cohorts: MetricsTree_Distribution_UtxoCohorts = MetricsTree_Distribution_UtxoCohorts(client)
3070
3100
 
3071
3101
  class MetricsTree_Indexes_Address_Empty:
@@ -3316,10 +3346,78 @@ class MetricsTree_Market_Ath:
3316
3346
  self.days_since_price_ath: MetricPattern4[StoredU16] = MetricPattern4(client, 'days_since_price_ath')
3317
3347
  self.max_days_between_price_aths: MetricPattern4[StoredU16] = MetricPattern4(client, 'max_days_between_price_aths')
3318
3348
  self.max_years_between_price_aths: MetricPattern4[StoredF32] = MetricPattern4(client, 'max_years_between_price_aths')
3319
- self.price_ath: MetricPattern1[Dollars] = MetricPattern1(client, 'price_ath')
3349
+ self.price_ath: ActivePricePattern = ActivePricePattern(client, 'price_ath')
3320
3350
  self.price_drawdown: MetricPattern3[StoredF32] = MetricPattern3(client, 'price_drawdown')
3321
3351
  self.years_since_price_ath: MetricPattern4[StoredF32] = MetricPattern4(client, 'years_since_price_ath')
3322
3352
 
3353
+ class MetricsTree_Market_Dca_ClassAveragePrice:
3354
+ """Metrics tree node."""
3355
+
3356
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3357
+ self._2015: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2015_average_price')
3358
+ self._2016: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2016_average_price')
3359
+ self._2017: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2017_average_price')
3360
+ self._2018: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2018_average_price')
3361
+ self._2019: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2019_average_price')
3362
+ self._2020: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2020_average_price')
3363
+ self._2021: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2021_average_price')
3364
+ self._2022: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2022_average_price')
3365
+ self._2023: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2023_average_price')
3366
+ self._2024: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2024_average_price')
3367
+ self._2025: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2025_average_price')
3368
+ self._2026: _0sdUsdPattern = _0sdUsdPattern(client, 'dca_class_2026_average_price')
3369
+
3370
+ class MetricsTree_Market_Dca_ClassDaysInLoss:
3371
+ """Metrics tree node."""
3372
+
3373
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3374
+ self._2015: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2015_days_in_loss')
3375
+ self._2016: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2016_days_in_loss')
3376
+ self._2017: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2017_days_in_loss')
3377
+ self._2018: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2018_days_in_loss')
3378
+ self._2019: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2019_days_in_loss')
3379
+ self._2020: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2020_days_in_loss')
3380
+ self._2021: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2021_days_in_loss')
3381
+ self._2022: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2022_days_in_loss')
3382
+ self._2023: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2023_days_in_loss')
3383
+ self._2024: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2024_days_in_loss')
3384
+ self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_loss')
3385
+ self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_loss')
3386
+
3387
+ class MetricsTree_Market_Dca_ClassMaxDrawdown:
3388
+ """Metrics tree node."""
3389
+
3390
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3391
+ self._2015: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2015_max_drawdown')
3392
+ self._2016: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2016_max_drawdown')
3393
+ self._2017: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2017_max_drawdown')
3394
+ self._2018: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2018_max_drawdown')
3395
+ self._2019: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2019_max_drawdown')
3396
+ self._2020: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2020_max_drawdown')
3397
+ self._2021: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2021_max_drawdown')
3398
+ self._2022: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2022_max_drawdown')
3399
+ self._2023: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2023_max_drawdown')
3400
+ self._2024: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2024_max_drawdown')
3401
+ self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_max_drawdown')
3402
+ self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_max_drawdown')
3403
+
3404
+ class MetricsTree_Market_Dca_ClassMaxReturn:
3405
+ """Metrics tree node."""
3406
+
3407
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3408
+ self._2015: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2015_max_return')
3409
+ self._2016: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2016_max_return')
3410
+ self._2017: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2017_max_return')
3411
+ self._2018: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2018_max_return')
3412
+ self._2019: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2019_max_return')
3413
+ self._2020: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2020_max_return')
3414
+ self._2021: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2021_max_return')
3415
+ self._2022: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2022_max_return')
3416
+ self._2023: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2023_max_return')
3417
+ self._2024: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2024_max_return')
3418
+ self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_max_return')
3419
+ self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_max_return')
3420
+
3323
3421
  class MetricsTree_Market_Dca_ClassReturns:
3324
3422
  """Metrics tree node."""
3325
3423
 
@@ -3354,17 +3452,47 @@ class MetricsTree_Market_Dca_ClassStack:
3354
3452
  self._2025: _2015Pattern = _2015Pattern(client, 'dca_class_2025_stack')
3355
3453
  self._2026: _2015Pattern = _2015Pattern(client, 'dca_class_2026_stack')
3356
3454
 
3455
+ class MetricsTree_Market_Dca_PeriodAveragePrice:
3456
+ """Metrics tree node."""
3457
+
3458
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3459
+ self._10y: _0sdUsdPattern = _0sdUsdPattern(client, '10y_dca_average_price')
3460
+ self._1m: _0sdUsdPattern = _0sdUsdPattern(client, '1m_dca_average_price')
3461
+ self._1w: _0sdUsdPattern = _0sdUsdPattern(client, '1w_dca_average_price')
3462
+ self._1y: _0sdUsdPattern = _0sdUsdPattern(client, '1y_dca_average_price')
3463
+ self._2y: _0sdUsdPattern = _0sdUsdPattern(client, '2y_dca_average_price')
3464
+ self._3m: _0sdUsdPattern = _0sdUsdPattern(client, '3m_dca_average_price')
3465
+ self._3y: _0sdUsdPattern = _0sdUsdPattern(client, '3y_dca_average_price')
3466
+ self._4y: _0sdUsdPattern = _0sdUsdPattern(client, '4y_dca_average_price')
3467
+ self._5y: _0sdUsdPattern = _0sdUsdPattern(client, '5y_dca_average_price')
3468
+ self._6m: _0sdUsdPattern = _0sdUsdPattern(client, '6m_dca_average_price')
3469
+ self._6y: _0sdUsdPattern = _0sdUsdPattern(client, '6y_dca_average_price')
3470
+ self._8y: _0sdUsdPattern = _0sdUsdPattern(client, '8y_dca_average_price')
3471
+
3357
3472
  class MetricsTree_Market_Dca:
3358
3473
  """Metrics tree node."""
3359
3474
 
3360
3475
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3361
- self.class_average_price: ClassAveragePricePattern[Dollars] = ClassAveragePricePattern(client, 'dca_class')
3476
+ self.class_average_price: MetricsTree_Market_Dca_ClassAveragePrice = MetricsTree_Market_Dca_ClassAveragePrice(client)
3477
+ self.class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss = MetricsTree_Market_Dca_ClassDaysInLoss(client)
3478
+ self.class_days_in_profit: ClassDaysInLossPattern[StoredU32] = ClassDaysInLossPattern(client, 'dca_class')
3479
+ self.class_max_drawdown: MetricsTree_Market_Dca_ClassMaxDrawdown = MetricsTree_Market_Dca_ClassMaxDrawdown(client)
3480
+ self.class_max_return: MetricsTree_Market_Dca_ClassMaxReturn = MetricsTree_Market_Dca_ClassMaxReturn(client)
3362
3481
  self.class_returns: MetricsTree_Market_Dca_ClassReturns = MetricsTree_Market_Dca_ClassReturns(client)
3363
3482
  self.class_stack: MetricsTree_Market_Dca_ClassStack = MetricsTree_Market_Dca_ClassStack(client)
3364
- self.period_average_price: PeriodAveragePricePattern[Dollars] = PeriodAveragePricePattern(client, 'dca_average_price')
3483
+ self.period_average_price: MetricsTree_Market_Dca_PeriodAveragePrice = MetricsTree_Market_Dca_PeriodAveragePrice(client)
3365
3484
  self.period_cagr: PeriodCagrPattern = PeriodCagrPattern(client, 'dca_cagr')
3485
+ self.period_days_in_loss: PeriodDaysInLossPattern[StoredU32] = PeriodDaysInLossPattern(client, 'dca_days_in_loss')
3486
+ self.period_days_in_profit: PeriodDaysInLossPattern[StoredU32] = PeriodDaysInLossPattern(client, 'dca_days_in_profit')
3487
+ self.period_lump_sum_days_in_loss: PeriodDaysInLossPattern[StoredU32] = PeriodDaysInLossPattern(client, 'lump_sum_days_in_loss')
3488
+ self.period_lump_sum_days_in_profit: PeriodDaysInLossPattern[StoredU32] = PeriodDaysInLossPattern(client, 'lump_sum_days_in_profit')
3489
+ self.period_lump_sum_max_drawdown: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'lump_sum_max_drawdown')
3490
+ self.period_lump_sum_max_return: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'lump_sum_max_return')
3491
+ self.period_lump_sum_returns: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'lump_sum_returns')
3366
3492
  self.period_lump_sum_stack: PeriodLumpSumStackPattern = PeriodLumpSumStackPattern(client, 'lump_sum_stack')
3367
- self.period_returns: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'dca_returns')
3493
+ self.period_max_drawdown: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'dca_max_drawdown')
3494
+ self.period_max_return: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'dca_max_return')
3495
+ self.period_returns: PeriodDaysInLossPattern[StoredF32] = PeriodDaysInLossPattern(client, 'dca_returns')
3368
3496
  self.period_stack: PeriodLumpSumStackPattern = PeriodLumpSumStackPattern(client, 'dca_stack')
3369
3497
 
3370
3498
  class MetricsTree_Market_Indicators:
@@ -3391,6 +3519,24 @@ class MetricsTree_Market_Indicators:
3391
3519
  self.stoch_rsi_d: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_d')
3392
3520
  self.stoch_rsi_k: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_k')
3393
3521
 
3522
+ class MetricsTree_Market_Lookback:
3523
+ """Metrics tree node."""
3524
+
3525
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3526
+ self._10y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_10y_ago')
3527
+ self._1d: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1d_ago')
3528
+ self._1m: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1m_ago')
3529
+ self._1w: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1w_ago')
3530
+ self._1y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1y_ago')
3531
+ self._2y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_2y_ago')
3532
+ self._3m: _0sdUsdPattern = _0sdUsdPattern(client, 'price_3m_ago')
3533
+ self._3y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_3y_ago')
3534
+ self._4y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_4y_ago')
3535
+ self._5y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_5y_ago')
3536
+ self._6m: _0sdUsdPattern = _0sdUsdPattern(client, 'price_6m_ago')
3537
+ self._6y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_6y_ago')
3538
+ self._8y: _0sdUsdPattern = _0sdUsdPattern(client, 'price_8y_ago')
3539
+
3394
3540
  class MetricsTree_Market_MovingAverage:
3395
3541
  """Metrics tree node."""
3396
3542
 
@@ -3409,8 +3555,8 @@ class MetricsTree_Market_MovingAverage:
3409
3555
  self.price_1y_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_1y_sma')
3410
3556
  self.price_200d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200d_ema')
3411
3557
  self.price_200d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200d_sma')
3412
- self.price_200d_sma_x0_8: MetricPattern4[Dollars] = MetricPattern4(client, 'price_200d_sma_x0_8')
3413
- self.price_200d_sma_x2_4: MetricPattern4[Dollars] = MetricPattern4(client, 'price_200d_sma_x2_4')
3558
+ self.price_200d_sma_x0_8: _0sdUsdPattern = _0sdUsdPattern(client, 'price_200d_sma_x0_8')
3559
+ self.price_200d_sma_x2_4: _0sdUsdPattern = _0sdUsdPattern(client, 'price_200d_sma_x2_4')
3414
3560
  self.price_200w_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200w_ema')
3415
3561
  self.price_200w_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200w_sma')
3416
3562
  self.price_21d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_21d_ema')
@@ -3421,7 +3567,7 @@ class MetricsTree_Market_MovingAverage:
3421
3567
  self.price_34d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_34d_ema')
3422
3568
  self.price_34d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_34d_sma')
3423
3569
  self.price_350d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_350d_sma')
3424
- self.price_350d_sma_x2: MetricPattern4[Dollars] = MetricPattern4(client, 'price_350d_sma_x2')
3570
+ self.price_350d_sma_x2: _0sdUsdPattern = _0sdUsdPattern(client, 'price_350d_sma_x2')
3425
3571
  self.price_4y_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_4y_ema')
3426
3572
  self.price_4y_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_4y_sma')
3427
3573
  self.price_55d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_55d_ema')
@@ -3435,15 +3581,15 @@ class MetricsTree_Market_Range:
3435
3581
  """Metrics tree node."""
3436
3582
 
3437
3583
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3438
- self.price_1m_max: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1m_max')
3439
- self.price_1m_min: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1m_min')
3440
- self.price_1w_max: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1w_max')
3441
- self.price_1w_min: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1w_min')
3442
- self.price_1y_max: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1y_max')
3443
- self.price_1y_min: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1y_min')
3584
+ self.price_1m_max: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1m_max')
3585
+ self.price_1m_min: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1m_min')
3586
+ self.price_1w_max: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1w_max')
3587
+ self.price_1w_min: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1w_min')
3588
+ self.price_1y_max: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1y_max')
3589
+ self.price_1y_min: _0sdUsdPattern = _0sdUsdPattern(client, 'price_1y_min')
3444
3590
  self.price_2w_choppiness_index: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_2w_choppiness_index')
3445
- self.price_2w_max: MetricPattern4[Dollars] = MetricPattern4(client, 'price_2w_max')
3446
- self.price_2w_min: MetricPattern4[Dollars] = MetricPattern4(client, 'price_2w_min')
3591
+ self.price_2w_max: _0sdUsdPattern = _0sdUsdPattern(client, 'price_2w_max')
3592
+ self.price_2w_min: _0sdUsdPattern = _0sdUsdPattern(client, 'price_2w_min')
3447
3593
  self.price_true_range: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range')
3448
3594
  self.price_true_range_2w_sum: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range_2w_sum')
3449
3595
 
@@ -3500,7 +3646,7 @@ class MetricsTree_Market:
3500
3646
  self.ath: MetricsTree_Market_Ath = MetricsTree_Market_Ath(client)
3501
3647
  self.dca: MetricsTree_Market_Dca = MetricsTree_Market_Dca(client)
3502
3648
  self.indicators: MetricsTree_Market_Indicators = MetricsTree_Market_Indicators(client)
3503
- self.lookback: LookbackPattern[Dollars] = LookbackPattern(client, 'price')
3649
+ self.lookback: MetricsTree_Market_Lookback = MetricsTree_Market_Lookback(client)
3504
3650
  self.moving_average: MetricsTree_Market_MovingAverage = MetricsTree_Market_MovingAverage(client)
3505
3651
  self.range: MetricsTree_Market_Range = MetricsTree_Market_Range(client)
3506
3652
  self.returns: MetricsTree_Market_Returns = MetricsTree_Market_Returns(client)
@@ -3724,56 +3870,20 @@ class MetricsTree_Price_Cents:
3724
3870
  self.ohlc: MetricPattern5[OHLCCents] = MetricPattern5(client, 'ohlc_cents')
3725
3871
  self.split: MetricsTree_Price_Cents_Split = MetricsTree_Price_Cents_Split(client)
3726
3872
 
3727
- class MetricsTree_Price_Oracle:
3873
+ class MetricsTree_Price_Usd:
3728
3874
  """Metrics tree node."""
3729
3875
 
3730
3876
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3731
- self.close_ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(client, 'close_ohlc_cents')
3732
- self.close_ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(client, 'close_ohlc_dollars')
3733
- self.height_to_first_pairoutputindex: MetricPattern11[PairOutputIndex] = MetricPattern11(client, 'height_to_first_pairoutputindex')
3734
- self.mid_ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(client, 'mid_ohlc_cents')
3735
- self.mid_ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(client, 'mid_ohlc_dollars')
3736
- self.ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(client, 'oracle_ohlc_cents')
3737
- self.ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(client, 'oracle_ohlc')
3738
- self.output0_value: MetricPattern33[Sats] = MetricPattern33(client, 'pair_output0_value')
3739
- self.output1_value: MetricPattern33[Sats] = MetricPattern33(client, 'pair_output1_value')
3740
- self.pairoutputindex_to_txindex: MetricPattern33[TxIndex] = MetricPattern33(client, 'pairoutputindex_to_txindex')
3741
- self.phase_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_daily')
3742
- self.phase_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_daily_dollars')
3743
- self.phase_histogram: MetricPattern11[OracleBins] = MetricPattern11(client, 'phase_histogram')
3744
- self.phase_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_price_cents')
3745
- self.phase_v2_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_v2_daily')
3746
- self.phase_v2_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_v2_daily_dollars')
3747
- self.phase_v2_histogram: MetricPattern11[OracleBinsV2] = MetricPattern11(client, 'phase_v2_histogram')
3748
- self.phase_v2_peak_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_v2_peak_daily')
3749
- self.phase_v2_peak_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_v2_peak_daily_dollars')
3750
- self.phase_v2_peak_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_v2_peak_price_cents')
3751
- self.phase_v2_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_v2_price_cents')
3752
- self.phase_v3_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_v3_daily')
3753
- self.phase_v3_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_v3_daily_dollars')
3754
- self.phase_v3_histogram: MetricPattern11[OracleBinsV2] = MetricPattern11(client, 'phase_v3_histogram')
3755
- self.phase_v3_peak_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_v3_peak_daily')
3756
- self.phase_v3_peak_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_v3_peak_daily_dollars')
3757
- self.phase_v3_peak_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_v3_peak_price_cents')
3758
- self.phase_v3_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_v3_price_cents')
3759
- self.price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'oracle_price_cents')
3760
- self.tx_count: MetricPattern6[StoredU32] = MetricPattern6(client, 'oracle_tx_count')
3761
-
3762
- class MetricsTree_Price_Sats:
3763
- """Metrics tree node."""
3764
-
3765
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3766
- self.ohlc: MetricPattern1[OHLCSats] = MetricPattern1(client, 'price_ohlc_sats')
3767
- self.split: SplitPattern2[Sats] = SplitPattern2(client, 'price_sats')
3877
+ self.ohlc: MetricPattern1[OHLCDollars] = MetricPattern1(client, 'price_ohlc')
3878
+ self.split: SplitPattern2[Dollars] = SplitPattern2(client, 'price')
3768
3879
 
3769
3880
  class MetricsTree_Price:
3770
3881
  """Metrics tree node."""
3771
3882
 
3772
3883
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3773
3884
  self.cents: MetricsTree_Price_Cents = MetricsTree_Price_Cents(client)
3774
- self.oracle: MetricsTree_Price_Oracle = MetricsTree_Price_Oracle(client)
3775
- self.sats: MetricsTree_Price_Sats = MetricsTree_Price_Sats(client)
3776
- self.usd: SatsPattern[OHLCDollars] = SatsPattern(client, 'price')
3885
+ self.sats: SatsPattern[OHLCSats] = SatsPattern(client, 'price')
3886
+ self.usd: MetricsTree_Price_Usd = MetricsTree_Price_Usd(client)
3777
3887
 
3778
3888
  class MetricsTree_Scripts_Count:
3779
3889
  """Metrics tree node."""
@@ -3855,28 +3965,12 @@ class MetricsTree_Transactions_Count:
3855
3965
  self.is_coinbase: MetricPattern27[StoredBool] = MetricPattern27(client, 'is_coinbase')
3856
3966
  self.tx_count: DollarsPattern[StoredU64] = DollarsPattern(client, 'tx_count')
3857
3967
 
3858
- class MetricsTree_Transactions_Fees_Fee_Dollars:
3859
- """Metrics tree node."""
3860
-
3861
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3862
- self.average: MetricPattern1[Dollars] = MetricPattern1(client, 'fee_usd_average')
3863
- self.cumulative: MetricPattern2[Dollars] = MetricPattern2(client, 'fee_usd_cumulative')
3864
- self.height_cumulative: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_cumulative')
3865
- self.max: MetricPattern1[Dollars] = MetricPattern1(client, 'fee_usd_max')
3866
- self.median: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_median')
3867
- self.min: MetricPattern1[Dollars] = MetricPattern1(client, 'fee_usd_min')
3868
- self.pct10: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_pct10')
3869
- self.pct25: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_pct25')
3870
- self.pct75: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_pct75')
3871
- self.pct90: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_pct90')
3872
- self.sum: MetricPattern1[Dollars] = MetricPattern1(client, 'fee_usd_sum')
3873
-
3874
3968
  class MetricsTree_Transactions_Fees_Fee:
3875
3969
  """Metrics tree node."""
3876
3970
 
3877
3971
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3878
3972
  self.bitcoin: CountPattern2[Bitcoin] = CountPattern2(client, 'fee_btc')
3879
- self.dollars: MetricsTree_Transactions_Fees_Fee_Dollars = MetricsTree_Transactions_Fees_Fee_Dollars(client)
3973
+ self.dollars: CountPattern2[Dollars] = CountPattern2(client, 'fee_usd')
3880
3974
  self.sats: CountPattern2[Sats] = CountPattern2(client, 'fee')
3881
3975
  self.txindex: MetricPattern27[Sats] = MetricPattern27(client, 'fee')
3882
3976
 
@@ -3958,7 +4052,7 @@ class MetricsTree:
3958
4052
  class BrkClient(BrkClientBase):
3959
4053
  """Main BRK client with metrics tree and API methods."""
3960
4054
 
3961
- VERSION = "v0.1.0-alpha.6"
4055
+ VERSION = "v0.1.0"
3962
4056
 
3963
4057
  INDEXES = [
3964
4058
  "dateindex",
@@ -4168,27 +4262,27 @@ class BrkClient(BrkClientBase):
4168
4262
  EPOCH_NAMES = {
4169
4263
  "_0": {
4170
4264
  "id": "epoch_0",
4171
- "short": "Epoch 0",
4265
+ "short": "0",
4172
4266
  "long": "Epoch 0"
4173
4267
  },
4174
4268
  "_1": {
4175
4269
  "id": "epoch_1",
4176
- "short": "Epoch 1",
4270
+ "short": "1",
4177
4271
  "long": "Epoch 1"
4178
4272
  },
4179
4273
  "_2": {
4180
4274
  "id": "epoch_2",
4181
- "short": "Epoch 2",
4275
+ "short": "2",
4182
4276
  "long": "Epoch 2"
4183
4277
  },
4184
4278
  "_3": {
4185
4279
  "id": "epoch_3",
4186
- "short": "Epoch 3",
4280
+ "short": "3",
4187
4281
  "long": "Epoch 3"
4188
4282
  },
4189
4283
  "_4": {
4190
4284
  "id": "epoch_4",
4191
- "short": "Epoch 4",
4285
+ "short": "4",
4192
4286
  "long": "Epoch 4"
4193
4287
  }
4194
4288
  }
@@ -4346,107 +4440,107 @@ class BrkClient(BrkClientBase):
4346
4440
 
4347
4441
  AGE_RANGE_NAMES = {
4348
4442
  "up_to_1h": {
4349
- "id": "up_to_1h_old",
4443
+ "id": "under_1h_old",
4350
4444
  "short": "<1h",
4351
- "long": "Up to 1 Hour Old"
4445
+ "long": "Under 1 Hour Old"
4352
4446
  },
4353
4447
  "_1h_to_1d": {
4354
- "id": "at_least_1h_up_to_1d_old",
4448
+ "id": "1h_to_1d_old",
4355
4449
  "short": "1h-1d",
4356
4450
  "long": "1 Hour to 1 Day Old"
4357
4451
  },
4358
4452
  "_1d_to_1w": {
4359
- "id": "at_least_1d_up_to_1w_old",
4453
+ "id": "1d_to_1w_old",
4360
4454
  "short": "1d-1w",
4361
4455
  "long": "1 Day to 1 Week Old"
4362
4456
  },
4363
4457
  "_1w_to_1m": {
4364
- "id": "at_least_1w_up_to_1m_old",
4458
+ "id": "1w_to_1m_old",
4365
4459
  "short": "1w-1m",
4366
4460
  "long": "1 Week to 1 Month Old"
4367
4461
  },
4368
4462
  "_1m_to_2m": {
4369
- "id": "at_least_1m_up_to_2m_old",
4463
+ "id": "1m_to_2m_old",
4370
4464
  "short": "1m-2m",
4371
4465
  "long": "1 to 2 Months Old"
4372
4466
  },
4373
4467
  "_2m_to_3m": {
4374
- "id": "at_least_2m_up_to_3m_old",
4468
+ "id": "2m_to_3m_old",
4375
4469
  "short": "2m-3m",
4376
4470
  "long": "2 to 3 Months Old"
4377
4471
  },
4378
4472
  "_3m_to_4m": {
4379
- "id": "at_least_3m_up_to_4m_old",
4473
+ "id": "3m_to_4m_old",
4380
4474
  "short": "3m-4m",
4381
4475
  "long": "3 to 4 Months Old"
4382
4476
  },
4383
4477
  "_4m_to_5m": {
4384
- "id": "at_least_4m_up_to_5m_old",
4478
+ "id": "4m_to_5m_old",
4385
4479
  "short": "4m-5m",
4386
4480
  "long": "4 to 5 Months Old"
4387
4481
  },
4388
4482
  "_5m_to_6m": {
4389
- "id": "at_least_5m_up_to_6m_old",
4483
+ "id": "5m_to_6m_old",
4390
4484
  "short": "5m-6m",
4391
4485
  "long": "5 to 6 Months Old"
4392
4486
  },
4393
4487
  "_6m_to_1y": {
4394
- "id": "at_least_6m_up_to_1y_old",
4488
+ "id": "6m_to_1y_old",
4395
4489
  "short": "6m-1y",
4396
4490
  "long": "6 Months to 1 Year Old"
4397
4491
  },
4398
4492
  "_1y_to_2y": {
4399
- "id": "at_least_1y_up_to_2y_old",
4493
+ "id": "1y_to_2y_old",
4400
4494
  "short": "1y-2y",
4401
4495
  "long": "1 to 2 Years Old"
4402
4496
  },
4403
4497
  "_2y_to_3y": {
4404
- "id": "at_least_2y_up_to_3y_old",
4498
+ "id": "2y_to_3y_old",
4405
4499
  "short": "2y-3y",
4406
4500
  "long": "2 to 3 Years Old"
4407
4501
  },
4408
4502
  "_3y_to_4y": {
4409
- "id": "at_least_3y_up_to_4y_old",
4503
+ "id": "3y_to_4y_old",
4410
4504
  "short": "3y-4y",
4411
4505
  "long": "3 to 4 Years Old"
4412
4506
  },
4413
4507
  "_4y_to_5y": {
4414
- "id": "at_least_4y_up_to_5y_old",
4508
+ "id": "4y_to_5y_old",
4415
4509
  "short": "4y-5y",
4416
4510
  "long": "4 to 5 Years Old"
4417
4511
  },
4418
4512
  "_5y_to_6y": {
4419
- "id": "at_least_5y_up_to_6y_old",
4513
+ "id": "5y_to_6y_old",
4420
4514
  "short": "5y-6y",
4421
4515
  "long": "5 to 6 Years Old"
4422
4516
  },
4423
4517
  "_6y_to_7y": {
4424
- "id": "at_least_6y_up_to_7y_old",
4518
+ "id": "6y_to_7y_old",
4425
4519
  "short": "6y-7y",
4426
4520
  "long": "6 to 7 Years Old"
4427
4521
  },
4428
4522
  "_7y_to_8y": {
4429
- "id": "at_least_7y_up_to_8y_old",
4523
+ "id": "7y_to_8y_old",
4430
4524
  "short": "7y-8y",
4431
4525
  "long": "7 to 8 Years Old"
4432
4526
  },
4433
4527
  "_8y_to_10y": {
4434
- "id": "at_least_8y_up_to_10y_old",
4528
+ "id": "8y_to_10y_old",
4435
4529
  "short": "8y-10y",
4436
4530
  "long": "8 to 10 Years Old"
4437
4531
  },
4438
4532
  "_10y_to_12y": {
4439
- "id": "at_least_10y_up_to_12y_old",
4533
+ "id": "10y_to_12y_old",
4440
4534
  "short": "10y-12y",
4441
4535
  "long": "10 to 12 Years Old"
4442
4536
  },
4443
4537
  "_12y_to_15y": {
4444
- "id": "at_least_12y_up_to_15y_old",
4538
+ "id": "12y_to_15y_old",
4445
4539
  "short": "12y-15y",
4446
4540
  "long": "12 to 15 Years Old"
4447
4541
  },
4448
4542
  "from_15y": {
4449
- "id": "at_least_15y_old",
4543
+ "id": "over_15y_old",
4450
4544
  "short": "15y+",
4451
4545
  "long": "15+ Years Old"
4452
4546
  }
@@ -4454,187 +4548,187 @@ class BrkClient(BrkClientBase):
4454
4548
 
4455
4549
  MAX_AGE_NAMES = {
4456
4550
  "_1w": {
4457
- "id": "up_to_1w_old",
4551
+ "id": "under_1w_old",
4458
4552
  "short": "<1w",
4459
- "long": "Up to 1 Week Old"
4553
+ "long": "Under 1 Week Old"
4460
4554
  },
4461
4555
  "_1m": {
4462
- "id": "up_to_1m_old",
4556
+ "id": "under_1m_old",
4463
4557
  "short": "<1m",
4464
- "long": "Up to 1 Month Old"
4558
+ "long": "Under 1 Month Old"
4465
4559
  },
4466
4560
  "_2m": {
4467
- "id": "up_to_2m_old",
4561
+ "id": "under_2m_old",
4468
4562
  "short": "<2m",
4469
- "long": "Up to 2 Months Old"
4563
+ "long": "Under 2 Months Old"
4470
4564
  },
4471
4565
  "_3m": {
4472
- "id": "up_to_3m_old",
4566
+ "id": "under_3m_old",
4473
4567
  "short": "<3m",
4474
- "long": "Up to 3 Months Old"
4568
+ "long": "Under 3 Months Old"
4475
4569
  },
4476
4570
  "_4m": {
4477
- "id": "up_to_4m_old",
4571
+ "id": "under_4m_old",
4478
4572
  "short": "<4m",
4479
- "long": "Up to 4 Months Old"
4573
+ "long": "Under 4 Months Old"
4480
4574
  },
4481
4575
  "_5m": {
4482
- "id": "up_to_5m_old",
4576
+ "id": "under_5m_old",
4483
4577
  "short": "<5m",
4484
- "long": "Up to 5 Months Old"
4578
+ "long": "Under 5 Months Old"
4485
4579
  },
4486
4580
  "_6m": {
4487
- "id": "up_to_6m_old",
4581
+ "id": "under_6m_old",
4488
4582
  "short": "<6m",
4489
- "long": "Up to 6 Months Old"
4583
+ "long": "Under 6 Months Old"
4490
4584
  },
4491
4585
  "_1y": {
4492
- "id": "up_to_1y_old",
4586
+ "id": "under_1y_old",
4493
4587
  "short": "<1y",
4494
- "long": "Up to 1 Year Old"
4588
+ "long": "Under 1 Year Old"
4495
4589
  },
4496
4590
  "_2y": {
4497
- "id": "up_to_2y_old",
4591
+ "id": "under_2y_old",
4498
4592
  "short": "<2y",
4499
- "long": "Up to 2 Years Old"
4593
+ "long": "Under 2 Years Old"
4500
4594
  },
4501
4595
  "_3y": {
4502
- "id": "up_to_3y_old",
4596
+ "id": "under_3y_old",
4503
4597
  "short": "<3y",
4504
- "long": "Up to 3 Years Old"
4598
+ "long": "Under 3 Years Old"
4505
4599
  },
4506
4600
  "_4y": {
4507
- "id": "up_to_4y_old",
4601
+ "id": "under_4y_old",
4508
4602
  "short": "<4y",
4509
- "long": "Up to 4 Years Old"
4603
+ "long": "Under 4 Years Old"
4510
4604
  },
4511
4605
  "_5y": {
4512
- "id": "up_to_5y_old",
4606
+ "id": "under_5y_old",
4513
4607
  "short": "<5y",
4514
- "long": "Up to 5 Years Old"
4608
+ "long": "Under 5 Years Old"
4515
4609
  },
4516
4610
  "_6y": {
4517
- "id": "up_to_6y_old",
4611
+ "id": "under_6y_old",
4518
4612
  "short": "<6y",
4519
- "long": "Up to 6 Years Old"
4613
+ "long": "Under 6 Years Old"
4520
4614
  },
4521
4615
  "_7y": {
4522
- "id": "up_to_7y_old",
4616
+ "id": "under_7y_old",
4523
4617
  "short": "<7y",
4524
- "long": "Up to 7 Years Old"
4618
+ "long": "Under 7 Years Old"
4525
4619
  },
4526
4620
  "_8y": {
4527
- "id": "up_to_8y_old",
4621
+ "id": "under_8y_old",
4528
4622
  "short": "<8y",
4529
- "long": "Up to 8 Years Old"
4623
+ "long": "Under 8 Years Old"
4530
4624
  },
4531
4625
  "_10y": {
4532
- "id": "up_to_10y_old",
4626
+ "id": "under_10y_old",
4533
4627
  "short": "<10y",
4534
- "long": "Up to 10 Years Old"
4628
+ "long": "Under 10 Years Old"
4535
4629
  },
4536
4630
  "_12y": {
4537
- "id": "up_to_12y_old",
4631
+ "id": "under_12y_old",
4538
4632
  "short": "<12y",
4539
- "long": "Up to 12 Years Old"
4633
+ "long": "Under 12 Years Old"
4540
4634
  },
4541
4635
  "_15y": {
4542
- "id": "up_to_15y_old",
4636
+ "id": "under_15y_old",
4543
4637
  "short": "<15y",
4544
- "long": "Up to 15 Years Old"
4638
+ "long": "Under 15 Years Old"
4545
4639
  }
4546
4640
  }
4547
4641
 
4548
4642
  MIN_AGE_NAMES = {
4549
4643
  "_1d": {
4550
- "id": "at_least_1d_old",
4644
+ "id": "over_1d_old",
4551
4645
  "short": "1d+",
4552
- "long": "At Least 1 Day Old"
4646
+ "long": "Over 1 Day Old"
4553
4647
  },
4554
4648
  "_1w": {
4555
- "id": "at_least_1w_old",
4649
+ "id": "over_1w_old",
4556
4650
  "short": "1w+",
4557
- "long": "At Least 1 Week Old"
4651
+ "long": "Over 1 Week Old"
4558
4652
  },
4559
4653
  "_1m": {
4560
- "id": "at_least_1m_old",
4654
+ "id": "over_1m_old",
4561
4655
  "short": "1m+",
4562
- "long": "At Least 1 Month Old"
4656
+ "long": "Over 1 Month Old"
4563
4657
  },
4564
4658
  "_2m": {
4565
- "id": "at_least_2m_old",
4659
+ "id": "over_2m_old",
4566
4660
  "short": "2m+",
4567
- "long": "At Least 2 Months Old"
4661
+ "long": "Over 2 Months Old"
4568
4662
  },
4569
4663
  "_3m": {
4570
- "id": "at_least_3m_old",
4664
+ "id": "over_3m_old",
4571
4665
  "short": "3m+",
4572
- "long": "At Least 3 Months Old"
4666
+ "long": "Over 3 Months Old"
4573
4667
  },
4574
4668
  "_4m": {
4575
- "id": "at_least_4m_old",
4669
+ "id": "over_4m_old",
4576
4670
  "short": "4m+",
4577
- "long": "At Least 4 Months Old"
4671
+ "long": "Over 4 Months Old"
4578
4672
  },
4579
4673
  "_5m": {
4580
- "id": "at_least_5m_old",
4674
+ "id": "over_5m_old",
4581
4675
  "short": "5m+",
4582
- "long": "At Least 5 Months Old"
4676
+ "long": "Over 5 Months Old"
4583
4677
  },
4584
4678
  "_6m": {
4585
- "id": "at_least_6m_old",
4679
+ "id": "over_6m_old",
4586
4680
  "short": "6m+",
4587
- "long": "At Least 6 Months Old"
4681
+ "long": "Over 6 Months Old"
4588
4682
  },
4589
4683
  "_1y": {
4590
- "id": "at_least_1y_old",
4684
+ "id": "over_1y_old",
4591
4685
  "short": "1y+",
4592
- "long": "At Least 1 Year Old"
4686
+ "long": "Over 1 Year Old"
4593
4687
  },
4594
4688
  "_2y": {
4595
- "id": "at_least_2y_old",
4689
+ "id": "over_2y_old",
4596
4690
  "short": "2y+",
4597
- "long": "At Least 2 Years Old"
4691
+ "long": "Over 2 Years Old"
4598
4692
  },
4599
4693
  "_3y": {
4600
- "id": "at_least_3y_old",
4694
+ "id": "over_3y_old",
4601
4695
  "short": "3y+",
4602
- "long": "At Least 3 Years Old"
4696
+ "long": "Over 3 Years Old"
4603
4697
  },
4604
4698
  "_4y": {
4605
- "id": "at_least_4y_old",
4699
+ "id": "over_4y_old",
4606
4700
  "short": "4y+",
4607
- "long": "At Least 4 Years Old"
4701
+ "long": "Over 4 Years Old"
4608
4702
  },
4609
4703
  "_5y": {
4610
- "id": "at_least_5y_old",
4704
+ "id": "over_5y_old",
4611
4705
  "short": "5y+",
4612
- "long": "At Least 5 Years Old"
4706
+ "long": "Over 5 Years Old"
4613
4707
  },
4614
4708
  "_6y": {
4615
- "id": "at_least_6y_old",
4709
+ "id": "over_6y_old",
4616
4710
  "short": "6y+",
4617
- "long": "At Least 6 Years Old"
4711
+ "long": "Over 6 Years Old"
4618
4712
  },
4619
4713
  "_7y": {
4620
- "id": "at_least_7y_old",
4714
+ "id": "over_7y_old",
4621
4715
  "short": "7y+",
4622
- "long": "At Least 7 Years Old"
4716
+ "long": "Over 7 Years Old"
4623
4717
  },
4624
4718
  "_8y": {
4625
- "id": "at_least_8y_old",
4719
+ "id": "over_8y_old",
4626
4720
  "short": "8y+",
4627
- "long": "At Least 8 Years Old"
4721
+ "long": "Over 8 Years Old"
4628
4722
  },
4629
4723
  "_10y": {
4630
- "id": "at_least_10y_old",
4724
+ "id": "over_10y_old",
4631
4725
  "short": "10y+",
4632
- "long": "At Least 10 Years Old"
4726
+ "long": "Over 10 Years Old"
4633
4727
  },
4634
4728
  "_12y": {
4635
- "id": "at_least_12y_old",
4729
+ "id": "over_12y_old",
4636
4730
  "short": "12y+",
4637
- "long": "At Least 12 Years Old"
4731
+ "long": "Over 12 Years Old"
4638
4732
  }
4639
4733
  }
4640
4734
 
@@ -4647,67 +4741,67 @@ class BrkClient(BrkClientBase):
4647
4741
  "_1sat_to_10sats": {
4648
4742
  "id": "above_1sat_under_10sats",
4649
4743
  "short": "1-10 sats",
4650
- "long": "1 to 10 Sats"
4744
+ "long": "1-10 Sats"
4651
4745
  },
4652
4746
  "_10sats_to_100sats": {
4653
4747
  "id": "above_10sats_under_100sats",
4654
4748
  "short": "10-100 sats",
4655
- "long": "10 to 100 Sats"
4749
+ "long": "10-100 Sats"
4656
4750
  },
4657
4751
  "_100sats_to_1k_sats": {
4658
4752
  "id": "above_100sats_under_1k_sats",
4659
4753
  "short": "100-1k sats",
4660
- "long": "100 to 1K Sats"
4754
+ "long": "100-1K Sats"
4661
4755
  },
4662
4756
  "_1k_sats_to_10k_sats": {
4663
4757
  "id": "above_1k_sats_under_10k_sats",
4664
4758
  "short": "1k-10k sats",
4665
- "long": "1K to 10K Sats"
4759
+ "long": "1K-10K Sats"
4666
4760
  },
4667
4761
  "_10k_sats_to_100k_sats": {
4668
4762
  "id": "above_10k_sats_under_100k_sats",
4669
4763
  "short": "10k-100k sats",
4670
- "long": "10K to 100K Sats"
4764
+ "long": "10K-100K Sats"
4671
4765
  },
4672
4766
  "_100k_sats_to_1m_sats": {
4673
4767
  "id": "above_100k_sats_under_1m_sats",
4674
4768
  "short": "100k-1M sats",
4675
- "long": "100K to 1M Sats"
4769
+ "long": "100K-1M Sats"
4676
4770
  },
4677
4771
  "_1m_sats_to_10m_sats": {
4678
4772
  "id": "above_1m_sats_under_10m_sats",
4679
4773
  "short": "1M-10M sats",
4680
- "long": "1M to 10M Sats"
4774
+ "long": "1M-10M Sats"
4681
4775
  },
4682
4776
  "_10m_sats_to_1btc": {
4683
4777
  "id": "above_10m_sats_under_1btc",
4684
4778
  "short": "0.1-1 BTC",
4685
- "long": "0.1 to 1 BTC"
4779
+ "long": "0.1-1 BTC"
4686
4780
  },
4687
4781
  "_1btc_to_10btc": {
4688
4782
  "id": "above_1btc_under_10btc",
4689
4783
  "short": "1-10 BTC",
4690
- "long": "1 to 10 BTC"
4784
+ "long": "1-10 BTC"
4691
4785
  },
4692
4786
  "_10btc_to_100btc": {
4693
4787
  "id": "above_10btc_under_100btc",
4694
4788
  "short": "10-100 BTC",
4695
- "long": "10 to 100 BTC"
4789
+ "long": "10-100 BTC"
4696
4790
  },
4697
4791
  "_100btc_to_1k_btc": {
4698
4792
  "id": "above_100btc_under_1k_btc",
4699
4793
  "short": "100-1k BTC",
4700
- "long": "100 to 1K BTC"
4794
+ "long": "100-1K BTC"
4701
4795
  },
4702
4796
  "_1k_btc_to_10k_btc": {
4703
4797
  "id": "above_1k_btc_under_10k_btc",
4704
4798
  "short": "1k-10k BTC",
4705
- "long": "1K to 10K BTC"
4799
+ "long": "1K-10K BTC"
4706
4800
  },
4707
4801
  "_10k_btc_to_100k_btc": {
4708
4802
  "id": "above_10k_btc_under_100k_btc",
4709
4803
  "short": "10k-100k BTC",
4710
- "long": "10K to 100K BTC"
4804
+ "long": "10K-100K BTC"
4711
4805
  },
4712
4806
  "_100k_btc_or_more": {
4713
4807
  "id": "above_100k_btc",
@@ -4718,69 +4812,69 @@ class BrkClient(BrkClientBase):
4718
4812
 
4719
4813
  GE_AMOUNT_NAMES = {
4720
4814
  "_1sat": {
4721
- "id": "above_1sat",
4815
+ "id": "over_1sat",
4722
4816
  "short": "1+ sats",
4723
- "long": "Above 1 Sat"
4817
+ "long": "Over 1 Sat"
4724
4818
  },
4725
4819
  "_10sats": {
4726
- "id": "above_10sats",
4820
+ "id": "over_10sats",
4727
4821
  "short": "10+ sats",
4728
- "long": "Above 10 Sats"
4822
+ "long": "Over 10 Sats"
4729
4823
  },
4730
4824
  "_100sats": {
4731
- "id": "above_100sats",
4825
+ "id": "over_100sats",
4732
4826
  "short": "100+ sats",
4733
- "long": "Above 100 Sats"
4827
+ "long": "Over 100 Sats"
4734
4828
  },
4735
4829
  "_1k_sats": {
4736
- "id": "above_1k_sats",
4830
+ "id": "over_1k_sats",
4737
4831
  "short": "1k+ sats",
4738
- "long": "Above 1K Sats"
4832
+ "long": "Over 1K Sats"
4739
4833
  },
4740
4834
  "_10k_sats": {
4741
- "id": "above_10k_sats",
4835
+ "id": "over_10k_sats",
4742
4836
  "short": "10k+ sats",
4743
- "long": "Above 10K Sats"
4837
+ "long": "Over 10K Sats"
4744
4838
  },
4745
4839
  "_100k_sats": {
4746
- "id": "above_100k_sats",
4840
+ "id": "over_100k_sats",
4747
4841
  "short": "100k+ sats",
4748
- "long": "Above 100K Sats"
4842
+ "long": "Over 100K Sats"
4749
4843
  },
4750
4844
  "_1m_sats": {
4751
- "id": "above_1m_sats",
4845
+ "id": "over_1m_sats",
4752
4846
  "short": "1M+ sats",
4753
- "long": "Above 1M Sats"
4847
+ "long": "Over 1M Sats"
4754
4848
  },
4755
4849
  "_10m_sats": {
4756
- "id": "above_10m_sats",
4850
+ "id": "over_10m_sats",
4757
4851
  "short": "0.1+ BTC",
4758
- "long": "Above 0.1 BTC"
4852
+ "long": "Over 0.1 BTC"
4759
4853
  },
4760
4854
  "_1btc": {
4761
- "id": "above_1btc",
4855
+ "id": "over_1btc",
4762
4856
  "short": "1+ BTC",
4763
- "long": "Above 1 BTC"
4857
+ "long": "Over 1 BTC"
4764
4858
  },
4765
4859
  "_10btc": {
4766
- "id": "above_10btc",
4860
+ "id": "over_10btc",
4767
4861
  "short": "10+ BTC",
4768
- "long": "Above 10 BTC"
4862
+ "long": "Over 10 BTC"
4769
4863
  },
4770
4864
  "_100btc": {
4771
- "id": "above_100btc",
4865
+ "id": "over_100btc",
4772
4866
  "short": "100+ BTC",
4773
- "long": "Above 100 BTC"
4867
+ "long": "Over 100 BTC"
4774
4868
  },
4775
4869
  "_1k_btc": {
4776
- "id": "above_1k_btc",
4870
+ "id": "over_1k_btc",
4777
4871
  "short": "1k+ BTC",
4778
- "long": "Above 1K BTC"
4872
+ "long": "Over 1K BTC"
4779
4873
  },
4780
4874
  "_10k_btc": {
4781
- "id": "above_10k_btc",
4875
+ "id": "over_10k_btc",
4782
4876
  "short": "10k+ BTC",
4783
- "long": "Above 10K BTC"
4877
+ "long": "Over 10K BTC"
4784
4878
  }
4785
4879
  }
4786
4880