brk-client 0.1.0__py3-none-any.whl → 0.1.0a3__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
@@ -1,10 +1,7 @@
1
1
  # Auto-generated BRK Python client
2
2
  # Do not edit manually
3
3
 
4
- from __future__ import annotations
5
-
6
4
  import json
7
- from dataclasses import dataclass
8
5
  from http.client import HTTPConnection, HTTPSConnection
9
6
  from typing import (
10
7
  Any,
@@ -284,23 +281,14 @@ PoolSlug = Literal[
284
281
  QuarterIndex = int
285
282
  # Transaction locktime
286
283
  RawLockTime = int
287
- # Fractional satoshis (f64) - for representing USD prices in sats
288
- #
289
- # Formula: `sats_fract = usd_value * 100_000_000 / btc_price`
290
- #
291
- # When BTC is $100,000:
292
- # - $1 = 1,000 sats
293
- # - $0.001 = 1 sat
294
- # - $0.0001 = 0.1 sats (fractional)
295
- SatsFract = float
296
284
  SemesterIndex = int
297
- # Fixed-size boolean value optimized for on-disk storage (stored as u8)
285
+ # Fixed-size boolean value optimized for on-disk storage (stored as u16)
298
286
  StoredBool = int
299
287
  # Stored 32-bit floating point value
300
288
  StoredF32 = float
301
289
  # Fixed-size 64-bit floating point value optimized for on-disk storage
302
290
  StoredF64 = float
303
- StoredI8 = int
291
+ StoredI16 = int
304
292
  StoredU16 = int
305
293
  # Fixed-size 32-bit unsigned integer optimized for on-disk storage
306
294
  StoredU32 = int
@@ -352,7 +340,6 @@ Index = Literal[
352
340
  "yearindex",
353
341
  "loadedaddressindex",
354
342
  "emptyaddressindex",
355
- "pairoutputindex",
356
343
  ]
357
344
  # Hierarchical tree node for organizing metrics into categories
358
345
  TreeNode = Union[dict[str, "TreeNode"], "MetricLeafWithSchema"]
@@ -1383,15 +1370,12 @@ def _p(prefix: str, acc: str) -> str:
1383
1370
  return f"{prefix}_{acc}" if acc else prefix
1384
1371
 
1385
1372
 
1386
- @dataclass
1387
- class MetricData(Generic[T]):
1373
+ class MetricData(TypedDict, Generic[T]):
1388
1374
  """Metric data with range information."""
1389
1375
 
1390
- version: int
1391
1376
  total: int
1392
1377
  start: int
1393
1378
  end: int
1394
- stamp: str
1395
1379
  data: List[T]
1396
1380
 
1397
1381
 
@@ -1437,9 +1421,8 @@ class _EndpointConfig:
1437
1421
  p = self.path()
1438
1422
  return f"{p}?{query}" if query else p
1439
1423
 
1440
- def get_json(self) -> MetricData:
1441
- data = self.client.get_json(self._build_path())
1442
- return MetricData(**data)
1424
+ def get_json(self) -> Any:
1425
+ return self.client.get_json(self._build_path())
1443
1426
 
1444
1427
  def get_csv(self) -> str:
1445
1428
  return self.client.get_text(self._build_path(format="csv"))
@@ -1698,7 +1681,7 @@ _i31 = ("loadedaddressindex",)
1698
1681
  _i32 = ("emptyaddressindex",)
1699
1682
 
1700
1683
 
1701
- def _ep(c: BrkClientBase, n: str, i: Index) -> MetricEndpointBuilder[Any]:
1684
+ def _ep(c: BrkClientBase, n: str, i: Index) -> MetricEndpointBuilder:
1702
1685
  return MetricEndpointBuilder(c, n, i)
1703
1686
 
1704
1687
 
@@ -1738,8 +1721,6 @@ class _MetricPattern1By(Generic[T]):
1738
1721
 
1739
1722
 
1740
1723
  class MetricPattern1(Generic[T]):
1741
- by: _MetricPattern1By[T]
1742
-
1743
1724
  def __init__(self, c: BrkClientBase, n: str):
1744
1725
  self._n, self.by = n, _MetricPattern1By(c, n)
1745
1726
 
@@ -1784,8 +1765,6 @@ class _MetricPattern2By(Generic[T]):
1784
1765
 
1785
1766
 
1786
1767
  class MetricPattern2(Generic[T]):
1787
- by: _MetricPattern2By[T]
1788
-
1789
1768
  def __init__(self, c: BrkClientBase, n: str):
1790
1769
  self._n, self.by = n, _MetricPattern2By(c, n)
1791
1770
 
@@ -1830,8 +1809,6 @@ class _MetricPattern3By(Generic[T]):
1830
1809
 
1831
1810
 
1832
1811
  class MetricPattern3(Generic[T]):
1833
- by: _MetricPattern3By[T]
1834
-
1835
1812
  def __init__(self, c: BrkClientBase, n: str):
1836
1813
  self._n, self.by = n, _MetricPattern3By(c, n)
1837
1814
 
@@ -1873,8 +1850,6 @@ class _MetricPattern4By(Generic[T]):
1873
1850
 
1874
1851
 
1875
1852
  class MetricPattern4(Generic[T]):
1876
- by: _MetricPattern4By[T]
1877
-
1878
1853
  def __init__(self, c: BrkClientBase, n: str):
1879
1854
  self._n, self.by = n, _MetricPattern4By(c, n)
1880
1855
 
@@ -1901,8 +1876,6 @@ class _MetricPattern5By(Generic[T]):
1901
1876
 
1902
1877
 
1903
1878
  class MetricPattern5(Generic[T]):
1904
- by: _MetricPattern5By[T]
1905
-
1906
1879
  def __init__(self, c: BrkClientBase, n: str):
1907
1880
  self._n, self.by = n, _MetricPattern5By(c, n)
1908
1881
 
@@ -1926,8 +1899,6 @@ class _MetricPattern6By(Generic[T]):
1926
1899
 
1927
1900
 
1928
1901
  class MetricPattern6(Generic[T]):
1929
- by: _MetricPattern6By[T]
1930
-
1931
1902
  def __init__(self, c: BrkClientBase, n: str):
1932
1903
  self._n, self.by = n, _MetricPattern6By(c, n)
1933
1904
 
@@ -1951,8 +1922,6 @@ class _MetricPattern7By(Generic[T]):
1951
1922
 
1952
1923
 
1953
1924
  class MetricPattern7(Generic[T]):
1954
- by: _MetricPattern7By[T]
1955
-
1956
1925
  def __init__(self, c: BrkClientBase, n: str):
1957
1926
  self._n, self.by = n, _MetricPattern7By(c, n)
1958
1927
 
@@ -1976,8 +1945,6 @@ class _MetricPattern8By(Generic[T]):
1976
1945
 
1977
1946
 
1978
1947
  class MetricPattern8(Generic[T]):
1979
- by: _MetricPattern8By[T]
1980
-
1981
1948
  def __init__(self, c: BrkClientBase, n: str):
1982
1949
  self._n, self.by = n, _MetricPattern8By(c, n)
1983
1950
 
@@ -2001,8 +1968,6 @@ class _MetricPattern9By(Generic[T]):
2001
1968
 
2002
1969
 
2003
1970
  class MetricPattern9(Generic[T]):
2004
- by: _MetricPattern9By[T]
2005
-
2006
1971
  def __init__(self, c: BrkClientBase, n: str):
2007
1972
  self._n, self.by = n, _MetricPattern9By(c, n)
2008
1973
 
@@ -2026,8 +1991,6 @@ class _MetricPattern10By(Generic[T]):
2026
1991
 
2027
1992
 
2028
1993
  class MetricPattern10(Generic[T]):
2029
- by: _MetricPattern10By[T]
2030
-
2031
1994
  def __init__(self, c: BrkClientBase, n: str):
2032
1995
  self._n, self.by = n, _MetricPattern10By(c, n)
2033
1996
 
@@ -2051,8 +2014,6 @@ class _MetricPattern11By(Generic[T]):
2051
2014
 
2052
2015
 
2053
2016
  class MetricPattern11(Generic[T]):
2054
- by: _MetricPattern11By[T]
2055
-
2056
2017
  def __init__(self, c: BrkClientBase, n: str):
2057
2018
  self._n, self.by = n, _MetricPattern11By(c, n)
2058
2019
 
@@ -2076,8 +2037,6 @@ class _MetricPattern12By(Generic[T]):
2076
2037
 
2077
2038
 
2078
2039
  class MetricPattern12(Generic[T]):
2079
- by: _MetricPattern12By[T]
2080
-
2081
2040
  def __init__(self, c: BrkClientBase, n: str):
2082
2041
  self._n, self.by = n, _MetricPattern12By(c, n)
2083
2042
 
@@ -2101,8 +2060,6 @@ class _MetricPattern13By(Generic[T]):
2101
2060
 
2102
2061
 
2103
2062
  class MetricPattern13(Generic[T]):
2104
- by: _MetricPattern13By[T]
2105
-
2106
2063
  def __init__(self, c: BrkClientBase, n: str):
2107
2064
  self._n, self.by = n, _MetricPattern13By(c, n)
2108
2065
 
@@ -2126,8 +2083,6 @@ class _MetricPattern14By(Generic[T]):
2126
2083
 
2127
2084
 
2128
2085
  class MetricPattern14(Generic[T]):
2129
- by: _MetricPattern14By[T]
2130
-
2131
2086
  def __init__(self, c: BrkClientBase, n: str):
2132
2087
  self._n, self.by = n, _MetricPattern14By(c, n)
2133
2088
 
@@ -2151,8 +2106,6 @@ class _MetricPattern15By(Generic[T]):
2151
2106
 
2152
2107
 
2153
2108
  class MetricPattern15(Generic[T]):
2154
- by: _MetricPattern15By[T]
2155
-
2156
2109
  def __init__(self, c: BrkClientBase, n: str):
2157
2110
  self._n, self.by = n, _MetricPattern15By(c, n)
2158
2111
 
@@ -2176,8 +2129,6 @@ class _MetricPattern16By(Generic[T]):
2176
2129
 
2177
2130
 
2178
2131
  class MetricPattern16(Generic[T]):
2179
- by: _MetricPattern16By[T]
2180
-
2181
2132
  def __init__(self, c: BrkClientBase, n: str):
2182
2133
  self._n, self.by = n, _MetricPattern16By(c, n)
2183
2134
 
@@ -2201,8 +2152,6 @@ class _MetricPattern17By(Generic[T]):
2201
2152
 
2202
2153
 
2203
2154
  class MetricPattern17(Generic[T]):
2204
- by: _MetricPattern17By[T]
2205
-
2206
2155
  def __init__(self, c: BrkClientBase, n: str):
2207
2156
  self._n, self.by = n, _MetricPattern17By(c, n)
2208
2157
 
@@ -2226,8 +2175,6 @@ class _MetricPattern18By(Generic[T]):
2226
2175
 
2227
2176
 
2228
2177
  class MetricPattern18(Generic[T]):
2229
- by: _MetricPattern18By[T]
2230
-
2231
2178
  def __init__(self, c: BrkClientBase, n: str):
2232
2179
  self._n, self.by = n, _MetricPattern18By(c, n)
2233
2180
 
@@ -2251,8 +2198,6 @@ class _MetricPattern19By(Generic[T]):
2251
2198
 
2252
2199
 
2253
2200
  class MetricPattern19(Generic[T]):
2254
- by: _MetricPattern19By[T]
2255
-
2256
2201
  def __init__(self, c: BrkClientBase, n: str):
2257
2202
  self._n, self.by = n, _MetricPattern19By(c, n)
2258
2203
 
@@ -2276,8 +2221,6 @@ class _MetricPattern20By(Generic[T]):
2276
2221
 
2277
2222
 
2278
2223
  class MetricPattern20(Generic[T]):
2279
- by: _MetricPattern20By[T]
2280
-
2281
2224
  def __init__(self, c: BrkClientBase, n: str):
2282
2225
  self._n, self.by = n, _MetricPattern20By(c, n)
2283
2226
 
@@ -2301,8 +2244,6 @@ class _MetricPattern21By(Generic[T]):
2301
2244
 
2302
2245
 
2303
2246
  class MetricPattern21(Generic[T]):
2304
- by: _MetricPattern21By[T]
2305
-
2306
2247
  def __init__(self, c: BrkClientBase, n: str):
2307
2248
  self._n, self.by = n, _MetricPattern21By(c, n)
2308
2249
 
@@ -2326,8 +2267,6 @@ class _MetricPattern22By(Generic[T]):
2326
2267
 
2327
2268
 
2328
2269
  class MetricPattern22(Generic[T]):
2329
- by: _MetricPattern22By[T]
2330
-
2331
2270
  def __init__(self, c: BrkClientBase, n: str):
2332
2271
  self._n, self.by = n, _MetricPattern22By(c, n)
2333
2272
 
@@ -2351,8 +2290,6 @@ class _MetricPattern23By(Generic[T]):
2351
2290
 
2352
2291
 
2353
2292
  class MetricPattern23(Generic[T]):
2354
- by: _MetricPattern23By[T]
2355
-
2356
2293
  def __init__(self, c: BrkClientBase, n: str):
2357
2294
  self._n, self.by = n, _MetricPattern23By(c, n)
2358
2295
 
@@ -2376,8 +2313,6 @@ class _MetricPattern24By(Generic[T]):
2376
2313
 
2377
2314
 
2378
2315
  class MetricPattern24(Generic[T]):
2379
- by: _MetricPattern24By[T]
2380
-
2381
2316
  def __init__(self, c: BrkClientBase, n: str):
2382
2317
  self._n, self.by = n, _MetricPattern24By(c, n)
2383
2318
 
@@ -2401,8 +2336,6 @@ class _MetricPattern25By(Generic[T]):
2401
2336
 
2402
2337
 
2403
2338
  class MetricPattern25(Generic[T]):
2404
- by: _MetricPattern25By[T]
2405
-
2406
2339
  def __init__(self, c: BrkClientBase, n: str):
2407
2340
  self._n, self.by = n, _MetricPattern25By(c, n)
2408
2341
 
@@ -2426,8 +2359,6 @@ class _MetricPattern26By(Generic[T]):
2426
2359
 
2427
2360
 
2428
2361
  class MetricPattern26(Generic[T]):
2429
- by: _MetricPattern26By[T]
2430
-
2431
2362
  def __init__(self, c: BrkClientBase, n: str):
2432
2363
  self._n, self.by = n, _MetricPattern26By(c, n)
2433
2364
 
@@ -2451,8 +2382,6 @@ class _MetricPattern27By(Generic[T]):
2451
2382
 
2452
2383
 
2453
2384
  class MetricPattern27(Generic[T]):
2454
- by: _MetricPattern27By[T]
2455
-
2456
2385
  def __init__(self, c: BrkClientBase, n: str):
2457
2386
  self._n, self.by = n, _MetricPattern27By(c, n)
2458
2387
 
@@ -2476,8 +2405,6 @@ class _MetricPattern28By(Generic[T]):
2476
2405
 
2477
2406
 
2478
2407
  class MetricPattern28(Generic[T]):
2479
- by: _MetricPattern28By[T]
2480
-
2481
2408
  def __init__(self, c: BrkClientBase, n: str):
2482
2409
  self._n, self.by = n, _MetricPattern28By(c, n)
2483
2410
 
@@ -2501,8 +2428,6 @@ class _MetricPattern29By(Generic[T]):
2501
2428
 
2502
2429
 
2503
2430
  class MetricPattern29(Generic[T]):
2504
- by: _MetricPattern29By[T]
2505
-
2506
2431
  def __init__(self, c: BrkClientBase, n: str):
2507
2432
  self._n, self.by = n, _MetricPattern29By(c, n)
2508
2433
 
@@ -2526,8 +2451,6 @@ class _MetricPattern30By(Generic[T]):
2526
2451
 
2527
2452
 
2528
2453
  class MetricPattern30(Generic[T]):
2529
- by: _MetricPattern30By[T]
2530
-
2531
2454
  def __init__(self, c: BrkClientBase, n: str):
2532
2455
  self._n, self.by = n, _MetricPattern30By(c, n)
2533
2456
 
@@ -2551,8 +2474,6 @@ class _MetricPattern31By(Generic[T]):
2551
2474
 
2552
2475
 
2553
2476
  class MetricPattern31(Generic[T]):
2554
- by: _MetricPattern31By[T]
2555
-
2556
2477
  def __init__(self, c: BrkClientBase, n: str):
2557
2478
  self._n, self.by = n, _MetricPattern31By(c, n)
2558
2479
 
@@ -2576,8 +2497,6 @@ class _MetricPattern32By(Generic[T]):
2576
2497
 
2577
2498
 
2578
2499
  class MetricPattern32(Generic[T]):
2579
- by: _MetricPattern32By[T]
2580
-
2581
2500
  def __init__(self, c: BrkClientBase, n: str):
2582
2501
  self._n, self.by = n, _MetricPattern32By(c, n)
2583
2502
 
@@ -2653,7 +2572,7 @@ class RealizedPattern3:
2653
2572
  self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = (
2654
2573
  BlockCountPattern(client, _m(acc, "realized_loss_rel_to_realized_cap"))
2655
2574
  )
2656
- self.realized_price: ActivePricePattern = ActivePricePattern(
2575
+ self.realized_price: MetricPattern1[Dollars] = MetricPattern1(
2657
2576
  client, _m(acc, "realized_price")
2658
2577
  )
2659
2578
  self.realized_price_extra: ActivePriceRatioPattern = ActivePriceRatioPattern(
@@ -2753,7 +2672,7 @@ class RealizedPattern4:
2753
2672
  self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = (
2754
2673
  BlockCountPattern(client, _m(acc, "realized_loss_rel_to_realized_cap"))
2755
2674
  )
2756
- self.realized_price: ActivePricePattern = ActivePricePattern(
2675
+ self.realized_price: MetricPattern1[Dollars] = MetricPattern1(
2757
2676
  client, _m(acc, "realized_price")
2758
2677
  )
2759
2678
  self.realized_price_extra: RealizedPriceExtraPattern = (
@@ -2800,43 +2719,69 @@ class Ratio1ySdPattern:
2800
2719
 
2801
2720
  def __init__(self, client: BrkClientBase, acc: str):
2802
2721
  """Create pattern node with accumulated metric name."""
2803
- self._0sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "0sd_usd"))
2722
+ self._0sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2723
+ client, _m(acc, "0sd_usd")
2724
+ )
2804
2725
  self.m0_5sd: MetricPattern4[StoredF32] = MetricPattern4(
2805
2726
  client, _m(acc, "m0_5sd")
2806
2727
  )
2807
- self.m0_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "m0_5sd_usd"))
2728
+ self.m0_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2729
+ client, _m(acc, "m0_5sd_usd")
2730
+ )
2808
2731
  self.m1_5sd: MetricPattern4[StoredF32] = MetricPattern4(
2809
2732
  client, _m(acc, "m1_5sd")
2810
2733
  )
