brk-client 0.1.0a6__py3-none-any.whl → 0.1.0b1__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,6 +1,8 @@
1
1
  # Auto-generated BRK Python client
2
2
  # Do not edit manually
3
3
 
4
+ from __future__ import annotations
5
+ from dataclasses import dataclass
4
6
  from typing import TypeVar, Generic, Any, Optional, List, Literal, TypedDict, Union, Protocol, overload
5
7
  from http.client import HTTPSConnection, HTTPConnection
6
8
  from urllib.parse import urlparse
@@ -106,13 +108,13 @@ QuarterIndex = int
106
108
  # Transaction locktime
107
109
  RawLockTime = int
108
110
  SemesterIndex = int
109
- # Fixed-size boolean value optimized for on-disk storage (stored as u16)
111
+ # Fixed-size boolean value optimized for on-disk storage (stored as u8)
110
112
  StoredBool = int
111
113
  # Stored 32-bit floating point value
112
114
  StoredF32 = float
113
115
  # Fixed-size 64-bit floating point value optimized for on-disk storage
114
116
  StoredF64 = float
115
- StoredI16 = int
117
+ StoredI8 = int
116
118
  StoredU16 = int
117
119
  # Fixed-size 32-bit unsigned integer optimized for on-disk storage
118
120
  StoredU32 = int
@@ -1039,11 +1041,14 @@ def _p(prefix: str, acc: str) -> str:
1039
1041
  return f"{prefix}_{acc}" if acc else prefix
1040
1042
 
1041
1043
 
1042
- class MetricData(TypedDict, Generic[T]):
1044
+ @dataclass
1045
+ class MetricData(Generic[T]):
1043
1046
  """Metric data with range information."""
1047
+ version: int
1044
1048
  total: int
1045
1049
  start: int
1046
1050
  end: int
1051
+ stamp: str
1047
1052
  data: List[T]
1048
1053
 
1049
1054
 
@@ -1082,8 +1087,9 @@ class _EndpointConfig:
1082
1087
  p = self.path()
1083
1088
  return f"{p}?{query}" if query else p
1084
1089
 
1085
- def get_json(self) -> Any:
1086
- return self.client.get_json(self._build_path())
1090
+ def get_json(self) -> MetricData:
1091
+ data = self.client.get_json(self._build_path())
1092
+ return MetricData(**data)
1087
1093
 
1088
1094
  def get_csv(self) -> str:
1089
1095
  return self.client.get_text(self._build_path(format='csv'))
@@ -1286,7 +1292,7 @@ _i31 = ('loadedaddressindex',)
1286
1292
  _i32 = ('emptyaddressindex',)
1287
1293
  _i33 = ('pairoutputindex',)
1288
1294
 
1289
- def _ep(c: BrkClientBase, n: str, i: Index) -> MetricEndpointBuilder:
1295
+ def _ep(c: BrkClientBase, n: str, i: Index) -> MetricEndpointBuilder[Any]:
1290
1296
  return MetricEndpointBuilder(c, n, i)
1291
1297
 
1292
1298
  # Index accessor classes
@@ -1304,6 +1310,7 @@ class _MetricPattern1By(Generic[T]):
1304
1310
  def yearindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'yearindex')
1305
1311
 
1306
1312
  class MetricPattern1(Generic[T]):
1313
+ by: _MetricPattern1By[T]
1307
1314
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern1By(c, n)
1308
1315
  @property
1309
1316
  def name(self) -> str: return self._n
@@ -1322,6 +1329,7 @@ class _MetricPattern2By(Generic[T]):
1322
1329
  def yearindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'yearindex')
1323
1330
 
1324
1331
  class MetricPattern2(Generic[T]):
1332
+ by: _MetricPattern2By[T]
1325
1333
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern2By(c, n)
1326
1334
  @property
1327
1335
  def name(self) -> str: return self._n
@@ -1340,6 +1348,7 @@ class _MetricPattern3By(Generic[T]):
1340
1348
  def yearindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'yearindex')
1341
1349
 
1342
1350
  class MetricPattern3(Generic[T]):
1351
+ by: _MetricPattern3By[T]
1343
1352
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern3By(c, n)
1344
1353
  @property
1345
1354
  def name(self) -> str: return self._n
@@ -1357,6 +1366,7 @@ class _MetricPattern4By(Generic[T]):
1357
1366
  def yearindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'yearindex')
1358
1367
 
1359
1368
  class MetricPattern4(Generic[T]):
1369
+ by: _MetricPattern4By[T]
1360
1370
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern4By(c, n)
1361
1371
  @property
1362
1372
  def name(self) -> str: return self._n
@@ -1369,6 +1379,7 @@ class _MetricPattern5By(Generic[T]):
1369
1379
  def height(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'height')
1370
1380
 
1371
1381
  class MetricPattern5(Generic[T]):
1382
+ by: _MetricPattern5By[T]
1372
1383
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern5By(c, n)
1373
1384
  @property
1374
1385
  def name(self) -> str: return self._n
@@ -1380,6 +1391,7 @@ class _MetricPattern6By(Generic[T]):
1380
1391
  def dateindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'dateindex')
1381
1392
 
1382
1393
  class MetricPattern6(Generic[T]):
1394
+ by: _MetricPattern6By[T]
1383
1395
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern6By(c, n)
1384
1396
  @property
1385
1397
  def name(self) -> str: return self._n
@@ -1391,6 +1403,7 @@ class _MetricPattern7By(Generic[T]):
1391
1403
  def decadeindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'decadeindex')
1392
1404
 
1393
1405
  class MetricPattern7(Generic[T]):
1406
+ by: _MetricPattern7By[T]
1394
1407
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern7By(c, n)
1395
1408
  @property
1396
1409
  def name(self) -> str: return self._n
@@ -1402,6 +1415,7 @@ class _MetricPattern8By(Generic[T]):
1402
1415
  def difficultyepoch(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'difficultyepoch')
1403
1416
 
1404
1417
  class MetricPattern8(Generic[T]):
1418
+ by: _MetricPattern8By[T]
1405
1419
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern8By(c, n)
1406
1420
  @property
1407
1421
  def name(self) -> str: return self._n
@@ -1413,6 +1427,7 @@ class _MetricPattern9By(Generic[T]):
1413
1427
  def emptyoutputindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'emptyoutputindex')
1414
1428
 
1415
1429
  class MetricPattern9(Generic[T]):
1430
+ by: _MetricPattern9By[T]
1416
1431
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern9By(c, n)
1417
1432
  @property
1418
1433
  def name(self) -> str: return self._n
@@ -1424,6 +1439,7 @@ class _MetricPattern10By(Generic[T]):
1424
1439
  def halvingepoch(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'halvingepoch')
1425
1440
 
1426
1441
  class MetricPattern10(Generic[T]):
1442
+ by: _MetricPattern10By[T]
1427
1443
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern10By(c, n)
1428
1444
  @property
1429
1445
  def name(self) -> str: return self._n
@@ -1435,6 +1451,7 @@ class _MetricPattern11By(Generic[T]):
1435
1451
  def height(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'height')
1436
1452
 
1437
1453
  class MetricPattern11(Generic[T]):
1454
+ by: _MetricPattern11By[T]
1438
1455
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern11By(c, n)
1439
1456
  @property
1440
1457
  def name(self) -> str: return self._n
@@ -1446,6 +1463,7 @@ class _MetricPattern12By(Generic[T]):
1446
1463
  def txinindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'txinindex')
1447
1464
 
1448
1465
  class MetricPattern12(Generic[T]):
1466
+ by: _MetricPattern12By[T]
1449
1467
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern12By(c, n)
1450
1468
  @property
1451
1469
  def name(self) -> str: return self._n
@@ -1457,6 +1475,7 @@ class _MetricPattern13By(Generic[T]):
1457
1475
  def monthindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'monthindex')
1458
1476
 
1459
1477
  class MetricPattern13(Generic[T]):
1478
+ by: _MetricPattern13By[T]
1460
1479
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern13By(c, n)
1461
1480
  @property
1462
1481
  def name(self) -> str: return self._n
@@ -1468,6 +1487,7 @@ class _MetricPattern14By(Generic[T]):
1468
1487
  def opreturnindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'opreturnindex')
1469
1488
 
1470
1489
  class MetricPattern14(Generic[T]):
1490
+ by: _MetricPattern14By[T]
1471
1491
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern14By(c, n)
1472
1492
  @property
1473
1493
  def name(self) -> str: return self._n
@@ -1479,6 +1499,7 @@ class _MetricPattern15By(Generic[T]):
1479
1499
  def txoutindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'txoutindex')
1480
1500
 
1481
1501
  class MetricPattern15(Generic[T]):
1502
+ by: _MetricPattern15By[T]
1482
1503
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern15By(c, n)
1483
1504
  @property
1484
1505
  def name(self) -> str: return self._n
@@ -1490,6 +1511,7 @@ class _MetricPattern16By(Generic[T]):
1490
1511
  def p2aaddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'p2aaddressindex')
1491
1512
 
1492
1513
  class MetricPattern16(Generic[T]):
1514
+ by: _MetricPattern16By[T]
1493
1515
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern16By(c, n)
1494
1516
  @property
1495
1517
  def name(self) -> str: return self._n
@@ -1501,6 +1523,7 @@ class _MetricPattern17By(Generic[T]):
1501
1523
  def p2msoutputindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'p2msoutputindex')
1502
1524
 
1503
1525
  class MetricPattern17(Generic[T]):
1526
+ by: _MetricPattern17By[T]
1504
1527
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern17By(c, n)
1505
1528
  @property
1506
1529
  def name(self) -> str: return self._n
@@ -1512,6 +1535,7 @@ class _MetricPattern18By(Generic[T]):
1512
1535
  def p2pk33addressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'p2pk33addressindex')
1513
1536
 
1514
1537
  class MetricPattern18(Generic[T]):
1538
+ by: _MetricPattern18By[T]
1515
1539
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern18By(c, n)
1516
1540
  @property
1517
1541
  def name(self) -> str: return self._n
@@ -1523,6 +1547,7 @@ class _MetricPattern19By(Generic[T]):
1523
1547
  def p2pk65addressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'p2pk65addressindex')
1524
1548
 
1525
1549
  class MetricPattern19(Generic[T]):
1550
+ by: _MetricPattern19By[T]
1526
1551
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern19By(c, n)
1527
1552
  @property
1528
1553
  def name(self) -> str: return self._n
@@ -1534,6 +1559,7 @@ class _MetricPattern20By(Generic[T]):
1534
1559
  def p2pkhaddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'p2pkhaddressindex')
1535
1560
 
1536
1561
  class MetricPattern20(Generic[T]):
1562
+ by: _MetricPattern20By[T]
1537
1563
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern20By(c, n)
1538
1564
  @property
1539
1565
  def name(self) -> str: return self._n
@@ -1545,6 +1571,7 @@ class _MetricPattern21By(Generic[T]):
1545
1571
  def p2shaddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'p2shaddressindex')
1546
1572
 
1547
1573
  class MetricPattern21(Generic[T]):
1574
+ by: _MetricPattern21By[T]
1548
1575
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern21By(c, n)
1549
1576
  @property
1550
1577
  def name(self) -> str: return self._n
@@ -1556,6 +1583,7 @@ class _MetricPattern22By(Generic[T]):
1556
1583
  def p2traddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'p2traddressindex')
1557
1584
 
1558
1585
  class MetricPattern22(Generic[T]):
1586
+ by: _MetricPattern22By[T]
1559
1587
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern22By(c, n)
1560
1588
  @property
1561
1589
  def name(self) -> str: return self._n
@@ -1567,6 +1595,7 @@ class _MetricPattern23By(Generic[T]):
1567
1595
  def p2wpkhaddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'p2wpkhaddressindex')
1568
1596
 
1569
1597
  class MetricPattern23(Generic[T]):
1598
+ by: _MetricPattern23By[T]
1570
1599
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern23By(c, n)
1571
1600
  @property
