mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-04-24 06:39:58 -07:00
binder: snapshot
This commit is contained in:
@@ -1055,43 +1055,6 @@ impl Ratio1ySdPattern {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct AXbtPattern {
|
||||
pub _1d_dominance: BlockCountPattern<StoredF32>,
|
||||
pub _1m_blocks_mined: Indexes<StoredU32>,
|
||||
pub _1m_dominance: Indexes<StoredF32>,
|
||||
pub _1w_blocks_mined: Indexes<StoredU32>,
|
||||
pub _1w_dominance: Indexes<StoredF32>,
|
||||
pub _1y_blocks_mined: Indexes<StoredU32>,
|
||||
pub _1y_dominance: Indexes<StoredF32>,
|
||||
pub blocks_mined: BlockCountPattern<StoredU32>,
|
||||
pub coinbase: UnclaimedRewardsPattern,
|
||||
pub days_since_block: Indexes<StoredU16>,
|
||||
pub dominance: BlockCountPattern<StoredF32>,
|
||||
pub fee: FeePattern2,
|
||||
pub subsidy: FeePattern2,
|
||||
}
|
||||
|
||||
impl AXbtPattern {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
_1d_dominance: BlockCountPattern::new(client.clone(), &format!("{base_path}/1d_dominance")),
|
||||
_1m_blocks_mined: Indexes::new(client.clone(), &format!("{base_path}/1m_blocks_mined")),
|
||||
_1m_dominance: Indexes::new(client.clone(), &format!("{base_path}/1m_dominance")),
|
||||
_1w_blocks_mined: Indexes::new(client.clone(), &format!("{base_path}/1w_blocks_mined")),
|
||||
_1w_dominance: Indexes::new(client.clone(), &format!("{base_path}/1w_dominance")),
|
||||
_1y_blocks_mined: Indexes::new(client.clone(), &format!("{base_path}/1y_blocks_mined")),
|
||||
_1y_dominance: Indexes::new(client.clone(), &format!("{base_path}/1y_dominance")),
|
||||
blocks_mined: BlockCountPattern::new(client.clone(), &format!("{base_path}/blocks_mined")),
|
||||
coinbase: UnclaimedRewardsPattern::new(client.clone(), &format!("{base_path}/coinbase")),
|
||||
days_since_block: Indexes::new(client.clone(), &format!("{base_path}/days_since_block")),
|
||||
dominance: BlockCountPattern::new(client.clone(), &format!("{base_path}/dominance")),
|
||||
fee: FeePattern2::new(client.clone(), &format!("{base_path}/fee")),
|
||||
subsidy: FeePattern2::new(client.clone(), &format!("{base_path}/subsidy")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct ActivePriceRatioPattern {
|
||||
pub ratio: Indexes<StoredF32>,
|
||||
@@ -1129,6 +1092,43 @@ impl ActivePriceRatioPattern {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct AXbtPattern {
|
||||
pub _1d_dominance: BlockCountPattern<StoredF32>,
|
||||
pub _1m_blocks_mined: Indexes<StoredU32>,
|
||||
pub _1m_dominance: Indexes<StoredF32>,
|
||||
pub _1w_blocks_mined: Indexes<StoredU32>,
|
||||
pub _1w_dominance: Indexes<StoredF32>,
|
||||
pub _1y_blocks_mined: Indexes<StoredU32>,
|
||||
pub _1y_dominance: Indexes<StoredF32>,
|
||||
pub blocks_mined: BlockCountPattern<StoredU32>,
|
||||
pub coinbase: UnclaimedRewardsPattern,
|
||||
pub days_since_block: Indexes<StoredU16>,
|
||||
pub dominance: BlockCountPattern<StoredF32>,
|
||||
pub fee: FeePattern2,
|
||||
pub subsidy: FeePattern2,
|
||||
}
|
||||
|
||||
impl AXbtPattern {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
_1d_dominance: BlockCountPattern::new(client.clone(), &format!("{base_path}/1d_dominance")),
|
||||
_1m_blocks_mined: Indexes::new(client.clone(), &format!("{base_path}/1m_blocks_mined")),
|
||||
_1m_dominance: Indexes::new(client.clone(), &format!("{base_path}/1m_dominance")),
|
||||
_1w_blocks_mined: Indexes::new(client.clone(), &format!("{base_path}/1w_blocks_mined")),
|
||||
_1w_dominance: Indexes::new(client.clone(), &format!("{base_path}/1w_dominance")),
|
||||
_1y_blocks_mined: Indexes::new(client.clone(), &format!("{base_path}/1y_blocks_mined")),
|
||||
_1y_dominance: Indexes::new(client.clone(), &format!("{base_path}/1y_dominance")),
|
||||
blocks_mined: BlockCountPattern::new(client.clone(), &format!("{base_path}/blocks_mined")),
|
||||
coinbase: UnclaimedRewardsPattern::new(client.clone(), &format!("{base_path}/coinbase")),
|
||||
days_since_block: Indexes::new(client.clone(), &format!("{base_path}/days_since_block")),
|
||||
dominance: BlockCountPattern::new(client.clone(), &format!("{base_path}/dominance")),
|
||||
fee: FeePattern2::new(client.clone(), &format!("{base_path}/fee")),
|
||||
subsidy: FeePattern2::new(client.clone(), &format!("{base_path}/subsidy")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct BitcoinPattern<T> {
|
||||
pub average: Indexes4<T>,
|
||||
@@ -1164,60 +1164,31 @@ impl<T: DeserializeOwned> BitcoinPattern<T> {
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct BlockSizePattern<T> {
|
||||
pub average: Indexes4<T>,
|
||||
pub average: Indexes3<T>,
|
||||
pub cumulative: Indexes3<T>,
|
||||
pub max: Indexes4<T>,
|
||||
pub median: Indexes5<T>,
|
||||
pub min: Indexes4<T>,
|
||||
pub pct10: Indexes5<T>,
|
||||
pub pct25: Indexes5<T>,
|
||||
pub pct75: Indexes5<T>,
|
||||
pub pct90: Indexes5<T>,
|
||||
pub sum: Indexes4<T>,
|
||||
pub max: Indexes3<T>,
|
||||
pub median: Indexes2<T>,
|
||||
pub min: Indexes3<T>,
|
||||
pub pct10: Indexes2<T>,
|
||||
pub pct25: Indexes2<T>,
|
||||
pub pct75: Indexes2<T>,
|
||||
pub pct90: Indexes2<T>,
|
||||
pub sum: Indexes3<T>,
|
||||
}
|
||||
|
||||
impl<T: DeserializeOwned> BlockSizePattern<T> {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
average: Indexes4::new(client.clone(), &format!("{base_path}/average")),
|
||||
average: Indexes3::new(client.clone(), &format!("{base_path}/average")),
|
||||
cumulative: Indexes3::new(client.clone(), &format!("{base_path}/cumulative")),
|
||||
max: Indexes4::new(client.clone(), &format!("{base_path}/max")),
|
||||
median: Indexes5::new(client.clone(), &format!("{base_path}/median")),
|
||||
min: Indexes4::new(client.clone(), &format!("{base_path}/min")),
|
||||
pct10: Indexes5::new(client.clone(), &format!("{base_path}/pct10")),
|
||||
pct25: Indexes5::new(client.clone(), &format!("{base_path}/pct25")),
|
||||
pct75: Indexes5::new(client.clone(), &format!("{base_path}/pct75")),
|
||||
pct90: Indexes5::new(client.clone(), &format!("{base_path}/pct90")),
|
||||
sum: Indexes4::new(client.clone(), &format!("{base_path}/sum")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct RelativePattern {
|
||||
pub neg_unrealized_loss_rel_to_market_cap: Indexes27<StoredF32>,
|
||||
pub net_unrealized_pnl_rel_to_market_cap: Indexes26<StoredF32>,
|
||||
pub supply_in_loss_rel_to_circulating_supply: Indexes27<StoredF64>,
|
||||
pub supply_in_loss_rel_to_own_supply: Indexes27<StoredF64>,
|
||||
pub supply_in_profit_rel_to_circulating_supply: Indexes27<StoredF64>,
|
||||
pub supply_in_profit_rel_to_own_supply: Indexes27<StoredF64>,
|
||||
pub supply_rel_to_circulating_supply: Indexes<StoredF64>,
|
||||
pub unrealized_loss_rel_to_market_cap: Indexes27<StoredF32>,
|
||||
pub unrealized_profit_rel_to_market_cap: Indexes27<StoredF32>,
|
||||
}
|
||||
|
||||
impl RelativePattern {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
neg_unrealized_loss_rel_to_market_cap: Indexes27::new(client.clone(), &format!("{base_path}/neg_unrealized_loss_rel_to_market_cap")),
|
||||
net_unrealized_pnl_rel_to_market_cap: Indexes26::new(client.clone(), &format!("{base_path}/net_unrealized_pnl_rel_to_market_cap")),
|
||||
supply_in_loss_rel_to_circulating_supply: Indexes27::new(client.clone(), &format!("{base_path}/supply_in_loss_rel_to_circulating_supply")),
|
||||
supply_in_loss_rel_to_own_supply: Indexes27::new(client.clone(), &format!("{base_path}/supply_in_loss_rel_to_own_supply")),
|
||||
supply_in_profit_rel_to_circulating_supply: Indexes27::new(client.clone(), &format!("{base_path}/supply_in_profit_rel_to_circulating_supply")),
|
||||
supply_in_profit_rel_to_own_supply: Indexes27::new(client.clone(), &format!("{base_path}/supply_in_profit_rel_to_own_supply")),
|
||||
supply_rel_to_circulating_supply: Indexes::new(client.clone(), &format!("{base_path}/supply_rel_to_circulating_supply")),
|
||||
unrealized_loss_rel_to_market_cap: Indexes27::new(client.clone(), &format!("{base_path}/unrealized_loss_rel_to_market_cap")),
|
||||
unrealized_profit_rel_to_market_cap: Indexes27::new(client.clone(), &format!("{base_path}/unrealized_profit_rel_to_market_cap")),
|
||||
max: Indexes3::new(client.clone(), &format!("{base_path}/max")),
|
||||
median: Indexes2::new(client.clone(), &format!("{base_path}/median")),
|
||||
min: Indexes3::new(client.clone(), &format!("{base_path}/min")),
|
||||
pct10: Indexes2::new(client.clone(), &format!("{base_path}/pct10")),
|
||||
pct25: Indexes2::new(client.clone(), &format!("{base_path}/pct25")),
|
||||
pct75: Indexes2::new(client.clone(), &format!("{base_path}/pct75")),
|
||||
pct90: Indexes2::new(client.clone(), &format!("{base_path}/pct90")),
|
||||
sum: Indexes3::new(client.clone(), &format!("{base_path}/sum")),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1251,6 +1222,62 @@ impl UnrealizedPattern {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct RelativePattern {
|
||||
pub neg_unrealized_loss_rel_to_market_cap: Indexes27<StoredF32>,
|
||||
pub net_unrealized_pnl_rel_to_market_cap: Indexes26<StoredF32>,
|
||||
pub supply_in_loss_rel_to_circulating_supply: Indexes27<StoredF64>,
|
||||
pub supply_in_loss_rel_to_own_supply: Indexes27<StoredF64>,
|
||||
pub supply_in_profit_rel_to_circulating_supply: Indexes27<StoredF64>,
|
||||
pub supply_in_profit_rel_to_own_supply: Indexes27<StoredF64>,
|
||||
pub supply_rel_to_circulating_supply: Indexes<StoredF64>,
|
||||
pub unrealized_loss_rel_to_market_cap: Indexes27<StoredF32>,
|
||||
pub unrealized_profit_rel_to_market_cap: Indexes27<StoredF32>,
|
||||
}
|
||||
|
||||
impl RelativePattern {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
neg_unrealized_loss_rel_to_market_cap: Indexes27::new(client.clone(), &format!("{base_path}/neg_unrealized_loss_rel_to_market_cap")),
|
||||
net_unrealized_pnl_rel_to_market_cap: Indexes26::new(client.clone(), &format!("{base_path}/net_unrealized_pnl_rel_to_market_cap")),
|
||||
supply_in_loss_rel_to_circulating_supply: Indexes27::new(client.clone(), &format!("{base_path}/supply_in_loss_rel_to_circulating_supply")),
|
||||
supply_in_loss_rel_to_own_supply: Indexes27::new(client.clone(), &format!("{base_path}/supply_in_loss_rel_to_own_supply")),
|
||||
supply_in_profit_rel_to_circulating_supply: Indexes27::new(client.clone(), &format!("{base_path}/supply_in_profit_rel_to_circulating_supply")),
|
||||
supply_in_profit_rel_to_own_supply: Indexes27::new(client.clone(), &format!("{base_path}/supply_in_profit_rel_to_own_supply")),
|
||||
supply_rel_to_circulating_supply: Indexes::new(client.clone(), &format!("{base_path}/supply_rel_to_circulating_supply")),
|
||||
unrealized_loss_rel_to_market_cap: Indexes27::new(client.clone(), &format!("{base_path}/unrealized_loss_rel_to_market_cap")),
|
||||
unrealized_profit_rel_to_market_cap: Indexes27::new(client.clone(), &format!("{base_path}/unrealized_profit_rel_to_market_cap")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct AddresstypeToHeightToAddrCountPattern<T> {
|
||||
pub p2a: Indexes2<T>,
|
||||
pub p2pk33: Indexes2<T>,
|
||||
pub p2pk65: Indexes2<T>,
|
||||
pub p2pkh: Indexes2<T>,
|
||||
pub p2sh: Indexes2<T>,
|
||||
pub p2tr: Indexes2<T>,
|
||||
pub p2wpkh: Indexes2<T>,
|
||||
pub p2wsh: Indexes2<T>,
|
||||
}
|
||||
|
||||
impl<T: DeserializeOwned> AddresstypeToHeightToAddrCountPattern<T> {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
p2a: Indexes2::new(client.clone(), &format!("{base_path}/p2a")),
|
||||
p2pk33: Indexes2::new(client.clone(), &format!("{base_path}/p2pk33")),
|
||||
p2pk65: Indexes2::new(client.clone(), &format!("{base_path}/p2pk65")),
|
||||
p2pkh: Indexes2::new(client.clone(), &format!("{base_path}/p2pkh")),
|
||||
p2sh: Indexes2::new(client.clone(), &format!("{base_path}/p2sh")),
|
||||
p2tr: Indexes2::new(client.clone(), &format!("{base_path}/p2tr")),
|
||||
p2wpkh: Indexes2::new(client.clone(), &format!("{base_path}/p2wpkh")),
|
||||
p2wsh: Indexes2::new(client.clone(), &format!("{base_path}/p2wsh")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct Constant0Pattern<T> {
|
||||
pub dateindex: Indexes5<T>,
|
||||
@@ -1279,33 +1306,6 @@ impl<T: DeserializeOwned> Constant0Pattern<T> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct AddresstypeToHeightToAddrCountPattern<T> {
|
||||
pub p2a: Indexes16<T>,
|
||||
pub p2pk33: Indexes17<T>,
|
||||
pub p2pk65: Indexes18<T>,
|
||||
pub p2pkh: Indexes19<T>,
|
||||
pub p2sh: Indexes20<T>,
|
||||
pub p2tr: Indexes21<T>,
|
||||
pub p2wpkh: Indexes22<T>,
|
||||
pub p2wsh: Indexes23<T>,
|
||||
}
|
||||
|
||||
impl<T: DeserializeOwned> AddresstypeToHeightToAddrCountPattern<T> {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
p2a: Indexes16::new(client.clone(), &format!("{base_path}/p2a")),
|
||||
p2pk33: Indexes17::new(client.clone(), &format!("{base_path}/p2pk33")),
|
||||
p2pk65: Indexes18::new(client.clone(), &format!("{base_path}/p2pk65")),
|
||||
p2pkh: Indexes19::new(client.clone(), &format!("{base_path}/p2pkh")),
|
||||
p2sh: Indexes20::new(client.clone(), &format!("{base_path}/p2sh")),
|
||||
p2tr: Indexes21::new(client.clone(), &format!("{base_path}/p2tr")),
|
||||
p2wpkh: Indexes22::new(client.clone(), &format!("{base_path}/p2wpkh")),
|
||||
p2wsh: Indexes23::new(client.clone(), &format!("{base_path}/p2wsh")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct BlockIntervalPattern<T> {
|
||||
pub average: Indexes3<T>,
|
||||
@@ -1359,6 +1359,29 @@ impl _0satsPattern {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct _10yTo12yPattern {
|
||||
pub activity: ActivityPattern,
|
||||
pub price_paid: PricePaidPattern2,
|
||||
pub realized: RealizedPattern2,
|
||||
pub relative: RelativePattern2,
|
||||
pub supply: SupplyPattern2,
|
||||
pub unrealized: UnrealizedPattern,
|
||||
}
|
||||
|
||||
impl _10yTo12yPattern {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
activity: ActivityPattern::new(client.clone(), &format!("{base_path}/activity")),
|
||||
price_paid: PricePaidPattern2::new(client.clone(), &format!("{base_path}/price_paid")),
|
||||
realized: RealizedPattern2::new(client.clone(), &format!("{base_path}/realized")),
|
||||
relative: RelativePattern2::new(client.clone(), &format!("{base_path}/relative")),
|
||||
supply: SupplyPattern2::new(client.clone(), &format!("{base_path}/supply")),
|
||||
unrealized: UnrealizedPattern::new(client.clone(), &format!("{base_path}/unrealized")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct UpTo1dPattern {
|
||||
pub activity: ActivityPattern,
|
||||
@@ -1406,24 +1429,22 @@ impl _0satsPattern2 {
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct _10yTo12yPattern {
|
||||
pub activity: ActivityPattern,
|
||||
pub price_paid: PricePaidPattern2,
|
||||
pub realized: RealizedPattern2,
|
||||
pub relative: RelativePattern2,
|
||||
pub supply: SupplyPattern2,
|
||||
pub unrealized: UnrealizedPattern,
|
||||
pub struct SupplyPattern2 {
|
||||
pub supply: SupplyPattern,
|
||||
pub supply_half: ActiveSupplyPattern,
|
||||
pub supply_half_value: ActiveSupplyPattern,
|
||||
pub supply_value: SupplyValuePattern,
|
||||
pub utxo_count: Indexes3<StoredU64>,
|
||||
}
|
||||
|
||||
impl _10yTo12yPattern {
|
||||
impl SupplyPattern2 {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
activity: ActivityPattern::new(client.clone(), &format!("{base_path}/activity")),
|
||||
price_paid: PricePaidPattern2::new(client.clone(), &format!("{base_path}/price_paid")),
|
||||
realized: RealizedPattern2::new(client.clone(), &format!("{base_path}/realized")),
|
||||
relative: RelativePattern2::new(client.clone(), &format!("{base_path}/relative")),
|
||||
supply: SupplyPattern2::new(client.clone(), &format!("{base_path}/supply")),
|
||||
unrealized: UnrealizedPattern::new(client.clone(), &format!("{base_path}/unrealized")),
|
||||
supply: SupplyPattern::new(client.clone(), &format!("{base_path}/supply")),
|
||||
supply_half: ActiveSupplyPattern::new(client.clone(), &format!("{base_path}/supply_half")),
|
||||
supply_half_value: ActiveSupplyPattern::new(client.clone(), &format!("{base_path}/supply_half_value")),
|
||||
supply_value: SupplyValuePattern::new(client.clone(), &format!("{base_path}/supply_value")),
|
||||
utxo_count: Indexes3::new(client.clone(), &format!("{base_path}/utxo_count")),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1449,27 +1470,6 @@ impl ActivityPattern {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct SupplyPattern2 {
|
||||
pub supply: SupplyPattern,
|
||||
pub supply_half: ActiveSupplyPattern,
|
||||
pub supply_half_value: ActiveSupplyPattern,
|
||||
pub supply_value: SupplyValuePattern,
|
||||
pub utxo_count: Indexes3<StoredU64>,
|
||||
}
|
||||
|
||||
impl SupplyPattern2 {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
supply: SupplyPattern::new(client.clone(), &format!("{base_path}/supply")),
|
||||
supply_half: ActiveSupplyPattern::new(client.clone(), &format!("{base_path}/supply_half")),
|
||||
supply_half_value: ActiveSupplyPattern::new(client.clone(), &format!("{base_path}/supply_half_value")),
|
||||
supply_value: SupplyValuePattern::new(client.clone(), &format!("{base_path}/supply_value")),
|
||||
utxo_count: Indexes3::new(client.clone(), &format!("{base_path}/utxo_count")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct FeePattern2 {
|
||||
pub base: Indexes2<Sats>,
|
||||
@@ -1526,18 +1526,18 @@ impl UnclaimedRewardsPattern {
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct PricePaidPattern2 {
|
||||
pub max_price_paid: Indexes3<Dollars>,
|
||||
pub min_price_paid: Indexes3<Dollars>,
|
||||
pub price_percentiles: PricePercentilesPattern,
|
||||
pub struct ActiveSupplyPattern {
|
||||
pub bitcoin: Indexes3<Bitcoin>,
|
||||
pub dollars: Indexes3<Dollars>,
|
||||
pub sats: Indexes3<Sats>,
|
||||
}
|
||||
|
||||
impl PricePaidPattern2 {
|
||||
impl ActiveSupplyPattern {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
max_price_paid: Indexes3::new(client.clone(), &format!("{base_path}/max_price_paid")),
|
||||
min_price_paid: Indexes3::new(client.clone(), &format!("{base_path}/min_price_paid")),
|
||||
price_percentiles: PricePercentilesPattern::new(client.clone(), &format!("{base_path}/price_percentiles")),
|
||||
bitcoin: Indexes3::new(client.clone(), &format!("{base_path}/bitcoin")),
|
||||
dollars: Indexes3::new(client.clone(), &format!("{base_path}/dollars")),
|
||||
sats: Indexes3::new(client.clone(), &format!("{base_path}/sats")),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1560,18 +1560,18 @@ impl CoinbasePattern {
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct ActiveSupplyPattern {
|
||||
pub bitcoin: Indexes3<Bitcoin>,
|
||||
pub dollars: Indexes3<Dollars>,
|
||||
pub sats: Indexes3<Sats>,
|
||||
pub struct PricePaidPattern2 {
|
||||
pub max_price_paid: Indexes3<Dollars>,
|
||||
pub min_price_paid: Indexes3<Dollars>,
|
||||
pub price_percentiles: PricePercentilesPattern,
|
||||
}
|
||||
|
||||
impl ActiveSupplyPattern {
|
||||
impl PricePaidPattern2 {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
bitcoin: Indexes3::new(client.clone(), &format!("{base_path}/bitcoin")),
|
||||
dollars: Indexes3::new(client.clone(), &format!("{base_path}/dollars")),
|
||||
sats: Indexes3::new(client.clone(), &format!("{base_path}/sats")),
|
||||
max_price_paid: Indexes3::new(client.clone(), &format!("{base_path}/max_price_paid")),
|
||||
min_price_paid: Indexes3::new(client.clone(), &format!("{base_path}/min_price_paid")),
|
||||
price_percentiles: PricePercentilesPattern::new(client.clone(), &format!("{base_path}/price_percentiles")),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1593,6 +1593,21 @@ impl<T: DeserializeOwned> BlockCountPattern<T> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct SupplyValuePattern {
|
||||
pub bitcoin: Indexes2<Bitcoin>,
|
||||
pub dollars: Indexes2<Dollars>,
|
||||
}
|
||||
|
||||
impl SupplyValuePattern {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
bitcoin: Indexes2::new(client.clone(), &format!("{base_path}/bitcoin")),
|
||||
dollars: Indexes2::new(client.clone(), &format!("{base_path}/dollars")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct PricePaidPattern {
|
||||
pub max_price_paid: Indexes3<Dollars>,
|
||||
@@ -1624,21 +1639,6 @@ impl _1dReturns1mSdPattern {
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct SupplyValuePattern {
|
||||
pub bitcoin: Indexes2<Bitcoin>,
|
||||
pub dollars: Indexes2<Dollars>,
|
||||
}
|
||||
|
||||
impl SupplyValuePattern {
|
||||
pub fn new(client: Arc<BrkClientBase>, base_path: &str) -> Self {
|
||||
Self {
|
||||
bitcoin: Indexes2::new(client.clone(), &format!("{base_path}/bitcoin")),
|
||||
dollars: Indexes2::new(client.clone(), &format!("{base_path}/dollars")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Pattern struct for repeated tree structure.
|
||||
pub struct SatsPattern {
|
||||
pub cumulative: Indexes3<Sats>,
|
||||
|
||||
Reference in New Issue
Block a user