brk-client 0.1.0b1__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,25 +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 ClassAveragePricePattern(Generic[T]):
2058
- """Pattern struct for repeated tree structure."""
2059
-
2060
- def __init__(self, client: BrkClientBase, acc: str):
2061
- """Create pattern node with accumulated metric name."""
2062
- self._2015: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2015_average_price'))
2063
- self._2016: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2016_average_price'))
2064
- self._2017: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2017_average_price'))
2065
- self._2018: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2018_average_price'))
2066
- self._2019: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2019_average_price'))
2067
- self._2020: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2020_average_price'))
2068
- self._2021: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2021_average_price'))
2069
- self._2022: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2022_average_price'))
2070
- self._2023: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2023_average_price'))
2071
- self._2024: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2024_average_price'))
2072
- self._2025: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2025_average_price'))
2073
- self._2026: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2026_average_price'))
2074
-
2075
- class PeriodAveragePricePattern(Generic[T]):
2027
+ class PeriodDaysInLossPattern(Generic[T]):
2076
2028
  """Pattern struct for repeated tree structure."""
2077
2029
 
2078
2030
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2090,6 +2042,24 @@ class PeriodAveragePricePattern(Generic[T]):
2090
2042
  self._6y: MetricPattern4[T] = MetricPattern4(client, _p('6y', acc))
2091
2043
  self._8y: MetricPattern4[T] = MetricPattern4(client, _p('8y', acc))
2092
2044
 
2045
+ class ClassDaysInLossPattern(Generic[T]):
2046
+ """Pattern struct for repeated tree structure."""
2047
+
2048
+ def __init__(self, client: BrkClientBase, acc: str):
2049
+ """Create pattern node with accumulated metric name."""
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'))
2062
+
2093
2063
  class BitcoinPattern:
2094
2064
  """Pattern struct for repeated tree structure."""
2095
2065
 
@@ -2124,22 +2094,6 @@ class DollarsPattern(Generic[T]):
2124
2094
  self.pct90: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct90'))
2125
2095
  self.sum: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'sum'))
2126
2096
 
2127
- class RelativePattern:
2128
- """Pattern struct for repeated tree structure."""
2129
-
2130
- def __init__(self, client: BrkClientBase, acc: str):
2131
- """Create pattern node with accumulated metric name."""
2132
- self.neg_unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_market_cap'))
2133
- self.net_unrealized_pnl_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap'))
2134
- self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl'))
2135
- self.supply_in_loss_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply'))
2136
- self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2137
- self.supply_in_profit_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply'))
2138
- self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2139
- self.supply_rel_to_circulating_supply: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, 'supply_rel_to_circulating_supply'))
2140
- self.unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_market_cap'))
2141
- self.unrealized_profit_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_market_cap'))
2142
-
2143
2097
  class RelativePattern2:
2144
2098
  """Pattern struct for repeated tree structure."""
2145
2099
 
@@ -2156,6 +2110,22 @@ class RelativePattern2:
2156
2110
  self.unrealized_profit_rel_to_own_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_market_cap'))
2157
2111
  self.unrealized_profit_rel_to_own_total_unrealized_pnl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_own_total_unrealized_pnl'))
2158
2112
 
2113
+ class RelativePattern:
2114
+ """Pattern struct for repeated tree structure."""
2115
+
2116
+ def __init__(self, client: BrkClientBase, acc: str):
2117
+ """Create pattern node with accumulated metric name."""
2118
+ self.neg_unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss_rel_to_market_cap'))
2119
+ self.net_unrealized_pnl_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl_rel_to_market_cap'))
2120
+ self.nupl: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'nupl'))
2121
+ self.supply_in_loss_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_circulating_supply'))
2122
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_loss_rel_to_own_supply'))
2123
+ self.supply_in_profit_rel_to_circulating_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_circulating_supply'))
2124
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'supply_in_profit_rel_to_own_supply'))
2125
+ self.supply_rel_to_circulating_supply: MetricPattern4[StoredF64] = MetricPattern4(client, _m(acc, 'supply_rel_to_circulating_supply'))
2126
+ self.unrealized_loss_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_loss_rel_to_market_cap'))
2127
+ self.unrealized_profit_rel_to_market_cap: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'unrealized_profit_rel_to_market_cap'))
2128
+
2159
2129
  class CountPattern2(Generic[T]):