2811
- self.m1_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "m1_5sd_usd"))
2734
+ self.m1_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2735
+ client, _m(acc, "m1_5sd_usd")
2736
+ )
2812
2737
  self.m1sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "m1sd"))
2813
- self.m1sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "m1sd_usd"))
2738
+ self.m1sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2739
+ client, _m(acc, "m1sd_usd")
2740
+ )
2814
2741
  self.m2_5sd: MetricPattern4[StoredF32] = MetricPattern4(
2815
2742
  client, _m(acc, "m2_5sd")
2816
2743
  )
2817
- self.m2_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "m2_5sd_usd"))
2744
+ self.m2_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2745
+ client, _m(acc, "m2_5sd_usd")
2746
+ )
2818
2747
  self.m2sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "m2sd"))
2819
- self.m2sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "m2sd_usd"))
2748
+ self.m2sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2749
+ client, _m(acc, "m2sd_usd")
2750
+ )
2820
2751
  self.m3sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "m3sd"))
2821
- self.m3sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "m3sd_usd"))
2752
+ self.m3sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2753
+ client, _m(acc, "m3sd_usd")
2754
+ )
2822
2755
  self.p0_5sd: MetricPattern4[StoredF32] = MetricPattern4(
2823
2756
  client, _m(acc, "p0_5sd")
2824
2757
  )
2825
- self.p0_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "p0_5sd_usd"))
2758
+ self.p0_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2759
+ client, _m(acc, "p0_5sd_usd")
2760
+ )
2826
2761
  self.p1_5sd: MetricPattern4[StoredF32] = MetricPattern4(
2827
2762
  client, _m(acc, "p1_5sd")
2828
2763
  )
2829
- self.p1_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "p1_5sd_usd"))
2764
+ self.p1_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2765
+ client, _m(acc, "p1_5sd_usd")
2766
+ )
2830
2767
  self.p1sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "p1sd"))
2831
- self.p1sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "p1sd_usd"))
2768
+ self.p1sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2769
+ client, _m(acc, "p1sd_usd")
2770
+ )
2832
2771
  self.p2_5sd: MetricPattern4[StoredF32] = MetricPattern4(
2833
2772
  client, _m(acc, "p2_5sd")
2834
2773
  )
2835
- self.p2_5sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "p2_5sd_usd"))
2774
+ self.p2_5sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2775
+ client, _m(acc, "p2_5sd_usd")
2776
+ )
2836
2777
  self.p2sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "p2sd"))
2837
- self.p2sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "p2sd_usd"))
2778
+ self.p2sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2779
+ client, _m(acc, "p2sd_usd")
2780
+ )
2838
2781
  self.p3sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "p3sd"))
2839
- self.p3sd_usd: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "p3sd_usd"))
2782
+ self.p3sd_usd: MetricPattern4[Dollars] = MetricPattern4(
2783
+ client, _m(acc, "p3sd_usd")
2784
+ )
2840
2785
  self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "sd"))
2841
2786
  self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "sma"))
2842
2787
  self.zscore: MetricPattern4[StoredF32] = MetricPattern4(
@@ -2887,7 +2832,7 @@ class RealizedPattern2:
2887
2832
  self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = (
2888
2833
  BlockCountPattern(client, _m(acc, "realized_loss_rel_to_realized_cap"))
2889
2834
  )
2890
- self.realized_price: ActivePricePattern = ActivePricePattern(
2835
+ self.realized_price: MetricPattern1[Dollars] = MetricPattern1(
2891
2836
  client, _m(acc, "realized_price")
2892
2837
  )
2893
2838
  self.realized_price_extra: ActivePriceRatioPattern = ActivePriceRatioPattern(
@@ -2972,7 +2917,7 @@ class RealizedPattern:
2972
2917
  self.realized_loss_rel_to_realized_cap: BlockCountPattern[StoredF32] = (
2973
2918
  BlockCountPattern(client, _m(acc, "realized_loss_rel_to_realized_cap"))
2974
2919
  )
2975
- self.realized_price: ActivePricePattern = ActivePricePattern(
2920
+ self.realized_price: MetricPattern1[Dollars] = MetricPattern1(
2976
2921
  client, _m(acc, "realized_price")
2977
2922
  )
2978
2923
  self.realized_price_extra: RealizedPriceExtraPattern = (
@@ -3019,7 +2964,7 @@ class Price111dSmaPattern:
3019
2964
 
3020
2965
  def __init__(self, client: BrkClientBase, acc: str):
3021
2966
  """Create pattern node with accumulated metric name."""
3022
- self.price: _0sdUsdPattern = _0sdUsdPattern(client, acc)
2967
+ self.price: MetricPattern4[Dollars] = MetricPattern4(client, acc)
3023
2968
  self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "ratio"))
3024
2969
  self.ratio_1m_sma: MetricPattern4[StoredF32] = MetricPattern4(
3025
2970
  client, _m(acc, "ratio_1m_sma")
@@ -3039,68 +2984,42 @@ class Price111dSmaPattern:
3039
2984
  self.ratio_pct1: MetricPattern4[StoredF32] = MetricPattern4(
3040
2985
  client, _m(acc, "ratio_pct1")
3041
2986
  )
3042
- self.ratio_pct1_usd: _0sdUsdPattern = _0sdUsdPattern(
2987
+ self.ratio_pct1_usd: MetricPattern4[Dollars] = MetricPattern4(
3043
2988
  client, _m(acc, "ratio_pct1_usd")
3044
2989
  )
3045
2990
  self.ratio_pct2: MetricPattern4[StoredF32] = MetricPattern4(
3046
2991
  client, _m(acc, "ratio_pct2")
3047
2992
  )
3048
- self.ratio_pct2_usd: _0sdUsdPattern = _0sdUsdPattern(
2993
+ self.ratio_pct2_usd: MetricPattern4[Dollars] = MetricPattern4(
3049
2994
  client, _m(acc, "ratio_pct2_usd")
3050
2995
  )
3051
2996
  self.ratio_pct5: MetricPattern4[StoredF32] = MetricPattern4(
3052
2997
  client, _m(acc, "ratio_pct5")
3053
2998
  )
3054
- self.ratio_pct5_usd: _0sdUsdPattern = _0sdUsdPattern(
2999
+ self.ratio_pct5_usd: MetricPattern4[Dollars] = MetricPattern4(
3055
3000
  client, _m(acc, "ratio_pct5_usd")
3056
3001
  )
3057
3002
  self.ratio_pct95: MetricPattern4[StoredF32] = MetricPattern4(
3058
3003
  client, _m(acc, "ratio_pct95")
3059
3004
  )
3060
- self.ratio_pct95_usd: _0sdUsdPattern = _0sdUsdPattern(
3005
+ self.ratio_pct95_usd: MetricPattern4[Dollars] = MetricPattern4(
3061
3006
  client, _m(acc, "ratio_pct95_usd")
3062
3007
  )
3063
3008
  self.ratio_pct98: MetricPattern4[StoredF32] = MetricPattern4(
3064
3009
  client, _m(acc, "ratio_pct98")
3065
3010
  )
3066
- self.ratio_pct98_usd: _0sdUsdPattern = _0sdUsdPattern(
3011
+ self.ratio_pct98_usd: MetricPattern4[Dollars] = MetricPattern4(
3067
3012
  client, _m(acc, "ratio_pct98_usd")
3068
3013
  )
3069
3014
  self.ratio_pct99: MetricPattern4[StoredF32] = MetricPattern4(
3070
3015
  client, _m(acc, "ratio_pct99")
3071
3016
  )
3072
- self.ratio_pct99_usd: _0sdUsdPattern = _0sdUsdPattern(
3017
+ self.ratio_pct99_usd: MetricPattern4[Dollars] = MetricPattern4(
3073
3018
  client, _m(acc, "ratio_pct99_usd")
3074
3019
  )
3075
3020
  self.ratio_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, "ratio"))
3076
3021
 
3077
3022
 
3078
- class PercentilesPattern:
3079
- """Pattern struct for repeated tree structure."""
3080
-
3081
- def __init__(self, client: BrkClientBase, acc: str):
3082
- """Create pattern node with accumulated metric name."""
3083
- self.pct05: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct05"))
3084
- self.pct10: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct10"))
3085
- self.pct15: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct15"))
3086
- self.pct20: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct20"))
3087
- self.pct25: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct25"))
3088
- self.pct30: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct30"))
3089
- self.pct35: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct35"))
3090
- self.pct40: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct40"))
3091
- self.pct45: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct45"))
3092
- self.pct50: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct50"))
3093
- self.pct55: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct55"))
3094
- self.pct60: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct60"))
3095
- self.pct65: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct65"))
3096
- self.pct70: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct70"))
3097
- self.pct75: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct75"))
3098
- self.pct80: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct80"))
3099
- self.pct85: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct85"))
3100
- self.pct90: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct90"))
3101
- self.pct95: _0sdUsdPattern = _0sdUsdPattern(client, _m(acc, "pct95"))
3102
-
3103
-
3104
3023
  class ActivePriceRatioPattern:
3105
3024
  """Pattern struct for repeated tree structure."""
3106
3025
 
@@ -3119,42 +3038,68 @@ class ActivePriceRatioPattern:
3119
3038
  self.ratio_pct1: MetricPattern4[StoredF32] = MetricPattern4(
3120
3039
  client, _m(acc, "pct1")
3121
3040
  )
3122
- self.ratio_pct1_usd: _0sdUsdPattern = _0sdUsdPattern(
3041
+ self.ratio_pct1_usd: MetricPattern4[Dollars] = MetricPattern4(
3123
3042
  client, _m(acc, "pct1_usd")
3124
3043
  )
3125
3044
  self.ratio_pct2: MetricPattern4[StoredF32] = MetricPattern4(
3126
3045
  client, _m(acc, "pct2")
3127
3046
  )
3128
- self.ratio_pct2_usd: _0sdUsdPattern = _0sdUsdPattern(
3047
+ self.ratio_pct2_usd: MetricPattern4[Dollars] = MetricPattern4(
3129
3048
  client, _m(acc, "pct2_usd")
3130
3049
  )
3131
3050
  self.ratio_pct5: MetricPattern4[StoredF32] = MetricPattern4(
3132
3051
  client, _m(acc, "pct5")
3133
3052
  )
3134
- self.ratio_pct5_usd: _0sdUsdPattern = _0sdUsdPattern(
3053
+ self.ratio_pct5_usd: MetricPattern4[Dollars] = MetricPattern4(
3135
3054
  client, _m(acc, "pct5_usd")
3136
3055
  )
3137
3056
  self.ratio_pct95: MetricPattern4[StoredF32] = MetricPattern4(
3138
3057
  client, _m(acc, "pct95")
3139
3058
  )
3140
- self.ratio_pct95_usd: _0sdUsdPattern = _0sdUsdPattern(
3059
+ self.ratio_pct95_usd: MetricPattern4[Dollars] = MetricPattern4(
3141
3060
  client, _m(acc, "pct95_usd")
3142
3061
  )
3143
3062
  self.ratio_pct98: MetricPattern4[StoredF32] = MetricPattern4(
3144
3063
  client, _m(acc, "pct98")
3145
3064
  )
3146
- self.ratio_pct98_usd: _0sdUsdPattern = _0sdUsdPattern(
3065
+ self.ratio_pct98_usd: MetricPattern4[Dollars] = MetricPattern4(
3147
3066
  client, _m(acc, "pct98_usd")
3148
3067
  )
3149
3068
  self.ratio_pct99: MetricPattern4[StoredF32] = MetricPattern4(
3150
3069
  client, _m(acc, "pct99")
3151
3070
  )
3152
- self.ratio_pct99_usd: _0sdUsdPattern = _0sdUsdPattern(
3071
+ self.ratio_pct99_usd: MetricPattern4[Dollars] = MetricPattern4(
3153
3072
  client, _m(acc, "pct99_usd")
3154
3073
  )
3155
3074
  self.ratio_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, acc)
3156
3075
 
3157
3076
 
3077
+ class PercentilesPattern:
3078
+ """Pattern struct for repeated tree structure."""
3079
+
3080
+ def __init__(self, client: BrkClientBase, acc: str):
3081
+ """Create pattern node with accumulated metric name."""
3082
+ self.pct05: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct05"))
3083
+ self.pct10: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct10"))
3084
+ self.pct15: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct15"))
3085
+ self.pct20: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct20"))
3086
+ self.pct25: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct25"))
3087
+ self.pct30: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct30"))
3088
+ self.pct35: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct35"))
3089
+ self.pct40: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct40"))
3090
+ self.pct45: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct45"))
3091
+ self.pct50: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct50"))
3092
+ self.pct55: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct55"))
3093
+ self.pct60: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct60"))
3094
+ self.pct65: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct65"))
3095
+ self.pct70: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct70"))
3096
+ self.pct75: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct75"))
3097
+ self.pct80: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct80"))
3098
+ self.pct85: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct85"))
3099
+ self.pct90: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct90"))
3100
+ self.pct95: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "pct95"))
3101
+
3102
+
3158
3103
  class RelativePattern5:
3159
3104
  """Pattern struct for repeated tree structure."""
3160
3105
 
@@ -3256,9 +3201,6 @@ class AaopoolPattern:
3256
3201
  self.blocks_mined: BlockCountPattern[StoredU32] = BlockCountPattern(
3257
3202
  client, _m(acc, "blocks_mined")
3258
3203
  )
3259
- self.blocks_since_block: MetricPattern1[StoredU32] = MetricPattern1(
3260
- client, _m(acc, "blocks_since_block")
3261
- )
3262
3204
  self.coinbase: CoinbasePattern2 = CoinbasePattern2(client, _m(acc, "coinbase"))
3263
3205
  self.days_since_block: MetricPattern4[StoredU16] = MetricPattern4(
3264
3206
  client, _m(acc, "days_since_block")
@@ -3274,6 +3216,26 @@ class AaopoolPattern:
3274
3216
  )
3275
3217
 
3276
3218
 
3219
+ class LookbackPattern(Generic[T]):
3220
+ """Pattern struct for repeated tree structure."""
3221
+
3222
+ def __init__(self, client: BrkClientBase, acc: str):
3223
+ """Create pattern node with accumulated metric name."""
3224
+ self._10y: MetricPattern4[T] = MetricPattern4(client, _m(acc, "10y_ago"))
3225
+ self._1d: MetricPattern4[T] = MetricPattern4(client, _m(acc, "1d_ago"))
3226
+ self._1m: MetricPattern4[T] = MetricPattern4(client, _m(acc, "1m_ago"))
3227
+ self._1w: MetricPattern4[T] = MetricPattern4(client, _m(acc, "1w_ago"))
3228
+ self._1y: MetricPattern4[T] = MetricPattern4(client, _m(acc, "1y_ago"))
3229
+ self._2y: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2y_ago"))
3230
+ self._3m: MetricPattern4[T] = MetricPattern4(client, _m(acc, "3m_ago"))
3231
+ self._3y: MetricPattern4[T] = MetricPattern4(client, _m(acc, "3y_ago"))
3232
+ self._4y: MetricPattern4[T] = MetricPattern4(client, _m(acc, "4y_ago"))
3233
+ self._5y: MetricPattern4[T] = MetricPattern4(client, _m(acc, "5y_ago"))
3234
+ self._6m: MetricPattern4[T] = MetricPattern4(client, _m(acc, "6m_ago"))
3235
+ self._6y: MetricPattern4[T] = MetricPattern4(client, _m(acc, "6y_ago"))
3236
+ self._8y: MetricPattern4[T] = MetricPattern4(client, _m(acc, "8y_ago"))
3237
+
3238
+
3277
3239
  class PeriodLumpSumStackPattern:
3278
3240
  """Pattern struct for repeated tree structure."""
3279
3241
 
@@ -3293,7 +3255,7 @@ class PeriodLumpSumStackPattern:
3293
3255
  self._8y: _2015Pattern = _2015Pattern(client, _p("8y", acc))
3294
3256
 
3295
3257
 
3296
- class PeriodDaysInLossPattern(Generic[T]):
3258
+ class PeriodAveragePricePattern(Generic[T]):
3297
3259
  """Pattern struct for repeated tree structure."""
3298
3260
 
3299
3261
  def __init__(self, client: BrkClientBase, acc: str):
@@ -3312,49 +3274,6 @@ class PeriodDaysInLossPattern(Generic[T]):
3312
3274
  self._8y: MetricPattern4[T] = MetricPattern4(client, _p("8y", acc))
3313
3275
 
3314
3276
 
3315
- class ClassDaysInLossPattern(Generic[T]):
3316
- """Pattern struct for repeated tree structure."""
3317
-
3318
- def __init__(self, client: BrkClientBase, acc: str):
3319
- """Create pattern node with accumulated metric name."""
3320
- self._2015: MetricPattern4[T] = MetricPattern4(
3321
- client, _m(acc, "2015_max_drawdown")
3322
- )
3323
- self._2016: MetricPattern4[T] = MetricPattern4(
3324
- client, _m(acc, "2016_max_drawdown")
3325
- )
3326
- self._2017: MetricPattern4[T] = MetricPattern4(
3327
- client, _m(acc, "2017_max_drawdown")
3328
- )
3329
- self._2018: MetricPattern4[T] = MetricPattern4(
3330
- client, _m(acc, "2018_max_drawdown")
3331
- )
3332
- self._2019: MetricPattern4[T] = MetricPattern4(
3333
- client, _m(acc, "2019_max_drawdown")
3334
- )
3335
- self._2020: MetricPattern4[T] = MetricPattern4(
3336
- client, _m(acc, "2020_max_drawdown")
3337
- )
3338
- self._2021: MetricPattern4[T] = MetricPattern4(
3339
- client, _m(acc, "2021_max_drawdown")
3340
- )
3341
- self._2022: MetricPattern4[T] = MetricPattern4(
3342
- client, _m(acc, "2022_max_drawdown")
3343
- )
3344
- self._2023: MetricPattern4[T] = MetricPattern4(
3345
- client, _m(acc, "2023_max_drawdown")
3346
- )
3347
- self._2024: MetricPattern4[T] = MetricPattern4(
3348
- client, _m(acc, "2024_max_drawdown")
3349
- )
3350
- self._2025: MetricPattern4[T] = MetricPattern4(
3351
- client, _m(acc, "2025_max_drawdown")
3352
- )
3353
- self._2026: MetricPattern4[T] = MetricPattern4(
3354
- client, _m(acc, "2026_max_drawdown")
3355
- )
3356
-
3357
-
3358
3277
  class BitcoinPattern:
3359
3278
  """Pattern struct for repeated tree structure."""
3360
3279
 
@@ -3377,6 +3296,24 @@ class BitcoinPattern:
3377
3296
  self.sum: MetricPattern2[Bitcoin] = MetricPattern2(client, _m(acc, "sum"))
3378
3297
 
3379
3298
 
3299
+ class ClassAveragePricePattern(Generic[T]):
3300
+ """Pattern struct for repeated tree structure."""
3301
+
3302
+ def __init__(self, client: BrkClientBase, acc: str):
3303
+ """Create pattern node with accumulated metric name."""
3304
+ self._2015: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2015_returns"))
3305
+ self._2016: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2016_returns"))
3306
+ self._2017: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2017_returns"))
3307
+ self._2018: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2018_returns"))
3308
+ self._2019: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2019_returns"))
3309
+ self._2020: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2020_returns"))
3310
+ self._2021: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2021_returns"))
3311
+ self._2022: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2022_returns"))
3312
+ self._2023: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2023_returns"))
3313
+ self._2024: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2024_returns"))
3314
+ self._2025: MetricPattern4[T] = MetricPattern4(client, _m(acc, "2025_returns"))
3315
+
3316
+
3380
3317
  class DollarsPattern(Generic[T]):
3381
3318
  """Pattern struct for repeated tree structure."""
3382
3319
 
@@ -3520,22 +3457,6 @@ class AddrCountPattern:
3520
3457
  self.p2wsh: MetricPattern1[StoredU64] = MetricPattern1(client, _p("p2wsh", acc))
3521
3458
 
3522
3459
 
3523
- class FeeRatePattern(Generic[T]):
3524
- """Pattern struct for repeated tree structure."""
3525
-
3526
- def __init__(self, client: BrkClientBase, acc: str):
3527
- """Create pattern node with accumulated metric name."""
3528
- self.average: MetricPattern1[T] = MetricPattern1(client, _m(acc, "average"))
3529
- self.max: MetricPattern1[T] = MetricPattern1(client, _m(acc, "max"))
3530
- self.median: MetricPattern11[T] = MetricPattern11(client, _m(acc, "median"))
3531
- self.min: MetricPattern1[T] = MetricPattern1(client, _m(acc, "min"))
3532
- self.pct10: MetricPattern11[T] = MetricPattern11(client, _m(acc, "pct10"))
3533
- self.pct25: MetricPattern11[T] = MetricPattern11(client, _m(acc, "pct25"))
3534
- self.pct75: MetricPattern11[T] = MetricPattern11(client, _m(acc, "pct75"))
3535
- self.pct90: MetricPattern11[T] = MetricPattern11(client, _m(acc, "pct90"))
3536
- self.txindex: MetricPattern27[T] = MetricPattern27(client, acc)
3537
-
3538
-
3539
3460
  class FullnessPattern(Generic[T]):
3540
3461
  """Pattern struct for repeated tree structure."""
3541
3462
 
@@ -3552,6 +3473,22 @@ class FullnessPattern(Generic[T]):
3552
3473
  self.pct90: MetricPattern6[T] = MetricPattern6(client, _m(acc, "pct90"))
3553
3474
 
3554
3475
 
3476
+ class FeeRatePattern(Generic[T]):
3477
+ """Pattern struct for repeated tree structure."""
3478
+
3479
+ def __init__(self, client: BrkClientBase, acc: str):
3480
+ """Create pattern node with accumulated metric name."""
3481
+ self.average: MetricPattern1[T] = MetricPattern1(client, _m(acc, "average"))
3482
+ self.max: MetricPattern1[T] = MetricPattern1(client, _m(acc, "max"))
3483
+ self.median: MetricPattern11[T] = MetricPattern11(client, _m(acc, "median"))
3484
+ self.min: MetricPattern1[T] = MetricPattern1(client, _m(acc, "min"))
3485
+ self.pct10: MetricPattern11[T] = MetricPattern11(client, _m(acc, "pct10"))
3486
+ self.pct25: MetricPattern11[T] = MetricPattern11(client, _m(acc, "pct25"))
3487
+ self.pct75: MetricPattern11[T] = MetricPattern11(client, _m(acc, "pct75"))
3488
+ self.pct90: MetricPattern11[T] = MetricPattern11(client, _m(acc, "pct90"))
3489
+ self.txindex: MetricPattern27[T] = MetricPattern27(client, acc)
3490
+
3491
+
3555
3492
  class _0satsPattern:
3556
3493
  """Pattern struct for repeated tree structure."""
3557
3494
 
@@ -3569,7 +3506,7 @@ class _0satsPattern:
3569
3506
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
3570
3507
 
3571
3508
 
3572
- class _0satsPattern2:
3509
+ class _100btcPattern:
3573
3510
  """Pattern struct for repeated tree structure."""
3574
3511
 
3575
3512
  def __init__(self, client: BrkClientBase, acc: str):
@@ -3578,7 +3515,7 @@ class _0satsPattern2:
3578
3515
  self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
3579
3516
  self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, "utxo_count"))
3580
3517
  self.realized: RealizedPattern = RealizedPattern(client, acc)
3581
- self.relative: RelativePattern4 = RelativePattern4(client, _m(acc, "supply_in"))
3518
+ self.relative: RelativePattern = RelativePattern(client, acc)
3582
3519
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, "supply"))
3583
3520
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
3584
3521
 
@@ -3597,6 +3534,34 @@ class PeriodCagrPattern:
3597
3534
  self._8y: MetricPattern4[StoredF32] = MetricPattern4(client, _p("8y", acc))
3598
3535
 
3599
3536
 
3537
+ class UnrealizedPattern:
3538
+ """Pattern struct for repeated tree structure."""
3539
+
3540
+ def __init__(self, client: BrkClientBase, acc: str):
3541
+ """Create pattern node with accumulated metric name."""
3542
+ self.neg_unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(
3543
+ client, _m(acc, "neg_unrealized_loss")
3544
+ )
3545
+ self.net_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(
3546
+ client, _m(acc, "net_unrealized_pnl")
3547
+ )
3548
+ self.supply_in_loss: ActiveSupplyPattern = ActiveSupplyPattern(
3549
+ client, _m(acc, "supply_in_loss")
3550
+ )
3551
+ self.supply_in_profit: ActiveSupplyPattern = ActiveSupplyPattern(
3552
+ client, _m(acc, "supply_in_profit")
3553
+ )
3554
+ self.total_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(
3555
+ client, _m(acc, "total_unrealized_pnl")
3556
+ )
3557
+ self.unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(
3558
+ client, _m(acc, "unrealized_loss")
3559
+ )
3560
+ self.unrealized_profit: MetricPattern1[Dollars] = MetricPattern1(
3561
+ client, _m(acc, "unrealized_profit")
3562
+ )
3563
+
3564
+
3600
3565
  class _10yTo12yPattern:
3601
3566
  """Pattern struct for repeated tree structure."""
3602
3567
 
@@ -3611,7 +3576,7 @@ class _10yTo12yPattern:
3611
3576
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
3612
3577
 
3613
3578
 
3614
- class _100btcPattern:
3579
+ class _0satsPattern2:
3615
3580
  """Pattern struct for repeated tree structure."""
3616
3581
 
3617
3582
  def __init__(self, client: BrkClientBase, acc: str):
@@ -3620,7 +3585,7 @@ class _100btcPattern:
3620
3585
  self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
3621
3586
  self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, "utxo_count"))
3622
3587
  self.realized: RealizedPattern = RealizedPattern(client, acc)
3623
- self.relative: RelativePattern = RelativePattern(client, acc)
3588
+ self.relative: RelativePattern4 = RelativePattern4(client, _m(acc, "supply_in"))
3624
3589
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, "supply"))
3625
3590
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
3626
3591
 
@@ -3639,57 +3604,6 @@ class _10yPattern:
3639
3604
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
3640
3605
 
3641
3606
 
3642
- class UnrealizedPattern:
3643
- """Pattern struct for repeated tree structure."""
3644
-
3645
- def __init__(self, client: BrkClientBase, acc: str):
3646
- """Create pattern node with accumulated metric name."""
3647
- self.neg_unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(
3648
- client, _m(acc, "neg_unrealized_loss")
3649
- )
3650
- self.net_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(
3651
- client, _m(acc, "net_unrealized_pnl")
3652
- )
3653
- self.supply_in_loss: ActiveSupplyPattern = ActiveSupplyPattern(
3654
- client, _m(acc, "supply_in_loss")
3655
- )
3656
- self.supply_in_profit: ActiveSupplyPattern = ActiveSupplyPattern(
3657
- client, _m(acc, "supply_in_profit")
3658
- )
3659
- self.total_unrealized_pnl: MetricPattern1[Dollars] = MetricPattern1(
3660
- client, _m(acc, "total_unrealized_pnl")
3661
- )
3662
- self.unrealized_loss: MetricPattern1[Dollars] = MetricPattern1(
3663
- client, _m(acc, "unrealized_loss")
3664
- )
3665
- self.unrealized_profit: MetricPattern1[Dollars] = MetricPattern1(
3666
- client, _m(acc, "unrealized_profit")
3667
- )
3668
-
3669
-
3670
- class AllPattern:
3671
- """Pattern struct for repeated tree structure."""
3672
-
3673
- def __init__(self, client: BrkClientBase, acc: str):
3674
- """Create pattern node with accumulated metric name."""
3675
- self.balance_decreased: FullnessPattern[StoredU32] = FullnessPattern(
3676
- client, _m(acc, "balance_decreased")
3677
- )
3678
- self.balance_increased: FullnessPattern[StoredU32] = FullnessPattern(
3679
- client, _m(acc, "balance_increased")
3680
- )
3681
- self.both: FullnessPattern[StoredU32] = FullnessPattern(client, _m(acc, "both"))
3682
- self.reactivated: FullnessPattern[StoredU32] = FullnessPattern(
3683
- client, _m(acc, "reactivated")
3684
- )
3685
- self.receiving: FullnessPattern[StoredU32] = FullnessPattern(
3686
- client, _m(acc, "receiving")
3687
- )
3688
- self.sending: FullnessPattern[StoredU32] = FullnessPattern(
3689
- client, _m(acc, "sending")
3690
- )
3691
-
3692
-
3693
3607
  class ActivityPattern2:
3694
3608
  """Pattern struct for repeated tree structure."""
3695
3609
 
@@ -3723,30 +3637,24 @@ class SplitPattern2(Generic[T]):
3723
3637
  self.open: MetricPattern1[T] = MetricPattern1(client, _m(acc, "open"))
3724
3638
 
3725
3639
 
3726
- class CoinbasePattern:
3640
+ class _2015Pattern:
3727
3641
  """Pattern struct for repeated tree structure."""
3728
3642
 
3729
3643
  def __init__(self, client: BrkClientBase, acc: str):
3730
3644
  """Create pattern node with accumulated metric name."""
3731
- self.bitcoin: BitcoinPattern = BitcoinPattern(client, _m(acc, "btc"))
3732
- self.dollars: DollarsPattern[Dollars] = DollarsPattern(client, _m(acc, "usd"))
3733
- self.sats: DollarsPattern[Sats] = DollarsPattern(client, acc)
3645
+ self.bitcoin: MetricPattern4[Bitcoin] = MetricPattern4(client, _m(acc, "btc"))
3646
+ self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "usd"))
3647
+ self.sats: MetricPattern4[Sats] = MetricPattern4(client, acc)
3734
3648
 
3735
3649
 
3736
- class CostBasisPattern2:
3650
+ class CoinbasePattern:
3737
3651
  """Pattern struct for repeated tree structure."""
3738
3652
 
3739
3653
  def __init__(self, client: BrkClientBase, acc: str):
3740
3654
  """Create pattern node with accumulated metric name."""
3741
- self.max: ActivePricePattern = ActivePricePattern(
3742
- client, _m(acc, "max_cost_basis")
3743
- )
3744
- self.min: ActivePricePattern = ActivePricePattern(
3745
- client, _m(acc, "min_cost_basis")
3746
- )
3747
- self.percentiles: PercentilesPattern = PercentilesPattern(
3748
- client, _m(acc, "cost_basis")
3749
- )
3655
+ self.bitcoin: BitcoinPattern = BitcoinPattern(client, _m(acc, "btc"))
3656
+ self.dollars: DollarsPattern[Dollars] = DollarsPattern(client, _m(acc, "usd"))
3657
+ self.sats: DollarsPattern[Sats] = DollarsPattern(client, acc)
3750
3658
 
3751
3659
 
3752
3660
  class CoinbasePattern2:
@@ -3775,16 +3683,20 @@ class SegwitAdoptionPattern:
3775
3683
  self.sum: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, "sum"))
