mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-29 03:38:10 -07:00
server: fix html caching rules
This commit is contained in:
+257
-257
@@ -1535,18 +1535,18 @@ impl<T: DeserializeOwned> ClassDaysInLossPattern<T> {
|
|||||||
/// Create a new pattern node with accumulated metric name.
|
/// Create a new pattern node with accumulated metric name.
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
Self {
|
Self {
|
||||||
_2015: MetricPattern4::new(client.clone(), _m(&acc, "2015_max_drawdown")),
|
_2015: MetricPattern4::new(client.clone(), _m(&acc, "2015_days_in_profit")),
|
||||||
_2016: MetricPattern4::new(client.clone(), _m(&acc, "2016_max_drawdown")),
|
_2016: MetricPattern4::new(client.clone(), _m(&acc, "2016_days_in_profit")),
|
||||||
_2017: MetricPattern4::new(client.clone(), _m(&acc, "2017_max_drawdown")),
|
_2017: MetricPattern4::new(client.clone(), _m(&acc, "2017_days_in_profit")),
|
||||||
_2018: MetricPattern4::new(client.clone(), _m(&acc, "2018_max_drawdown")),
|
_2018: MetricPattern4::new(client.clone(), _m(&acc, "2018_days_in_profit")),
|
||||||
_2019: MetricPattern4::new(client.clone(), _m(&acc, "2019_max_drawdown")),
|
_2019: MetricPattern4::new(client.clone(), _m(&acc, "2019_days_in_profit")),
|
||||||
_2020: MetricPattern4::new(client.clone(), _m(&acc, "2020_max_drawdown")),
|
_2020: MetricPattern4::new(client.clone(), _m(&acc, "2020_days_in_profit")),
|
||||||
_2021: MetricPattern4::new(client.clone(), _m(&acc, "2021_max_drawdown")),
|
_2021: MetricPattern4::new(client.clone(), _m(&acc, "2021_days_in_profit")),
|
||||||
_2022: MetricPattern4::new(client.clone(), _m(&acc, "2022_max_drawdown")),
|
_2022: MetricPattern4::new(client.clone(), _m(&acc, "2022_days_in_profit")),
|
||||||
_2023: MetricPattern4::new(client.clone(), _m(&acc, "2023_max_drawdown")),
|
_2023: MetricPattern4::new(client.clone(), _m(&acc, "2023_days_in_profit")),
|
||||||
_2024: MetricPattern4::new(client.clone(), _m(&acc, "2024_max_drawdown")),
|
_2024: MetricPattern4::new(client.clone(), _m(&acc, "2024_days_in_profit")),
|
||||||
_2025: MetricPattern4::new(client.clone(), _m(&acc, "2025_max_drawdown")),
|
_2025: MetricPattern4::new(client.clone(), _m(&acc, "2025_days_in_profit")),
|
||||||
_2026: MetricPattern4::new(client.clone(), _m(&acc, "2026_max_drawdown")),
|
_2026: MetricPattern4::new(client.clone(), _m(&acc, "2026_days_in_profit")),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1833,84 +1833,6 @@ impl _0satsPattern {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct _0satsPattern2 {
|
|
||||||
pub activity: ActivityPattern2,
|
|
||||||
pub cost_basis: CostBasisPattern,
|
|
||||||
pub outputs: OutputsPattern,
|
|
||||||
pub realized: RealizedPattern,
|
|
||||||
pub relative: RelativePattern4,
|
|
||||||
pub supply: SupplyPattern2,
|
|
||||||
pub unrealized: UnrealizedPattern,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl _0satsPattern2 {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
activity: ActivityPattern2::new(client.clone(), acc.clone()),
|
|
||||||
cost_basis: CostBasisPattern::new(client.clone(), acc.clone()),
|
|
||||||
outputs: OutputsPattern::new(client.clone(), _m(&acc, "utxo_count")),
|
|
||||||
realized: RealizedPattern::new(client.clone(), acc.clone()),
|
|
||||||
relative: RelativePattern4::new(client.clone(), _m(&acc, "supply_in")),
|
|
||||||
supply: SupplyPattern2::new(client.clone(), _m(&acc, "supply")),
|
|
||||||
unrealized: UnrealizedPattern::new(client.clone(), acc.clone()),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct PeriodCagrPattern {
|
|
||||||
pub _10y: MetricPattern4<StoredF32>,
|
|
||||||
pub _2y: MetricPattern4<StoredF32>,
|
|
||||||
pub _3y: MetricPattern4<StoredF32>,
|
|
||||||
pub _4y: MetricPattern4<StoredF32>,
|
|
||||||
pub _5y: MetricPattern4<StoredF32>,
|
|
||||||
pub _6y: MetricPattern4<StoredF32>,
|
|
||||||
pub _8y: MetricPattern4<StoredF32>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl PeriodCagrPattern {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
_10y: MetricPattern4::new(client.clone(), _p("10y", &acc)),
|
|
||||||
_2y: MetricPattern4::new(client.clone(), _p("2y", &acc)),
|
|
||||||
_3y: MetricPattern4::new(client.clone(), _p("3y", &acc)),
|
|
||||||
_4y: MetricPattern4::new(client.clone(), _p("4y", &acc)),
|
|
||||||
_5y: MetricPattern4::new(client.clone(), _p("5y", &acc)),
|
|
||||||
_6y: MetricPattern4::new(client.clone(), _p("6y", &acc)),
|
|
||||||
_8y: MetricPattern4::new(client.clone(), _p("8y", &acc)),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct _10yTo12yPattern {
|
|
||||||
pub activity: ActivityPattern2,
|
|
||||||
pub cost_basis: CostBasisPattern2,
|
|
||||||
pub outputs: OutputsPattern,
|
|
||||||
pub realized: RealizedPattern2,
|
|
||||||
pub relative: RelativePattern2,
|
|
||||||
pub supply: SupplyPattern2,
|
|
||||||
pub unrealized: UnrealizedPattern,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl _10yTo12yPattern {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
activity: ActivityPattern2::new(client.clone(), acc.clone()),
|
|
||||||
cost_basis: CostBasisPattern2::new(client.clone(), acc.clone()),
|
|
||||||
outputs: OutputsPattern::new(client.clone(), _m(&acc, "utxo_count")),
|
|
||||||
realized: RealizedPattern2::new(client.clone(), acc.clone()),
|
|
||||||
relative: RelativePattern2::new(client.clone(), acc.clone()),
|
|
||||||
supply: SupplyPattern2::new(client.clone(), _m(&acc, "supply")),
|
|
||||||
unrealized: UnrealizedPattern::new(client.clone(), acc.clone()),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct _100btcPattern {
|
pub struct _100btcPattern {
|
||||||
pub activity: ActivityPattern2,
|
pub activity: ActivityPattern2,
|
||||||
@@ -1937,6 +1859,32 @@ impl _100btcPattern {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct _0satsPattern2 {
|
||||||
|
pub activity: ActivityPattern2,
|
||||||
|
pub cost_basis: CostBasisPattern,
|
||||||
|
pub outputs: OutputsPattern,
|
||||||
|
pub realized: RealizedPattern,
|
||||||
|
pub relative: RelativePattern4,
|
||||||
|
pub supply: SupplyPattern2,
|
||||||
|
pub unrealized: UnrealizedPattern,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl _0satsPattern2 {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
activity: ActivityPattern2::new(client.clone(), acc.clone()),
|
||||||
|
cost_basis: CostBasisPattern::new(client.clone(), acc.clone()),
|
||||||
|
outputs: OutputsPattern::new(client.clone(), _m(&acc, "utxo_count")),
|
||||||
|
realized: RealizedPattern::new(client.clone(), acc.clone()),
|
||||||
|
relative: RelativePattern4::new(client.clone(), _m(&acc, "supply_in")),
|
||||||
|
supply: SupplyPattern2::new(client.clone(), _m(&acc, "supply")),
|
||||||
|
unrealized: UnrealizedPattern::new(client.clone(), acc.clone()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct _10yPattern {
|
pub struct _10yPattern {
|
||||||
pub activity: ActivityPattern2,
|
pub activity: ActivityPattern2,
|
||||||
@@ -1989,6 +1937,58 @@ impl UnrealizedPattern {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct PeriodCagrPattern {
|
||||||
|
pub _10y: MetricPattern4<StoredF32>,
|
||||||
|
pub _2y: MetricPattern4<StoredF32>,
|
||||||
|
pub _3y: MetricPattern4<StoredF32>,
|
||||||
|
pub _4y: MetricPattern4<StoredF32>,
|
||||||
|
pub _5y: MetricPattern4<StoredF32>,
|
||||||
|
pub _6y: MetricPattern4<StoredF32>,
|
||||||
|
pub _8y: MetricPattern4<StoredF32>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PeriodCagrPattern {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
_10y: MetricPattern4::new(client.clone(), _p("10y", &acc)),
|
||||||
|
_2y: MetricPattern4::new(client.clone(), _p("2y", &acc)),
|
||||||
|
_3y: MetricPattern4::new(client.clone(), _p("3y", &acc)),
|
||||||
|
_4y: MetricPattern4::new(client.clone(), _p("4y", &acc)),
|
||||||
|
_5y: MetricPattern4::new(client.clone(), _p("5y", &acc)),
|
||||||
|
_6y: MetricPattern4::new(client.clone(), _p("6y", &acc)),
|
||||||
|
_8y: MetricPattern4::new(client.clone(), _p("8y", &acc)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct _10yTo12yPattern {
|
||||||
|
pub activity: ActivityPattern2,
|
||||||
|
pub cost_basis: CostBasisPattern2,
|
||||||
|
pub outputs: OutputsPattern,
|
||||||
|
pub realized: RealizedPattern2,
|
||||||
|
pub relative: RelativePattern2,
|
||||||
|
pub supply: SupplyPattern2,
|
||||||
|
pub unrealized: UnrealizedPattern,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl _10yTo12yPattern {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
activity: ActivityPattern2::new(client.clone(), acc.clone()),
|
||||||
|
cost_basis: CostBasisPattern2::new(client.clone(), acc.clone()),
|
||||||
|
outputs: OutputsPattern::new(client.clone(), _m(&acc, "utxo_count")),
|
||||||
|
realized: RealizedPattern2::new(client.clone(), acc.clone()),
|
||||||
|
relative: RelativePattern2::new(client.clone(), acc.clone()),
|
||||||
|
supply: SupplyPattern2::new(client.clone(), _m(&acc, "supply")),
|
||||||
|
unrealized: UnrealizedPattern::new(client.clone(), acc.clone()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct AllPattern {
|
pub struct AllPattern {
|
||||||
pub balance_decreased: FullnessPattern<StoredU32>,
|
pub balance_decreased: FullnessPattern<StoredU32>,
|
||||||
@@ -2055,6 +2055,60 @@ impl<T: DeserializeOwned> SplitPattern2<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct UnclaimedRewardsPattern {
|
||||||
|
pub bitcoin: BitcoinPattern2<Bitcoin>,
|
||||||
|
pub dollars: BlockCountPattern<Dollars>,
|
||||||
|
pub sats: BlockCountPattern<Sats>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl UnclaimedRewardsPattern {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
bitcoin: BitcoinPattern2::new(client.clone(), _m(&acc, "btc")),
|
||||||
|
dollars: BlockCountPattern::new(client.clone(), _m(&acc, "usd")),
|
||||||
|
sats: BlockCountPattern::new(client.clone(), acc.clone()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct _2015Pattern {
|
||||||
|
pub bitcoin: MetricPattern4<Bitcoin>,
|
||||||
|
pub dollars: MetricPattern4<Dollars>,
|
||||||
|
pub sats: MetricPattern4<Sats>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl _2015Pattern {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
bitcoin: MetricPattern4::new(client.clone(), _m(&acc, "btc")),
|
||||||
|
dollars: MetricPattern4::new(client.clone(), _m(&acc, "usd")),
|
||||||
|
sats: MetricPattern4::new(client.clone(), acc.clone()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct ActiveSupplyPattern {
|
||||||
|
pub bitcoin: MetricPattern1<Bitcoin>,
|
||||||
|
pub dollars: MetricPattern1<Dollars>,
|
||||||
|
pub sats: MetricPattern1<Sats>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ActiveSupplyPattern {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
bitcoin: MetricPattern1::new(client.clone(), _m(&acc, "btc")),
|
||||||
|
dollars: MetricPattern1::new(client.clone(), _m(&acc, "usd")),
|
||||||
|
sats: MetricPattern1::new(client.clone(), acc.clone()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct CoinbasePattern {
|
pub struct CoinbasePattern {
|
||||||
pub bitcoin: BitcoinPattern,
|
pub bitcoin: BitcoinPattern,
|
||||||
@@ -2073,6 +2127,24 @@ impl CoinbasePattern {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct SegwitAdoptionPattern {
|
||||||
|
pub base: MetricPattern11<StoredF32>,
|
||||||
|
pub cumulative: MetricPattern2<StoredF32>,
|
||||||
|
pub sum: MetricPattern2<StoredF32>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl SegwitAdoptionPattern {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
base: MetricPattern11::new(client.clone(), acc.clone()),
|
||||||
|
cumulative: MetricPattern2::new(client.clone(), _m(&acc, "cumulative")),
|
||||||
|
sum: MetricPattern2::new(client.clone(), _m(&acc, "sum")),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct CostBasisPattern2 {
|
pub struct CostBasisPattern2 {
|
||||||
pub max: ActivePricePattern,
|
pub max: ActivePricePattern,
|
||||||
@@ -2110,73 +2182,17 @@ impl CoinbasePattern2 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct SegwitAdoptionPattern {
|
pub struct RelativePattern4 {
|
||||||
pub base: MetricPattern11<StoredF32>,
|
pub supply_in_loss_rel_to_own_supply: MetricPattern1<StoredF64>,
|
||||||
pub cumulative: MetricPattern2<StoredF32>,
|
pub supply_in_profit_rel_to_own_supply: MetricPattern1<StoredF64>,
|
||||||
pub sum: MetricPattern2<StoredF32>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SegwitAdoptionPattern {
|
impl RelativePattern4 {
|
||||||
/// Create a new pattern node with accumulated metric name.
|
/// Create a new pattern node with accumulated metric name.
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
Self {
|
Self {
|
||||||
base: MetricPattern11::new(client.clone(), acc.clone()),
|
supply_in_loss_rel_to_own_supply: MetricPattern1::new(client.clone(), _m(&acc, "loss_rel_to_own_supply")),
|
||||||
cumulative: MetricPattern2::new(client.clone(), _m(&acc, "cumulative")),
|
supply_in_profit_rel_to_own_supply: MetricPattern1::new(client.clone(), _m(&acc, "profit_rel_to_own_supply")),
|
||||||
sum: MetricPattern2::new(client.clone(), _m(&acc, "sum")),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct UnclaimedRewardsPattern {
|
|
||||||
pub bitcoin: BitcoinPattern2<Bitcoin>,
|
|
||||||
pub dollars: BlockCountPattern<Dollars>,
|
|
||||||
pub sats: BlockCountPattern<Sats>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl UnclaimedRewardsPattern {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
bitcoin: BitcoinPattern2::new(client.clone(), _m(&acc, "btc")),
|
|
||||||
dollars: BlockCountPattern::new(client.clone(), _m(&acc, "usd")),
|
|
||||||
sats: BlockCountPattern::new(client.clone(), acc.clone()),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct ActiveSupplyPattern {
|
|
||||||
pub bitcoin: MetricPattern1<Bitcoin>,
|
|
||||||
pub dollars: MetricPattern1<Dollars>,
|
|
||||||
pub sats: MetricPattern1<Sats>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl ActiveSupplyPattern {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
bitcoin: MetricPattern1::new(client.clone(), _m(&acc, "btc")),
|
|
||||||
dollars: MetricPattern1::new(client.clone(), _m(&acc, "usd")),
|
|
||||||
sats: MetricPattern1::new(client.clone(), acc.clone()),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct _2015Pattern {
|
|
||||||
pub bitcoin: MetricPattern4<Bitcoin>,
|
|
||||||
pub dollars: MetricPattern4<Dollars>,
|
|
||||||
pub sats: MetricPattern4<Sats>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl _2015Pattern {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
bitcoin: MetricPattern4::new(client.clone(), _m(&acc, "btc")),
|
|
||||||
dollars: MetricPattern4::new(client.clone(), _m(&acc, "usd")),
|
|
||||||
sats: MetricPattern4::new(client.clone(), acc.clone()),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2197,38 +2213,6 @@ impl ActivePricePattern {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct CostBasisPattern {
|
|
||||||
pub max: ActivePricePattern,
|
|
||||||
pub min: ActivePricePattern,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl CostBasisPattern {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
max: ActivePricePattern::new(client.clone(), _m(&acc, "max_cost_basis")),
|
|
||||||
min: ActivePricePattern::new(client.clone(), _m(&acc, "min_cost_basis")),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct _0sdUsdPattern {
|
|
||||||
pub dollars: MetricPattern4<Dollars>,
|
|
||||||
pub sats: MetricPattern4<SatsFract>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl _0sdUsdPattern {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
dollars: MetricPattern4::new(client.clone(), acc.clone()),
|
|
||||||
sats: MetricPattern4::new(client.clone(), _m(&acc, "sats")),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct _1dReturns1mSdPattern {
|
pub struct _1dReturns1mSdPattern {
|
||||||
pub sd: MetricPattern4<StoredF32>,
|
pub sd: MetricPattern4<StoredF32>,
|
||||||
@@ -2245,22 +2229,6 @@ impl _1dReturns1mSdPattern {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct RelativePattern4 {
|
|
||||||
pub supply_in_loss_rel_to_own_supply: MetricPattern1<StoredF64>,
|
|
||||||
pub supply_in_profit_rel_to_own_supply: MetricPattern1<StoredF64>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl RelativePattern4 {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
supply_in_loss_rel_to_own_supply: MetricPattern1::new(client.clone(), _m(&acc, "loss_rel_to_own_supply")),
|
|
||||||
supply_in_profit_rel_to_own_supply: MetricPattern1::new(client.clone(), _m(&acc, "profit_rel_to_own_supply")),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct SupplyPattern2 {
|
pub struct SupplyPattern2 {
|
||||||
pub halved: ActiveSupplyPattern,
|
pub halved: ActiveSupplyPattern,
|
||||||
@@ -2277,6 +2245,38 @@ impl SupplyPattern2 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct _0sdUsdPattern {
|
||||||
|
pub dollars: MetricPattern4<Dollars>,
|
||||||
|
pub sats: MetricPattern4<SatsFract>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl _0sdUsdPattern {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
dollars: MetricPattern4::new(client.clone(), acc.clone()),
|
||||||
|
sats: MetricPattern4::new(client.clone(), _m(&acc, "sats")),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct CostBasisPattern {
|
||||||
|
pub max: ActivePricePattern,
|
||||||
|
pub min: ActivePricePattern,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CostBasisPattern {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
max: ActivePricePattern::new(client.clone(), _m(&acc, "max_cost_basis")),
|
||||||
|
min: ActivePricePattern::new(client.clone(), _m(&acc, "min_cost_basis")),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct BlockCountPattern<T> {
|
pub struct BlockCountPattern<T> {
|
||||||
pub cumulative: MetricPattern1<T>,
|
pub cumulative: MetricPattern1<T>,
|
||||||
@@ -2293,22 +2293,6 @@ impl<T: DeserializeOwned> BlockCountPattern<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
|
||||||
pub struct SatsPattern<T> {
|
|
||||||
pub ohlc: MetricPattern1<T>,
|
|
||||||
pub split: SplitPattern2<T>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T: DeserializeOwned> SatsPattern<T> {
|
|
||||||
/// Create a new pattern node with accumulated metric name.
|
|
||||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
|
||||||
Self {
|
|
||||||
ohlc: MetricPattern1::new(client.clone(), _m(&acc, "ohlc")),
|
|
||||||
split: SplitPattern2::new(client.clone(), acc.clone()),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct BitcoinPattern2<T> {
|
pub struct BitcoinPattern2<T> {
|
||||||
pub cumulative: MetricPattern2<T>,
|
pub cumulative: MetricPattern2<T>,
|
||||||
@@ -2325,6 +2309,22 @@ impl<T: DeserializeOwned> BitcoinPattern2<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Pattern struct for repeated tree structure.
|
||||||
|
pub struct SatsPattern<T> {
|
||||||
|
pub ohlc: MetricPattern1<T>,
|
||||||
|
pub split: SplitPattern2<T>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T: DeserializeOwned> SatsPattern<T> {
|
||||||
|
/// Create a new pattern node with accumulated metric name.
|
||||||
|
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||||
|
Self {
|
||||||
|
ohlc: MetricPattern1::new(client.clone(), _m(&acc, "ohlc_sats")),
|
||||||
|
split: SplitPattern2::new(client.clone(), _m(&acc, "sats")),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Pattern struct for repeated tree structure.
|
/// Pattern struct for repeated tree structure.
|
||||||
pub struct OutputsPattern {
|
pub struct OutputsPattern {
|
||||||
pub utxo_count: MetricPattern1<StoredU64>,
|
pub utxo_count: MetricPattern1<StoredU64>,
|
||||||
@@ -4276,8 +4276,8 @@ impl MetricsTree_Market_Ath {
|
|||||||
pub struct MetricsTree_Market_Dca {
|
pub struct MetricsTree_Market_Dca {
|
||||||
pub class_average_price: MetricsTree_Market_Dca_ClassAveragePrice,
|
pub class_average_price: MetricsTree_Market_Dca_ClassAveragePrice,
|
||||||
pub class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss,
|
pub class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss,
|
||||||
pub class_days_in_profit: MetricsTree_Market_Dca_ClassDaysInProfit,
|
pub class_days_in_profit: ClassDaysInLossPattern<StoredU32>,
|
||||||
pub class_max_drawdown: ClassDaysInLossPattern<StoredF32>,
|
pub class_max_drawdown: MetricsTree_Market_Dca_ClassMaxDrawdown,
|
||||||
pub class_max_return: MetricsTree_Market_Dca_ClassMaxReturn,
|
pub class_max_return: MetricsTree_Market_Dca_ClassMaxReturn,
|
||||||
pub class_returns: MetricsTree_Market_Dca_ClassReturns,
|
pub class_returns: MetricsTree_Market_Dca_ClassReturns,
|
||||||
pub class_stack: MetricsTree_Market_Dca_ClassStack,
|
pub class_stack: MetricsTree_Market_Dca_ClassStack,
|
||||||
@@ -4302,8 +4302,8 @@ impl MetricsTree_Market_Dca {
|
|||||||
Self {
|
Self {
|
||||||
class_average_price: MetricsTree_Market_Dca_ClassAveragePrice::new(client.clone(), format!("{base_path}_class_average_price")),
|
class_average_price: MetricsTree_Market_Dca_ClassAveragePrice::new(client.clone(), format!("{base_path}_class_average_price")),
|
||||||
class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss::new(client.clone(), format!("{base_path}_class_days_in_loss")),
|
class_days_in_loss: MetricsTree_Market_Dca_ClassDaysInLoss::new(client.clone(), format!("{base_path}_class_days_in_loss")),
|
||||||
class_days_in_profit: MetricsTree_Market_Dca_ClassDaysInProfit::new(client.clone(), format!("{base_path}_class_days_in_profit")),
|
class_days_in_profit: ClassDaysInLossPattern::new(client.clone(), "dca_class".to_string()),
|
||||||
class_max_drawdown: ClassDaysInLossPattern::new(client.clone(), "dca_class".to_string()),
|
class_max_drawdown: MetricsTree_Market_Dca_ClassMaxDrawdown::new(client.clone(), format!("{base_path}_class_max_drawdown")),
|
||||||
class_max_return: MetricsTree_Market_Dca_ClassMaxReturn::new(client.clone(), format!("{base_path}_class_max_return")),
|
class_max_return: MetricsTree_Market_Dca_ClassMaxReturn::new(client.clone(), format!("{base_path}_class_max_return")),
|
||||||
class_returns: MetricsTree_Market_Dca_ClassReturns::new(client.clone(), format!("{base_path}_class_returns")),
|
class_returns: MetricsTree_Market_Dca_ClassReturns::new(client.clone(), format!("{base_path}_class_returns")),
|
||||||
class_stack: MetricsTree_Market_Dca_ClassStack::new(client.clone(), format!("{base_path}_class_stack")),
|
class_stack: MetricsTree_Market_Dca_ClassStack::new(client.clone(), format!("{base_path}_class_stack")),
|
||||||
@@ -4396,36 +4396,36 @@ impl MetricsTree_Market_Dca_ClassDaysInLoss {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Metrics tree node.
|
/// Metrics tree node.
|
||||||
pub struct MetricsTree_Market_Dca_ClassDaysInProfit {
|
pub struct MetricsTree_Market_Dca_ClassMaxDrawdown {
|
||||||
pub _2015: MetricPattern4<StoredU32>,
|
pub _2015: MetricPattern4<StoredF32>,
|
||||||
pub _2016: MetricPattern4<StoredU32>,
|
pub _2016: MetricPattern4<StoredF32>,
|
||||||
pub _2017: MetricPattern4<StoredU32>,
|
pub _2017: MetricPattern4<StoredF32>,
|
||||||
pub _2018: MetricPattern4<StoredU32>,
|
pub _2018: MetricPattern4<StoredF32>,
|
||||||
pub _2019: MetricPattern4<StoredU32>,
|
pub _2019: MetricPattern4<StoredF32>,
|
||||||
pub _2020: MetricPattern4<StoredU32>,
|
pub _2020: MetricPattern4<StoredF32>,
|
||||||
pub _2021: MetricPattern4<StoredU32>,
|
pub _2021: MetricPattern4<StoredF32>,
|
||||||
pub _2022: MetricPattern4<StoredU32>,
|
pub _2022: MetricPattern4<StoredF32>,
|
||||||
pub _2023: MetricPattern4<StoredU32>,
|
pub _2023: MetricPattern4<StoredF32>,
|
||||||
pub _2024: MetricPattern4<StoredU32>,
|
pub _2024: MetricPattern4<StoredF32>,
|
||||||
pub _2025: MetricPattern4<StoredU32>,
|
pub _2025: MetricPattern4<StoredF32>,
|
||||||
pub _2026: MetricPattern4<StoredU32>,
|
pub _2026: MetricPattern4<StoredF32>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MetricsTree_Market_Dca_ClassDaysInProfit {
|
impl MetricsTree_Market_Dca_ClassMaxDrawdown {
|
||||||
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
|
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
|
||||||
Self {
|
Self {
|
||||||
_2015: MetricPattern4::new(client.clone(), "dca_class_2015_days_in_profit".to_string()),
|
_2015: MetricPattern4::new(client.clone(), "dca_class_2015_max_drawdown".to_string()),
|
||||||
_2016: MetricPattern4::new(client.clone(), "dca_class_2016_days_in_profit".to_string()),
|
_2016: MetricPattern4::new(client.clone(), "dca_class_2016_max_drawdown".to_string()),
|
||||||
_2017: MetricPattern4::new(client.clone(), "dca_class_2017_days_in_profit".to_string()),
|
_2017: MetricPattern4::new(client.clone(), "dca_class_2017_max_drawdown".to_string()),
|
||||||
_2018: MetricPattern4::new(client.clone(), "dca_class_2018_days_in_profit".to_string()),
|
_2018: MetricPattern4::new(client.clone(), "dca_class_2018_max_drawdown".to_string()),
|
||||||
_2019: MetricPattern4::new(client.clone(), "dca_class_2019_days_in_profit".to_string()),
|
_2019: MetricPattern4::new(client.clone(), "dca_class_2019_max_drawdown".to_string()),
|
||||||
_2020: MetricPattern4::new(client.clone(), "dca_class_2020_days_in_profit".to_string()),
|
_2020: MetricPattern4::new(client.clone(), "dca_class_2020_max_drawdown".to_string()),
|
||||||
_2021: MetricPattern4::new(client.clone(), "dca_class_2021_days_in_profit".to_string()),
|
_2021: MetricPattern4::new(client.clone(), "dca_class_2021_max_drawdown".to_string()),
|
||||||
_2022: MetricPattern4::new(client.clone(), "dca_class_2022_days_in_profit".to_string()),
|
_2022: MetricPattern4::new(client.clone(), "dca_class_2022_max_drawdown".to_string()),
|
||||||
_2023: MetricPattern4::new(client.clone(), "dca_class_2023_days_in_profit".to_string()),
|
_2023: MetricPattern4::new(client.clone(), "dca_class_2023_max_drawdown".to_string()),
|
||||||
_2024: MetricPattern4::new(client.clone(), "dca_class_2024_days_in_profit".to_string()),
|
_2024: MetricPattern4::new(client.clone(), "dca_class_2024_max_drawdown".to_string()),
|
||||||
_2025: MetricPattern4::new(client.clone(), "dca_class_2025_days_in_profit".to_string()),
|
_2025: MetricPattern4::new(client.clone(), "dca_class_2025_max_drawdown".to_string()),
|
||||||
_2026: MetricPattern4::new(client.clone(), "dca_class_2026_days_in_profit".to_string()),
|
_2026: MetricPattern4::new(client.clone(), "dca_class_2026_max_drawdown".to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5278,16 +5278,16 @@ impl MetricsTree_Positions {
|
|||||||
/// Metrics tree node.
|
/// Metrics tree node.
|
||||||
pub struct MetricsTree_Price {
|
pub struct MetricsTree_Price {
|
||||||
pub cents: MetricsTree_Price_Cents,
|
pub cents: MetricsTree_Price_Cents,
|
||||||
pub sats: MetricsTree_Price_Sats,
|
pub sats: SatsPattern<OHLCSats>,
|
||||||
pub usd: SatsPattern<OHLCDollars>,
|
pub usd: MetricsTree_Price_Usd,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MetricsTree_Price {
|
impl MetricsTree_Price {
|
||||||
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
|
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
|
||||||
Self {
|
Self {
|
||||||
cents: MetricsTree_Price_Cents::new(client.clone(), format!("{base_path}_cents")),
|
cents: MetricsTree_Price_Cents::new(client.clone(), format!("{base_path}_cents")),
|
||||||
sats: MetricsTree_Price_Sats::new(client.clone(), format!("{base_path}_sats")),
|
sats: SatsPattern::new(client.clone(), "price".to_string()),
|
||||||
usd: SatsPattern::new(client.clone(), "price".to_string()),
|
usd: MetricsTree_Price_Usd::new(client.clone(), format!("{base_path}_usd")),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5327,16 +5327,16 @@ impl MetricsTree_Price_Cents_Split {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Metrics tree node.
|
/// Metrics tree node.
|
||||||
pub struct MetricsTree_Price_Sats {
|
pub struct MetricsTree_Price_Usd {
|
||||||
pub ohlc: MetricPattern1<OHLCSats>,
|
pub ohlc: MetricPattern1<OHLCDollars>,
|
||||||
pub split: SplitPattern2<Sats>,
|
pub split: SplitPattern2<Dollars>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MetricsTree_Price_Sats {
|
impl MetricsTree_Price_Usd {
|
||||||
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
|
pub fn new(client: Arc<BrkClientBase>, base_path: String) -> Self {
|
||||||
Self {
|
Self {
|
||||||
ohlc: MetricPattern1::new(client.clone(), "price_ohlc_sats".to_string()),
|
ohlc: MetricPattern1::new(client.clone(), "price_ohlc".to_string()),
|
||||||
split: SplitPattern2::new(client.clone(), "price_sats".to_string()),
|
split: SplitPattern2::new(client.clone(), "price".to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5651,7 +5651,7 @@ pub struct BrkClient {
|
|||||||
|
|
||||||
impl BrkClient {
|
impl BrkClient {
|
||||||
/// Client version.
|
/// Client version.
|
||||||
pub const VERSION: &'static str = "v0.1.0-beta.1";
|
pub const VERSION: &'static str = "v0.1.0";
|
||||||
|
|
||||||
/// Create a new client with the given base URL.
|
/// Create a new client with the given base URL.
|
||||||
pub fn new(base_url: impl Into<String>) -> Self {
|
pub fn new(base_url: impl Into<String>) -> Self {
|
||||||
|
|||||||
@@ -23,13 +23,17 @@ fn serve(website: &Website, path: &str) -> Result<Response<Body>> {
|
|||||||
let headers = response.headers_mut();
|
let headers = response.headers_mut();
|
||||||
|
|
||||||
// Empty path or no extension = index.html (SPA fallback)
|
// Empty path or no extension = index.html (SPA fallback)
|
||||||
if path.is_empty() || Path::new(&path).extension().is_none() {
|
let is_html = path.is_empty()
|
||||||
|
|| Path::new(&path).extension().is_none()
|
||||||
|
|| path.ends_with(".html");
|
||||||
|
|
||||||
|
if is_html {
|
||||||
headers.insert_content_type_text_html();
|
headers.insert_content_type_text_html();
|
||||||
} else {
|
} else {
|
||||||
headers.insert_content_type(Path::new(&path));
|
headers.insert_content_type(Path::new(&path));
|
||||||
}
|
}
|
||||||
|
|
||||||
if cfg!(debug_assertions) {
|
if cfg!(debug_assertions) || is_html {
|
||||||
headers.insert_cache_control_must_revalidate();
|
headers.insert_cache_control_must_revalidate();
|
||||||
} else {
|
} else {
|
||||||
headers.insert_cache_control_immutable();
|
headers.insert_cache_control_immutable();
|
||||||
|
|||||||
+286
-286
@@ -1953,18 +1953,18 @@ function createPeriodDaysInLossPattern(client, acc) {
|
|||||||
*/
|
*/
|
||||||
function createClassDaysInLossPattern(client, acc) {
|
function createClassDaysInLossPattern(client, acc) {
|
||||||
return {
|
return {
|
||||||
_2015: createMetricPattern4(client, _m(acc, '2015_max_drawdown')),
|
_2015: createMetricPattern4(client, _m(acc, '2015_days_in_profit')),
|
||||||
_2016: createMetricPattern4(client, _m(acc, '2016_max_drawdown')),
|
_2016: createMetricPattern4(client, _m(acc, '2016_days_in_profit')),
|
||||||
_2017: createMetricPattern4(client, _m(acc, '2017_max_drawdown')),
|
_2017: createMetricPattern4(client, _m(acc, '2017_days_in_profit')),
|
||||||
_2018: createMetricPattern4(client, _m(acc, '2018_max_drawdown')),
|
_2018: createMetricPattern4(client, _m(acc, '2018_days_in_profit')),
|
||||||
_2019: createMetricPattern4(client, _m(acc, '2019_max_drawdown')),
|
_2019: createMetricPattern4(client, _m(acc, '2019_days_in_profit')),
|
||||||
_2020: createMetricPattern4(client, _m(acc, '2020_max_drawdown')),
|
_2020: createMetricPattern4(client, _m(acc, '2020_days_in_profit')),
|
||||||
_2021: createMetricPattern4(client, _m(acc, '2021_max_drawdown')),
|
_2021: createMetricPattern4(client, _m(acc, '2021_days_in_profit')),
|
||||||
_2022: createMetricPattern4(client, _m(acc, '2022_max_drawdown')),
|
_2022: createMetricPattern4(client, _m(acc, '2022_days_in_profit')),
|
||||||
_2023: createMetricPattern4(client, _m(acc, '2023_max_drawdown')),
|
_2023: createMetricPattern4(client, _m(acc, '2023_days_in_profit')),
|
||||||
_2024: createMetricPattern4(client, _m(acc, '2024_max_drawdown')),
|
_2024: createMetricPattern4(client, _m(acc, '2024_days_in_profit')),
|
||||||
_2025: createMetricPattern4(client, _m(acc, '2025_max_drawdown')),
|
_2025: createMetricPattern4(client, _m(acc, '2025_days_in_profit')),
|
||||||
_2026: createMetricPattern4(client, _m(acc, '2026_max_drawdown')),
|
_2026: createMetricPattern4(client, _m(acc, '2026_days_in_profit')),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2285,93 +2285,6 @@ function create_0satsPattern(client, acc) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} _0satsPattern2
|
|
||||||
* @property {ActivityPattern2} activity
|
|
||||||
* @property {CostBasisPattern} costBasis
|
|
||||||
* @property {OutputsPattern} outputs
|
|
||||||
* @property {RealizedPattern} realized
|
|
||||||
* @property {RelativePattern4} relative
|
|
||||||
* @property {SupplyPattern2} supply
|
|
||||||
* @property {UnrealizedPattern} unrealized
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a _0satsPattern2 pattern node
|
|
||||||
* @param {BrkClientBase} client
|
|
||||||
* @param {string} acc - Accumulated metric name
|
|
||||||
* @returns {_0satsPattern2}
|
|
||||||
*/
|
|
||||||
function create_0satsPattern2(client, acc) {
|
|
||||||
return {
|
|
||||||
activity: createActivityPattern2(client, acc),
|
|
||||||
costBasis: createCostBasisPattern(client, acc),
|
|
||||||
outputs: createOutputsPattern(client, _m(acc, 'utxo_count')),
|
|
||||||
realized: createRealizedPattern(client, acc),
|
|
||||||
relative: createRelativePattern4(client, _m(acc, 'supply_in')),
|
|
||||||
supply: createSupplyPattern2(client, _m(acc, 'supply')),
|
|
||||||
unrealized: createUnrealizedPattern(client, acc),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} PeriodCagrPattern
|
|
||||||
* @property {MetricPattern4<StoredF32>} _10y
|
|
||||||
* @property {MetricPattern4<StoredF32>} _2y
|
|
||||||
* @property {MetricPattern4<StoredF32>} _3y
|
|
||||||
* @property {MetricPattern4<StoredF32>} _4y
|
|
||||||
* @property {MetricPattern4<StoredF32>} _5y
|
|
||||||
* @property {MetricPattern4<StoredF32>} _6y
|
|
||||||
* @property {MetricPattern4<StoredF32>} _8y
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a PeriodCagrPattern pattern node
|
|
||||||
* @param {BrkClientBase} client
|
|
||||||
* @param {string} acc - Accumulated metric name
|
|
||||||
* @returns {PeriodCagrPattern}
|
|
||||||
*/
|
|
||||||
function createPeriodCagrPattern(client, acc) {
|
|
||||||
return {
|
|
||||||
_10y: createMetricPattern4(client, _p('10y', acc)),
|
|
||||||
_2y: createMetricPattern4(client, _p('2y', acc)),
|
|
||||||
_3y: createMetricPattern4(client, _p('3y', acc)),
|
|
||||||
_4y: createMetricPattern4(client, _p('4y', acc)),
|
|
||||||
_5y: createMetricPattern4(client, _p('5y', acc)),
|
|
||||||
_6y: createMetricPattern4(client, _p('6y', acc)),
|
|
||||||
_8y: createMetricPattern4(client, _p('8y', acc)),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} _10yTo12yPattern
|
|
||||||
* @property {ActivityPattern2} activity
|
|
||||||
* @property {CostBasisPattern2} costBasis
|
|
||||||
* @property {OutputsPattern} outputs
|
|
||||||
* @property {RealizedPattern2} realized
|
|
||||||
* @property {RelativePattern2} relative
|
|
||||||
* @property {SupplyPattern2} supply
|
|
||||||
* @property {UnrealizedPattern} unrealized
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a _10yTo12yPattern pattern node
|
|
||||||
* @param {BrkClientBase} client
|
|
||||||
* @param {string} acc - Accumulated metric name
|
|
||||||
* @returns {_10yTo12yPattern}
|
|
||||||
*/
|
|
||||||
function create_10yTo12yPattern(client, acc) {
|
|
||||||
return {
|
|
||||||
activity: createActivityPattern2(client, acc),
|
|
||||||
costBasis: createCostBasisPattern2(client, acc),
|
|
||||||
outputs: createOutputsPattern(client, _m(acc, 'utxo_count')),
|
|
||||||
realized: createRealizedPattern2(client, acc),
|
|
||||||
relative: createRelativePattern2(client, acc),
|
|
||||||
supply: createSupplyPattern2(client, _m(acc, 'supply')),
|
|
||||||
unrealized: createUnrealizedPattern(client, acc),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} _100btcPattern
|
* @typedef {Object} _100btcPattern
|
||||||
* @property {ActivityPattern2} activity
|
* @property {ActivityPattern2} activity
|
||||||
@@ -2401,6 +2314,35 @@ function create_100btcPattern(client, acc) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {Object} _0satsPattern2
|
||||||
|
* @property {ActivityPattern2} activity
|
||||||
|
* @property {CostBasisPattern} costBasis
|
||||||
|
* @property {OutputsPattern} outputs
|
||||||
|
* @property {RealizedPattern} realized
|
||||||
|
* @property {RelativePattern4} relative
|
||||||
|
* @property {SupplyPattern2} supply
|
||||||
|
* @property {UnrealizedPattern} unrealized
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a _0satsPattern2 pattern node
|
||||||
|
* @param {BrkClientBase} client
|
||||||
|
* @param {string} acc - Accumulated metric name
|
||||||
|
* @returns {_0satsPattern2}
|
||||||
|
*/
|
||||||
|
function create_0satsPattern2(client, acc) {
|
||||||
|
return {
|
||||||
|
activity: createActivityPattern2(client, acc),
|
||||||
|
costBasis: createCostBasisPattern(client, acc),
|
||||||
|
outputs: createOutputsPattern(client, _m(acc, 'utxo_count')),
|
||||||
|
realized: createRealizedPattern(client, acc),
|
||||||
|
relative: createRelativePattern4(client, _m(acc, 'supply_in')),
|
||||||
|
supply: createSupplyPattern2(client, _m(acc, 'supply')),
|
||||||
|
unrealized: createUnrealizedPattern(client, acc),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} _10yPattern
|
* @typedef {Object} _10yPattern
|
||||||
* @property {ActivityPattern2} activity
|
* @property {ActivityPattern2} activity
|
||||||
@@ -2459,6 +2401,64 @@ function createUnrealizedPattern(client, acc) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {Object} PeriodCagrPattern
|
||||||
|
* @property {MetricPattern4<StoredF32>} _10y
|
||||||
|
* @property {MetricPattern4<StoredF32>} _2y
|
||||||
|
* @property {MetricPattern4<StoredF32>} _3y
|
||||||
|
* @property {MetricPattern4<StoredF32>} _4y
|
||||||
|
* @property {MetricPattern4<StoredF32>} _5y
|
||||||
|
* @property {MetricPattern4<StoredF32>} _6y
|
||||||
|
* @property {MetricPattern4<StoredF32>} _8y
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a PeriodCagrPattern pattern node
|
||||||
|
* @param {BrkClientBase} client
|
||||||
|
* @param {string} acc - Accumulated metric name
|
||||||
|
* @returns {PeriodCagrPattern}
|
||||||
|
*/
|
||||||
|
function createPeriodCagrPattern(client, acc) {
|
||||||
|
return {
|
||||||
|
_10y: createMetricPattern4(client, _p('10y', acc)),
|
||||||
|
_2y: createMetricPattern4(client, _p('2y', acc)),
|
||||||
|
_3y: createMetricPattern4(client, _p('3y', acc)),
|
||||||
|
_4y: createMetricPattern4(client, _p('4y', acc)),
|
||||||
|
_5y: createMetricPattern4(client, _p('5y', acc)),
|
||||||
|
_6y: createMetricPattern4(client, _p('6y', acc)),
|
||||||
|
_8y: createMetricPattern4(client, _p('8y', acc)),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {Object} _10yTo12yPattern
|
||||||
|
* @property {ActivityPattern2} activity
|
||||||
|
* @property {CostBasisPattern2} costBasis
|
||||||
|
* @property {OutputsPattern} outputs
|
||||||
|
* @property {RealizedPattern2} realized
|
||||||
|
* @property {RelativePattern2} relative
|
||||||
|
* @property {SupplyPattern2} supply
|
||||||
|
* @property {UnrealizedPattern} unrealized
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a _10yTo12yPattern pattern node
|
||||||
|
* @param {BrkClientBase} client
|
||||||
|
* @param {string} acc - Accumulated metric name
|
||||||
|
* @returns {_10yTo12yPattern}
|
||||||
|
*/
|
||||||
|
function create_10yTo12yPattern(client, acc) {
|
||||||
|
return {
|
||||||
|
activity: createActivityPattern2(client, acc),
|
||||||
|
costBasis: createCostBasisPattern2(client, acc),
|
||||||
|
outputs: createOutputsPattern(client, _m(acc, 'utxo_count')),
|
||||||
|
realized: createRealizedPattern2(client, acc),
|
||||||
|
relative: createRelativePattern2(client, acc),
|
||||||
|
supply: createSupplyPattern2(client, _m(acc, 'supply')),
|
||||||
|
unrealized: createUnrealizedPattern(client, acc),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} AllPattern
|
* @typedef {Object} AllPattern
|
||||||
* @property {FullnessPattern<StoredU32>} balanceDecreased
|
* @property {FullnessPattern<StoredU32>} balanceDecreased
|
||||||
@@ -2536,6 +2536,69 @@ function createSplitPattern2(client, acc) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {Object} UnclaimedRewardsPattern
|
||||||
|
* @property {BitcoinPattern2<Bitcoin>} bitcoin
|
||||||
|
* @property {BlockCountPattern<Dollars>} dollars
|
||||||
|
* @property {BlockCountPattern<Sats>} sats
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a UnclaimedRewardsPattern pattern node
|
||||||
|
* @param {BrkClientBase} client
|
||||||
|
* @param {string} acc - Accumulated metric name
|
||||||
|
* @returns {UnclaimedRewardsPattern}
|
||||||
|
*/
|
||||||
|
function createUnclaimedRewardsPattern(client, acc) {
|
||||||
|
return {
|
||||||
|
bitcoin: createBitcoinPattern2(client, _m(acc, 'btc')),
|
||||||
|
dollars: createBlockCountPattern(client, _m(acc, 'usd')),
|
||||||
|
sats: createBlockCountPattern(client, acc),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {Object} _2015Pattern
|
||||||
|
* @property {MetricPattern4<Bitcoin>} bitcoin
|
||||||
|
* @property {MetricPattern4<Dollars>} dollars
|
||||||
|
* @property {MetricPattern4<Sats>} sats
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a _2015Pattern pattern node
|
||||||
|
* @param {BrkClientBase} client
|
||||||
|
* @param {string} acc - Accumulated metric name
|
||||||
|
* @returns {_2015Pattern}
|
||||||
|
*/
|
||||||
|
function create_2015Pattern(client, acc) {
|
||||||
|
return {
|
||||||
|
bitcoin: createMetricPattern4(client, _m(acc, 'btc')),
|
||||||
|
dollars: createMetricPattern4(client, _m(acc, 'usd')),
|
||||||
|
sats: createMetricPattern4(client, acc),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {Object} ActiveSupplyPattern
|
||||||
|
* @property {MetricPattern1<Bitcoin>} bitcoin
|
||||||
|
* @property {MetricPattern1<Dollars>} dollars
|
||||||
|
* @property {MetricPattern1<Sats>} sats
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a ActiveSupplyPattern pattern node
|
||||||
|
* @param {BrkClientBase} client
|
||||||
|
* @param {string} acc - Accumulated metric name
|
||||||
|
* @returns {ActiveSupplyPattern}
|
||||||
|
*/
|
||||||
|
function createActiveSupplyPattern(client, acc) {
|
||||||
|
return {
|
||||||
|
bitcoin: createMetricPattern1(client, _m(acc, 'btc')),
|
||||||
|
dollars: createMetricPattern1(client, _m(acc, 'usd')),
|
||||||
|
sats: createMetricPattern1(client, acc),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} CoinbasePattern
|
* @typedef {Object} CoinbasePattern
|
||||||
* @property {BitcoinPattern} bitcoin
|
* @property {BitcoinPattern} bitcoin
|
||||||
@@ -2557,6 +2620,27 @@ function createCoinbasePattern(client, acc) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {Object} SegwitAdoptionPattern
|
||||||
|
* @property {MetricPattern11<StoredF32>} base
|
||||||
|
* @property {MetricPattern2<StoredF32>} cumulative
|
||||||
|
* @property {MetricPattern2<StoredF32>} sum
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a SegwitAdoptionPattern pattern node
|
||||||
|
* @param {BrkClientBase} client
|
||||||
|
* @param {string} acc - Accumulated metric name
|
||||||
|
* @returns {SegwitAdoptionPattern}
|
||||||
|
*/
|
||||||
|
function createSegwitAdoptionPattern(client, acc) {
|
||||||
|
return {
|
||||||
|
base: createMetricPattern11(client, acc),
|
||||||
|
cumulative: createMetricPattern2(client, _m(acc, 'cumulative')),
|
||||||
|
sum: createMetricPattern2(client, _m(acc, 'sum')),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} CostBasisPattern2
|
* @typedef {Object} CostBasisPattern2
|
||||||
* @property {ActivePricePattern} max
|
* @property {ActivePricePattern} max
|
||||||
@@ -2600,86 +2684,21 @@ function createCoinbasePattern2(client, acc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} SegwitAdoptionPattern
|
* @typedef {Object} RelativePattern4
|
||||||
* @property {MetricPattern11<StoredF32>} base
|
* @property {MetricPattern1<StoredF64>} supplyInLossRelToOwnSupply
|
||||||
* @property {MetricPattern2<StoredF32>} cumulative
|
* @property {MetricPattern1<StoredF64>} supplyInProfitRelToOwnSupply
|
||||||
* @property {MetricPattern2<StoredF32>} sum
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a SegwitAdoptionPattern pattern node
|
* Create a RelativePattern4 pattern node
|
||||||
* @param {BrkClientBase} client
|
* @param {BrkClientBase} client
|
||||||
* @param {string} acc - Accumulated metric name
|
* @param {string} acc - Accumulated metric name
|
||||||
* @returns {SegwitAdoptionPattern}
|
* @returns {RelativePattern4}
|
||||||
*/
|
*/
|
||||||
function createSegwitAdoptionPattern(client, acc) {
|
function createRelativePattern4(client, acc) {
|
||||||
return {
|
return {
|
||||||
base: createMetricPattern11(client, acc),
|
supplyInLossRelToOwnSupply: createMetricPattern1(client, _m(acc, 'loss_rel_to_own_supply')),
|
||||||
cumulative: createMetricPattern2(client, _m(acc, 'cumulative')),
|
supplyInProfitRelToOwnSupply: createMetricPattern1(client, _m(acc, 'profit_rel_to_own_supply')),
|
||||||
sum: createMetricPattern2(client, _m(acc, 'sum')),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} UnclaimedRewardsPattern
|
|
||||||
* @property {BitcoinPattern2<Bitcoin>} bitcoin
|
|
||||||
* @property {BlockCountPattern<Dollars>} dollars
|
|
||||||
* @property {BlockCountPattern<Sats>} sats
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a UnclaimedRewardsPattern pattern node
|
|
||||||
* @param {BrkClientBase} client
|
|
||||||
* @param {string} acc - Accumulated metric name
|
|
||||||
* @returns {UnclaimedRewardsPattern}
|
|
||||||
*/
|
|
||||||
function createUnclaimedRewardsPattern(client, acc) {
|
|
||||||
return {
|
|
||||||
bitcoin: createBitcoinPattern2(client, _m(acc, 'btc')),
|
|
||||||
dollars: createBlockCountPattern(client, _m(acc, 'usd')),
|
|
||||||
sats: createBlockCountPattern(client, acc),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} ActiveSupplyPattern
|
|
||||||
* @property {MetricPattern1<Bitcoin>} bitcoin
|
|
||||||
* @property {MetricPattern1<Dollars>} dollars
|
|
||||||
* @property {MetricPattern1<Sats>} sats
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a ActiveSupplyPattern pattern node
|
|
||||||
* @param {BrkClientBase} client
|
|
||||||
* @param {string} acc - Accumulated metric name
|
|
||||||
* @returns {ActiveSupplyPattern}
|
|
||||||
*/
|
|
||||||
function createActiveSupplyPattern(client, acc) {
|
|
||||||
return {
|
|
||||||
bitcoin: createMetricPattern1(client, _m(acc, 'btc')),
|
|
||||||
dollars: createMetricPattern1(client, _m(acc, 'usd')),
|
|
||||||
sats: createMetricPattern1(client, acc),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} _2015Pattern
|
|
||||||
* @property {MetricPattern4<Bitcoin>} bitcoin
|
|
||||||
* @property {MetricPattern4<Dollars>} dollars
|
|
||||||
* @property {MetricPattern4<Sats>} sats
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a _2015Pattern pattern node
|
|
||||||
* @param {BrkClientBase} client
|
|
||||||
* @param {string} acc - Accumulated metric name
|
|
||||||
* @returns {_2015Pattern}
|
|
||||||
*/
|
|
||||||
function create_2015Pattern(client, acc) {
|
|
||||||
return {
|
|
||||||
bitcoin: createMetricPattern4(client, _m(acc, 'btc')),
|
|
||||||
dollars: createMetricPattern4(client, _m(acc, 'usd')),
|
|
||||||
sats: createMetricPattern4(client, acc),
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2703,21 +2722,40 @@ function createActivePricePattern(client, acc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} CostBasisPattern
|
* @typedef {Object} _1dReturns1mSdPattern
|
||||||
* @property {ActivePricePattern} max
|
* @property {MetricPattern4<StoredF32>} sd
|
||||||
* @property {ActivePricePattern} min
|
* @property {MetricPattern4<StoredF32>} sma
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a CostBasisPattern pattern node
|
* Create a _1dReturns1mSdPattern pattern node
|
||||||
* @param {BrkClientBase} client
|
* @param {BrkClientBase} client
|
||||||
* @param {string} acc - Accumulated metric name
|
* @param {string} acc - Accumulated metric name
|
||||||
* @returns {CostBasisPattern}
|
* @returns {_1dReturns1mSdPattern}
|
||||||
*/
|
*/
|
||||||
function createCostBasisPattern(client, acc) {
|
function create_1dReturns1mSdPattern(client, acc) {
|
||||||
return {
|
return {
|
||||||
max: createActivePricePattern(client, _m(acc, 'max_cost_basis')),
|
sd: createMetricPattern4(client, _m(acc, 'sd')),
|
||||||
min: createActivePricePattern(client, _m(acc, 'min_cost_basis')),
|
sma: createMetricPattern4(client, _m(acc, 'sma')),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {Object} SupplyPattern2
|
||||||
|
* @property {ActiveSupplyPattern} halved
|
||||||
|
* @property {ActiveSupplyPattern} total
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a SupplyPattern2 pattern node
|
||||||
|
* @param {BrkClientBase} client
|
||||||
|
* @param {string} acc - Accumulated metric name
|
||||||
|
* @returns {SupplyPattern2}
|
||||||
|
*/
|
||||||
|
function createSupplyPattern2(client, acc) {
|
||||||
|
return {
|
||||||
|
halved: createActiveSupplyPattern(client, _m(acc, 'halved')),
|
||||||
|
total: createActiveSupplyPattern(client, acc),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2741,59 +2779,21 @@ function create_0sdUsdPattern(client, acc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} _1dReturns1mSdPattern
|
* @typedef {Object} CostBasisPattern
|
||||||
* @property {MetricPattern4<StoredF32>} sd
|
* @property {ActivePricePattern} max
|
||||||
* @property {MetricPattern4<StoredF32>} sma
|
* @property {ActivePricePattern} min
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a _1dReturns1mSdPattern pattern node
|
* Create a CostBasisPattern pattern node
|
||||||
* @param {BrkClientBase} client
|
* @param {BrkClientBase} client
|
||||||
* @param {string} acc - Accumulated metric name
|
* @param {string} acc - Accumulated metric name
|
||||||
* @returns {_1dReturns1mSdPattern}
|
* @returns {CostBasisPattern}
|
||||||
*/
|
*/
|
||||||
function create_1dReturns1mSdPattern(client, acc) {
|
function createCostBasisPattern(client, acc) {
|
||||||
return {
|
return {
|
||||||
sd: createMetricPattern4(client, _m(acc, 'sd')),
|
max: createActivePricePattern(client, _m(acc, 'max_cost_basis')),
|
||||||
sma: createMetricPattern4(client, _m(acc, 'sma')),
|
min: createActivePricePattern(client, _m(acc, 'min_cost_basis')),
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} RelativePattern4
|
|
||||||
* @property {MetricPattern1<StoredF64>} supplyInLossRelToOwnSupply
|
|
||||||
* @property {MetricPattern1<StoredF64>} supplyInProfitRelToOwnSupply
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a RelativePattern4 pattern node
|
|
||||||
* @param {BrkClientBase} client
|
|
||||||
* @param {string} acc - Accumulated metric name
|
|
||||||
* @returns {RelativePattern4}
|
|
||||||
*/
|
|
||||||
function createRelativePattern4(client, acc) {
|
|
||||||
return {
|
|
||||||
supplyInLossRelToOwnSupply: createMetricPattern1(client, _m(acc, 'loss_rel_to_own_supply')),
|
|
||||||
supplyInProfitRelToOwnSupply: createMetricPattern1(client, _m(acc, 'profit_rel_to_own_supply')),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef {Object} SupplyPattern2
|
|
||||||
* @property {ActiveSupplyPattern} halved
|
|
||||||
* @property {ActiveSupplyPattern} total
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a SupplyPattern2 pattern node
|
|
||||||
* @param {BrkClientBase} client
|
|
||||||
* @param {string} acc - Accumulated metric name
|
|
||||||
* @returns {SupplyPattern2}
|
|
||||||
*/
|
|
||||||
function createSupplyPattern2(client, acc) {
|
|
||||||
return {
|
|
||||||
halved: createActiveSupplyPattern(client, _m(acc, 'halved')),
|
|
||||||
total: createActiveSupplyPattern(client, acc),
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2818,27 +2818,6 @@ function createBlockCountPattern(client, acc) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @template T
|
|
||||||
* @typedef {Object} SatsPattern
|
|
||||||
* @property {MetricPattern1<T>} ohlc
|
|
||||||
* @property {SplitPattern2<T>} split
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a SatsPattern pattern node
|
|
||||||
* @template T
|
|
||||||
* @param {BrkClientBase} client
|
|
||||||
* @param {string} acc - Accumulated metric name
|
|
||||||
* @returns {SatsPattern<T>}
|
|
||||||
*/
|
|
||||||
function createSatsPattern(client, acc) {
|
|
||||||
return {
|
|
||||||
ohlc: createMetricPattern1(client, _m(acc, 'ohlc')),
|
|
||||||
split: createSplitPattern2(client, acc),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @template T
|
* @template T
|
||||||
* @typedef {Object} BitcoinPattern2
|
* @typedef {Object} BitcoinPattern2
|
||||||
@@ -2860,6 +2839,27 @@ function createBitcoinPattern2(client, acc) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @template T
|
||||||
|
* @typedef {Object} SatsPattern
|
||||||
|
* @property {MetricPattern1<T>} ohlc
|
||||||
|
* @property {SplitPattern2<T>} split
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a SatsPattern pattern node
|
||||||
|
* @template T
|
||||||
|
* @param {BrkClientBase} client
|
||||||
|
* @param {string} acc - Accumulated metric name
|
||||||
|
* @returns {SatsPattern<T>}
|
||||||
|
*/
|
||||||
|
function createSatsPattern(client, acc) {
|
||||||
|
return {
|
||||||
|
ohlc: createMetricPattern1(client, _m(acc, 'ohlc_sats')),
|
||||||
|
split: createSplitPattern2(client, _m(acc, 'sats')),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} OutputsPattern
|
* @typedef {Object} OutputsPattern
|
||||||
* @property {MetricPattern1<StoredU64>} utxoCount
|
* @property {MetricPattern1<StoredU64>} utxoCount
|
||||||
@@ -3743,8 +3743,8 @@ function createRealizedPriceExtraPattern(client, acc) {
|
|||||||
* @typedef {Object} MetricsTree_Market_Dca
|
* @typedef {Object} MetricsTree_Market_Dca
|
||||||
* @property {MetricsTree_Market_Dca_ClassAveragePrice} classAveragePrice
|
* @property {MetricsTree_Market_Dca_ClassAveragePrice} classAveragePrice
|
||||||
* @property {MetricsTree_Market_Dca_ClassDaysInLoss} classDaysInLoss
|
* @property {MetricsTree_Market_Dca_ClassDaysInLoss} classDaysInLoss
|
||||||
* @property {MetricsTree_Market_Dca_ClassDaysInProfit} classDaysInProfit
|
* @property {ClassDaysInLossPattern<StoredU32>} classDaysInProfit
|
||||||
* @property {ClassDaysInLossPattern<StoredF32>} classMaxDrawdown
|
* @property {MetricsTree_Market_Dca_ClassMaxDrawdown} classMaxDrawdown
|
||||||
* @property {MetricsTree_Market_Dca_ClassMaxReturn} classMaxReturn
|
* @property {MetricsTree_Market_Dca_ClassMaxReturn} classMaxReturn
|
||||||
* @property {MetricsTree_Market_Dca_ClassReturns} classReturns
|
* @property {MetricsTree_Market_Dca_ClassReturns} classReturns
|
||||||
* @property {MetricsTree_Market_Dca_ClassStack} classStack
|
* @property {MetricsTree_Market_Dca_ClassStack} classStack
|
||||||
@@ -3797,19 +3797,19 @@ function createRealizedPriceExtraPattern(client, acc) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} MetricsTree_Market_Dca_ClassDaysInProfit
|
* @typedef {Object} MetricsTree_Market_Dca_ClassMaxDrawdown
|
||||||
* @property {MetricPattern4<StoredU32>} _2015
|
* @property {MetricPattern4<StoredF32>} _2015
|
||||||
* @property {MetricPattern4<StoredU32>} _2016
|
* @property {MetricPattern4<StoredF32>} _2016
|
||||||
* @property {MetricPattern4<StoredU32>} _2017
|
* @property {MetricPattern4<StoredF32>} _2017
|
||||||
* @property {MetricPattern4<StoredU32>} _2018
|
* @property {MetricPattern4<StoredF32>} _2018
|
||||||
* @property {MetricPattern4<StoredU32>} _2019
|
* @property {MetricPattern4<StoredF32>} _2019
|
||||||
* @property {MetricPattern4<StoredU32>} _2020
|
* @property {MetricPattern4<StoredF32>} _2020
|
||||||
* @property {MetricPattern4<StoredU32>} _2021
|
* @property {MetricPattern4<StoredF32>} _2021
|
||||||
* @property {MetricPattern4<StoredU32>} _2022
|
* @property {MetricPattern4<StoredF32>} _2022
|
||||||
* @property {MetricPattern4<StoredU32>} _2023
|
* @property {MetricPattern4<StoredF32>} _2023
|
||||||
* @property {MetricPattern4<StoredU32>} _2024
|
* @property {MetricPattern4<StoredF32>} _2024
|
||||||
* @property {MetricPattern4<StoredU32>} _2025
|
* @property {MetricPattern4<StoredF32>} _2025
|
||||||
* @property {MetricPattern4<StoredU32>} _2026
|
* @property {MetricPattern4<StoredF32>} _2026
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -4212,8 +4212,8 @@ function createRealizedPriceExtraPattern(client, acc) {
|
|||||||
/**
|
/**
|
||||||
* @typedef {Object} MetricsTree_Price
|
* @typedef {Object} MetricsTree_Price
|
||||||
* @property {MetricsTree_Price_Cents} cents
|
* @property {MetricsTree_Price_Cents} cents
|
||||||
* @property {MetricsTree_Price_Sats} sats
|
* @property {SatsPattern<OHLCSats>} sats
|
||||||
* @property {SatsPattern<OHLCDollars>} usd
|
* @property {MetricsTree_Price_Usd} usd
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -4231,9 +4231,9 @@ function createRealizedPriceExtraPattern(client, acc) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} MetricsTree_Price_Sats
|
* @typedef {Object} MetricsTree_Price_Usd
|
||||||
* @property {MetricPattern1<OHLCSats>} ohlc
|
* @property {MetricPattern1<OHLCDollars>} ohlc
|
||||||
* @property {SplitPattern2<Sats>} split
|
* @property {SplitPattern2<Dollars>} split
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -4371,7 +4371,7 @@ function createRealizedPriceExtraPattern(client, acc) {
|
|||||||
* @extends BrkClientBase
|
* @extends BrkClientBase
|
||||||
*/
|
*/
|
||||||
class BrkClient extends BrkClientBase {
|
class BrkClient extends BrkClientBase {
|
||||||
VERSION = "v0.1.0-beta.1";
|
VERSION = "v0.1.0";
|
||||||
|
|
||||||
INDEXES = /** @type {const} */ ([
|
INDEXES = /** @type {const} */ ([
|
||||||
"dateindex",
|
"dateindex",
|
||||||
@@ -5906,21 +5906,21 @@ class BrkClient extends BrkClientBase {
|
|||||||
_2025: createMetricPattern4(this, 'dca_class_2025_days_in_loss'),
|
_2025: createMetricPattern4(this, 'dca_class_2025_days_in_loss'),
|
||||||
_2026: createMetricPattern4(this, 'dca_class_2026_days_in_loss'),
|
_2026: createMetricPattern4(this, 'dca_class_2026_days_in_loss'),
|
||||||
},
|
},
|
||||||
classDaysInProfit: {
|
classDaysInProfit: createClassDaysInLossPattern(this, 'dca_class'),
|
||||||
_2015: createMetricPattern4(this, 'dca_class_2015_days_in_profit'),
|
classMaxDrawdown: {
|
||||||
_2016: createMetricPattern4(this, 'dca_class_2016_days_in_profit'),
|
_2015: createMetricPattern4(this, 'dca_class_2015_max_drawdown'),
|
||||||
_2017: createMetricPattern4(this, 'dca_class_2017_days_in_profit'),
|
_2016: createMetricPattern4(this, 'dca_class_2016_max_drawdown'),
|
||||||
_2018: createMetricPattern4(this, 'dca_class_2018_days_in_profit'),
|
_2017: createMetricPattern4(this, 'dca_class_2017_max_drawdown'),
|
||||||
_2019: createMetricPattern4(this, 'dca_class_2019_days_in_profit'),
|
_2018: createMetricPattern4(this, 'dca_class_2018_max_drawdown'),
|
||||||
_2020: createMetricPattern4(this, 'dca_class_2020_days_in_profit'),
|
_2019: createMetricPattern4(this, 'dca_class_2019_max_drawdown'),
|
||||||
_2021: createMetricPattern4(this, 'dca_class_2021_days_in_profit'),
|
_2020: createMetricPattern4(this, 'dca_class_2020_max_drawdown'),
|
||||||
_2022: createMetricPattern4(this, 'dca_class_2022_days_in_profit'),
|
_2021: createMetricPattern4(this, 'dca_class_2021_max_drawdown'),
|
||||||
_2023: createMetricPattern4(this, 'dca_class_2023_days_in_profit'),
|
_2022: createMetricPattern4(this, 'dca_class_2022_max_drawdown'),
|
||||||
_2024: createMetricPattern4(this, 'dca_class_2024_days_in_profit'),
|
_2023: createMetricPattern4(this, 'dca_class_2023_max_drawdown'),
|
||||||
_2025: createMetricPattern4(this, 'dca_class_2025_days_in_profit'),
|
_2024: createMetricPattern4(this, 'dca_class_2024_max_drawdown'),
|
||||||
_2026: createMetricPattern4(this, 'dca_class_2026_days_in_profit'),
|
_2025: createMetricPattern4(this, 'dca_class_2025_max_drawdown'),
|
||||||
|
_2026: createMetricPattern4(this, 'dca_class_2026_max_drawdown'),
|
||||||
},
|
},
|
||||||
classMaxDrawdown: createClassDaysInLossPattern(this, 'dca_class'),
|
|
||||||
classMaxReturn: {
|
classMaxReturn: {
|
||||||
_2015: createMetricPattern4(this, 'dca_class_2015_max_return'),
|
_2015: createMetricPattern4(this, 'dca_class_2015_max_return'),
|
||||||
_2016: createMetricPattern4(this, 'dca_class_2016_max_return'),
|
_2016: createMetricPattern4(this, 'dca_class_2016_max_return'),
|
||||||
@@ -6305,11 +6305,11 @@ class BrkClient extends BrkClientBase {
|
|||||||
open: createMetricPattern5(this, 'price_open_cents'),
|
open: createMetricPattern5(this, 'price_open_cents'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
sats: {
|
sats: createSatsPattern(this, 'price'),
|
||||||
ohlc: createMetricPattern1(this, 'price_ohlc_sats'),
|
usd: {
|
||||||
split: createSplitPattern2(this, 'price_sats'),
|
ohlc: createMetricPattern1(this, 'price_ohlc'),
|
||||||
|
split: createSplitPattern2(this, 'price'),
|
||||||
},
|
},
|
||||||
usd: createSatsPattern(this, 'price'),
|
|
||||||
},
|
},
|
||||||
scripts: {
|
scripts: {
|
||||||
count: {
|
count: {
|
||||||
|
|||||||
@@ -34,5 +34,5 @@
|
|||||||
"url": "git+https://github.com/bitcoinresearchkit/brk.git"
|
"url": "git+https://github.com/bitcoinresearchkit/brk.git"
|
||||||
},
|
},
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.1.0-beta.1"
|
"version": "0.1.0"
|
||||||
}
|
}
|
||||||
|
|||||||
+2950
-5225
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,13 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "brk-client"
|
name = "brk-client"
|
||||||
version = "0.1.0-beta.1"
|
version = "0.1.0"
|
||||||
description = "Python client for the Bitcoin Research Kit"
|
description = "Python client for the Bitcoin Research Kit"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
keywords = ["bitcoin", "blockchain", "analytics", "on-chain"]
|
keywords = ["bitcoin", "blockchain", "analytics", "on-chain"]
|
||||||
classifiers = [
|
classifiers = [
|
||||||
"Development Status :: 4 - Beta",
|
"Development Status :: 5 - Production/Stable",
|
||||||
"Intended Audience :: Developers",
|
"Intended Audience :: Developers",
|
||||||
"License :: OSI Approved :: MIT License",
|
"License :: OSI Approved :: MIT License",
|
||||||
"Programming Language :: Python :: 3",
|
"Programming Language :: Python :: 3",
|
||||||
|
|||||||
Reference in New Issue
Block a user