2160
2130
  """Pattern struct for repeated tree structure."""
2161
2131
 
@@ -2231,19 +2201,18 @@ 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
2217
  class _0satsPattern2:
2249
2218
  """Pattern struct for repeated tree structure."""
@@ -2258,7 +2227,7 @@ class _0satsPattern2:
2258
2227
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2259
2228
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2260
2229
 
2261
- class _100btcPattern:
2230
+ class _10yPattern:
2262
2231
  """Pattern struct for repeated tree structure."""
2263
2232
 
2264
2233
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2266,11 +2235,24 @@ class _100btcPattern:
2266
2235
  self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2267
2236
  self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2268
2237
  self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2269
- self.realized: RealizedPattern = RealizedPattern(client, acc)
2238
+ self.realized: RealizedPattern4 = RealizedPattern4(client, acc)
2270
2239
  self.relative: RelativePattern = RelativePattern(client, acc)
2271
2240
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2272
2241
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2273
2242
 
2243
+ class UnrealizedPattern:
2244
+ """Pattern struct for repeated tree structure."""
2245
+
2246
+ def __init__(self, client: BrkClientBase, acc: str):
2247
+ """Create pattern node with accumulated metric name."""
2248
+ self.neg_unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss'))
2249
+ self.net_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl'))
2250
+ self.supply_in_loss: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'supply_in_loss'))
2251
+ self.supply_in_profit: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'supply_in_profit'))
2252
+ self.total_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'total_unrealized_pnl'))
2253
+ self.unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_loss'))
2254
+ self.unrealized_profit: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_profit'))
2255
+
2274
2256
  class PeriodCagrPattern:
2275
2257
  """Pattern struct for repeated tree structure."""
2276
2258
 
@@ -2297,31 +2279,17 @@ class _10yTo12yPattern:
2297
2279
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2298
2280
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2299
2281
 
2300
- class _10yPattern:
2282
+ class AllPattern:
2301
2283
  """Pattern struct for repeated tree structure."""
2302
2284
 
2303
2285
  def __init__(self, client: BrkClientBase, acc: str):
2304
2286
  """Create pattern node with accumulated metric name."""