3776
3684
 
3777
3685
 
3778
- class UnclaimedRewardsPattern:
3686
+ class CostBasisPattern2:
3779
3687
  """Pattern struct for repeated tree structure."""
3780
3688
 
3781
3689
  def __init__(self, client: BrkClientBase, acc: str):
3782
3690
  """Create pattern node with accumulated metric name."""
3783
- self.bitcoin: BitcoinPattern2[Bitcoin] = BitcoinPattern2(client, _m(acc, "btc"))
3784
- self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(
3785
- client, _m(acc, "usd")
3691
+ self.max: MetricPattern1[Dollars] = MetricPattern1(
3692
+ client, _m(acc, "max_cost_basis")
3693
+ )
3694
+ self.min: MetricPattern1[Dollars] = MetricPattern1(
3695
+ client, _m(acc, "min_cost_basis")
3696
+ )
3697
+ self.percentiles: PercentilesPattern = PercentilesPattern(
3698
+ client, _m(acc, "cost_basis")
3786
3699
  )
3787
- self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
3788
3700
 
3789
3701
 
3790
3702
  class ActiveSupplyPattern:
@@ -3797,23 +3709,16 @@ class ActiveSupplyPattern:
3797
3709
  self.sats: MetricPattern1[Sats] = MetricPattern1(client, acc)
3798
3710
 
3799
3711
 
3800
- class _2015Pattern:
3801
- """Pattern struct for repeated tree structure."""
3802
-
3803
- def __init__(self, client: BrkClientBase, acc: str):
3804
- """Create pattern node with accumulated metric name."""
3805
- self.bitcoin: MetricPattern4[Bitcoin] = MetricPattern4(client, _m(acc, "btc"))
3806
- self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, "usd"))
3807
- self.sats: MetricPattern4[Sats] = MetricPattern4(client, acc)
3808
-
3809
-
3810
- class ActivePricePattern:
3712
+ class UnclaimedRewardsPattern:
3811
3713
  """Pattern struct for repeated tree structure."""
3812
3714
 
3813
3715
  def __init__(self, client: BrkClientBase, acc: str):
3814
3716
  """Create pattern node with accumulated metric name."""
3815
- self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, acc)
3816
- self.sats: MetricPattern1[SatsFract] = MetricPattern1(client, _m(acc, "sats"))
3717
+ self.bitcoin: BitcoinPattern2[Bitcoin] = BitcoinPattern2(client, _m(acc, "btc"))
3718
+ self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(
3719
+ client, _m(acc, "usd")
3720
+ )
3721
+ self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
3817
3722
 
3818
3723
 
3819
3724
  class CostBasisPattern:
@@ -3821,30 +3726,23 @@ class CostBasisPattern:
3821
3726
 
3822
3727
  def __init__(self, client: BrkClientBase, acc: str):
3823
3728
  """Create pattern node with accumulated metric name."""
3824
- self.max: ActivePricePattern = ActivePricePattern(
3729
+ self.max: MetricPattern1[Dollars] = MetricPattern1(
3825
3730
  client, _m(acc, "max_cost_basis")
3826
3731
  )
3827
- self.min: ActivePricePattern = ActivePricePattern(
3732
+ self.min: MetricPattern1[Dollars] = MetricPattern1(
3828
3733
  client, _m(acc, "min_cost_basis")
3829
3734
  )
3830
3735
 
3831
3736
 
3832
- class _0sdUsdPattern:
3833
- """Pattern struct for repeated tree structure."""
3834
-
3835
- def __init__(self, client: BrkClientBase, acc: str):
3836
- """Create pattern node with accumulated metric name."""
3837
- self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, acc)
3838
- self.sats: MetricPattern4[SatsFract] = MetricPattern4(client, _m(acc, "sats"))
3839
-
3840
-
3841
- class _1dReturns1mSdPattern:
3737
+ class SupplyPattern2:
3842
3738
  """Pattern struct for repeated tree structure."""
3843
3739
 
3844
3740
  def __init__(self, client: BrkClientBase, acc: str):
3845
3741
  """Create pattern node with accumulated metric name."""
3846
- self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "sd"))
3847
- self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "sma"))
3742
+ self.halved: ActiveSupplyPattern = ActiveSupplyPattern(
3743
+ client, _m(acc, "halved")
3744
+ )
3745
+ self.total: ActiveSupplyPattern = ActiveSupplyPattern(client, acc)
3848
3746
 
3849
3747
 
3850
3748
  class RelativePattern4:
@@ -3860,15 +3758,13 @@ class RelativePattern4:
3860
3758
  )
3861
3759
 
3862
3760
 
3863
- class SupplyPattern2:
3761
+ class _1dReturns1mSdPattern:
3864
3762
  """Pattern struct for repeated tree structure."""
3865
3763
 