1572
1601
  def name(self) -> str: return self._n
@@ -1578,6 +1607,7 @@ class _MetricPattern24By(Generic[T]):
1578
1607
  def p2wshaddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'p2wshaddressindex')
1579
1608
 
1580
1609
  class MetricPattern24(Generic[T]):
1610
+ by: _MetricPattern24By[T]
1581
1611
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern24By(c, n)
1582
1612
  @property
1583
1613
  def name(self) -> str: return self._n
@@ -1589,6 +1619,7 @@ class _MetricPattern25By(Generic[T]):
1589
1619
  def quarterindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'quarterindex')
1590
1620
 
1591
1621
  class MetricPattern25(Generic[T]):
1622
+ by: _MetricPattern25By[T]
1592
1623
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern25By(c, n)
1593
1624
  @property
1594
1625
  def name(self) -> str: return self._n
@@ -1600,6 +1631,7 @@ class _MetricPattern26By(Generic[T]):
1600
1631
  def semesterindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'semesterindex')
1601
1632
 
1602
1633
  class MetricPattern26(Generic[T]):
1634
+ by: _MetricPattern26By[T]
1603
1635
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern26By(c, n)
1604
1636
  @property
1605
1637
  def name(self) -> str: return self._n
@@ -1611,6 +1643,7 @@ class _MetricPattern27By(Generic[T]):
1611
1643
  def txindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'txindex')
1612
1644
 
1613
1645
  class MetricPattern27(Generic[T]):
1646
+ by: _MetricPattern27By[T]
1614
1647
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern27By(c, n)
1615
1648
  @property
1616
1649
  def name(self) -> str: return self._n
@@ -1622,6 +1655,7 @@ class _MetricPattern28By(Generic[T]):
1622
1655
  def unknownoutputindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'unknownoutputindex')
1623
1656
 
1624
1657
  class MetricPattern28(Generic[T]):
1658
+ by: _MetricPattern28By[T]
1625
1659
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern28By(c, n)
1626
1660
  @property
1627
1661
  def name(self) -> str: return self._n
@@ -1633,6 +1667,7 @@ class _MetricPattern29By(Generic[T]):
1633
1667
  def weekindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'weekindex')
1634
1668
 
1635
1669
  class MetricPattern29(Generic[T]):
1670
+ by: _MetricPattern29By[T]
1636
1671
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern29By(c, n)
1637
1672
  @property
1638
1673
  def name(self) -> str: return self._n
@@ -1644,6 +1679,7 @@ class _MetricPattern30By(Generic[T]):
1644
1679
  def yearindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'yearindex')
1645
1680
 
1646
1681
  class MetricPattern30(Generic[T]):
1682
+ by: _MetricPattern30By[T]
1647
1683
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern30By(c, n)
1648
1684
  @property
1649
1685
  def name(self) -> str: return self._n
@@ -1655,6 +1691,7 @@ class _MetricPattern31By(Generic[T]):
1655
1691
  def loadedaddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'loadedaddressindex')
1656
1692
 
1657
1693
  class MetricPattern31(Generic[T]):
1694
+ by: _MetricPattern31By[T]
1658
1695
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern31By(c, n)
1659
1696
  @property
1660
1697
  def name(self) -> str: return self._n
@@ -1666,6 +1703,7 @@ class _MetricPattern32By(Generic[T]):
1666
1703
  def emptyaddressindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'emptyaddressindex')
1667
1704
 
1668
1705
  class MetricPattern32(Generic[T]):
1706
+ by: _MetricPattern32By[T]
1669
1707
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern32By(c, n)
1670
1708
  @property
1671
1709
  def name(self) -> str: return self._n
@@ -1677,6 +1715,7 @@ class _MetricPattern33By(Generic[T]):
1677
1715
  def pairoutputindex(self) -> MetricEndpointBuilder[T]: return _ep(self._c, self._n, 'pairoutputindex')
1678
1716
 
1679
1717
  class MetricPattern33(Generic[T]):
1718
+ by: _MetricPattern33By[T]
1680
1719
  def __init__(self, c: BrkClientBase, n: str): self._n, self.by = n, _MetricPattern33By(c, n)
1681
1720
  @property
1682
1721
  def name(self) -> str: return self._n
@@ -1883,31 +1922,6 @@ class Price111dSmaPattern:
1883
1922
  self.ratio_pct99_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'ratio_pct99_usd'))
1884
1923
  self.ratio_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, _m(acc, 'ratio'))
1885
1924
 
1886
- class PercentilesPattern:
1887
- """Pattern struct for repeated tree structure."""
1888
-
1889
- def __init__(self, client: BrkClientBase, acc: str):
1890
- """Create pattern node with accumulated metric name."""
1891
- self.pct05: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct05'))
1892
- self.pct10: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct10'))
1893
- self.pct15: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct15'))
1894
- self.pct20: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct20'))
1895
- self.pct25: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct25'))
1896
- self.pct30: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct30'))
1897
- self.pct35: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct35'))
1898
- self.pct40: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct40'))
1899
- self.pct45: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct45'))
1900
- self.pct50: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct50'))
1901
- self.pct55: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct55'))
1902
- self.pct60: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct60'))
1903
- self.pct65: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct65'))
1904
- self.pct70: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct70'))
1905
- self.pct75: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct75'))
1906
- self.pct80: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct80'))
1907
- self.pct85: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct85'))
1908
- self.pct90: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct90'))
1909
- self.pct95: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct95'))
1910
-
1911
1925
  class ActivePriceRatioPattern:
1912
1926
  """Pattern struct for repeated tree structure."""
1913
1927
 
@@ -1933,6 +1947,31 @@ class ActivePriceRatioPattern:
1933
1947
  self.ratio_pct99_usd: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct99_usd'))
1934
1948
  self.ratio_sd: Ratio1ySdPattern = Ratio1ySdPattern(client, acc)
1935
1949
 
1950
+ class PercentilesPattern:
1951
+ """Pattern struct for repeated tree structure."""
1952
+
1953
+ def __init__(self, client: BrkClientBase, acc: str):
1954
+ """Create pattern node with accumulated metric name."""
1955
+ self.pct05: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct05'))
1956
+ self.pct10: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct10'))
1957
+ self.pct15: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct15'))
1958
+ self.pct20: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct20'))
1959
+ self.pct25: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct25'))
1960
+ self.pct30: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct30'))
1961
+ self.pct35: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct35'))
1962
+ self.pct40: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct40'))
1963
+ self.pct45: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct45'))
1964
+ self.pct50: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct50'))
1965
+ self.pct55: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct55'))
1966
+ self.pct60: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct60'))
1967
+ self.pct65: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct65'))
1968
+ self.pct70: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct70'))
1969
+ self.pct75: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct75'))
1970
+ self.pct80: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct80'))
1971
+ self.pct85: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct85'))
1972
+ self.pct90: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct90'))
1973
+ self.pct95: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'pct95'))
1974
+
1936
1975
  class RelativePattern5:
1937
1976
  """Pattern struct for repeated tree structure."""
1938
1977
 
@@ -1971,6 +2010,7 @@ class AaopoolPattern:
1971
2010
  self._24h_blocks_mined: MetricPattern1[StoredU32] = MetricPattern1(client, _m(acc, '24h_blocks_mined'))
1972
2011
  self._24h_dominance: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, '24h_dominance'))
1973
2012
  self.blocks_mined: BlockCountPattern[StoredU32] = BlockCountPattern(client, _m(acc, 'blocks_mined'))
2013
+ self.blocks_since_block: MetricPattern1[StoredU32] = MetricPattern1(client, _m(acc, 'blocks_since_block'))
1974
2014
  self.coinbase: CoinbasePattern2 = CoinbasePattern2(client, _m(acc, 'coinbase'))
1975
2015
  self.days_since_block: MetricPattern4[StoredU16] = MetricPattern4(client, _m(acc, 'days_since_block'))
1976
2016
  self.dominance: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'dominance'))
@@ -2014,6 +2054,24 @@ class PeriodLumpSumStackPattern:
2014
2054
  self._6y: _2015Pattern = _2015Pattern(client, _p('6y', acc))
2015
2055
  self._8y: _2015Pattern = _2015Pattern(client, _p('8y', acc))
2016
2056
 
2057
+ class ClassAveragePricePattern(Generic[T]):
2058
+ """Pattern struct for repeated tree structure."""
2059
+
2060
+ def __init__(self, client: BrkClientBase, acc: str):
2061
+ """Create pattern node with accumulated metric name."""
2062
+ self._2015: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2015_average_price'))
2063
+ self._2016: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2016_average_price'))
2064
+ self._2017: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2017_average_price'))
2065
+ self._2018: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2018_average_price'))
2066
+ self._2019: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2019_average_price'))
2067
+ self._2020: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2020_average_price'))
2068
+ self._2021: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2021_average_price'))
2069
+ self._2022: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2022_average_price'))
2070
+ self._2023: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2023_average_price'))
2071
+ self._2024: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2024_average_price'))
2072
+ self._2025: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2025_average_price'))
2073
+ self._2026: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2026_average_price'))
2074
+
2017
2075
  class PeriodAveragePricePattern(Generic[T]):
2018
2076
  """Pattern struct for repeated tree structure."""
2019
2077
 
@@ -2066,23 +2124,6 @@ class DollarsPattern(Generic[T]):
2066
2124
  self.pct90: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct90'))
2067
2125
  self.sum: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'sum'))
2068
2126
 
2069
- class ClassAveragePricePattern(Generic[T]):
2070
- """Pattern struct for repeated tree structure."""
2071
-
2072
- def __init__(self, client: BrkClientBase, acc: str):
2073
- """Create pattern node with accumulated metric name."""
2074
- self._2015: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2015_returns'))
2075
- self._2016: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2016_returns'))
2076
- self._2017: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2017_returns'))
2077
- self._2018: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2018_returns'))
2078
- self._2019: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2019_returns'))
2079
- self._2020: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2020_returns'))
2080
- self._2021: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2021_returns'))
2081
- self._2022: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2022_returns'))
2082
- self._2023: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2023_returns'))
2083
- self._2024: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2024_returns'))
2084
- self._2025: MetricPattern4[T] = MetricPattern4(client, _m(acc, '2025_returns'))
2085
-
2086
2127
  class RelativePattern:
2087
2128
  """Pattern struct for repeated tree structure."""
2088
2129
 
@@ -2204,19 +2245,6 @@ class PhaseDailyCentsPattern(Generic[T]):
2204
2245
  self.pct75: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct75'))
2205
2246
  self.pct90: MetricPattern6[T] = MetricPattern6(client, _m(acc, 'pct90'))
2206
2247
 
2207
- class PeriodCagrPattern:
2208
- """Pattern struct for repeated tree structure."""
2209
-
2210
- def __init__(self, client: BrkClientBase, acc: str):
2211
- """Create pattern node with accumulated metric name."""
2212
- self._10y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('10y', acc))
2213
- self._2y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('2y', acc))
2214
- self._3y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('3y', acc))
2215
- self._4y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('4y', acc))
2216
- self._5y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('5y', acc))
2217
- self._6y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('6y', acc))
2218
- self._8y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('8y', acc))
2219
-
2220
2248
  class _0satsPattern2:
2221
2249
  """Pattern struct for repeated tree structure."""
2222
2250
 
@@ -2230,7 +2258,7 @@ class _0satsPattern2:
2230
2258
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2231
2259
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2232
2260
 
2233
- class _10yPattern:
2261
+ class _100btcPattern:
2234
2262
  """Pattern struct for repeated tree structure."""
2235
2263
 
2236
2264
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2238,11 +2266,24 @@ class _10yPattern:
2238
2266
  self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2239
2267
  self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2240
2268
  self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2241
