mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-04-24 06:39:58 -07:00
global: snapshot
This commit is contained in:
@@ -1077,7 +1077,7 @@ pub struct CapGrossInvestorLossMvrvNetPeakPriceProfitSellSoprPattern {
|
||||
pub loss: BaseCapitulationCumulativeNegativeSumToValuePattern,
|
||||
pub mvrv: SeriesPattern1<StoredF32>,
|
||||
pub net_pnl: BaseChangeCumulativeDeltaSumToPattern,
|
||||
pub peak_regret: BaseCumulativeToPattern,
|
||||
pub peak_regret: BaseCumulativeSumToPattern,
|
||||
pub price: BpsCentsPercentilesRatioSatsSmaStdUsdPattern,
|
||||
pub profit: BaseCumulativeDistributionSumToValuePattern,
|
||||
pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>,
|
||||
@@ -1259,7 +1259,7 @@ pub struct BaseCapitulationCumulativeNegativeSumToValuePattern {
|
||||
pub base: CentsUsdPattern2,
|
||||
pub capitulation_flow: SeriesPattern1<Dollars>,
|
||||
pub cumulative: CentsUsdPattern2,
|
||||
pub negative: SeriesPattern1<Dollars>,
|
||||
pub negative: BaseSumPattern,
|
||||
pub sum: _1m1w1y24hPattern4,
|
||||
pub to_rcap: BpsPercentRatioPattern4,
|
||||
pub value_created: BaseCumulativeSumPattern<Cents>,
|
||||
@@ -2042,7 +2042,7 @@ impl BaseCumulativeDeltaSumPattern {
|
||||
pub struct BaseCumulativeNegativeSumPattern {
|
||||
pub base: CentsUsdPattern2,
|
||||
pub cumulative: CentsUsdPattern2,
|
||||
pub negative: SeriesPattern1<Dollars>,
|
||||
pub negative: BaseSumPattern,
|
||||
pub sum: _1m1w1y24hPattern4,
|
||||
}
|
||||
|
||||
@@ -2052,12 +2052,32 @@ impl BaseCumulativeNegativeSumPattern {
|
||||
Self {
|
||||
base: CentsUsdPattern2::new(client.clone(), _m(&acc, "realized_loss")),
|
||||
cumulative: CentsUsdPattern2::new(client.clone(), _m(&acc, "realized_loss_cumulative")),
|
||||
negative: SeriesPattern1::new(client.clone(), _m(&acc, "neg_realized_loss")),
|
||||
negative: BaseSumPattern::new(client.clone(), _m(&acc, "neg_realized_loss")),
|
||||
sum: _1m1w1y24hPattern4::new(client.clone(), _m(&acc, "realized_loss_sum")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct BaseCumulativeSumToPattern {
|
||||
pub base: CentsUsdPattern2,
|
||||
pub cumulative: CentsUsdPattern2,
|
||||
pub sum: _1m1w1y24hPattern4,
|
||||
pub to_rcap: BpsPercentRatioPattern4,
|
||||
}
|
||||
|
||||
impl BaseCumulativeSumToPattern {
|
||||
/// Create a new pattern node with accumulated series name.
|
||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||
Self {
|
||||
base: CentsUsdPattern2::new(client.clone(), acc.clone()),
|
||||
cumulative: CentsUsdPattern2::new(client.clone(), _m(&acc, "cumulative")),
|
||||
sum: _1m1w1y24hPattern4::new(client.clone(), _m(&acc, "sum")),
|
||||
to_rcap: BpsPercentRatioPattern4::new(client.clone(), _m(&acc, "to_rcap")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct BothReactivatedReceivingSendingPattern {
|
||||
pub both: _1m1w1y24hBasePattern<StoredU32>,
|
||||
@@ -2244,24 +2264,6 @@ impl BaseCumulativeSumPattern4 {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct BaseCumulativeToPattern {
|
||||
pub base: SeriesPattern1<Cents>,
|
||||
pub cumulative: SeriesPattern1<Cents>,
|
||||
pub to_rcap: BpsPercentRatioPattern4,
|
||||
}
|
||||
|
||||
impl BaseCumulativeToPattern {
|
||||
/// Create a new pattern node with accumulated series name.
|
||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||
Self {
|
||||
base: SeriesPattern1::new(client.clone(), acc.clone()),
|
||||
cumulative: SeriesPattern1::new(client.clone(), _m(&acc, "cumulative")),
|
||||
to_rcap: BpsPercentRatioPattern4::new(client.clone(), _m(&acc, "to_rcap")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct BaseCumulativeSumPattern3 {
|
||||
pub base: CentsUsdPattern2,
|
||||
@@ -2682,6 +2684,22 @@ impl AllSthPattern {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct BaseSumPattern {
|
||||
pub base: SeriesPattern1<Dollars>,
|
||||
pub sum: _1m1w1y24hPattern<Dollars>,
|
||||
}
|
||||
|
||||
impl BaseSumPattern {
|
||||
/// Create a new pattern node with accumulated series name.
|
||||
pub fn new(client: Arc<BrkClientBase>, acc: String) -> Self {
|
||||
Self {
|
||||
base: SeriesPattern1::new(client.clone(), acc.clone()),
|
||||
sum: _1m1w1y24hPattern::new(client.clone(), _m(&acc, "sum")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct BaseDeltaPattern {
|
||||
pub base: SeriesPattern1<StoredU64>,
|
||||
@@ -6322,7 +6340,7 @@ pub struct SeriesTree_Cohorts_Utxo_All_Realized {
|
||||
pub net_pnl: BaseChangeCumulativeDeltaSumToPattern,
|
||||
pub gross_pnl: BaseCumulativeSumPattern3,
|
||||
pub sell_side_risk_ratio: _1m1w1y24hPattern6,
|
||||
pub peak_regret: BaseCumulativeToPattern,
|
||||
pub peak_regret: BaseCumulativeSumToPattern,
|
||||
pub investor: PricePattern,
|
||||
pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>,
|
||||
}
|
||||
@@ -6339,7 +6357,7 @@ impl SeriesTree_Cohorts_Utxo_All_Realized {
|
||||
net_pnl: BaseChangeCumulativeDeltaSumToPattern::new(client.clone(), "net".to_string()),
|
||||
gross_pnl: BaseCumulativeSumPattern3::new(client.clone(), "realized_gross_pnl".to_string()),
|
||||
sell_side_risk_ratio: _1m1w1y24hPattern6::new(client.clone(), "sell_side_risk_ratio".to_string()),
|
||||
peak_regret: BaseCumulativeToPattern::new(client.clone(), "realized_peak_regret".to_string()),
|
||||
peak_regret: BaseCumulativeSumToPattern::new(client.clone(), "realized_peak_regret".to_string()),
|
||||
investor: PricePattern::new(client.clone(), "investor_price".to_string()),
|
||||
profit_to_loss_ratio: _1m1w1y24hPattern::new(client.clone(), "realized_profit_to_loss_ratio".to_string()),
|
||||
}
|
||||
@@ -6376,7 +6394,7 @@ pub struct SeriesTree_Cohorts_Utxo_All_Realized_Loss {
|
||||
pub base: CentsUsdPattern2,
|
||||
pub cumulative: CentsUsdPattern2,
|
||||
pub sum: _1m1w1y24hPattern4,
|
||||
pub negative: SeriesPattern1<Dollars>,
|
||||
pub negative: BaseSumPattern,
|
||||
pub to_rcap: BpsPercentRatioPattern4,
|
||||
pub value_created: BaseCumulativeSumPattern<Cents>,
|
||||
pub value_destroyed: BaseCumulativeSumPattern<Cents>,
|
||||
@@ -6389,7 +6407,7 @@ impl SeriesTree_Cohorts_Utxo_All_Realized_Loss {
|
||||
base: CentsUsdPattern2::new(client.clone(), "realized_loss".to_string()),
|
||||
cumulative: CentsUsdPattern2::new(client.clone(), "realized_loss_cumulative".to_string()),
|
||||
sum: _1m1w1y24hPattern4::new(client.clone(), "realized_loss_sum".to_string()),
|
||||
negative: SeriesPattern1::new(client.clone(), "neg_realized_loss".to_string()),
|
||||
negative: BaseSumPattern::new(client.clone(), "neg_realized_loss".to_string()),
|
||||
to_rcap: BpsPercentRatioPattern4::new(client.clone(), "realized_loss_to_rcap".to_string()),
|
||||
value_created: BaseCumulativeSumPattern::new(client.clone(), "loss_value_created".to_string()),
|
||||
value_destroyed: BaseCumulativeSumPattern::new(client.clone(), "loss_value_destroyed".to_string()),
|
||||
@@ -6817,7 +6835,7 @@ pub struct SeriesTree_Cohorts_Utxo_Sth_Realized {
|
||||
pub net_pnl: BaseChangeCumulativeDeltaSumToPattern,
|
||||
pub gross_pnl: BaseCumulativeSumPattern3,
|
||||
pub sell_side_risk_ratio: _1m1w1y24hPattern6,
|
||||
pub peak_regret: BaseCumulativeToPattern,
|
||||
pub peak_regret: BaseCumulativeSumToPattern,
|
||||
pub investor: PricePattern,
|
||||
pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>,
|
||||
}
|
||||
@@ -6834,7 +6852,7 @@ impl SeriesTree_Cohorts_Utxo_Sth_Realized {
|
||||
net_pnl: BaseChangeCumulativeDeltaSumToPattern::new(client.clone(), "sth_net".to_string()),
|
||||
gross_pnl: BaseCumulativeSumPattern3::new(client.clone(), "sth_realized_gross_pnl".to_string()),
|
||||
sell_side_risk_ratio: _1m1w1y24hPattern6::new(client.clone(), "sth_sell_side_risk_ratio".to_string()),
|
||||
peak_regret: BaseCumulativeToPattern::new(client.clone(), "sth_realized_peak_regret".to_string()),
|
||||
peak_regret: BaseCumulativeSumToPattern::new(client.clone(), "sth_realized_peak_regret".to_string()),
|
||||
investor: PricePattern::new(client.clone(), "sth_investor_price".to_string()),
|
||||
profit_to_loss_ratio: _1m1w1y24hPattern::new(client.clone(), "sth_realized_profit_to_loss_ratio".to_string()),
|
||||
}
|
||||
@@ -6871,7 +6889,7 @@ pub struct SeriesTree_Cohorts_Utxo_Sth_Realized_Loss {
|
||||
pub base: CentsUsdPattern2,
|
||||
pub cumulative: CentsUsdPattern2,
|
||||
pub sum: _1m1w1y24hPattern4,
|
||||
pub negative: SeriesPattern1<Dollars>,
|
||||
pub negative: BaseSumPattern,
|
||||
pub to_rcap: BpsPercentRatioPattern4,
|
||||
pub value_created: BaseCumulativeSumPattern<Cents>,
|
||||
pub value_destroyed: BaseCumulativeSumPattern<Cents>,
|
||||
@@ -6884,7 +6902,7 @@ impl SeriesTree_Cohorts_Utxo_Sth_Realized_Loss {
|
||||
base: CentsUsdPattern2::new(client.clone(), "sth_realized_loss".to_string()),
|
||||
cumulative: CentsUsdPattern2::new(client.clone(), "sth_realized_loss_cumulative".to_string()),
|
||||
sum: _1m1w1y24hPattern4::new(client.clone(), "sth_realized_loss_sum".to_string()),
|
||||
negative: SeriesPattern1::new(client.clone(), "sth_neg_realized_loss".to_string()),
|
||||
negative: BaseSumPattern::new(client.clone(), "sth_neg_realized_loss".to_string()),
|
||||
to_rcap: BpsPercentRatioPattern4::new(client.clone(), "sth_realized_loss_to_rcap".to_string()),
|
||||
value_created: BaseCumulativeSumPattern::new(client.clone(), "sth_loss_value_created".to_string()),
|
||||
value_destroyed: BaseCumulativeSumPattern::new(client.clone(), "sth_loss_value_destroyed".to_string()),
|
||||
@@ -7255,7 +7273,7 @@ pub struct SeriesTree_Cohorts_Utxo_Lth_Realized {
|
||||
pub net_pnl: BaseChangeCumulativeDeltaSumToPattern,
|
||||
pub gross_pnl: BaseCumulativeSumPattern3,
|
||||
pub sell_side_risk_ratio: _1m1w1y24hPattern6,
|
||||
pub peak_regret: BaseCumulativeToPattern,
|
||||
pub peak_regret: BaseCumulativeSumToPattern,
|
||||
pub investor: PricePattern,
|
||||
pub profit_to_loss_ratio: _1m1w1y24hPattern<StoredF64>,
|
||||
}
|
||||
@@ -7272,7 +7290,7 @@ impl SeriesTree_Cohorts_Utxo_Lth_Realized {
|
||||
net_pnl: BaseChangeCumulativeDeltaSumToPattern::new(client.clone(), "lth_net".to_string()),
|
||||
gross_pnl: BaseCumulativeSumPattern3::new(client.clone(), "lth_realized_gross_pnl".to_string()),
|
||||
sell_side_risk_ratio: _1m1w1y24hPattern6::new(client.clone(), "lth_sell_side_risk_ratio".to_string()),
|
||||
peak_regret: BaseCumulativeToPattern::new(client.clone(), "lth_realized_peak_regret".to_string()),
|
||||
peak_regret: BaseCumulativeSumToPattern::new(client.clone(), "lth_realized_peak_regret".to_string()),
|
||||
investor: PricePattern::new(client.clone(), "lth_investor_price".to_string()),
|
||||
profit_to_loss_ratio: _1m1w1y24hPattern::new(client.clone(), "lth_realized_profit_to_loss_ratio".to_string()),
|
||||
}
|
||||
@@ -7309,7 +7327,7 @@ pub struct SeriesTree_Cohorts_Utxo_Lth_Realized_Loss {
|
||||
pub base: CentsUsdPattern2,
|
||||
pub cumulative: CentsUsdPattern2,
|
||||
pub sum: _1m1w1y24hPattern4,
|
||||
pub negative: SeriesPattern1<Dollars>,
|
||||
pub negative: BaseSumPattern,
|
||||
pub to_rcap: BpsPercentRatioPattern4,
|
||||
pub value_created: BaseCumulativeSumPattern<Cents>,
|
||||
pub value_destroyed: BaseCumulativeSumPattern<Cents>,
|
||||
@@ -7322,7 +7340,7 @@ impl SeriesTree_Cohorts_Utxo_Lth_Realized_Loss {
|
||||
base: CentsUsdPattern2::new(client.clone(), "lth_realized_loss".to_string()),
|
||||
cumulative: CentsUsdPattern2::new(client.clone(), "lth_realized_loss_cumulative".to_string()),
|
||||
sum: _1m1w1y24hPattern4::new(client.clone(), "lth_realized_loss_sum".to_string()),
|
||||
negative: SeriesPattern1::new(client.clone(), "lth_neg_realized_loss".to_string()),
|
||||
negative: BaseSumPattern::new(client.clone(), "lth_neg_realized_loss".to_string()),
|
||||
to_rcap: BpsPercentRatioPattern4::new(client.clone(), "lth_realized_loss_to_rcap".to_string()),
|
||||
value_created: BaseCumulativeSumPattern::new(client.clone(), "lth_loss_value_created".to_string()),
|
||||
value_destroyed: BaseCumulativeSumPattern::new(client.clone(), "lth_loss_value_destroyed".to_string()),
|
||||
|
||||
@@ -10,7 +10,7 @@ use crate::{
|
||||
distribution::state::{CohortState, CostBasisOps, RealizedOps},
|
||||
internal::{
|
||||
FiatPerBlockCumulativeWithSumsAndDeltas, LazyPerBlock, NegCentsUnsignedToDollars,
|
||||
RatioCents64, RollingWindow24hPerBlock,
|
||||
RatioCents64, RollingWindow24hPerBlock, Windows,
|
||||
},
|
||||
prices,
|
||||
};
|
||||
@@ -19,6 +19,13 @@ use crate::distribution::metrics::ImportConfig;
|
||||
|
||||
use super::RealizedMinimal;
|
||||
|
||||
#[derive(Clone, Traversable)]
|
||||
pub struct NegRealizedLoss {
|
||||
#[traversable(flatten)]
|
||||
pub base: LazyPerBlock<Dollars, Cents>,
|
||||
pub sum: Windows<LazyPerBlock<Dollars, Cents>>,
|
||||
}
|
||||
|
||||
#[derive(Traversable)]
|
||||
pub struct RealizedSoprCore<M: StorageMode = Rw> {
|
||||
pub ratio: RollingWindow24hPerBlock<StoredF64, M>,
|
||||
@@ -32,7 +39,7 @@ pub struct RealizedCore<M: StorageMode = Rw> {
|
||||
pub minimal: RealizedMinimal<M>,
|
||||
|
||||
#[traversable(wrap = "loss", rename = "negative")]
|
||||
pub neg_loss: LazyPerBlock<Dollars, Cents>,
|
||||
pub neg_loss: NegRealizedLoss,
|
||||
pub net_pnl: FiatPerBlockCumulativeWithSumsAndDeltas<CentsSigned, CentsSigned, BasisPointsSigned32, M>,
|
||||
pub sopr: RealizedSoprCore<M>,
|
||||
}
|
||||
@@ -43,13 +50,27 @@ impl RealizedCore {
|
||||
|
||||
let minimal = RealizedMinimal::forced_import(cfg)?;
|
||||
|
||||
let neg_realized_loss = LazyPerBlock::from_height_source::<NegCentsUnsignedToDollars>(
|
||||
let neg_loss_base = LazyPerBlock::from_height_source::<NegCentsUnsignedToDollars>(
|
||||
&cfg.name("neg_realized_loss"),
|
||||
cfg.version + Version::ONE,
|
||||
minimal.loss.base.cents.height.read_only_boxed_clone(),
|
||||
cfg.indexes,
|
||||
);
|
||||
|
||||
let neg_loss_sum = minimal.loss.sum.0.map_with_suffix(|suffix, slot| {
|
||||
LazyPerBlock::from_height_source::<NegCentsUnsignedToDollars>(
|
||||
&cfg.name(&format!("neg_realized_loss_sum_{suffix}")),
|
||||
cfg.version + Version::ONE,
|
||||
slot.cents.height.read_only_boxed_clone(),
|
||||
cfg.indexes,
|
||||
)
|
||||
});
|
||||
|
||||
let neg_loss = NegRealizedLoss {
|
||||
base: neg_loss_base,
|
||||
sum: neg_loss_sum,
|
||||
};
|
||||
|
||||
let net_pnl = FiatPerBlockCumulativeWithSumsAndDeltas::forced_import(
|
||||
cfg.db,
|
||||
&cfg.name("net_realized_pnl"),
|
||||
@@ -61,7 +82,7 @@ impl RealizedCore {
|
||||
|
||||
Ok(Self {
|
||||
minimal,
|
||||
neg_loss: neg_realized_loss,
|
||||
neg_loss,
|
||||
net_pnl,
|
||||
sopr: RealizedSoprCore {
|
||||
ratio: cfg.import("sopr", v1)?,
|
||||
|
||||
@@ -14,7 +14,7 @@ use crate::{
|
||||
blocks,
|
||||
distribution::state::{WithCapital, CohortState, CostBasisData, RealizedState},
|
||||
internal::{
|
||||
CentsUnsignedToDollars, PerBlockCumulative,
|
||||
CentsUnsignedToDollars,
|
||||
PerBlockCumulativeWithSums, FiatPerBlockCumulativeWithSums,
|
||||
LazyPerBlock, PercentPerBlock, PercentRollingWindows,
|
||||
PriceWithRatioExtendedPerBlock, RatioCents64, RatioCentsBp32,
|
||||
@@ -63,7 +63,7 @@ pub struct RealizedSopr<M: StorageMode = Rw> {
|
||||
#[derive(Traversable)]
|
||||
pub struct RealizedPeakRegret<M: StorageMode = Rw> {
|
||||
#[traversable(flatten)]
|
||||
pub value: PerBlockCumulative<Cents, M>,
|
||||
pub value: FiatPerBlockCumulativeWithSums<Cents, M>,
|
||||
pub to_rcap: PercentPerBlock<BasisPoints32, M>,
|
||||
}
|
||||
|
||||
@@ -227,7 +227,7 @@ impl RealizedFull {
|
||||
.min(self.investor.price.cents.height.len())
|
||||
.min(self.cap_raw.len())
|
||||
.min(self.investor.cap_raw.len())
|
||||
.min(self.peak_regret.value.base.height.len())
|
||||
.min(self.peak_regret.value.base.cents.height.len())
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
@@ -269,6 +269,7 @@ impl RealizedFull {
|
||||
self.peak_regret
|
||||
.value
|
||||
.base
|
||||
.cents
|
||||
.height
|
||||
.push(state.realized.peak_regret());
|
||||
}
|
||||
@@ -282,7 +283,7 @@ impl RealizedFull {
|
||||
vecs.push(&mut self.investor.price.cents.height);
|
||||
vecs.push(&mut self.cap_raw as &mut dyn AnyStoredVec);
|
||||
vecs.push(&mut self.investor.cap_raw as &mut dyn AnyStoredVec);
|
||||
vecs.push(&mut self.peak_regret.value.base.height);
|
||||
vecs.push(&mut self.peak_regret.value.base.cents.height);
|
||||
vecs
|
||||
}
|
||||
|
||||
@@ -346,6 +347,7 @@ impl RealizedFull {
|
||||
self.peak_regret
|
||||
.value
|
||||
.base
|
||||
.cents
|
||||
.height
|
||||
.push(accum.peak_regret());
|
||||
}
|
||||
@@ -470,7 +472,7 @@ impl RealizedFull {
|
||||
.to_rcap
|
||||
.compute_binary::<Cents, Cents, RatioCentsBp32>(
|
||||
starting_indexes.height,
|
||||
&self.peak_regret.value.base.height,
|
||||
&self.peak_regret.value.base.cents.height,
|
||||
&self.core.minimal.cap.cents.height,
|
||||
exit,
|
||||
)?;
|
||||
|
||||
@@ -1789,7 +1789,7 @@ function create_10y1m1w1y2y3m3y4y5y6m6y8yPattern3(client, acc) {
|
||||
* @property {BaseCapitulationCumulativeNegativeSumToValuePattern} loss
|
||||
* @property {SeriesPattern1<StoredF32>} mvrv
|
||||
* @property {BaseChangeCumulativeDeltaSumToPattern} netPnl
|
||||
* @property {BaseCumulativeToPattern} peakRegret
|
||||
* @property {BaseCumulativeSumToPattern} peakRegret
|
||||
* @property {BpsCentsPercentilesRatioSatsSmaStdUsdPattern} price
|
||||
* @property {BaseCumulativeDistributionSumToValuePattern} profit
|
||||
* @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio
|
||||
@@ -1988,7 +1988,7 @@ function createAverageMaxMedianMinPct10Pct25Pct75Pct90Pattern2(client, acc) {
|
||||
* @property {CentsUsdPattern2} base
|
||||
* @property {SeriesPattern1<Dollars>} capitulationFlow
|
||||
* @property {CentsUsdPattern2} cumulative
|
||||
* @property {SeriesPattern1<Dollars>} negative
|
||||
* @property {BaseSumPattern} negative
|
||||
* @property {_1m1w1y24hPattern4} sum
|
||||
* @property {BpsPercentRatioPattern4} toRcap
|
||||
* @property {BaseCumulativeSumPattern<Cents>} valueCreated
|
||||
@@ -2868,7 +2868,7 @@ function createBaseCumulativeDeltaSumPattern(client, acc) {
|
||||
* @typedef {Object} BaseCumulativeNegativeSumPattern
|
||||
* @property {CentsUsdPattern2} base
|
||||
* @property {CentsUsdPattern2} cumulative
|
||||
* @property {SeriesPattern1<Dollars>} negative
|
||||
* @property {BaseSumPattern} negative
|
||||
* @property {_1m1w1y24hPattern4} sum
|
||||
*/
|
||||
|
||||
@@ -2882,11 +2882,34 @@ function createBaseCumulativeNegativeSumPattern(client, acc) {
|
||||
return {
|
||||
base: createCentsUsdPattern2(client, _m(acc, 'realized_loss')),
|
||||
cumulative: createCentsUsdPattern2(client, _m(acc, 'realized_loss_cumulative')),
|
||||
negative: createSeriesPattern1(client, _m(acc, 'neg_realized_loss')),
|
||||
negative: createBaseSumPattern(client, _m(acc, 'neg_realized_loss')),
|
||||
sum: create_1m1w1y24hPattern4(client, _m(acc, 'realized_loss_sum')),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {Object} BaseCumulativeSumToPattern
|
||||
* @property {CentsUsdPattern2} base
|
||||
* @property {CentsUsdPattern2} cumulative
|
||||
* @property {_1m1w1y24hPattern4} sum
|
||||
* @property {BpsPercentRatioPattern4} toRcap
|
||||
*/
|
||||
|
||||
/**
|
||||
* Create a BaseCumulativeSumToPattern pattern node
|
||||
* @param {BrkClientBase} client
|
||||
* @param {string} acc - Accumulated series name
|
||||
* @returns {BaseCumulativeSumToPattern}
|
||||
*/
|
||||
function createBaseCumulativeSumToPattern(client, acc) {
|
||||
return {
|
||||
base: createCentsUsdPattern2(client, acc),
|
||||
cumulative: createCentsUsdPattern2(client, _m(acc, 'cumulative')),
|
||||
sum: create_1m1w1y24hPattern4(client, _m(acc, 'sum')),
|
||||
toRcap: createBpsPercentRatioPattern4(client, _m(acc, 'to_rcap')),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {Object} BothReactivatedReceivingSendingPattern
|
||||
* @property {_1m1w1y24hBasePattern<StoredU32>} both
|
||||
@@ -3102,27 +3125,6 @@ function createBaseCumulativeSumPattern4(client, acc) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {Object} BaseCumulativeToPattern
|
||||
* @property {SeriesPattern1<Cents>} base
|
||||
* @property {SeriesPattern1<Cents>} cumulative
|
||||
* @property {BpsPercentRatioPattern4} toRcap
|
||||
*/
|
||||
|
||||
/**
|
||||
* Create a BaseCumulativeToPattern pattern node
|
||||
* @param {BrkClientBase} client
|
||||
* @param {string} acc - Accumulated series name
|
||||
* @returns {BaseCumulativeToPattern}
|
||||
*/
|
||||
function createBaseCumulativeToPattern(client, acc) {
|
||||
return {
|
||||
base: createSeriesPattern1(client, acc),
|
||||
cumulative: createSeriesPattern1(client, _m(acc, 'cumulative')),
|
||||
toRcap: createBpsPercentRatioPattern4(client, _m(acc, 'to_rcap')),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {Object} BaseCumulativeSumPattern3
|
||||
* @property {CentsUsdPattern2} base
|
||||
@@ -3617,6 +3619,25 @@ function createAllSthPattern(client, acc) {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {Object} BaseSumPattern
|
||||
* @property {SeriesPattern1<Dollars>} base
|
||||
* @property {_1m1w1y24hPattern<Dollars>} sum
|
||||
*/
|
||||
|
||||
/**
|
||||
* Create a BaseSumPattern pattern node
|
||||
* @param {BrkClientBase} client
|
||||
* @param {string} acc - Accumulated series name
|
||||
* @returns {BaseSumPattern}
|
||||
*/
|
||||
function createBaseSumPattern(client, acc) {
|
||||
return {
|
||||
base: createSeriesPattern1(client, acc),
|
||||
sum: create_1m1w1y24hPattern(client, _m(acc, 'sum')),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {Object} BaseDeltaPattern
|
||||
* @property {SeriesPattern1<StoredU64>} base
|
||||
@@ -5391,7 +5412,7 @@ function createUnspentPattern(client, acc) {
|
||||
* @property {BaseChangeCumulativeDeltaSumToPattern} netPnl
|
||||
* @property {BaseCumulativeSumPattern3} grossPnl
|
||||
* @property {_1m1w1y24hPattern6} sellSideRiskRatio
|
||||
* @property {BaseCumulativeToPattern} peakRegret
|
||||
* @property {BaseCumulativeSumToPattern} peakRegret
|
||||
* @property {PricePattern} investor
|
||||
* @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio
|
||||
*/
|
||||
@@ -5412,7 +5433,7 @@ function createUnspentPattern(client, acc) {
|
||||
* @property {CentsUsdPattern2} base
|
||||
* @property {CentsUsdPattern2} cumulative
|
||||
* @property {_1m1w1y24hPattern4} sum
|
||||
* @property {SeriesPattern1<Dollars>} negative
|
||||
* @property {BaseSumPattern} negative
|
||||
* @property {BpsPercentRatioPattern4} toRcap
|
||||
* @property {BaseCumulativeSumPattern<Cents>} valueCreated
|
||||
* @property {BaseCumulativeSumPattern<Cents>} valueDestroyed
|
||||
@@ -5610,7 +5631,7 @@ function createUnspentPattern(client, acc) {
|
||||
* @property {BaseChangeCumulativeDeltaSumToPattern} netPnl
|
||||
* @property {BaseCumulativeSumPattern3} grossPnl
|
||||
* @property {_1m1w1y24hPattern6} sellSideRiskRatio
|
||||
* @property {BaseCumulativeToPattern} peakRegret
|
||||
* @property {BaseCumulativeSumToPattern} peakRegret
|
||||
* @property {PricePattern} investor
|
||||
* @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio
|
||||
*/
|
||||
@@ -5631,7 +5652,7 @@ function createUnspentPattern(client, acc) {
|
||||
* @property {CentsUsdPattern2} base
|
||||
* @property {CentsUsdPattern2} cumulative
|
||||
* @property {_1m1w1y24hPattern4} sum
|
||||
* @property {SeriesPattern1<Dollars>} negative
|
||||
* @property {BaseSumPattern} negative
|
||||
* @property {BpsPercentRatioPattern4} toRcap
|
||||
* @property {BaseCumulativeSumPattern<Cents>} valueCreated
|
||||
* @property {BaseCumulativeSumPattern<Cents>} valueDestroyed
|
||||
@@ -5805,7 +5826,7 @@ function createUnspentPattern(client, acc) {
|
||||
* @property {BaseChangeCumulativeDeltaSumToPattern} netPnl
|
||||
* @property {BaseCumulativeSumPattern3} grossPnl
|
||||
* @property {_1m1w1y24hPattern6} sellSideRiskRatio
|
||||
* @property {BaseCumulativeToPattern} peakRegret
|
||||
* @property {BaseCumulativeSumToPattern} peakRegret
|
||||
* @property {PricePattern} investor
|
||||
* @property {_1m1w1y24hPattern<StoredF64>} profitToLossRatio
|
||||
*/
|
||||
@@ -5826,7 +5847,7 @@ function createUnspentPattern(client, acc) {
|
||||
* @property {CentsUsdPattern2} base
|
||||
* @property {CentsUsdPattern2} cumulative
|
||||
* @property {_1m1w1y24hPattern4} sum
|
||||
* @property {SeriesPattern1<Dollars>} negative
|
||||
* @property {BaseSumPattern} negative
|
||||
* @property {BpsPercentRatioPattern4} toRcap
|
||||
* @property {BaseCumulativeSumPattern<Cents>} valueCreated
|
||||
* @property {BaseCumulativeSumPattern<Cents>} valueDestroyed
|
||||
@@ -8513,7 +8534,7 @@ class BrkClient extends BrkClientBase {
|
||||
base: createCentsUsdPattern2(this, 'realized_loss'),
|
||||
cumulative: createCentsUsdPattern2(this, 'realized_loss_cumulative'),
|
||||
sum: create_1m1w1y24hPattern4(this, 'realized_loss_sum'),
|
||||
negative: createSeriesPattern1(this, 'neg_realized_loss'),
|
||||
negative: createBaseSumPattern(this, 'neg_realized_loss'),
|
||||
toRcap: createBpsPercentRatioPattern4(this, 'realized_loss_to_rcap'),
|
||||
valueCreated: createBaseCumulativeSumPattern(this, 'loss_value_created'),
|
||||
valueDestroyed: createBaseCumulativeSumPattern(this, 'loss_value_destroyed'),
|
||||
@@ -8612,7 +8633,7 @@ class BrkClient extends BrkClientBase {
|
||||
netPnl: createBaseChangeCumulativeDeltaSumToPattern(this, 'net'),
|
||||
grossPnl: createBaseCumulativeSumPattern3(this, 'realized_gross_pnl'),
|
||||
sellSideRiskRatio: create_1m1w1y24hPattern6(this, 'sell_side_risk_ratio'),
|
||||
peakRegret: createBaseCumulativeToPattern(this, 'realized_peak_regret'),
|
||||
peakRegret: createBaseCumulativeSumToPattern(this, 'realized_peak_regret'),
|
||||
investor: createPricePattern(this, 'investor_price'),
|
||||
profitToLossRatio: create_1m1w1y24hPattern(this, 'realized_profit_to_loss_ratio'),
|
||||
},
|
||||
@@ -8676,7 +8697,7 @@ class BrkClient extends BrkClientBase {
|
||||
base: createCentsUsdPattern2(this, 'sth_realized_loss'),
|
||||
cumulative: createCentsUsdPattern2(this, 'sth_realized_loss_cumulative'),
|
||||
sum: create_1m1w1y24hPattern4(this, 'sth_realized_loss_sum'),
|
||||
negative: createSeriesPattern1(this, 'sth_neg_realized_loss'),
|
||||
negative: createBaseSumPattern(this, 'sth_neg_realized_loss'),
|
||||
toRcap: createBpsPercentRatioPattern4(this, 'sth_realized_loss_to_rcap'),
|
||||
valueCreated: createBaseCumulativeSumPattern(this, 'sth_loss_value_created'),
|
||||
valueDestroyed: createBaseCumulativeSumPattern(this, 'sth_loss_value_destroyed'),
|
||||
@@ -8775,7 +8796,7 @@ class BrkClient extends BrkClientBase {
|
||||
netPnl: createBaseChangeCumulativeDeltaSumToPattern(this, 'sth_net'),
|
||||
grossPnl: createBaseCumulativeSumPattern3(this, 'sth_realized_gross_pnl'),
|
||||
sellSideRiskRatio: create_1m1w1y24hPattern6(this, 'sth_sell_side_risk_ratio'),
|
||||
peakRegret: createBaseCumulativeToPattern(this, 'sth_realized_peak_regret'),
|
||||
peakRegret: createBaseCumulativeSumToPattern(this, 'sth_realized_peak_regret'),
|
||||
investor: createPricePattern(this, 'sth_investor_price'),
|
||||
profitToLossRatio: create_1m1w1y24hPattern(this, 'sth_realized_profit_to_loss_ratio'),
|
||||
},
|
||||
@@ -8824,7 +8845,7 @@ class BrkClient extends BrkClientBase {
|
||||
base: createCentsUsdPattern2(this, 'lth_realized_loss'),
|
||||
cumulative: createCentsUsdPattern2(this, 'lth_realized_loss_cumulative'),
|
||||
sum: create_1m1w1y24hPattern4(this, 'lth_realized_loss_sum'),
|
||||
negative: createSeriesPattern1(this, 'lth_neg_realized_loss'),
|
||||
negative: createBaseSumPattern(this, 'lth_neg_realized_loss'),
|
||||
toRcap: createBpsPercentRatioPattern4(this, 'lth_realized_loss_to_rcap'),
|
||||
valueCreated: createBaseCumulativeSumPattern(this, 'lth_loss_value_created'),
|
||||
valueDestroyed: createBaseCumulativeSumPattern(this, 'lth_loss_value_destroyed'),
|
||||
@@ -8918,7 +8939,7 @@ class BrkClient extends BrkClientBase {
|
||||
netPnl: createBaseChangeCumulativeDeltaSumToPattern(this, 'lth_net'),
|
||||
grossPnl: createBaseCumulativeSumPattern3(this, 'lth_realized_gross_pnl'),
|
||||
sellSideRiskRatio: create_1m1w1y24hPattern6(this, 'lth_sell_side_risk_ratio'),
|
||||
peakRegret: createBaseCumulativeToPattern(this, 'lth_realized_peak_regret'),
|
||||
peakRegret: createBaseCumulativeSumToPattern(this, 'lth_realized_peak_regret'),
|
||||
investor: createPricePattern(this, 'lth_investor_price'),
|
||||
profitToLossRatio: create_1m1w1y24hPattern(this, 'lth_realized_profit_to_loss_ratio'),
|
||||
},
|
||||
|
||||
@@ -2695,9 +2695,19 @@ class BaseCumulativeNegativeSumPattern:
|
||||
"""Create pattern node with accumulated series name."""
|
||||
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'realized_loss'))
|
||||
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'realized_loss_cumulative'))
|
||||
self.negative: SeriesPattern1[Dollars] = SeriesPattern1(client, _m(acc, 'neg_realized_loss'))
|
||||
self.negative: BaseSumPattern = BaseSumPattern(client, _m(acc, 'neg_realized_loss'))
|
||||
self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, _m(acc, 'realized_loss_sum'))
|
||||
|
||||
class BaseCumulativeSumToPattern:
|
||||
"""Pattern struct for repeated tree structure."""
|
||||
|
||||
def __init__(self, client: BrkClientBase, acc: str):
|
||||
"""Create pattern node with accumulated series name."""
|
||||
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, acc)
|
||||
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, _m(acc, 'cumulative'))
|
||||
self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, _m(acc, 'sum'))
|
||||
self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, _m(acc, 'to_rcap'))
|
||||
|
||||
class BothReactivatedReceivingSendingPattern:
|
||||
"""Pattern struct for repeated tree structure."""
|
||||
|
||||
@@ -2791,15 +2801,6 @@ class BaseCumulativeSumPattern4:
|
||||
self.cumulative: BtcCentsSatsUsdPattern = BtcCentsSatsUsdPattern(client, _m(acc, 'cumulative'))
|
||||
self.sum: _1m1w1y24hPattern5 = _1m1w1y24hPattern5(client, _m(acc, 'sum'))
|
||||
|
||||
class BaseCumulativeToPattern:
|
||||
"""Pattern struct for repeated tree structure."""
|
||||
|
||||
def __init__(self, client: BrkClientBase, acc: str):
|
||||
"""Create pattern node with accumulated series name."""
|
||||
self.base: SeriesPattern1[Cents] = SeriesPattern1(client, acc)
|
||||
self.cumulative: SeriesPattern1[Cents] = SeriesPattern1(client, _m(acc, 'cumulative'))
|
||||
self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, _m(acc, 'to_rcap'))
|
||||
|
||||
class BaseCumulativeSumPattern3:
|
||||
"""Pattern struct for repeated tree structure."""
|
||||
|
||||
@@ -3011,6 +3012,14 @@ class AllSthPattern:
|
||||
self.all: SeriesPattern1[Dollars] = SeriesPattern1(client, _m(acc, 'realized_cap'))
|
||||
self.sth: SeriesPattern1[Dollars] = SeriesPattern1(client, _m(acc, 'sth_realized_cap'))
|
||||
|
||||
class BaseSumPattern:
|
||||
"""Pattern struct for repeated tree structure."""
|
||||
|
||||
def __init__(self, client: BrkClientBase, acc: str):
|
||||
"""Create pattern node with accumulated series name."""
|
||||
self.base: SeriesPattern1[Dollars] = SeriesPattern1(client, acc)
|
||||
self.sum: _1m1w1y24hPattern[Dollars] = _1m1w1y24hPattern(client, _m(acc, 'sum'))
|
||||
|
||||
class BaseDeltaPattern:
|
||||
"""Pattern struct for repeated tree structure."""
|
||||
|
||||
@@ -4715,7 +4724,7 @@ class SeriesTree_Cohorts_Utxo_All_Realized_Loss:
|
||||
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, 'realized_loss')
|
||||
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, 'realized_loss_cumulative')
|
||||
self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'realized_loss_sum')
|
||||
self.negative: SeriesPattern1[Dollars] = SeriesPattern1(client, 'neg_realized_loss')
|
||||
self.negative: BaseSumPattern = BaseSumPattern(client, 'neg_realized_loss')
|
||||
self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, 'realized_loss_to_rcap')
|
||||
self.value_created: BaseCumulativeSumPattern[Cents] = BaseCumulativeSumPattern(client, 'loss_value_created')
|
||||
self.value_destroyed: BaseCumulativeSumPattern[Cents] = BaseCumulativeSumPattern(client, 'loss_value_destroyed')
|
||||
@@ -4853,7 +4862,7 @@ class SeriesTree_Cohorts_Utxo_All_Realized:
|
||||
self.net_pnl: BaseChangeCumulativeDeltaSumToPattern = BaseChangeCumulativeDeltaSumToPattern(client, 'net')
|
||||
self.gross_pnl: BaseCumulativeSumPattern3 = BaseCumulativeSumPattern3(client, 'realized_gross_pnl')
|
||||
self.sell_side_risk_ratio: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, 'sell_side_risk_ratio')
|
||||
self.peak_regret: BaseCumulativeToPattern = BaseCumulativeToPattern(client, 'realized_peak_regret')
|
||||
self.peak_regret: BaseCumulativeSumToPattern = BaseCumulativeSumToPattern(client, 'realized_peak_regret')
|
||||
self.investor: PricePattern = PricePattern(client, 'investor_price')
|
||||
self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'realized_profit_to_loss_ratio')
|
||||
|
||||
@@ -4953,7 +4962,7 @@ class SeriesTree_Cohorts_Utxo_Sth_Realized_Loss:
|
||||
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, 'sth_realized_loss')
|
||||
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, 'sth_realized_loss_cumulative')
|
||||
self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'sth_realized_loss_sum')
|
||||
self.negative: SeriesPattern1[Dollars] = SeriesPattern1(client, 'sth_neg_realized_loss')
|
||||
self.negative: BaseSumPattern = BaseSumPattern(client, 'sth_neg_realized_loss')
|
||||
self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, 'sth_realized_loss_to_rcap')
|
||||
self.value_created: BaseCumulativeSumPattern[Cents] = BaseCumulativeSumPattern(client, 'sth_loss_value_created')
|
||||
self.value_destroyed: BaseCumulativeSumPattern[Cents] = BaseCumulativeSumPattern(client, 'sth_loss_value_destroyed')
|
||||
@@ -5091,7 +5100,7 @@ class SeriesTree_Cohorts_Utxo_Sth_Realized:
|
||||
self.net_pnl: BaseChangeCumulativeDeltaSumToPattern = BaseChangeCumulativeDeltaSumToPattern(client, 'sth_net')
|
||||
self.gross_pnl: BaseCumulativeSumPattern3 = BaseCumulativeSumPattern3(client, 'sth_realized_gross_pnl')
|
||||
self.sell_side_risk_ratio: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, 'sth_sell_side_risk_ratio')
|
||||
self.peak_regret: BaseCumulativeToPattern = BaseCumulativeToPattern(client, 'sth_realized_peak_regret')
|
||||
self.peak_regret: BaseCumulativeSumToPattern = BaseCumulativeSumToPattern(client, 'sth_realized_peak_regret')
|
||||
self.investor: PricePattern = PricePattern(client, 'sth_investor_price')
|
||||
self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'sth_realized_profit_to_loss_ratio')
|
||||
|
||||
@@ -5164,7 +5173,7 @@ class SeriesTree_Cohorts_Utxo_Lth_Realized_Loss:
|
||||
self.base: CentsUsdPattern2 = CentsUsdPattern2(client, 'lth_realized_loss')
|
||||
self.cumulative: CentsUsdPattern2 = CentsUsdPattern2(client, 'lth_realized_loss_cumulative')
|
||||
self.sum: _1m1w1y24hPattern4 = _1m1w1y24hPattern4(client, 'lth_realized_loss_sum')
|
||||
self.negative: SeriesPattern1[Dollars] = SeriesPattern1(client, 'lth_neg_realized_loss')
|
||||
self.negative: BaseSumPattern = BaseSumPattern(client, 'lth_neg_realized_loss')
|
||||
self.to_rcap: BpsPercentRatioPattern4 = BpsPercentRatioPattern4(client, 'lth_realized_loss_to_rcap')
|
||||
self.value_created: BaseCumulativeSumPattern[Cents] = BaseCumulativeSumPattern(client, 'lth_loss_value_created')
|
||||
self.value_destroyed: BaseCumulativeSumPattern[Cents] = BaseCumulativeSumPattern(client, 'lth_loss_value_destroyed')
|
||||
@@ -5293,7 +5302,7 @@ class SeriesTree_Cohorts_Utxo_Lth_Realized:
|
||||
self.net_pnl: BaseChangeCumulativeDeltaSumToPattern = BaseChangeCumulativeDeltaSumToPattern(client, 'lth_net')
|
||||
self.gross_pnl: BaseCumulativeSumPattern3 = BaseCumulativeSumPattern3(client, 'lth_realized_gross_pnl')
|
||||
self.sell_side_risk_ratio: _1m1w1y24hPattern6 = _1m1w1y24hPattern6(client, 'lth_sell_side_risk_ratio')
|
||||
self.peak_regret: BaseCumulativeToPattern = BaseCumulativeToPattern(client, 'lth_realized_peak_regret')
|
||||
self.peak_regret: BaseCumulativeSumToPattern = BaseCumulativeSumToPattern(client, 'lth_realized_peak_regret')
|
||||
self.investor: PricePattern = PricePattern(client, 'lth_investor_price')
|
||||
self.profit_to_loss_ratio: _1m1w1y24hPattern[StoredF64] = _1m1w1y24hPattern(client, 'lth_realized_profit_to_loss_ratio')
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -190,6 +190,15 @@ export function dotted(args) {
|
||||
return line(_args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Omit<Parameters<typeof line>[0], 'style'>} args
|
||||
*/
|
||||
export function dashed(args) {
|
||||
const _args = /** @type {Parameters<typeof line>[0]} */ (args);
|
||||
_args.style = 2;
|
||||
return line(_args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Omit<Parameters<typeof line>[0], 'style'>} args
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user