3866
3764
  def __init__(self, client: BrkClientBase, acc: str):
3867
3765
  """Create pattern node with accumulated metric name."""
3868
- self.halved: ActiveSupplyPattern = ActiveSupplyPattern(
3869
- client, _m(acc, "halved")
3870
- )
3871
- self.total: ActiveSupplyPattern = ActiveSupplyPattern(client, acc)
3766
+ self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "sd"))
3767
+ self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, "sma"))
3872
3768
 
3873
3769
 
3874
3770
  class BlockCountPattern(Generic[T]):
@@ -3882,15 +3778,6 @@ class BlockCountPattern(Generic[T]):
3882
3778
  self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
3883
3779
 
3884
3780
 
3885
- class SatsPattern(Generic[T]):
3886
- """Pattern struct for repeated tree structure."""
3887
-
3888
- def __init__(self, client: BrkClientBase, acc: str):
3889
- """Create pattern node with accumulated metric name."""
3890
- self.ohlc: MetricPattern1[T] = MetricPattern1(client, _m(acc, "ohlc"))
3891
- self.split: SplitPattern2[T] = SplitPattern2(client, acc)
3892
-
3893
-
3894
3781
  class BitcoinPattern2(Generic[T]):
3895
3782
  """Pattern struct for repeated tree structure."""
3896
3783
 
@@ -3902,12 +3789,13 @@ class BitcoinPattern2(Generic[T]):
3902
3789
  self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
3903
3790
 
3904
3791
 
3905
- class OutputsPattern:
3792
+ class SatsPattern(Generic[T]):
3906
3793
  """Pattern struct for repeated tree structure."""
3907
3794
 
3908
3795
  def __init__(self, client: BrkClientBase, acc: str):
3909
3796
  """Create pattern node with accumulated metric name."""
3910
- self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, acc)
3797
+ self.ohlc: MetricPattern1[T] = MetricPattern1(client, _m(acc, "ohlc_sats"))
3798
+ self.split: SplitPattern2[T] = SplitPattern2(client, _m(acc, "sats"))
3911
3799
 
3912
3800
 
3913
3801
  class RealizedPriceExtraPattern:
@@ -3918,6 +3806,14 @@ class RealizedPriceExtraPattern:
3918
3806
  self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, acc)
3919
3807
 
3920
3808
 
3809
+ class OutputsPattern:
3810
+ """Pattern struct for repeated tree structure."""
3811
+
3812
+ def __init__(self, client: BrkClientBase, acc: str):
3813
+ """Create pattern node with accumulated metric name."""
3814
+ self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, acc)
3815
+
3816
+
3921
3817
  # Metrics tree classes
3922
3818
 
3923
3819
 
@@ -4250,25 +4146,25 @@ class MetricsTree_Cointime_Pricing:
4250
4146
  """Metrics tree node."""
4251
4147
 
4252
4148
  def __init__(self, client: BrkClientBase, base_path: str = ""):