- self.realized: RealizedPattern4 = RealizedPattern4(client, acc)
2269
+ self.realized: RealizedPattern = RealizedPattern(client, acc)
2242
2270
  self.relative: RelativePattern = RelativePattern(client, acc)
2243
2271
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2244
2272
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2245
2273
 
2274
+ class PeriodCagrPattern:
2275
+ """Pattern struct for repeated tree structure."""
2276
+
2277
+ def __init__(self, client: BrkClientBase, acc: str):
2278
+ """Create pattern node with accumulated metric name."""
2279
+ self._10y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('10y', acc))
2280
+ self._2y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('2y', acc))
2281
+ self._3y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('3y', acc))
2282
+ self._4y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('4y', acc))
2283
+ self._5y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('5y', acc))
2284
+ self._6y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('6y', acc))
2285
+ self._8y: MetricPattern4[StoredF32] = MetricPattern4(client, _p('8y', acc))
2286
+
2246
2287
  class _10yTo12yPattern:
2247
2288
  """Pattern struct for repeated tree structure."""
2248
2289
 
@@ -2256,7 +2297,7 @@ class _10yTo12yPattern:
2256
2297
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2257
2298
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
2258
2299
 
2259
- class _100btcPattern:
2300
+ class _10yPattern:
2260
2301
  """Pattern struct for repeated tree structure."""
2261
2302
 
2262
2303
  def __init__(self, client: BrkClientBase, acc: str):
@@ -2264,7 +2305,7 @@ class _100btcPattern:
2264
2305
  self.activity: ActivityPattern2 = ActivityPattern2(client, acc)
2265
2306
  self.cost_basis: CostBasisPattern = CostBasisPattern(client, acc)
2266
2307
  self.outputs: OutputsPattern = OutputsPattern(client, _m(acc, 'utxo_count'))
2267
- self.realized: RealizedPattern = RealizedPattern(client, acc)
2308
+ self.realized: RealizedPattern4 = RealizedPattern4(client, acc)
2268
2309
  self.relative: RelativePattern = RelativePattern(client, acc)
2269
2310
  self.supply: SupplyPattern2 = SupplyPattern2(client, _m(acc, 'supply'))
2270
2311
  self.unrealized: UnrealizedPattern = UnrealizedPattern(client, acc)
@@ -2312,42 +2353,51 @@ class CostBasisPattern2:
2312
2353
  self.min: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'min_cost_basis'))
2313
2354
  self.percentiles: PercentilesPattern = PercentilesPattern(client, _m(acc, 'cost_basis'))
2314
2355
 
2315
- class CoinbasePattern:
2356
+ class ActiveSupplyPattern:
2316
2357
  """Pattern struct for repeated tree structure."""
2317
2358
 
2318
2359
  def __init__(self, client: BrkClientBase, acc: str):
2319
2360
  """Create pattern node with accumulated metric name."""
2320
- self.bitcoin: BitcoinPattern = BitcoinPattern(client, _m(acc, 'btc'))
2321
- self.dollars: DollarsPattern[Dollars] = DollarsPattern(client, _m(acc, 'usd'))
2322
- self.sats: DollarsPattern[Sats] = DollarsPattern(client, acc)
2361
+ self.bitcoin: MetricPattern1[Bitcoin] = MetricPattern1(client, _m(acc, 'btc'))
2362
+ self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'usd'))
2363
+ self.sats: MetricPattern1[Sats] = MetricPattern1(client, acc)
2323
2364
 
2324
- class ActiveSupplyPattern:
2365
+ class SegwitAdoptionPattern:
2325
2366
  """Pattern struct for repeated tree structure."""
2326
2367
 
2327
2368
  def __init__(self, client: BrkClientBase, acc: str):
2328
2369
  """Create pattern node with accumulated metric name."""
2329
- self.bitcoin: MetricPattern1[Bitcoin] = MetricPattern1(client, _m(acc, 'btc'))
2330
- self.dollars: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'usd'))
2331
- self.sats: MetricPattern1[Sats] = MetricPattern1(client, acc)
2370
+ self.base: MetricPattern11[StoredF32] = MetricPattern11(client, acc)
2371
+ self.cumulative: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'cumulative'))
2372
+ self.sum: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'sum'))
2332
2373
 
2333
- class UnclaimedRewardsPattern:
2374
+ class CoinbasePattern2:
2334
2375
  """Pattern struct for repeated tree structure."""
2335
2376
 
2336
2377
  def __init__(self, client: BrkClientBase, acc: str):
2337
2378
  """Create pattern node with accumulated metric name."""
2338
- self.bitcoin: BitcoinPattern2[Bitcoin] = BitcoinPattern2(client, _m(acc, 'btc'))
2379
+ self.bitcoin: BlockCountPattern[Bitcoin] = BlockCountPattern(client, _m(acc, 'btc'))
2339
2380
  self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2340
2381
  self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
2341
2382
 
2342
- class CoinbasePattern2:
2383
+ class UnclaimedRewardsPattern:
2343
2384
  """Pattern struct for repeated tree structure."""
2344
2385
 
2345
2386
  def __init__(self, client: BrkClientBase, acc: str):
2346
2387
  """Create pattern node with accumulated metric name."""
2347
- self.bitcoin: BlockCountPattern[Bitcoin] = BlockCountPattern(client, _m(acc, 'btc'))
2388
+ self.bitcoin: BitcoinPattern2[Bitcoin] = BitcoinPattern2(client, _m(acc, 'btc'))
2348
2389
  self.dollars: BlockCountPattern[Dollars] = BlockCountPattern(client, _m(acc, 'usd'))
2349
2390
  self.sats: BlockCountPattern[Sats] = BlockCountPattern(client, acc)
2350
2391
 
2392
+ class CoinbasePattern:
2393
+ """Pattern struct for repeated tree structure."""
2394
+
2395
+ def __init__(self, client: BrkClientBase, acc: str):
2396
+ """Create pattern node with accumulated metric name."""
2397
+ self.bitcoin: BitcoinPattern = BitcoinPattern(client, _m(acc, 'btc'))
2398
+ self.dollars: DollarsPattern[Dollars] = DollarsPattern(client, _m(acc, 'usd'))
2399
+ self.sats: DollarsPattern[Sats] = DollarsPattern(client, acc)
2400
+
2351
2401
  class _2015Pattern:
2352
2402
  """Pattern struct for repeated tree structure."""
2353
2403
 
@@ -2357,22 +2407,21 @@ class _2015Pattern:
2357
2407
  self.dollars: MetricPattern4[Dollars] = MetricPattern4(client, _m(acc, 'usd'))
2358
2408
  self.sats: MetricPattern4[Sats] = MetricPattern4(client, acc)
2359
2409
 
2360
- class SegwitAdoptionPattern:
2410
+ class RelativePattern4:
2361
2411
  """Pattern struct for repeated tree structure."""
2362
2412
 
2363
2413
  def __init__(self, client: BrkClientBase, acc: str):
2364
2414
  """Create pattern node with accumulated metric name."""
2365
- self.base: MetricPattern11[StoredF32] = MetricPattern11(client, acc)
2366
- self.cumulative: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'cumulative'))
2367
- self.sum: MetricPattern2[StoredF32] = MetricPattern2(client, _m(acc, 'sum'))
2415
+ self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'loss_rel_to_own_supply'))
2416
+ self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'profit_rel_to_own_supply'))
2368
2417
 
2369
- class _1dReturns1mSdPattern:
2418
+ class SupplyPattern2:
2370
2419
  """Pattern struct for repeated tree structure."""
2371
2420
 
2372
2421
  def __init__(self, client: BrkClientBase, acc: str):
2373
2422
  """Create pattern node with accumulated metric name."""
2374
- self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
2375
- self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
2423
+ self.halved: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'halved'))
2424
+ self.total: ActiveSupplyPattern = ActiveSupplyPattern(client, acc)
2376
2425
 
2377
2426
  class CostBasisPattern:
2378
2427
  """Pattern struct for repeated tree structure."""
@@ -2382,28 +2431,28 @@ class CostBasisPattern:
2382
2431
  self.max: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'max_cost_basis'))
2383
2432
  self.min: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'min_cost_basis'))
2384
2433
 
2385
- class RelativePattern4:
2434
+ class _1dReturns1mSdPattern:
2386
2435
  """Pattern struct for repeated tree structure."""
2387
2436
 
2388
2437
  def __init__(self, client: BrkClientBase, acc: str):
2389
2438
  """Create pattern node with accumulated metric name."""
2390
- self.supply_in_loss_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'loss_rel_to_own_supply'))
2391
- self.supply_in_profit_rel_to_own_supply: MetricPattern1[StoredF64] = MetricPattern1(client, _m(acc, 'profit_rel_to_own_supply'))
2439
+ self.sd: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sd'))
2440
+ self.sma: MetricPattern4[StoredF32] = MetricPattern4(client, _m(acc, 'sma'))
2392
2441
 
2393
- class SupplyPattern2:
2442
+ class BitcoinPattern2(Generic[T]):
2394
2443
  """Pattern struct for repeated tree structure."""
2395
2444
 
2396
2445
  def __init__(self, client: BrkClientBase, acc: str):
2397
2446
  """Create pattern node with accumulated metric name."""
2398
- self.halved: ActiveSupplyPattern = ActiveSupplyPattern(client, _m(acc, 'halved'))
2399
- self.total: ActiveSupplyPattern = ActiveSupplyPattern(client, acc)
2447
+ self.cumulative: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'cumulative'))
2448
+ self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2400
2449
 
2401
- class BitcoinPattern2(Generic[T]):
2450
+ class BlockCountPattern(Generic[T]):
2402
2451
  """Pattern struct for repeated tree structure."""
2403
2452
 
2404
2453
  def __init__(self, client: BrkClientBase, acc: str):
2405
2454
  """Create pattern node with accumulated metric name."""
2406
- self.cumulative: MetricPattern2[T] = MetricPattern2(client, _m(acc, 'cumulative'))
2455
+ self.cumulative: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'cumulative'))
2407
2456
  self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2408
2457
 
2409
2458
  class SatsPattern(Generic[T]):
@@ -2411,16 +2460,15 @@ class SatsPattern(Generic[T]):
2411
2460
 
2412
2461
  def __init__(self, client: BrkClientBase, acc: str):
2413
2462
  """Create pattern node with accumulated metric name."""
2414
- self.ohlc: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'ohlc_sats'))
2415
- self.split: SplitPattern2[T] = SplitPattern2(client, _m(acc, 'sats'))
2463
+ self.ohlc: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'ohlc'))
2464
+ self.split: SplitPattern2[T] = SplitPattern2(client, acc)
2416
2465
 
2417
- class BlockCountPattern(Generic[T]):
2466
+ class RealizedPriceExtraPattern:
2418
2467
  """Pattern struct for repeated tree structure."""
2419
2468
 
2420
2469
  def __init__(self, client: BrkClientBase, acc: str):
2421
2470
  """Create pattern node with accumulated metric name."""
2422
- self.cumulative: MetricPattern1[T] = MetricPattern1(client, _m(acc, 'cumulative'))
2423
- self.sum: MetricPattern1[T] = MetricPattern1(client, acc)
2471
+ self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, acc)
2424
2472
 
2425
2473
  class OutputsPattern:
2426
2474
  """Pattern struct for repeated tree structure."""
@@ -2429,13 +2477,6 @@ class OutputsPattern:
2429
2477
  """Create pattern node with accumulated metric name."""
2430
2478
  self.utxo_count: MetricPattern1[StoredU64] = MetricPattern1(client, acc)
2431
2479
 
2432
- class RealizedPriceExtraPattern:
2433
- """Pattern struct for repeated tree structure."""
2434
-
2435
- def __init__(self, client: BrkClientBase, acc: str):
2436
- """Create pattern node with accumulated metric name."""
2437
- self.ratio: MetricPattern4[StoredF32] = MetricPattern4(client, acc)
2438
-
2439
2480
  # Metrics tree classes
2440
2481
 
2441
2482
  class MetricsTree_Addresses:
@@ -2615,6 +2656,14 @@ class MetricsTree_Cointime_Pricing:
2615
2656
  self.vaulted_price: MetricPattern1[Dollars] = MetricPattern1(client, 'vaulted_price')
2616
2657
  self.vaulted_price_ratio: ActivePriceRatioPattern = ActivePriceRatioPattern(client, 'vaulted_price_ratio')
2617
2658
 
2659
+ class MetricsTree_Cointime_ReserveRisk:
2660
+ """Metrics tree node."""
2661
+
2662
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
2663
+ self.hodl_bank: MetricPattern6[StoredF64] = MetricPattern6(client, 'hodl_bank')
2664
+ self.reserve_risk: MetricPattern4[StoredF64] = MetricPattern4(client, 'reserve_risk')
2665
+ self.vocdd_365d_sma: MetricPattern6[StoredF64] = MetricPattern6(client, 'vocdd_365d_sma')
2666
+
2618
2667
  class MetricsTree_Cointime_Supply:
2619
2668
  """Metrics tree node."""
2620
2669
 
@@ -2629,6 +2678,7 @@ class MetricsTree_Cointime_Value:
2629
2678
  self.cointime_value_created: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'cointime_value_created')
2630
2679
  self.cointime_value_destroyed: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'cointime_value_destroyed')
2631
2680
  self.cointime_value_stored: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'cointime_value_stored')
2681
+ self.vocdd: BlockCountPattern[StoredF64] = BlockCountPattern(client, 'vocdd')
2632
2682
 
2633
2683
  class MetricsTree_Cointime:
2634
2684
  """Metrics tree node."""
@@ -2638,6 +2688,7 @@ class MetricsTree_Cointime:
2638
2688
  self.adjusted: MetricsTree_Cointime_Adjusted = MetricsTree_Cointime_Adjusted(client)
2639
2689
  self.cap: MetricsTree_Cointime_Cap = MetricsTree_Cointime_Cap(client)
2640
2690
  self.pricing: MetricsTree_Cointime_Pricing = MetricsTree_Cointime_Pricing(client)
2691
+ self.reserve_risk: MetricsTree_Cointime_ReserveRisk = MetricsTree_Cointime_ReserveRisk(client)
2641
2692
  self.supply: MetricsTree_Cointime_Supply = MetricsTree_Cointime_Supply(client)
2642
2693
  self.value: MetricsTree_Cointime_Value = MetricsTree_Cointime_Value(client)
2643
2694
 
@@ -2659,10 +2710,10 @@ class MetricsTree_Constants:
2659
2710
  self.constant_61_8: MetricPattern1[StoredF32] = MetricPattern1(client, 'constant_61_8')
2660
2711
  self.constant_70: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_70')
2661
2712
  self.constant_80: MetricPattern1[StoredU16] = MetricPattern1(client, 'constant_80')
2662
- self.constant_minus_1: MetricPattern1[StoredI16] = MetricPattern1(client, 'constant_minus_1')
2663
- self.constant_minus_2: MetricPattern1[StoredI16] = MetricPattern1(client, 'constant_minus_2')
2664
- self.constant_minus_3: MetricPattern1[StoredI16] = MetricPattern1(client, 'constant_minus_3')
2665
- self.constant_minus_4: MetricPattern1[StoredI16] = MetricPattern1(client, 'constant_minus_4')
2713
+ self.constant_minus_1: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_1')
2714
+ self.constant_minus_2: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_2')
2715
+ self.constant_minus_3: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_3')
2716
+ self.constant_minus_4: MetricPattern1[StoredI8] = MetricPattern1(client, 'constant_minus_4')
2666
2717
 
2667
2718
  class MetricsTree_Distribution_AddressCohorts_AmountRange:
2668
2719
  """Metrics tree node."""
@@ -2688,19 +2739,19 @@ class MetricsTree_Distribution_AddressCohorts_GeAmount:
2688
2739
  """Metrics tree node."""
2689
2740
 
2690
2741
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2691
- self._100btc: _0satsPattern = _0satsPattern(client, 'addrs_above_100btc')
2692
- self._100k_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_100k_sats')
2693
- self._100sats: _0satsPattern = _0satsPattern(client, 'addrs_above_100sats')
2694
- self._10btc: _0satsPattern = _0satsPattern(client, 'addrs_above_10btc')
2695
- self._10k_btc: _0satsPattern = _0satsPattern(client, 'addrs_above_10k_btc')
2696
- self._10k_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_10k_sats')
2697
- self._10m_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_10m_sats')
2698
- self._10sats: _0satsPattern = _0satsPattern(client, 'addrs_above_10sats')
2699
- self._1btc: _0satsPattern = _0satsPattern(client, 'addrs_above_1btc')
2700
- self._1k_btc: _0satsPattern = _0satsPattern(client, 'addrs_above_1k_btc')
2701
- self._1k_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_1k_sats')
2702
- self._1m_sats: _0satsPattern = _0satsPattern(client, 'addrs_above_1m_sats')
2703
- self._1sat: _0satsPattern = _0satsPattern(client, 'addrs_above_1sat')
2742
+ self._100btc: _0satsPattern = _0satsPattern(client, 'addrs_over_100btc')
2743
+ self._100k_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_100k_sats')
2744
+ self._100sats: _0satsPattern = _0satsPattern(client, 'addrs_over_100sats')
2745
+ self._10btc: _0satsPattern = _0satsPattern(client, 'addrs_over_10btc')
2746
+ self._10k_btc: _0satsPattern = _0satsPattern(client, 'addrs_over_10k_btc')
2747
+ self._10k_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_10k_sats')
2748
+ self._10m_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_10m_sats')
2749
+ self._10sats: _0satsPattern = _0satsPattern(client, 'addrs_over_10sats')
2750
+ self._1btc: _0satsPattern = _0satsPattern(client, 'addrs_over_1btc')
2751
+ self._1k_btc: _0satsPattern = _0satsPattern(client, 'addrs_over_1k_btc')
2752
+ self._1k_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_1k_sats')
2753
+ self._1m_sats: _0satsPattern = _0satsPattern(client, 'addrs_over_1m_sats')
2754
+ self._1sat: _0satsPattern = _0satsPattern(client, 'addrs_over_1sat')
2704
2755
 
2705
2756
  class MetricsTree_Distribution_AddressCohorts_LtAmount:
2706
2757
  """Metrics tree node."""
@@ -2752,27 +2803,27 @@ class MetricsTree_Distribution_UtxoCohorts_AgeRange:
2752
2803
  """Metrics tree node."""
2753
2804
 
2754
2805
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2755
- self._10y_to_12y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_10y_up_to_12y_old')
2756
- self._12y_to_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_12y_up_to_15y_old')
2757
- self._1d_to_1w: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1d_up_to_1w_old')
2758
- self._1h_to_1d: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1h_up_to_1d_old')
2759
- self._1m_to_2m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1m_up_to_2m_old')
2760
- self._1w_to_1m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1w_up_to_1m_old')
2761
- self._1y_to_2y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_1y_up_to_2y_old')
2762
- self._2m_to_3m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_2m_up_to_3m_old')
2763
- self._2y_to_3y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_2y_up_to_3y_old')
2764
- self._3m_to_4m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_3m_up_to_4m_old')
2765
- self._3y_to_4y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_3y_up_to_4y_old')
2766
- self._4m_to_5m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_4m_up_to_5m_old')
2767
- self._4y_to_5y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_4y_up_to_5y_old')
2768
- self._5m_to_6m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_5m_up_to_6m_old')
2769
- self._5y_to_6y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_5y_up_to_6y_old')
2770
- self._6m_to_1y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_6m_up_to_1y_old')
2771
- self._6y_to_7y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_6y_up_to_7y_old')
2772
- self._7y_to_8y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_7y_up_to_8y_old')
2773
- self._8y_to_10y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_8y_up_to_10y_old')
2774
- self.from_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_at_least_15y_old')
2775
- self.up_to_1h: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_up_to_1h_old')
2806
+ self._10y_to_12y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_10y_to_12y_old')
2807
+ self._12y_to_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_12y_to_15y_old')
2808
+ self._1d_to_1w: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1d_to_1w_old')
2809
+ self._1h_to_1d: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1h_to_1d_old')
2810
+ self._1m_to_2m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1m_to_2m_old')
2811
+ self._1w_to_1m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1w_to_1m_old')
2812
+ self._1y_to_2y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_1y_to_2y_old')
2813
+ self._2m_to_3m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_2m_to_3m_old')
2814
+ self._2y_to_3y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_2y_to_3y_old')
2815
+ self._3m_to_4m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_3m_to_4m_old')
2816
+ self._3y_to_4y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_3y_to_4y_old')
2817
+ self._4m_to_5m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_4m_to_5m_old')
2818
+ self._4y_to_5y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_4y_to_5y_old')
2819
+ self._5m_to_6m: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_5m_to_6m_old')
2820
+ self._5y_to_6y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_5y_to_6y_old')
2821
+ self._6m_to_1y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_6m_to_1y_old')
2822
+ self._6y_to_7y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_6y_to_7y_old')
2823
+ self._7y_to_8y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_7y_to_8y_old')
2824
+ self._8y_to_10y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_8y_to_10y_old')
2825
+ self.from_15y: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_over_15y_old')
2826
+ self.up_to_1h: _10yTo12yPattern = _10yTo12yPattern(client, 'utxos_under_1h_old')
2776
2827
 
2777
2828
  class MetricsTree_Distribution_UtxoCohorts_All_CostBasis:
2778
2829
  """Metrics tree node."""
@@ -2839,19 +2890,19 @@ class MetricsTree_Distribution_UtxoCohorts_GeAmount:
2839
2890
  """Metrics tree node."""
2840
2891
 
2841
2892
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2842
- self._100btc: _100btcPattern = _100btcPattern(client, 'utxos_above_100btc')
2843
- self._100k_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_100k_sats')
2844
- self._100sats: _100btcPattern = _100btcPattern(client, 'utxos_above_100sats')
2845
- self._10btc: _100btcPattern = _100btcPattern(client, 'utxos_above_10btc')
2846
- self._10k_btc: _100btcPattern = _100btcPattern(client, 'utxos_above_10k_btc')
2847
- self._10k_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_10k_sats')
2848
- self._10m_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_10m_sats')
2849
- self._10sats: _100btcPattern = _100btcPattern(client, 'utxos_above_10sats')
2850
- self._1btc: _100btcPattern = _100btcPattern(client, 'utxos_above_1btc')
2851
- self._1k_btc: _100btcPattern = _100btcPattern(client, 'utxos_above_1k_btc')
2852
- self._1k_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_1k_sats')
2853
- self._1m_sats: _100btcPattern = _100btcPattern(client, 'utxos_above_1m_sats')
2854
- self._1sat: _100btcPattern = _100btcPattern(client, 'utxos_above_1sat')
2893
+ self._100btc: _100btcPattern = _100btcPattern(client, 'utxos_over_100btc')
2894
+ self._100k_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_100k_sats')
2895
+ self._100sats: _100btcPattern = _100btcPattern(client, 'utxos_over_100sats')
2896
+ self._10btc: _100btcPattern = _100btcPattern(client, 'utxos_over_10btc')
2897
+ self._10k_btc: _100btcPattern = _100btcPattern(client, 'utxos_over_10k_btc')
2898
+ self._10k_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_10k_sats')
2899
+ self._10m_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_10m_sats')
2900
+ self._10sats: _100btcPattern = _100btcPattern(client, 'utxos_over_10sats')
2901
+ self._1btc: _100btcPattern = _100btcPattern(client, 'utxos_over_1btc')
2902
+ self._1k_btc: _100btcPattern = _100btcPattern(client, 'utxos_over_1k_btc')
2903
+ self._1k_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_1k_sats')
2904
+ self._1m_sats: _100btcPattern = _100btcPattern(client, 'utxos_over_1m_sats')
2905
+ self._1sat: _100btcPattern = _100btcPattern(client, 'utxos_over_1sat')
2855
2906
 