2305
- self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2306
- self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2307
- self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2308
- self.realized: RealizedPattern4 = RealizedPattern4(client, acc)
2309
- self.relative: RelativePattern = RelativePattern(client, acc)
2310
- self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2311
- self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2312
-
2313
- class UnrealizedPattern:
2314
- """Pattern struct for repeated tree structure."""
2315
-
2316
- def __init__(self, client: BrkClientBase, acc: str):
2317
- """Create pattern node with accumulated metric name."""
2318
- self.neg_unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'neg_unrealized_loss'))
2319
- self.net_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'net_unrealized_pnl'))
2320
- self.supply_in_loss: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'supply_in_loss'))
2321
- self.supply_in_profit: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'supply_in_profit'))
2322
- self.total_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'total_unrealized_pnl'))
2323
- self.unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_loss'))
2324
- self.unrealized_profit: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'unrealized_profit'))
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."""
@@ -2344,14 +2312,23 @@ class SplitPattern2(Generic[T]):
2344
2312
  self.low: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'low'))
2345
2313
  self.open: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'open'))
2346
2314
 
2347
- class CostBasisPattern2:
2315
+ class UnclaimedRewardsPattern:
2348
2316
  """Pattern struct for repeated tree structure."""
2349
2317
 
2350
2318
  def __init__(self, client: BrkClientBase, acc: str):
2351
2319
  """Create pattern node with accumulated metric name."""
2352
- self.max: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'max_cost_basis'))
2353
- self.min: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'min_cost_basis'))
2354
- self.percentiles: PercentilesPattern = PercentilesPattern(client, _m(acc, 'cost_basis'))
2320
+ self.bitcoin: BitcoinPattern2[Bitcoin] = BitcoinPattern2(client, _m(acc, 'btc'))
2321
+ self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2322
+ self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
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)
2355
2332
 
2356
2333
  class ActiveSupplyPattern:
2357
2334
  """Pattern struct for repeated tree structure."""
@@ -2362,6 +2339,15 @@ class ActiveSupplyPattern:
2362
2339
  self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'usd'))
2363
2340
  self.sats: MetricPattern1[Sats] = MetricPattern1(client, acc)
2364
2341
 
2342
+ class CoinbasePattern:
2343
+ """Pattern struct for repeated tree structure."""
2344
+
2345
+ def __init__(self, client: BrkClientBase, acc: str):
2346
+ """Create pattern node with accumulated metric name."""
2347
+ self.bitcoin: BitcoinPattern = BitcoinPattern(client, _m(acc, 'btc'))
2348
+ self.dollars: DollarsPattern[Dollars] = DollarsPattern(client, _m(acc, 'usd'))
2349
+ self.sats: DollarsPattern[Sats] = DollarsPattern(client, acc)
2350
+
2365
2351
  class SegwitAdoptionPattern:
2366
2352
  """Pattern struct for repeated tree structure."""
2367
2353
 
@@ -2371,49 +2357,47 @@ class SegwitAdoptionPattern:
2371
2357
  self.cumulative: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'cumulative'))
2372
2358
  self.sum: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'sum'))
2373
2359
 
2374
- class CoinbasePattern2:
2360
+ class CostBasisPattern2:
2375
2361
  """Pattern struct for repeated tree structure."""
2376
2362
 
2377
2363
  def __init__(self, client: BrkClientBase, acc: str):
2378
2364
  """Create pattern node with accumulated metric name."""
2379
- self.bitcoin: BlockCountPattern[Bitcoin] = BlockCountPattern(client, _m(acc, 'btc'))
2380
- self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2381
- self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
2365
+ self.max: ActivePricePattern = ActivePricePattern(client, _m(acc, 'max_cost_basis'))
2366
+ self.min: ActivePricePattern = ActivePricePattern(client, _m(acc, 'min_cost_basis'))
2367
+ self.percentiles: PercentilesPattern = PercentilesPattern(client, _m(acc, 'cost_basis'))
2382
2368
 
2383
- class UnclaimedRewardsPattern:
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: BitcoinPattern2[Bitcoin] = BitcoinPattern2(client, _m(acc, 'btc'))
2374
+ self.bitcoin: BlockCountPattern[Bitcoin] = BlockCountPattern(client, _m(acc, 'btc'))
2389
2375
  self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2390
2376
  self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
2391
2377
 
2392
- class CoinbasePattern:
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: BitcoinPattern = BitcoinPattern(client, _m(acc, 'btc'))
2398
- self.dollars: DollarsPattern[Dollars] = DollarsPattern(client, _m(acc, 'usd'))
2399
- self.sats: DollarsPattern[Sats] = DollarsPattern(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 _2015Pattern:
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: MetricPattern4[Bitcoin] = MetricPattern4(client, _m(acc, 'btc'))
2407
- self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'usd'))
2408
- self.sats: MetricPattern4[Sats] = MetricPattern4(client, acc)
2391
+ self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, acc)
2392
+ self.sats: MetricPattern1[SatsFract] = MetricPattern1(client, _m(acc, 'sats'))
2409
2393
 
2410
- class RelativePattern4:
2394
+ class _1dReturns1mSdPattern:
2411
2395
  """Pattern struct for repeated tree structure."""
2412
2396
 
2413
2397
  def __init__(self, client: BrkClientBase, acc: str):
2414
2398
  """Create pattern node with accumulated metric name."""
2415
- self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'loss_rel_to_own_supply'))
2416
- self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'profit_rel_to_own_supply'))
2399
+ self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
2400
+ self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
2417
2401
 
2418
2402
  class SupplyPattern2:
2419
2403
  """Pattern struct for repeated tree structure."""
@@ -2423,36 +2407,36 @@ class SupplyPattern2:
2423
2407
  self.halved: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'halved'))
2424
2408
  self.total: ActiveSupplyPattern = ActiveSupplyPattern(client, acc)
2425
2409
 
2426
- class CostBasisPattern:
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.max: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'max_cost_basis'))
2432
- self.min: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'min_cost_basis'))
2415
+ self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, acc)
2416
+ self.sats: MetricPattern4[SatsFract] = MetricPattern4(client, _m(acc, 'sats'))
2433
2417
 
2434
- class _1dReturns1mSdPattern:
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.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
2440
- self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
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 BlockCountPattern(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.cumulative: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'cumulative'))
2439
+ self.cumulative: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'cumulative'))
2456
2440
  self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2457
2441
 
2458
2442
  class SatsPattern(Generic[T]):
@@ -2460,22 +2444,22 @@ class SatsPattern(Generic[T]):
2460
2444
 
2461
2445
  def __init__(self, client: BrkClientBase, acc: str):
2462
2446
  """Create pattern node with accumulated metric name."""
2463
- self.ohlc: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'ohlc'))
2464
- self.split: SplitPattern2[T] = SplitPattern2(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
- class RealizedPriceExtraPattern:
2450
+ class OutputsPattern:
2467
2451
  """Pattern struct for repeated tree structure."""
2468
2452
 
2469
2453
  def __init__(self, client: BrkClientBase, acc: str):
2470
2454
  """Create pattern node with accumulated metric name."""
2471
- self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, acc)
2455
+ self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, acc)
2472
2456
 
2473
- class OutputsPattern:
2457
+ class RealizedPriceExtraPattern:
2474
2458
  """Pattern struct for repeated tree structure."""
2475
2459
 
2476
2460
  def __init__(self, client: BrkClientBase, acc: str):
2477
2461
  """Create pattern node with accumulated metric name."""
2478
- self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, acc)
2462
+ self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, acc)
2479
2463
 
2480
2464
  # Metrics tree classes
2481
2465
 
@@ -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
 
@@ -2799,6 +2797,34 @@ 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
 
@@ -2829,8 +2855,8 @@ 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:
@@ -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,27 @@ 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
+
3323
3370
  class MetricsTree_Market_Dca_ClassDaysInLoss:
3324
3371
  """Metrics tree node."""
3325
3372
 
@@ -3337,23 +3384,6 @@ class MetricsTree_Market_Dca_ClassDaysInLoss:
3337
3384
  self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_loss')
3338
3385
  self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_loss')
3339
3386
 
3340
- class MetricsTree_Market_Dca_ClassDaysInProfit:
3341
- """Metrics tree node."""
3342
-
3343
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3344
- self._2015: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2015_days_in_profit')
3345
- self._2016: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2016_days_in_profit')
3346
- self._2017: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2017_days_in_profit')
3347
- self._2018: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2018_days_in_profit')
3348
- self._2019: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2019_days_in_profit')
3349
- self._2020: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2020_days_in_profit')
3350
- self._2021: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2021_days_in_profit')
3351
- self._2022: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2022_days_in_profit')
3352
- self._2023: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2023_days_in_profit')
3353
- self._2024: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2024_days_in_profit')
3354
- self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_profit')
3355
- self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_profit')
3356
-
3357
3387
  class MetricsTree_Market_Dca_ClassMaxDrawdown:
3358
3388
  """Metrics tree node."""
3359
3389
 
@@ -3422,30 +3452,47 @@ class MetricsTree_Market_Dca_ClassStack:
3422
3452
  self._2025: _2015Pattern = _2015Pattern(client, 'dca_class_2025_stack')
3423
3453
  self._2026: _2015Pattern = _2015Pattern(client, 'dca_class_2026_stack')
3424
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
+
3425
3472
  class MetricsTree_Market_Dca:
3426
3473
  """Metrics tree node."""
3427
3474
 
3428
3475
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3429
- self.class_average_price: ClassAveragePricePattern[Dollars] = ClassAveragePricePattern(client, 'dca_class')
3476
+ self.class_average_price: MetricsTree_Market_Dca_ClassAveragePrice = MetricsTree_Market_Dca_ClassAveragePrice(client)
3430
3477
  self.class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss = MetricsTree_Market_Dca_ClassDaysInLoss(client)
3431
- self.class_days_in_profit: MetricsTree_Market_Dca_ClassDaysInProfit = MetricsTree_Market_Dca_ClassDaysInProfit(client)
3478
+ self.class_days_in_profit: ClassDaysInLossPattern[StoredU32] = ClassDaysInLossPattern(client, 'dca_class')
3432
3479
  self.class_max_drawdown: MetricsTree_Market_Dca_ClassMaxDrawdown = MetricsTree_Market_Dca_ClassMaxDrawdown(client)
3433
3480
  self.class_max_return: MetricsTree_Market_Dca_ClassMaxReturn = MetricsTree_Market_Dca_ClassMaxReturn(client)
3434
3481
  self.class_returns: MetricsTree_Market_Dca_ClassReturns = MetricsTree_Market_Dca_ClassReturns(client)
3435
3482
  self.class_stack: MetricsTree_Market_Dca_ClassStack = MetricsTree_Market_Dca_ClassStack(client)
3436
- 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)
3437
3484
  self.period_cagr: PeriodCagrPattern = PeriodCagrPattern(client, 'dca_cagr')
3438
- self.period_days_in_loss: PeriodAveragePricePattern[StoredU32] = PeriodAveragePricePattern(client, 'dca_days_in_loss')
3439
- self.period_days_in_profit: PeriodAveragePricePattern[StoredU32] = PeriodAveragePricePattern(client, 'dca_days_in_profit')
3440
- self.period_lump_sum_days_in_loss: PeriodAveragePricePattern[StoredU32] = PeriodAveragePricePattern(client, 'lump_sum_days_in_loss')
3441
- self.period_lump_sum_days_in_profit: PeriodAveragePricePattern[StoredU32] = PeriodAveragePricePattern(client, 'lump_sum_days_in_profit')
3442
- self.period_lump_sum_max_drawdown: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'lump_sum_max_drawdown')
3443
- self.period_lump_sum_max_return: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'lump_sum_max_return')
3444
- self.period_lump_sum_returns: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'lump_sum_returns')
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')
3445
3492
  self.period_lump_sum_stack: PeriodLumpSumStackPattern = PeriodLumpSumStackPattern(client, 'lump_sum_stack')
3446
- self.period_max_drawdown: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'dca_max_drawdown')
3447
- self.period_max_return: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'dca_max_return')
3448
- 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')
3449
3496
  self.period_stack: PeriodLumpSumStackPattern = PeriodLumpSumStackPattern(client, 'dca_stack')
3450
3497
 
3451
3498
  class MetricsTree_Market_Indicators:
@@ -3472,6 +3519,24 @@ class MetricsTree_Market_Indicators:
3472
3519
  self.stoch_rsi_d: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_d')
3473
3520
  self.stoch_rsi_k: MetricPattern6[StoredF32] = MetricPattern6(client, 'stoch_rsi_k')
3474
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
+
3475
3540
  class MetricsTree_Market_MovingAverage:
3476
3541
  """Metrics tree node."""
3477
3542
 
@@ -3490,8 +3555,8 @@ class MetricsTree_Market_MovingAverage:
3490
3555
  self.price_1y_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_1y_sma')
3491
3556
  self.price_200d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200d_ema')
3492
3557
  self.price_200d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200d_sma')
3493
- self.price_200d_sma_x0_8: MetricPattern4[Dollars] = MetricPattern4(client, 'price_200d_sma_x0_8')
3494
- 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')
3495
3560
  self.price_200w_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200w_ema')
3496
3561
  self.price_200w_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_200w_sma')
3497
3562
  self.price_21d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_21d_ema')
@@ -3502,7 +3567,7 @@ class MetricsTree_Market_MovingAverage:
3502
3567
  self.price_34d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_34d_ema')
3503
3568
  self.price_34d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_34d_sma')
3504
3569
  self.price_350d_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_350d_sma')
3505
- 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')
3506
3571
  self.price_4y_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_4y_ema')
3507
3572
  self.price_4y_sma: Price111dSmaPattern = Price111dSmaPattern(client, 'price_4y_sma')
3508
3573
  self.price_55d_ema: Price111dSmaPattern = Price111dSmaPattern(client, 'price_55d_ema')
@@ -3516,15 +3581,15 @@ class MetricsTree_Market_Range:
3516
3581
  """Metrics tree node."""
3517
3582
 
3518
3583
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3519
- self.price_1m_max: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1m_max')
3520
- self.price_1m_min: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1m_min')
3521
- self.price_1w_max: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1w_max')
3522
- self.price_1w_min: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1w_min')
3523
- self.price_1y_max: MetricPattern4[Dollars] = MetricPattern4(client, 'price_1y_max')
3524
- 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')
3525
3590
  self.price_2w_choppiness_index: MetricPattern4[StoredF32] = MetricPattern4(client, 'price_2w_choppiness_index')
3526
- self.price_2w_max: MetricPattern4[Dollars] = MetricPattern4(client, 'price_2w_max')
3527
- 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')
3528
3593
  self.price_true_range: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range')
3529
3594
  self.price_true_range_2w_sum: MetricPattern6[StoredF32] = MetricPattern6(client, 'price_true_range_2w_sum')
3530
3595
 
@@ -3581,7 +3646,7 @@ class MetricsTree_Market:
3581
3646
  self.ath: MetricsTree_Market_Ath = MetricsTree_Market_Ath(client)
3582
3647
  self.dca: MetricsTree_Market_Dca = MetricsTree_Market_Dca(client)
3583
3648
  self.indicators: MetricsTree_Market_Indicators = MetricsTree_Market_Indicators(client)
3584
- self.lookback: LookbackPattern[Dollars] = LookbackPattern(client, 'price')
3649
+ self.lookback: MetricsTree_Market_Lookback = MetricsTree_Market_Lookback(client)
3585
3650
  self.moving_average: MetricsTree_Market_MovingAverage = MetricsTree_Market_MovingAverage(client)
3586
3651
  self.range: MetricsTree_Market_Range = MetricsTree_Market_Range(client)
3587
3652
  self.returns: MetricsTree_Market_Returns = MetricsTree_Market_Returns(client)
@@ -3805,56 +3870,20 @@ class MetricsTree_Price_Cents:
3805
3870
  self.ohlc: MetricPattern5[OHLCCents] = MetricPattern5(client, 'ohlc_cents')
3806
3871
  self.split: MetricsTree_Price_Cents_Split = MetricsTree_Price_Cents_Split(client)
3807
3872
 
3808
- class MetricsTree_Price_Oracle:
3809
- """Metrics tree node."""
3810
-
3811
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3812
- self.close_ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(client, 'close_ohlc_cents')
3813
- self.close_ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(client, 'close_ohlc_dollars')
3814
- self.height_to_first_pairoutputindex: MetricPattern11[PairOutputIndex] = MetricPattern11(client, 'height_to_first_pairoutputindex')
3815
- self.mid_ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(client, 'mid_ohlc_cents')
3816
- self.mid_ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(client, 'mid_ohlc_dollars')
3817
- self.ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(client, 'oracle_ohlc_cents')
3818
- self.ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(client, 'oracle_ohlc')
3819
- self.output0_value: MetricPattern33[Sats] = MetricPattern33(client, 'pair_output0_value')
3820
- self.output1_value: MetricPattern33[Sats] = MetricPattern33(client, 'pair_output1_value')
3821
- self.pairoutputindex_to_txindex: MetricPattern33[TxIndex] = MetricPattern33(client, 'pairoutputindex_to_txindex')
3822
- self.phase_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_daily')
3823
- self.phase_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_daily_dollars')
3824
- self.phase_histogram: MetricPattern11[OracleBins] = MetricPattern11(client, 'phase_histogram')
3825
- self.phase_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_price_cents')
3826
- self.phase_v2_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_v2_daily')
3827
- self.phase_v2_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_v2_daily_dollars')
3828
- self.phase_v2_histogram: MetricPattern11[OracleBinsV2] = MetricPattern11(client, 'phase_v2_histogram')
3829
- self.phase_v2_peak_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_v2_peak_daily')
3830
- self.phase_v2_peak_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_v2_peak_daily_dollars')
3831
- self.phase_v2_peak_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_v2_peak_price_cents')
3832
- self.phase_v2_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_v2_price_cents')
3833
- self.phase_v3_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_v3_daily')
3834
- self.phase_v3_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_v3_daily_dollars')
3835
- self.phase_v3_histogram: MetricPattern11[OracleBinsV2] = MetricPattern11(client, 'phase_v3_histogram')
3836
- self.phase_v3_peak_daily_cents: PhaseDailyCentsPattern[Cents] = PhaseDailyCentsPattern(client, 'phase_v3_peak_daily')
3837
- self.phase_v3_peak_daily_dollars: PhaseDailyCentsPattern[Dollars] = PhaseDailyCentsPattern(client, 'phase_v3_peak_daily_dollars')
3838
- self.phase_v3_peak_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_v3_peak_price_cents')
3839
- self.phase_v3_price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'phase_v3_price_cents')
3840
- self.price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'oracle_price_cents')
3841
- self.tx_count: MetricPattern6[StoredU32] = MetricPattern6(client, 'oracle_tx_count')
3842
-
3843
- class MetricsTree_Price_Sats:
3873
+ class MetricsTree_Price_Usd:
3844
3874
  """Metrics tree node."""
3845
3875
 
3846
3876
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3847
- self.ohlc: MetricPattern1[OHLCSats] = MetricPattern1(client, 'price_ohlc_sats')
3848
- 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')
3849
3879
 
3850
3880
  class MetricsTree_Price:
3851
3881
  """Metrics tree node."""
3852
3882
 
3853
3883
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3854
3884
  self.cents: MetricsTree_Price_Cents = MetricsTree_Price_Cents(client)
3855
- self.oracle: MetricsTree_Price_Oracle = MetricsTree_Price_Oracle(client)
3856
- self.sats: MetricsTree_Price_Sats = MetricsTree_Price_Sats(client)
3857
- 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)
3858
3887
 
3859
3888
  class MetricsTree_Scripts_Count:
3860
3889
  """Metrics tree node."""
@@ -4023,7 +4052,7 @@ class MetricsTree:
4023
4052
  class BrkClient(BrkClientBase):
4024
4053
  """Main BRK client with metrics tree and API methods."""
4025
4054
 
4026
- VERSION = "v0.1.0-beta.0"
4055
+ VERSION = "v0.1.0"
4027
4056
 
4028
4057
  INDEXES = [
4029
4058
  "dateindex",
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: brk-client
3
- Version: 0.1.0b1
3
+ Version: 0.1.1
4
4
  Summary: Python client for the Bitcoin Research Kit
5
5
  Project-URL: Homepage, https://bitcoinresearchkit.org
6
6
  Project-URL: Repository, https://github.com/bitcoinresearchkit/brk
7
7
  License-Expression: MIT
8
8
  Keywords: analytics,bitcoin,blockchain,on-chain
9
- Classifier: Development Status :: 4 - Beta
9
+ Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: License :: OSI Approved :: MIT License
12
12
  Classifier: Programming Language :: Python :: 3
@@ -0,0 +1,4 @@
1
+ brk_client/__init__.py,sha256=w2I4tdxkm_ZixMki_1M-b5Y01UD1PpaDDtnsSS0I3ws,270712
2
+ brk_client-0.1.1.dist-info/METADATA,sha256=MJlowdgjb70PcajgjzZeB2HtG7K4C25-DmKygEixXIM,1935
3
+ brk_client-0.1.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4
+ brk_client-0.1.1.dist-info/RECORD,,
@@ -1,4 +0,0 @@
1
- brk_client/__init__.py,sha256=KNVXeG83EvnqtRcXuDhUnB18SfLccYclPYBb8emFVDE,270747
2
- brk_client-0.1.0b1.dist-info/METADATA,sha256=SQ7dQ1bqLvNmaOmn8YlLQn-98On24luSeZE9m2kaTMY,1924
3
- brk_client-0.1.0b1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4
- brk_client-0.1.0b1.dist-info/RECORD,,