4253
- self.active_price: ActivePricePattern = ActivePricePattern(
4149
+ self.active_price: MetricPattern1[Dollars] = MetricPattern1(
4254
4150
  client, "active_price"
4255
4151
  )
4256
4152
  self.active_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(
4257
4153
  client, "active_price_ratio"
4258
4154
  )
4259
- self.cointime_price: ActivePricePattern = ActivePricePattern(
4155
+ self.cointime_price: MetricPattern1[Dollars] = MetricPattern1(
4260
4156
  client, "cointime_price"
4261
4157
  )
4262
4158
  self.cointime_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(
4263
4159
  client, "cointime_price_ratio"
4264
4160
  )
4265
- self.true_market_mean: ActivePricePattern = ActivePricePattern(
4161
+ self.true_market_mean: MetricPattern1[Dollars] = MetricPattern1(
4266
4162
  client, "true_market_mean"
4267
4163
  )
4268
4164
  self.true_market_mean_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(
4269
4165
  client, "true_market_mean_ratio"
4270
4166
  )
4271
- self.vaulted_price: ActivePricePattern = ActivePricePattern(
4167
+ self.vaulted_price: MetricPattern1[Dollars] = MetricPattern1(
4272
4168
  client, "vaulted_price"
4273
4169
  )
4274
4170
  self.vaulted_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(
@@ -4276,19 +4172,6 @@ class MetricsTree_Cointime_Pricing:
4276
4172
  )
4277
4173
 
4278
4174
 
4279
- class MetricsTree_Cointime_ReserveRisk:
4280
- """Metrics tree node."""
4281
-
4282
- def __init__(self, client: BrkClientBase, base_path: str = ""):
4283
- self.hodl_bank: MetricPattern6[StoredF64] = MetricPattern6(client, "hodl_bank")
4284
- self.reserve_risk: MetricPattern4[StoredF64] = MetricPattern4(
4285
- client, "reserve_risk"
4286
- )
4287
- self.vocdd_365d_sma: MetricPattern6[StoredF64] = MetricPattern6(
4288
- client, "vocdd_365d_sma"
4289
- )
4290
-
4291
-
4292
4175
  class MetricsTree_Cointime_Supply:
4293
4176
  """Metrics tree node."""
4294
4177
 
@@ -4314,7 +4197,6 @@ class MetricsTree_Cointime_Value:
4314
4197
  self.cointime_value_stored: BlockCountPattern[StoredF64] = BlockCountPattern(
4315
4198
  client, "cointime_value_stored"
4316
4199
  )
4317
- self.vocdd: BlockCountPattern[StoredF64] = BlockCountPattern(client, "vocdd")
4318
4200
 
4319
4201
 
4320
4202
  class MetricsTree_Cointime:
@@ -4331,9 +4213,6 @@ class MetricsTree_Cointime:
4331
4213
  self.pricing: MetricsTree_Cointime_Pricing = MetricsTree_Cointime_Pricing(
4332
4214
  client
4333
4215
  )
4334
- self.reserve_risk: MetricsTree_Cointime_ReserveRisk = (
4335
- MetricsTree_Cointime_ReserveRisk(client)
4336
- )
4337
4216
  self.supply: MetricsTree_Cointime_Supply = MetricsTree_Cointime_Supply(client)
4338
4217
  self.value: MetricsTree_Cointime_Value = MetricsTree_Cointime_Value(client)
4339
4218
 
@@ -4384,35 +4263,20 @@ class MetricsTree_Constants:
4384
4263
  self.constant_80: MetricPattern1[StoredU16] = MetricPattern1(
4385
4264
  client, "constant_80"
4386
4265
  )
4387
- self.constant_minus_1: MetricPattern1[StoredI8] = MetricPattern1(
4266
+ self.constant_minus_1: MetricPattern1[StoredI16] = MetricPattern1(
4388
4267
  client, "constant_minus_1"
4389
4268
  )
4390
- self.constant_minus_2: MetricPattern1[StoredI8] = MetricPattern1(
4269
+ self.constant_minus_2: MetricPattern1[StoredI16] = MetricPattern1(
4391
4270
  client, "constant_minus_2"
4392
4271
  )
4393
- self.constant_minus_3: MetricPattern1[StoredI8] = MetricPattern1(
4272
+ self.constant_minus_3: MetricPattern1[StoredI16] = MetricPattern1(
4394
4273
  client, "constant_minus_3"
4395
4274
  )
4396
- self.constant_minus_4: MetricPattern1[StoredI8] = MetricPattern1(
4275
+ self.constant_minus_4: MetricPattern1[StoredI16] = MetricPattern1(
4397
4276
  client, "constant_minus_4"
4398
4277
  )
4399
4278
 
4400
4279
 
4401
- class MetricsTree_Distribution_AddressActivity:
4402
- """Metrics tree node."""
4403
-
4404
- def __init__(self, client: BrkClientBase, base_path: str = ""):
4405
- self.all: AllPattern = AllPattern(client, "address_activity")
4406
- self.p2a: AllPattern = AllPattern(client, "p2a_address_activity")
4407
- self.p2pk33: AllPattern = AllPattern(client, "p2pk33_address_activity")
4408
- self.p2pk65: AllPattern = AllPattern(client, "p2pk65_address_activity")
4409
- self.p2pkh: AllPattern = AllPattern(client, "p2pkh_address_activity")
4410
- self.p2sh: AllPattern = AllPattern(client, "p2sh_address_activity")
4411
- self.p2tr: AllPattern = AllPattern(client, "p2tr_address_activity")
4412
- self.p2wpkh: AllPattern = AllPattern(client, "p2wpkh_address_activity")
4413
- self.p2wsh: AllPattern = AllPattern(client, "p2wsh_address_activity")
4414
-
4415
-
4416
4280
  class MetricsTree_Distribution_AddressCohorts_AmountRange:
4417
4281
  """Metrics tree node."""
4418
4282
 
@@ -4466,19 +4330,19 @@ class MetricsTree_Distribution_AddressCohorts_GeAmount:
4466
4330
  """Metrics tree node."""
4467
4331
 
4468
4332
  def __init__(self, client: BrkClientBase, base_path: str = ""):
4469
- self._100btc: _0satsPattern = _0satsPattern(client, "addrs_over_100btc")
4470
- self._100k_sats: _0satsPattern = _0satsPattern(client, "addrs_over_100k_sats")
4471
- self._100sats: _0satsPattern = _0satsPattern(client, "addrs_over_100sats")
4472
- self._10btc: _0satsPattern = _0satsPattern(client, "addrs_over_10btc")
4473
- self._10k_btc: _0satsPattern = _0satsPattern(client, "addrs_over_10k_btc")
4474
- self._10k_sats: _0satsPattern = _0satsPattern(client, "addrs_over_10k_sats")
4475
- self._10m_sats: _0satsPattern = _0satsPattern(client, "addrs_over_10m_sats")
4476
- self._10sats: _0satsPattern = _0satsPattern(client, "addrs_over_10sats")
4477
- self._1btc: _0satsPattern = _0satsPattern(client, "addrs_over_1btc")
4478
- self._1k_btc: _0satsPattern = _0satsPattern(client, "addrs_over_1k_btc")
4479
- self._1k_sats: _0satsPattern = _0satsPattern(client, "addrs_over_1k_sats")
4480
- self._1m_sats: _0satsPattern = _0satsPattern(client, "addrs_over_1m_sats")
4481
- self._1sat: _0satsPattern = _0satsPattern(client, "addrs_over_1sat")
4333
+ self._100btc: _0satsPattern = _0satsPattern(client, "addrs_above_100btc")
4334
+ self._100k_sats: _0satsPattern = _0satsPattern(client, "addrs_above_100k_sats")
4335
+ self._100sats: _0satsPattern = _0satsPattern(client, "addrs_above_100sats")
4336
+ self._10btc: _0satsPattern = _0satsPattern(client, "addrs_above_10btc")
4337
+ self._10k_btc: _0satsPattern = _0satsPattern(client, "addrs_above_10k_btc")
4338
+ self._10k_sats: _0satsPattern = _0satsPattern(client, "addrs_above_10k_sats")
4339
+ self._10m_sats: _0satsPattern = _0satsPattern(client, "addrs_above_10m_sats")
4340
+ self._10sats: _0satsPattern = _0satsPattern(client, "addrs_above_10sats")
4341
+ self._1btc: _0satsPattern = _0satsPattern(client, "addrs_above_1btc")
4342
+ self._1k_btc: _0satsPattern = _0satsPattern(client, "addrs_above_1k_btc")
4343
+ self._1k_sats: _0satsPattern = _0satsPattern(client, "addrs_above_1k_sats")
4344
+ self._1m_sats: _0satsPattern = _0satsPattern(client, "addrs_above_1m_sats")
4345
+ self._1sat: _0satsPattern = _0satsPattern(client, "addrs_above_1sat")
4482
4346
 
4483
4347
 
4484
4348
  class MetricsTree_Distribution_AddressCohorts_LtAmount:
@@ -4557,139 +4421,79 @@ class MetricsTree_Distribution_AnyAddressIndexes:
4557
4421
  )
4558
4422
 
4559
4423
 
4560
- class MetricsTree_Distribution_GrowthRate:
4561
- """Metrics tree node."""
4562
-
4563
- def __init__(self, client: BrkClientBase, base_path: str = ""):
4564
- self.all: FullnessPattern[StoredF32] = FullnessPattern(client, "growth_rate")
4565
- self.p2a: FullnessPattern[StoredF32] = FullnessPattern(
4566
- client, "p2a_growth_rate"
4567
- )
4568
- self.p2pk33: FullnessPattern[StoredF32] = FullnessPattern(
4569
- client, "p2pk33_growth_rate"
4570
- )
4571
- self.p2pk65: FullnessPattern[StoredF32] = FullnessPattern(
4572
- client, "p2pk65_growth_rate"
4573
- )
4574
- self.p2pkh: FullnessPattern[StoredF32] = FullnessPattern(
4575
- client, "p2pkh_growth_rate"
4576
- )
4577
- self.p2sh: FullnessPattern[StoredF32] = FullnessPattern(
4578
- client, "p2sh_growth_rate"
4579
- )
4580
- self.p2tr: FullnessPattern[StoredF32] = FullnessPattern(
4581
- client, "p2tr_growth_rate"
4582
- )
4583
- self.p2wpkh: FullnessPattern[StoredF32] = FullnessPattern(
4584
- client, "p2wpkh_growth_rate"
4585
- )
4586
- self.p2wsh: FullnessPattern[StoredF32] = FullnessPattern(
4587
- client, "p2wsh_growth_rate"
4588
- )
4589
-
4590
-
4591
- class MetricsTree_Distribution_NewAddrCount:
4592
- """Metrics tree node."""
4593
-
4594
- def __init__(self, client: BrkClientBase, base_path: str = ""):
4595
- self.all: DollarsPattern[StoredU64] = DollarsPattern(client, "new_addr_count")
4596
- self.p2a: DollarsPattern[StoredU64] = DollarsPattern(
4597
- client, "p2a_new_addr_count"
4598
- )
4599
- self.p2pk33: DollarsPattern[StoredU64] = DollarsPattern(
4600
- client, "p2pk33_new_addr_count"
4601
- )
4602
- self.p2pk65: DollarsPattern[StoredU64] = DollarsPattern(
4603
- client, "p2pk65_new_addr_count"
4604
- )
4605
- self.p2pkh: DollarsPattern[StoredU64] = DollarsPattern(
4606
- client, "p2pkh_new_addr_count"
4607
- )
4608
- self.p2sh: DollarsPattern[StoredU64] = DollarsPattern(
4609
- client, "p2sh_new_addr_count"
4610
- )
4611
- self.p2tr: DollarsPattern[StoredU64] = DollarsPattern(
4612
- client, "p2tr_new_addr_count"
4613
- )
4614
- self.p2wpkh: DollarsPattern[StoredU64] = DollarsPattern(
4615
- client, "p2wpkh_new_addr_count"
4616
- )
4617
- self.p2wsh: DollarsPattern[StoredU64] = DollarsPattern(
4618
- client, "p2wsh_new_addr_count"
4619
- )
4620
-
4621
-
4622
4424
  class MetricsTree_Distribution_UtxoCohorts_AgeRange:
4623
4425
  """Metrics tree node."""
4624
4426
 
4625
4427
  def __init__(self, client: BrkClientBase, base_path: str = ""):
4626
4428
  self._10y_to_12y: _10yTo12yPattern = _10yTo12yPattern(
4627
- client, "utxos_10y_to_12y_old"
4429
+ client, "utxos_at_least_10y_up_to_12y_old"
4628
4430
  )
4629
4431
  self._12y_to_15y: _10yTo12yPattern = _10yTo12yPattern(
4630
- client, "utxos_12y_to_15y_old"
4432
+ client, "utxos_at_least_12y_up_to_15y_old"
4631
4433
  )
4632
4434
  self._1d_to_1w: _10yTo12yPattern = _10yTo12yPattern(
4633
- client, "utxos_1d_to_1w_old"
4435
+ client, "utxos_at_least_1d_up_to_1w_old"
4634
4436
  )
4635
4437
  self._1h_to_1d: _10yTo12yPattern = _10yTo12yPattern(
4636
- client, "utxos_1h_to_1d_old"
4438
+ client, "utxos_at_least_1h_up_to_1d_old"
4637
4439
  )
4638
4440
  self._1m_to_2m: _10yTo12yPattern = _10yTo12yPattern(
4639
- client, "utxos_1m_to_2m_old"
4441
+ client, "utxos_at_least_1m_up_to_2m_old"
4640
4442
  )
4641
4443
  self._1w_to_1m: _10yTo12yPattern = _10yTo12yPattern(
4642
- client, "utxos_1w_to_1m_old"
4444
+ client, "utxos_at_least_1w_up_to_1m_old"
4643
4445
  )
4644
4446
  self._1y_to_2y: _10yTo12yPattern = _10yTo12yPattern(
4645
- client, "utxos_1y_to_2y_old"
4447
+ client, "utxos_at_least_1y_up_to_2y_old"
4646
4448
  )
4647
4449
  self._2m_to_3m: _10yTo12yPattern = _10yTo12yPattern(
4648
- client, "utxos_2m_to_3m_old"
4450
+ client, "utxos_at_least_2m_up_to_3m_old"
4649
4451
  )
4650
4452
  self._2y_to_3y: _10yTo12yPattern = _10yTo12yPattern(
4651
- client, "utxos_2y_to_3y_old"
4453
+ client, "utxos_at_least_2y_up_to_3y_old"
4652
4454
  )
4653
4455
  self._3m_to_4m: _10yTo12yPattern = _10yTo12yPattern(
4654
- client, "utxos_3m_to_4m_old"
4456
+ client, "utxos_at_least_3m_up_to_4m_old"
4655
4457
  )
4656
4458
  self._3y_to_4y: _10yTo12yPattern = _10yTo12yPattern(
4657
- client, "utxos_3y_to_4y_old"
4459
+ client, "utxos_at_least_3y_up_to_4y_old"
4658
4460
  )
4659
4461
  self._4m_to_5m: _10yTo12yPattern = _10yTo12yPattern(
4660
- client, "utxos_4m_to_5m_old"
4462
+ client, "utxos_at_least_4m_up_to_5m_old"
4661
4463
  )
4662
4464
  self._4y_to_5y: _10yTo12yPattern = _10yTo12yPattern(
4663
- client, "utxos_4y_to_5y_old"
4465
+ client, "utxos_at_least_4y_up_to_5y_old"
4664
4466
  )
4665
4467
  self._5m_to_6m: _10yTo12yPattern = _10yTo12yPattern(
4666
- client, "utxos_5m_to_6m_old"
4468
+ client, "utxos_at_least_5m_up_to_6m_old"
4667
4469
  )
4668
4470
  self._5y_to_6y: _10yTo12yPattern = _10yTo12yPattern(
4669
- client, "utxos_5y_to_6y_old"
4471
+ client, "utxos_at_least_5y_up_to_6y_old"
4670
4472
  )
4671
4473
  self._6m_to_1y: _10yTo12yPattern = _10yTo12yPattern(
4672
- client, "utxos_6m_to_1y_old"
4474
+ client, "utxos_at_least_6m_up_to_1y_old"
4673
4475
  )
4674
4476
  self._6y_to_7y: _10yTo12yPattern = _10yTo12yPattern(
4675
- client, "utxos_6y_to_7y_old"
4477
+ client, "utxos_at_least_6y_up_to_7y_old"
4676
4478
  )
4677
4479
  self._7y_to_8y: _10yTo12yPattern = _10yTo12yPattern(
4678
- client, "utxos_7y_to_8y_old"
4480
+ client, "utxos_at_least_7y_up_to_8y_old"
4679
4481
  )
4680
4482
  self._8y_to_10y: _10yTo12yPattern = _10yTo12yPattern(
4681
- client, "utxos_8y_to_10y_old"
4483
+ client, "utxos_at_least_8y_up_to_10y_old"
4682
4484
  )
4683
- self.from_15y: _10yTo12yPattern = _10yTo12yPattern(client, "utxos_over_15y_old")
4684
- self.up_to_1h: _10yTo12yPattern = _10yTo12yPattern(client, "utxos_under_1h_old")
4485
+ self.from_15y: _10yTo12yPattern = _10yTo12yPattern(
4486
+ client, "utxos_at_least_15y_old"
4487
+ )
4488
+ self.up_to_1h: _10yTo12yPattern = _10yTo12yPattern(client, "utxos_up_to_1h_old")
4685
4489
 
4686
4490
 
4687
4491
  class MetricsTree_Distribution_UtxoCohorts_All_CostBasis:
4688
4492
  """Metrics tree node."""
4689
4493
 
4690
4494
  def __init__(self, client: BrkClientBase, base_path: str = ""):
4691
- self.max: ActivePricePattern = ActivePricePattern(client, "max_cost_basis")
4692
- self.min: ActivePricePattern = ActivePricePattern(client, "min_cost_basis")
4495
+ self.max: MetricPattern1[Dollars] = MetricPattern1(client, "max_cost_basis")
4496
+ self.min: MetricPattern1[Dollars] = MetricPattern1(client, "min_cost_basis")
4693
4497
  self.percentiles: PercentilesPattern = PercentilesPattern(client, "cost_basis")
4694
4498
 
4695
4499
 
@@ -4800,19 +4604,21 @@ class MetricsTree_Distribution_UtxoCohorts_GeAmount:
4800
4604
  """Metrics tree node."""
4801
4605
 
4802
4606
  def __init__(self, client: BrkClientBase, base_path: str = ""):
4803
- self._100btc: _100btcPattern = _100btcPattern(client, "utxos_over_100btc")
4804
- self._100k_sats: _100btcPattern = _100btcPattern(client, "utxos_over_100k_sats")
4805
- self._100sats: _100btcPattern = _100btcPattern(client, "utxos_over_100sats")
4806
- self._10btc: _100btcPattern = _100btcPattern(client, "utxos_over_10btc")
4807
- self._10k_btc: _100btcPattern = _100btcPattern(client, "utxos_over_10k_btc")
4808
- self._10k_sats: _100btcPattern = _100btcPattern(client, "utxos_over_10k_sats")
4809
- self._10m_sats: _100btcPattern = _100btcPattern(client, "utxos_over_10m_sats")
4810
- self._10sats: _100btcPattern = _100btcPattern(client, "utxos_over_10sats")
4811
- self._1btc: _100btcPattern = _100btcPattern(client, "utxos_over_1btc")
4812
- self._1k_btc: _100btcPattern = _100btcPattern(client, "utxos_over_1k_btc")
4813
- self._1k_sats: _100btcPattern = _100btcPattern(client, "utxos_over_1k_sats")
4814
- self._1m_sats: _100btcPattern = _100btcPattern(client, "utxos_over_1m_sats")
4815
- self._1sat: _100btcPattern = _100btcPattern(client, "utxos_over_1sat")
4607
+ self._100btc: _100btcPattern = _100btcPattern(client, "utxos_above_100btc")
4608
+ self._100k_sats: _100btcPattern = _100btcPattern(
4609
+ client, "utxos_above_100k_sats"
4610
+ )
4611
+ self._100sats: _100btcPattern = _100btcPattern(client, "utxos_above_100sats")
4612
+ self._10btc: _100btcPattern = _100btcPattern(client, "utxos_above_10btc")
4613
+ self._10k_btc: _100btcPattern = _100btcPattern(client, "utxos_above_10k_btc")
4614
+ self._10k_sats: _100btcPattern = _100btcPattern(client, "utxos_above_10k_sats")
4615
+ self._10m_sats: _100btcPattern = _100btcPattern(client, "utxos_above_10m_sats")
4616
+ self._10sats: _100btcPattern = _100btcPattern(client, "utxos_above_10sats")
4617
+ self._1btc: _100btcPattern = _100btcPattern(client, "utxos_above_1btc")
4618
+ self._1k_btc: _100btcPattern = _100btcPattern(client, "utxos_above_1k_btc")
4619
+ self._1k_sats: _100btcPattern = _100btcPattern(client, "utxos_above_1k_sats")
4620
+ self._1m_sats: _100btcPattern = _100btcPattern(client, "utxos_above_1m_sats")
4621
+ self._1sat: _100btcPattern = _100btcPattern(client, "utxos_above_1sat")
4816
4622
 
4817
4623
 
4818
4624
  class MetricsTree_Distribution_UtxoCohorts_LtAmount:
@@ -4840,48 +4646,48 @@ class MetricsTree_Distribution_UtxoCohorts_MaxAge:
4840
4646
  """Metrics tree node."""
4841
4647
 
4842
4648
  def __init__(self, client: BrkClientBase, base_path: str = ""):
4843
- self._10y: _10yPattern = _10yPattern(client, "utxos_under_10y_old")
4844
- self._12y: _10yPattern = _10yPattern(client, "utxos_under_12y_old")
4845
- self._15y: _10yPattern = _10yPattern(client, "utxos_under_15y_old")
4846
- self._1m: _10yPattern = _10yPattern(client, "utxos_under_1m_old")
4847
- self._1w: _10yPattern = _10yPattern(client, "utxos_under_1w_old")
4848
- self._1y: _10yPattern = _10yPattern(client, "utxos_under_1y_old")
4849
- self._2m: _10yPattern = _10yPattern(client, "utxos_under_2m_old")
4850
- self._2y: _10yPattern = _10yPattern(client, "utxos_under_2y_old")
4851
- self._3m: _10yPattern = _10yPattern(client, "utxos_under_3m_old")
4852
- self._3y: _10yPattern = _10yPattern(client, "utxos_under_3y_old")
4853
- self._4m: _10yPattern = _10yPattern(client, "utxos_under_4m_old")
4854
- self._4y: _10yPattern = _10yPattern(client, "utxos_under_4y_old")
4855
- self._5m: _10yPattern = _10yPattern(client, "utxos_under_5m_old")
4856
- self._5y: _10yPattern = _10yPattern(client, "utxos_under_5y_old")
4857
- self._6m: _10yPattern = _10yPattern(client, "utxos_under_6m_old")
4858
- self._6y: _10yPattern = _10yPattern(client, "utxos_under_6y_old")
4859
- self._7y: _10yPattern = _10yPattern(client, "utxos_under_7y_old")
4860
- self._8y: _10yPattern = _10yPattern(client, "utxos_under_8y_old")
4649
+ self._10y: _10yPattern = _10yPattern(client, "utxos_up_to_10y_old")
4650
+ self._12y: _10yPattern = _10yPattern(client, "utxos_up_to_12y_old")
4651
+ self._15y: _10yPattern = _10yPattern(client, "utxos_up_to_15y_old")
4652
+ self._1m: _10yPattern = _10yPattern(client, "utxos_up_to_1m_old")
4653
+ self._1w: _10yPattern = _10yPattern(client, "utxos_up_to_1w_old")
4654
+ self._1y: _10yPattern = _10yPattern(client, "utxos_up_to_1y_old")
4655
+ self._2m: _10yPattern = _10yPattern(client, "utxos_up_to_2m_old")
4656
+ self._2y: _10yPattern = _10yPattern(client, "utxos_up_to_2y_old")
4657
+ self._3m: _10yPattern = _10yPattern(client, "utxos_up_to_3m_old")
4658
+ self._3y: _10yPattern = _10yPattern(client, "utxos_up_to_3y_old")
4659
+ self._4m: _10yPattern = _10yPattern(client, "utxos_up_to_4m_old")
4660
+ self._4y: _10yPattern = _10yPattern(client, "utxos_up_to_4y_old")
4661
+ self._5m: _10yPattern = _10yPattern(client, "utxos_up_to_5m_old")
4662
+ self._5y: _10yPattern = _10yPattern(client, "utxos_up_to_5y_old")
4663
+ self._6m: _10yPattern = _10yPattern(client, "utxos_up_to_6m_old")
4664
+ self._6y: _10yPattern = _10yPattern(client, "utxos_up_to_6y_old")
4665
+ self._7y: _10yPattern = _10yPattern(client, "utxos_up_to_7y_old")
4666
+ self._8y: _10yPattern = _10yPattern(client, "utxos_up_to_8y_old")
4861
4667
 
4862
4668
 
4863
4669
  class MetricsTree_Distribution_UtxoCohorts_MinAge:
4864
4670
  """Metrics tree node."""
4865
4671
 
4866
4672
  def __init__(self, client: BrkClientBase, base_path: str = ""):
4867
- self._10y: _100btcPattern = _100btcPattern(client, "utxos_over_10y_old")
4868
- self._12y: _100btcPattern = _100btcPattern(client, "utxos_over_12y_old")
4869
- self._1d: _100btcPattern = _100btcPattern(client, "utxos_over_1d_old")
4870
- self._1m: _100btcPattern = _100btcPattern(client, "utxos_over_1m_old")
4871
- self._1w: _100btcPattern = _100btcPattern(client, "utxos_over_1w_old")
4872
- self._1y: _100btcPattern = _100btcPattern(client, "utxos_over_1y_old")
4873
- self._2m: _100btcPattern = _100btcPattern(client, "utxos_over_2m_old")
4874
- self._2y: _100btcPattern = _100btcPattern(client, "utxos_over_2y_old")
4875
- self._3m: _100btcPattern = _100btcPattern(client, "utxos_over_3m_old")
4876
- self._3y: _100btcPattern = _100btcPattern(client, "utxos_over_3y_old")
4877
- self._4m: _100btcPattern = _100btcPattern(client, "utxos_over_4m_old")
4878
- self._4y: _100btcPattern = _100btcPattern(client, "utxos_over_4y_old")
4879
- self._5m: _100btcPattern = _100btcPattern(client, "utxos_over_5m_old")
4880
- self._5y: _100btcPattern = _100btcPattern(client, "utxos_over_5y_old")
4881
- self._6m: _100btcPattern = _100btcPattern(client, "utxos_over_6m_old")
4882
- self._6y: _100btcPattern = _100btcPattern(client, "utxos_over_6y_old")
4883
- self._7y: _100btcPattern = _100btcPattern(client, "utxos_over_7y_old")
4884
- self._8y: _100btcPattern = _100btcPattern(client, "utxos_over_8y_old")
4673
+ self._10y: _100btcPattern = _100btcPattern(client, "utxos_at_least_10y_old")
4674
+ self._12y: _100btcPattern = _100btcPattern(client, "utxos_at_least_12y_old")
4675
+ self._1d: _100btcPattern = _100btcPattern(client, "utxos_at_least_1d_old")
4676
+ self._1m: _100btcPattern = _100btcPattern(client, "utxos_at_least_1m_old")
4677
+ self._1w: _100btcPattern = _100btcPattern(client, "utxos_at_least_1w_old")
4678
+ self._1y: _100btcPattern = _100btcPattern(client, "utxos_at_least_1y_old")
4679
+ self._2m: _100btcPattern = _100btcPattern(client, "utxos_at_least_2m_old")
4680
+ self._2y: _100btcPattern = _100btcPattern(client, "utxos_at_least_2y_old")
4681
+ self._3m: _100btcPattern = _100btcPattern(client, "utxos_at_least_3m_old")
4682
+ self._3y: _100btcPattern = _100btcPattern(client, "utxos_at_least_3y_old")
4683
+ self._4m: _100btcPattern = _100btcPattern(client, "utxos_at_least_4m_old")
4684
+ self._4y: _100btcPattern = _100btcPattern(client, "utxos_at_least_4y_old")
4685
+ self._5m: _100btcPattern = _100btcPattern(client, "utxos_at_least_5m_old")
4686
+ self._5y: _100btcPattern = _100btcPattern(client, "utxos_at_least_5y_old")
4687
+ self._6m: _100btcPattern = _100btcPattern(client, "utxos_at_least_6m_old")
4688
+ self._6y: _100btcPattern = _100btcPattern(client, "utxos_at_least_6y_old")
4689
+ self._7y: _100btcPattern = _100btcPattern(client, "utxos_at_least_7y_old")
4690
+ self._8y: _100btcPattern = _100btcPattern(client, "utxos_at_least_8y_old")
4885
4691
 
4886
4692
 
4887
4693
  class MetricsTree_Distribution_UtxoCohorts_Term_Long:
@@ -5007,9 +4813,6 @@ class MetricsTree_Distribution:
5007
4813
 
5008
4814
  def __init__(self, client: BrkClientBase, base_path: str = ""):
5009
4815
  self.addr_count: AddrCountPattern = AddrCountPattern(client, "addr_count")
5010
- self.address_activity: MetricsTree_Distribution_AddressActivity = (
5011
- MetricsTree_Distribution_AddressActivity(client)
5012
- )
5013
4816
  self.address_cohorts: MetricsTree_Distribution_AddressCohorts = (
5014
4817
  MetricsTree_Distribution_AddressCohorts(client)
5015
4818
  )
@@ -5028,18 +4831,9 @@ class MetricsTree_Distribution:
5028
4831
  self.emptyaddressindex: MetricPattern32[EmptyAddressIndex] = MetricPattern32(
5029
4832
  client, "emptyaddressindex"
5030
4833
  )
5031
- self.growth_rate: MetricsTree_Distribution_GrowthRate = (
5032
- MetricsTree_Distribution_GrowthRate(client)
5033
- )
5034
4834
  self.loadedaddressindex: MetricPattern31[LoadedAddressIndex] = MetricPattern31(
5035
4835
  client, "loadedaddressindex"
5036
4836
  )
5037
- self.new_addr_count: MetricsTree_Distribution_NewAddrCount = (
5038
- MetricsTree_Distribution_NewAddrCount(client)
5039
- )
5040
- self.total_addr_count: AddrCountPattern = AddrCountPattern(
5041
- client, "total_addr_count"
5042
- )
5043
4837
  self.utxo_cohorts: MetricsTree_Distribution_UtxoCohorts = (
5044
4838
  MetricsTree_Distribution_UtxoCohorts(client)
5045
4839
  )
@@ -5261,7 +5055,7 @@ class MetricsTree_Indexes_Height:
5261
5055
 
5262
5056
  def __init__(self, client: BrkClientBase, base_path: str = ""):
5263
5057
  self.dateindex: MetricPattern11[DateIndex] = MetricPattern11(
5264
- client, "dateindex"
5058
+ client, "height_dateindex"
5265
5059
  )
5266
5060
  self.difficultyepoch: MetricPattern11[DifficultyEpoch] = MetricPattern11(
5267
5061
  client, "difficultyepoch"
@@ -5476,7 +5270,7 @@ class MetricsTree_Market_Ath:
5476
5270
  self.max_years_between_price_aths: MetricPattern4[StoredF32] = MetricPattern4(
5477
5271
  client, "max_years_between_price_aths"
5478
5272
  )
5479
- self.price_ath: ActivePricePattern = ActivePricePattern(client, "price_ath")
5273
+ self.price_ath: MetricPattern1[Dollars] = MetricPattern1(client, "price_ath")
5480
5274
  self.price_drawdown: MetricPattern3[StoredF32] = MetricPattern3(
5481
5275
  client, "price_drawdown"
5482
5276
  )
@@ -5489,210 +5283,39 @@ class MetricsTree_Market_Dca_ClassAveragePrice:
5489
5283
  """Metrics tree node."""
5490
5284
 
5491
5285
  def __init__(self, client: BrkClientBase, base_path: str = ""):
5492
- self._2015: _0sdUsdPattern = _0sdUsdPattern(
5286
+ self._2015: MetricPattern4[Dollars] = MetricPattern4(
5493
5287
  client, "dca_class_2015_average_price"
5494
5288
  )
5495
- self._2016: _0sdUsdPattern = _0sdUsdPattern(
5289
+ self._2016: MetricPattern4[Dollars] = MetricPattern4(
5496
5290
  client, "dca_class_2016_average_price"
5497
5291
  )
5498
- self._2017: _0sdUsdPattern = _0sdUsdPattern(
5292
+ self._2017: MetricPattern4[Dollars] = MetricPattern4(
5499
5293
  client, "dca_class_2017_average_price"
5500
5294
  )
5501
- self._2018: _0sdUsdPattern = _0sdUsdPattern(
5295
+ self._2018: MetricPattern4[Dollars] = MetricPattern4(
5502
5296
  client, "dca_class_2018_average_price"
5503
5297
  )
5504
- self._2019: _0sdUsdPattern = _0sdUsdPattern(
5298
+ self._2019: MetricPattern4[Dollars] = MetricPattern4(
5505
5299
  client, "dca_class_2019_average_price"
5506
5300
  )
5507
- self._2020: _0sdUsdPattern = _0sdUsdPattern(
5301
+ self._2020: MetricPattern4[Dollars] = MetricPattern4(
5508
5302
  client, "dca_class_2020_average_price"
5509
5303
  )
5510
- self._2021: _0sdUsdPattern = _0sdUsdPattern(
5304
+ self._2021: MetricPattern4[Dollars] = MetricPattern4(
5511
5305
  client, "dca_class_2021_average_price"
5512
5306
  )
5513
- self._2022: _0sdUsdPattern = _0sdUsdPattern(
5307
+ self._2022: MetricPattern4[Dollars] = MetricPattern4(
5514
5308
  client, "dca_class_2022_average_price"
5515
5309
  )
5516
- self._2023: _0sdUsdPattern = _0sdUsdPattern(
5310
+ self._2023: MetricPattern4[Dollars] = MetricPattern4(
5517
5311
  client, "dca_class_2023_average_price"
5518
5312
  )
5519
- self._2024: _0sdUsdPattern = _0sdUsdPattern(
5313
+ self._2024: MetricPattern4[Dollars] = MetricPattern4(
5520
5314
  client, "dca_class_2024_average_price"
5521
5315
  )
5522
- self._2025: _0sdUsdPattern = _0sdUsdPattern(
5316
+ self._2025: MetricPattern4[Dollars] = MetricPattern4(
5523
5317
  client, "dca_class_2025_average_price"
5524
5318
  )
5525
- self._2026: _0sdUsdPattern = _0sdUsdPattern(
5526
- client, "dca_class_2026_average_price"
5527
- )
5528
-
5529
-
5530
- class MetricsTree_Market_Dca_ClassDaysInLoss:
5531
- """Metrics tree node."""
5532
-
5533
- def __init__(self, client: BrkClientBase, base_path: str = ""):
5534
- self._2015: MetricPattern4[StoredU32] = MetricPattern4(
5535
- client, "dca_class_2015_days_in_loss"
5536
- )
5537
- self._2016: MetricPattern4[StoredU32] = MetricPattern4(
5538
- client, "dca_class_2016_days_in_loss"
5539
- )
5540
- self._2017: MetricPattern4[StoredU32] = MetricPattern4(
5541
- client, "dca_class_2017_days_in_loss"
5542
- )
5543
- self._2018: MetricPattern4[StoredU32] = MetricPattern4(
5544
- client, "dca_class_2018_days_in_loss"
5545
- )
5546
- self._2019: MetricPattern4[StoredU32] = MetricPattern4(
5547
- client, "dca_class_2019_days_in_loss"
5548
- )
5549
- self._2020: MetricPattern4[StoredU32] = MetricPattern4(
5550
- client, "dca_class_2020_days_in_loss"
5551
- )
5552
- self._2021: MetricPattern4[StoredU32] = MetricPattern4(
5553
- client, "dca_class_2021_days_in_loss"
5554
- )
5555
- self._2022: MetricPattern4[StoredU32] = MetricPattern4(
5556
- client, "dca_class_2022_days_in_loss"
5557
- )
5558
- self._2023: MetricPattern4[StoredU32] = MetricPattern4(
5559
- client, "dca_class_2023_days_in_loss"
5560
- )
5561
- self._2024: MetricPattern4[StoredU32] = MetricPattern4(
5562
- client, "dca_class_2024_days_in_loss"
5563
- )
5564
- self._2025: MetricPattern4[StoredU32] = MetricPattern4(
5565
- client, "dca_class_2025_days_in_loss"
5566
- )
5567
- self._2026: MetricPattern4[StoredU32] = MetricPattern4(
5568
- client, "dca_class_2026_days_in_loss"
5569
- )
5570
-
5571
-
5572
- class MetricsTree_Market_Dca_ClassDaysInProfit:
5573
- """Metrics tree node."""
5574
-
5575
- def __init__(self, client: BrkClientBase, base_path: str = ""):
5576
- self._2015: MetricPattern4[StoredU32] = MetricPattern4(
5577
- client, "dca_class_2015_days_in_profit"
5578
- )
5579
- self._2016: MetricPattern4[StoredU32] = MetricPattern4(
5580
- client, "dca_class_2016_days_in_profit"
5581
- )
5582
- self._2017: MetricPattern4[StoredU32] = MetricPattern4(
5583
- client, "dca_class_2017_days_in_profit"
5584
- )
5585
- self._2018: MetricPattern4[StoredU32] = MetricPattern4(
5586
- client, "dca_class_2018_days_in_profit"
5587
- )
5588
- self._2019: MetricPattern4[StoredU32] = MetricPattern4(
5589
- client, "dca_class_2019_days_in_profit"
5590
- )
5591
- self._2020: MetricPattern4[StoredU32] = MetricPattern4(
5592
- client, "dca_class_2020_days_in_profit"
5593
- )
5594
- self._2021: MetricPattern4[StoredU32] = MetricPattern4(
5595
- client, "dca_class_2021_days_in_profit"
5596
- )
5597
- self._2022: MetricPattern4[StoredU32] = MetricPattern4(
5598
- client, "dca_class_2022_days_in_profit"
5599
- )
5600
- self._2023: MetricPattern4[StoredU32] = MetricPattern4(
5601
- client, "dca_class_2023_days_in_profit"
5602
- )
5603
- self._2024: MetricPattern4[StoredU32] = MetricPattern4(
5604
- client, "dca_class_2024_days_in_profit"
5605
- )
5606
- self._2025: MetricPattern4[StoredU32] = MetricPattern4(
5607
- client, "dca_class_2025_days_in_profit"
5608
- )
5609
- self._2026: MetricPattern4[StoredU32] = MetricPattern4(
5610
- client, "dca_class_2026_days_in_profit"
5611
- )
5612
-
5613
-
5614
- class MetricsTree_Market_Dca_ClassMaxReturn:
5615
- """Metrics tree node."""
5616
-
5617
- def __init__(self, client: BrkClientBase, base_path: str = ""):
5618
- self._2015: MetricPattern4[StoredF32] = MetricPattern4(
5619
- client, "dca_class_2015_max_return"
5620
- )
5621
- self._2016: MetricPattern4[StoredF32] = MetricPattern4(
5622
- client, "dca_class_2016_max_return"
5623
- )
5624
- self._2017: MetricPattern4[StoredF32] = MetricPattern4(
5625
- client, "dca_class_2017_max_return"
5626
- )
5627
- self._2018: MetricPattern4[StoredF32] = MetricPattern4(
5628
- client, "dca_class_2018_max_return"
5629
- )
5630
- self._2019: MetricPattern4[StoredF32] = MetricPattern4(
5631
- client, "dca_class_2019_max_return"
5632
- )
5633
- self._2020: MetricPattern4[StoredF32] = MetricPattern4(
5634
- client, "dca_class_2020_max_return"
5635
- )
5636
- self._2021: MetricPattern4[StoredF32] = MetricPattern4(
5637
- client, "dca_class_2021_max_return"
5638
- )
5639
- self._2022: MetricPattern4[StoredF32] = MetricPattern4(
5640
- client, "dca_class_2022_max_return"
5641
- )
5642
- self._2023: MetricPattern4[StoredF32] = MetricPattern4(
5643
- client, "dca_class_2023_max_return"
5644
- )
5645
- self._2024: MetricPattern4[StoredF32] = MetricPattern4(
5646
- client, "dca_class_2024_max_return"
5647
- )
5648
- self._2025: MetricPattern4[StoredF32] = MetricPattern4(
5649
- client, "dca_class_2025_max_return"
5650
- )
5651
- self._2026: MetricPattern4[StoredF32] = MetricPattern4(
5652
- client, "dca_class_2026_max_return"
5653
- )
5654
-
5655
-
5656
- class MetricsTree_Market_Dca_ClassReturns:
5657
- """Metrics tree node."""
5658
-
5659
- def __init__(self, client: BrkClientBase, base_path: str = ""):
5660
- self._2015: MetricPattern4[StoredF32] = MetricPattern4(
5661
- client, "dca_class_2015_returns"
5662
- )
5663
- self._2016: MetricPattern4[StoredF32] = MetricPattern4(
5664
- client, "dca_class_2016_returns"
5665
- )
5666
- self._2017: MetricPattern4[StoredF32] = MetricPattern4(
5667
- client, "dca_class_2017_returns"
5668
- )
5669
- self._2018: MetricPattern4[StoredF32] = MetricPattern4(
5670
- client, "dca_class_2018_returns"
5671
- )
5672
- self._2019: MetricPattern4[StoredF32] = MetricPattern4(
5673
- client, "dca_class_2019_returns"
5674
- )
5675
- self._2020: MetricPattern4[StoredF32] = MetricPattern4(
5676
- client, "dca_class_2020_returns"
5677
- )
5678
- self._2021: MetricPattern4[StoredF32] = MetricPattern4(
5679
- client, "dca_class_2021_returns"
5680
- )
5681
- self._2022: MetricPattern4[StoredF32] = MetricPattern4(
5682
- client, "dca_class_2022_returns"
5683
- )
5684
- self._2023: MetricPattern4[StoredF32] = MetricPattern4(
5685
- client, "dca_class_2023_returns"
5686
- )
5687
- self._2024: MetricPattern4[StoredF32] = MetricPattern4(
5688
- client, "dca_class_2024_returns"
5689
- )
5690
- self._2025: MetricPattern4[StoredF32] = MetricPattern4(
5691
- client, "dca_class_2025_returns"
5692
- )
5693
- self._2026: MetricPattern4[StoredF32] = MetricPattern4(
5694
- client, "dca_class_2026_returns"
5695
- )
5696
5319
 
5697
5320
 
5698
5321
  class MetricsTree_Market_Dca_ClassStack:
@@ -5710,25 +5333,6 @@ class MetricsTree_Market_Dca_ClassStack:
5710
5333
  self._2023: _2015Pattern = _2015Pattern(client, "dca_class_2023_stack")
5711
5334
  self._2024: _2015Pattern = _2015Pattern(client, "dca_class_2024_stack")
5712
5335
  self._2025: _2015Pattern = _2015Pattern(client, "dca_class_2025_stack")
5713
- self._2026: _2015Pattern = _2015Pattern(client, "dca_class_2026_stack")
5714
-
5715
-
5716
- class MetricsTree_Market_Dca_PeriodAveragePrice:
5717
- """Metrics tree node."""
5718
-
5719
- def __init__(self, client: BrkClientBase, base_path: str = ""):
5720
- self._10y: _0sdUsdPattern = _0sdUsdPattern(client, "10y_dca_average_price")
5721
- self._1m: _0sdUsdPattern = _0sdUsdPattern(client, "1m_dca_average_price")
5722
- self._1w: _0sdUsdPattern = _0sdUsdPattern(client, "1w_dca_average_price")
5723
- self._1y: _0sdUsdPattern = _0sdUsdPattern(client, "1y_dca_average_price")
5724
- self._2y: _0sdUsdPattern = _0sdUsdPattern(client, "2y_dca_average_price")
5725
- self._3m: _0sdUsdPattern = _0sdUsdPattern(client, "3m_dca_average_price")
5726
- self._3y: _0sdUsdPattern = _0sdUsdPattern(client, "3y_dca_average_price")
5727
- self._4y: _0sdUsdPattern = _0sdUsdPattern(client, "4y_dca_average_price")
5728
- self._5y: _0sdUsdPattern = _0sdUsdPattern(client, "5y_dca_average_price")
5729
- self._6m: _0sdUsdPattern = _0sdUsdPattern(client, "6m_dca_average_price")
5730
- self._6y: _0sdUsdPattern = _0sdUsdPattern(client, "6y_dca_average_price")
5731
- self._8y: _0sdUsdPattern = _0sdUsdPattern(client, "8y_dca_average_price")
5732
5336
 
5733
5337
 
5734
5338
  class MetricsTree_Market_Dca:
@@ -5738,60 +5342,21 @@ class MetricsTree_Market_Dca:
5738
5342
  self.class_average_price: MetricsTree_Market_Dca_ClassAveragePrice = (
5739
5343
  MetricsTree_Market_Dca_ClassAveragePrice(client)
5740
5344
  )
5741
- self.class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss = (
5742
- MetricsTree_Market_Dca_ClassDaysInLoss(client)
5743
- )
5744
- self.class_days_in_profit: MetricsTree_Market_Dca_ClassDaysInProfit = (
5745
- MetricsTree_Market_Dca_ClassDaysInProfit(client)
5746
- )
5747
- self.class_max_drawdown: ClassDaysInLossPattern[StoredF32] = (
5748
- ClassDaysInLossPattern(client, "dca_class")
5749
- )
5750
- self.class_max_return: MetricsTree_Market_Dca_ClassMaxReturn = (
5751
- MetricsTree_Market_Dca_ClassMaxReturn(client)
5752
- )
5753
- self.class_returns: MetricsTree_Market_Dca_ClassReturns = (
5754
- MetricsTree_Market_Dca_ClassReturns(client)
5345
+ self.class_returns: ClassAveragePricePattern[StoredF32] = (
5346
+ ClassAveragePricePattern(client, "dca_class")
5755
5347
  )
5756
5348
  self.class_stack: MetricsTree_Market_Dca_ClassStack = (
5757
5349
  MetricsTree_Market_Dca_ClassStack(client)
5758
5350
  )
5759
- self.period_average_price: MetricsTree_Market_Dca_PeriodAveragePrice = (
5760
- MetricsTree_Market_Dca_PeriodAveragePrice(client)
5351
+ self.period_average_price: PeriodAveragePricePattern[Dollars] = (
5352
+ PeriodAveragePricePattern(client, "dca_average_price")
5761
5353
  )
5762
5354
  self.period_cagr: PeriodCagrPattern = PeriodCagrPattern(client, "dca_cagr")
5763
- self.period_days_in_loss: PeriodDaysInLossPattern[StoredU32] = (
5764
- PeriodDaysInLossPattern(client, "dca_days_in_loss")
5765
- )
5766
- self.period_days_in_profit: PeriodDaysInLossPattern[StoredU32] = (
5767
- PeriodDaysInLossPattern(client, "dca_days_in_profit")
5768
- )
5769
- self.period_lump_sum_days_in_loss: PeriodDaysInLossPattern[StoredU32] = (
5770
- PeriodDaysInLossPattern(client, "lump_sum_days_in_loss")
5771
- )
5772
- self.period_lump_sum_days_in_profit: PeriodDaysInLossPattern[StoredU32] = (
5773
- PeriodDaysInLossPattern(client, "lump_sum_days_in_profit")
5774
- )
5775
- self.period_lump_sum_max_drawdown: PeriodDaysInLossPattern[StoredF32] = (
5776
- PeriodDaysInLossPattern(client, "lump_sum_max_drawdown")
5777
- )
5778
- self.period_lump_sum_max_return: PeriodDaysInLossPattern[StoredF32] = (
5779
- PeriodDaysInLossPattern(client, "lump_sum_max_return")
5780
- )
5781
- self.period_lump_sum_returns: PeriodDaysInLossPattern[StoredF32] = (
5782
- PeriodDaysInLossPattern(client, "lump_sum_returns")
5783
- )
5784
5355
  self.period_lump_sum_stack: PeriodLumpSumStackPattern = (
5785
5356
  PeriodLumpSumStackPattern(client, "lump_sum_stack")
5786
5357
  )
5787
- self.period_max_drawdown: PeriodDaysInLossPattern[StoredF32] = (
5788
- PeriodDaysInLossPattern(client, "dca_max_drawdown")
5789
- )
5790
- self.period_max_return: PeriodDaysInLossPattern[StoredF32] = (
5791
- PeriodDaysInLossPattern(client, "dca_max_return")
5792
- )
5793
- self.period_returns: PeriodDaysInLossPattern[StoredF32] = (
5794
- PeriodDaysInLossPattern(client, "dca_returns")
5358
+ self.period_returns: PeriodAveragePricePattern[StoredF32] = (
5359
+ PeriodAveragePricePattern(client, "dca_returns")
5795
5360
  )
5796
5361
  self.period_stack: PeriodLumpSumStackPattern = PeriodLumpSumStackPattern(
5797
5362
  client, "dca_stack"
@@ -5843,25 +5408,6 @@ class MetricsTree_Market_Indicators:
5843
5408
  )
5844
5409
 
5845
5410
 
5846
- class MetricsTree_Market_Lookback:
5847
- """Metrics tree node."""
5848
-
5849
- def __init__(self, client: BrkClientBase, base_path: str = ""):
5850
- self._10y: _0sdUsdPattern = _0sdUsdPattern(client, "price_10y_ago")
5851
- self._1d: _0sdUsdPattern = _0sdUsdPattern(client, "price_1d_ago")
5852
- self._1m: _0sdUsdPattern = _0sdUsdPattern(client, "price_1m_ago")
5853
- self._1w: _0sdUsdPattern = _0sdUsdPattern(client, "price_1w_ago")
5854
- self._1y: _0sdUsdPattern = _0sdUsdPattern(client, "price_1y_ago")
5855
- self._2y: _0sdUsdPattern = _0sdUsdPattern(client, "price_2y_ago")
5856
- self._3m: _0sdUsdPattern = _0sdUsdPattern(client, "price_3m_ago")
5857
- self._3y: _0sdUsdPattern = _0sdUsdPattern(client, "price_3y_ago")
5858
- self._4y: _0sdUsdPattern = _0sdUsdPattern(client, "price_4y_ago")
5859
- self._5y: _0sdUsdPattern = _0sdUsdPattern(client, "price_5y_ago")
5860
- self._6m: _0sdUsdPattern = _0sdUsdPattern(client, "price_6m_ago")
5861
- self._6y: _0sdUsdPattern = _0sdUsdPattern(client, "price_6y_ago")
5862
- self._8y: _0sdUsdPattern = _0sdUsdPattern(client, "price_8y_ago")
5863
-
5864
-
5865
5411
  class MetricsTree_Market_MovingAverage:
5866
5412
  """Metrics tree node."""
5867
5413
 
@@ -5908,10 +5454,10 @@ class MetricsTree_Market_MovingAverage:
5908
5454
  self.price_200d_sma: Price111dSmaPattern = Price111dSmaPattern(
5909
5455
  client, "price_200d_sma"
5910
5456
  )
5911
- self.price_200d_sma_x0_8: _0sdUsdPattern = _0sdUsdPattern(
5457
+ self.price_200d_sma_x0_8: MetricPattern4[Dollars] = MetricPattern4(
5912
5458
  client, "price_200d_sma_x0_8"
5913
5459
  )
5914
- self.price_200d_sma_x2_4: _0sdUsdPattern = _0sdUsdPattern(
5460
+ self.price_200d_sma_x2_4: MetricPattern4[Dollars] = MetricPattern4(
5915
5461
  client, "price_200d_sma_x2_4"
5916
5462
  )
5917
5463
  self.price_200w_ema: Price111dSmaPattern = Price111dSmaPattern(
@@ -5944,7 +5490,7 @@ class MetricsTree_Market_MovingAverage:
5944
5490
  self.price_350d_sma: Price111dSmaPattern = Price111dSmaPattern(
5945
5491
  client, "price_350d_sma"
5946
5492
  )
5947
- self.price_350d_sma_x2: _0sdUsdPattern = _0sdUsdPattern(
5493
+ self.price_350d_sma_x2: MetricPattern4[Dollars] = MetricPattern4(
5948
5494
  client, "price_350d_sma_x2"
5949
5495
  )
5950
5496
  self.price_4y_ema: Price111dSmaPattern = Price111dSmaPattern(
@@ -5977,17 +5523,33 @@ class MetricsTree_Market_Range:
5977
5523
  """Metrics tree node."""
5978
5524
 
5979
5525
  def __init__(self, client: BrkClientBase, base_path: str = ""):
5980
- self.price_1m_max: _0sdUsdPattern = _0sdUsdPattern(client, "price_1m_max")
5981
- self.price_1m_min: _0sdUsdPattern = _0sdUsdPattern(client, "price_1m_min")
5982
- self.price_1w_max: _0sdUsdPattern = _0sdUsdPattern(client, "price_1w_max")
5983
- self.price_1w_min: _0sdUsdPattern = _0sdUsdPattern(client, "price_1w_min")
5984
- self.price_1y_max: _0sdUsdPattern = _0sdUsdPattern(client, "price_1y_max")
5985
- self.price_1y_min: _0sdUsdPattern = _0sdUsdPattern(client, "price_1y_min")
5526
+ self.price_1m_max: MetricPattern4[Dollars] = MetricPattern4(
5527
+ client, "price_1m_max"
5528
+ )
5529
+ self.price_1m_min: MetricPattern4[Dollars] = MetricPattern4(
5530
+ client, "price_1m_min"
5531
+ )
5532
+ self.price_1w_max: MetricPattern4[Dollars] = MetricPattern4(
5533
+ client, "price_1w_max"
5534
+ )
5535
+ self.price_1w_min: MetricPattern4[Dollars] = MetricPattern4(
5536
+ client, "price_1w_min"
5537
+ )
5538
+ self.price_1y_max: MetricPattern4[Dollars] = MetricPattern4(
5539
+ client, "price_1y_max"
5540
+ )
5541
+ self.price_1y_min: MetricPattern4[Dollars] = MetricPattern4(
5542
+ client, "price_1y_min"
5543
+ )
5986
5544
  self.price_2w_choppiness_index: MetricPattern4[StoredF32] = MetricPattern4(
5987
5545
  client, "price_2w_choppiness_index"
5988
5546
  )
5989
- self.price_2w_max: _0sdUsdPattern = _0sdUsdPattern(client, "price_2w_max")
5990
- self.price_2w_min: _0sdUsdPattern = _0sdUsdPattern(client, "price_2w_min")
5547
+ self.price_2w_max: MetricPattern4[Dollars] = MetricPattern4(
5548
+ client, "price_2w_max"
5549
+ )
5550
+ self.price_2w_min: MetricPattern4[Dollars] = MetricPattern4(
5551
+ client, "price_2w_min"
5552
+ )
5991
5553
  self.price_true_range: MetricPattern6[StoredF32] = MetricPattern6(
5992
5554
  client, "price_true_range"
5993
5555
  )
@@ -6084,7 +5646,7 @@ class MetricsTree_Market:
6084
5646
  self.indicators: MetricsTree_Market_Indicators = MetricsTree_Market_Indicators(
6085
5647
  client
6086
5648
  )
6087
- self.lookback: MetricsTree_Market_Lookback = MetricsTree_Market_Lookback(client)
5649
+ self.lookback: LookbackPattern[Dollars] = LookbackPattern(client, "price")
6088
5650
  self.moving_average: MetricsTree_Market_MovingAverage = (
6089
5651
  MetricsTree_Market_MovingAverage(client)
6090
5652
  )
@@ -6347,12 +5909,30 @@ class MetricsTree_Price_Cents:
6347
5909
  )
6348
5910
 
6349
5911
 
6350
- class MetricsTree_Price_Sats:
5912
+ class MetricsTree_Price_Oracle:
5913
+ """Metrics tree node."""
5914
+
5915
+ def __init__(self, client: BrkClientBase, base_path: str = ""):
5916
+ self.ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(
5917
+ client, "oracle_ohlc_cents"
5918
+ )
5919
+ self.ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(
5920
+ client, "oracle_ohlc"
5921
+ )
5922
+ self.price_cents: MetricPattern11[Cents] = MetricPattern11(
5923
+ client, "oracle_price_cents"
5924
+ )
5925
+ self.tx_count: MetricPattern6[StoredU32] = MetricPattern6(
5926
+ client, "oracle_tx_count"
5927
+ )
5928
+
5929
+
5930
+ class MetricsTree_Price_Usd:
6351
5931
  """Metrics tree node."""
6352
5932
 
6353
5933
  def __init__(self, client: BrkClientBase, base_path: str = ""):
6354
- self.ohlc: MetricPattern1[OHLCSats] = MetricPattern1(client, "price_ohlc_sats")
6355
- self.split: SplitPattern2[Sats] = SplitPattern2(client, "price_sats")
5934
+ self.ohlc: MetricPattern1[OHLCDollars] = MetricPattern1(client, "price_ohlc")
5935
+ self.split: SplitPattern2[Dollars] = SplitPattern2(client, "price")
6356
5936
 
6357
5937
 
6358
5938
  class MetricsTree_Price:
@@ -6360,8 +5940,9 @@ class MetricsTree_Price:
6360
5940
 
6361
5941
  def __init__(self, client: BrkClientBase, base_path: str = ""):
6362
5942
  self.cents: MetricsTree_Price_Cents = MetricsTree_Price_Cents(client)
6363
- self.sats: MetricsTree_Price_Sats = MetricsTree_Price_Sats(client)
6364
- self.usd: SatsPattern[OHLCDollars] = SatsPattern(client, "price")
5943
+ self.oracle: MetricsTree_Price_Oracle = MetricsTree_Price_Oracle(client)
5944
+ self.sats: SatsPattern[OHLCSats] = SatsPattern(client, "price")
5945
+ self.usd: MetricsTree_Price_Usd = MetricsTree_Price_Usd(client)
6365
5946
 
6366
5947
 
6367
5948
  class MetricsTree_Scripts_Count:
@@ -6492,12 +6073,39 @@ class MetricsTree_Transactions_Count:
6492
6073
  self.tx_count: DollarsPattern[StoredU64] = DollarsPattern(client, "tx_count")
6493
6074
 
6494
6075
 
6076
+ class MetricsTree_Transactions_Fees_Fee_Dollars:
6077
+ """Metrics tree node."""
6078
+
6079
+ def __init__(self, client: BrkClientBase, base_path: str = ""):
6080
+ self.average: MetricPattern1[Dollars] = MetricPattern1(
6081
+ client, "fee_usd_average"
6082
+ )
6083
+ self.cumulative: MetricPattern2[Dollars] = MetricPattern2(
6084
+ client, "fee_usd_cumulative"
6085
+ )
6086
+ self.height_cumulative: MetricPattern11[Dollars] = MetricPattern11(
6087
+ client, "fee_usd_cumulative"
6088
+ )
6089
+ self.max: MetricPattern1[Dollars] = MetricPattern1(client, "fee_usd_max")
6090
+ self.median: MetricPattern11[Dollars] = MetricPattern11(
6091
+ client, "fee_usd_median"
6092
+ )
6093
+ self.min: MetricPattern1[Dollars] = MetricPattern1(client, "fee_usd_min")
6094
+ self.pct10: MetricPattern11[Dollars] = MetricPattern11(client, "fee_usd_pct10")
6095
+ self.pct25: MetricPattern11[Dollars] = MetricPattern11(client, "fee_usd_pct25")
6096
+ self.pct75: MetricPattern11[Dollars] = MetricPattern11(client, "fee_usd_pct75")
6097
+ self.pct90: MetricPattern11[Dollars] = MetricPattern11(client, "fee_usd_pct90")
6098
+ self.sum: MetricPattern1[Dollars] = MetricPattern1(client, "fee_usd_sum")
6099
+
6100
+
6495
6101
  class MetricsTree_Transactions_Fees_Fee:
6496
6102
  """Metrics tree node."""
6497
6103
 
6498
6104
  def __init__(self, client: BrkClientBase, base_path: str = ""):
6499
6105
  self.bitcoin: CountPattern2[Bitcoin] = CountPattern2(client, "fee_btc")
6500
- self.dollars: CountPattern2[Dollars] = CountPattern2(client, "fee_usd")
6106
+ self.dollars: MetricsTree_Transactions_Fees_Fee_Dollars = (
6107
+ MetricsTree_Transactions_Fees_Fee_Dollars(client)
6108
+ )
6501
6109
  self.sats: CountPattern2[Sats] = CountPattern2(client, "fee")
6502
6110
  self.txindex: MetricPattern27[Sats] = MetricPattern27(client, "fee")
6503
6111
 
@@ -6544,9 +6152,6 @@ class MetricsTree_Transactions_Volume:
6544
6152
  self.outputs_per_sec: MetricPattern4[StoredF32] = MetricPattern4(
6545
6153
  client, "outputs_per_sec"
6546
6154
  )
6547
- self.received_sum: ActiveSupplyPattern = ActiveSupplyPattern(
6548
- client, "received_sum"
6549
- )
6550
6155
  self.sent_sum: ActiveSupplyPattern = ActiveSupplyPattern(client, "sent_sum")
6551
6156
  self.tx_per_sec: MetricPattern4[StoredF32] = MetricPattern4(
6552
6157
  client, "tx_per_sec"
@@ -6620,7 +6225,7 @@ class MetricsTree:
6620
6225
  class BrkClient(BrkClientBase):
6621
6226
  """Main BRK client with metrics tree and API methods."""
6622
6227
 
6623
- VERSION = "v0.1.0-beta.1"
6228
+ VERSION = "v0.1.0-alpha.2"
6624
6229
 
6625
6230
  INDEXES = [
6626
6231
  "dateindex",
@@ -6650,7 +6255,6 @@ class BrkClient(BrkClientBase):
6650
6255
  "yearindex",
6651
6256
  "loadedaddressindex",
6652
6257
  "emptyaddressindex",
6653
- "pairoutputindex",
6654
6258
  ]
6655
6259
 
6656
6260
  POOL_ID_TO_POOL_NAME = {
@@ -6820,11 +6424,11 @@ class BrkClient(BrkClientBase):
6820
6424
  }
6821
6425
 
6822
6426
  EPOCH_NAMES = {
6823
- "_0": {"id": "epoch_0", "short": "0", "long": "Epoch 0"},
6824
- "_1": {"id": "epoch_1", "short": "1", "long": "Epoch 1"},
6825
- "_2": {"id": "epoch_2", "short": "2", "long": "Epoch 2"},
6826
- "_3": {"id": "epoch_3", "short": "3", "long": "Epoch 3"},
6827
- "_4": {"id": "epoch_4", "short": "4", "long": "Epoch 4"},
6427
+ "_0": {"id": "epoch_0", "short": "Epoch 0", "long": "Epoch 0"},
6428
+ "_1": {"id": "epoch_1", "short": "Epoch 1", "long": "Epoch 1"},
6429
+ "_2": {"id": "epoch_2", "short": "Epoch 2", "long": "Epoch 2"},
6430
+ "_3": {"id": "epoch_3", "short": "Epoch 3", "long": "Epoch 3"},
6431
+ "_4": {"id": "epoch_4", "short": "Epoch 4", "long": "Epoch 4"},
6828
6432
  }
6829
6433
 
6830
6434
  YEAR_NAMES = {
@@ -6883,145 +6487,209 @@ class BrkClient(BrkClientBase):
6883
6487
  }
6884
6488
 
6885
6489
  AGE_RANGE_NAMES = {
6886
- "up_to_1h": {"id": "under_1h_old", "short": "<1h", "long": "Under 1 Hour Old"},
6490
+ "up_to_1h": {"id": "up_to_1h_old", "short": "<1h", "long": "Up to 1 Hour Old"},
6887
6491
  "_1h_to_1d": {
6888
- "id": "1h_to_1d_old",
6492
+ "id": "at_least_1h_up_to_1d_old",
6889
6493
  "short": "1h-1d",
6890
6494
  "long": "1 Hour to 1 Day Old",
6891
6495
  },
6892
6496
  "_1d_to_1w": {
6893
- "id": "1d_to_1w_old",
6497
+ "id": "at_least_1d_up_to_1w_old",
6894
6498
  "short": "1d-1w",
6895
6499
  "long": "1 Day to 1 Week Old",
6896
6500
  },
6897
6501
  "_1w_to_1m": {
6898
- "id": "1w_to_1m_old",
6502
+ "id": "at_least_1w_up_to_1m_old",
6899
6503
  "short": "1w-1m",
6900
6504
  "long": "1 Week to 1 Month Old",
6901
6505
  },
6902
6506
  "_1m_to_2m": {
6903
- "id": "1m_to_2m_old",
6507
+ "id": "at_least_1m_up_to_2m_old",
6904
6508
  "short": "1m-2m",
6905
6509
  "long": "1 to 2 Months Old",
6906
6510
  },
6907
6511
  "_2m_to_3m": {
6908
- "id": "2m_to_3m_old",
6512
+ "id": "at_least_2m_up_to_3m_old",
6909
6513
  "short": "2m-3m",
6910
6514
  "long": "2 to 3 Months Old",
6911
6515
  },
6912
6516
  "_3m_to_4m": {
6913
- "id": "3m_to_4m_old",
6517
+ "id": "at_least_3m_up_to_4m_old",
6914
6518
  "short": "3m-4m",
6915
6519
  "long": "3 to 4 Months Old",
6916
6520
  },
6917
6521
  "_4m_to_5m": {
6918
- "id": "4m_to_5m_old",
6522
+ "id": "at_least_4m_up_to_5m_old",
6919
6523
  "short": "4m-5m",
6920
6524
  "long": "4 to 5 Months Old",
6921
6525
  },
6922
6526
  "_5m_to_6m": {
6923
- "id": "5m_to_6m_old",
6527
+ "id": "at_least_5m_up_to_6m_old",
6924
6528
  "short": "5m-6m",
6925
6529
  "long": "5 to 6 Months Old",
6926
6530
  },
6927
6531
  "_6m_to_1y": {
6928
- "id": "6m_to_1y_old",
6532
+ "id": "at_least_6m_up_to_1y_old",
6929
6533
  "short": "6m-1y",
6930
6534
  "long": "6 Months to 1 Year Old",
6931
6535
  },
6932
6536
  "_1y_to_2y": {
6933
- "id": "1y_to_2y_old",
6537
+ "id": "at_least_1y_up_to_2y_old",
6934
6538
  "short": "1y-2y",
6935
6539
  "long": "1 to 2 Years Old",
6936
6540
  },
6937
6541
  "_2y_to_3y": {
6938
- "id": "2y_to_3y_old",
6542
+ "id": "at_least_2y_up_to_3y_old",
6939
6543
  "short": "2y-3y",
6940
6544
  "long": "2 to 3 Years Old",
6941
6545
  },
6942
6546
  "_3y_to_4y": {
6943
- "id": "3y_to_4y_old",
6547
+ "id": "at_least_3y_up_to_4y_old",
6944
6548
  "short": "3y-4y",
6945
6549
  "long": "3 to 4 Years Old",
6946
6550
  },
6947
6551
  "_4y_to_5y": {
6948
- "id": "4y_to_5y_old",
6552
+ "id": "at_least_4y_up_to_5y_old",
6949
6553
  "short": "4y-5y",
6950
6554
  "long": "4 to 5 Years Old",
6951
6555
  },
6952
6556
  "_5y_to_6y": {
6953
- "id": "5y_to_6y_old",
6557
+ "id": "at_least_5y_up_to_6y_old",
6954
6558
  "short": "5y-6y",
6955
6559
  "long": "5 to 6 Years Old",
6956
6560
  },
6957
6561
  "_6y_to_7y": {
6958
- "id": "6y_to_7y_old",
6562
+ "id": "at_least_6y_up_to_7y_old",
6959
6563
  "short": "6y-7y",
6960
6564
  "long": "6 to 7 Years Old",
6961
6565
  },
6962
6566
  "_7y_to_8y": {
6963
- "id": "7y_to_8y_old",
6567
+ "id": "at_least_7y_up_to_8y_old",
6964
6568
  "short": "7y-8y",
6965
6569
  "long": "7 to 8 Years Old",
6966
6570
  },
6967
6571
  "_8y_to_10y": {
6968
- "id": "8y_to_10y_old",
6572
+ "id": "at_least_8y_up_to_10y_old",
6969
6573
  "short": "8y-10y",
6970
6574
  "long": "8 to 10 Years Old",
6971
6575
  },
6972
6576
  "_10y_to_12y": {
6973
- "id": "10y_to_12y_old",
6577
+ "id": "at_least_10y_up_to_12y_old",
6974
6578
  "short": "10y-12y",
6975
6579
  "long": "10 to 12 Years Old",
6976
6580
  },
6977
6581
  "_12y_to_15y": {
6978
- "id": "12y_to_15y_old",
6582
+ "id": "at_least_12y_up_to_15y_old",
6979
6583
  "short": "12y-15y",
6980
6584
  "long": "12 to 15 Years Old",
6981
6585
  },
6982
- "from_15y": {"id": "over_15y_old", "short": "15y+", "long": "15+ Years Old"},
6586
+ "from_15y": {
6587
+ "id": "at_least_15y_old",
6588
+ "short": "15y+",
6589
+ "long": "15+ Years Old",
6590
+ },
6983
6591
  }
6984
6592
 
6985
6593
  MAX_AGE_NAMES = {
6986
- "_1w": {"id": "under_1w_old", "short": "<1w", "long": "Under 1 Week Old"},
6987
- "_1m": {"id": "under_1m_old", "short": "<1m", "long": "Under 1 Month Old"},
6988
- "_2m": {"id": "under_2m_old", "short": "<2m", "long": "Under 2 Months Old"},
6989
- "_3m": {"id": "under_3m_old", "short": "<3m", "long": "Under 3 Months Old"},
6990
- "_4m": {"id": "under_4m_old", "short": "<4m", "long": "Under 4 Months Old"},
6991
- "_5m": {"id": "under_5m_old", "short": "<5m", "long": "Under 5 Months Old"},
6992
- "_6m": {"id": "under_6m_old", "short": "<6m", "long": "Under 6 Months Old"},
6993
- "_1y": {"id": "under_1y_old", "short": "<1y", "long": "Under 1 Year Old"},
6994
- "_2y": {"id": "under_2y_old", "short": "<2y", "long": "Under 2 Years Old"},
6995
- "_3y": {"id": "under_3y_old", "short": "<3y", "long": "Under 3 Years Old"},
6996
- "_4y": {"id": "under_4y_old", "short": "<4y", "long": "Under 4 Years Old"},
6997
- "_5y": {"id": "under_5y_old", "short": "<5y", "long": "Under 5 Years Old"},
6998
- "_6y": {"id": "under_6y_old", "short": "<6y", "long": "Under 6 Years Old"},
6999
- "_7y": {"id": "under_7y_old", "short": "<7y", "long": "Under 7 Years Old"},
7000
- "_8y": {"id": "under_8y_old", "short": "<8y", "long": "Under 8 Years Old"},
7001
- "_10y": {"id": "under_10y_old", "short": "<10y", "long": "Under 10 Years Old"},
7002
- "_12y": {"id": "under_12y_old", "short": "<12y", "long": "Under 12 Years Old"},
7003
- "_15y": {"id": "under_15y_old", "short": "<15y", "long": "Under 15 Years Old"},
6594
+ "_1w": {"id": "up_to_1w_old", "short": "<1w", "long": "Up to 1 Week Old"},
6595
+ "_1m": {"id": "up_to_1m_old", "short": "<1m", "long": "Up to 1 Month Old"},
6596
+ "_2m": {"id": "up_to_2m_old", "short": "<2m", "long": "Up to 2 Months Old"},
6597
+ "_3m": {"id": "up_to_3m_old", "short": "<3m", "long": "Up to 3 Months Old"},
6598
+ "_4m": {"id": "up_to_4m_old", "short": "<4m", "long": "Up to 4 Months Old"},
6599
+ "_5m": {"id": "up_to_5m_old", "short": "<5m", "long": "Up to 5 Months Old"},
6600
+ "_6m": {"id": "up_to_6m_old", "short": "<6m", "long": "Up to 6 Months Old"},
6601
+ "_1y": {"id": "up_to_1y_old", "short": "<1y", "long": "Up to 1 Year Old"},
6602
+ "_2y": {"id": "up_to_2y_old", "short": "<2y", "long": "Up to 2 Years Old"},
6603
+ "_3y": {"id": "up_to_3y_old", "short": "<3y", "long": "Up to 3 Years Old"},
6604
+ "_4y": {"id": "up_to_4y_old", "short": "<4y", "long": "Up to 4 Years Old"},
6605
+ "_5y": {"id": "up_to_5y_old", "short": "<5y", "long": "Up to 5 Years Old"},
6606
+ "_6y": {"id": "up_to_6y_old", "short": "<6y", "long": "Up to 6 Years Old"},
6607
+ "_7y": {"id": "up_to_7y_old", "short": "<7y", "long": "Up to 7 Years Old"},
6608
+ "_8y": {"id": "up_to_8y_old", "short": "<8y", "long": "Up to 8 Years Old"},
6609
+ "_10y": {"id": "up_to_10y_old", "short": "<10y", "long": "Up to 10 Years Old"},
6610
+ "_12y": {"id": "up_to_12y_old", "short": "<12y", "long": "Up to 12 Years Old"},
6611
+ "_15y": {"id": "up_to_15y_old", "short": "<15y", "long": "Up to 15 Years Old"},
7004
6612
  }
7005
6613
 
7006
6614
  MIN_AGE_NAMES = {
7007
- "_1d": {"id": "over_1d_old", "short": "1d+", "long": "Over 1 Day Old"},
7008
- "_1w": {"id": "over_1w_old", "short": "1w+", "long": "Over 1 Week Old"},
7009
- "_1m": {"id": "over_1m_old", "short": "1m+", "long": "Over 1 Month Old"},
7010
- "_2m": {"id": "over_2m_old", "short": "2m+", "long": "Over 2 Months Old"},
7011
- "_3m": {"id": "over_3m_old", "short": "3m+", "long": "Over 3 Months Old"},
7012
- "_4m": {"id": "over_4m_old", "short": "4m+", "long": "Over 4 Months Old"},
7013
- "_5m": {"id": "over_5m_old", "short": "5m+", "long": "Over 5 Months Old"},
7014
- "_6m": {"id": "over_6m_old", "short": "6m+", "long": "Over 6 Months Old"},
7015
- "_1y": {"id": "over_1y_old", "short": "1y+", "long": "Over 1 Year Old"},
7016
- "_2y": {"id": "over_2y_old", "short": "2y+", "long": "Over 2 Years Old"},
7017
- "_3y": {"id": "over_3y_old", "short": "3y+", "long": "Over 3 Years Old"},
7018
- "_4y": {"id": "over_4y_old", "short": "4y+", "long": "Over 4 Years Old"},
7019
- "_5y": {"id": "over_5y_old", "short": "5y+", "long": "Over 5 Years Old"},
7020
- "_6y": {"id": "over_6y_old", "short": "6y+", "long": "Over 6 Years Old"},
7021
- "_7y": {"id": "over_7y_old", "short": "7y+", "long": "Over 7 Years Old"},
7022
- "_8y": {"id": "over_8y_old", "short": "8y+", "long": "Over 8 Years Old"},
7023
- "_10y": {"id": "over_10y_old", "short": "10y+", "long": "Over 10 Years Old"},
7024
- "_12y": {"id": "over_12y_old", "short": "12y+", "long": "Over 12 Years Old"},
6615
+ "_1d": {"id": "at_least_1d_old", "short": "1d+", "long": "At Least 1 Day Old"},
6616
+ "_1w": {"id": "at_least_1w_old", "short": "1w+", "long": "At Least 1 Week Old"},
6617
+ "_1m": {
6618
+ "id": "at_least_1m_old",
6619
+ "short": "1m+",
6620
+ "long": "At Least 1 Month Old",
6621
+ },
6622
+ "_2m": {
6623
+ "id": "at_least_2m_old",
6624
+ "short": "2m+",
6625
+ "long": "At Least 2 Months Old",
6626
+ },
6627
+ "_3m": {
6628
+ "id": "at_least_3m_old",
6629
+ "short": "3m+",
6630
+ "long": "At Least 3 Months Old",
6631
+ },
6632
+ "_4m": {
6633
+ "id": "at_least_4m_old",
6634
+ "short": "4m+",
6635
+ "long": "At Least 4 Months Old",
6636
+ },
6637
+ "_5m": {
6638
+ "id": "at_least_5m_old",
6639
+ "short": "5m+",
6640
+ "long": "At Least 5 Months Old",
6641
+ },
6642
+ "_6m": {
6643
+ "id": "at_least_6m_old",
6644
+ "short": "6m+",
6645
+ "long": "At Least 6 Months Old",
6646
+ },
6647
+ "_1y": {"id": "at_least_1y_old", "short": "1y+", "long": "At Least 1 Year Old"},
6648
+ "_2y": {
6649
+ "id": "at_least_2y_old",
6650
+ "short": "2y+",
6651
+ "long": "At Least 2 Years Old",
6652
+ },
6653
+ "_3y": {
6654
+ "id": "at_least_3y_old",
6655
+ "short": "3y+",
6656
+ "long": "At Least 3 Years Old",
6657
+ },
6658
+ "_4y": {
6659
+ "id": "at_least_4y_old",
6660
+ "short": "4y+",
6661
+ "long": "At Least 4 Years Old",
6662
+ },
6663
+ "_5y": {
6664
+ "id": "at_least_5y_old",
6665
+ "short": "5y+",
6666
+ "long": "At Least 5 Years Old",
6667
+ },
6668
+ "_6y": {
6669
+ "id": "at_least_6y_old",
6670
+ "short": "6y+",
6671
+ "long": "At Least 6 Years Old",
6672
+ },
6673
+ "_7y": {
6674
+ "id": "at_least_7y_old",
6675
+ "short": "7y+",
6676
+ "long": "At Least 7 Years Old",
6677
+ },
6678
+ "_8y": {
6679
+ "id": "at_least_8y_old",
6680
+ "short": "8y+",
6681
+ "long": "At Least 8 Years Old",
6682
+ },
6683
+ "_10y": {
6684
+ "id": "at_least_10y_old",
6685
+ "short": "10y+",
6686
+ "long": "At Least 10 Years Old",
6687
+ },
6688
+ "_12y": {
6689
+ "id": "at_least_12y_old",
6690
+ "short": "12y+",
6691
+ "long": "At Least 12 Years Old",
6692
+ },
7025
6693
  }
7026
6694
 
7027
6695
  AMOUNT_RANGE_NAMES = {
@@ -7029,67 +6697,67 @@ class BrkClient(BrkClientBase):
7029
6697
  "_1sat_to_10sats": {
7030
6698
  "id": "above_1sat_under_10sats",
7031
6699
  "short": "1-10 sats",
7032
- "long": "1-10 Sats",
6700
+ "long": "1 to 10 Sats",
7033
6701
  },
7034
6702
  "_10sats_to_100sats": {
7035
6703
  "id": "above_10sats_under_100sats",
7036
6704
  "short": "10-100 sats",
7037
- "long": "10-100 Sats",
6705
+ "long": "10 to 100 Sats",
7038
6706
  },
7039
6707
  "_100sats_to_1k_sats": {
7040
6708
  "id": "above_100sats_under_1k_sats",
7041
6709
  "short": "100-1k sats",
7042
- "long": "100-1K Sats",
6710
+ "long": "100 to 1K Sats",
7043
6711
  },
7044
6712
  "_1k_sats_to_10k_sats": {
7045
6713
  "id": "above_1k_sats_under_10k_sats",
7046
6714
  "short": "1k-10k sats",
7047
- "long": "1K-10K Sats",
6715
+ "long": "1K to 10K Sats",
7048
6716
  },
7049
6717
  "_10k_sats_to_100k_sats": {
7050
6718
  "id": "above_10k_sats_under_100k_sats",
7051
6719
  "short": "10k-100k sats",
7052
- "long": "10K-100K Sats",
6720
+ "long": "10K to 100K Sats",
7053
6721
  },
7054
6722
  "_100k_sats_to_1m_sats": {
7055
6723
  "id": "above_100k_sats_under_1m_sats",
7056
6724
  "short": "100k-1M sats",
7057
- "long": "100K-1M Sats",
6725
+ "long": "100K to 1M Sats",
7058
6726
  },
7059
6727
  "_1m_sats_to_10m_sats": {
7060
6728
  "id": "above_1m_sats_under_10m_sats",
7061
6729
  "short": "1M-10M sats",
7062
- "long": "1M-10M Sats",
6730
+ "long": "1M to 10M Sats",
7063
6731
  },
7064
6732
  "_10m_sats_to_1btc": {
7065
6733
  "id": "above_10m_sats_under_1btc",
7066
6734
  "short": "0.1-1 BTC",
7067
- "long": "0.1-1 BTC",
6735
+ "long": "0.1 to 1 BTC",
7068
6736
  },
7069
6737
  "_1btc_to_10btc": {
7070
6738
  "id": "above_1btc_under_10btc",
7071
6739
  "short": "1-10 BTC",
7072
- "long": "1-10 BTC",
6740
+ "long": "1 to 10 BTC",
7073
6741
  },
7074
6742
  "_10btc_to_100btc": {
7075
6743
  "id": "above_10btc_under_100btc",
7076
6744
  "short": "10-100 BTC",
7077
- "long": "10-100 BTC",
6745
+ "long": "10 to 100 BTC",
7078
6746
  },
7079
6747
  "_100btc_to_1k_btc": {
7080
6748
  "id": "above_100btc_under_1k_btc",
7081
6749
  "short": "100-1k BTC",
7082
- "long": "100-1K BTC",
6750
+ "long": "100 to 1K BTC",
7083
6751
  },
7084
6752
  "_1k_btc_to_10k_btc": {
7085
6753
  "id": "above_1k_btc_under_10k_btc",
7086
6754
  "short": "1k-10k BTC",
7087
- "long": "1K-10K BTC",
6755
+ "long": "1K to 10K BTC",
7088
6756
  },
7089
6757
  "_10k_btc_to_100k_btc": {
7090
6758
  "id": "above_10k_btc_under_100k_btc",
7091
6759
  "short": "10k-100k BTC",
7092
- "long": "10K-100K BTC",
6760
+ "long": "10K to 100K BTC",
7093
6761
  },
7094
6762
  "_100k_btc_or_more": {
7095
6763
  "id": "above_100k_btc",
@@ -7099,35 +6767,47 @@ class BrkClient(BrkClientBase):
7099
6767
  }
7100
6768
 
7101
6769
  GE_AMOUNT_NAMES = {
7102
- "_1sat": {"id": "over_1sat", "short": "1+ sats", "long": "Over 1 Sat"},
7103
- "_10sats": {"id": "over_10sats", "short": "10+ sats", "long": "Over 10 Sats"},
6770
+ "_1sat": {"id": "above_1sat", "short": "1+ sats", "long": "Above 1 Sat"},
6771
+ "_10sats": {"id": "above_10sats", "short": "10+ sats", "long": "Above 10 Sats"},
7104
6772
  "_100sats": {
7105
- "id": "over_100sats",
6773
+ "id": "above_100sats",
7106
6774
  "short": "100+ sats",
7107
- "long": "Over 100 Sats",
6775
+ "long": "Above 100 Sats",
6776
+ },
6777
+ "_1k_sats": {
6778
+ "id": "above_1k_sats",
6779
+ "short": "1k+ sats",
6780
+ "long": "Above 1K Sats",
7108
6781
  },
7109
- "_1k_sats": {"id": "over_1k_sats", "short": "1k+ sats", "long": "Over 1K Sats"},
7110
6782
  "_10k_sats": {
7111
- "id": "over_10k_sats",
6783
+ "id": "above_10k_sats",
7112
6784
  "short": "10k+ sats",
7113
- "long": "Over 10K Sats",
6785
+ "long": "Above 10K Sats",
7114
6786
  },
7115
6787
  "_100k_sats": {
7116
- "id": "over_100k_sats",
6788
+ "id": "above_100k_sats",
7117
6789
  "short": "100k+ sats",
7118
- "long": "Over 100K Sats",
6790
+ "long": "Above 100K Sats",
6791
+ },
6792
+ "_1m_sats": {
6793
+ "id": "above_1m_sats",
6794
+ "short": "1M+ sats",
6795
+ "long": "Above 1M Sats",
7119
6796
  },
7120
- "_1m_sats": {"id": "over_1m_sats", "short": "1M+ sats", "long": "Over 1M Sats"},
7121
6797
  "_10m_sats": {
7122
- "id": "over_10m_sats",
6798
+ "id": "above_10m_sats",
7123
6799
  "short": "0.1+ BTC",
7124
- "long": "Over 0.1 BTC",
6800
+ "long": "Above 0.1 BTC",
6801
+ },
6802
+ "_1btc": {"id": "above_1btc", "short": "1+ BTC", "long": "Above 1 BTC"},
6803
+ "_10btc": {"id": "above_10btc", "short": "10+ BTC", "long": "Above 10 BTC"},
6804
+ "_100btc": {"id": "above_100btc", "short": "100+ BTC", "long": "Above 100 BTC"},
6805
+ "_1k_btc": {"id": "above_1k_btc", "short": "1k+ BTC", "long": "Above 1K BTC"},
6806
+ "_10k_btc": {
6807
+ "id": "above_10k_btc",
6808
+ "short": "10k+ BTC",
6809
+ "long": "Above 10K BTC",
7125
6810
  },
7126
- "_1btc": {"id": "over_1btc", "short": "1+ BTC", "long": "Over 1 BTC"},
7127
- "_10btc": {"id": "over_10btc", "short": "10+ BTC", "long": "Over 10 BTC"},
7128
- "_100btc": {"id": "over_100btc", "short": "100+ BTC", "long": "Over 100 BTC"},
7129
- "_1k_btc": {"id": "over_1k_btc", "short": "1k+ BTC", "long": "Over 1K BTC"},
7130
- "_10k_btc": {"id": "over_10k_btc", "short": "10k+ BTC", "long": "Over 10K BTC"},
7131
6811
  }
7132
6812
 
7133
6813
  LT_AMOUNT_NAMES = {
@@ -7190,14 +6870,6 @@ class BrkClient(BrkClientBase):
7190
6870
  """
7191
6871
  return MetricEndpointBuilder(self, metric, index)
7192
6872
 
7193
- def get_api(self) -> Any:
7194
- """Compact OpenAPI specification.
7195
-
7196
- Compact OpenAPI specification optimized for LLM consumption. Removes redundant fields while preserving essential API information. Full spec available at `/openapi.json`.
7197
-
7198
- Endpoint: `GET /api.json`"""
7199
- return self.get_json("/api.json")
7200
-
7201
6873
  def get_address(self, address: Address) -> AddressStats:
7202
6874
  """Address information.
7203
6875
 
@@ -7748,14 +7420,6 @@ class BrkClient(BrkClientBase):
7748
7420
  Endpoint: `GET /health`"""
7749
7421
  return self.get_json("/health")
7750
7422
 
7751
- def get_openapi(self) -> Any:
7752
- """OpenAPI specification.
7753
-
7754
- Full OpenAPI 3.1 specification for this API.
7755
-
7756
- Endpoint: `GET /openapi.json`"""
7757
- return self.get_json("/openapi.json")
7758
-
7759
7423
  def get_version(self) -> str:
7760
7424
  """API version.
7761
7425