2856
2907
  class MetricsTree_Distribution_UtxoCohorts_LtAmount:
2857
2908
  """Metrics tree node."""
@@ -2875,47 +2926,47 @@ class MetricsTree_Distribution_UtxoCohorts_MaxAge:
2875
2926
  """Metrics tree node."""
2876
2927
 
2877
2928
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2878
- self._10y: _10yPattern = _10yPattern(client, 'utxos_up_to_10y_old')
2879
- self._12y: _10yPattern = _10yPattern(client, 'utxos_up_to_12y_old')
2880
- self._15y: _10yPattern = _10yPattern(client, 'utxos_up_to_15y_old')
2881
- self._1m: _10yPattern = _10yPattern(client, 'utxos_up_to_1m_old')
2882
- self._1w: _10yPattern = _10yPattern(client, 'utxos_up_to_1w_old')
2883
- self._1y: _10yPattern = _10yPattern(client, 'utxos_up_to_1y_old')
2884
- self._2m: _10yPattern = _10yPattern(client, 'utxos_up_to_2m_old')
2885
- self._2y: _10yPattern = _10yPattern(client, 'utxos_up_to_2y_old')
2886
- self._3m: _10yPattern = _10yPattern(client, 'utxos_up_to_3m_old')
2887
- self._3y: _10yPattern = _10yPattern(client, 'utxos_up_to_3y_old')
2888
- self._4m: _10yPattern = _10yPattern(client, 'utxos_up_to_4m_old')
2889
- self._4y: _10yPattern = _10yPattern(client, 'utxos_up_to_4y_old')
2890
- self._5m: _10yPattern = _10yPattern(client, 'utxos_up_to_5m_old')
2891
- self._5y: _10yPattern = _10yPattern(client, 'utxos_up_to_5y_old')
2892
- self._6m: _10yPattern = _10yPattern(client, 'utxos_up_to_6m_old')
2893
- self._6y: _10yPattern = _10yPattern(client, 'utxos_up_to_6y_old')
2894
- self._7y: _10yPattern = _10yPattern(client, 'utxos_up_to_7y_old')
2895
- self._8y: _10yPattern = _10yPattern(client, 'utxos_up_to_8y_old')
2929
+ self._10y: _10yPattern = _10yPattern(client, 'utxos_under_10y_old')
2930
+ self._12y: _10yPattern = _10yPattern(client, 'utxos_under_12y_old')
2931
+ self._15y: _10yPattern = _10yPattern(client, 'utxos_under_15y_old')
2932
+ self._1m: _10yPattern = _10yPattern(client, 'utxos_under_1m_old')
2933
+ self._1w: _10yPattern = _10yPattern(client, 'utxos_under_1w_old')
2934
+ self._1y: _10yPattern = _10yPattern(client, 'utxos_under_1y_old')
2935
+ self._2m: _10yPattern = _10yPattern(client, 'utxos_under_2m_old')
2936
+ self._2y: _10yPattern = _10yPattern(client, 'utxos_under_2y_old')
2937
+ self._3m: _10yPattern = _10yPattern(client, 'utxos_under_3m_old')
2938
+ self._3y: _10yPattern = _10yPattern(client, 'utxos_under_3y_old')
2939
+ self._4m: _10yPattern = _10yPattern(client, 'utxos_under_4m_old')
2940
+ self._4y: _10yPattern = _10yPattern(client, 'utxos_under_4y_old')
2941
+ self._5m: _10yPattern = _10yPattern(client, 'utxos_under_5m_old')
2942
+ self._5y: _10yPattern = _10yPattern(client, 'utxos_under_5y_old')
2943
+ self._6m: _10yPattern = _10yPattern(client, 'utxos_under_6m_old')
2944
+ self._6y: _10yPattern = _10yPattern(client, 'utxos_under_6y_old')
2945
+ self._7y: _10yPattern = _10yPattern(client, 'utxos_under_7y_old')
2946
+ self._8y: _10yPattern = _10yPattern(client, 'utxos_under_8y_old')
2896
2947
 
2897
2948
  class MetricsTree_Distribution_UtxoCohorts_MinAge:
2898
2949
  """Metrics tree node."""
2899
2950
 
2900
2951
  def __init__(self, client: BrkClientBase, base_path: str = ''):
2901
- self._10y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_10y_old')
2902
- self._12y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_12y_old')
2903
- self._1d: _100btcPattern = _100btcPattern(client, 'utxos_at_least_1d_old')
2904
- self._1m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_1m_old')
2905
- self._1w: _100btcPattern = _100btcPattern(client, 'utxos_at_least_1w_old')
2906
- self._1y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_1y_old')
2907
- self._2m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_2m_old')
2908
- self._2y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_2y_old')
2909
- self._3m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_3m_old')
2910
- self._3y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_3y_old')
2911
- self._4m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_4m_old')
2912
- self._4y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_4y_old')
2913
- self._5m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_5m_old')
2914
- self._5y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_5y_old')
2915
- self._6m: _100btcPattern = _100btcPattern(client, 'utxos_at_least_6m_old')
2916
- self._6y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_6y_old')
2917
- self._7y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_7y_old')
2918
- self._8y: _100btcPattern = _100btcPattern(client, 'utxos_at_least_8y_old')
2952
+ self._10y: _100btcPattern = _100btcPattern(client, 'utxos_over_10y_old')
2953
+ self._12y: _100btcPattern = _100btcPattern(client, 'utxos_over_12y_old')
2954
+ self._1d: _100btcPattern = _100btcPattern(client, 'utxos_over_1d_old')
2955
+ self._1m: _100btcPattern = _100btcPattern(client, 'utxos_over_1m_old')
2956
+ self._1w: _100btcPattern = _100btcPattern(client, 'utxos_over_1w_old')
2957
+ self._1y: _100btcPattern = _100btcPattern(client, 'utxos_over_1y_old')
2958
+ self._2m: _100btcPattern = _100btcPattern(client, 'utxos_over_2m_old')
2959
+ self._2y: _100btcPattern = _100btcPattern(client, 'utxos_over_2y_old')
2960
+ self._3m: _100btcPattern = _100btcPattern(client, 'utxos_over_3m_old')
2961
+ self._3y: _100btcPattern = _100btcPattern(client, 'utxos_over_3y_old')
2962
+ self._4m: _100btcPattern = _100btcPattern(client, 'utxos_over_4m_old')
2963
+ self._4y: _100btcPattern = _100btcPattern(client, 'utxos_over_4y_old')
2964
+ self._5m: _100btcPattern = _100btcPattern(client, 'utxos_over_5m_old')
2965
+ self._5y: _100btcPattern = _100btcPattern(client, 'utxos_over_5y_old')
2966
+ self._6m: _100btcPattern = _100btcPattern(client, 'utxos_over_6m_old')
2967
+ self._6y: _100btcPattern = _100btcPattern(client, 'utxos_over_6y_old')
2968
+ self._7y: _100btcPattern = _100btcPattern(client, 'utxos_over_7y_old')
2969
+ self._8y: _100btcPattern = _100btcPattern(client, 'utxos_over_8y_old')
2919
2970
 
2920
2971
  class MetricsTree_Distribution_UtxoCohorts_Term_Long:
2921
2972
  """Metrics tree node."""
@@ -3269,21 +3320,90 @@ class MetricsTree_Market_Ath:
3269
3320
  self.price_drawdown: MetricPattern3[StoredF32] = MetricPattern3(client, 'price_drawdown')
3270
3321
  self.years_since_price_ath: MetricPattern4[StoredF32] = MetricPattern4(client, 'years_since_price_ath')
3271
3322
 
3272
- class MetricsTree_Market_Dca_ClassAveragePrice:
3323
+ class MetricsTree_Market_Dca_ClassDaysInLoss:
3324
+ """Metrics tree node."""
3325
+
3326
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3327
+ self._2015: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2015_days_in_loss')
3328
+ self._2016: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2016_days_in_loss')
3329
+ self._2017: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2017_days_in_loss')
3330
+ self._2018: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2018_days_in_loss')
3331
+ self._2019: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2019_days_in_loss')
3332
+ self._2020: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2020_days_in_loss')
3333
+ self._2021: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2021_days_in_loss')
3334
+ self._2022: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2022_days_in_loss')
3335
+ self._2023: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2023_days_in_loss')
3336
+ self._2024: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2024_days_in_loss')
3337
+ self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_loss')
3338
+ self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_loss')
3339
+
3340
+ class MetricsTree_Market_Dca_ClassDaysInProfit:
3273
3341
  """Metrics tree node."""
3274
3342
 
3275
3343
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3276
- self._2015: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2015_average_price')
3277
- self._2016: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2016_average_price')
3278
- self._2017: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2017_average_price')
3279
- self._2018: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2018_average_price')
3280
- self._2019: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2019_average_price')
3281
- self._2020: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2020_average_price')
3282
- self._2021: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2021_average_price')
3283
- self._2022: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2022_average_price')
3284
- self._2023: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2023_average_price')
3285
- self._2024: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2024_average_price')
3286
- self._2025: MetricPattern4[Dollars] = MetricPattern4(client, 'dca_class_2025_average_price')
3344
+ self._2015: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2015_days_in_profit')
3345
+ self._2016: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2016_days_in_profit')
3346
+ self._2017: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2017_days_in_profit')
3347
+ self._2018: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2018_days_in_profit')
3348
+ self._2019: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2019_days_in_profit')
3349
+ self._2020: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2020_days_in_profit')
3350
+ self._2021: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2021_days_in_profit')
3351
+ self._2022: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2022_days_in_profit')
3352
+ self._2023: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2023_days_in_profit')
3353
+ self._2024: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2024_days_in_profit')
3354
+ self._2025: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2025_days_in_profit')
3355
+ self._2026: MetricPattern4[StoredU32] = MetricPattern4(client, 'dca_class_2026_days_in_profit')
3356
+
3357
+ class MetricsTree_Market_Dca_ClassMaxDrawdown:
3358
+ """Metrics tree node."""
3359
+
3360
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3361
+ self._2015: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2015_max_drawdown')
3362
+ self._2016: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2016_max_drawdown')
3363
+ self._2017: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2017_max_drawdown')
3364
+ self._2018: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2018_max_drawdown')
3365
+ self._2019: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2019_max_drawdown')
3366
+ self._2020: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2020_max_drawdown')
3367
+ self._2021: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2021_max_drawdown')
3368
+ self._2022: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2022_max_drawdown')
3369
+ self._2023: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2023_max_drawdown')
3370
+ self._2024: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2024_max_drawdown')
3371
+ self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_max_drawdown')
3372
+ self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_max_drawdown')
3373
+
3374
+ class MetricsTree_Market_Dca_ClassMaxReturn:
3375
+ """Metrics tree node."""
3376
+
3377
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3378
+ self._2015: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2015_max_return')
3379
+ self._2016: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2016_max_return')
3380
+ self._2017: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2017_max_return')
3381
+ self._2018: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2018_max_return')
3382
+ self._2019: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2019_max_return')
3383
+ self._2020: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2020_max_return')
3384
+ self._2021: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2021_max_return')
3385
+ self._2022: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2022_max_return')
3386
+ self._2023: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2023_max_return')
3387
+ self._2024: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2024_max_return')
3388
+ self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_max_return')
3389
+ self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_max_return')
3390
+
3391
+ class MetricsTree_Market_Dca_ClassReturns:
3392
+ """Metrics tree node."""
3393
+
3394
+ def __init__(self, client: BrkClientBase, base_path: str = ''):
3395
+ self._2015: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2015_returns')
3396
+ self._2016: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2016_returns')
3397
+ self._2017: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2017_returns')
3398
+ self._2018: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2018_returns')
3399
+ self._2019: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2019_returns')
3400
+ self._2020: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2020_returns')
3401
+ self._2021: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2021_returns')
3402
+ self._2022: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2022_returns')
3403
+ self._2023: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2023_returns')
3404
+ self._2024: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2024_returns')
3405
+ self._2025: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2025_returns')
3406
+ self._2026: MetricPattern4[StoredF32] = MetricPattern4(client, 'dca_class_2026_returns')
3287
3407
 
3288
3408
  class MetricsTree_Market_Dca_ClassStack:
3289
3409
  """Metrics tree node."""
@@ -3300,17 +3420,31 @@ class MetricsTree_Market_Dca_ClassStack:
3300
3420
  self._2023: _2015Pattern = _2015Pattern(client, 'dca_class_2023_stack')
3301
3421
  self._2024: _2015Pattern = _2015Pattern(client, 'dca_class_2024_stack')
3302
3422
  self._2025: _2015Pattern = _2015Pattern(client, 'dca_class_2025_stack')
3423
+ self._2026: _2015Pattern = _2015Pattern(client, 'dca_class_2026_stack')
3303
3424
 
3304
3425
  class MetricsTree_Market_Dca:
3305
3426
  """Metrics tree node."""
3306
3427
 
3307
3428
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3308
- self.class_average_price: MetricsTree_Market_Dca_ClassAveragePrice = MetricsTree_Market_Dca_ClassAveragePrice(client)
3309
- self.class_returns: ClassAveragePricePattern[StoredF32] = ClassAveragePricePattern(client, 'dca_class')
3429
+ self.class_average_price: ClassAveragePricePattern[Dollars] = ClassAveragePricePattern(client, 'dca_class')
3430
+ self.class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss = MetricsTree_Market_Dca_ClassDaysInLoss(client)
3431
+ self.class_days_in_profit: MetricsTree_Market_Dca_ClassDaysInProfit = MetricsTree_Market_Dca_ClassDaysInProfit(client)
3432
+ self.class_max_drawdown: MetricsTree_Market_Dca_ClassMaxDrawdown = MetricsTree_Market_Dca_ClassMaxDrawdown(client)
3433
+ self.class_max_return: MetricsTree_Market_Dca_ClassMaxReturn = MetricsTree_Market_Dca_ClassMaxReturn(client)
3434
+ self.class_returns: MetricsTree_Market_Dca_ClassReturns = MetricsTree_Market_Dca_ClassReturns(client)
3310
3435
  self.class_stack: MetricsTree_Market_Dca_ClassStack = MetricsTree_Market_Dca_ClassStack(client)
3311
3436
  self.period_average_price: PeriodAveragePricePattern[Dollars] = PeriodAveragePricePattern(client, 'dca_average_price')
3312
3437
  self.period_cagr: PeriodCagrPattern = PeriodCagrPattern(client, 'dca_cagr')
3438
+ self.period_days_in_loss: PeriodAveragePricePattern[StoredU32] = PeriodAveragePricePattern(client, 'dca_days_in_loss')
3439
+ self.period_days_in_profit: PeriodAveragePricePattern[StoredU32] = PeriodAveragePricePattern(client, 'dca_days_in_profit')
3440
+ self.period_lump_sum_days_in_loss: PeriodAveragePricePattern[StoredU32] = PeriodAveragePricePattern(client, 'lump_sum_days_in_loss')
3441
+ self.period_lump_sum_days_in_profit: PeriodAveragePricePattern[StoredU32] = PeriodAveragePricePattern(client, 'lump_sum_days_in_profit')
3442
+ self.period_lump_sum_max_drawdown: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'lump_sum_max_drawdown')
3443
+ self.period_lump_sum_max_return: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'lump_sum_max_return')
3444
+ self.period_lump_sum_returns: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'lump_sum_returns')
3313
3445
  self.period_lump_sum_stack: PeriodLumpSumStackPattern = PeriodLumpSumStackPattern(client, 'lump_sum_stack')
3446
+ self.period_max_drawdown: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'dca_max_drawdown')
3447
+ self.period_max_return: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'dca_max_return')
3314
3448
  self.period_returns: PeriodAveragePricePattern[StoredF32] = PeriodAveragePricePattern(client, 'dca_returns')
3315
3449
  self.period_stack: PeriodLumpSumStackPattern = PeriodLumpSumStackPattern(client, 'dca_stack')
3316
3450
 
@@ -3675,7 +3809,11 @@ class MetricsTree_Price_Oracle:
3675
3809
  """Metrics tree node."""
3676
3810
 
3677
3811
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3812
+ self.close_ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(client, 'close_ohlc_cents')
3813
+ self.close_ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(client, 'close_ohlc_dollars')
3678
3814
  self.height_to_first_pairoutputindex: MetricPattern11[PairOutputIndex] = MetricPattern11(client, 'height_to_first_pairoutputindex')
3815
+ self.mid_ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(client, 'mid_ohlc_cents')
3816
+ self.mid_ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(client, 'mid_ohlc_dollars')
3679
3817
  self.ohlc_cents: MetricPattern6[OHLCCents] = MetricPattern6(client, 'oracle_ohlc_cents')
3680
3818
  self.ohlc_dollars: MetricPattern6[OHLCDollars] = MetricPattern6(client, 'oracle_ohlc')
3681
3819
  self.output0_value: MetricPattern33[Sats] = MetricPattern33(client, 'pair_output0_value')
@@ -3702,12 +3840,12 @@ class MetricsTree_Price_Oracle:
3702
3840
  self.price_cents: MetricPattern11[Cents] = MetricPattern11(client, 'oracle_price_cents')
3703
3841
  self.tx_count: MetricPattern6[StoredU32] = MetricPattern6(client, 'oracle_tx_count')
3704
3842
 
3705
- class MetricsTree_Price_Usd:
3843
+ class MetricsTree_Price_Sats:
3706
3844
  """Metrics tree node."""
3707
3845
 
3708
3846
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3709
- self.ohlc: MetricPattern1[OHLCDollars] = MetricPattern1(client, 'price_ohlc')
3710
- self.split: SplitPattern2[Dollars] = SplitPattern2(client, 'price')
3847
+ self.ohlc: MetricPattern1[OHLCSats] = MetricPattern1(client, 'price_ohlc_sats')
3848
+ self.split: SplitPattern2[Sats] = SplitPattern2(client, 'price_sats')
3711
3849
 
3712
3850
  class MetricsTree_Price:
3713
3851
  """Metrics tree node."""
@@ -3715,8 +3853,8 @@ class MetricsTree_Price:
3715
3853
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3716
3854
  self.cents: MetricsTree_Price_Cents = MetricsTree_Price_Cents(client)
3717
3855
  self.oracle: MetricsTree_Price_Oracle = MetricsTree_Price_Oracle(client)
3718
- self.sats: SatsPattern[OHLCSats] = SatsPattern(client, 'price')
3719
- self.usd: MetricsTree_Price_Usd = MetricsTree_Price_Usd(client)
3856
+ self.sats: MetricsTree_Price_Sats = MetricsTree_Price_Sats(client)
3857
+ self.usd: SatsPattern[OHLCDollars] = SatsPattern(client, 'price')
3720
3858
 
3721
3859
  class MetricsTree_Scripts_Count:
3722
3860
  """Metrics tree node."""
@@ -3798,28 +3936,12 @@ class MetricsTree_Transactions_Count:
3798
3936
  self.is_coinbase: MetricPattern27[StoredBool] = MetricPattern27(client, 'is_coinbase')
3799
3937
  self.tx_count: DollarsPattern[StoredU64] = DollarsPattern(client, 'tx_count')
3800
3938
 
3801
- class MetricsTree_Transactions_Fees_Fee_Dollars:
3802
- """Metrics tree node."""
3803
-
3804
- def __init__(self, client: BrkClientBase, base_path: str = ''):
3805
- self.average: MetricPattern1[Dollars] = MetricPattern1(client, 'fee_usd_average')
3806
- self.cumulative: MetricPattern2[Dollars] = MetricPattern2(client, 'fee_usd_cumulative')
3807
- self.height_cumulative: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_cumulative')
3808
- self.max: MetricPattern1[Dollars] = MetricPattern1(client, 'fee_usd_max')
3809
- self.median: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_median')
3810
- self.min: MetricPattern1[Dollars] = MetricPattern1(client, 'fee_usd_min')
3811
- self.pct10: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_pct10')
3812
- self.pct25: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_pct25')
3813
- self.pct75: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_pct75')
3814
- self.pct90: MetricPattern11[Dollars] = MetricPattern11(client, 'fee_usd_pct90')
3815
- self.sum: MetricPattern1[Dollars] = MetricPattern1(client, 'fee_usd_sum')
3816
-
3817
3939
  class MetricsTree_Transactions_Fees_Fee:
3818
3940
  """Metrics tree node."""
3819
3941
 
3820
3942
  def __init__(self, client: BrkClientBase, base_path: str = ''):
3821
3943
  self.bitcoin: CountPattern2[Bitcoin] = CountPattern2(client, 'fee_btc')
3822
- self.dollars: MetricsTree_Transactions_Fees_Fee_Dollars = MetricsTree_Transactions_Fees_Fee_Dollars(client)
3944
+ self.dollars: CountPattern2[Dollars] = CountPattern2(client, 'fee_usd')
3823
3945
  self.sats: CountPattern2[Sats] = CountPattern2(client, 'fee')
3824
3946
  self.txindex: MetricPattern27[Sats] = MetricPattern27(client, 'fee')
3825
3947
 
@@ -3854,6 +3976,7 @@ class MetricsTree_Transactions_Volume:
3854
3976
  self.annualized_volume: _2015Pattern = _2015Pattern(client, 'annualized_volume')
3855
3977
  self.inputs_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'inputs_per_sec')
3856
3978
  self.outputs_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'outputs_per_sec')
3979
+ self.received_sum: ActiveSupplyPattern = ActiveSupplyPattern(client, 'received_sum')
3857
3980
  self.sent_sum: ActiveSupplyPattern = ActiveSupplyPattern(client, 'sent_sum')
3858
3981
  self.tx_per_sec: MetricPattern4[StoredF32] = MetricPattern4(client, 'tx_per_sec')
3859
3982
 
@@ -3900,7 +4023,7 @@ class MetricsTree:
3900
4023
  class BrkClient(BrkClientBase):
3901
4024
  """Main BRK client with metrics tree and API methods."""
3902
4025
 
3903
- VERSION = "v0.1.0-alpha.3"
4026
+ VERSION = "v0.1.0-beta.0"
3904
4027
 
3905
4028
  INDEXES = [
3906
4029
  "dateindex",
@@ -4110,27 +4233,27 @@ class BrkClient(BrkClientBase):
4110
4233
  EPOCH_NAMES = {
4111
4234
  "_0": {
4112
4235
  "id": "epoch_0",
4113
- "short": "Epoch 0",
4236
+ "short": "0",
4114
4237
  "long": "Epoch 0"
4115
4238
  },
4116
4239
  "_1": {
4117
4240
  "id": "epoch_1",
4118
- "short": "Epoch 1",
4241
+ "short": "1",
4119
4242
  "long": "Epoch 1"
4120
4243
  },
4121
4244
  "_2": {
4122
4245
  "id": "epoch_2",
4123
- "short": "Epoch 2",
4246
+ "short": "2",
4124
4247
  "long": "Epoch 2"
4125
4248
  },
4126
4249
  "_3": {
4127
4250
  "id": "epoch_3",
4128
- "short": "Epoch 3",
4251
+ "short": "3",
4129
4252
  "long": "Epoch 3"
4130
4253
  },
4131
4254
  "_4": {
4132
4255
  "id": "epoch_4",
4133
- "short": "Epoch 4",
4256
+ "short": "4",
4134
4257
  "long": "Epoch 4"
4135
4258
  }
4136
4259
  }
@@ -4288,107 +4411,107 @@ class BrkClient(BrkClientBase):
4288
4411
 
4289
4412
  AGE_RANGE_NAMES = {
4290
4413
  "up_to_1h": {
4291
- "id": "up_to_1h_old",
4414
+ "id": "under_1h_old",
4292
4415
  "short": "<1h",
4293
- "long": "Up to 1 Hour Old"
4416
+ "long": "Under 1 Hour Old"
4294
4417
  },
4295
4418
  "_1h_to_1d": {
4296
- "id": "at_least_1h_up_to_1d_old",
4419
+ "id": "1h_to_1d_old",
4297
4420
  "short": "1h-1d",
4298
4421
  "long": "1 Hour to 1 Day Old"
4299
4422
  },
4300
4423
  "_1d_to_1w": {
4301
- "id": "at_least_1d_up_to_1w_old",
4424
+ "id": "1d_to_1w_old",
4302
4425
  "short": "1d-1w",
4303
4426
  "long": "1 Day to 1 Week Old"
4304
4427
  },
4305
4428
  "_1w_to_1m": {
4306
- "id": "at_least_1w_up_to_1m_old",
4429
+ "id": "1w_to_1m_old",
4307
4430
  "short": "1w-1m",
4308
4431
  "long": "1 Week to 1 Month Old"
4309
4432
  },
4310
4433
  "_1m_to_2m": {
4311
- "id": "at_least_1m_up_to_2m_old",
4434
+ "id": "1m_to_2m_old",
4312
4435
  "short": "1m-2m",
4313
4436
  "long": "1 to 2 Months Old"
4314
4437
  },
4315
4438
  "_2m_to_3m": {
4316
- "id": "at_least_2m_up_to_3m_old",
4439
+ "id": "2m_to_3m_old",
4317
4440
  "short": "2m-3m",
4318
4441
  "long": "2 to 3 Months Old"
4319
4442
  },
4320
4443
  "_3m_to_4m": {
4321
- "id": "at_least_3m_up_to_4m_old",
4444
+ "id": "3m_to_4m_old",
4322
4445
  "short": "3m-4m",
4323
4446
  "long": "3 to 4 Months Old"
4324
4447
  },
4325
4448
  "_4m_to_5m": {
4326
- "id": "at_least_4m_up_to_5m_old",
4449
+ "id": "4m_to_5m_old",
4327
4450
  "short": "4m-5m",
4328
4451
  "long": "4 to 5 Months Old"
4329
4452
  },
4330
4453
  "_5m_to_6m": {
4331
- "id": "at_least_5m_up_to_6m_old",
4454
+ "id": "5m_to_6m_old",
4332
4455
  "short": "5m-6m",
4333
4456
  "long": "5 to 6 Months Old"
4334
4457
  },
4335
4458
  "_6m_to_1y": {
4336
- "id": "at_least_6m_up_to_1y_old",
4459
+ "id": "6m_to_1y_old",
4337
4460
  "short": "6m-1y",
4338
4461
  "long": "6 Months to 1 Year Old"
4339
4462
  },
4340
4463
  "_1y_to_2y": {
4341
- "id": "at_least_1y_up_to_2y_old",
4464
+ "id": "1y_to_2y_old",
4342
4465
  "short": "1y-2y",
4343
4466
  "long": "1 to 2 Years Old"
4344
4467
  },
4345
4468
  "_2y_to_3y": {
4346
- "id": "at_least_2y_up_to_3y_old",
4469
+ "id": "2y_to_3y_old",
4347
4470
  "short": "2y-3y",
4348
4471
  "long": "2 to 3 Years Old"
4349
4472
  },
4350
4473
  "_3y_to_4y": {
4351
- "id": "at_least_3y_up_to_4y_old",
4474
+ "id": "3y_to_4y_old",
4352
4475
  "short": "3y-4y",
4353
4476
  "long": "3 to 4 Years Old"
4354
4477
  },
4355
4478
  "_4y_to_5y": {
4356
- "id": "at_least_4y_up_to_5y_old",
4479
+ "id": "4y_to_5y_old",
4357
4480
  "short": "4y-5y",
4358
4481
  "long": "4 to 5 Years Old"
4359
4482
  },
4360
4483
  "_5y_to_6y": {
4361
- "id": "at_least_5y_up_to_6y_old",
4484
+ "id": "5y_to_6y_old",
4362
4485
  "short": "5y-6y",
4363
4486
  "long": "5 to 6 Years Old"
4364
4487
  },
4365
4488
  "_6y_to_7y": {
4366
- "id": "at_least_6y_up_to_7y_old",
4489
+ "id": "6y_to_7y_old",
4367
4490
  "short": "6y-7y",
4368
4491
  "long": "6 to 7 Years Old"
4369
4492
  },
4370
4493
  "_7y_to_8y": {
4371
- "id": "at_least_7y_up_to_8y_old",
4494
+ "id": "7y_to_8y_old",
4372
4495
  "short": "7y-8y",
4373
4496
  "long": "7 to 8 Years Old"
4374
4497
  },
4375
4498
  "_8y_to_10y": {
4376
- "id": "at_least_8y_up_to_10y_old",
4499
+ "id": "8y_to_10y_old",
4377
4500
  "short": "8y-10y",
4378
4501
  "long": "8 to 10 Years Old"
4379
4502
  },
4380
4503
  "_10y_to_12y": {
4381
- "id": "at_least_10y_up_to_12y_old",
4504
+ "id": "10y_to_12y_old",
4382
4505
  "short": "10y-12y",
4383
4506
  "long": "10 to 12 Years Old"
4384
4507
  },
4385
4508
  "_12y_to_15y": {
4386
- "id": "at_least_12y_up_to_15y_old",
4509
+ "id": "12y_to_15y_old",
4387
4510
  "short": "12y-15y",
4388
4511
  "long": "12 to 15 Years Old"
4389
4512
  },
4390
4513
  "from_15y": {
4391
- "id": "at_least_15y_old",
4514
+ "id": "over_15y_old",
4392
4515
  "short": "15y+",
4393
4516
  "long": "15+ Years Old"
4394
4517
  }
@@ -4396,187 +4519,187 @@ class BrkClient(BrkClientBase):
4396
4519
 
4397
4520
  MAX_AGE_NAMES = {
4398
4521
  "_1w": {
4399
- "id": "up_to_1w_old",
4522
+ "id": "under_1w_old",
4400
4523
  "short": "<1w",
4401
- "long": "Up to 1 Week Old"
4524
+ "long": "Under 1 Week Old"
4402
4525
  },
4403
4526
  "_1m": {
4404
- "id": "up_to_1m_old",
4527
+ "id": "under_1m_old",
4405
4528
  "short": "<1m",
4406
- "long": "Up to 1 Month Old"
4529
+ "long": "Under 1 Month Old"
4407
4530
  },
4408
4531
  "_2m": {
4409
- "id": "up_to_2m_old",
4532
+ "id": "under_2m_old",
4410
4533
  "short": "<2m",
4411
- "long": "Up to 2 Months Old"
4534
+ "long": "Under 2 Months Old"
4412
4535
  },
4413
4536
  "_3m": {
4414
- "id": "up_to_3m_old",
4537
+ "id": "under_3m_old",
4415
4538
  "short": "<3m",
4416
- "long": "Up to 3 Months Old"
4539
+ "long": "Under 3 Months Old"
4417
4540
  },
4418
4541
  "_4m": {
4419
- "id": "up_to_4m_old",
4542
+ "id": "under_4m_old",
4420
4543
  "short": "<4m",
4421
- "long": "Up to 4 Months Old"
4544
+ "long": "Under 4 Months Old"
4422
4545
  },
4423
4546
  "_5m": {
4424
- "id": "up_to_5m_old",
4547
+ "id": "under_5m_old",
4425
4548
  "short": "<5m",
4426
- "long": "Up to 5 Months Old"
4549
+ "long": "Under 5 Months Old"
4427
4550
  },
4428
4551
  "_6m": {
4429
- "id": "up_to_6m_old",
4552
+ "id": "under_6m_old",
4430
4553
  "short": "<6m",
4431
- "long": "Up to 6 Months Old"
4554
+ "long": "Under 6 Months Old"
4432
4555
  },
4433
4556
  "_1y": {
4434
- "id": "up_to_1y_old",
4557
+ "id": "under_1y_old",
4435
4558
  "short": "<1y",
4436
- "long": "Up to 1 Year Old"
4559
+ "long": "Under 1 Year Old"
4437
4560
  },
4438
4561
  "_2y": {
4439
- "id": "up_to_2y_old",
4562
+ "id": "under_2y_old",
4440
4563
  "short": "<2y",
4441
- "long": "Up to 2 Years Old"
4564
+ "long": "Under 2 Years Old"
4442
4565
  },
4443
4566
  "_3y": {
4444
- "id": "up_to_3y_old",
4567
+ "id": "under_3y_old",
4445
4568
  "short": "<3y",
4446
- "long": "Up to 3 Years Old"
4569
+ "long": "Under 3 Years Old"
4447
4570
  },
4448
4571
  "_4y": {
4449
- "id": "up_to_4y_old",
4572
+ "id": "under_4y_old",
4450
4573
  "short": "<4y",
4451
- "long": "Up to 4 Years Old"
4574
+ "long": "Under 4 Years Old"
4452
4575
  },
4453
4576
  "_5y": {
4454
- "id": "up_to_5y_old",
4577
+ "id": "under_5y_old",
4455
4578
  "short": "<5y",
4456
- "long": "Up to 5 Years Old"
4579
+ "long": "Under 5 Years Old"
4457
4580
  },
4458
4581
  "_6y": {
4459
- "id": "up_to_6y_old",
4582
+ "id": "under_6y_old",
4460
4583
  "short": "<6y",
4461
- "long": "Up to 6 Years Old"
4584
+ "long": "Under 6 Years Old"
4462
4585
  },
4463
4586
  "_7y": {
4464
- "id": "up_to_7y_old",
4587
+ "id": "under_7y_old",
4465
4588
  "short": "<7y",
4466
- "long": "Up to 7 Years Old"
4589
+ "long": "Under 7 Years Old"
4467
4590
  },
4468
4591
  "_8y": {
4469
- "id": "up_to_8y_old",
4592
+ "id": "under_8y_old",
4470
4593
  "short": "<8y",
4471
- "long": "Up to 8 Years Old"
4594
+ "long": "Under 8 Years Old"
4472
4595
  },
4473
4596
  "_10y": {
4474
- "id": "up_to_10y_old",
4597
+ "id": "under_10y_old",
4475
4598
  "short": "<10y",
4476
- "long": "Up to 10 Years Old"
4599
+ "long": "Under 10 Years Old"
4477
4600
  },
4478
4601
  "_12y": {
4479
- "id": "up_to_12y_old",
4602
+ "id": "under_12y_old",
4480
4603
  "short": "<12y",
4481
- "long": "Up to 12 Years Old"
4604
+ "long": "Under 12 Years Old"
4482
4605
  },
4483
4606
  "_15y": {
4484
- "id": "up_to_15y_old",
4607
+ "id": "under_15y_old",
4485
4608
  "short": "<15y",
4486
- "long": "Up to 15 Years Old"
4609
+ "long": "Under 15 Years Old"
4487
4610
  }
4488
4611
  }
4489
4612
 
4490
4613
  MIN_AGE_NAMES = {
4491
4614
  "_1d": {
4492
- "id": "at_least_1d_old",
4615
+ "id": "over_1d_old",
4493
4616
  "short": "1d+",
4494
- "long": "At Least 1 Day Old"
4617
+ "long": "Over 1 Day Old"
4495
4618
  },
4496
4619
  "_1w": {
4497
- "id": "at_least_1w_old",
4620
+ "id": "over_1w_old",
4498
4621
  "short": "1w+",
4499
- "long": "At Least 1 Week Old"
4622
+ "long": "Over 1 Week Old"
4500
4623
  },
4501
4624
  "_1m": {
4502
- "id": "at_least_1m_old",
4625
+ "id": "over_1m_old",
4503
4626
  "short": "1m+",
4504
- "long": "At Least 1 Month Old"
4627
+ "long": "Over 1 Month Old"
4505
4628
  },
4506
4629
  "_2m": {
4507
- "id": "at_least_2m_old",
4630
+ "id": "over_2m_old",
4508
4631
  "short": "2m+",
4509
- "long": "At Least 2 Months Old"
4632
+ "long": "Over 2 Months Old"
4510
4633
  },
4511
4634
  "_3m": {
4512
- "id": "at_least_3m_old",
4635
+ "id": "over_3m_old",
4513
4636
  "short": "3m+",
4514
- "long": "At Least 3 Months Old"
4637
+ "long": "Over 3 Months Old"
4515
4638
  },
4516
4639
  "_4m": {
4517
- "id": "at_least_4m_old",
4640
+ "id": "over_4m_old",
4518
4641
  "short": "4m+",
4519
- "long": "At Least 4 Months Old"
4642
+ "long": "Over 4 Months Old"
4520
4643
  },
4521
4644
  "_5m": {
4522
- "id": "at_least_5m_old",
4645
+ "id": "over_5m_old",
4523
4646
  "short": "5m+",
4524
- "long": "At Least 5 Months Old"
4647
+ "long": "Over 5 Months Old"
4525
4648
  },
4526
4649
  "_6m": {
4527
- "id": "at_least_6m_old",
4650
+ "id": "over_6m_old",
4528
4651
  "short": "6m+",
4529
- "long": "At Least 6 Months Old"
4652
+ "long": "Over 6 Months Old"
4530
4653
  },
4531
4654
  "_1y": {
4532
- "id": "at_least_1y_old",
4655
+ "id": "over_1y_old",
4533
4656
  "short": "1y+",
4534
- "long": "At Least 1 Year Old"
4657
+ "long": "Over 1 Year Old"
4535
4658
  },
4536
4659
  "_2y": {
4537
- "id": "at_least_2y_old",
4660
+ "id": "over_2y_old",
4538
4661
  "short": "2y+",
4539
- "long": "At Least 2 Years Old"
4662
+ "long": "Over 2 Years Old"
4540
4663
  },
4541
4664
  "_3y": {
4542
- "id": "at_least_3y_old",
4665
+ "id": "over_3y_old",
4543
4666
  "short": "3y+",
4544
- "long": "At Least 3 Years Old"
4667
+ "long": "Over 3 Years Old"
4545
4668
  },
4546
4669
  "_4y": {
4547
- "id": "at_least_4y_old",
4670
+ "id": "over_4y_old",
4548
4671
  "short": "4y+",
4549
- "long": "At Least 4 Years Old"
4672
+ "long": "Over 4 Years Old"
4550
4673
  },
4551
4674
  "_5y": {
4552
- "id": "at_least_5y_old",
4675
+ "id": "over_5y_old",
4553
4676
  "short": "5y+",
4554
- "long": "At Least 5 Years Old"
4677
+ "long": "Over 5 Years Old"
4555
4678
  },
4556
4679
  "_6y": {
4557
- "id": "at_least_6y_old",
4680
+ "id": "over_6y_old",
4558
4681
  "short": "6y+",
4559
- "long": "At Least 6 Years Old"
4682
+ "long": "Over 6 Years Old"
4560
4683
  },
4561
4684
  "_7y": {
4562
- "id": "at_least_7y_old",
4685
+ "id": "over_7y_old",
4563
4686
  "short": "7y+",
4564
- "long": "At Least 7 Years Old"
4687
+ "long": "Over 7 Years Old"
4565
4688
  },
4566
4689
  "_8y": {
4567
- "id": "at_least_8y_old",
4690
+ "id": "over_8y_old",
4568
4691
  "short": "8y+",
4569
- "long": "At Least 8 Years Old"
4692
+ "long": "Over 8 Years Old"
4570
4693
  },
4571
4694
  "_10y": {
4572
- "id": "at_least_10y_old",
4695
+ "id": "over_10y_old",
4573
4696
  "short": "10y+",
4574
- "long": "At Least 10 Years Old"
4697
+ "long": "Over 10 Years Old"
4575
4698
  },
4576
4699
  "_12y": {
4577
- "id": "at_least_12y_old",
4700
+ "id": "over_12y_old",
4578
4701
  "short": "12y+",
4579
- "long": "At Least 12 Years Old"
4702
+ "long": "Over 12 Years Old"
4580
4703
  }
4581
4704
  }
4582
4705
 
@@ -4589,67 +4712,67 @@ class BrkClient(BrkClientBase):
4589
4712
  "_1sat_to_10sats": {
4590
4713
  "id": "above_1sat_under_10sats",
4591
4714
  "short": "1-10 sats",
4592
- "long": "1 to 10 Sats"
4715
+ "long": "1-10 Sats"
4593
4716
  },
4594
4717
  "_10sats_to_100sats": {
4595
4718
  "id": "above_10sats_under_100sats",
4596
4719
  "short": "10-100 sats",
4597
- "long": "10 to 100 Sats"
4720
+ "long": "10-100 Sats"
4598
4721
  },
4599
4722
  "_100sats_to_1k_sats": {
4600
4723
  "id": "above_100sats_under_1k_sats",
4601
4724
  "short": "100-1k sats",
4602
- "long": "100 to 1K Sats"
4725
+ "long": "100-1K Sats"
4603
4726
  },
4604
4727
  "_1k_sats_to_10k_sats": {
4605
4728
  "id": "above_1k_sats_under_10k_sats",
4606
4729
  "short": "1k-10k sats",
4607
- "long": "1K to 10K Sats"
4730
+ "long": "1K-10K Sats"
4608
4731
  },
4609
4732
  "_10k_sats_to_100k_sats": {
4610
4733
  "id": "above_10k_sats_under_100k_sats",
4611
4734
  "short": "10k-100k sats",
4612
- "long": "10K to 100K Sats"
4735
+ "long": "10K-100K Sats"
4613
4736
  },
4614
4737
  "_100k_sats_to_1m_sats": {
4615
4738
  "id": "above_100k_sats_under_1m_sats",
4616
4739
  "short": "100k-1M sats",
4617
- "long": "100K to 1M Sats"
4740
+ "long": "100K-1M Sats"
4618
4741
  },
4619
4742
  "_1m_sats_to_10m_sats": {
4620
4743
  "id": "above_1m_sats_under_10m_sats",
4621
4744
  "short": "1M-10M sats",
4622
- "long": "1M to 10M Sats"
4745
+ "long": "1M-10M Sats"
4623
4746
  },
4624
4747
  "_10m_sats_to_1btc": {
4625
4748
  "id": "above_10m_sats_under_1btc",
4626
4749
  "short": "0.1-1 BTC",
4627
- "long": "0.1 to 1 BTC"
4750
+ "long": "0.1-1 BTC"
4628
4751
  },
4629
4752
  "_1btc_to_10btc": {
4630
4753
  "id": "above_1btc_under_10btc",
4631
4754
  "short": "1-10 BTC",
4632
- "long": "1 to 10 BTC"
4755
+ "long": "1-10 BTC"
4633
4756
  },
4634
4757
  "_10btc_to_100btc": {
4635
4758
  "id": "above_10btc_under_100btc",
4636
4759
  "short": "10-100 BTC",
4637
- "long": "10 to 100 BTC"
4760
+ "long": "10-100 BTC"
4638
4761
  },
4639
4762
  "_100btc_to_1k_btc": {
4640
4763
  "id": "above_100btc_under_1k_btc",
4641
4764
  "short": "100-1k BTC",
4642
- "long": "100 to 1K BTC"
4765
+ "long": "100-1K BTC"
4643
4766
  },
4644
4767
  "_1k_btc_to_10k_btc": {
4645
4768
  "id": "above_1k_btc_under_10k_btc",
4646
4769
  "short": "1k-10k BTC",
4647
- "long": "1K to 10K BTC"
4770
+ "long": "1K-10K BTC"
4648
4771
  },
4649
4772
  "_10k_btc_to_100k_btc": {
4650
4773
  "id": "above_10k_btc_under_100k_btc",
4651
4774
  "short": "10k-100k BTC",
4652
- "long": "10K to 100K BTC"
4775
+ "long": "10K-100K BTC"
4653
4776
  },
4654
4777
  "_100k_btc_or_more": {
4655
4778
  "id": "above_100k_btc",
@@ -4660,69 +4783,69 @@ class BrkClient(BrkClientBase):
4660
4783
 
4661
4784
  GE_AMOUNT_NAMES = {
4662
4785
  "_1sat": {
4663
- "id": "above_1sat",
4786
+ "id": "over_1sat",
4664
4787
  "short": "1+ sats",
4665
- "long": "Above 1 Sat"
4788
+ "long": "Over 1 Sat"
4666
4789
  },
4667
4790
  "_10sats": {
4668
- "id": "above_10sats",
4791
+ "id": "over_10sats",
4669
4792
  "short": "10+ sats",
4670
- "long": "Above 10 Sats"
4793
+ "long": "Over 10 Sats"
4671
4794
  },
4672
4795
  "_100sats": {
4673
- "id": "above_100sats",
4796
+ "id": "over_100sats",
4674
4797
  "short": "100+ sats",
4675
- "long": "Above 100 Sats"
4798
+ "long": "Over 100 Sats"
4676
4799
  },
4677
4800
  "_1k_sats": {
4678
- "id": "above_1k_sats",
4801
+ "id": "over_1k_sats",
4679
4802
  "short": "1k+ sats",
4680
- "long": "Above 1K Sats"
4803
+ "long": "Over 1K Sats"
4681
4804
  },
4682
4805
  "_10k_sats": {
4683
- "id": "above_10k_sats",
4806
+ "id": "over_10k_sats",
4684
4807
  "short": "10k+ sats",
4685
- "long": "Above 10K Sats"
4808
+ "long": "Over 10K Sats"
4686
4809
  },
4687
4810
  "_100k_sats": {
4688
- "id": "above_100k_sats",
4811
+ "id": "over_100k_sats",
4689
4812
  "short": "100k+ sats",
4690
- "long": "Above 100K Sats"
4813
+ "long": "Over 100K Sats"
4691
4814
  },
4692
4815
  "_1m_sats": {
4693
- "id": "above_1m_sats",
4816
+ "id": "over_1m_sats",
4694
4817
  "short": "1M+ sats",
4695
- "long": "Above 1M Sats"
4818
+ "long": "Over 1M Sats"
4696
4819
  },
4697
4820
  "_10m_sats": {
4698
- "id": "above_10m_sats",
4821
+ "id": "over_10m_sats",
4699
4822
  "short": "0.1+ BTC",
4700
- "long": "Above 0.1 BTC"
4823
+ "long": "Over 0.1 BTC"
4701
4824
  },
4702
4825
  "_1btc": {
4703
- "id": "above_1btc",
4826
+ "id": "over_1btc",
4704
4827
  "short": "1+ BTC",
4705
- "long": "Above 1 BTC"
4828
+ "long": "Over 1 BTC"
4706
4829
  },
4707
4830
  "_10btc": {
4708
- "id": "above_10btc",
4831
+ "id": "over_10btc",
4709
4832
  "short": "10+ BTC",
4710
- "long": "Above 10 BTC"
4833
+ "long": "Over 10 BTC"
4711
4834
  },
4712
4835
  "_100btc": {
4713
- "id": "above_100btc",
4836
+ "id": "over_100btc",
4714
4837
  "short": "100+ BTC",
4715
- "long": "Above 100 BTC"
4838
+ "long": "Over 100 BTC"
4716
4839
  },
4717
4840
  "_1k_btc": {
4718
- "id": "above_1k_btc",
4841
+ "id": "over_1k_btc",
4719
4842
  "short": "1k+ BTC",
4720
- "long": "Above 1K BTC"
4843
+ "long": "Over 1K BTC"
4721
4844
  },
4722
4845
  "_10k_btc": {
4723
- "id": "above_10k_btc",
4846
+ "id": "over_10k_btc",
4724
4847
  "short": "10k+ BTC",
4725
- "long": "Above 10K BTC"
4848
+ "long": "Over 10K BTC"
4726
4849
  }
4727
4850
  }
4728
4851