diff --git a/crates/brk_client/src/lib.rs b/crates/brk_client/src/lib.rs index 5447b7ff6..3da8fa6de 100644 --- a/crates/brk_client/src/lib.rs +++ b/crates/brk_client/src/lib.rs @@ -8,12 +8,13 @@ #![allow(clippy::useless_format)] #![allow(clippy::unnecessary_to_owned)] -pub use brk_cohort::*; -pub use brk_types::*; -use serde::de::DeserializeOwned; -use std::ops::{Bound, RangeBounds}; use std::str::FromStr; use std::sync::Arc; +use std::ops::{Bound, RangeBounds}; +use serde::de::DeserializeOwned; +pub use brk_cohort::*; +pub use brk_types::*; + /// Error type for BRK client operations. #[derive(Debug)] @@ -49,19 +50,13 @@ pub struct AddressHashPrefix { /// Compute the RapidHash v3 hash-prefix used by `/api/address/hash-prefix/{addr_type}/{prefix}`. pub fn address_payload_hash_prefix(payload: &[u8], nibbles: usize) -> Result { if payload.is_empty() { - return Err(BrkError { - message: "Expected a non-empty address payload".to_string(), - }); + return Err(BrkError { message: "Expected a non-empty address payload".to_string() }); } if payload.len() > 65 { - return Err(BrkError { - message: "Expected at most 65 address payload bytes".to_string(), - }); + return Err(BrkError { message: "Expected at most 65 address payload bytes".to_string() }); } if !(1..=16).contains(&nibbles) { - return Err(BrkError { - message: "Expected hash-prefix length from 1 to 16 hex nibbles".to_string(), - }); + return Err(BrkError { message: "Expected hash-prefix length from 1 to 16 hex nibbles".to_string() }); } Ok(format!("{:016x}", rapidhash::v3::rapidhash_v3(payload))[..nibbles].to_string()) } @@ -74,12 +69,8 @@ fn validate_address_payload_for_type(addr_type: OutputType, payload: &[u8]) -> R OutputType::P2PKH | OutputType::P2SH | OutputType::P2WPKH => &[20], OutputType::P2WSH | OutputType::P2TR => &[32], OutputType::P2MS | OutputType::OpReturn | OutputType::Empty | OutputType::Unknown => { - return Err(BrkError { - message: format!( - "Unsupported address type for address payload hash-prefix: {addr_type:?}" - ), - }); - } + return Err(BrkError { message: format!("Unsupported address type for address payload hash-prefix: {addr_type:?}") }); + }, }; if !expected.contains(&payload.len()) { @@ -88,9 +79,7 @@ fn validate_address_payload_for_type(addr_type: OutputType, payload: &[u8]) -> R .map(ToString::to_string) .collect::>() .join(" or "); - return Err(BrkError { - message: format!("Expected {addr_type} address payload length {joined} bytes"), - }); + return Err(BrkError { message: format!("Expected {addr_type} address payload length {joined} bytes") }); } Ok(()) @@ -112,13 +101,9 @@ mod address_payload_tests { /// Decode a mainnet Bitcoin address into the BRK address type and raw payload bytes. pub fn decode_address_payload(address: &str) -> Result { if address.is_empty() { - return Err(BrkError { - message: "Expected an address string".to_string(), - }); + return Err(BrkError { message: "Expected an address string".to_string() }); } - let addr_bytes = AddrBytes::from_str(address).map_err(|e| BrkError { - message: e.to_string(), - })?; + let addr_bytes = AddrBytes::from_str(address).map_err(|e| BrkError { message: e.to_string() })?; let addr_type = OutputType::from(&addr_bytes); Ok(AddressPayload { @@ -162,10 +147,7 @@ pub struct BrkClientBase { impl BrkClientBase { /// Create a new client with the given base URL. pub fn new(base_url: impl Into) -> Self { - Self::with_options(BrkClientOptions { - base_url: base_url.into(), - ..Default::default() - }) + Self::with_options(BrkClientOptions { base_url: base_url.into(), ..Default::default() }) } /// Create a new client with options. @@ -186,93 +168,68 @@ impl BrkClientBase { /// Make a GET request and deserialize JSON response. pub fn get_json(&self, path: &str) -> Result { - self.agent - .get(&self.url(path)) + self.agent.get(&self.url(path)) .call() .and_then(|mut r| r.body_mut().read_json()) - .map_err(|e| BrkError { - message: e.to_string(), - }) + .map_err(|e| BrkError { message: e.to_string() }) } /// Make a GET request and return raw text response. pub fn get_text(&self, path: &str) -> Result { - self.agent - .get(&self.url(path)) + self.agent.get(&self.url(path)) .call() .and_then(|mut r| r.body_mut().read_to_string()) - .map_err(|e| BrkError { - message: e.to_string(), - }) + .map_err(|e| BrkError { message: e.to_string() }) } /// Make a GET request and return raw bytes response. pub fn get_bytes(&self, path: &str) -> Result> { - self.agent - .get(&self.url(path)) + self.agent.get(&self.url(path)) .call() .and_then(|mut r| r.body_mut().read_to_vec()) - .map_err(|e| BrkError { - message: e.to_string(), - }) + .map_err(|e| BrkError { message: e.to_string() }) } /// Make a POST request and deserialize JSON response. pub fn post_json(&self, path: &str, body: &str) -> Result { - self.agent - .post(&self.url(path)) + self.agent.post(&self.url(path)) .send(body) .and_then(|mut r| r.body_mut().read_json()) - .map_err(|e| BrkError { - message: e.to_string(), - }) + .map_err(|e| BrkError { message: e.to_string() }) } /// Make a POST request and return raw text response. pub fn post_text(&self, path: &str, body: &str) -> Result { - self.agent - .post(&self.url(path)) + self.agent.post(&self.url(path)) .send(body) .and_then(|mut r| r.body_mut().read_to_string()) - .map_err(|e| BrkError { - message: e.to_string(), - }) + .map_err(|e| BrkError { message: e.to_string() }) } /// Make a POST request and return raw bytes response. pub fn post_bytes(&self, path: &str, body: &str) -> Result> { - self.agent - .post(&self.url(path)) + self.agent.post(&self.url(path)) .send(body) .and_then(|mut r| r.body_mut().read_to_vec()) - .map_err(|e| BrkError { - message: e.to_string(), - }) + .map_err(|e| BrkError { message: e.to_string() }) } } /// Build series name with suffix. #[inline] fn _m(acc: &str, s: &str) -> String { - if s.is_empty() { - acc.to_string() - } else if acc.is_empty() { - s.to_string() - } else { - format!("{acc}_{s}") - } + if s.is_empty() { acc.to_string() } + else if acc.is_empty() { s.to_string() } + else { format!("{acc}_{s}") } } /// Build series name with prefix. #[inline] fn _p(prefix: &str, acc: &str) -> String { - if acc.is_empty() { - prefix.to_string() - } else { - format!("{prefix}_{acc}") - } + if acc.is_empty() { prefix.to_string() } else { format!("{prefix}_{acc}") } } + /// Non-generic trait for series patterns (usable in collections). pub trait AnySeriesPattern { /// Get the series name. @@ -288,6 +245,7 @@ pub trait SeriesPattern: AnySeriesPattern { fn get(&self, index: Index) -> Option>; } + /// Shared endpoint configuration. #[derive(Clone)] struct EndpointConfig { @@ -300,13 +258,7 @@ struct EndpointConfig { impl EndpointConfig { fn new(client: Arc, name: Arc, index: Index) -> Self { - Self { - client, - name, - index, - start: None, - end: None, - } + Self { client, name, index, start: None, end: None } } fn path(&self) -> String { @@ -315,21 +267,11 @@ impl EndpointConfig { fn build_path(&self, format: Option<&str>) -> String { let mut params = Vec::new(); - if let Some(s) = self.start { - params.push(format!("start={}", s)); - } - if let Some(e) = self.end { - params.push(format!("end={}", e)); - } - if let Some(fmt) = format { - params.push(format!("format={}", fmt)); - } + if let Some(s) = self.start { params.push(format!("start={}", s)); } + if let Some(e) = self.end { params.push(format!("end={}", e)); } + if let Some(fmt) = format { params.push(format!("format={}", fmt)); } let p = self.path(); - if params.is_empty() { - p - } else { - format!("{}?{}", p, params.join("&")) - } + if params.is_empty() { p } else { format!("{}?{}", p, params.join("&")) } } fn get_json(&self, format: Option<&str>) -> Result { @@ -341,19 +283,11 @@ impl EndpointConfig { } fn get_len(&self) -> Result { - self.client.get_json(&format!( - "/api/series/{}/{}/len", - self.name, - self.index.name() - )) + self.client.get_json(&format!("/api/series/{}/{}/len", self.name, self.index.name())) } fn get_version(&self) -> Result { - self.client.get_json(&format!( - "/api/series/{}/{}/version", - self.name, - self.index.name() - )) + self.client.get_json(&format!("/api/series/{}/{}/version", self.name, self.index.name())) } } @@ -385,20 +319,14 @@ pub type DateSeriesEndpoint = SeriesEndpoint>; impl SeriesEndpoint { pub fn new(client: Arc, name: Arc, index: Index) -> Self { - Self { - config: EndpointConfig::new(client, name, index), - _marker: std::marker::PhantomData, - } + Self { config: EndpointConfig::new(client, name, index), _marker: std::marker::PhantomData } } /// Select a specific index position. pub fn get(mut self, index: usize) -> SingleItemBuilder { self.config.start = Some(index as i64); self.config.end = Some(index as i64 + 1); - SingleItemBuilder { - config: self.config, - _marker: std::marker::PhantomData, - } + SingleItemBuilder { config: self.config, _marker: std::marker::PhantomData } } /// Select a range using Rust range syntax. @@ -420,10 +348,7 @@ impl SeriesEndpoint { Bound::Excluded(&n) => Some(n as i64), Bound::Unbounded => None, }; - RangeBuilder { - config: self.config, - _marker: std::marker::PhantomData, - } + RangeBuilder { config: self.config, _marker: std::marker::PhantomData } } /// Take the first n items. @@ -438,19 +363,13 @@ impl SeriesEndpoint { } else { self.config.start = Some(-(n as i64)); } - RangeBuilder { - config: self.config, - _marker: std::marker::PhantomData, - } + RangeBuilder { config: self.config, _marker: std::marker::PhantomData } } /// Skip the first n items. Chain with `take(n)` to get a range. pub fn skip(mut self, n: usize) -> SkippedBuilder { self.config.start = Some(n as i64); - SkippedBuilder { - config: self.config, - _marker: std::marker::PhantomData, - } + SkippedBuilder { config: self.config, _marker: std::marker::PhantomData } } /// Fetch all data as parsed JSON. @@ -502,11 +421,7 @@ impl SeriesEndpoint> { } /// Select a timestamp range (works for all date-based indexes including sub-daily). - pub fn timestamp_range( - self, - start: Timestamp, - end: Timestamp, - ) -> RangeBuilder> { + pub fn timestamp_range(self, start: Timestamp, end: Timestamp) -> RangeBuilder> { let s = self.config.index.timestamp_to_index(start).unwrap_or(0); let e = self.config.index.timestamp_to_index(end).unwrap_or(0); self.range(s..e) @@ -548,10 +463,7 @@ impl SkippedBuilder { pub fn take(mut self, n: usize) -> RangeBuilder { let start = self.config.start.unwrap_or(0); self.config.end = Some(start + n as i64); - RangeBuilder { - config: self.config, - _marker: std::marker::PhantomData, - } + RangeBuilder { config: self.config, _marker: std::marker::PhantomData } } /// Fetch from the skipped position to the end. @@ -586,42 +498,10 @@ impl RangeBuilder { } } + // Static index arrays -const _I1: &[Index] = &[ - Index::Minute10, - Index::Minute30, - Index::Hour1, - Index::Hour4, - Index::Hour12, - Index::Day1, - Index::Day3, - Index::Week1, - Index::Month1, - Index::Month3, - Index::Month6, - Index::Year1, - Index::Year10, - Index::Halving, - Index::Epoch, - Index::Height, -]; -const _I2: &[Index] = &[ - Index::Minute10, - Index::Minute30, - Index::Hour1, - Index::Hour4, - Index::Hour12, - Index::Day1, - Index::Day3, - Index::Week1, - Index::Month1, - Index::Month3, - Index::Month6, - Index::Year1, - Index::Year10, - Index::Halving, - Index::Epoch, -]; +const _I1: &[Index] = &[Index::Minute10, Index::Minute30, Index::Hour1, Index::Hour4, Index::Hour12, Index::Day1, Index::Day3, Index::Week1, Index::Month1, Index::Month3, Index::Month6, Index::Year1, Index::Year10, Index::Halving, Index::Epoch, Index::Height]; +const _I2: &[Index] = &[Index::Minute10, Index::Minute30, Index::Hour1, Index::Hour4, Index::Hour12, Index::Day1, Index::Day3, Index::Week1, Index::Month1, Index::Month3, Index::Month6, Index::Year1, Index::Year10, Index::Halving, Index::Epoch]; const _I3: &[Index] = &[Index::Minute10]; const _I4: &[Index] = &[Index::Minute30]; const _I5: &[Index] = &[Index::Hour1]; @@ -662,1747 +542,530 @@ fn _ep(c: &Arc, n: &Arc, i: Index) -> S } #[inline] -fn _dep( - c: &Arc, - n: &Arc, - i: Index, -) -> DateSeriesEndpoint { +fn _dep(c: &Arc, n: &Arc, i: Index) -> DateSeriesEndpoint { DateSeriesEndpoint::new(c.clone(), n.clone(), i) } // Index accessor structs -pub struct SeriesPattern1By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern1By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern1By { - pub fn minute10(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Minute10) - } - pub fn minute30(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Minute30) - } - pub fn hour1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Hour1) - } - pub fn hour4(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Hour4) - } - pub fn hour12(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Hour12) - } - pub fn day1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Day1) - } - pub fn day3(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Day3) - } - pub fn week1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Week1) - } - pub fn month1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Month1) - } - pub fn month3(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Month3) - } - pub fn month6(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Month6) - } - pub fn year1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Year1) - } - pub fn year10(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Year10) - } - pub fn halving(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::Halving) - } - pub fn epoch(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::Epoch) - } - pub fn height(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::Height) - } + pub fn minute10(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Minute10) } + pub fn minute30(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Minute30) } + pub fn hour1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Hour1) } + pub fn hour4(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Hour4) } + pub fn hour12(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Hour12) } + pub fn day1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Day1) } + pub fn day3(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Day3) } + pub fn week1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Week1) } + pub fn month1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Month1) } + pub fn month3(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Month3) } + pub fn month6(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Month6) } + pub fn year1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Year1) } + pub fn year10(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Year10) } + pub fn halving(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::Halving) } + pub fn epoch(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::Epoch) } + pub fn height(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::Height) } } -pub struct SeriesPattern1 { - name: Arc, - pub by: SeriesPattern1By, -} +pub struct SeriesPattern1 { name: Arc, pub by: SeriesPattern1By } impl SeriesPattern1 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern1By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern1By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern1 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I1 - } -} -impl SeriesPattern for SeriesPattern1 { - fn get(&self, index: Index) -> Option> { - _I1.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern1 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I1 } } +impl SeriesPattern for SeriesPattern1 { fn get(&self, index: Index) -> Option> { _I1.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern2By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern2By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern2By { - pub fn minute10(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Minute10) - } - pub fn minute30(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Minute30) - } - pub fn hour1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Hour1) - } - pub fn hour4(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Hour4) - } - pub fn hour12(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Hour12) - } - pub fn day1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Day1) - } - pub fn day3(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Day3) - } - pub fn week1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Week1) - } - pub fn month1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Month1) - } - pub fn month3(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Month3) - } - pub fn month6(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Month6) - } - pub fn year1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Year1) - } - pub fn year10(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Year10) - } - pub fn halving(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::Halving) - } - pub fn epoch(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::Epoch) - } + pub fn minute10(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Minute10) } + pub fn minute30(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Minute30) } + pub fn hour1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Hour1) } + pub fn hour4(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Hour4) } + pub fn hour12(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Hour12) } + pub fn day1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Day1) } + pub fn day3(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Day3) } + pub fn week1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Week1) } + pub fn month1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Month1) } + pub fn month3(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Month3) } + pub fn month6(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Month6) } + pub fn year1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Year1) } + pub fn year10(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Year10) } + pub fn halving(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::Halving) } + pub fn epoch(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::Epoch) } } -pub struct SeriesPattern2 { - name: Arc, - pub by: SeriesPattern2By, -} +pub struct SeriesPattern2 { name: Arc, pub by: SeriesPattern2By } impl SeriesPattern2 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern2By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern2By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern2 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I2 - } -} -impl SeriesPattern for SeriesPattern2 { - fn get(&self, index: Index) -> Option> { - _I2.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern2 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I2 } } +impl SeriesPattern for SeriesPattern2 { fn get(&self, index: Index) -> Option> { _I2.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern3By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern3By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern3By { - pub fn minute10(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Minute10) - } + pub fn minute10(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Minute10) } } -pub struct SeriesPattern3 { - name: Arc, - pub by: SeriesPattern3By, -} +pub struct SeriesPattern3 { name: Arc, pub by: SeriesPattern3By } impl SeriesPattern3 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern3By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern3By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern3 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I3 - } -} -impl SeriesPattern for SeriesPattern3 { - fn get(&self, index: Index) -> Option> { - _I3.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern3 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I3 } } +impl SeriesPattern for SeriesPattern3 { fn get(&self, index: Index) -> Option> { _I3.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern4By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern4By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern4By { - pub fn minute30(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Minute30) - } + pub fn minute30(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Minute30) } } -pub struct SeriesPattern4 { - name: Arc, - pub by: SeriesPattern4By, -} +pub struct SeriesPattern4 { name: Arc, pub by: SeriesPattern4By } impl SeriesPattern4 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern4By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern4By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern4 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I4 - } -} -impl SeriesPattern for SeriesPattern4 { - fn get(&self, index: Index) -> Option> { - _I4.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern4 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I4 } } +impl SeriesPattern for SeriesPattern4 { fn get(&self, index: Index) -> Option> { _I4.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern5By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern5By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern5By { - pub fn hour1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Hour1) - } + pub fn hour1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Hour1) } } -pub struct SeriesPattern5 { - name: Arc, - pub by: SeriesPattern5By, -} +pub struct SeriesPattern5 { name: Arc, pub by: SeriesPattern5By } impl SeriesPattern5 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern5By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern5By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern5 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I5 - } -} -impl SeriesPattern for SeriesPattern5 { - fn get(&self, index: Index) -> Option> { - _I5.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern5 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I5 } } +impl SeriesPattern for SeriesPattern5 { fn get(&self, index: Index) -> Option> { _I5.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern6By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern6By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern6By { - pub fn hour4(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Hour4) - } + pub fn hour4(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Hour4) } } -pub struct SeriesPattern6 { - name: Arc, - pub by: SeriesPattern6By, -} +pub struct SeriesPattern6 { name: Arc, pub by: SeriesPattern6By } impl SeriesPattern6 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern6By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern6By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern6 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I6 - } -} -impl SeriesPattern for SeriesPattern6 { - fn get(&self, index: Index) -> Option> { - _I6.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern6 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I6 } } +impl SeriesPattern for SeriesPattern6 { fn get(&self, index: Index) -> Option> { _I6.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern7By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern7By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern7By { - pub fn hour12(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Hour12) - } + pub fn hour12(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Hour12) } } -pub struct SeriesPattern7 { - name: Arc, - pub by: SeriesPattern7By, -} +pub struct SeriesPattern7 { name: Arc, pub by: SeriesPattern7By } impl SeriesPattern7 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern7By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern7By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern7 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I7 - } -} -impl SeriesPattern for SeriesPattern7 { - fn get(&self, index: Index) -> Option> { - _I7.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern7 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I7 } } +impl SeriesPattern for SeriesPattern7 { fn get(&self, index: Index) -> Option> { _I7.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern8By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern8By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern8By { - pub fn day1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Day1) - } + pub fn day1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Day1) } } -pub struct SeriesPattern8 { - name: Arc, - pub by: SeriesPattern8By, -} +pub struct SeriesPattern8 { name: Arc, pub by: SeriesPattern8By } impl SeriesPattern8 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern8By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern8By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern8 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I8 - } -} -impl SeriesPattern for SeriesPattern8 { - fn get(&self, index: Index) -> Option> { - _I8.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern8 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I8 } } +impl SeriesPattern for SeriesPattern8 { fn get(&self, index: Index) -> Option> { _I8.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern9By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern9By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern9By { - pub fn day3(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Day3) - } + pub fn day3(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Day3) } } -pub struct SeriesPattern9 { - name: Arc, - pub by: SeriesPattern9By, -} +pub struct SeriesPattern9 { name: Arc, pub by: SeriesPattern9By } impl SeriesPattern9 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern9By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern9By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern9 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I9 - } -} -impl SeriesPattern for SeriesPattern9 { - fn get(&self, index: Index) -> Option> { - _I9.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern9 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I9 } } +impl SeriesPattern for SeriesPattern9 { fn get(&self, index: Index) -> Option> { _I9.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern10By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern10By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern10By { - pub fn week1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Week1) - } + pub fn week1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Week1) } } -pub struct SeriesPattern10 { - name: Arc, - pub by: SeriesPattern10By, -} +pub struct SeriesPattern10 { name: Arc, pub by: SeriesPattern10By } impl SeriesPattern10 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern10By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern10By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern10 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I10 - } -} -impl SeriesPattern for SeriesPattern10 { - fn get(&self, index: Index) -> Option> { - _I10.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern10 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I10 } } +impl SeriesPattern for SeriesPattern10 { fn get(&self, index: Index) -> Option> { _I10.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern11By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern11By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern11By { - pub fn month1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Month1) - } + pub fn month1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Month1) } } -pub struct SeriesPattern11 { - name: Arc, - pub by: SeriesPattern11By, -} +pub struct SeriesPattern11 { name: Arc, pub by: SeriesPattern11By } impl SeriesPattern11 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern11By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern11By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern11 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I11 - } -} -impl SeriesPattern for SeriesPattern11 { - fn get(&self, index: Index) -> Option> { - _I11.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern11 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I11 } } +impl SeriesPattern for SeriesPattern11 { fn get(&self, index: Index) -> Option> { _I11.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern12By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern12By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern12By { - pub fn month3(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Month3) - } + pub fn month3(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Month3) } } -pub struct SeriesPattern12 { - name: Arc, - pub by: SeriesPattern12By, -} +pub struct SeriesPattern12 { name: Arc, pub by: SeriesPattern12By } impl SeriesPattern12 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern12By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern12By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern12 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I12 - } -} -impl SeriesPattern for SeriesPattern12 { - fn get(&self, index: Index) -> Option> { - _I12.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern12 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I12 } } +impl SeriesPattern for SeriesPattern12 { fn get(&self, index: Index) -> Option> { _I12.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern13By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern13By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern13By { - pub fn month6(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Month6) - } + pub fn month6(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Month6) } } -pub struct SeriesPattern13 { - name: Arc, - pub by: SeriesPattern13By, -} +pub struct SeriesPattern13 { name: Arc, pub by: SeriesPattern13By } impl SeriesPattern13 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern13By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern13By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern13 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I13 - } -} -impl SeriesPattern for SeriesPattern13 { - fn get(&self, index: Index) -> Option> { - _I13.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern13 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I13 } } +impl SeriesPattern for SeriesPattern13 { fn get(&self, index: Index) -> Option> { _I13.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern14By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern14By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern14By { - pub fn year1(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Year1) - } + pub fn year1(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Year1) } } -pub struct SeriesPattern14 { - name: Arc, - pub by: SeriesPattern14By, -} +pub struct SeriesPattern14 { name: Arc, pub by: SeriesPattern14By } impl SeriesPattern14 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern14By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern14By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern14 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I14 - } -} -impl SeriesPattern for SeriesPattern14 { - fn get(&self, index: Index) -> Option> { - _I14.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern14 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I14 } } +impl SeriesPattern for SeriesPattern14 { fn get(&self, index: Index) -> Option> { _I14.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern15By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern15By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern15By { - pub fn year10(&self) -> DateSeriesEndpoint { - _dep(&self.client, &self.name, Index::Year10) - } + pub fn year10(&self) -> DateSeriesEndpoint { _dep(&self.client, &self.name, Index::Year10) } } -pub struct SeriesPattern15 { - name: Arc, - pub by: SeriesPattern15By, -} +pub struct SeriesPattern15 { name: Arc, pub by: SeriesPattern15By } impl SeriesPattern15 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern15By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern15By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern15 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I15 - } -} -impl SeriesPattern for SeriesPattern15 { - fn get(&self, index: Index) -> Option> { - _I15.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern15 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I15 } } +impl SeriesPattern for SeriesPattern15 { fn get(&self, index: Index) -> Option> { _I15.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern16By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern16By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern16By { - pub fn halving(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::Halving) - } + pub fn halving(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::Halving) } } -pub struct SeriesPattern16 { - name: Arc, - pub by: SeriesPattern16By, -} +pub struct SeriesPattern16 { name: Arc, pub by: SeriesPattern16By } impl SeriesPattern16 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern16By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern16By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern16 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I16 - } -} -impl SeriesPattern for SeriesPattern16 { - fn get(&self, index: Index) -> Option> { - _I16.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern16 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I16 } } +impl SeriesPattern for SeriesPattern16 { fn get(&self, index: Index) -> Option> { _I16.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern17By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern17By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern17By { - pub fn epoch(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::Epoch) - } + pub fn epoch(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::Epoch) } } -pub struct SeriesPattern17 { - name: Arc, - pub by: SeriesPattern17By, -} +pub struct SeriesPattern17 { name: Arc, pub by: SeriesPattern17By } impl SeriesPattern17 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern17By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern17By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern17 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I17 - } -} -impl SeriesPattern for SeriesPattern17 { - fn get(&self, index: Index) -> Option> { - _I17.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern17 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I17 } } +impl SeriesPattern for SeriesPattern17 { fn get(&self, index: Index) -> Option> { _I17.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern18By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern18By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern18By { - pub fn height(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::Height) - } + pub fn height(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::Height) } } -pub struct SeriesPattern18 { - name: Arc, - pub by: SeriesPattern18By, -} +pub struct SeriesPattern18 { name: Arc, pub by: SeriesPattern18By } impl SeriesPattern18 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern18By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern18By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern18 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I18 - } -} -impl SeriesPattern for SeriesPattern18 { - fn get(&self, index: Index) -> Option> { - _I18.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern18 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I18 } } +impl SeriesPattern for SeriesPattern18 { fn get(&self, index: Index) -> Option> { _I18.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern19By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern19By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern19By { - pub fn tx_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::TxIndex) - } + pub fn tx_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::TxIndex) } } -pub struct SeriesPattern19 { - name: Arc, - pub by: SeriesPattern19By, -} +pub struct SeriesPattern19 { name: Arc, pub by: SeriesPattern19By } impl SeriesPattern19 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern19By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern19By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern19 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I19 - } -} -impl SeriesPattern for SeriesPattern19 { - fn get(&self, index: Index) -> Option> { - _I19.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern19 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I19 } } +impl SeriesPattern for SeriesPattern19 { fn get(&self, index: Index) -> Option> { _I19.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern20By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern20By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern20By { - pub fn txin_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::TxInIndex) - } + pub fn txin_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::TxInIndex) } } -pub struct SeriesPattern20 { - name: Arc, - pub by: SeriesPattern20By, -} +pub struct SeriesPattern20 { name: Arc, pub by: SeriesPattern20By } impl SeriesPattern20 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern20By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern20By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern20 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I20 - } -} -impl SeriesPattern for SeriesPattern20 { - fn get(&self, index: Index) -> Option> { - _I20.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern20 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I20 } } +impl SeriesPattern for SeriesPattern20 { fn get(&self, index: Index) -> Option> { _I20.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern21By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern21By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern21By { - pub fn txout_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::TxOutIndex) - } + pub fn txout_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::TxOutIndex) } } -pub struct SeriesPattern21 { - name: Arc, - pub by: SeriesPattern21By, -} +pub struct SeriesPattern21 { name: Arc, pub by: SeriesPattern21By } impl SeriesPattern21 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern21By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern21By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern21 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I21 - } -} -impl SeriesPattern for SeriesPattern21 { - fn get(&self, index: Index) -> Option> { - _I21.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern21 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I21 } } +impl SeriesPattern for SeriesPattern21 { fn get(&self, index: Index) -> Option> { _I21.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern22By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern22By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern22By { - pub fn empty_output_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::EmptyOutputIndex) - } + pub fn empty_output_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::EmptyOutputIndex) } } -pub struct SeriesPattern22 { - name: Arc, - pub by: SeriesPattern22By, -} +pub struct SeriesPattern22 { name: Arc, pub by: SeriesPattern22By } impl SeriesPattern22 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern22By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern22By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern22 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I22 - } -} -impl SeriesPattern for SeriesPattern22 { - fn get(&self, index: Index) -> Option> { - _I22.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern22 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I22 } } +impl SeriesPattern for SeriesPattern22 { fn get(&self, index: Index) -> Option> { _I22.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern23By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern23By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern23By { - pub fn op_return_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::OpReturnIndex) - } + pub fn op_return_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::OpReturnIndex) } } -pub struct SeriesPattern23 { - name: Arc, - pub by: SeriesPattern23By, -} +pub struct SeriesPattern23 { name: Arc, pub by: SeriesPattern23By } impl SeriesPattern23 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern23By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern23By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern23 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I23 - } -} -impl SeriesPattern for SeriesPattern23 { - fn get(&self, index: Index) -> Option> { - _I23.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern23 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I23 } } +impl SeriesPattern for SeriesPattern23 { fn get(&self, index: Index) -> Option> { _I23.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern24By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern24By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern24By { - pub fn p2a_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::P2AAddrIndex) - } + pub fn p2a_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::P2AAddrIndex) } } -pub struct SeriesPattern24 { - name: Arc, - pub by: SeriesPattern24By, -} +pub struct SeriesPattern24 { name: Arc, pub by: SeriesPattern24By } impl SeriesPattern24 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern24By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern24By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern24 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I24 - } -} -impl SeriesPattern for SeriesPattern24 { - fn get(&self, index: Index) -> Option> { - _I24.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern24 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I24 } } +impl SeriesPattern for SeriesPattern24 { fn get(&self, index: Index) -> Option> { _I24.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern25By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern25By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern25By { - pub fn p2ms_output_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::P2MSOutputIndex) - } + pub fn p2ms_output_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::P2MSOutputIndex) } } -pub struct SeriesPattern25 { - name: Arc, - pub by: SeriesPattern25By, -} +pub struct SeriesPattern25 { name: Arc, pub by: SeriesPattern25By } impl SeriesPattern25 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern25By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern25By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern25 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I25 - } -} -impl SeriesPattern for SeriesPattern25 { - fn get(&self, index: Index) -> Option> { - _I25.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern25 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I25 } } +impl SeriesPattern for SeriesPattern25 { fn get(&self, index: Index) -> Option> { _I25.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern26By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern26By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern26By { - pub fn p2pk33_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::P2PK33AddrIndex) - } + pub fn p2pk33_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::P2PK33AddrIndex) } } -pub struct SeriesPattern26 { - name: Arc, - pub by: SeriesPattern26By, -} +pub struct SeriesPattern26 { name: Arc, pub by: SeriesPattern26By } impl SeriesPattern26 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern26By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern26By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern26 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I26 - } -} -impl SeriesPattern for SeriesPattern26 { - fn get(&self, index: Index) -> Option> { - _I26.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern26 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I26 } } +impl SeriesPattern for SeriesPattern26 { fn get(&self, index: Index) -> Option> { _I26.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern27By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern27By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern27By { - pub fn p2pk65_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::P2PK65AddrIndex) - } + pub fn p2pk65_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::P2PK65AddrIndex) } } -pub struct SeriesPattern27 { - name: Arc, - pub by: SeriesPattern27By, -} +pub struct SeriesPattern27 { name: Arc, pub by: SeriesPattern27By } impl SeriesPattern27 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern27By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern27By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern27 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I27 - } -} -impl SeriesPattern for SeriesPattern27 { - fn get(&self, index: Index) -> Option> { - _I27.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern27 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I27 } } +impl SeriesPattern for SeriesPattern27 { fn get(&self, index: Index) -> Option> { _I27.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern28By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern28By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern28By { - pub fn p2pkh_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::P2PKHAddrIndex) - } + pub fn p2pkh_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::P2PKHAddrIndex) } } -pub struct SeriesPattern28 { - name: Arc, - pub by: SeriesPattern28By, -} +pub struct SeriesPattern28 { name: Arc, pub by: SeriesPattern28By } impl SeriesPattern28 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern28By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern28By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern28 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I28 - } -} -impl SeriesPattern for SeriesPattern28 { - fn get(&self, index: Index) -> Option> { - _I28.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern28 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I28 } } +impl SeriesPattern for SeriesPattern28 { fn get(&self, index: Index) -> Option> { _I28.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern29By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern29By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern29By { - pub fn p2sh_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::P2SHAddrIndex) - } + pub fn p2sh_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::P2SHAddrIndex) } } -pub struct SeriesPattern29 { - name: Arc, - pub by: SeriesPattern29By, -} +pub struct SeriesPattern29 { name: Arc, pub by: SeriesPattern29By } impl SeriesPattern29 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern29By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern29By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern29 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I29 - } -} -impl SeriesPattern for SeriesPattern29 { - fn get(&self, index: Index) -> Option> { - _I29.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern29 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I29 } } +impl SeriesPattern for SeriesPattern29 { fn get(&self, index: Index) -> Option> { _I29.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern30By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern30By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern30By { - pub fn p2tr_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::P2TRAddrIndex) - } + pub fn p2tr_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::P2TRAddrIndex) } } -pub struct SeriesPattern30 { - name: Arc, - pub by: SeriesPattern30By, -} +pub struct SeriesPattern30 { name: Arc, pub by: SeriesPattern30By } impl SeriesPattern30 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern30By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern30By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern30 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I30 - } -} -impl SeriesPattern for SeriesPattern30 { - fn get(&self, index: Index) -> Option> { - _I30.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern30 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I30 } } +impl SeriesPattern for SeriesPattern30 { fn get(&self, index: Index) -> Option> { _I30.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern31By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern31By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern31By { - pub fn p2wpkh_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::P2WPKHAddrIndex) - } + pub fn p2wpkh_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::P2WPKHAddrIndex) } } -pub struct SeriesPattern31 { - name: Arc, - pub by: SeriesPattern31By, -} +pub struct SeriesPattern31 { name: Arc, pub by: SeriesPattern31By } impl SeriesPattern31 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern31By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern31By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern31 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I31 - } -} -impl SeriesPattern for SeriesPattern31 { - fn get(&self, index: Index) -> Option> { - _I31.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern31 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I31 } } +impl SeriesPattern for SeriesPattern31 { fn get(&self, index: Index) -> Option> { _I31.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern32By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern32By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern32By { - pub fn p2wsh_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::P2WSHAddrIndex) - } + pub fn p2wsh_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::P2WSHAddrIndex) } } -pub struct SeriesPattern32 { - name: Arc, - pub by: SeriesPattern32By, -} +pub struct SeriesPattern32 { name: Arc, pub by: SeriesPattern32By } impl SeriesPattern32 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern32By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern32By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern32 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I32 - } -} -impl SeriesPattern for SeriesPattern32 { - fn get(&self, index: Index) -> Option> { - _I32.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern32 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I32 } } +impl SeriesPattern for SeriesPattern32 { fn get(&self, index: Index) -> Option> { _I32.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern33By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern33By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern33By { - pub fn unknown_output_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::UnknownOutputIndex) - } + pub fn unknown_output_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::UnknownOutputIndex) } } -pub struct SeriesPattern33 { - name: Arc, - pub by: SeriesPattern33By, -} +pub struct SeriesPattern33 { name: Arc, pub by: SeriesPattern33By } impl SeriesPattern33 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern33By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern33By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern33 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I33 - } -} -impl SeriesPattern for SeriesPattern33 { - fn get(&self, index: Index) -> Option> { - _I33.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern33 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I33 } } +impl SeriesPattern for SeriesPattern33 { fn get(&self, index: Index) -> Option> { _I33.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern34By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern34By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern34By { - pub fn funded_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::FundedAddrIndex) - } + pub fn funded_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::FundedAddrIndex) } } -pub struct SeriesPattern34 { - name: Arc, - pub by: SeriesPattern34By, -} +pub struct SeriesPattern34 { name: Arc, pub by: SeriesPattern34By } impl SeriesPattern34 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern34By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern34By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern34 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I34 - } -} -impl SeriesPattern for SeriesPattern34 { - fn get(&self, index: Index) -> Option> { - _I34.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern34 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I34 } } +impl SeriesPattern for SeriesPattern34 { fn get(&self, index: Index) -> Option> { _I34.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } -pub struct SeriesPattern35By { - client: Arc, - name: Arc, - _marker: std::marker::PhantomData, -} +pub struct SeriesPattern35By { client: Arc, name: Arc, _marker: std::marker::PhantomData } impl SeriesPattern35By { - pub fn empty_addr_index(&self) -> SeriesEndpoint { - _ep(&self.client, &self.name, Index::EmptyAddrIndex) - } + pub fn empty_addr_index(&self) -> SeriesEndpoint { _ep(&self.client, &self.name, Index::EmptyAddrIndex) } } -pub struct SeriesPattern35 { - name: Arc, - pub by: SeriesPattern35By, -} +pub struct SeriesPattern35 { name: Arc, pub by: SeriesPattern35By } impl SeriesPattern35 { - pub fn new(client: Arc, name: String) -> Self { - let name: Arc = name.into(); - Self { - name: name.clone(), - by: SeriesPattern35By { - client, - name, - _marker: std::marker::PhantomData, - }, - } - } - pub fn name(&self) -> &str { - &self.name - } + pub fn new(client: Arc, name: String) -> Self { let name: Arc = name.into(); Self { name: name.clone(), by: SeriesPattern35By { client, name, _marker: std::marker::PhantomData } } } + pub fn name(&self) -> &str { &self.name } } -impl AnySeriesPattern for SeriesPattern35 { - fn name(&self) -> &str { - &self.name - } - fn indexes(&self) -> &'static [Index] { - _I35 - } -} -impl SeriesPattern for SeriesPattern35 { - fn get(&self, index: Index) -> Option> { - _I35.contains(&index) - .then(|| _ep(&self.by.client, &self.by.name, index)) - } -} +impl AnySeriesPattern for SeriesPattern35 { fn name(&self) -> &str { &self.name } fn indexes(&self) -> &'static [Index] { _I35 } } +impl SeriesPattern for SeriesPattern35 { fn get(&self, index: Index) -> Option> { _I35.contains(&index).then(|| _ep(&self.by.client, &self.by.name, index)) } } // Reusable pattern structs @@ -2520,9 +1183,7 @@ pub struct _10y12y18m1d1h1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mHeightOverUnderPattern } /// Pattern struct for repeated tree structure. -pub struct AscribeBareBitproofBlockstackCoinColuCumulativeDocproofEmptyEpobcEternityFactomKomodoMemoOmniOpenPoetRunesStacksStamperyTextUnknownVeriPattern3< - T, -> { +pub struct AscribeBareBitproofBlockstackCoinColuCumulativeDocproofEmptyEpobcEternityFactomKomodoMemoOmniOpenPoetRunesStacksStamperyTextUnknownVeriPattern3 { pub ascribe: AverageBlockCumulativeSumPattern, pub bare_hash: AverageBlockCumulativeSumPattern, pub bitproof: AverageBlockCumulativeSumPattern, @@ -2607,167 +1268,29 @@ impl _10y12y18m1d1h1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mOverUnderPattern2 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String, disc: String) -> Self { Self { - _10y_to_12y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("10y_to_12y_old_transfer_volume{disc}", disc = disc), - ), - ), - _12y_to_15y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("12y_to_15y_old_transfer_volume{disc}", disc = disc), - ), - ), - _18m_to_2y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("18m_to_2y_old_transfer_volume{disc}", disc = disc), - ), - ), - _1d_to_1w: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("1d_to_1w_old_transfer_volume{disc}", disc = disc), - ), - ), - _1h_to_1d: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("1h_to_1d_old_transfer_volume{disc}", disc = disc), - ), - ), - _1m_to_2m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("1m_to_2m_old_transfer_volume{disc}", disc = disc), - ), - ), - _1w_to_1m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("1w_to_1m_old_transfer_volume{disc}", disc = disc), - ), - ), - _1y_to_18m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("1y_to_18m_old_transfer_volume{disc}", disc = disc), - ), - ), - _2m_to_3m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("2m_to_3m_old_transfer_volume{disc}", disc = disc), - ), - ), - _2y_to_3y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("2y_to_3y_old_transfer_volume{disc}", disc = disc), - ), - ), - _3m_to_4m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("3m_to_4m_old_transfer_volume{disc}", disc = disc), - ), - ), - _3y_to_4y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("3y_to_4y_old_transfer_volume{disc}", disc = disc), - ), - ), - _4m_to_5m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("4m_to_5m_old_transfer_volume{disc}", disc = disc), - ), - ), - _4y_to_5y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("4y_to_5y_old_transfer_volume{disc}", disc = disc), - ), - ), - _5m_to_6m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("5m_to_6m_old_transfer_volume{disc}", disc = disc), - ), - ), - _5y_to_6y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("5y_to_6y_old_transfer_volume{disc}", disc = disc), - ), - ), - _6m_to_9m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("6m_to_9m_old_transfer_volume{disc}", disc = disc), - ), - ), - _6y_to_7y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("6y_to_7y_old_transfer_volume{disc}", disc = disc), - ), - ), - _7y_to_8y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("7y_to_8y_old_transfer_volume{disc}", disc = disc), - ), - ), - _8y_to_10y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("8y_to_10y_old_transfer_volume{disc}", disc = disc), - ), - ), - _9m_to_1y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("9m_to_1y_old_transfer_volume{disc}", disc = disc), - ), - ), - over_15y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("over_15y_old_transfer_volume{disc}", disc = disc), - ), - ), - under_1h: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m( - &acc, - &format!("under_1h_old_transfer_volume{disc}", disc = disc), - ), - ), + _10y_to_12y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("10y_to_12y_old_transfer_volume{disc}", disc=disc))), + _12y_to_15y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("12y_to_15y_old_transfer_volume{disc}", disc=disc))), + _18m_to_2y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("18m_to_2y_old_transfer_volume{disc}", disc=disc))), + _1d_to_1w: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1d_to_1w_old_transfer_volume{disc}", disc=disc))), + _1h_to_1d: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1h_to_1d_old_transfer_volume{disc}", disc=disc))), + _1m_to_2m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1m_to_2m_old_transfer_volume{disc}", disc=disc))), + _1w_to_1m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1w_to_1m_old_transfer_volume{disc}", disc=disc))), + _1y_to_18m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1y_to_18m_old_transfer_volume{disc}", disc=disc))), + _2m_to_3m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2m_to_3m_old_transfer_volume{disc}", disc=disc))), + _2y_to_3y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2y_to_3y_old_transfer_volume{disc}", disc=disc))), + _3m_to_4m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("3m_to_4m_old_transfer_volume{disc}", disc=disc))), + _3y_to_4y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("3y_to_4y_old_transfer_volume{disc}", disc=disc))), + _4m_to_5m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("4m_to_5m_old_transfer_volume{disc}", disc=disc))), + _4y_to_5y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("4y_to_5y_old_transfer_volume{disc}", disc=disc))), + _5m_to_6m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("5m_to_6m_old_transfer_volume{disc}", disc=disc))), + _5y_to_6y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("5y_to_6y_old_transfer_volume{disc}", disc=disc))), + _6m_to_9m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("6m_to_9m_old_transfer_volume{disc}", disc=disc))), + _6y_to_7y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("6y_to_7y_old_transfer_volume{disc}", disc=disc))), + _7y_to_8y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("7y_to_8y_old_transfer_volume{disc}", disc=disc))), + _8y_to_10y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("8y_to_10y_old_transfer_volume{disc}", disc=disc))), + _9m_to_1y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("9m_to_1y_old_transfer_volume{disc}", disc=disc))), + over_15y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("over_15y_old_transfer_volume{disc}", disc=disc))), + under_1h: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("under_1h_old_transfer_volume{disc}", disc=disc))), } } } @@ -2881,8 +1404,7 @@ pub struct _10y12y18m1d1h1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mOverUnderPattern7 { } /// Pattern struct for repeated tree structure. -pub struct HeightIndexPct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99ScorePattern -{ +pub struct HeightIndexPct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99ScorePattern { pub height: SeriesPattern18<[Cents; 19]>, pub index: SeriesPattern1, pub pct0_1: CentsSatsUsdPattern, @@ -3013,86 +1535,26 @@ impl _10y12y15y18m1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mPattern2 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String, disc: String) -> Self { Self { - _10y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("10y_old_transfer_volume{disc}", disc = disc)), - ), - _12y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("12y_old_transfer_volume{disc}", disc = disc)), - ), - _15y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("15y_old_transfer_volume{disc}", disc = disc)), - ), - _18m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("18m_old_transfer_volume{disc}", disc = disc)), - ), - _1m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("1m_old_transfer_volume{disc}", disc = disc)), - ), - _1w: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("1w_old_transfer_volume{disc}", disc = disc)), - ), - _1y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("1y_old_transfer_volume{disc}", disc = disc)), - ), - _2m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2m_old_transfer_volume{disc}", disc = disc)), - ), - _2y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2y_old_transfer_volume{disc}", disc = disc)), - ), - _3m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("3m_old_transfer_volume{disc}", disc = disc)), - ), - _3y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("3y_old_transfer_volume{disc}", disc = disc)), - ), - _4m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("4m_old_transfer_volume{disc}", disc = disc)), - ), - _4y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("4y_old_transfer_volume{disc}", disc = disc)), - ), - _5m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("5m_old_transfer_volume{disc}", disc = disc)), - ), - _5y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("5y_old_transfer_volume{disc}", disc = disc)), - ), - _6m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("6m_old_transfer_volume{disc}", disc = disc)), - ), - _6y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("6y_old_transfer_volume{disc}", disc = disc)), - ), - _7y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("7y_old_transfer_volume{disc}", disc = disc)), - ), - _8y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("8y_old_transfer_volume{disc}", disc = disc)), - ), - _9m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("9m_old_transfer_volume{disc}", disc = disc)), - ), + _10y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("10y_old_transfer_volume{disc}", disc=disc))), + _12y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("12y_old_transfer_volume{disc}", disc=disc))), + _15y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("15y_old_transfer_volume{disc}", disc=disc))), + _18m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("18m_old_transfer_volume{disc}", disc=disc))), + _1m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1m_old_transfer_volume{disc}", disc=disc))), + _1w: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1w_old_transfer_volume{disc}", disc=disc))), + _1y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1y_old_transfer_volume{disc}", disc=disc))), + _2m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2m_old_transfer_volume{disc}", disc=disc))), + _2y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2y_old_transfer_volume{disc}", disc=disc))), + _3m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("3m_old_transfer_volume{disc}", disc=disc))), + _3y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("3y_old_transfer_volume{disc}", disc=disc))), + _4m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("4m_old_transfer_volume{disc}", disc=disc))), + _4y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("4y_old_transfer_volume{disc}", disc=disc))), + _5m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("5m_old_transfer_volume{disc}", disc=disc))), + _5y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("5y_old_transfer_volume{disc}", disc=disc))), + _6m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("6m_old_transfer_volume{disc}", disc=disc))), + _6y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("6y_old_transfer_volume{disc}", disc=disc))), + _7y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("7y_old_transfer_volume{disc}", disc=disc))), + _8y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("8y_old_transfer_volume{disc}", disc=disc))), + _9m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("9m_old_transfer_volume{disc}", disc=disc))), } } } @@ -3125,86 +1587,26 @@ impl _10y12y18m1d1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mPattern2 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String, disc: String) -> Self { Self { - _10y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("10y_old_transfer_volume{disc}", disc = disc)), - ), - _12y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("12y_old_transfer_volume{disc}", disc = disc)), - ), - _18m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("18m_old_transfer_volume{disc}", disc = disc)), - ), - _1d: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("1d_old_transfer_volume{disc}", disc = disc)), - ), - _1m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("1m_old_transfer_volume{disc}", disc = disc)), - ), - _1w: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("1w_old_transfer_volume{disc}", disc = disc)), - ), - _1y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("1y_old_transfer_volume{disc}", disc = disc)), - ), - _2m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2m_old_transfer_volume{disc}", disc = disc)), - ), - _2y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2y_old_transfer_volume{disc}", disc = disc)), - ), - _3m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("3m_old_transfer_volume{disc}", disc = disc)), - ), - _3y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("3y_old_transfer_volume{disc}", disc = disc)), - ), - _4m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("4m_old_transfer_volume{disc}", disc = disc)), - ), - _4y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("4y_old_transfer_volume{disc}", disc = disc)), - ), - _5m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("5m_old_transfer_volume{disc}", disc = disc)), - ), - _5y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("5y_old_transfer_volume{disc}", disc = disc)), - ), - _6m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("6m_old_transfer_volume{disc}", disc = disc)), - ), - _6y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("6y_old_transfer_volume{disc}", disc = disc)), - ), - _7y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("7y_old_transfer_volume{disc}", disc = disc)), - ), - _8y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("8y_old_transfer_volume{disc}", disc = disc)), - ), - _9m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("9m_old_transfer_volume{disc}", disc = disc)), - ), + _10y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("10y_old_transfer_volume{disc}", disc=disc))), + _12y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("12y_old_transfer_volume{disc}", disc=disc))), + _18m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("18m_old_transfer_volume{disc}", disc=disc))), + _1d: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1d_old_transfer_volume{disc}", disc=disc))), + _1m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1m_old_transfer_volume{disc}", disc=disc))), + _1w: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1w_old_transfer_volume{disc}", disc=disc))), + _1y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1y_old_transfer_volume{disc}", disc=disc))), + _2m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2m_old_transfer_volume{disc}", disc=disc))), + _2y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2y_old_transfer_volume{disc}", disc=disc))), + _3m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("3m_old_transfer_volume{disc}", disc=disc))), + _3y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("3y_old_transfer_volume{disc}", disc=disc))), + _4m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("4m_old_transfer_volume{disc}", disc=disc))), + _4y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("4y_old_transfer_volume{disc}", disc=disc))), + _5m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("5m_old_transfer_volume{disc}", disc=disc))), + _5y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("5y_old_transfer_volume{disc}", disc=disc))), + _6m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("6m_old_transfer_volume{disc}", disc=disc))), + _6y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("6y_old_transfer_volume{disc}", disc=disc))), + _7y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("7y_old_transfer_volume{disc}", disc=disc))), + _8y: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("8y_old_transfer_volume{disc}", disc=disc))), + _9m: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("9m_old_transfer_volume{disc}", disc=disc))), } } } @@ -3354,8 +1756,7 @@ pub struct _10y12y18m1d1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mPattern13 { } /// Pattern struct for repeated tree structure. -pub struct Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern -{ +pub struct Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern { pub pct0_1: PpmPriceRatioPattern, pub pct0_5: PpmPriceRatioPattern, pub pct1: PpmPriceRatioPattern, @@ -3455,8 +1856,7 @@ pub struct _10y12y18m1d1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mPattern7 { } /// Pattern struct for repeated tree structure. -pub struct Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern -{ +pub struct Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75Pct80Pct85Pct90Pct95Pattern { pub pct05: CentsSatsUsdPattern, pub pct10: CentsSatsUsdPattern, pub pct15: CentsSatsUsdPattern, @@ -3553,78 +1953,24 @@ impl _200920102011201220132014201520162017201820192020202120222023202420252026Pa /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String, disc: String) -> Self { Self { - _2009: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2009_transfer_volume{disc}", disc = disc)), - ), - _2010: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2010_transfer_volume{disc}", disc = disc)), - ), - _2011: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2011_transfer_volume{disc}", disc = disc)), - ), - _2012: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2012_transfer_volume{disc}", disc = disc)), - ), - _2013: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2013_transfer_volume{disc}", disc = disc)), - ), - _2014: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2014_transfer_volume{disc}", disc = disc)), - ), - _2015: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2015_transfer_volume{disc}", disc = disc)), - ), - _2016: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2016_transfer_volume{disc}", disc = disc)), - ), - _2017: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2017_transfer_volume{disc}", disc = disc)), - ), - _2018: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2018_transfer_volume{disc}", disc = disc)), - ), - _2019: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2019_transfer_volume{disc}", disc = disc)), - ), - _2020: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2020_transfer_volume{disc}", disc = disc)), - ), - _2021: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2021_transfer_volume{disc}", disc = disc)), - ), - _2022: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2022_transfer_volume{disc}", disc = disc)), - ), - _2023: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2023_transfer_volume{disc}", disc = disc)), - ), - _2024: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2024_transfer_volume{disc}", disc = disc)), - ), - _2025: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2025_transfer_volume{disc}", disc = disc)), - ), - _2026: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2026_transfer_volume{disc}", disc = disc)), - ), + _2009: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2009_transfer_volume{disc}", disc=disc))), + _2010: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2010_transfer_volume{disc}", disc=disc))), + _2011: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2011_transfer_volume{disc}", disc=disc))), + _2012: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2012_transfer_volume{disc}", disc=disc))), + _2013: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2013_transfer_volume{disc}", disc=disc))), + _2014: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2014_transfer_volume{disc}", disc=disc))), + _2015: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2015_transfer_volume{disc}", disc=disc))), + _2016: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2016_transfer_volume{disc}", disc=disc))), + _2017: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2017_transfer_volume{disc}", disc=disc))), + _2018: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2018_transfer_volume{disc}", disc=disc))), + _2019: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2019_transfer_volume{disc}", disc=disc))), + _2020: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2020_transfer_volume{disc}", disc=disc))), + _2021: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2021_transfer_volume{disc}", disc=disc))), + _2022: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2022_transfer_volume{disc}", disc=disc))), + _2023: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2023_transfer_volume{disc}", disc=disc))), + _2024: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2024_transfer_volume{disc}", disc=disc))), + _2025: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2025_transfer_volume{disc}", disc=disc))), + _2026: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2026_transfer_volume{disc}", disc=disc))), } } } @@ -3741,62 +2087,20 @@ impl _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern8 { pub fn new(client: Arc, acc: String) -> Self { Self { _0sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "0sats_supply_delta")), - _100btc_to_1k_btc: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "100btc_to_1k_btc_supply_delta"), - ), - _100k_sats_to_1m_sats: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "100k_sats_to_1m_sats_supply_delta"), - ), - _100sats_to_1k_sats: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "100sats_to_1k_sats_supply_delta"), - ), - _10btc_to_100btc: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "10btc_to_100btc_supply_delta"), - ), - _10k_btc_to_100k_btc: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "10k_btc_to_100k_btc_supply_delta"), - ), - _10k_sats_to_100k_sats: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "10k_sats_to_100k_sats_supply_delta"), - ), - _10m_sats_to_1btc: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "10m_sats_to_1btc_supply_delta"), - ), - _10sats_to_100sats: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "10sats_to_100sats_supply_delta"), - ), - _1btc_to_10btc: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "1btc_to_10btc_supply_delta"), - ), - _1k_btc_to_10k_btc: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "1k_btc_to_10k_btc_supply_delta"), - ), - _1k_sats_to_10k_sats: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "1k_sats_to_10k_sats_supply_delta"), - ), - _1m_sats_to_10m_sats: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "1m_sats_to_10m_sats_supply_delta"), - ), - _1sat_to_10sats: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "1sat_to_10sats_supply_delta"), - ), - over_100k_btc: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "over_100k_btc_supply_delta"), - ), + _100btc_to_1k_btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100btc_to_1k_btc_supply_delta")), + _100k_sats_to_1m_sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100k_sats_to_1m_sats_supply_delta")), + _100sats_to_1k_sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100sats_to_1k_sats_supply_delta")), + _10btc_to_100btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "10btc_to_100btc_supply_delta")), + _10k_btc_to_100k_btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "10k_btc_to_100k_btc_supply_delta")), + _10k_sats_to_100k_sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "10k_sats_to_100k_sats_supply_delta")), + _10m_sats_to_1btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "10m_sats_to_1btc_supply_delta")), + _10sats_to_100sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "10sats_to_100sats_supply_delta")), + _1btc_to_10btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "1btc_to_10btc_supply_delta")), + _1k_btc_to_10k_btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "1k_btc_to_10k_btc_supply_delta")), + _1k_sats_to_10k_sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "1k_sats_to_10k_sats_supply_delta")), + _1m_sats_to_10m_sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "1m_sats_to_10m_sats_supply_delta")), + _1sat_to_10sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "1sat_to_10sats_supply_delta")), + over_100k_btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "over_100k_btc_supply_delta")), } } } @@ -3824,66 +2128,21 @@ impl _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern2 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - _0sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "0sats_transfer_volume"), - ), - _100btc_to_1k_btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100btc_to_1k_btc_transfer_volume"), - ), - _100k_sats_to_1m_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100k_sats_to_1m_sats_transfer_volume"), - ), - _100sats_to_1k_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100sats_to_1k_sats_transfer_volume"), - ), - _10btc_to_100btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10btc_to_100btc_transfer_volume"), - ), - _10k_btc_to_100k_btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10k_btc_to_100k_btc_transfer_volume"), - ), - _10k_sats_to_100k_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10k_sats_to_100k_sats_transfer_volume"), - ), - _10m_sats_to_1btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10m_sats_to_1btc_transfer_volume"), - ), - _10sats_to_100sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10sats_to_100sats_transfer_volume"), - ), - _1btc_to_10btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1btc_to_10btc_transfer_volume"), - ), - _1k_btc_to_10k_btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1k_btc_to_10k_btc_transfer_volume"), - ), - _1k_sats_to_10k_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1k_sats_to_10k_sats_transfer_volume"), - ), - _1m_sats_to_10m_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1m_sats_to_10m_sats_transfer_volume"), - ), - _1sat_to_10sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1sat_to_10sats_transfer_volume"), - ), - over_100k_btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "over_100k_btc_transfer_volume"), - ), + _0sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "0sats_transfer_volume")), + _100btc_to_1k_btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100btc_to_1k_btc_transfer_volume")), + _100k_sats_to_1m_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100k_sats_to_1m_sats_transfer_volume")), + _100sats_to_1k_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100sats_to_1k_sats_transfer_volume")), + _10btc_to_100btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10btc_to_100btc_transfer_volume")), + _10k_btc_to_100k_btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10k_btc_to_100k_btc_transfer_volume")), + _10k_sats_to_100k_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10k_sats_to_100k_sats_transfer_volume")), + _10m_sats_to_1btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10m_sats_to_1btc_transfer_volume")), + _10sats_to_100sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10sats_to_100sats_transfer_volume")), + _1btc_to_10btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1btc_to_10btc_transfer_volume")), + _1k_btc_to_10k_btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1k_btc_to_10k_btc_transfer_volume")), + _1k_sats_to_10k_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1k_sats_to_10k_sats_transfer_volume")), + _1m_sats_to_10m_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1m_sats_to_10m_sats_transfer_volume")), + _1sat_to_10sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1sat_to_10sats_transfer_volume")), + over_100k_btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "over_100k_btc_transfer_volume")), } } } @@ -3950,62 +2209,20 @@ impl _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern10 { pub fn new(client: Arc, acc: String) -> Self { Self { _0sats: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "0sats_supply")), - _100btc_to_1k_btc: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "100btc_to_1k_btc_supply"), - ), - _100k_sats_to_1m_sats: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "100k_sats_to_1m_sats_supply"), - ), - _100sats_to_1k_sats: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "100sats_to_1k_sats_supply"), - ), - _10btc_to_100btc: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "10btc_to_100btc_supply"), - ), - _10k_btc_to_100k_btc: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "10k_btc_to_100k_btc_supply"), - ), - _10k_sats_to_100k_sats: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "10k_sats_to_100k_sats_supply"), - ), - _10m_sats_to_1btc: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "10m_sats_to_1btc_supply"), - ), - _10sats_to_100sats: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "10sats_to_100sats_supply"), - ), - _1btc_to_10btc: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "1btc_to_10btc_supply"), - ), - _1k_btc_to_10k_btc: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "1k_btc_to_10k_btc_supply"), - ), - _1k_sats_to_10k_sats: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "1k_sats_to_10k_sats_supply"), - ), - _1m_sats_to_10m_sats: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "1m_sats_to_10m_sats_supply"), - ), - _1sat_to_10sats: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "1sat_to_10sats_supply"), - ), - over_100k_btc: BtcCentsSatsUsdPattern::new( - client.clone(), - _m(&acc, "over_100k_btc_supply"), - ), + _100btc_to_1k_btc: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "100btc_to_1k_btc_supply")), + _100k_sats_to_1m_sats: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "100k_sats_to_1m_sats_supply")), + _100sats_to_1k_sats: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "100sats_to_1k_sats_supply")), + _10btc_to_100btc: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "10btc_to_100btc_supply")), + _10k_btc_to_100k_btc: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "10k_btc_to_100k_btc_supply")), + _10k_sats_to_100k_sats: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "10k_sats_to_100k_sats_supply")), + _10m_sats_to_1btc: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "10m_sats_to_1btc_supply")), + _10sats_to_100sats: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "10sats_to_100sats_supply")), + _1btc_to_10btc: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "1btc_to_10btc_supply")), + _1k_btc_to_10k_btc: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "1k_btc_to_10k_btc_supply")), + _1k_sats_to_10k_sats: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "1k_sats_to_10k_sats_supply")), + _1m_sats_to_10m_sats: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "1m_sats_to_10m_sats_supply")), + _1sat_to_10sats: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "1sat_to_10sats_supply")), + over_100k_btc: BtcCentsSatsUsdPattern::new(client.clone(), _m(&acc, "over_100k_btc_supply")), } } } @@ -4034,62 +2251,20 @@ impl _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern4 { pub fn new(client: Arc, acc: String) -> Self { Self { _0sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "0sats_realized_cap")), - _100btc_to_1k_btc: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "100btc_to_1k_btc_realized_cap"), - ), - _100k_sats_to_1m_sats: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "100k_sats_to_1m_sats_realized_cap"), - ), - _100sats_to_1k_sats: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "100sats_to_1k_sats_realized_cap"), - ), - _10btc_to_100btc: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "10btc_to_100btc_realized_cap"), - ), - _10k_btc_to_100k_btc: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "10k_btc_to_100k_btc_realized_cap"), - ), - _10k_sats_to_100k_sats: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "10k_sats_to_100k_sats_realized_cap"), - ), - _10m_sats_to_1btc: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "10m_sats_to_1btc_realized_cap"), - ), - _10sats_to_100sats: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "10sats_to_100sats_realized_cap"), - ), - _1btc_to_10btc: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "1btc_to_10btc_realized_cap"), - ), - _1k_btc_to_10k_btc: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "1k_btc_to_10k_btc_realized_cap"), - ), - _1k_sats_to_10k_sats: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "1k_sats_to_10k_sats_realized_cap"), - ), - _1m_sats_to_10m_sats: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "1m_sats_to_10m_sats_realized_cap"), - ), - _1sat_to_10sats: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "1sat_to_10sats_realized_cap"), - ), - over_100k_btc: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "over_100k_btc_realized_cap"), - ), + _100btc_to_1k_btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100btc_to_1k_btc_realized_cap")), + _100k_sats_to_1m_sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100k_sats_to_1m_sats_realized_cap")), + _100sats_to_1k_sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100sats_to_1k_sats_realized_cap")), + _10btc_to_100btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "10btc_to_100btc_realized_cap")), + _10k_btc_to_100k_btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "10k_btc_to_100k_btc_realized_cap")), + _10k_sats_to_100k_sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "10k_sats_to_100k_sats_realized_cap")), + _10m_sats_to_1btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "10m_sats_to_1btc_realized_cap")), + _10sats_to_100sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "10sats_to_100sats_realized_cap")), + _1btc_to_10btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "1btc_to_10btc_realized_cap")), + _1k_btc_to_10k_btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "1k_btc_to_10k_btc_realized_cap")), + _1k_sats_to_10k_sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "1k_sats_to_10k_sats_realized_cap")), + _1m_sats_to_10m_sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "1m_sats_to_10m_sats_realized_cap")), + _1sat_to_10sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "1sat_to_10sats_realized_cap")), + over_100k_btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "over_100k_btc_realized_cap")), } } } @@ -4117,66 +2292,21 @@ impl _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern9 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - _0sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "0sats_supply_dominance"), - ), - _100btc_to_1k_btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100btc_to_1k_btc_supply_dominance"), - ), - _100k_sats_to_1m_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100k_sats_to_1m_sats_supply_dominance"), - ), - _100sats_to_1k_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100sats_to_1k_sats_supply_dominance"), - ), - _10btc_to_100btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10btc_to_100btc_supply_dominance"), - ), - _10k_btc_to_100k_btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10k_btc_to_100k_btc_supply_dominance"), - ), - _10k_sats_to_100k_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10k_sats_to_100k_sats_supply_dominance"), - ), - _10m_sats_to_1btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10m_sats_to_1btc_supply_dominance"), - ), - _10sats_to_100sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10sats_to_100sats_supply_dominance"), - ), - _1btc_to_10btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1btc_to_10btc_supply_dominance"), - ), - _1k_btc_to_10k_btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1k_btc_to_10k_btc_supply_dominance"), - ), - _1k_sats_to_10k_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1k_sats_to_10k_sats_supply_dominance"), - ), - _1m_sats_to_10m_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1m_sats_to_10m_sats_supply_dominance"), - ), - _1sat_to_10sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1sat_to_10sats_supply_dominance"), - ), - over_100k_btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "over_100k_btc_supply_dominance"), - ), + _0sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "0sats_supply_dominance")), + _100btc_to_1k_btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100btc_to_1k_btc_supply_dominance")), + _100k_sats_to_1m_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100k_sats_to_1m_sats_supply_dominance")), + _100sats_to_1k_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100sats_to_1k_sats_supply_dominance")), + _10btc_to_100btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10btc_to_100btc_supply_dominance")), + _10k_btc_to_100k_btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10k_btc_to_100k_btc_supply_dominance")), + _10k_sats_to_100k_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10k_sats_to_100k_sats_supply_dominance")), + _10m_sats_to_1btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10m_sats_to_1btc_supply_dominance")), + _10sats_to_100sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10sats_to_100sats_supply_dominance")), + _1btc_to_10btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1btc_to_10btc_supply_dominance")), + _1k_btc_to_10k_btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1k_btc_to_10k_btc_supply_dominance")), + _1k_sats_to_10k_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1k_sats_to_10k_sats_supply_dominance")), + _1m_sats_to_10m_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1m_sats_to_10m_sats_supply_dominance")), + _1sat_to_10sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1sat_to_10sats_supply_dominance")), + over_100k_btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "over_100k_btc_supply_dominance")), } } } @@ -4222,10 +2352,7 @@ impl _100btc100k100sats10btc10k10m10sats1btc1k1mPattern8 { Self { _100btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100btc_supply_delta")), _100k_btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100k_btc_supply_delta")), - _100k_sats: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "100k_sats_supply_delta"), - ), + _100k_sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100k_sats_supply_delta")), _100sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100sats_supply_delta")), _10btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "10btc_supply_delta")), _10k_btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "10k_btc_supply_delta")), @@ -4262,10 +2389,7 @@ impl _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern8 { pub fn new(client: Arc, acc: String) -> Self { Self { _100btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100btc_supply_delta")), - _100k_sats: AbsoluteRatePattern2::new( - client.clone(), - _m(&acc, "100k_sats_supply_delta"), - ), + _100k_sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100k_sats_supply_delta")), _100sats: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "100sats_supply_delta")), _10btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "10btc_supply_delta")), _10k_btc: AbsoluteRatePattern2::new(client.clone(), _m(&acc, "10k_btc_supply_delta")), @@ -4302,58 +2426,19 @@ impl _100btc100k100sats10btc10k10m10sats1btc1k1mPattern2 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - _100btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100btc_transfer_volume"), - ), - _100k_btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100k_btc_transfer_volume"), - ), - _100k_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100k_sats_transfer_volume"), - ), - _100sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100sats_transfer_volume"), - ), - _10btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10btc_transfer_volume"), - ), - _10k_btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10k_btc_transfer_volume"), - ), - _10k_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10k_sats_transfer_volume"), - ), - _10m_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10m_sats_transfer_volume"), - ), - _10sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10sats_transfer_volume"), - ), - _1btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1btc_transfer_volume"), - ), - _1k_btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1k_btc_transfer_volume"), - ), - _1k_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1k_sats_transfer_volume"), - ), - _1m_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1m_sats_transfer_volume"), - ), + _100btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100btc_transfer_volume")), + _100k_btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100k_btc_transfer_volume")), + _100k_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100k_sats_transfer_volume")), + _100sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100sats_transfer_volume")), + _10btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10btc_transfer_volume")), + _10k_btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10k_btc_transfer_volume")), + _10k_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10k_sats_transfer_volume")), + _10m_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10m_sats_transfer_volume")), + _10sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10sats_transfer_volume")), + _1btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1btc_transfer_volume")), + _1k_btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1k_btc_transfer_volume")), + _1k_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1k_sats_transfer_volume")), + _1m_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1m_sats_transfer_volume")), } } } @@ -4379,58 +2464,19 @@ impl _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern2 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - _100btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100btc_transfer_volume"), - ), - _100k_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100k_sats_transfer_volume"), - ), - _100sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "100sats_transfer_volume"), - ), - _10btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10btc_transfer_volume"), - ), - _10k_btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10k_btc_transfer_volume"), - ), - _10k_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10k_sats_transfer_volume"), - ), - _10m_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10m_sats_transfer_volume"), - ), - _10sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "10sats_transfer_volume"), - ), - _1btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1btc_transfer_volume"), - ), - _1k_btc: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1k_btc_transfer_volume"), - ), - _1k_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1k_sats_transfer_volume"), - ), - _1m_sats: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1m_sats_transfer_volume"), - ), - _1sat: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, "1sat_transfer_volume"), - ), + _100btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100btc_transfer_volume")), + _100k_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100k_sats_transfer_volume")), + _100sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "100sats_transfer_volume")), + _10btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10btc_transfer_volume")), + _10k_btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10k_btc_transfer_volume")), + _10k_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10k_sats_transfer_volume")), + _10m_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10m_sats_transfer_volume")), + _10sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "10sats_transfer_volume")), + _1btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1btc_transfer_volume")), + _1k_btc: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1k_btc_transfer_volume")), + _1k_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1k_sats_transfer_volume")), + _1m_sats: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1m_sats_transfer_volume")), + _1sat: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, "1sat_transfer_volume")), } } } @@ -4602,10 +2648,7 @@ impl _100btc100k100sats10btc10k10m10sats1btc1k1mPattern4 { Self { _100btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100btc_realized_cap")), _100k_btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100k_btc_realized_cap")), - _100k_sats: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "100k_sats_realized_cap"), - ), + _100k_sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100k_sats_realized_cap")), _100sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100sats_realized_cap")), _10btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "10btc_realized_cap")), _10k_btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "10k_btc_realized_cap")), @@ -4642,10 +2685,7 @@ impl _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern4 { pub fn new(client: Arc, acc: String) -> Self { Self { _100btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100btc_realized_cap")), - _100k_sats: CentsDeltaUsdPattern::new( - client.clone(), - _m(&acc, "100k_sats_realized_cap"), - ), + _100k_sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100k_sats_realized_cap")), _100sats: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "100sats_realized_cap")), _10btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "10btc_realized_cap")), _10k_btc: CentsDeltaUsdPattern::new(client.clone(), _m(&acc, "10k_btc_realized_cap")), @@ -4682,55 +2722,19 @@ impl _100btc100k100sats10btc10k10m10sats1btc1k1mPattern9 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - _100btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100btc_supply_dominance"), - ), - _100k_btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100k_btc_supply_dominance"), - ), - _100k_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100k_sats_supply_dominance"), - ), - _100sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100sats_supply_dominance"), - ), - _10btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10btc_supply_dominance"), - ), - _10k_btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10k_btc_supply_dominance"), - ), - _10k_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10k_sats_supply_dominance"), - ), - _10m_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10m_sats_supply_dominance"), - ), - _10sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10sats_supply_dominance"), - ), + _100btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100btc_supply_dominance")), + _100k_btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100k_btc_supply_dominance")), + _100k_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100k_sats_supply_dominance")), + _100sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100sats_supply_dominance")), + _10btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10btc_supply_dominance")), + _10k_btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10k_btc_supply_dominance")), + _10k_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10k_sats_supply_dominance")), + _10m_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10m_sats_supply_dominance")), + _10sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10sats_supply_dominance")), _1btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1btc_supply_dominance")), - _1k_btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1k_btc_supply_dominance"), - ), - _1k_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1k_sats_supply_dominance"), - ), - _1m_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1m_sats_supply_dominance"), - ), + _1k_btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1k_btc_supply_dominance")), + _1k_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1k_sats_supply_dominance")), + _1m_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1m_sats_supply_dominance")), } } } @@ -4756,51 +2760,18 @@ impl _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern9 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - _100btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100btc_supply_dominance"), - ), - _100k_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100k_sats_supply_dominance"), - ), - _100sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "100sats_supply_dominance"), - ), - _10btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10btc_supply_dominance"), - ), - _10k_btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10k_btc_supply_dominance"), - ), - _10k_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10k_sats_supply_dominance"), - ), - _10m_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10m_sats_supply_dominance"), - ), - _10sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "10sats_supply_dominance"), - ), + _100btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100btc_supply_dominance")), + _100k_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100k_sats_supply_dominance")), + _100sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "100sats_supply_dominance")), + _10btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10btc_supply_dominance")), + _10k_btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10k_btc_supply_dominance")), + _10k_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10k_sats_supply_dominance")), + _10m_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10m_sats_supply_dominance")), + _10sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "10sats_supply_dominance")), _1btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1btc_supply_dominance")), - _1k_btc: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1k_btc_supply_dominance"), - ), - _1k_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1k_sats_supply_dominance"), - ), - _1m_sats: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, "1m_sats_supply_dominance"), - ), + _1k_btc: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1k_btc_supply_dominance")), + _1k_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1k_sats_supply_dominance")), + _1m_sats: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1m_sats_supply_dominance")), _1sat: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, "1sat_supply_dominance")), } } @@ -4914,36 +2885,18 @@ impl EmptyOpP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern2 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - empty: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "empty_outputs_output"), - ), - op_return: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "op_return_output"), - ), + empty: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "empty_outputs_output")), + op_return: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "op_return_output")), p2a: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2a_output")), p2ms: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2ms_output")), - p2pk33: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "p2pk33_output"), - ), - p2pk65: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "p2pk65_output"), - ), + p2pk33: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2pk33_output")), + p2pk65: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2pk65_output")), p2pkh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2pkh_output")), p2sh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2sh_output")), p2tr: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2tr_output")), - p2wpkh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "p2wpkh_output"), - ), + p2wpkh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2wpkh_output")), p2wsh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2wsh_output")), - unknown: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "unknown_outputs_output"), - ), + unknown: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "unknown_outputs_output")), } } } @@ -5118,32 +3071,17 @@ impl EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern13 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - empty: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "empty_outputs_prevout"), - ), + empty: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "empty_outputs_prevout")), p2a: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2a_prevout")), p2ms: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2ms_prevout")), - p2pk33: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "p2pk33_prevout"), - ), - p2pk65: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "p2pk65_prevout"), - ), + p2pk33: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2pk33_prevout")), + p2pk65: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2pk65_prevout")), p2pkh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2pkh_prevout")), p2sh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2sh_prevout")), p2tr: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2tr_prevout")), - p2wpkh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "p2wpkh_prevout"), - ), + p2wpkh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2wpkh_prevout")), p2wsh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "p2wsh_prevout")), - unknown: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - _m(&acc, "unknown_outputs_prevout"), - ), + unknown: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), _m(&acc, "unknown_outputs_prevout")), } } } @@ -5685,26 +3623,11 @@ impl _01234Pattern2 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String, disc: String) -> Self { Self { - _0: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("0_transfer_volume{disc}", disc = disc)), - ), - _1: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("1_transfer_volume{disc}", disc = disc)), - ), - _2: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("2_transfer_volume{disc}", disc = disc)), - ), - _3: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("3_transfer_volume{disc}", disc = disc)), - ), - _4: AverageBlockCumulativeSumPattern2::new( - client.clone(), - _m(&acc, &format!("4_transfer_volume{disc}", disc = disc)), - ), + _0: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("0_transfer_volume{disc}", disc=disc))), + _1: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("1_transfer_volume{disc}", disc=disc))), + _2: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("2_transfer_volume{disc}", disc=disc))), + _3: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("3_transfer_volume{disc}", disc=disc))), + _4: AverageBlockCumulativeSumPattern2::new(client.clone(), _m(&acc, &format!("4_transfer_volume{disc}", disc=disc))), } } } @@ -6311,8 +4234,7 @@ pub struct HeightLossProfitRangePattern2 { pub height: SeriesPattern18, pub loss: _10pct20pct30pct40pct50pct60pct70pct80pctAllPattern2, pub profit: _100pct10pct200pct20pct300pct30pct40pct500pct50pct60pct70pct80pct90pctAllPattern2, - pub range: - _0pct100pct10pct200pct20pct300pct30pct40pct500pct50pct60pct70pct80pct90pctOverPattern2, + pub range: _0pct100pct10pct200pct20pct300pct30pct40pct500pct50pct60pct70pct80pct90pctOverPattern2, } /// Pattern struct for repeated tree structure. @@ -6556,10 +4478,7 @@ impl CumulativeRollingSumPattern { pub fn new(client: Arc, acc: String) -> Self { Self { cumulative: SeriesPattern1::new(client.clone(), _m(&acc, "cumulative")), - rolling: AverageMaxMedianMinPct10Pct25Pct75Pct90SumPattern::new( - client.clone(), - acc.clone(), - ), + rolling: AverageMaxMedianMinPct10Pct25Pct75Pct90SumPattern::new(client.clone(), acc.clone()), sum: SeriesPattern18::new(client.clone(), _m(&acc, "sum")), } } @@ -6577,14 +4496,8 @@ impl FloorLevelLossPattern { pub fn new(client: Arc, acc: String) -> Self { Self { floor: Pct95Pct98Pct99Pattern::new(client.clone(), _m(&acc, "floor")), - level: Pct10Pct20Pct30Pct40Pct50Pct60Pct70Pct80Pct90Pattern::new( - client.clone(), - _m(&acc, "level"), - ), - loss_threshold: Pct95Pct98Pct99Pattern2::new( - client.clone(), - _m(&acc, "loss_threshold"), - ), + level: Pct10Pct20Pct30Pct40Pct50Pct60Pct70Pct80Pct90Pattern::new(client.clone(), _m(&acc, "level")), + loss_threshold: Pct95Pct98Pct99Pattern2::new(client.clone(), _m(&acc, "loss_threshold")), } } } @@ -6614,18 +4527,9 @@ impl OverRangeUnderPattern17 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern8::new( - client.clone(), - _m(&acc, "over"), - ), - range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern8::new( - client.clone(), - acc.clone(), - ), - under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern8::new( - client.clone(), - _m(&acc, "under"), - ), + over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern8::new(client.clone(), _m(&acc, "over")), + range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern8::new(client.clone(), acc.clone()), + under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern8::new(client.clone(), _m(&acc, "under")), } } } @@ -6641,18 +4545,9 @@ impl OverRangeUnderPattern19 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern9::new( - client.clone(), - _m(&acc, "over"), - ), - range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern9::new( - client.clone(), - acc.clone(), - ), - under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern9::new( - client.clone(), - _m(&acc, "under"), - ), + over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern9::new(client.clone(), _m(&acc, "over")), + range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern9::new(client.clone(), acc.clone()), + under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern9::new(client.clone(), _m(&acc, "under")), } } } @@ -6689,21 +4584,9 @@ impl OverRangeUnderPattern2 { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String) -> Self { Self { - over: _10y12y18m1d1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mPattern2::new( - client.clone(), - acc.clone(), - "over".to_string(), - ), - range: _10y12y18m1d1h1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mOverUnderPattern2::new( - client.clone(), - acc.clone(), - String::new(), - ), - under: _10y12y15y18m1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mPattern2::new( - client.clone(), - acc.clone(), - "under".to_string(), - ), + over: _10y12y18m1d1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mPattern2::new(client.clone(), acc.clone(), "over".to_string()), + range: _10y12y18m1d1h1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mOverUnderPattern2::new(client.clone(), acc.clone(), String::new()), + under: _10y12y15y18m1m1w1y2m2y3m3y4m4y5m5y6m6y7y8y9mPattern2::new(client.clone(), acc.clone(), "under".to_string()), } } } @@ -6805,15 +4688,9 @@ impl PpmPriceRatioPattern { /// Create a new pattern node with accumulated series name. pub fn new(client: Arc, acc: String, disc: String) -> Self { Self { - ppm: SeriesPattern1::new( - client.clone(), - _m(&acc, &format!("ratio_{disc}_ppm", disc = disc)), - ), + ppm: SeriesPattern1::new(client.clone(), _m(&acc, &format!("ratio_{disc}_ppm", disc=disc))), price: CentsSatsUsdPattern::new(client.clone(), _m(&acc, &disc)), - ratio: SeriesPattern1::new( - client.clone(), - _m(&acc, &format!("ratio_{disc}", disc = disc)), - ), + ratio: SeriesPattern1::new(client.clone(), _m(&acc, &format!("ratio_{disc}", disc=disc))), } } } @@ -6830,14 +4707,8 @@ impl RsiStochPattern { pub fn new(client: Arc, acc: String, disc: String) -> Self { Self { rsi: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, &disc)), - stoch_rsi_d: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, &format!("stoch_d_{disc}", disc = disc)), - ), - stoch_rsi_k: PercentPpmRatioPattern2::new( - client.clone(), - _m(&acc, &format!("stoch_k_{disc}", disc = disc)), - ), + stoch_rsi_d: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, &format!("stoch_d_{disc}", disc=disc))), + stoch_rsi_k: PercentPpmRatioPattern2::new(client.clone(), _m(&acc, &format!("stoch_k_{disc}", disc=disc))), } } } @@ -7495,27 +5366,18 @@ impl SeriesTree { pub fn new(client: Arc, base_path: String) -> Self { Self { blocks: SeriesTree_Blocks::new(client.clone(), format!("{base_path}_blocks")), - transactions: SeriesTree_Transactions::new( - client.clone(), - format!("{base_path}_transactions"), - ), + transactions: SeriesTree_Transactions::new(client.clone(), format!("{base_path}_transactions")), inputs: SeriesTree_Inputs::new(client.clone(), format!("{base_path}_inputs")), outputs: SeriesTree_Outputs::new(client.clone(), format!("{base_path}_outputs")), addrs: SeriesTree_Addrs::new(client.clone(), format!("{base_path}_addrs")), scripts: SeriesTree_Scripts::new(client.clone(), format!("{base_path}_scripts")), op_return: SeriesTree_OpReturn::new(client.clone(), format!("{base_path}_op_return")), mining: SeriesTree_Mining::new(client.clone(), format!("{base_path}_mining")), - frameworks: SeriesTree_Frameworks::new( - client.clone(), - format!("{base_path}_frameworks"), - ), + frameworks: SeriesTree_Frameworks::new(client.clone(), format!("{base_path}_frameworks")), models: SeriesTree_Models::new(client.clone(), format!("{base_path}_models")), constants: SeriesTree_Constants::new(client.clone(), format!("{base_path}_constants")), indexes: SeriesTree_Indexes::new(client.clone(), format!("{base_path}_indexes")), - indicators: SeriesTree_Indicators::new( - client.clone(), - format!("{base_path}_indicators"), - ), + indicators: SeriesTree_Indicators::new(client.clone(), format!("{base_path}_indicators")), investing: SeriesTree_Investing::new(client.clone(), format!("{base_path}_investing")), market: SeriesTree_Market::new(client.clone(), format!("{base_path}_market")), pools: SeriesTree_Pools::new(client.clone(), format!("{base_path}_pools")), @@ -7551,36 +5413,18 @@ impl SeriesTree_Blocks { Self { blockhash: SeriesPattern18::new(client.clone(), "blockhash".to_string()), coinbase_tag: SeriesPattern18::new(client.clone(), "coinbase_tag".to_string()), - difficulty: SeriesTree_Blocks_Difficulty::new( - client.clone(), - format!("{base_path}_difficulty"), - ), + difficulty: SeriesTree_Blocks_Difficulty::new(client.clone(), format!("{base_path}_difficulty")), time: SeriesTree_Blocks_Time::new(client.clone(), format!("{base_path}_time")), size: SeriesTree_Blocks_Size::new(client.clone(), format!("{base_path}_size")), - weight: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern::new( - client.clone(), - "block_weight".to_string(), - ), + weight: AverageBaseCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern::new(client.clone(), "block_weight".to_string()), segwit_txs: SeriesPattern18::new(client.clone(), "segwit_txs".to_string()), segwit_size: SeriesPattern18::new(client.clone(), "segwit_size".to_string()), segwit_weight: SeriesPattern18::new(client.clone(), "segwit_weight".to_string()), count: SeriesTree_Blocks_Count::new(client.clone(), format!("{base_path}_count")), - lookback: SeriesTree_Blocks_Lookback::new( - client.clone(), - format!("{base_path}_lookback"), - ), - interval: SeriesTree_Blocks_Interval::new( - client.clone(), - format!("{base_path}_interval"), - ), - vbytes: AverageBlockCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern::new( - client.clone(), - "block_vbytes".to_string(), - ), - fullness: SeriesTree_Blocks_Fullness::new( - client.clone(), - format!("{base_path}_fullness"), - ), + lookback: SeriesTree_Blocks_Lookback::new(client.clone(), format!("{base_path}_lookback")), + interval: SeriesTree_Blocks_Interval::new(client.clone(), format!("{base_path}_interval")), + vbytes: AverageBlockCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern::new(client.clone(), "block_vbytes".to_string()), + fullness: SeriesTree_Blocks_Fullness::new(client.clone(), format!("{base_path}_fullness")), halving: SeriesTree_Blocks_Halving::new(client.clone(), format!("{base_path}_halving")), } } @@ -7601,15 +5445,9 @@ impl SeriesTree_Blocks_Difficulty { Self { value: SeriesPattern1::new(client.clone(), "difficulty".to_string()), hashrate: SeriesPattern1::new(client.clone(), "difficulty_hashrate".to_string()), - adjustment: PercentPpmRatioPattern3::new( - client.clone(), - "difficulty_adjustment".to_string(), - ), + adjustment: PercentPpmRatioPattern3::new(client.clone(), "difficulty_adjustment".to_string()), epoch: SeriesPattern1::new(client.clone(), "difficulty_epoch".to_string()), - blocks_to_retarget: SeriesPattern1::new( - client.clone(), - "blocks_to_retarget".to_string(), - ), + blocks_to_retarget: SeriesPattern1::new(client.clone(), "blocks_to_retarget".to_string()), days_to_retarget: SeriesPattern1::new(client.clone(), "days_to_retarget".to_string()), } } @@ -7846,33 +5684,15 @@ impl SeriesTree_Transactions { pub fn new(client: Arc, base_path: String) -> Self { Self { raw: SeriesTree_Transactions_Raw::new(client.clone(), format!("{base_path}_raw")), - features: SeriesTree_Transactions_Features::new( - client.clone(), - format!("{base_path}_features"), - ), + features: SeriesTree_Transactions_Features::new(client.clone(), format!("{base_path}_features")), count: SeriesTree_Transactions_Count::new(client.clone(), format!("{base_path}_count")), size: SeriesTree_Transactions_Size::new(client.clone(), format!("{base_path}_size")), fees: SeriesTree_Transactions_Fees::new(client.clone(), format!("{base_path}_fees")), - patterns: SeriesTree_Transactions_Patterns::new( - client.clone(), - format!("{base_path}_patterns"), - ), - policy: SeriesTree_Transactions_Policy::new( - client.clone(), - format!("{base_path}_policy"), - ), - sigops: SeriesTree_Transactions_Sigops::new( - client.clone(), - format!("{base_path}_sigops"), - ), - versions: SeriesTree_Transactions_Versions::new( - client.clone(), - format!("{base_path}_versions"), - ), - volume: SeriesTree_Transactions_Volume::new( - client.clone(), - format!("{base_path}_volume"), - ), + patterns: SeriesTree_Transactions_Patterns::new(client.clone(), format!("{base_path}_patterns")), + policy: SeriesTree_Transactions_Policy::new(client.clone(), format!("{base_path}_policy")), + sigops: SeriesTree_Transactions_Sigops::new(client.clone(), format!("{base_path}_sigops")), + versions: SeriesTree_Transactions_Versions::new(client.clone(), format!("{base_path}_versions")), + volume: SeriesTree_Transactions_Volume::new(client.clone(), format!("{base_path}_volume")), } } } @@ -7901,15 +5721,9 @@ impl SeriesTree_Transactions_Raw { weight: SeriesPattern19::new(client.clone(), "tx_weight".to_string()), total_size: SeriesPattern19::new(client.clone(), "total_size".to_string()), total_sigop_cost: SeriesPattern19::new(client.clone(), "total_sigop_cost".to_string()), - is_explicitly_rbf: SeriesPattern19::new( - client.clone(), - "is_explicitly_rbf".to_string(), - ), + is_explicitly_rbf: SeriesPattern19::new(client.clone(), "is_explicitly_rbf".to_string()), first_txin_index: SeriesPattern19::new(client.clone(), "first_txin_index".to_string()), - first_txout_index: SeriesPattern19::new( - client.clone(), - "first_txout_index".to_string(), - ), + first_txout_index: SeriesPattern19::new(client.clone(), "first_txout_index".to_string()), } } } @@ -7943,10 +5757,7 @@ pub struct SeriesTree_Transactions_Features { impl SeriesTree_Transactions_Features { pub fn new(client: Arc, base_path: String) -> Self { Self { - count: SeriesTree_Transactions_Features_Count::new( - client.clone(), - format!("{base_path}_count"), - ), + count: SeriesTree_Transactions_Features_Count::new(client.clone(), format!("{base_path}_count")), has_p2pk: SeriesPattern19::new(client.clone(), "has_p2pk".to_string()), has_p2ms: SeriesPattern19::new(client.clone(), "has_p2ms".to_string()), has_p2pkh: SeriesPattern19::new(client.clone(), "has_p2pkh".to_string()), @@ -7959,26 +5770,14 @@ impl SeriesTree_Transactions_Features { has_empty: SeriesPattern19::new(client.clone(), "has_empty".to_string()), has_unknown: SeriesPattern19::new(client.clone(), "has_unknown".to_string()), has_fake_pubkey: SeriesPattern19::new(client.clone(), "has_fake_pubkey".to_string()), - has_fake_scripthash: SeriesPattern19::new( - client.clone(), - "has_fake_scripthash".to_string(), - ), + has_fake_scripthash: SeriesPattern19::new(client.clone(), "has_fake_scripthash".to_string()), has_inscription: SeriesPattern19::new(client.clone(), "has_inscription".to_string()), has_annex: SeriesPattern19::new(client.clone(), "has_annex".to_string()), has_sighash_all: SeriesPattern19::new(client.clone(), "has_sighash_all".to_string()), has_sighash_none: SeriesPattern19::new(client.clone(), "has_sighash_none".to_string()), - has_sighash_single: SeriesPattern19::new( - client.clone(), - "has_sighash_single".to_string(), - ), - has_sighash_default: SeriesPattern19::new( - client.clone(), - "has_sighash_default".to_string(), - ), - has_sighash_anyone_can_pay: SeriesPattern19::new( - client.clone(), - "has_sighash_anyone_can_pay".to_string(), - ), + has_sighash_single: SeriesPattern19::new(client.clone(), "has_sighash_single".to_string()), + has_sighash_default: SeriesPattern19::new(client.clone(), "has_sighash_default".to_string()), + has_sighash_anyone_can_pay: SeriesPattern19::new(client.clone(), "has_sighash_anyone_can_pay".to_string()), has_dust_output: SeriesPattern19::new(client.clone(), "has_dust_output".to_string()), } } @@ -8022,14 +5821,8 @@ impl SeriesTree_Transactions_Features_Count { v1: SeriesPattern18::new(client.clone(), "tx_count_v1".to_string()), v2: SeriesPattern18::new(client.clone(), "tx_count_v2".to_string()), v3: SeriesPattern18::new(client.clone(), "tx_count_v3".to_string()), - other_version: SeriesPattern18::new( - client.clone(), - "tx_count_other_version".to_string(), - ), - explicitly_rbf: SeriesPattern18::new( - client.clone(), - "tx_count_explicitly_rbf".to_string(), - ), + other_version: SeriesPattern18::new(client.clone(), "tx_count_other_version".to_string()), + explicitly_rbf: SeriesPattern18::new(client.clone(), "tx_count_explicitly_rbf".to_string()), one_input: SeriesPattern18::new(client.clone(), "tx_count_one_input".to_string()), one_output: SeriesPattern18::new(client.clone(), "tx_count_one_output".to_string()), p2pk: SeriesPattern18::new(client.clone(), "tx_count_p2pk".to_string()), @@ -8044,42 +5837,15 @@ impl SeriesTree_Transactions_Features_Count { empty: SeriesPattern18::new(client.clone(), "tx_count_empty".to_string()), unknown: SeriesPattern18::new(client.clone(), "tx_count_unknown".to_string()), fake_pubkey: SeriesPattern18::new(client.clone(), "tx_count_fake_pubkey".to_string()), - fake_scripthash: SeriesPattern18::new( - client.clone(), - "tx_count_fake_scripthash".to_string(), - ), - inscription: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_inscription".to_string(), - ), - annex: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_annex".to_string(), - ), - sighash_all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_sighash_all".to_string(), - ), - sighash_none: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_sighash_none".to_string(), - ), - sighash_single: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_sighash_single".to_string(), - ), - sighash_default: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_sighash_default".to_string(), - ), - sighash_anyone_can_pay: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_sighash_anyone_can_pay".to_string(), - ), - dust_output: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_dust_output".to_string(), - ), + fake_scripthash: SeriesPattern18::new(client.clone(), "tx_count_fake_scripthash".to_string()), + inscription: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_inscription".to_string()), + annex: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_annex".to_string()), + sighash_all: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_sighash_all".to_string()), + sighash_none: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_sighash_none".to_string()), + sighash_single: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_sighash_single".to_string()), + sighash_default: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_sighash_default".to_string()), + sighash_anyone_can_pay: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_sighash_anyone_can_pay".to_string()), + dust_output: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_dust_output".to_string()), } } } @@ -8092,10 +5858,7 @@ pub struct SeriesTree_Transactions_Count { impl SeriesTree_Transactions_Count { pub fn new(client: Arc, base_path: String) -> Self { Self { - total: AverageBlockCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern::new( - client.clone(), - "tx_count".to_string(), - ), + total: AverageBlockCumulativeMaxMedianMinPct10Pct25Pct75Pct90SumPattern::new(client.clone(), "tx_count".to_string()), } } } @@ -8109,14 +5872,8 @@ pub struct SeriesTree_Transactions_Size { impl SeriesTree_Transactions_Size { pub fn new(client: Arc, base_path: String) -> Self { Self { - vsize: SeriesTree_Transactions_Size_Vsize::new( - client.clone(), - format!("{base_path}_vsize"), - ), - weight: SeriesTree_Transactions_Size_Weight::new( - client.clone(), - format!("{base_path}_weight"), - ), + vsize: SeriesTree_Transactions_Size_Vsize::new(client.clone(), format!("{base_path}_vsize")), + weight: SeriesTree_Transactions_Size_Weight::new(client.clone(), format!("{base_path}_weight")), } } } @@ -8132,14 +5889,8 @@ impl SeriesTree_Transactions_Size_Vsize { pub fn new(client: Arc, base_path: String) -> Self { Self { tx_index: SeriesPattern19::new(client.clone(), "tx_vsize".to_string()), - block: MaxMedianMinPct10Pct25Pct75Pct90Pattern2::new( - client.clone(), - "tx_vsize".to_string(), - ), - _6b: MaxMedianMinPct10Pct25Pct75Pct90Pattern2::new( - client.clone(), - "tx_vsize_6b".to_string(), - ), + block: MaxMedianMinPct10Pct25Pct75Pct90Pattern2::new(client.clone(), "tx_vsize".to_string()), + _6b: MaxMedianMinPct10Pct25Pct75Pct90Pattern2::new(client.clone(), "tx_vsize_6b".to_string()), } } } @@ -8153,14 +5904,8 @@ pub struct SeriesTree_Transactions_Size_Weight { impl SeriesTree_Transactions_Size_Weight { pub fn new(client: Arc, base_path: String) -> Self { Self { - block: MaxMedianMinPct10Pct25Pct75Pct90Pattern::new( - client.clone(), - "tx_weight".to_string(), - ), - _6b: MaxMedianMinPct10Pct25Pct75Pct90Pattern::new( - client.clone(), - "tx_weight_6b".to_string(), - ), + block: MaxMedianMinPct10Pct25Pct75Pct90Pattern::new(client.clone(), "tx_weight".to_string()), + _6b: MaxMedianMinPct10Pct25Pct75Pct90Pattern::new(client.clone(), "tx_weight_6b".to_string()), } } } @@ -8180,18 +5925,12 @@ pub struct SeriesTree_Transactions_Fees { impl SeriesTree_Transactions_Fees { pub fn new(client: Arc, base_path: String) -> Self { Self { - count: SeriesTree_Transactions_Fees_Count::new( - client.clone(), - format!("{base_path}_count"), - ), + count: SeriesTree_Transactions_Fees_Count::new(client.clone(), format!("{base_path}_count")), input_value: SeriesPattern19::new(client.clone(), "input_value".to_string()), output_value: SeriesPattern19::new(client.clone(), "output_value".to_string()), fee: _6bBlockTxPattern::new(client.clone(), "fee".to_string()), fee_rate: SeriesPattern19::new(client.clone(), "fee_rate".to_string()), - effective_fee_rate: _6bBlockTxPattern::new( - client.clone(), - "effective_fee_rate".to_string(), - ), + effective_fee_rate: _6bBlockTxPattern::new(client.clone(), "effective_fee_rate".to_string()), is_cpfp_parent: SeriesPattern19::new(client.clone(), "is_cpfp_parent".to_string()), is_cpfp_child: SeriesPattern19::new(client.clone(), "is_cpfp_child".to_string()), } @@ -8207,14 +5946,8 @@ pub struct SeriesTree_Transactions_Fees_Count { impl SeriesTree_Transactions_Fees_Count { pub fn new(client: Arc, base_path: String) -> Self { Self { - cpfp_parent: AverageBlockCumulativeSumPattern::new( - client.clone(), - "cpfp_parent_count".to_string(), - ), - cpfp_child: AverageBlockCumulativeSumPattern::new( - client.clone(), - "cpfp_child_count".to_string(), - ), + cpfp_parent: AverageBlockCumulativeSumPattern::new(client.clone(), "cpfp_parent_count".to_string()), + cpfp_child: AverageBlockCumulativeSumPattern::new(client.clone(), "cpfp_child_count".to_string()), } } } @@ -8230,10 +5963,7 @@ pub struct SeriesTree_Transactions_Patterns { impl SeriesTree_Transactions_Patterns { pub fn new(client: Arc, base_path: String) -> Self { Self { - count: SeriesTree_Transactions_Patterns_Count::new( - client.clone(), - format!("{base_path}_count"), - ), + count: SeriesTree_Transactions_Patterns_Count::new(client.clone(), format!("{base_path}_count")), is_coinjoin: SeriesPattern19::new(client.clone(), "is_coinjoin".to_string()), is_consolidation: SeriesPattern19::new(client.clone(), "is_consolidation".to_string()), is_batch_payout: SeriesPattern19::new(client.clone(), "is_batch_payout".to_string()), @@ -8251,18 +5981,9 @@ pub struct SeriesTree_Transactions_Patterns_Count { impl SeriesTree_Transactions_Patterns_Count { pub fn new(client: Arc, base_path: String) -> Self { Self { - coinjoin: AverageBlockCumulativeSumPattern::new( - client.clone(), - "coinjoin_count".to_string(), - ), - consolidation: AverageBlockCumulativeSumPattern::new( - client.clone(), - "consolidation_count".to_string(), - ), - batch_payout: AverageBlockCumulativeSumPattern::new( - client.clone(), - "batch_payout_count".to_string(), - ), + coinjoin: AverageBlockCumulativeSumPattern::new(client.clone(), "coinjoin_count".to_string()), + consolidation: AverageBlockCumulativeSumPattern::new(client.clone(), "consolidation_count".to_string()), + batch_payout: AverageBlockCumulativeSumPattern::new(client.clone(), "batch_payout_count".to_string()), } } } @@ -8276,10 +5997,7 @@ pub struct SeriesTree_Transactions_Policy { impl SeriesTree_Transactions_Policy { pub fn new(client: Arc, base_path: String) -> Self { Self { - count: SeriesTree_Transactions_Policy_Count::new( - client.clone(), - format!("{base_path}_count"), - ), + count: SeriesTree_Transactions_Policy_Count::new(client.clone(), format!("{base_path}_count")), is_nonstandard: SeriesPattern19::new(client.clone(), "is_nonstandard".to_string()), } } @@ -8293,10 +6011,7 @@ pub struct SeriesTree_Transactions_Policy_Count { impl SeriesTree_Transactions_Policy_Count { pub fn new(client: Arc, base_path: String) -> Self { Self { - nonstandard: AverageBlockCumulativeSumPattern::new( - client.clone(), - "nonstandard_count".to_string(), - ), + nonstandard: AverageBlockCumulativeSumPattern::new(client.clone(), "nonstandard_count".to_string()), } } } @@ -8309,10 +6024,7 @@ pub struct SeriesTree_Transactions_Sigops { impl SeriesTree_Transactions_Sigops { pub fn new(client: Arc, base_path: String) -> Self { Self { - total: AverageBlockCumulativeSumPattern::new( - client.clone(), - "total_sigop_cost".to_string(), - ), + total: AverageBlockCumulativeSumPattern::new(client.clone(), "total_sigop_cost".to_string()), } } } @@ -8331,10 +6043,7 @@ impl SeriesTree_Transactions_Versions { v1: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_v1".to_string()), v2: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_v2".to_string()), v3: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_v3".to_string()), - other: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_other_version".to_string(), - ), + other: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_other_version".to_string()), } } } @@ -8348,10 +6057,7 @@ pub struct SeriesTree_Transactions_Volume { impl SeriesTree_Transactions_Volume { pub fn new(client: Arc, base_path: String) -> Self { Self { - transfer_volume: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "transfer_volume_bis".to_string(), - ), + transfer_volume: AverageBlockCumulativeSumPattern2::new(client.clone(), "transfer_volume_bis".to_string()), tx_per_sec: _1m1w1y24hPattern::new(client.clone(), "tx_per_sec".to_string()), } } @@ -8412,22 +6118,10 @@ pub struct SeriesTree_Inputs_ByType { impl SeriesTree_Inputs_ByType { pub fn new(client: Arc, base_path: String) -> Self { Self { - input_count: SeriesTree_Inputs_ByType_InputCount::new( - client.clone(), - format!("{base_path}_input_count"), - ), - input_share: SeriesTree_Inputs_ByType_InputShare::new( - client.clone(), - format!("{base_path}_input_share"), - ), - tx_count: SeriesTree_Inputs_ByType_TxCount::new( - client.clone(), - format!("{base_path}_tx_count"), - ), - tx_share: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern13::new( - client.clone(), - "tx_share_with".to_string(), - ), + input_count: SeriesTree_Inputs_ByType_InputCount::new(client.clone(), format!("{base_path}_input_count")), + input_share: SeriesTree_Inputs_ByType_InputShare::new(client.clone(), format!("{base_path}_input_share")), + tx_count: SeriesTree_Inputs_ByType_TxCount::new(client.clone(), format!("{base_path}_tx_count")), + tx_share: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern13::new(client.clone(), "tx_share_with".to_string()), } } } @@ -8452,54 +6146,18 @@ pub struct SeriesTree_Inputs_ByType_InputCount { impl SeriesTree_Inputs_ByType_InputCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "input_count_bis".to_string(), - ), - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk65_prevout_count".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk33_prevout_count".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pkh_prevout_count".to_string(), - ), - p2ms: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2ms_prevout_count".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2sh_prevout_count".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wpkh_prevout_count".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wsh_prevout_count".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2tr_prevout_count".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2a_prevout_count".to_string(), - ), - unknown: AverageBlockCumulativeSumPattern::new( - client.clone(), - "unknown_outputs_prevout_count".to_string(), - ), - empty: AverageBlockCumulativeSumPattern::new( - client.clone(), - "empty_outputs_prevout_count".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "input_count_bis".to_string()), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk65_prevout_count".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk33_prevout_count".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pkh_prevout_count".to_string()), + p2ms: AverageBlockCumulativeSumPattern::new(client.clone(), "p2ms_prevout_count".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2sh_prevout_count".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wpkh_prevout_count".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wsh_prevout_count".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "p2tr_prevout_count".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "p2a_prevout_count".to_string()), + unknown: AverageBlockCumulativeSumPattern::new(client.clone(), "unknown_outputs_prevout_count".to_string()), + empty: AverageBlockCumulativeSumPattern::new(client.clone(), "empty_outputs_prevout_count".to_string()), height: SeriesPattern18::new(client.clone(), "prevout_count_by_type".to_string()), } } @@ -8523,50 +6181,17 @@ pub struct SeriesTree_Inputs_ByType_InputShare { impl SeriesTree_Inputs_ByType_InputShare { pub fn new(client: Arc, base_path: String) -> Self { Self { - p2pk65: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2pk65_prevout_share".to_string(), - ), - p2pk33: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2pk33_prevout_share".to_string(), - ), - p2pkh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2pkh_prevout_share".to_string(), - ), - p2ms: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2ms_prevout_share".to_string(), - ), - p2sh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2sh_prevout_share".to_string(), - ), - p2wpkh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2wpkh_prevout_share".to_string(), - ), - p2wsh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2wsh_prevout_share".to_string(), - ), - p2tr: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2tr_prevout_share".to_string(), - ), - p2a: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2a_prevout_share".to_string(), - ), - unknown: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "unknown_outputs_prevout_share".to_string(), - ), - empty: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "empty_outputs_prevout_share".to_string(), - ), + p2pk65: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2pk65_prevout_share".to_string()), + p2pk33: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2pk33_prevout_share".to_string()), + p2pkh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2pkh_prevout_share".to_string()), + p2ms: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2ms_prevout_share".to_string()), + p2sh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2sh_prevout_share".to_string()), + p2wpkh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2wpkh_prevout_share".to_string()), + p2wsh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2wsh_prevout_share".to_string()), + p2tr: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2tr_prevout_share".to_string()), + p2a: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2a_prevout_share".to_string()), + unknown: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "unknown_outputs_prevout_share".to_string()), + empty: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "empty_outputs_prevout_share".to_string()), } } } @@ -8591,58 +6216,19 @@ pub struct SeriesTree_Inputs_ByType_TxCount { impl SeriesTree_Inputs_ByType_TxCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "non_coinbase_tx_count".to_string(), - ), - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2pk65_prevout".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2pk33_prevout".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2pkh_prevout".to_string(), - ), - p2ms: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2ms_prevout".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2sh_prevout".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2wpkh_prevout".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2wsh_prevout".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2tr_prevout".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2a_prevout".to_string(), - ), - unknown: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_unknown_outputs_prevout".to_string(), - ), - empty: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_empty_outputs_prevout".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "tx_count_with_prevout_by_type_cumulative".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "non_coinbase_tx_count".to_string()), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2pk65_prevout".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2pk33_prevout".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2pkh_prevout".to_string()), + p2ms: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2ms_prevout".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2sh_prevout".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2wpkh_prevout".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2wsh_prevout".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2tr_prevout".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2a_prevout".to_string()), + unknown: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_unknown_outputs_prevout".to_string()), + empty: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_empty_outputs_prevout".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "tx_count_with_prevout_by_type_cumulative".to_string()), } } } @@ -8665,10 +6251,7 @@ impl SeriesTree_Outputs { spent: SeriesTree_Outputs_Spent::new(client.clone(), format!("{base_path}_spent")), count: SeriesTree_Outputs_Count::new(client.clone(), format!("{base_path}_count")), per_sec: _1m1w1y24hPattern::new(client.clone(), "outputs_per_sec".to_string()), - unspent: SeriesTree_Outputs_Unspent::new( - client.clone(), - format!("{base_path}_unspent"), - ), + unspent: SeriesTree_Outputs_Unspent::new(client.clone(), format!("{base_path}_unspent")), by_type: SeriesTree_Outputs_ByType::new(client.clone(), format!("{base_path}_by_type")), value: SeriesTree_Outputs_Value::new(client.clone(), format!("{base_path}_value")), } @@ -8686,10 +6269,7 @@ pub struct SeriesTree_Outputs_Raw { impl SeriesTree_Outputs_Raw { pub fn new(client: Arc, base_path: String) -> Self { Self { - first_txout_index: SeriesPattern18::new( - client.clone(), - "first_txout_index".to_string(), - ), + first_txout_index: SeriesPattern18::new(client.clone(), "first_txout_index".to_string()), value: SeriesPattern21::new(client.clone(), "value".to_string()), output_type: SeriesPattern21::new(client.clone(), "output_type".to_string()), type_index: SeriesPattern21::new(client.clone(), "type_index".to_string()), @@ -8748,26 +6328,11 @@ pub struct SeriesTree_Outputs_ByType { impl SeriesTree_Outputs_ByType { pub fn new(client: Arc, base_path: String) -> Self { Self { - output_count: SeriesTree_Outputs_ByType_OutputCount::new( - client.clone(), - format!("{base_path}_output_count"), - ), - spendable_output_count: AverageBlockCumulativeSumPattern::new( - client.clone(), - "spendable_output_count".to_string(), - ), - output_share: SeriesTree_Outputs_ByType_OutputShare::new( - client.clone(), - format!("{base_path}_output_share"), - ), - tx_count: SeriesTree_Outputs_ByType_TxCount::new( - client.clone(), - format!("{base_path}_tx_count"), - ), - tx_share: EmptyOpP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern2::new( - client.clone(), - "tx_share_with".to_string(), - ), + output_count: SeriesTree_Outputs_ByType_OutputCount::new(client.clone(), format!("{base_path}_output_count")), + spendable_output_count: AverageBlockCumulativeSumPattern::new(client.clone(), "spendable_output_count".to_string()), + output_share: SeriesTree_Outputs_ByType_OutputShare::new(client.clone(), format!("{base_path}_output_share")), + tx_count: SeriesTree_Outputs_ByType_TxCount::new(client.clone(), format!("{base_path}_tx_count")), + tx_share: EmptyOpP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern2::new(client.clone(), "tx_share_with".to_string()), } } } @@ -8793,58 +6358,19 @@ pub struct SeriesTree_Outputs_ByType_OutputCount { impl SeriesTree_Outputs_ByType_OutputCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "output_count_bis".to_string(), - ), - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk65_output_count".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk33_output_count".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pkh_output_count".to_string(), - ), - p2ms: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2ms_output_count".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2sh_output_count".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wpkh_output_count".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wsh_output_count".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2tr_output_count".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2a_output_count".to_string(), - ), - unknown: AverageBlockCumulativeSumPattern::new( - client.clone(), - "unknown_outputs_output_count".to_string(), - ), - empty: AverageBlockCumulativeSumPattern::new( - client.clone(), - "empty_outputs_output_count".to_string(), - ), - op_return: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_output_count".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "output_count_bis".to_string()), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk65_output_count".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk33_output_count".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pkh_output_count".to_string()), + p2ms: AverageBlockCumulativeSumPattern::new(client.clone(), "p2ms_output_count".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2sh_output_count".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wpkh_output_count".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wsh_output_count".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "p2tr_output_count".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "p2a_output_count".to_string()), + unknown: AverageBlockCumulativeSumPattern::new(client.clone(), "unknown_outputs_output_count".to_string()), + empty: AverageBlockCumulativeSumPattern::new(client.clone(), "empty_outputs_output_count".to_string()), + op_return: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_output_count".to_string()), height: SeriesPattern18::new(client.clone(), "output_count_by_type".to_string()), } } @@ -8869,54 +6395,18 @@ pub struct SeriesTree_Outputs_ByType_OutputShare { impl SeriesTree_Outputs_ByType_OutputShare { pub fn new(client: Arc, base_path: String) -> Self { Self { - p2pk65: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2pk65_output_share".to_string(), - ), - p2pk33: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2pk33_output_share".to_string(), - ), - p2pkh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2pkh_output_share".to_string(), - ), - p2ms: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2ms_output_share".to_string(), - ), - p2sh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2sh_output_share".to_string(), - ), - p2wpkh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2wpkh_output_share".to_string(), - ), - p2wsh: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2wsh_output_share".to_string(), - ), - p2tr: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2tr_output_share".to_string(), - ), - p2a: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "p2a_output_share".to_string(), - ), - unknown: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "unknown_outputs_output_share".to_string(), - ), - empty: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "empty_outputs_output_share".to_string(), - ), - op_return: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "op_return_output_share".to_string(), - ), + p2pk65: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2pk65_output_share".to_string()), + p2pk33: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2pk33_output_share".to_string()), + p2pkh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2pkh_output_share".to_string()), + p2ms: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2ms_output_share".to_string()), + p2sh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2sh_output_share".to_string()), + p2wpkh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2wpkh_output_share".to_string()), + p2wsh: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2wsh_output_share".to_string()), + p2tr: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2tr_output_share".to_string()), + p2a: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "p2a_output_share".to_string()), + unknown: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "unknown_outputs_output_share".to_string()), + empty: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "empty_outputs_output_share".to_string()), + op_return: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "op_return_output_share".to_string()), } } } @@ -8943,58 +6433,19 @@ impl SeriesTree_Outputs_ByType_TxCount { pub fn new(client: Arc, base_path: String) -> Self { Self { all: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_bis".to_string()), - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2pk65_output".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2pk33_output".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2pkh_output".to_string(), - ), - p2ms: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2ms_output".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2sh_output".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2wpkh_output".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2wsh_output".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2tr_output".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_p2a_output".to_string(), - ), - unknown: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_unknown_outputs_output".to_string(), - ), - empty: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_empty_outputs_output".to_string(), - ), - op_return: AverageBlockCumulativeSumPattern::new( - client.clone(), - "tx_count_with_op_return_output".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "tx_count_with_output_by_type_cumulative".to_string(), - ), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2pk65_output".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2pk33_output".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2pkh_output".to_string()), + p2ms: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2ms_output".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2sh_output".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2wpkh_output".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2wsh_output".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2tr_output".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_p2a_output".to_string()), + unknown: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_unknown_outputs_output".to_string()), + empty: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_empty_outputs_output".to_string()), + op_return: AverageBlockCumulativeSumPattern::new(client.clone(), "tx_count_with_op_return_output".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "tx_count_with_output_by_type_cumulative".to_string()), } } } @@ -9037,20 +6488,14 @@ impl SeriesTree_Addrs { data: SeriesTree_Addrs_Data::new(client.clone(), format!("{base_path}_data")), funded: SeriesTree_Addrs_Funded::new(client.clone(), format!("{base_path}_funded")), empty: SeriesTree_Addrs_Empty::new(client.clone(), format!("{base_path}_empty")), - activity: SeriesTree_Addrs_Activity::new( - client.clone(), - format!("{base_path}_activity"), - ), + activity: SeriesTree_Addrs_Activity::new(client.clone(), format!("{base_path}_activity")), total: SeriesTree_Addrs_Total::new(client.clone(), format!("{base_path}_total")), new: SeriesTree_Addrs_New::new(client.clone(), format!("{base_path}_new")), reused: SeriesTree_Addrs_Reused::new(client.clone(), format!("{base_path}_reused")), respent: SeriesTree_Addrs_Respent::new(client.clone(), format!("{base_path}_respent")), exposed: SeriesTree_Addrs_Exposed::new(client.clone(), format!("{base_path}_exposed")), delta: SeriesTree_Addrs_Delta::new(client.clone(), format!("{base_path}_delta")), - avg_amount: SeriesTree_Addrs_AvgAmount::new( - client.clone(), - format!("{base_path}_avg_amount"), - ), + avg_amount: SeriesTree_Addrs_AvgAmount::new(client.clone(), format!("{base_path}_avg_amount")), } } } @@ -9091,10 +6536,7 @@ pub struct SeriesTree_Addrs_Raw_P2pk65 { impl SeriesTree_Addrs_Raw_P2pk65 { pub fn new(client: Arc, base_path: String) -> Self { Self { - first_index: SeriesPattern18::new( - client.clone(), - "first_p2pk65_addr_index".to_string(), - ), + first_index: SeriesPattern18::new(client.clone(), "first_p2pk65_addr_index".to_string()), bytes: SeriesPattern27::new(client.clone(), "p2pk65_bytes".to_string()), } } @@ -9109,10 +6551,7 @@ pub struct SeriesTree_Addrs_Raw_P2pk33 { impl SeriesTree_Addrs_Raw_P2pk33 { pub fn new(client: Arc, base_path: String) -> Self { Self { - first_index: SeriesPattern18::new( - client.clone(), - "first_p2pk33_addr_index".to_string(), - ), + first_index: SeriesPattern18::new(client.clone(), "first_p2pk33_addr_index".to_string()), bytes: SeriesPattern26::new(client.clone(), "p2pk33_bytes".to_string()), } } @@ -9157,10 +6596,7 @@ pub struct SeriesTree_Addrs_Raw_P2wpkh { impl SeriesTree_Addrs_Raw_P2wpkh { pub fn new(client: Arc, base_path: String) -> Self { Self { - first_index: SeriesPattern18::new( - client.clone(), - "first_p2wpkh_addr_index".to_string(), - ), + first_index: SeriesPattern18::new(client.clone(), "first_p2wpkh_addr_index".to_string()), bytes: SeriesPattern31::new(client.clone(), "p2wpkh_bytes".to_string()), } } @@ -9285,10 +6721,7 @@ impl SeriesTree_Addrs_Funded { p2tr: SeriesPattern1::new(client.clone(), "p2tr_addr_count".to_string()), p2a: SeriesPattern1::new(client.clone(), "p2a_addr_count".to_string()), height: SeriesPattern18::new(client.clone(), "addr_count_by_type".to_string()), - balance: SeriesTree_Addrs_Funded_Balance::new( - client.clone(), - format!("{base_path}_balance"), - ), + balance: SeriesTree_Addrs_Funded_Balance::new(client.clone(), format!("{base_path}_balance")), } } } @@ -9304,22 +6737,10 @@ pub struct SeriesTree_Addrs_Funded_Balance { impl SeriesTree_Addrs_Funded_Balance { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Addrs_Funded_Balance_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Addrs_Funded_Balance_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Addrs_Funded_Balance_Over::new( - client.clone(), - format!("{base_path}_over"), - ), - matrix: SeriesPattern18::new( - client.clone(), - "addrs_addr_count_by_balance_range".to_string(), - ), + range: SeriesTree_Addrs_Funded_Balance_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Addrs_Funded_Balance_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Addrs_Funded_Balance_Over::new(client.clone(), format!("{base_path}_over")), + matrix: SeriesPattern18::new(client.clone(), "addrs_addr_count_by_balance_range".to_string()), } } } @@ -9347,62 +6768,20 @@ impl SeriesTree_Addrs_Funded_Balance_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { _0sats: BaseDeltaPattern::new(client.clone(), "addrs_0sats_addr_count".to_string()), - _1sat_to_10sats: BaseDeltaPattern::new( - client.clone(), - "addrs_1sat_to_10sats_addr_count".to_string(), - ), - _10sats_to_100sats: BaseDeltaPattern::new( - client.clone(), - "addrs_10sats_to_100sats_addr_count".to_string(), - ), - _100sats_to_1k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_100sats_to_1k_sats_addr_count".to_string(), - ), - _1k_sats_to_10k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_1k_sats_to_10k_sats_addr_count".to_string(), - ), - _10k_sats_to_100k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_10k_sats_to_100k_sats_addr_count".to_string(), - ), - _100k_sats_to_1m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_100k_sats_to_1m_sats_addr_count".to_string(), - ), - _1m_sats_to_10m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_1m_sats_to_10m_sats_addr_count".to_string(), - ), - _10m_sats_to_1btc: BaseDeltaPattern::new( - client.clone(), - "addrs_10m_sats_to_1btc_addr_count".to_string(), - ), - _1btc_to_10btc: BaseDeltaPattern::new( - client.clone(), - "addrs_1btc_to_10btc_addr_count".to_string(), - ), - _10btc_to_100btc: BaseDeltaPattern::new( - client.clone(), - "addrs_10btc_to_100btc_addr_count".to_string(), - ), - _100btc_to_1k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_100btc_to_1k_btc_addr_count".to_string(), - ), - _1k_btc_to_10k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_1k_btc_to_10k_btc_addr_count".to_string(), - ), - _10k_btc_to_100k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_10k_btc_to_100k_btc_addr_count".to_string(), - ), - over_100k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_100k_btc_addr_count".to_string(), - ), + _1sat_to_10sats: BaseDeltaPattern::new(client.clone(), "addrs_1sat_to_10sats_addr_count".to_string()), + _10sats_to_100sats: BaseDeltaPattern::new(client.clone(), "addrs_10sats_to_100sats_addr_count".to_string()), + _100sats_to_1k_sats: BaseDeltaPattern::new(client.clone(), "addrs_100sats_to_1k_sats_addr_count".to_string()), + _1k_sats_to_10k_sats: BaseDeltaPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats_addr_count".to_string()), + _10k_sats_to_100k_sats: BaseDeltaPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats_addr_count".to_string()), + _100k_sats_to_1m_sats: BaseDeltaPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats_addr_count".to_string()), + _1m_sats_to_10m_sats: BaseDeltaPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats_addr_count".to_string()), + _10m_sats_to_1btc: BaseDeltaPattern::new(client.clone(), "addrs_10m_sats_to_1btc_addr_count".to_string()), + _1btc_to_10btc: BaseDeltaPattern::new(client.clone(), "addrs_1btc_to_10btc_addr_count".to_string()), + _10btc_to_100btc: BaseDeltaPattern::new(client.clone(), "addrs_10btc_to_100btc_addr_count".to_string()), + _100btc_to_1k_btc: BaseDeltaPattern::new(client.clone(), "addrs_100btc_to_1k_btc_addr_count".to_string()), + _1k_btc_to_10k_btc: BaseDeltaPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc_addr_count".to_string()), + _10k_btc_to_100k_btc: BaseDeltaPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc_addr_count".to_string()), + over_100k_btc: BaseDeltaPattern::new(client.clone(), "addrs_over_100k_btc_addr_count".to_string()), } } } @@ -9427,55 +6806,19 @@ pub struct SeriesTree_Addrs_Funded_Balance_Under { impl SeriesTree_Addrs_Funded_Balance_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10sats_addr_count".to_string(), - ), - _100sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_100sats_addr_count".to_string(), - ), - _1k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_1k_sats_addr_count".to_string(), - ), - _10k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10k_sats_addr_count".to_string(), - ), - _100k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_100k_sats_addr_count".to_string(), - ), - _1m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_1m_sats_addr_count".to_string(), - ), - _10m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10m_sats_addr_count".to_string(), - ), + _10sats: BaseDeltaPattern::new(client.clone(), "addrs_under_10sats_addr_count".to_string()), + _100sats: BaseDeltaPattern::new(client.clone(), "addrs_under_100sats_addr_count".to_string()), + _1k_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_1k_sats_addr_count".to_string()), + _10k_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_10k_sats_addr_count".to_string()), + _100k_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_100k_sats_addr_count".to_string()), + _1m_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_1m_sats_addr_count".to_string()), + _10m_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_10m_sats_addr_count".to_string()), _1btc: BaseDeltaPattern::new(client.clone(), "addrs_under_1btc_addr_count".to_string()), - _10btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10btc_addr_count".to_string(), - ), - _100btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_100btc_addr_count".to_string(), - ), - _1k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_1k_btc_addr_count".to_string(), - ), - _10k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10k_btc_addr_count".to_string(), - ), - _100k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_100k_btc_addr_count".to_string(), - ), + _10btc: BaseDeltaPattern::new(client.clone(), "addrs_under_10btc_addr_count".to_string()), + _100btc: BaseDeltaPattern::new(client.clone(), "addrs_under_100btc_addr_count".to_string()), + _1k_btc: BaseDeltaPattern::new(client.clone(), "addrs_under_1k_btc_addr_count".to_string()), + _10k_btc: BaseDeltaPattern::new(client.clone(), "addrs_under_10k_btc_addr_count".to_string()), + _100k_btc: BaseDeltaPattern::new(client.clone(), "addrs_under_100k_btc_addr_count".to_string()), } } } @@ -9501,51 +6844,18 @@ impl SeriesTree_Addrs_Funded_Balance_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { _1sat: BaseDeltaPattern::new(client.clone(), "addrs_over_1sat_addr_count".to_string()), - _10sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10sats_addr_count".to_string(), - ), - _100sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_100sats_addr_count".to_string(), - ), - _1k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_1k_sats_addr_count".to_string(), - ), - _10k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10k_sats_addr_count".to_string(), - ), - _100k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_100k_sats_addr_count".to_string(), - ), - _1m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_1m_sats_addr_count".to_string(), - ), - _10m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10m_sats_addr_count".to_string(), - ), + _10sats: BaseDeltaPattern::new(client.clone(), "addrs_over_10sats_addr_count".to_string()), + _100sats: BaseDeltaPattern::new(client.clone(), "addrs_over_100sats_addr_count".to_string()), + _1k_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_1k_sats_addr_count".to_string()), + _10k_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_10k_sats_addr_count".to_string()), + _100k_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_100k_sats_addr_count".to_string()), + _1m_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_1m_sats_addr_count".to_string()), + _10m_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_10m_sats_addr_count".to_string()), _1btc: BaseDeltaPattern::new(client.clone(), "addrs_over_1btc_addr_count".to_string()), - _10btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10btc_addr_count".to_string(), - ), - _100btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_100btc_addr_count".to_string(), - ), - _1k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_1k_btc_addr_count".to_string(), - ), - _10k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10k_btc_addr_count".to_string(), - ), + _10btc: BaseDeltaPattern::new(client.clone(), "addrs_over_10btc_addr_count".to_string()), + _100btc: BaseDeltaPattern::new(client.clone(), "addrs_over_100btc_addr_count".to_string()), + _1k_btc: BaseDeltaPattern::new(client.clone(), "addrs_over_1k_btc_addr_count".to_string()), + _10k_btc: BaseDeltaPattern::new(client.clone(), "addrs_over_10k_btc_addr_count".to_string()), } } } @@ -9593,26 +6903,11 @@ pub struct SeriesTree_Addrs_Activity { impl SeriesTree_Addrs_Activity { pub fn new(client: Arc, base_path: String) -> Self { Self { - reactivated: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new( - client.clone(), - "reactivated_addrs".to_string(), - ), - sending: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new( - client.clone(), - "sending_addrs".to_string(), - ), - receiving: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new( - client.clone(), - "receiving_addrs".to_string(), - ), - bidirectional: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new( - client.clone(), - "bidirectional_addrs".to_string(), - ), - active: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new( - client.clone(), - "active_addrs".to_string(), - ), + reactivated: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new(client.clone(), "reactivated_addrs".to_string()), + sending: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new(client.clone(), "sending_addrs".to_string()), + receiving: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new(client.clone(), "receiving_addrs".to_string()), + bidirectional: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new(client.clone(), "bidirectional_addrs".to_string()), + active: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern::new(client.clone(), "active_addrs".to_string()), } } } @@ -9664,42 +6959,15 @@ pub struct SeriesTree_Addrs_New { impl SeriesTree_Addrs_New { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "new_addr_count".to_string(), - ), - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk65_new_addr_count".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk33_new_addr_count".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pkh_new_addr_count".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2sh_new_addr_count".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wpkh_new_addr_count".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wsh_new_addr_count".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2tr_new_addr_count".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2a_new_addr_count".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "new_addr_count".to_string()), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk65_new_addr_count".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk33_new_addr_count".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pkh_new_addr_count".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2sh_new_addr_count".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wpkh_new_addr_count".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wsh_new_addr_count".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "p2tr_new_addr_count".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "p2a_new_addr_count".to_string()), } } } @@ -9715,14 +6983,8 @@ impl SeriesTree_Addrs_Reused { pub fn new(client: Arc, base_path: String) -> Self { Self { count: SeriesTree_Addrs_Reused_Count::new(client.clone(), format!("{base_path}_count")), - events: SeriesTree_Addrs_Reused_Events::new( - client.clone(), - format!("{base_path}_events"), - ), - supply: SeriesTree_Addrs_Reused_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + events: SeriesTree_Addrs_Reused_Events::new(client.clone(), format!("{base_path}_events")), + supply: SeriesTree_Addrs_Reused_Supply::new(client.clone(), format!("{base_path}_supply")), } } } @@ -9736,14 +6998,8 @@ pub struct SeriesTree_Addrs_Reused_Count { impl SeriesTree_Addrs_Reused_Count { pub fn new(client: Arc, base_path: String) -> Self { Self { - funded: SeriesTree_Addrs_Reused_Count_Funded::new( - client.clone(), - format!("{base_path}_funded"), - ), - total: SeriesTree_Addrs_Reused_Count_Total::new( - client.clone(), - format!("{base_path}_total"), - ), + funded: SeriesTree_Addrs_Reused_Count_Funded::new(client.clone(), format!("{base_path}_funded")), + total: SeriesTree_Addrs_Reused_Count_Total::new(client.clone(), format!("{base_path}_total")), } } } @@ -9797,27 +7053,15 @@ impl SeriesTree_Addrs_Reused_Count_Total { pub fn new(client: Arc, base_path: String) -> Self { Self { all: SeriesPattern1::new(client.clone(), "total_reused_addr_count".to_string()), - p2pk65: SeriesPattern1::new( - client.clone(), - "p2pk65_total_reused_addr_count".to_string(), - ), - p2pk33: SeriesPattern1::new( - client.clone(), - "p2pk33_total_reused_addr_count".to_string(), - ), + p2pk65: SeriesPattern1::new(client.clone(), "p2pk65_total_reused_addr_count".to_string()), + p2pk33: SeriesPattern1::new(client.clone(), "p2pk33_total_reused_addr_count".to_string()), p2pkh: SeriesPattern1::new(client.clone(), "p2pkh_total_reused_addr_count".to_string()), p2sh: SeriesPattern1::new(client.clone(), "p2sh_total_reused_addr_count".to_string()), - p2wpkh: SeriesPattern1::new( - client.clone(), - "p2wpkh_total_reused_addr_count".to_string(), - ), + p2wpkh: SeriesPattern1::new(client.clone(), "p2wpkh_total_reused_addr_count".to_string()), p2wsh: SeriesPattern1::new(client.clone(), "p2wsh_total_reused_addr_count".to_string()), p2tr: SeriesPattern1::new(client.clone(), "p2tr_total_reused_addr_count".to_string()), p2a: SeriesPattern1::new(client.clone(), "p2a_total_reused_addr_count".to_string()), - height: SeriesPattern18::new( - client.clone(), - "total_reused_addr_count_by_type".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "total_reused_addr_count_by_type".to_string()), } } } @@ -9836,36 +7080,13 @@ pub struct SeriesTree_Addrs_Reused_Events { impl SeriesTree_Addrs_Reused_Events { pub fn new(client: Arc, base_path: String) -> Self { Self { - output_to_reused_addr_count: - SeriesTree_Addrs_Reused_Events_OutputToReusedAddrCount::new( - client.clone(), - format!("{base_path}_output_to_reused_addr_count"), - ), - output_to_reused_addr_share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern6::new( - client.clone(), - "output_to_reused_addr_share".to_string(), - ), - spendable_output_to_reused_addr_share: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "spendable_output_to_reused_addr_share".to_string(), - ), - input_from_reused_addr_count: - SeriesTree_Addrs_Reused_Events_InputFromReusedAddrCount::new( - client.clone(), - format!("{base_path}_input_from_reused_addr_count"), - ), - input_from_reused_addr_share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern6::new( - client.clone(), - "input_from_reused_addr_share".to_string(), - ), - active_reused_addr_count: _1m1w1y24hBlockPattern::new( - client.clone(), - "active_reused_addr_count".to_string(), - ), - active_reused_addr_share: _1m1w1y24hBlockPattern2::new( - client.clone(), - "active_reused_addr_share".to_string(), - ), + output_to_reused_addr_count: SeriesTree_Addrs_Reused_Events_OutputToReusedAddrCount::new(client.clone(), format!("{base_path}_output_to_reused_addr_count")), + output_to_reused_addr_share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern6::new(client.clone(), "output_to_reused_addr_share".to_string()), + spendable_output_to_reused_addr_share: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "spendable_output_to_reused_addr_share".to_string()), + input_from_reused_addr_count: SeriesTree_Addrs_Reused_Events_InputFromReusedAddrCount::new(client.clone(), format!("{base_path}_input_from_reused_addr_count")), + input_from_reused_addr_share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern6::new(client.clone(), "input_from_reused_addr_share".to_string()), + active_reused_addr_count: _1m1w1y24hBlockPattern::new(client.clone(), "active_reused_addr_count".to_string()), + active_reused_addr_share: _1m1w1y24hBlockPattern2::new(client.clone(), "active_reused_addr_share".to_string()), } } } @@ -9887,46 +7108,16 @@ pub struct SeriesTree_Addrs_Reused_Events_OutputToReusedAddrCount { impl SeriesTree_Addrs_Reused_Events_OutputToReusedAddrCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "output_to_reused_addr_count".to_string(), - ), - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk65_output_to_reused_addr_count".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk33_output_to_reused_addr_count".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pkh_output_to_reused_addr_count".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2sh_output_to_reused_addr_count".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wpkh_output_to_reused_addr_count".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wsh_output_to_reused_addr_count".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2tr_output_to_reused_addr_count".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2a_output_to_reused_addr_count".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "output_to_reused_addr_count_by_type_cumulative".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "output_to_reused_addr_count".to_string()), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk65_output_to_reused_addr_count".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk33_output_to_reused_addr_count".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pkh_output_to_reused_addr_count".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2sh_output_to_reused_addr_count".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wpkh_output_to_reused_addr_count".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wsh_output_to_reused_addr_count".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "p2tr_output_to_reused_addr_count".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "p2a_output_to_reused_addr_count".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "output_to_reused_addr_count_by_type_cumulative".to_string()), } } } @@ -9948,46 +7139,16 @@ pub struct SeriesTree_Addrs_Reused_Events_InputFromReusedAddrCount { impl SeriesTree_Addrs_Reused_Events_InputFromReusedAddrCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "input_from_reused_addr_count".to_string(), - ), - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk65_input_from_reused_addr_count".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk33_input_from_reused_addr_count".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pkh_input_from_reused_addr_count".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2sh_input_from_reused_addr_count".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wpkh_input_from_reused_addr_count".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wsh_input_from_reused_addr_count".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2tr_input_from_reused_addr_count".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2a_input_from_reused_addr_count".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "input_from_reused_addr_count_by_type_cumulative".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "input_from_reused_addr_count".to_string()), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk65_input_from_reused_addr_count".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk33_input_from_reused_addr_count".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pkh_input_from_reused_addr_count".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2sh_input_from_reused_addr_count".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wpkh_input_from_reused_addr_count".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wsh_input_from_reused_addr_count".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "p2tr_input_from_reused_addr_count".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "p2a_input_from_reused_addr_count".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "input_from_reused_addr_count_by_type_cumulative".to_string()), } } } @@ -10011,43 +7172,16 @@ impl SeriesTree_Addrs_Reused_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BtcCentsSatsUsdPattern::new(client.clone(), "reused_addr_supply".to_string()), - p2pk65: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2pk65_reused_addr_supply".to_string(), - ), - p2pk33: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2pk33_reused_addr_supply".to_string(), - ), - p2pkh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2pkh_reused_addr_supply".to_string(), - ), - p2sh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2sh_reused_addr_supply".to_string(), - ), - p2wpkh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2wpkh_reused_addr_supply".to_string(), - ), - p2wsh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2wsh_reused_addr_supply".to_string(), - ), - p2tr: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2tr_reused_addr_supply".to_string(), - ), + p2pk65: BtcCentsSatsUsdPattern::new(client.clone(), "p2pk65_reused_addr_supply".to_string()), + p2pk33: BtcCentsSatsUsdPattern::new(client.clone(), "p2pk33_reused_addr_supply".to_string()), + p2pkh: BtcCentsSatsUsdPattern::new(client.clone(), "p2pkh_reused_addr_supply".to_string()), + p2sh: BtcCentsSatsUsdPattern::new(client.clone(), "p2sh_reused_addr_supply".to_string()), + p2wpkh: BtcCentsSatsUsdPattern::new(client.clone(), "p2wpkh_reused_addr_supply".to_string()), + p2wsh: BtcCentsSatsUsdPattern::new(client.clone(), "p2wsh_reused_addr_supply".to_string()), + p2tr: BtcCentsSatsUsdPattern::new(client.clone(), "p2tr_reused_addr_supply".to_string()), p2a: BtcCentsSatsUsdPattern::new(client.clone(), "p2a_reused_addr_supply".to_string()), - height: SeriesPattern18::new( - client.clone(), - "reused_addr_supply_sats_by_type".to_string(), - ), - share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern4::new( - client.clone(), - "reused_addr_supply_share".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "reused_addr_supply_sats_by_type".to_string()), + share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern4::new(client.clone(), "reused_addr_supply_share".to_string()), } } } @@ -10062,18 +7196,9 @@ pub struct SeriesTree_Addrs_Respent { impl SeriesTree_Addrs_Respent { pub fn new(client: Arc, base_path: String) -> Self { Self { - count: SeriesTree_Addrs_Respent_Count::new( - client.clone(), - format!("{base_path}_count"), - ), - events: SeriesTree_Addrs_Respent_Events::new( - client.clone(), - format!("{base_path}_events"), - ), - supply: SeriesTree_Addrs_Respent_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + count: SeriesTree_Addrs_Respent_Count::new(client.clone(), format!("{base_path}_count")), + events: SeriesTree_Addrs_Respent_Events::new(client.clone(), format!("{base_path}_events")), + supply: SeriesTree_Addrs_Respent_Supply::new(client.clone(), format!("{base_path}_supply")), } } } @@ -10087,14 +7212,8 @@ pub struct SeriesTree_Addrs_Respent_Count { impl SeriesTree_Addrs_Respent_Count { pub fn new(client: Arc, base_path: String) -> Self { Self { - funded: SeriesTree_Addrs_Respent_Count_Funded::new( - client.clone(), - format!("{base_path}_funded"), - ), - total: SeriesTree_Addrs_Respent_Count_Total::new( - client.clone(), - format!("{base_path}_total"), - ), + funded: SeriesTree_Addrs_Respent_Count_Funded::new(client.clone(), format!("{base_path}_funded")), + total: SeriesTree_Addrs_Respent_Count_Total::new(client.clone(), format!("{base_path}_total")), } } } @@ -10148,33 +7267,15 @@ impl SeriesTree_Addrs_Respent_Count_Total { pub fn new(client: Arc, base_path: String) -> Self { Self { all: SeriesPattern1::new(client.clone(), "total_respent_addr_count".to_string()), - p2pk65: SeriesPattern1::new( - client.clone(), - "p2pk65_total_respent_addr_count".to_string(), - ), - p2pk33: SeriesPattern1::new( - client.clone(), - "p2pk33_total_respent_addr_count".to_string(), - ), - p2pkh: SeriesPattern1::new( - client.clone(), - "p2pkh_total_respent_addr_count".to_string(), - ), + p2pk65: SeriesPattern1::new(client.clone(), "p2pk65_total_respent_addr_count".to_string()), + p2pk33: SeriesPattern1::new(client.clone(), "p2pk33_total_respent_addr_count".to_string()), + p2pkh: SeriesPattern1::new(client.clone(), "p2pkh_total_respent_addr_count".to_string()), p2sh: SeriesPattern1::new(client.clone(), "p2sh_total_respent_addr_count".to_string()), - p2wpkh: SeriesPattern1::new( - client.clone(), - "p2wpkh_total_respent_addr_count".to_string(), - ), - p2wsh: SeriesPattern1::new( - client.clone(), - "p2wsh_total_respent_addr_count".to_string(), - ), + p2wpkh: SeriesPattern1::new(client.clone(), "p2wpkh_total_respent_addr_count".to_string()), + p2wsh: SeriesPattern1::new(client.clone(), "p2wsh_total_respent_addr_count".to_string()), p2tr: SeriesPattern1::new(client.clone(), "p2tr_total_respent_addr_count".to_string()), p2a: SeriesPattern1::new(client.clone(), "p2a_total_respent_addr_count".to_string()), - height: SeriesPattern18::new( - client.clone(), - "total_respent_addr_count_by_type".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "total_respent_addr_count_by_type".to_string()), } } } @@ -10193,36 +7294,13 @@ pub struct SeriesTree_Addrs_Respent_Events { impl SeriesTree_Addrs_Respent_Events { pub fn new(client: Arc, base_path: String) -> Self { Self { - output_to_reused_addr_count: - SeriesTree_Addrs_Respent_Events_OutputToReusedAddrCount::new( - client.clone(), - format!("{base_path}_output_to_reused_addr_count"), - ), - output_to_reused_addr_share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern6::new( - client.clone(), - "output_to_respent_addr_share".to_string(), - ), - spendable_output_to_reused_addr_share: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "spendable_output_to_respent_addr_share".to_string(), - ), - input_from_reused_addr_count: - SeriesTree_Addrs_Respent_Events_InputFromReusedAddrCount::new( - client.clone(), - format!("{base_path}_input_from_reused_addr_count"), - ), - input_from_reused_addr_share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern6::new( - client.clone(), - "input_from_respent_addr_share".to_string(), - ), - active_reused_addr_count: _1m1w1y24hBlockPattern::new( - client.clone(), - "active_respent_addr_count".to_string(), - ), - active_reused_addr_share: _1m1w1y24hBlockPattern2::new( - client.clone(), - "active_respent_addr_share".to_string(), - ), + output_to_reused_addr_count: SeriesTree_Addrs_Respent_Events_OutputToReusedAddrCount::new(client.clone(), format!("{base_path}_output_to_reused_addr_count")), + output_to_reused_addr_share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern6::new(client.clone(), "output_to_respent_addr_share".to_string()), + spendable_output_to_reused_addr_share: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "spendable_output_to_respent_addr_share".to_string()), + input_from_reused_addr_count: SeriesTree_Addrs_Respent_Events_InputFromReusedAddrCount::new(client.clone(), format!("{base_path}_input_from_reused_addr_count")), + input_from_reused_addr_share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern6::new(client.clone(), "input_from_respent_addr_share".to_string()), + active_reused_addr_count: _1m1w1y24hBlockPattern::new(client.clone(), "active_respent_addr_count".to_string()), + active_reused_addr_share: _1m1w1y24hBlockPattern2::new(client.clone(), "active_respent_addr_share".to_string()), } } } @@ -10244,46 +7322,16 @@ pub struct SeriesTree_Addrs_Respent_Events_OutputToReusedAddrCount { impl SeriesTree_Addrs_Respent_Events_OutputToReusedAddrCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "output_to_respent_addr_count".to_string(), - ), - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk65_output_to_respent_addr_count".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk33_output_to_respent_addr_count".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pkh_output_to_respent_addr_count".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2sh_output_to_respent_addr_count".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wpkh_output_to_respent_addr_count".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wsh_output_to_respent_addr_count".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2tr_output_to_respent_addr_count".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2a_output_to_respent_addr_count".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "output_to_respent_addr_count_by_type_cumulative".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "output_to_respent_addr_count".to_string()), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk65_output_to_respent_addr_count".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk33_output_to_respent_addr_count".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pkh_output_to_respent_addr_count".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2sh_output_to_respent_addr_count".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wpkh_output_to_respent_addr_count".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wsh_output_to_respent_addr_count".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "p2tr_output_to_respent_addr_count".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "p2a_output_to_respent_addr_count".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "output_to_respent_addr_count_by_type_cumulative".to_string()), } } } @@ -10305,46 +7353,16 @@ pub struct SeriesTree_Addrs_Respent_Events_InputFromReusedAddrCount { impl SeriesTree_Addrs_Respent_Events_InputFromReusedAddrCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "input_from_respent_addr_count".to_string(), - ), - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk65_input_from_respent_addr_count".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk33_input_from_respent_addr_count".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pkh_input_from_respent_addr_count".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2sh_input_from_respent_addr_count".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wpkh_input_from_respent_addr_count".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wsh_input_from_respent_addr_count".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2tr_input_from_respent_addr_count".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2a_input_from_respent_addr_count".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "input_from_respent_addr_count_by_type_cumulative".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "input_from_respent_addr_count".to_string()), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk65_input_from_respent_addr_count".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk33_input_from_respent_addr_count".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pkh_input_from_respent_addr_count".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2sh_input_from_respent_addr_count".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wpkh_input_from_respent_addr_count".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wsh_input_from_respent_addr_count".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "p2tr_input_from_respent_addr_count".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "p2a_input_from_respent_addr_count".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "input_from_respent_addr_count_by_type_cumulative".to_string()), } } } @@ -10368,43 +7386,16 @@ impl SeriesTree_Addrs_Respent_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BtcCentsSatsUsdPattern::new(client.clone(), "respent_addr_supply".to_string()), - p2pk65: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2pk65_respent_addr_supply".to_string(), - ), - p2pk33: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2pk33_respent_addr_supply".to_string(), - ), - p2pkh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2pkh_respent_addr_supply".to_string(), - ), - p2sh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2sh_respent_addr_supply".to_string(), - ), - p2wpkh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2wpkh_respent_addr_supply".to_string(), - ), - p2wsh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2wsh_respent_addr_supply".to_string(), - ), - p2tr: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2tr_respent_addr_supply".to_string(), - ), + p2pk65: BtcCentsSatsUsdPattern::new(client.clone(), "p2pk65_respent_addr_supply".to_string()), + p2pk33: BtcCentsSatsUsdPattern::new(client.clone(), "p2pk33_respent_addr_supply".to_string()), + p2pkh: BtcCentsSatsUsdPattern::new(client.clone(), "p2pkh_respent_addr_supply".to_string()), + p2sh: BtcCentsSatsUsdPattern::new(client.clone(), "p2sh_respent_addr_supply".to_string()), + p2wpkh: BtcCentsSatsUsdPattern::new(client.clone(), "p2wpkh_respent_addr_supply".to_string()), + p2wsh: BtcCentsSatsUsdPattern::new(client.clone(), "p2wsh_respent_addr_supply".to_string()), + p2tr: BtcCentsSatsUsdPattern::new(client.clone(), "p2tr_respent_addr_supply".to_string()), p2a: BtcCentsSatsUsdPattern::new(client.clone(), "p2a_respent_addr_supply".to_string()), - height: SeriesPattern18::new( - client.clone(), - "respent_addr_supply_sats_by_type".to_string(), - ), - share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern4::new( - client.clone(), - "respent_addr_supply_share".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "respent_addr_supply_sats_by_type".to_string()), + share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern4::new(client.clone(), "respent_addr_supply_share".to_string()), } } } @@ -10418,14 +7409,8 @@ pub struct SeriesTree_Addrs_Exposed { impl SeriesTree_Addrs_Exposed { pub fn new(client: Arc, base_path: String) -> Self { Self { - count: SeriesTree_Addrs_Exposed_Count::new( - client.clone(), - format!("{base_path}_count"), - ), - supply: SeriesTree_Addrs_Exposed_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + count: SeriesTree_Addrs_Exposed_Count::new(client.clone(), format!("{base_path}_count")), + supply: SeriesTree_Addrs_Exposed_Supply::new(client.clone(), format!("{base_path}_supply")), } } } @@ -10439,14 +7424,8 @@ pub struct SeriesTree_Addrs_Exposed_Count { impl SeriesTree_Addrs_Exposed_Count { pub fn new(client: Arc, base_path: String) -> Self { Self { - funded: SeriesTree_Addrs_Exposed_Count_Funded::new( - client.clone(), - format!("{base_path}_funded"), - ), - total: SeriesTree_Addrs_Exposed_Count_Total::new( - client.clone(), - format!("{base_path}_total"), - ), + funded: SeriesTree_Addrs_Exposed_Count_Funded::new(client.clone(), format!("{base_path}_funded")), + total: SeriesTree_Addrs_Exposed_Count_Total::new(client.clone(), format!("{base_path}_total")), } } } @@ -10500,33 +7479,15 @@ impl SeriesTree_Addrs_Exposed_Count_Total { pub fn new(client: Arc, base_path: String) -> Self { Self { all: SeriesPattern1::new(client.clone(), "total_exposed_addr_count".to_string()), - p2pk65: SeriesPattern1::new( - client.clone(), - "p2pk65_total_exposed_addr_count".to_string(), - ), - p2pk33: SeriesPattern1::new( - client.clone(), - "p2pk33_total_exposed_addr_count".to_string(), - ), - p2pkh: SeriesPattern1::new( - client.clone(), - "p2pkh_total_exposed_addr_count".to_string(), - ), + p2pk65: SeriesPattern1::new(client.clone(), "p2pk65_total_exposed_addr_count".to_string()), + p2pk33: SeriesPattern1::new(client.clone(), "p2pk33_total_exposed_addr_count".to_string()), + p2pkh: SeriesPattern1::new(client.clone(), "p2pkh_total_exposed_addr_count".to_string()), p2sh: SeriesPattern1::new(client.clone(), "p2sh_total_exposed_addr_count".to_string()), - p2wpkh: SeriesPattern1::new( - client.clone(), - "p2wpkh_total_exposed_addr_count".to_string(), - ), - p2wsh: SeriesPattern1::new( - client.clone(), - "p2wsh_total_exposed_addr_count".to_string(), - ), + p2wpkh: SeriesPattern1::new(client.clone(), "p2wpkh_total_exposed_addr_count".to_string()), + p2wsh: SeriesPattern1::new(client.clone(), "p2wsh_total_exposed_addr_count".to_string()), p2tr: SeriesPattern1::new(client.clone(), "p2tr_total_exposed_addr_count".to_string()), p2a: SeriesPattern1::new(client.clone(), "p2a_total_exposed_addr_count".to_string()), - height: SeriesPattern18::new( - client.clone(), - "total_exposed_addr_count_by_type".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "total_exposed_addr_count_by_type".to_string()), } } } @@ -10550,43 +7511,16 @@ impl SeriesTree_Addrs_Exposed_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BtcCentsSatsUsdPattern::new(client.clone(), "exposed_addr_supply".to_string()), - p2pk65: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2pk65_exposed_addr_supply".to_string(), - ), - p2pk33: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2pk33_exposed_addr_supply".to_string(), - ), - p2pkh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2pkh_exposed_addr_supply".to_string(), - ), - p2sh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2sh_exposed_addr_supply".to_string(), - ), - p2wpkh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2wpkh_exposed_addr_supply".to_string(), - ), - p2wsh: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2wsh_exposed_addr_supply".to_string(), - ), - p2tr: BtcCentsSatsUsdPattern::new( - client.clone(), - "p2tr_exposed_addr_supply".to_string(), - ), + p2pk65: BtcCentsSatsUsdPattern::new(client.clone(), "p2pk65_exposed_addr_supply".to_string()), + p2pk33: BtcCentsSatsUsdPattern::new(client.clone(), "p2pk33_exposed_addr_supply".to_string()), + p2pkh: BtcCentsSatsUsdPattern::new(client.clone(), "p2pkh_exposed_addr_supply".to_string()), + p2sh: BtcCentsSatsUsdPattern::new(client.clone(), "p2sh_exposed_addr_supply".to_string()), + p2wpkh: BtcCentsSatsUsdPattern::new(client.clone(), "p2wpkh_exposed_addr_supply".to_string()), + p2wsh: BtcCentsSatsUsdPattern::new(client.clone(), "p2wsh_exposed_addr_supply".to_string()), + p2tr: BtcCentsSatsUsdPattern::new(client.clone(), "p2tr_exposed_addr_supply".to_string()), p2a: BtcCentsSatsUsdPattern::new(client.clone(), "p2a_exposed_addr_supply".to_string()), - height: SeriesPattern18::new( - client.clone(), - "exposed_addr_supply_sats_by_type".to_string(), - ), - share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern4::new( - client.clone(), - "exposed_addr_supply_share".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "exposed_addr_supply_sats_by_type".to_string()), + share: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern4::new(client.clone(), "exposed_addr_supply_share".to_string()), } } } @@ -10629,14 +7563,8 @@ pub struct SeriesTree_Addrs_AvgAmount { impl SeriesTree_Addrs_AvgAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - utxo: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern2::new( - client.clone(), - "avg_utxo_amount".to_string(), - ), - addr: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern2::new( - client.clone(), - "avg_addr_amount".to_string(), - ), + utxo: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern2::new(client.clone(), "avg_utxo_amount".to_string()), + addr: AllP2aP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshPattern2::new(client.clone(), "avg_addr_amount".to_string()), } } } @@ -10666,10 +7594,7 @@ impl SeriesTree_Scripts_Raw { Self { empty: SeriesTree_Scripts_Raw_Empty::new(client.clone(), format!("{base_path}_empty")), p2ms: SeriesTree_Scripts_Raw_P2ms::new(client.clone(), format!("{base_path}_p2ms")), - unknown: SeriesTree_Scripts_Raw_Unknown::new( - client.clone(), - format!("{base_path}_unknown"), - ), + unknown: SeriesTree_Scripts_Raw_Unknown::new(client.clone(), format!("{base_path}_unknown")), } } } @@ -10683,10 +7608,7 @@ pub struct SeriesTree_Scripts_Raw_Empty { impl SeriesTree_Scripts_Raw_Empty { pub fn new(client: Arc, base_path: String) -> Self { Self { - first_index: SeriesPattern18::new( - client.clone(), - "first_empty_output_index".to_string(), - ), + first_index: SeriesPattern18::new(client.clone(), "first_empty_output_index".to_string()), to_tx_index: SeriesPattern22::new(client.clone(), "tx_index".to_string()), } } @@ -10702,10 +7624,7 @@ pub struct SeriesTree_Scripts_Raw_P2ms { impl SeriesTree_Scripts_Raw_P2ms { pub fn new(client: Arc, base_path: String) -> Self { Self { - first_index: SeriesPattern18::new( - client.clone(), - "first_p2ms_output_index".to_string(), - ), + first_index: SeriesPattern18::new(client.clone(), "first_p2ms_output_index".to_string()), to_tx_index: SeriesPattern25::new(client.clone(), "tx_index".to_string()), legacy_sigops: SeriesPattern25::new(client.clone(), "p2ms_legacy_sigops".to_string()), } @@ -10722,15 +7641,9 @@ pub struct SeriesTree_Scripts_Raw_Unknown { impl SeriesTree_Scripts_Raw_Unknown { pub fn new(client: Arc, base_path: String) -> Self { Self { - first_index: SeriesPattern18::new( - client.clone(), - "first_unknown_output_index".to_string(), - ), + first_index: SeriesPattern18::new(client.clone(), "first_unknown_output_index".to_string()), to_tx_index: SeriesPattern33::new(client.clone(), "tx_index".to_string()), - legacy_sigops: SeriesPattern33::new( - client.clone(), - "unknown_legacy_sigops".to_string(), - ), + legacy_sigops: SeriesPattern33::new(client.clone(), "unknown_legacy_sigops".to_string()), } } } @@ -10748,10 +7661,7 @@ impl SeriesTree_OpReturn { Self { raw: SeriesTree_OpReturn_Raw::new(client.clone(), format!("{base_path}_raw")), total: SeriesTree_OpReturn_Total::new(client.clone(), format!("{base_path}_total")), - by_kind: SeriesTree_OpReturn_ByKind::new( - client.clone(), - format!("{base_path}_by_kind"), - ), + by_kind: SeriesTree_OpReturn_ByKind::new(client.clone(), format!("{base_path}_by_kind")), policy: SeriesTree_OpReturn_Policy::new(client.clone(), format!("{base_path}_policy")), } } @@ -10771,10 +7681,7 @@ impl SeriesTree_OpReturn_Raw { first_index: SeriesPattern18::new(client.clone(), "first_op_return_index".to_string()), to_tx_index: SeriesPattern23::new(client.clone(), "tx_index".to_string()), kind: SeriesPattern23::new(client.clone(), "kind".to_string()), - post_op_return_bytes: SeriesPattern23::new( - client.clone(), - "op_return_post_op_return_bytes".to_string(), - ), + post_op_return_bytes: SeriesPattern23::new(client.clone(), "op_return_post_op_return_bytes".to_string()), } } } @@ -10792,30 +7699,12 @@ pub struct SeriesTree_OpReturn_Total { impl SeriesTree_OpReturn_Total { pub fn new(client: Arc, base_path: String) -> Self { Self { - data_bytes: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_data_bytes".to_string(), - ), - tx_count: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_tx_count".to_string(), - ), - tx_vsize: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_tx_vsize".to_string(), - ), - fees: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_fees".to_string(), - ), - chain_share: PercentPpmRatioPattern2::new( - client.clone(), - "op_return_chain_share".to_string(), - ), - fee_share: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "op_return_fee_share".to_string(), - ), + data_bytes: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_data_bytes".to_string()), + tx_count: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_tx_count".to_string()), + tx_vsize: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_tx_vsize".to_string()), + fees: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_fees".to_string()), + chain_share: PercentPpmRatioPattern2::new(client.clone(), "op_return_chain_share".to_string()), + fee_share: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "op_return_fee_share".to_string()), } } } @@ -10832,22 +7721,10 @@ pub struct SeriesTree_OpReturn_ByKind { impl SeriesTree_OpReturn_ByKind { pub fn new(client: Arc, base_path: String) -> Self { Self { - output_count: SeriesTree_OpReturn_ByKind_OutputCount::new( - client.clone(), - format!("{base_path}_output_count"), - ), - data_bytes: SeriesTree_OpReturn_ByKind_DataBytes::new( - client.clone(), - format!("{base_path}_data_bytes"), - ), - tx_count: SeriesTree_OpReturn_ByKind_TxCount::new( - client.clone(), - format!("{base_path}_tx_count"), - ), - tx_vsize: SeriesTree_OpReturn_ByKind_TxVsize::new( - client.clone(), - format!("{base_path}_tx_vsize"), - ), + output_count: SeriesTree_OpReturn_ByKind_OutputCount::new(client.clone(), format!("{base_path}_output_count")), + data_bytes: SeriesTree_OpReturn_ByKind_DataBytes::new(client.clone(), format!("{base_path}_data_bytes")), + tx_count: SeriesTree_OpReturn_ByKind_TxCount::new(client.clone(), format!("{base_path}_tx_count")), + tx_vsize: SeriesTree_OpReturn_ByKind_TxVsize::new(client.clone(), format!("{base_path}_tx_vsize")), fees: SeriesTree_OpReturn_ByKind_Fees::new(client.clone(), format!("{base_path}_fees")), } } @@ -10884,102 +7761,30 @@ pub struct SeriesTree_OpReturn_ByKind_OutputCount { impl SeriesTree_OpReturn_ByKind_OutputCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - runes: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_runes_output_count".to_string(), - ), - veri_block: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_veri_block_output_count".to_string(), - ), - omni: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_omni_output_count".to_string(), - ), - stacks: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_stacks_output_count".to_string(), - ), - blockstack: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_blockstack_output_count".to_string(), - ), - colu: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_colu_output_count".to_string(), - ), - open_assets: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_open_assets_output_count".to_string(), - ), - komodo: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_komodo_output_count".to_string(), - ), - coin_spark: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_coin_spark_output_count".to_string(), - ), - poet: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_poet_output_count".to_string(), - ), - docproof: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_docproof_output_count".to_string(), - ), - open_timestamps: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_open_timestamps_output_count".to_string(), - ), - factom: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_factom_output_count".to_string(), - ), - eternity_wall: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_eternity_wall_output_count".to_string(), - ), - memo: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_memo_output_count".to_string(), - ), - bitproof: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_bitproof_output_count".to_string(), - ), - ascribe: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_ascribe_output_count".to_string(), - ), - stampery: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_stampery_output_count".to_string(), - ), - epobc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_epobc_output_count".to_string(), - ), - bare_hash: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_bare_hash_output_count".to_string(), - ), - text: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_text_output_count".to_string(), - ), - empty: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_empty_output_count".to_string(), - ), - unknown: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_unknown_output_count".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_by_kind_output_count".to_string(), - ), + runes: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_runes_output_count".to_string()), + veri_block: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_veri_block_output_count".to_string()), + omni: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_omni_output_count".to_string()), + stacks: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_stacks_output_count".to_string()), + blockstack: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_blockstack_output_count".to_string()), + colu: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_colu_output_count".to_string()), + open_assets: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_open_assets_output_count".to_string()), + komodo: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_komodo_output_count".to_string()), + coin_spark: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_coin_spark_output_count".to_string()), + poet: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_poet_output_count".to_string()), + docproof: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_docproof_output_count".to_string()), + open_timestamps: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_open_timestamps_output_count".to_string()), + factom: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_factom_output_count".to_string()), + eternity_wall: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_eternity_wall_output_count".to_string()), + memo: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_memo_output_count".to_string()), + bitproof: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_bitproof_output_count".to_string()), + ascribe: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_ascribe_output_count".to_string()), + stampery: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_stampery_output_count".to_string()), + epobc: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_epobc_output_count".to_string()), + bare_hash: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_bare_hash_output_count".to_string()), + text: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_text_output_count".to_string()), + empty: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_empty_output_count".to_string()), + unknown: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_unknown_output_count".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_by_kind_output_count".to_string()), } } } @@ -11015,102 +7820,30 @@ pub struct SeriesTree_OpReturn_ByKind_DataBytes { impl SeriesTree_OpReturn_ByKind_DataBytes { pub fn new(client: Arc, base_path: String) -> Self { Self { - runes: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_runes".to_string(), - ), - veri_block: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_veri_block".to_string(), - ), - omni: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_omni".to_string(), - ), - stacks: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_stacks".to_string(), - ), - blockstack: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_blockstack".to_string(), - ), - colu: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_colu".to_string(), - ), - open_assets: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_open_assets".to_string(), - ), - komodo: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_komodo".to_string(), - ), - coin_spark: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_coin_spark".to_string(), - ), - poet: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_poet".to_string(), - ), - docproof: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_docproof".to_string(), - ), - open_timestamps: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_open_timestamps".to_string(), - ), - factom: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_factom".to_string(), - ), - eternity_wall: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_eternity_wall".to_string(), - ), - memo: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_memo".to_string(), - ), - bitproof: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_bitproof".to_string(), - ), - ascribe: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_ascribe".to_string(), - ), - stampery: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_stampery".to_string(), - ), - epobc: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_epobc".to_string(), - ), - bare_hash: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_bare_hash".to_string(), - ), - text: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_text".to_string(), - ), - empty: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_empty".to_string(), - ), - unknown: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_unknown".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_by_kind_data_bytes".to_string(), - ), + runes: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_runes".to_string()), + veri_block: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_veri_block".to_string()), + omni: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_omni".to_string()), + stacks: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_stacks".to_string()), + blockstack: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_blockstack".to_string()), + colu: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_colu".to_string()), + open_assets: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_open_assets".to_string()), + komodo: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_komodo".to_string()), + coin_spark: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_coin_spark".to_string()), + poet: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_poet".to_string()), + docproof: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_docproof".to_string()), + open_timestamps: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_open_timestamps".to_string()), + factom: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_factom".to_string()), + eternity_wall: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_eternity_wall".to_string()), + memo: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_memo".to_string()), + bitproof: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_bitproof".to_string()), + ascribe: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_ascribe".to_string()), + stampery: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_stampery".to_string()), + epobc: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_epobc".to_string()), + bare_hash: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_bare_hash".to_string()), + text: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_text".to_string()), + empty: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_empty".to_string()), + unknown: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_unknown".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_by_kind_data_bytes".to_string()), } } } @@ -11146,102 +7879,30 @@ pub struct SeriesTree_OpReturn_ByKind_TxCount { impl SeriesTree_OpReturn_ByKind_TxCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - runes: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_runes_tx_count".to_string(), - ), - veri_block: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_veri_block_tx_count".to_string(), - ), - omni: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_omni_tx_count".to_string(), - ), - stacks: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_stacks_tx_count".to_string(), - ), - blockstack: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_blockstack_tx_count".to_string(), - ), - colu: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_colu_tx_count".to_string(), - ), - open_assets: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_open_assets_tx_count".to_string(), - ), - komodo: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_komodo_tx_count".to_string(), - ), - coin_spark: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_coin_spark_tx_count".to_string(), - ), - poet: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_poet_tx_count".to_string(), - ), - docproof: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_docproof_tx_count".to_string(), - ), - open_timestamps: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_open_timestamps_tx_count".to_string(), - ), - factom: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_factom_tx_count".to_string(), - ), - eternity_wall: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_eternity_wall_tx_count".to_string(), - ), - memo: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_memo_tx_count".to_string(), - ), - bitproof: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_bitproof_tx_count".to_string(), - ), - ascribe: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_ascribe_tx_count".to_string(), - ), - stampery: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_stampery_tx_count".to_string(), - ), - epobc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_epobc_tx_count".to_string(), - ), - bare_hash: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_bare_hash_tx_count".to_string(), - ), - text: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_text_tx_count".to_string(), - ), - empty: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_empty_tx_count".to_string(), - ), - unknown: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_unknown_tx_count".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_by_kind_tx_count".to_string(), - ), + runes: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_runes_tx_count".to_string()), + veri_block: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_veri_block_tx_count".to_string()), + omni: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_omni_tx_count".to_string()), + stacks: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_stacks_tx_count".to_string()), + blockstack: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_blockstack_tx_count".to_string()), + colu: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_colu_tx_count".to_string()), + open_assets: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_open_assets_tx_count".to_string()), + komodo: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_komodo_tx_count".to_string()), + coin_spark: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_coin_spark_tx_count".to_string()), + poet: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_poet_tx_count".to_string()), + docproof: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_docproof_tx_count".to_string()), + open_timestamps: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_open_timestamps_tx_count".to_string()), + factom: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_factom_tx_count".to_string()), + eternity_wall: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_eternity_wall_tx_count".to_string()), + memo: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_memo_tx_count".to_string()), + bitproof: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_bitproof_tx_count".to_string()), + ascribe: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_ascribe_tx_count".to_string()), + stampery: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_stampery_tx_count".to_string()), + epobc: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_epobc_tx_count".to_string()), + bare_hash: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_bare_hash_tx_count".to_string()), + text: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_text_tx_count".to_string()), + empty: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_empty_tx_count".to_string()), + unknown: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_unknown_tx_count".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_by_kind_tx_count".to_string()), } } } @@ -11277,102 +7938,30 @@ pub struct SeriesTree_OpReturn_ByKind_TxVsize { impl SeriesTree_OpReturn_ByKind_TxVsize { pub fn new(client: Arc, base_path: String) -> Self { Self { - runes: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_runes_tx_vsize".to_string(), - ), - veri_block: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_veri_block_tx_vsize".to_string(), - ), - omni: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_omni_tx_vsize".to_string(), - ), - stacks: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_stacks_tx_vsize".to_string(), - ), - blockstack: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_blockstack_tx_vsize".to_string(), - ), - colu: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_colu_tx_vsize".to_string(), - ), - open_assets: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_open_assets_tx_vsize".to_string(), - ), - komodo: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_komodo_tx_vsize".to_string(), - ), - coin_spark: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_coin_spark_tx_vsize".to_string(), - ), - poet: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_poet_tx_vsize".to_string(), - ), - docproof: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_docproof_tx_vsize".to_string(), - ), - open_timestamps: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_open_timestamps_tx_vsize".to_string(), - ), - factom: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_factom_tx_vsize".to_string(), - ), - eternity_wall: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_eternity_wall_tx_vsize".to_string(), - ), - memo: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_memo_tx_vsize".to_string(), - ), - bitproof: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_bitproof_tx_vsize".to_string(), - ), - ascribe: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_ascribe_tx_vsize".to_string(), - ), - stampery: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_stampery_tx_vsize".to_string(), - ), - epobc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_epobc_tx_vsize".to_string(), - ), - bare_hash: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_bare_hash_tx_vsize".to_string(), - ), - text: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_text_tx_vsize".to_string(), - ), - empty: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_empty_tx_vsize".to_string(), - ), - unknown: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_unknown_tx_vsize".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_by_kind_tx_vsize".to_string(), - ), + runes: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_runes_tx_vsize".to_string()), + veri_block: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_veri_block_tx_vsize".to_string()), + omni: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_omni_tx_vsize".to_string()), + stacks: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_stacks_tx_vsize".to_string()), + blockstack: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_blockstack_tx_vsize".to_string()), + colu: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_colu_tx_vsize".to_string()), + open_assets: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_open_assets_tx_vsize".to_string()), + komodo: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_komodo_tx_vsize".to_string()), + coin_spark: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_coin_spark_tx_vsize".to_string()), + poet: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_poet_tx_vsize".to_string()), + docproof: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_docproof_tx_vsize".to_string()), + open_timestamps: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_open_timestamps_tx_vsize".to_string()), + factom: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_factom_tx_vsize".to_string()), + eternity_wall: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_eternity_wall_tx_vsize".to_string()), + memo: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_memo_tx_vsize".to_string()), + bitproof: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_bitproof_tx_vsize".to_string()), + ascribe: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_ascribe_tx_vsize".to_string()), + stampery: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_stampery_tx_vsize".to_string()), + epobc: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_epobc_tx_vsize".to_string()), + bare_hash: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_bare_hash_tx_vsize".to_string()), + text: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_text_tx_vsize".to_string()), + empty: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_empty_tx_vsize".to_string()), + unknown: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_unknown_tx_vsize".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_by_kind_tx_vsize".to_string()), } } } @@ -11408,102 +7997,30 @@ pub struct SeriesTree_OpReturn_ByKind_Fees { impl SeriesTree_OpReturn_ByKind_Fees { pub fn new(client: Arc, base_path: String) -> Self { Self { - runes: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_runes".to_string(), - ), - veri_block: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_veri_block".to_string(), - ), - omni: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_omni".to_string(), - ), - stacks: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_stacks".to_string(), - ), - blockstack: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_blockstack".to_string(), - ), - colu: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_colu".to_string(), - ), - open_assets: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_open_assets".to_string(), - ), - komodo: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_komodo".to_string(), - ), - coin_spark: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_coin_spark".to_string(), - ), - poet: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_poet".to_string(), - ), - docproof: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_docproof".to_string(), - ), - open_timestamps: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_open_timestamps".to_string(), - ), - factom: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_factom".to_string(), - ), - eternity_wall: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_eternity_wall".to_string(), - ), - memo: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_memo".to_string(), - ), - bitproof: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_bitproof".to_string(), - ), - ascribe: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_ascribe".to_string(), - ), - stampery: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_stampery".to_string(), - ), - epobc: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_epobc".to_string(), - ), - bare_hash: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_bare_hash".to_string(), - ), - text: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_text".to_string(), - ), - empty: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_empty".to_string(), - ), - unknown: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_unknown".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_by_kind_fees".to_string(), - ), + runes: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_runes".to_string()), + veri_block: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_veri_block".to_string()), + omni: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_omni".to_string()), + stacks: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_stacks".to_string()), + blockstack: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_blockstack".to_string()), + colu: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_colu".to_string()), + open_assets: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_open_assets".to_string()), + komodo: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_komodo".to_string()), + coin_spark: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_coin_spark".to_string()), + poet: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_poet".to_string()), + docproof: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_docproof".to_string()), + open_timestamps: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_open_timestamps".to_string()), + factom: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_factom".to_string()), + eternity_wall: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_eternity_wall".to_string()), + memo: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_memo".to_string()), + bitproof: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_bitproof".to_string()), + ascribe: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_ascribe".to_string()), + stampery: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_stampery".to_string()), + epobc: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_epobc".to_string()), + bare_hash: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_bare_hash".to_string()), + text: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_text".to_string()), + empty: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_empty".to_string()), + unknown: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_unknown".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_by_kind_fees".to_string()), } } } @@ -11520,22 +8037,10 @@ pub struct SeriesTree_OpReturn_Policy { impl SeriesTree_OpReturn_Policy { pub fn new(client: Arc, base_path: String) -> Self { Self { - output_count: SeriesTree_OpReturn_Policy_OutputCount::new( - client.clone(), - format!("{base_path}_output_count"), - ), - data_bytes: SeriesTree_OpReturn_Policy_DataBytes::new( - client.clone(), - format!("{base_path}_data_bytes"), - ), - tx_count: SeriesTree_OpReturn_Policy_TxCount::new( - client.clone(), - format!("{base_path}_tx_count"), - ), - tx_vsize: SeriesTree_OpReturn_Policy_TxVsize::new( - client.clone(), - format!("{base_path}_tx_vsize"), - ), + output_count: SeriesTree_OpReturn_Policy_OutputCount::new(client.clone(), format!("{base_path}_output_count")), + data_bytes: SeriesTree_OpReturn_Policy_DataBytes::new(client.clone(), format!("{base_path}_data_bytes")), + tx_count: SeriesTree_OpReturn_Policy_TxCount::new(client.clone(), format!("{base_path}_tx_count")), + tx_vsize: SeriesTree_OpReturn_Policy_TxVsize::new(client.clone(), format!("{base_path}_tx_vsize")), fees: SeriesTree_OpReturn_Policy_Fees::new(client.clone(), format!("{base_path}_fees")), } } @@ -11553,26 +8058,11 @@ pub struct SeriesTree_OpReturn_Policy_OutputCount { impl SeriesTree_OpReturn_Policy_OutputCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - pre_v30_standard: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_standard_output_count".to_string(), - ), - pre_v30_nonstandard: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_nonstandard_output_count".to_string(), - ), - oversized: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_oversized_output_count".to_string(), - ), - multiple: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_multiple_output_count".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_policy_output_count".to_string(), - ), + pre_v30_standard: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_pre_v30_standard_output_count".to_string()), + pre_v30_nonstandard: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_pre_v30_nonstandard_output_count".to_string()), + oversized: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_oversized_output_count".to_string()), + multiple: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_multiple_output_count".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_policy_output_count".to_string()), } } } @@ -11589,26 +8079,11 @@ pub struct SeriesTree_OpReturn_Policy_DataBytes { impl SeriesTree_OpReturn_Policy_DataBytes { pub fn new(client: Arc, base_path: String) -> Self { Self { - pre_v30_standard: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_standard".to_string(), - ), - pre_v30_nonstandard: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_nonstandard".to_string(), - ), - oversized: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_policy_oversized".to_string(), - ), - multiple: AverageBlockChainCumulativeDataSumPattern::new( - client.clone(), - "op_return_policy_multiple".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_policy_data_bytes".to_string(), - ), + pre_v30_standard: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_policy_pre_v30_standard".to_string()), + pre_v30_nonstandard: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_policy_pre_v30_nonstandard".to_string()), + oversized: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_policy_oversized".to_string()), + multiple: AverageBlockChainCumulativeDataSumPattern::new(client.clone(), "op_return_policy_multiple".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_policy_data_bytes".to_string()), } } } @@ -11625,26 +8100,11 @@ pub struct SeriesTree_OpReturn_Policy_TxCount { impl SeriesTree_OpReturn_Policy_TxCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - pre_v30_standard: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_standard_tx_count".to_string(), - ), - pre_v30_nonstandard: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_nonstandard_tx_count".to_string(), - ), - oversized: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_oversized_tx_count".to_string(), - ), - multiple: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_multiple_tx_count".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_policy_tx_count".to_string(), - ), + pre_v30_standard: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_pre_v30_standard_tx_count".to_string()), + pre_v30_nonstandard: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_pre_v30_nonstandard_tx_count".to_string()), + oversized: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_oversized_tx_count".to_string()), + multiple: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_multiple_tx_count".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_policy_tx_count".to_string()), } } } @@ -11661,26 +8121,11 @@ pub struct SeriesTree_OpReturn_Policy_TxVsize { impl SeriesTree_OpReturn_Policy_TxVsize { pub fn new(client: Arc, base_path: String) -> Self { Self { - pre_v30_standard: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_standard_tx_vsize".to_string(), - ), - pre_v30_nonstandard: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_nonstandard_tx_vsize".to_string(), - ), - oversized: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_oversized_tx_vsize".to_string(), - ), - multiple: AverageBlockCumulativeSumPattern::new( - client.clone(), - "op_return_policy_multiple_tx_vsize".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_policy_tx_vsize".to_string(), - ), + pre_v30_standard: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_pre_v30_standard_tx_vsize".to_string()), + pre_v30_nonstandard: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_pre_v30_nonstandard_tx_vsize".to_string()), + oversized: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_oversized_tx_vsize".to_string()), + multiple: AverageBlockCumulativeSumPattern::new(client.clone(), "op_return_policy_multiple_tx_vsize".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_policy_tx_vsize".to_string()), } } } @@ -11697,26 +8142,11 @@ pub struct SeriesTree_OpReturn_Policy_Fees { impl SeriesTree_OpReturn_Policy_Fees { pub fn new(client: Arc, base_path: String) -> Self { Self { - pre_v30_standard: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_standard".to_string(), - ), - pre_v30_nonstandard: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_policy_pre_v30_nonstandard".to_string(), - ), - oversized: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_policy_oversized".to_string(), - ), - multiple: AverageBlockCumulativeFeeSumPattern::new( - client.clone(), - "op_return_policy_multiple".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "op_return_cumulative_policy_fees".to_string(), - ), + pre_v30_standard: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_policy_pre_v30_standard".to_string()), + pre_v30_nonstandard: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_policy_pre_v30_nonstandard".to_string()), + oversized: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_policy_oversized".to_string()), + multiple: AverageBlockCumulativeFeeSumPattern::new(client.clone(), "op_return_policy_multiple".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "op_return_cumulative_policy_fees".to_string()), } } } @@ -11731,10 +8161,7 @@ impl SeriesTree_Mining { pub fn new(client: Arc, base_path: String) -> Self { Self { rewards: SeriesTree_Mining_Rewards::new(client.clone(), format!("{base_path}_rewards")), - hashrate: SeriesTree_Mining_Hashrate::new( - client.clone(), - format!("{base_path}_hashrate"), - ), + hashrate: SeriesTree_Mining_Hashrate::new(client.clone(), format!("{base_path}_hashrate")), } } } @@ -11751,14 +8178,8 @@ pub struct SeriesTree_Mining_Rewards { impl SeriesTree_Mining_Rewards { pub fn new(client: Arc, base_path: String) -> Self { Self { - coinbase: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "coinbase".to_string(), - ), - subsidy: SeriesTree_Mining_Rewards_Subsidy::new( - client.clone(), - format!("{base_path}_subsidy"), - ), + coinbase: AverageBlockCumulativeSumPattern2::new(client.clone(), "coinbase".to_string()), + subsidy: SeriesTree_Mining_Rewards_Subsidy::new(client.clone(), format!("{base_path}_subsidy")), fees: SeriesTree_Mining_Rewards_Fees::new(client.clone(), format!("{base_path}_fees")), output_volume: SeriesPattern18::new(client.clone(), "output_volume".to_string()), unclaimed: BlockCumulativePattern::new(client.clone(), "unclaimed_rewards".to_string()), @@ -11779,16 +8200,10 @@ impl SeriesTree_Mining_Rewards_Subsidy { pub fn new(client: Arc, base_path: String) -> Self { Self { block: BtcCentsSatsUsdPattern3::new(client.clone(), "subsidy".to_string()), - cumulative: BtcCentsSatsUsdPattern::new( - client.clone(), - "subsidy_cumulative".to_string(), - ), + cumulative: BtcCentsSatsUsdPattern::new(client.clone(), "subsidy_cumulative".to_string()), sum: _1m1w1y24hPattern4::new(client.clone(), "subsidy_sum".to_string()), average: _1m1w1y24hPattern3::new(client.clone(), "subsidy_average".to_string()), - dominance: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "subsidy_dominance".to_string(), - ), + dominance: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "subsidy_dominance".to_string()), } } } @@ -11824,14 +8239,8 @@ impl SeriesTree_Mining_Rewards_Fees { median: _1m1w1y24hPattern4::new(client.clone(), "fees_median".to_string()), pct75: _1m1w1y24hPattern4::new(client.clone(), "fees_pct75".to_string()), pct90: _1m1w1y24hPattern4::new(client.clone(), "fees_pct90".to_string()), - dominance: _1m1w1y24hPercentPpmRatioPattern::new( - client.clone(), - "fee_dominance".to_string(), - ), - to_subsidy: SeriesTree_Mining_Rewards_Fees_ToSubsidy::new( - client.clone(), - format!("{base_path}_to_subsidy"), - ), + dominance: _1m1w1y24hPercentPpmRatioPattern::new(client.clone(), "fee_dominance".to_string()), + to_subsidy: SeriesTree_Mining_Rewards_Fees_ToSubsidy::new(client.clone(), format!("{base_path}_to_subsidy")), } } } @@ -11884,15 +8293,9 @@ impl SeriesTree_Mining_Hashrate_Rate { pub fn new(client: Arc, base_path: String) -> Self { Self { base: SeriesPattern1::new(client.clone(), "hash_rate".to_string()), - sma: SeriesTree_Mining_Hashrate_Rate_Sma::new( - client.clone(), - format!("{base_path}_sma"), - ), + sma: SeriesTree_Mining_Hashrate_Rate_Sma::new(client.clone(), format!("{base_path}_sma")), ath: SeriesPattern1::new(client.clone(), "hash_rate_ath".to_string()), - drawdown: PercentPpmRatioPattern3::new( - client.clone(), - "hash_rate_drawdown".to_string(), - ), + drawdown: PercentPpmRatioPattern3::new(client.clone(), "hash_rate_drawdown".to_string()), } } } @@ -11925,14 +8328,8 @@ pub struct SeriesTree_Frameworks { impl SeriesTree_Frameworks { pub fn new(client: Arc, base_path: String) -> Self { Self { - cointime: SeriesTree_Frameworks_Cointime::new( - client.clone(), - format!("{base_path}_cointime"), - ), - coinflow: SeriesTree_Frameworks_Coinflow::new( - client.clone(), - format!("{base_path}_coinflow"), - ), + cointime: SeriesTree_Frameworks_Cointime::new(client.clone(), format!("{base_path}_cointime")), + coinflow: SeriesTree_Frameworks_Coinflow::new(client.clone(), format!("{base_path}_coinflow")), } } } @@ -11957,55 +8354,19 @@ pub struct SeriesTree_Frameworks_Cointime { impl SeriesTree_Frameworks_Cointime { pub fn new(client: Arc, base_path: String) -> Self { Self { - activity: SeriesTree_Frameworks_Cointime_Activity::new( - client.clone(), - format!("{base_path}_activity"), - ), - age_range: SeriesTree_Frameworks_Cointime_AgeRange::new( - client.clone(), - format!("{base_path}_age_range"), - ), - awake: SeriesTree_Frameworks_Cointime_Awake::new( - client.clone(), - format!("{base_path}_awake"), - ), + activity: SeriesTree_Frameworks_Cointime_Activity::new(client.clone(), format!("{base_path}_activity")), + age_range: SeriesTree_Frameworks_Cointime_AgeRange::new(client.clone(), format!("{base_path}_age_range")), + awake: SeriesTree_Frameworks_Cointime_Awake::new(client.clone(), format!("{base_path}_awake")), dormant: SupplyPattern2::new(client.clone(), "all_dormant_supply".to_string()), - sth: SeriesTree_Frameworks_Cointime_Sth::new( - client.clone(), - format!("{base_path}_sth"), - ), - lth: SeriesTree_Frameworks_Cointime_Lth::new( - client.clone(), - format!("{base_path}_lth"), - ), - sources: SeriesTree_Frameworks_Cointime_Sources::new( - client.clone(), - format!("{base_path}_sources"), - ), - supply: SeriesTree_Frameworks_Cointime_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), - value: SeriesTree_Frameworks_Cointime_Value::new( - client.clone(), - format!("{base_path}_value"), - ), - cap: SeriesTree_Frameworks_Cointime_Cap::new( - client.clone(), - format!("{base_path}_cap"), - ), - prices: SeriesTree_Frameworks_Cointime_Prices::new( - client.clone(), - format!("{base_path}_prices"), - ), - adjusted: SeriesTree_Frameworks_Cointime_Adjusted::new( - client.clone(), - format!("{base_path}_adjusted"), - ), - reserve_risk: SeriesTree_Frameworks_Cointime_ReserveRisk::new( - client.clone(), - format!("{base_path}_reserve_risk"), - ), + sth: SeriesTree_Frameworks_Cointime_Sth::new(client.clone(), format!("{base_path}_sth")), + lth: SeriesTree_Frameworks_Cointime_Lth::new(client.clone(), format!("{base_path}_lth")), + sources: SeriesTree_Frameworks_Cointime_Sources::new(client.clone(), format!("{base_path}_sources")), + supply: SeriesTree_Frameworks_Cointime_Supply::new(client.clone(), format!("{base_path}_supply")), + value: SeriesTree_Frameworks_Cointime_Value::new(client.clone(), format!("{base_path}_value")), + cap: SeriesTree_Frameworks_Cointime_Cap::new(client.clone(), format!("{base_path}_cap")), + prices: SeriesTree_Frameworks_Cointime_Prices::new(client.clone(), format!("{base_path}_prices")), + adjusted: SeriesTree_Frameworks_Cointime_Adjusted::new(client.clone(), format!("{base_path}_adjusted")), + reserve_risk: SeriesTree_Frameworks_Cointime_ReserveRisk::new(client.clone(), format!("{base_path}_reserve_risk")), } } } @@ -12022,14 +8383,8 @@ pub struct SeriesTree_Frameworks_Cointime_Activity { impl SeriesTree_Frameworks_Cointime_Activity { pub fn new(client: Arc, base_path: String) -> Self { Self { - coinblocks_created: AverageBlockCumulativeSumPattern::new( - client.clone(), - "coinblocks_created".to_string(), - ), - coinblocks_stored: AverageBlockCumulativeSumPattern::new( - client.clone(), - "coinblocks_stored".to_string(), - ), + coinblocks_created: AverageBlockCumulativeSumPattern::new(client.clone(), "coinblocks_created".to_string()), + coinblocks_stored: AverageBlockCumulativeSumPattern::new(client.clone(), "coinblocks_stored".to_string()), liveliness: SeriesPattern1::new(client.clone(), "liveliness".to_string()), vaultedness: SeriesPattern1::new(client.clone(), "vaultedness".to_string()), ratio: SeriesPattern1::new(client.clone(), "activity_to_vaultedness".to_string()), @@ -12049,26 +8404,11 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange { impl SeriesTree_Frameworks_Cointime_AgeRange { pub fn new(client: Arc, base_path: String) -> Self { Self { - coindays_created: SeriesTree_Frameworks_Cointime_AgeRange_CoindaysCreated::new( - client.clone(), - format!("{base_path}_coindays_created"), - ), - coindays_consumed: SeriesTree_Frameworks_Cointime_AgeRange_CoindaysConsumed::new( - client.clone(), - format!("{base_path}_coindays_consumed"), - ), - coindays_stored: SeriesTree_Frameworks_Cointime_AgeRange_CoindaysStored::new( - client.clone(), - format!("{base_path}_coindays_stored"), - ), - activity: SeriesTree_Frameworks_Cointime_AgeRange_Activity::new( - client.clone(), - format!("{base_path}_activity"), - ), - supply: SeriesTree_Frameworks_Cointime_AgeRange_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + coindays_created: SeriesTree_Frameworks_Cointime_AgeRange_CoindaysCreated::new(client.clone(), format!("{base_path}_coindays_created")), + coindays_consumed: SeriesTree_Frameworks_Cointime_AgeRange_CoindaysConsumed::new(client.clone(), format!("{base_path}_coindays_consumed")), + coindays_stored: SeriesTree_Frameworks_Cointime_AgeRange_CoindaysStored::new(client.clone(), format!("{base_path}_coindays_stored")), + activity: SeriesTree_Frameworks_Cointime_AgeRange_Activity::new(client.clone(), format!("{base_path}_activity")), + supply: SeriesTree_Frameworks_Cointime_AgeRange_Supply::new(client.clone(), format!("{base_path}_supply")), } } } @@ -12104,102 +8444,30 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange_CoindaysCreated { impl SeriesTree_Frameworks_Cointime_AgeRange_CoindaysCreated { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1h_old_coindays_created".to_string(), - ), - _1h_to_1d: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_coindays_created".to_string(), - ), - _1d_to_1w: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_coindays_created".to_string(), - ), - _1w_to_1m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_coindays_created".to_string(), - ), - _1m_to_2m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_coindays_created".to_string(), - ), - _2m_to_3m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_coindays_created".to_string(), - ), - _3m_to_4m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_coindays_created".to_string(), - ), - _4m_to_5m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_coindays_created".to_string(), - ), - _5m_to_6m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_coindays_created".to_string(), - ), - _6m_to_9m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_coindays_created".to_string(), - ), - _9m_to_1y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_coindays_created".to_string(), - ), - _1y_to_18m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_coindays_created".to_string(), - ), - _18m_to_2y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_coindays_created".to_string(), - ), - _2y_to_3y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_coindays_created".to_string(), - ), - _3y_to_4y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_coindays_created".to_string(), - ), - _4y_to_5y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_coindays_created".to_string(), - ), - _5y_to_6y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_coindays_created".to_string(), - ), - _6y_to_7y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_coindays_created".to_string(), - ), - _7y_to_8y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_coindays_created".to_string(), - ), - _8y_to_10y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_coindays_created".to_string(), - ), - _10y_to_12y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_coindays_created".to_string(), - ), - _12y_to_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_coindays_created".to_string(), - ), - over_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_15y_old_coindays_created".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "utxos_age_range_coindays_created_cumulative".to_string(), - ), + under_1h: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1h_old_coindays_created".to_string()), + _1h_to_1d: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1h_to_1d_old_coindays_created".to_string()), + _1d_to_1w: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1d_to_1w_old_coindays_created".to_string()), + _1w_to_1m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1w_to_1m_old_coindays_created".to_string()), + _1m_to_2m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1m_to_2m_old_coindays_created".to_string()), + _2m_to_3m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2m_to_3m_old_coindays_created".to_string()), + _3m_to_4m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3m_to_4m_old_coindays_created".to_string()), + _4m_to_5m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4m_to_5m_old_coindays_created".to_string()), + _5m_to_6m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5m_to_6m_old_coindays_created".to_string()), + _6m_to_9m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6m_to_9m_old_coindays_created".to_string()), + _9m_to_1y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_9m_to_1y_old_coindays_created".to_string()), + _1y_to_18m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1y_to_18m_old_coindays_created".to_string()), + _18m_to_2y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_18m_to_2y_old_coindays_created".to_string()), + _2y_to_3y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2y_to_3y_old_coindays_created".to_string()), + _3y_to_4y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3y_to_4y_old_coindays_created".to_string()), + _4y_to_5y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4y_to_5y_old_coindays_created".to_string()), + _5y_to_6y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5y_to_6y_old_coindays_created".to_string()), + _6y_to_7y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6y_to_7y_old_coindays_created".to_string()), + _7y_to_8y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_7y_to_8y_old_coindays_created".to_string()), + _8y_to_10y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_8y_to_10y_old_coindays_created".to_string()), + _10y_to_12y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10y_to_12y_old_coindays_created".to_string()), + _12y_to_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_12y_to_15y_old_coindays_created".to_string()), + over_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_15y_old_coindays_created".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "utxos_age_range_coindays_created_cumulative".to_string()), } } } @@ -12235,102 +8503,30 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange_CoindaysConsumed { impl SeriesTree_Frameworks_Cointime_AgeRange_CoindaysConsumed { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1h_old_coindays_consumed".to_string(), - ), - _1h_to_1d: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_coindays_consumed".to_string(), - ), - _1d_to_1w: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_coindays_consumed".to_string(), - ), - _1w_to_1m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_coindays_consumed".to_string(), - ), - _1m_to_2m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_coindays_consumed".to_string(), - ), - _2m_to_3m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_coindays_consumed".to_string(), - ), - _3m_to_4m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_coindays_consumed".to_string(), - ), - _4m_to_5m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_coindays_consumed".to_string(), - ), - _5m_to_6m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_coindays_consumed".to_string(), - ), - _6m_to_9m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_coindays_consumed".to_string(), - ), - _9m_to_1y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_coindays_consumed".to_string(), - ), - _1y_to_18m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_coindays_consumed".to_string(), - ), - _18m_to_2y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_coindays_consumed".to_string(), - ), - _2y_to_3y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_coindays_consumed".to_string(), - ), - _3y_to_4y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_coindays_consumed".to_string(), - ), - _4y_to_5y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_coindays_consumed".to_string(), - ), - _5y_to_6y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_coindays_consumed".to_string(), - ), - _6y_to_7y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_coindays_consumed".to_string(), - ), - _7y_to_8y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_coindays_consumed".to_string(), - ), - _8y_to_10y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_coindays_consumed".to_string(), - ), - _10y_to_12y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_coindays_consumed".to_string(), - ), - _12y_to_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_coindays_consumed".to_string(), - ), - over_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_15y_old_coindays_consumed".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "utxos_age_range_coindays_consumed_cumulative".to_string(), - ), + under_1h: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1h_old_coindays_consumed".to_string()), + _1h_to_1d: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1h_to_1d_old_coindays_consumed".to_string()), + _1d_to_1w: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1d_to_1w_old_coindays_consumed".to_string()), + _1w_to_1m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1w_to_1m_old_coindays_consumed".to_string()), + _1m_to_2m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1m_to_2m_old_coindays_consumed".to_string()), + _2m_to_3m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2m_to_3m_old_coindays_consumed".to_string()), + _3m_to_4m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3m_to_4m_old_coindays_consumed".to_string()), + _4m_to_5m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4m_to_5m_old_coindays_consumed".to_string()), + _5m_to_6m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5m_to_6m_old_coindays_consumed".to_string()), + _6m_to_9m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6m_to_9m_old_coindays_consumed".to_string()), + _9m_to_1y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_9m_to_1y_old_coindays_consumed".to_string()), + _1y_to_18m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1y_to_18m_old_coindays_consumed".to_string()), + _18m_to_2y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_18m_to_2y_old_coindays_consumed".to_string()), + _2y_to_3y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2y_to_3y_old_coindays_consumed".to_string()), + _3y_to_4y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3y_to_4y_old_coindays_consumed".to_string()), + _4y_to_5y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4y_to_5y_old_coindays_consumed".to_string()), + _5y_to_6y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5y_to_6y_old_coindays_consumed".to_string()), + _6y_to_7y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6y_to_7y_old_coindays_consumed".to_string()), + _7y_to_8y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_7y_to_8y_old_coindays_consumed".to_string()), + _8y_to_10y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_8y_to_10y_old_coindays_consumed".to_string()), + _10y_to_12y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10y_to_12y_old_coindays_consumed".to_string()), + _12y_to_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_12y_to_15y_old_coindays_consumed".to_string()), + over_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_15y_old_coindays_consumed".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "utxos_age_range_coindays_consumed_cumulative".to_string()), } } } @@ -12366,102 +8562,30 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange_CoindaysStored { impl SeriesTree_Frameworks_Cointime_AgeRange_CoindaysStored { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1h_old_coindays_stored".to_string(), - ), - _1h_to_1d: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_coindays_stored".to_string(), - ), - _1d_to_1w: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_coindays_stored".to_string(), - ), - _1w_to_1m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_coindays_stored".to_string(), - ), - _1m_to_2m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_coindays_stored".to_string(), - ), - _2m_to_3m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_coindays_stored".to_string(), - ), - _3m_to_4m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_coindays_stored".to_string(), - ), - _4m_to_5m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_coindays_stored".to_string(), - ), - _5m_to_6m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_coindays_stored".to_string(), - ), - _6m_to_9m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_coindays_stored".to_string(), - ), - _9m_to_1y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_coindays_stored".to_string(), - ), - _1y_to_18m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_coindays_stored".to_string(), - ), - _18m_to_2y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_coindays_stored".to_string(), - ), - _2y_to_3y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_coindays_stored".to_string(), - ), - _3y_to_4y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_coindays_stored".to_string(), - ), - _4y_to_5y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_coindays_stored".to_string(), - ), - _5y_to_6y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_coindays_stored".to_string(), - ), - _6y_to_7y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_coindays_stored".to_string(), - ), - _7y_to_8y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_coindays_stored".to_string(), - ), - _8y_to_10y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_coindays_stored".to_string(), - ), - _10y_to_12y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_coindays_stored".to_string(), - ), - _12y_to_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_coindays_stored".to_string(), - ), - over_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_15y_old_coindays_stored".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "utxos_age_range_coindays_stored_cumulative".to_string(), - ), + under_1h: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1h_old_coindays_stored".to_string()), + _1h_to_1d: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1h_to_1d_old_coindays_stored".to_string()), + _1d_to_1w: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1d_to_1w_old_coindays_stored".to_string()), + _1w_to_1m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1w_to_1m_old_coindays_stored".to_string()), + _1m_to_2m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1m_to_2m_old_coindays_stored".to_string()), + _2m_to_3m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2m_to_3m_old_coindays_stored".to_string()), + _3m_to_4m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3m_to_4m_old_coindays_stored".to_string()), + _4m_to_5m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4m_to_5m_old_coindays_stored".to_string()), + _5m_to_6m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5m_to_6m_old_coindays_stored".to_string()), + _6m_to_9m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6m_to_9m_old_coindays_stored".to_string()), + _9m_to_1y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_9m_to_1y_old_coindays_stored".to_string()), + _1y_to_18m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1y_to_18m_old_coindays_stored".to_string()), + _18m_to_2y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_18m_to_2y_old_coindays_stored".to_string()), + _2y_to_3y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2y_to_3y_old_coindays_stored".to_string()), + _3y_to_4y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3y_to_4y_old_coindays_stored".to_string()), + _4y_to_5y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4y_to_5y_old_coindays_stored".to_string()), + _5y_to_6y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5y_to_6y_old_coindays_stored".to_string()), + _6y_to_7y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6y_to_7y_old_coindays_stored".to_string()), + _7y_to_8y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_7y_to_8y_old_coindays_stored".to_string()), + _8y_to_10y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_8y_to_10y_old_coindays_stored".to_string()), + _10y_to_12y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10y_to_12y_old_coindays_stored".to_string()), + _12y_to_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_12y_to_15y_old_coindays_stored".to_string()), + over_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_15y_old_coindays_stored".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "utxos_age_range_coindays_stored_cumulative".to_string()), } } } @@ -12470,27 +8594,16 @@ impl SeriesTree_Frameworks_Cointime_AgeRange_CoindaysStored { pub struct SeriesTree_Frameworks_Cointime_AgeRange_Activity { pub wakefulness: SeriesTree_Frameworks_Cointime_AgeRange_Activity_Wakefulness, pub dormancy: SeriesTree_Frameworks_Cointime_AgeRange_Activity_Dormancy, - pub wakefulness_to_dormancy: - SeriesTree_Frameworks_Cointime_AgeRange_Activity_WakefulnessToDormancy, + pub wakefulness_to_dormancy: SeriesTree_Frameworks_Cointime_AgeRange_Activity_WakefulnessToDormancy, pub height: SeriesPattern18, } impl SeriesTree_Frameworks_Cointime_AgeRange_Activity { pub fn new(client: Arc, base_path: String) -> Self { Self { - wakefulness: SeriesTree_Frameworks_Cointime_AgeRange_Activity_Wakefulness::new( - client.clone(), - format!("{base_path}_wakefulness"), - ), - dormancy: SeriesTree_Frameworks_Cointime_AgeRange_Activity_Dormancy::new( - client.clone(), - format!("{base_path}_dormancy"), - ), - wakefulness_to_dormancy: - SeriesTree_Frameworks_Cointime_AgeRange_Activity_WakefulnessToDormancy::new( - client.clone(), - format!("{base_path}_wakefulness_to_dormancy"), - ), + wakefulness: SeriesTree_Frameworks_Cointime_AgeRange_Activity_Wakefulness::new(client.clone(), format!("{base_path}_wakefulness")), + dormancy: SeriesTree_Frameworks_Cointime_AgeRange_Activity_Dormancy::new(client.clone(), format!("{base_path}_dormancy")), + wakefulness_to_dormancy: SeriesTree_Frameworks_Cointime_AgeRange_Activity_WakefulnessToDormancy::new(client.clone(), format!("{base_path}_wakefulness_to_dormancy")), height: SeriesPattern18::new(client.clone(), "utxos_age_range_wakefulness".to_string()), } } @@ -12526,98 +8639,29 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange_Activity_Wakefulness { impl SeriesTree_Frameworks_Cointime_AgeRange_Activity_Wakefulness { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesPattern1::new( - client.clone(), - "utxos_under_1h_old_wakefulness".to_string(), - ), - _1h_to_1d: SeriesPattern1::new( - client.clone(), - "utxos_1h_to_1d_old_wakefulness".to_string(), - ), - _1d_to_1w: SeriesPattern1::new( - client.clone(), - "utxos_1d_to_1w_old_wakefulness".to_string(), - ), - _1w_to_1m: SeriesPattern1::new( - client.clone(), - "utxos_1w_to_1m_old_wakefulness".to_string(), - ), - _1m_to_2m: SeriesPattern1::new( - client.clone(), - "utxos_1m_to_2m_old_wakefulness".to_string(), - ), - _2m_to_3m: SeriesPattern1::new( - client.clone(), - "utxos_2m_to_3m_old_wakefulness".to_string(), - ), - _3m_to_4m: SeriesPattern1::new( - client.clone(), - "utxos_3m_to_4m_old_wakefulness".to_string(), - ), - _4m_to_5m: SeriesPattern1::new( - client.clone(), - "utxos_4m_to_5m_old_wakefulness".to_string(), - ), - _5m_to_6m: SeriesPattern1::new( - client.clone(), - "utxos_5m_to_6m_old_wakefulness".to_string(), - ), - _6m_to_9m: SeriesPattern1::new( - client.clone(), - "utxos_6m_to_9m_old_wakefulness".to_string(), - ), - _9m_to_1y: SeriesPattern1::new( - client.clone(), - "utxos_9m_to_1y_old_wakefulness".to_string(), - ), - _1y_to_18m: SeriesPattern1::new( - client.clone(), - "utxos_1y_to_18m_old_wakefulness".to_string(), - ), - _18m_to_2y: SeriesPattern1::new( - client.clone(), - "utxos_18m_to_2y_old_wakefulness".to_string(), - ), - _2y_to_3y: SeriesPattern1::new( - client.clone(), - "utxos_2y_to_3y_old_wakefulness".to_string(), - ), - _3y_to_4y: SeriesPattern1::new( - client.clone(), - "utxos_3y_to_4y_old_wakefulness".to_string(), - ), - _4y_to_5y: SeriesPattern1::new( - client.clone(), - "utxos_4y_to_5y_old_wakefulness".to_string(), - ), - _5y_to_6y: SeriesPattern1::new( - client.clone(), - "utxos_5y_to_6y_old_wakefulness".to_string(), - ), - _6y_to_7y: SeriesPattern1::new( - client.clone(), - "utxos_6y_to_7y_old_wakefulness".to_string(), - ), - _7y_to_8y: SeriesPattern1::new( - client.clone(), - "utxos_7y_to_8y_old_wakefulness".to_string(), - ), - _8y_to_10y: SeriesPattern1::new( - client.clone(), - "utxos_8y_to_10y_old_wakefulness".to_string(), - ), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_10y_to_12y_old_wakefulness".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_12y_to_15y_old_wakefulness".to_string(), - ), - over_15y: SeriesPattern1::new( - client.clone(), - "utxos_over_15y_old_wakefulness".to_string(), - ), + under_1h: SeriesPattern1::new(client.clone(), "utxos_under_1h_old_wakefulness".to_string()), + _1h_to_1d: SeriesPattern1::new(client.clone(), "utxos_1h_to_1d_old_wakefulness".to_string()), + _1d_to_1w: SeriesPattern1::new(client.clone(), "utxos_1d_to_1w_old_wakefulness".to_string()), + _1w_to_1m: SeriesPattern1::new(client.clone(), "utxos_1w_to_1m_old_wakefulness".to_string()), + _1m_to_2m: SeriesPattern1::new(client.clone(), "utxos_1m_to_2m_old_wakefulness".to_string()), + _2m_to_3m: SeriesPattern1::new(client.clone(), "utxos_2m_to_3m_old_wakefulness".to_string()), + _3m_to_4m: SeriesPattern1::new(client.clone(), "utxos_3m_to_4m_old_wakefulness".to_string()), + _4m_to_5m: SeriesPattern1::new(client.clone(), "utxos_4m_to_5m_old_wakefulness".to_string()), + _5m_to_6m: SeriesPattern1::new(client.clone(), "utxos_5m_to_6m_old_wakefulness".to_string()), + _6m_to_9m: SeriesPattern1::new(client.clone(), "utxos_6m_to_9m_old_wakefulness".to_string()), + _9m_to_1y: SeriesPattern1::new(client.clone(), "utxos_9m_to_1y_old_wakefulness".to_string()), + _1y_to_18m: SeriesPattern1::new(client.clone(), "utxos_1y_to_18m_old_wakefulness".to_string()), + _18m_to_2y: SeriesPattern1::new(client.clone(), "utxos_18m_to_2y_old_wakefulness".to_string()), + _2y_to_3y: SeriesPattern1::new(client.clone(), "utxos_2y_to_3y_old_wakefulness".to_string()), + _3y_to_4y: SeriesPattern1::new(client.clone(), "utxos_3y_to_4y_old_wakefulness".to_string()), + _4y_to_5y: SeriesPattern1::new(client.clone(), "utxos_4y_to_5y_old_wakefulness".to_string()), + _5y_to_6y: SeriesPattern1::new(client.clone(), "utxos_5y_to_6y_old_wakefulness".to_string()), + _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_wakefulness".to_string()), + _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_wakefulness".to_string()), + _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_wakefulness".to_string()), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_wakefulness".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_wakefulness".to_string()), + over_15y: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_wakefulness".to_string()), } } } @@ -12652,98 +8696,29 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange_Activity_Dormancy { impl SeriesTree_Frameworks_Cointime_AgeRange_Activity_Dormancy { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesPattern1::new( - client.clone(), - "utxos_under_1h_old_dormancy".to_string(), - ), - _1h_to_1d: SeriesPattern1::new( - client.clone(), - "utxos_1h_to_1d_old_dormancy".to_string(), - ), - _1d_to_1w: SeriesPattern1::new( - client.clone(), - "utxos_1d_to_1w_old_dormancy".to_string(), - ), - _1w_to_1m: SeriesPattern1::new( - client.clone(), - "utxos_1w_to_1m_old_dormancy".to_string(), - ), - _1m_to_2m: SeriesPattern1::new( - client.clone(), - "utxos_1m_to_2m_old_dormancy".to_string(), - ), - _2m_to_3m: SeriesPattern1::new( - client.clone(), - "utxos_2m_to_3m_old_dormancy".to_string(), - ), - _3m_to_4m: SeriesPattern1::new( - client.clone(), - "utxos_3m_to_4m_old_dormancy".to_string(), - ), - _4m_to_5m: SeriesPattern1::new( - client.clone(), - "utxos_4m_to_5m_old_dormancy".to_string(), - ), - _5m_to_6m: SeriesPattern1::new( - client.clone(), - "utxos_5m_to_6m_old_dormancy".to_string(), - ), - _6m_to_9m: SeriesPattern1::new( - client.clone(), - "utxos_6m_to_9m_old_dormancy".to_string(), - ), - _9m_to_1y: SeriesPattern1::new( - client.clone(), - "utxos_9m_to_1y_old_dormancy".to_string(), - ), - _1y_to_18m: SeriesPattern1::new( - client.clone(), - "utxos_1y_to_18m_old_dormancy".to_string(), - ), - _18m_to_2y: SeriesPattern1::new( - client.clone(), - "utxos_18m_to_2y_old_dormancy".to_string(), - ), - _2y_to_3y: SeriesPattern1::new( - client.clone(), - "utxos_2y_to_3y_old_dormancy".to_string(), - ), - _3y_to_4y: SeriesPattern1::new( - client.clone(), - "utxos_3y_to_4y_old_dormancy".to_string(), - ), - _4y_to_5y: SeriesPattern1::new( - client.clone(), - "utxos_4y_to_5y_old_dormancy".to_string(), - ), - _5y_to_6y: SeriesPattern1::new( - client.clone(), - "utxos_5y_to_6y_old_dormancy".to_string(), - ), - _6y_to_7y: SeriesPattern1::new( - client.clone(), - "utxos_6y_to_7y_old_dormancy".to_string(), - ), - _7y_to_8y: SeriesPattern1::new( - client.clone(), - "utxos_7y_to_8y_old_dormancy".to_string(), - ), - _8y_to_10y: SeriesPattern1::new( - client.clone(), - "utxos_8y_to_10y_old_dormancy".to_string(), - ), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_10y_to_12y_old_dormancy".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_12y_to_15y_old_dormancy".to_string(), - ), - over_15y: SeriesPattern1::new( - client.clone(), - "utxos_over_15y_old_dormancy".to_string(), - ), + under_1h: SeriesPattern1::new(client.clone(), "utxos_under_1h_old_dormancy".to_string()), + _1h_to_1d: SeriesPattern1::new(client.clone(), "utxos_1h_to_1d_old_dormancy".to_string()), + _1d_to_1w: SeriesPattern1::new(client.clone(), "utxos_1d_to_1w_old_dormancy".to_string()), + _1w_to_1m: SeriesPattern1::new(client.clone(), "utxos_1w_to_1m_old_dormancy".to_string()), + _1m_to_2m: SeriesPattern1::new(client.clone(), "utxos_1m_to_2m_old_dormancy".to_string()), + _2m_to_3m: SeriesPattern1::new(client.clone(), "utxos_2m_to_3m_old_dormancy".to_string()), + _3m_to_4m: SeriesPattern1::new(client.clone(), "utxos_3m_to_4m_old_dormancy".to_string()), + _4m_to_5m: SeriesPattern1::new(client.clone(), "utxos_4m_to_5m_old_dormancy".to_string()), + _5m_to_6m: SeriesPattern1::new(client.clone(), "utxos_5m_to_6m_old_dormancy".to_string()), + _6m_to_9m: SeriesPattern1::new(client.clone(), "utxos_6m_to_9m_old_dormancy".to_string()), + _9m_to_1y: SeriesPattern1::new(client.clone(), "utxos_9m_to_1y_old_dormancy".to_string()), + _1y_to_18m: SeriesPattern1::new(client.clone(), "utxos_1y_to_18m_old_dormancy".to_string()), + _18m_to_2y: SeriesPattern1::new(client.clone(), "utxos_18m_to_2y_old_dormancy".to_string()), + _2y_to_3y: SeriesPattern1::new(client.clone(), "utxos_2y_to_3y_old_dormancy".to_string()), + _3y_to_4y: SeriesPattern1::new(client.clone(), "utxos_3y_to_4y_old_dormancy".to_string()), + _4y_to_5y: SeriesPattern1::new(client.clone(), "utxos_4y_to_5y_old_dormancy".to_string()), + _5y_to_6y: SeriesPattern1::new(client.clone(), "utxos_5y_to_6y_old_dormancy".to_string()), + _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_dormancy".to_string()), + _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_dormancy".to_string()), + _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_dormancy".to_string()), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_dormancy".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_dormancy".to_string()), + over_15y: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_dormancy".to_string()), } } } @@ -12778,98 +8753,29 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange_Activity_WakefulnessToDormanc impl SeriesTree_Frameworks_Cointime_AgeRange_Activity_WakefulnessToDormancy { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesPattern1::new( - client.clone(), - "utxos_under_1h_old_wakefulness_to_dormancy".to_string(), - ), - _1h_to_1d: SeriesPattern1::new( - client.clone(), - "utxos_1h_to_1d_old_wakefulness_to_dormancy".to_string(), - ), - _1d_to_1w: SeriesPattern1::new( - client.clone(), - "utxos_1d_to_1w_old_wakefulness_to_dormancy".to_string(), - ), - _1w_to_1m: SeriesPattern1::new( - client.clone(), - "utxos_1w_to_1m_old_wakefulness_to_dormancy".to_string(), - ), - _1m_to_2m: SeriesPattern1::new( - client.clone(), - "utxos_1m_to_2m_old_wakefulness_to_dormancy".to_string(), - ), - _2m_to_3m: SeriesPattern1::new( - client.clone(), - "utxos_2m_to_3m_old_wakefulness_to_dormancy".to_string(), - ), - _3m_to_4m: SeriesPattern1::new( - client.clone(), - "utxos_3m_to_4m_old_wakefulness_to_dormancy".to_string(), - ), - _4m_to_5m: SeriesPattern1::new( - client.clone(), - "utxos_4m_to_5m_old_wakefulness_to_dormancy".to_string(), - ), - _5m_to_6m: SeriesPattern1::new( - client.clone(), - "utxos_5m_to_6m_old_wakefulness_to_dormancy".to_string(), - ), - _6m_to_9m: SeriesPattern1::new( - client.clone(), - "utxos_6m_to_9m_old_wakefulness_to_dormancy".to_string(), - ), - _9m_to_1y: SeriesPattern1::new( - client.clone(), - "utxos_9m_to_1y_old_wakefulness_to_dormancy".to_string(), - ), - _1y_to_18m: SeriesPattern1::new( - client.clone(), - "utxos_1y_to_18m_old_wakefulness_to_dormancy".to_string(), - ), - _18m_to_2y: SeriesPattern1::new( - client.clone(), - "utxos_18m_to_2y_old_wakefulness_to_dormancy".to_string(), - ), - _2y_to_3y: SeriesPattern1::new( - client.clone(), - "utxos_2y_to_3y_old_wakefulness_to_dormancy".to_string(), - ), - _3y_to_4y: SeriesPattern1::new( - client.clone(), - "utxos_3y_to_4y_old_wakefulness_to_dormancy".to_string(), - ), - _4y_to_5y: SeriesPattern1::new( - client.clone(), - "utxos_4y_to_5y_old_wakefulness_to_dormancy".to_string(), - ), - _5y_to_6y: SeriesPattern1::new( - client.clone(), - "utxos_5y_to_6y_old_wakefulness_to_dormancy".to_string(), - ), - _6y_to_7y: SeriesPattern1::new( - client.clone(), - "utxos_6y_to_7y_old_wakefulness_to_dormancy".to_string(), - ), - _7y_to_8y: SeriesPattern1::new( - client.clone(), - "utxos_7y_to_8y_old_wakefulness_to_dormancy".to_string(), - ), - _8y_to_10y: SeriesPattern1::new( - client.clone(), - "utxos_8y_to_10y_old_wakefulness_to_dormancy".to_string(), - ), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_10y_to_12y_old_wakefulness_to_dormancy".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_12y_to_15y_old_wakefulness_to_dormancy".to_string(), - ), - over_15y: SeriesPattern1::new( - client.clone(), - "utxos_over_15y_old_wakefulness_to_dormancy".to_string(), - ), + under_1h: SeriesPattern1::new(client.clone(), "utxos_under_1h_old_wakefulness_to_dormancy".to_string()), + _1h_to_1d: SeriesPattern1::new(client.clone(), "utxos_1h_to_1d_old_wakefulness_to_dormancy".to_string()), + _1d_to_1w: SeriesPattern1::new(client.clone(), "utxos_1d_to_1w_old_wakefulness_to_dormancy".to_string()), + _1w_to_1m: SeriesPattern1::new(client.clone(), "utxos_1w_to_1m_old_wakefulness_to_dormancy".to_string()), + _1m_to_2m: SeriesPattern1::new(client.clone(), "utxos_1m_to_2m_old_wakefulness_to_dormancy".to_string()), + _2m_to_3m: SeriesPattern1::new(client.clone(), "utxos_2m_to_3m_old_wakefulness_to_dormancy".to_string()), + _3m_to_4m: SeriesPattern1::new(client.clone(), "utxos_3m_to_4m_old_wakefulness_to_dormancy".to_string()), + _4m_to_5m: SeriesPattern1::new(client.clone(), "utxos_4m_to_5m_old_wakefulness_to_dormancy".to_string()), + _5m_to_6m: SeriesPattern1::new(client.clone(), "utxos_5m_to_6m_old_wakefulness_to_dormancy".to_string()), + _6m_to_9m: SeriesPattern1::new(client.clone(), "utxos_6m_to_9m_old_wakefulness_to_dormancy".to_string()), + _9m_to_1y: SeriesPattern1::new(client.clone(), "utxos_9m_to_1y_old_wakefulness_to_dormancy".to_string()), + _1y_to_18m: SeriesPattern1::new(client.clone(), "utxos_1y_to_18m_old_wakefulness_to_dormancy".to_string()), + _18m_to_2y: SeriesPattern1::new(client.clone(), "utxos_18m_to_2y_old_wakefulness_to_dormancy".to_string()), + _2y_to_3y: SeriesPattern1::new(client.clone(), "utxos_2y_to_3y_old_wakefulness_to_dormancy".to_string()), + _3y_to_4y: SeriesPattern1::new(client.clone(), "utxos_3y_to_4y_old_wakefulness_to_dormancy".to_string()), + _4y_to_5y: SeriesPattern1::new(client.clone(), "utxos_4y_to_5y_old_wakefulness_to_dormancy".to_string()), + _5y_to_6y: SeriesPattern1::new(client.clone(), "utxos_5y_to_6y_old_wakefulness_to_dormancy".to_string()), + _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_wakefulness_to_dormancy".to_string()), + _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_wakefulness_to_dormancy".to_string()), + _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_wakefulness_to_dormancy".to_string()), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_wakefulness_to_dormancy".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_wakefulness_to_dormancy".to_string()), + over_15y: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_wakefulness_to_dormancy".to_string()), } } } @@ -12883,14 +8789,8 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange_Supply { impl SeriesTree_Frameworks_Cointime_AgeRange_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { - awake: SeriesTree_Frameworks_Cointime_AgeRange_Supply_Awake::new( - client.clone(), - format!("{base_path}_awake"), - ), - dormant: SeriesTree_Frameworks_Cointime_AgeRange_Supply_Dormant::new( - client.clone(), - format!("{base_path}_dormant"), - ), + awake: SeriesTree_Frameworks_Cointime_AgeRange_Supply_Awake::new(client.clone(), format!("{base_path}_awake")), + dormant: SeriesTree_Frameworks_Cointime_AgeRange_Supply_Dormant::new(client.clone(), format!("{base_path}_dormant")), } } } @@ -12926,102 +8826,30 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange_Supply_Awake { impl SeriesTree_Frameworks_Cointime_AgeRange_Supply_Awake { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_awake_supply".to_string(), - ), - _1h_to_1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_awake_supply".to_string(), - ), - _1d_to_1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_awake_supply".to_string(), - ), - _1w_to_1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_awake_supply".to_string(), - ), - _1m_to_2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_awake_supply".to_string(), - ), - _2m_to_3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_awake_supply".to_string(), - ), - _3m_to_4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_awake_supply".to_string(), - ), - _4m_to_5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_awake_supply".to_string(), - ), - _5m_to_6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_awake_supply".to_string(), - ), - _6m_to_9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_awake_supply".to_string(), - ), - _9m_to_1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_awake_supply".to_string(), - ), - _1y_to_18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_awake_supply".to_string(), - ), - _18m_to_2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_awake_supply".to_string(), - ), - _2y_to_3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_awake_supply".to_string(), - ), - _3y_to_4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_awake_supply".to_string(), - ), - _4y_to_5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_awake_supply".to_string(), - ), - _5y_to_6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_awake_supply".to_string(), - ), - _6y_to_7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_awake_supply".to_string(), - ), - _7y_to_8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_awake_supply".to_string(), - ), - _8y_to_10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_awake_supply".to_string(), - ), - _10y_to_12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_awake_supply".to_string(), - ), - _12y_to_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_awake_supply".to_string(), - ), - over_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_awake_supply".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "utxos_age_range_awake_supply_sats".to_string(), - ), + under_1h: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1h_old_awake_supply".to_string()), + _1h_to_1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_awake_supply".to_string()), + _1d_to_1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_awake_supply".to_string()), + _1w_to_1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_awake_supply".to_string()), + _1m_to_2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_awake_supply".to_string()), + _2m_to_3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_awake_supply".to_string()), + _3m_to_4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_awake_supply".to_string()), + _4m_to_5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_awake_supply".to_string()), + _5m_to_6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_awake_supply".to_string()), + _6m_to_9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_awake_supply".to_string()), + _9m_to_1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_awake_supply".to_string()), + _1y_to_18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_awake_supply".to_string()), + _18m_to_2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_awake_supply".to_string()), + _2y_to_3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_awake_supply".to_string()), + _3y_to_4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_awake_supply".to_string()), + _4y_to_5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_awake_supply".to_string()), + _5y_to_6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_awake_supply".to_string()), + _6y_to_7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_awake_supply".to_string()), + _7y_to_8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_awake_supply".to_string()), + _8y_to_10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_awake_supply".to_string()), + _10y_to_12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_awake_supply".to_string()), + _12y_to_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_awake_supply".to_string()), + over_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_15y_old_awake_supply".to_string()), + height: SeriesPattern18::new(client.clone(), "utxos_age_range_awake_supply_sats".to_string()), } } } @@ -13057,102 +8885,30 @@ pub struct SeriesTree_Frameworks_Cointime_AgeRange_Supply_Dormant { impl SeriesTree_Frameworks_Cointime_AgeRange_Supply_Dormant { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_dormant_supply".to_string(), - ), - _1h_to_1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_dormant_supply".to_string(), - ), - _1d_to_1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_dormant_supply".to_string(), - ), - _1w_to_1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_dormant_supply".to_string(), - ), - _1m_to_2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_dormant_supply".to_string(), - ), - _2m_to_3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_dormant_supply".to_string(), - ), - _3m_to_4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_dormant_supply".to_string(), - ), - _4m_to_5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_dormant_supply".to_string(), - ), - _5m_to_6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_dormant_supply".to_string(), - ), - _6m_to_9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_dormant_supply".to_string(), - ), - _9m_to_1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_dormant_supply".to_string(), - ), - _1y_to_18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_dormant_supply".to_string(), - ), - _18m_to_2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_dormant_supply".to_string(), - ), - _2y_to_3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_dormant_supply".to_string(), - ), - _3y_to_4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_dormant_supply".to_string(), - ), - _4y_to_5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_dormant_supply".to_string(), - ), - _5y_to_6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_dormant_supply".to_string(), - ), - _6y_to_7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_dormant_supply".to_string(), - ), - _7y_to_8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_dormant_supply".to_string(), - ), - _8y_to_10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_dormant_supply".to_string(), - ), - _10y_to_12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_dormant_supply".to_string(), - ), - _12y_to_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_dormant_supply".to_string(), - ), - over_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_dormant_supply".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "utxos_age_range_dormant_supply_sats".to_string(), - ), + under_1h: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1h_old_dormant_supply".to_string()), + _1h_to_1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_dormant_supply".to_string()), + _1d_to_1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_dormant_supply".to_string()), + _1w_to_1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_dormant_supply".to_string()), + _1m_to_2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_dormant_supply".to_string()), + _2m_to_3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_dormant_supply".to_string()), + _3m_to_4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_dormant_supply".to_string()), + _4m_to_5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_dormant_supply".to_string()), + _5m_to_6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_dormant_supply".to_string()), + _6m_to_9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_dormant_supply".to_string()), + _9m_to_1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_dormant_supply".to_string()), + _1y_to_18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_dormant_supply".to_string()), + _18m_to_2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_dormant_supply".to_string()), + _2y_to_3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_dormant_supply".to_string()), + _3y_to_4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_dormant_supply".to_string()), + _4y_to_5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_dormant_supply".to_string()), + _5y_to_6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_dormant_supply".to_string()), + _6y_to_7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_dormant_supply".to_string()), + _7y_to_8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_dormant_supply".to_string()), + _8y_to_10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_dormant_supply".to_string()), + _10y_to_12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_dormant_supply".to_string()), + _12y_to_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_dormant_supply".to_string()), + over_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_15y_old_dormant_supply".to_string()), + height: SeriesPattern18::new(client.clone(), "utxos_age_range_dormant_supply_sats".to_string()), } } } @@ -13167,10 +8923,7 @@ pub struct SeriesTree_Frameworks_Cointime_Awake { impl SeriesTree_Frameworks_Cointime_Awake { pub fn new(client: Arc, base_path: String) -> Self { Self { - supply: SeriesTree_Frameworks_Cointime_Awake_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + supply: SeriesTree_Frameworks_Cointime_Awake_Supply::new(client.clone(), format!("{base_path}_supply")), cap: CentsUsdPattern3::new(client.clone(), "all_awake_cap".to_string()), price: CentsPpmRatioSatsUsdPattern::new(client.clone(), "all_awake_price".to_string()), } @@ -13193,10 +8946,7 @@ impl SeriesTree_Frameworks_Cointime_Awake_Supply { sats: SeriesPattern1::new(client.clone(), "all_awake_supply_sats".to_string()), usd: SeriesPattern1::new(client.clone(), "all_awake_supply_usd".to_string()), cents: SeriesPattern1::new(client.clone(), "all_awake_supply_cents".to_string()), - in_loss: SharePattern3::new( - client.clone(), - "all_awake_supply_in_loss_share".to_string(), - ), + in_loss: SharePattern3::new(client.clone(), "all_awake_supply_in_loss_share".to_string()), } } } @@ -13210,10 +8960,7 @@ pub struct SeriesTree_Frameworks_Cointime_Sth { impl SeriesTree_Frameworks_Cointime_Sth { pub fn new(client: Arc, base_path: String) -> Self { Self { - awake: SeriesTree_Frameworks_Cointime_Sth_Awake::new( - client.clone(), - format!("{base_path}_awake"), - ), + awake: SeriesTree_Frameworks_Cointime_Sth_Awake::new(client.clone(), format!("{base_path}_awake")), dormant: SupplyPattern2::new(client.clone(), "sth_dormant_supply".to_string()), } } @@ -13229,10 +8976,7 @@ pub struct SeriesTree_Frameworks_Cointime_Sth_Awake { impl SeriesTree_Frameworks_Cointime_Sth_Awake { pub fn new(client: Arc, base_path: String) -> Self { Self { - supply: SeriesTree_Frameworks_Cointime_Sth_Awake_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + supply: SeriesTree_Frameworks_Cointime_Sth_Awake_Supply::new(client.clone(), format!("{base_path}_supply")), cap: CentsUsdPattern3::new(client.clone(), "sth_awake_cap".to_string()), price: CentsPpmRatioSatsUsdPattern::new(client.clone(), "sth_awake_price".to_string()), } @@ -13255,10 +8999,7 @@ impl SeriesTree_Frameworks_Cointime_Sth_Awake_Supply { sats: SeriesPattern1::new(client.clone(), "sth_awake_supply_sats".to_string()), usd: SeriesPattern1::new(client.clone(), "sth_awake_supply_usd".to_string()), cents: SeriesPattern1::new(client.clone(), "sth_awake_supply_cents".to_string()), - in_loss: SharePattern3::new( - client.clone(), - "sth_awake_supply_in_loss_share".to_string(), - ), + in_loss: SharePattern3::new(client.clone(), "sth_awake_supply_in_loss_share".to_string()), } } } @@ -13272,10 +9013,7 @@ pub struct SeriesTree_Frameworks_Cointime_Lth { impl SeriesTree_Frameworks_Cointime_Lth { pub fn new(client: Arc, base_path: String) -> Self { Self { - awake: SeriesTree_Frameworks_Cointime_Lth_Awake::new( - client.clone(), - format!("{base_path}_awake"), - ), + awake: SeriesTree_Frameworks_Cointime_Lth_Awake::new(client.clone(), format!("{base_path}_awake")), dormant: SupplyPattern2::new(client.clone(), "lth_dormant_supply".to_string()), } } @@ -13291,10 +9029,7 @@ pub struct SeriesTree_Frameworks_Cointime_Lth_Awake { impl SeriesTree_Frameworks_Cointime_Lth_Awake { pub fn new(client: Arc, base_path: String) -> Self { Self { - supply: SeriesTree_Frameworks_Cointime_Lth_Awake_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + supply: SeriesTree_Frameworks_Cointime_Lth_Awake_Supply::new(client.clone(), format!("{base_path}_supply")), cap: CentsUsdPattern3::new(client.clone(), "lth_awake_cap".to_string()), price: CentsPpmRatioSatsUsdPattern::new(client.clone(), "lth_awake_price".to_string()), } @@ -13317,10 +9052,7 @@ impl SeriesTree_Frameworks_Cointime_Lth_Awake_Supply { sats: SeriesPattern1::new(client.clone(), "lth_awake_supply_sats".to_string()), usd: SeriesPattern1::new(client.clone(), "lth_awake_supply_usd".to_string()), cents: SeriesPattern1::new(client.clone(), "lth_awake_supply_cents".to_string()), - in_loss: SharePattern3::new( - client.clone(), - "lth_awake_supply_in_loss_share".to_string(), - ), + in_loss: SharePattern3::new(client.clone(), "lth_awake_supply_in_loss_share".to_string()), } } } @@ -13337,26 +9069,11 @@ pub struct SeriesTree_Frameworks_Cointime_Sources { impl SeriesTree_Frameworks_Cointime_Sources { pub fn new(client: Arc, base_path: String) -> Self { Self { - awake_supply: SeriesPattern18::new( - client.clone(), - "cointime_awake_supply_sats_by_term".to_string(), - ), - dormant_supply: SeriesPattern18::new( - client.clone(), - "cointime_dormant_supply_sats_by_term".to_string(), - ), - awake_cap: SeriesPattern18::new( - client.clone(), - "cointime_awake_cap_cents_by_term".to_string(), - ), - awake_price: SeriesPattern18::new( - client.clone(), - "cointime_awake_price_cents_by_aggregate".to_string(), - ), - supply_in_loss_share: SeriesPattern18::new( - client.clone(), - "cointime_awake_supply_in_loss_share_by_term".to_string(), - ), + awake_supply: SeriesPattern18::new(client.clone(), "cointime_awake_supply_sats_by_term".to_string()), + dormant_supply: SeriesPattern18::new(client.clone(), "cointime_dormant_supply_sats_by_term".to_string()), + awake_cap: SeriesPattern18::new(client.clone(), "cointime_awake_cap_cents_by_term".to_string()), + awake_price: SeriesPattern18::new(client.clone(), "cointime_awake_price_cents_by_aggregate".to_string()), + supply_in_loss_share: SeriesPattern18::new(client.clone(), "cointime_awake_supply_in_loss_share_by_term".to_string()), } } } @@ -13371,10 +9088,7 @@ impl SeriesTree_Frameworks_Cointime_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { vaulted: BtcCentsSatsUsdPattern::new(client.clone(), "vaulted_supply".to_string()), - active: SeriesTree_Frameworks_Cointime_Supply_Active::new( - client.clone(), - format!("{base_path}_active"), - ), + active: SeriesTree_Frameworks_Cointime_Supply_Active::new(client.clone(), format!("{base_path}_active")), } } } @@ -13395,10 +9109,7 @@ impl SeriesTree_Frameworks_Cointime_Supply_Active { sats: SeriesPattern1::new(client.clone(), "active_supply_sats".to_string()), usd: SeriesPattern1::new(client.clone(), "active_supply_usd".to_string()), cents: SeriesPattern1::new(client.clone(), "active_supply_cents".to_string()), - in_loss: SharePattern3::new( - client.clone(), - "cointime_supply_in_loss_share".to_string(), - ), + in_loss: SharePattern3::new(client.clone(), "cointime_supply_in_loss_share".to_string()), } } } @@ -13414,18 +9125,9 @@ pub struct SeriesTree_Frameworks_Cointime_Value { impl SeriesTree_Frameworks_Cointime_Value { pub fn new(client: Arc, base_path: String) -> Self { Self { - destroyed: AverageBlockCumulativeSumPattern::new( - client.clone(), - "cointime_value_destroyed".to_string(), - ), - created: AverageBlockCumulativeSumPattern::new( - client.clone(), - "cointime_value_created".to_string(), - ), - stored: AverageBlockCumulativeSumPattern::new( - client.clone(), - "cointime_value_stored".to_string(), - ), + destroyed: AverageBlockCumulativeSumPattern::new(client.clone(), "cointime_value_destroyed".to_string()), + created: AverageBlockCumulativeSumPattern::new(client.clone(), "cointime_value_created".to_string()), + stored: AverageBlockCumulativeSumPattern::new(client.clone(), "cointime_value_stored".to_string()), vocdd: AverageBlockCumulativeSumPattern::new(client.clone(), "vocdd".to_string()), } } @@ -13467,14 +9169,8 @@ impl SeriesTree_Frameworks_Cointime_Prices { Self { vaulted: CentsPpmRatioSatsUsdPattern::new(client.clone(), "vaulted_price".to_string()), active: CentsPpmRatioSatsUsdPattern::new(client.clone(), "active_price".to_string()), - true_market_mean: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "true_market_mean".to_string(), - ), - cointime: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "cointime_price".to_string(), - ), + true_market_mean: CentsPpmRatioSatsUsdPattern::new(client.clone(), "true_market_mean".to_string()), + cointime: CentsPpmRatioSatsUsdPattern::new(client.clone(), "cointime_price".to_string()), } } } @@ -13489,18 +9185,9 @@ pub struct SeriesTree_Frameworks_Cointime_Adjusted { impl SeriesTree_Frameworks_Cointime_Adjusted { pub fn new(client: Arc, base_path: String) -> Self { Self { - inflation_rate: PercentPpmRatioPattern::new( - client.clone(), - "cointime_adj_inflation_rate".to_string(), - ), - tx_velocity_native: SeriesPattern1::new( - client.clone(), - "cointime_adj_tx_velocity_btc".to_string(), - ), - tx_velocity_fiat: SeriesPattern1::new( - client.clone(), - "cointime_adj_tx_velocity_usd".to_string(), - ), + inflation_rate: PercentPpmRatioPattern::new(client.clone(), "cointime_adj_inflation_rate".to_string()), + tx_velocity_native: SeriesPattern1::new(client.clone(), "cointime_adj_tx_velocity_btc".to_string()), + tx_velocity_fiat: SeriesPattern1::new(client.clone(), "cointime_adj_tx_velocity_usd".to_string()), } } } @@ -13537,32 +9224,14 @@ pub struct SeriesTree_Frameworks_Coinflow { impl SeriesTree_Frameworks_Coinflow { pub fn new(client: Arc, base_path: String) -> Self { Self { - age_range: SeriesTree_Frameworks_Coinflow_AgeRange::new( - client.clone(), - format!("{base_path}_age_range"), - ), - supply: SeriesTree_Frameworks_Coinflow_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + age_range: SeriesTree_Frameworks_Coinflow_AgeRange::new(client.clone(), format!("{base_path}_age_range")), + supply: SeriesTree_Frameworks_Coinflow_Supply::new(client.clone(), format!("{base_path}_supply")), horizon: _1m1y2y3m4y6m8yPattern2::new(client.clone(), "all_coinflow".to_string()), cap: CentsUsdPattern3::new(client.clone(), "all_coinflow_cap".to_string()), - price: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "all_coinflow_price".to_string(), - ), - sth: SeriesTree_Frameworks_Coinflow_Sth::new( - client.clone(), - format!("{base_path}_sth"), - ), - lth: SeriesTree_Frameworks_Coinflow_Lth::new( - client.clone(), - format!("{base_path}_lth"), - ), - aggregate_sources: SeriesTree_Frameworks_Coinflow_AggregateSources::new( - client.clone(), - format!("{base_path}_aggregate_sources"), - ), + price: CentsPpmRatioSatsUsdPattern::new(client.clone(), "all_coinflow_price".to_string()), + sth: SeriesTree_Frameworks_Coinflow_Sth::new(client.clone(), format!("{base_path}_sth")), + lth: SeriesTree_Frameworks_Coinflow_Lth::new(client.clone(), format!("{base_path}_lth")), + aggregate_sources: SeriesTree_Frameworks_Coinflow_AggregateSources::new(client.clone(), format!("{base_path}_aggregate_sources")), } } } @@ -13577,18 +9246,9 @@ pub struct SeriesTree_Frameworks_Coinflow_AgeRange { impl SeriesTree_Frameworks_Coinflow_AgeRange { pub fn new(client: Arc, base_path: String) -> Self { Self { - spending_rate: SeriesTree_Frameworks_Coinflow_AgeRange_SpendingRate::new( - client.clone(), - format!("{base_path}_spending_rate"), - ), - spending_exposure: SeriesTree_Frameworks_Coinflow_AgeRange_SpendingExposure::new( - client.clone(), - format!("{base_path}_spending_exposure"), - ), - supply: SeriesTree_Frameworks_Coinflow_AgeRange_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + spending_rate: SeriesTree_Frameworks_Coinflow_AgeRange_SpendingRate::new(client.clone(), format!("{base_path}_spending_rate")), + spending_exposure: SeriesTree_Frameworks_Coinflow_AgeRange_SpendingExposure::new(client.clone(), format!("{base_path}_spending_exposure")), + supply: SeriesTree_Frameworks_Coinflow_AgeRange_Supply::new(client.clone(), format!("{base_path}_supply")), } } } @@ -13624,102 +9284,30 @@ pub struct SeriesTree_Frameworks_Coinflow_AgeRange_SpendingRate { impl SeriesTree_Frameworks_Coinflow_AgeRange_SpendingRate { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesPattern1::new( - client.clone(), - "utxos_under_1h_old_spending_rate".to_string(), - ), - _1h_to_1d: SeriesPattern1::new( - client.clone(), - "utxos_1h_to_1d_old_spending_rate".to_string(), - ), - _1d_to_1w: SeriesPattern1::new( - client.clone(), - "utxos_1d_to_1w_old_spending_rate".to_string(), - ), - _1w_to_1m: SeriesPattern1::new( - client.clone(), - "utxos_1w_to_1m_old_spending_rate".to_string(), - ), - _1m_to_2m: SeriesPattern1::new( - client.clone(), - "utxos_1m_to_2m_old_spending_rate".to_string(), - ), - _2m_to_3m: SeriesPattern1::new( - client.clone(), - "utxos_2m_to_3m_old_spending_rate".to_string(), - ), - _3m_to_4m: SeriesPattern1::new( - client.clone(), - "utxos_3m_to_4m_old_spending_rate".to_string(), - ), - _4m_to_5m: SeriesPattern1::new( - client.clone(), - "utxos_4m_to_5m_old_spending_rate".to_string(), - ), - _5m_to_6m: SeriesPattern1::new( - client.clone(), - "utxos_5m_to_6m_old_spending_rate".to_string(), - ), - _6m_to_9m: SeriesPattern1::new( - client.clone(), - "utxos_6m_to_9m_old_spending_rate".to_string(), - ), - _9m_to_1y: SeriesPattern1::new( - client.clone(), - "utxos_9m_to_1y_old_spending_rate".to_string(), - ), - _1y_to_18m: SeriesPattern1::new( - client.clone(), - "utxos_1y_to_18m_old_spending_rate".to_string(), - ), - _18m_to_2y: SeriesPattern1::new( - client.clone(), - "utxos_18m_to_2y_old_spending_rate".to_string(), - ), - _2y_to_3y: SeriesPattern1::new( - client.clone(), - "utxos_2y_to_3y_old_spending_rate".to_string(), - ), - _3y_to_4y: SeriesPattern1::new( - client.clone(), - "utxos_3y_to_4y_old_spending_rate".to_string(), - ), - _4y_to_5y: SeriesPattern1::new( - client.clone(), - "utxos_4y_to_5y_old_spending_rate".to_string(), - ), - _5y_to_6y: SeriesPattern1::new( - client.clone(), - "utxos_5y_to_6y_old_spending_rate".to_string(), - ), - _6y_to_7y: SeriesPattern1::new( - client.clone(), - "utxos_6y_to_7y_old_spending_rate".to_string(), - ), - _7y_to_8y: SeriesPattern1::new( - client.clone(), - "utxos_7y_to_8y_old_spending_rate".to_string(), - ), - _8y_to_10y: SeriesPattern1::new( - client.clone(), - "utxos_8y_to_10y_old_spending_rate".to_string(), - ), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_10y_to_12y_old_spending_rate".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_12y_to_15y_old_spending_rate".to_string(), - ), - over_15y: SeriesPattern1::new( - client.clone(), - "utxos_over_15y_old_spending_rate".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "utxos_age_range_spending_rate".to_string(), - ), + under_1h: SeriesPattern1::new(client.clone(), "utxos_under_1h_old_spending_rate".to_string()), + _1h_to_1d: SeriesPattern1::new(client.clone(), "utxos_1h_to_1d_old_spending_rate".to_string()), + _1d_to_1w: SeriesPattern1::new(client.clone(), "utxos_1d_to_1w_old_spending_rate".to_string()), + _1w_to_1m: SeriesPattern1::new(client.clone(), "utxos_1w_to_1m_old_spending_rate".to_string()), + _1m_to_2m: SeriesPattern1::new(client.clone(), "utxos_1m_to_2m_old_spending_rate".to_string()), + _2m_to_3m: SeriesPattern1::new(client.clone(), "utxos_2m_to_3m_old_spending_rate".to_string()), + _3m_to_4m: SeriesPattern1::new(client.clone(), "utxos_3m_to_4m_old_spending_rate".to_string()), + _4m_to_5m: SeriesPattern1::new(client.clone(), "utxos_4m_to_5m_old_spending_rate".to_string()), + _5m_to_6m: SeriesPattern1::new(client.clone(), "utxos_5m_to_6m_old_spending_rate".to_string()), + _6m_to_9m: SeriesPattern1::new(client.clone(), "utxos_6m_to_9m_old_spending_rate".to_string()), + _9m_to_1y: SeriesPattern1::new(client.clone(), "utxos_9m_to_1y_old_spending_rate".to_string()), + _1y_to_18m: SeriesPattern1::new(client.clone(), "utxos_1y_to_18m_old_spending_rate".to_string()), + _18m_to_2y: SeriesPattern1::new(client.clone(), "utxos_18m_to_2y_old_spending_rate".to_string()), + _2y_to_3y: SeriesPattern1::new(client.clone(), "utxos_2y_to_3y_old_spending_rate".to_string()), + _3y_to_4y: SeriesPattern1::new(client.clone(), "utxos_3y_to_4y_old_spending_rate".to_string()), + _4y_to_5y: SeriesPattern1::new(client.clone(), "utxos_4y_to_5y_old_spending_rate".to_string()), + _5y_to_6y: SeriesPattern1::new(client.clone(), "utxos_5y_to_6y_old_spending_rate".to_string()), + _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_spending_rate".to_string()), + _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_spending_rate".to_string()), + _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_spending_rate".to_string()), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_spending_rate".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_spending_rate".to_string()), + over_15y: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_spending_rate".to_string()), + height: SeriesPattern18::new(client.clone(), "utxos_age_range_spending_rate".to_string()), } } } @@ -13756,106 +9344,31 @@ pub struct SeriesTree_Frameworks_Coinflow_AgeRange_SpendingExposure { impl SeriesTree_Frameworks_Coinflow_AgeRange_SpendingExposure { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesPattern1::new( - client.clone(), - "utxos_under_1h_old_spending_exposure".to_string(), - ), - _1h_to_1d: SeriesPattern1::new( - client.clone(), - "utxos_1h_to_1d_old_spending_exposure".to_string(), - ), - _1d_to_1w: SeriesPattern1::new( - client.clone(), - "utxos_1d_to_1w_old_spending_exposure".to_string(), - ), - _1w_to_1m: SeriesPattern1::new( - client.clone(), - "utxos_1w_to_1m_old_spending_exposure".to_string(), - ), - _1m_to_2m: SeriesPattern1::new( - client.clone(), - "utxos_1m_to_2m_old_spending_exposure".to_string(), - ), - _2m_to_3m: SeriesPattern1::new( - client.clone(), - "utxos_2m_to_3m_old_spending_exposure".to_string(), - ), - _3m_to_4m: SeriesPattern1::new( - client.clone(), - "utxos_3m_to_4m_old_spending_exposure".to_string(), - ), - _4m_to_5m: SeriesPattern1::new( - client.clone(), - "utxos_4m_to_5m_old_spending_exposure".to_string(), - ), - _5m_to_6m: SeriesPattern1::new( - client.clone(), - "utxos_5m_to_6m_old_spending_exposure".to_string(), - ), - _6m_to_9m: SeriesPattern1::new( - client.clone(), - "utxos_6m_to_9m_old_spending_exposure".to_string(), - ), - _9m_to_1y: SeriesPattern1::new( - client.clone(), - "utxos_9m_to_1y_old_spending_exposure".to_string(), - ), - _1y_to_18m: SeriesPattern1::new( - client.clone(), - "utxos_1y_to_18m_old_spending_exposure".to_string(), - ), - _18m_to_2y: SeriesPattern1::new( - client.clone(), - "utxos_18m_to_2y_old_spending_exposure".to_string(), - ), - _2y_to_3y: SeriesPattern1::new( - client.clone(), - "utxos_2y_to_3y_old_spending_exposure".to_string(), - ), - _3y_to_4y: SeriesPattern1::new( - client.clone(), - "utxos_3y_to_4y_old_spending_exposure".to_string(), - ), - _4y_to_5y: SeriesPattern1::new( - client.clone(), - "utxos_4y_to_5y_old_spending_exposure".to_string(), - ), - _5y_to_6y: SeriesPattern1::new( - client.clone(), - "utxos_5y_to_6y_old_spending_exposure".to_string(), - ), - _6y_to_7y: SeriesPattern1::new( - client.clone(), - "utxos_6y_to_7y_old_spending_exposure".to_string(), - ), - _7y_to_8y: SeriesPattern1::new( - client.clone(), - "utxos_7y_to_8y_old_spending_exposure".to_string(), - ), - _8y_to_10y: SeriesPattern1::new( - client.clone(), - "utxos_8y_to_10y_old_spending_exposure".to_string(), - ), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_10y_to_12y_old_spending_exposure".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_12y_to_15y_old_spending_exposure".to_string(), - ), - over_15y: SeriesPattern1::new( - client.clone(), - "utxos_over_15y_old_spending_exposure".to_string(), - ), - mobility: SeriesTree_Frameworks_Coinflow_AgeRange_SpendingExposure_Mobility::new( - client.clone(), - format!("{base_path}_mobility"), - ), - height: SeriesPattern18::new( - client.clone(), - "utxos_age_range_spending_exposure".to_string(), - ), + under_1h: SeriesPattern1::new(client.clone(), "utxos_under_1h_old_spending_exposure".to_string()), + _1h_to_1d: SeriesPattern1::new(client.clone(), "utxos_1h_to_1d_old_spending_exposure".to_string()), + _1d_to_1w: SeriesPattern1::new(client.clone(), "utxos_1d_to_1w_old_spending_exposure".to_string()), + _1w_to_1m: SeriesPattern1::new(client.clone(), "utxos_1w_to_1m_old_spending_exposure".to_string()), + _1m_to_2m: SeriesPattern1::new(client.clone(), "utxos_1m_to_2m_old_spending_exposure".to_string()), + _2m_to_3m: SeriesPattern1::new(client.clone(), "utxos_2m_to_3m_old_spending_exposure".to_string()), + _3m_to_4m: SeriesPattern1::new(client.clone(), "utxos_3m_to_4m_old_spending_exposure".to_string()), + _4m_to_5m: SeriesPattern1::new(client.clone(), "utxos_4m_to_5m_old_spending_exposure".to_string()), + _5m_to_6m: SeriesPattern1::new(client.clone(), "utxos_5m_to_6m_old_spending_exposure".to_string()), + _6m_to_9m: SeriesPattern1::new(client.clone(), "utxos_6m_to_9m_old_spending_exposure".to_string()), + _9m_to_1y: SeriesPattern1::new(client.clone(), "utxos_9m_to_1y_old_spending_exposure".to_string()), + _1y_to_18m: SeriesPattern1::new(client.clone(), "utxos_1y_to_18m_old_spending_exposure".to_string()), + _18m_to_2y: SeriesPattern1::new(client.clone(), "utxos_18m_to_2y_old_spending_exposure".to_string()), + _2y_to_3y: SeriesPattern1::new(client.clone(), "utxos_2y_to_3y_old_spending_exposure".to_string()), + _3y_to_4y: SeriesPattern1::new(client.clone(), "utxos_3y_to_4y_old_spending_exposure".to_string()), + _4y_to_5y: SeriesPattern1::new(client.clone(), "utxos_4y_to_5y_old_spending_exposure".to_string()), + _5y_to_6y: SeriesPattern1::new(client.clone(), "utxos_5y_to_6y_old_spending_exposure".to_string()), + _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_spending_exposure".to_string()), + _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_spending_exposure".to_string()), + _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_spending_exposure".to_string()), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_spending_exposure".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_spending_exposure".to_string()), + over_15y: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_spending_exposure".to_string()), + mobility: SeriesTree_Frameworks_Coinflow_AgeRange_SpendingExposure_Mobility::new(client.clone(), format!("{base_path}_mobility")), + height: SeriesPattern18::new(client.clone(), "utxos_age_range_spending_exposure".to_string()), } } } @@ -13890,98 +9403,29 @@ pub struct SeriesTree_Frameworks_Coinflow_AgeRange_SpendingExposure_Mobility { impl SeriesTree_Frameworks_Coinflow_AgeRange_SpendingExposure_Mobility { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesPattern1::new( - client.clone(), - "utxos_under_1h_old_mobility".to_string(), - ), - _1h_to_1d: SeriesPattern1::new( - client.clone(), - "utxos_1h_to_1d_old_mobility".to_string(), - ), - _1d_to_1w: SeriesPattern1::new( - client.clone(), - "utxos_1d_to_1w_old_mobility".to_string(), - ), - _1w_to_1m: SeriesPattern1::new( - client.clone(), - "utxos_1w_to_1m_old_mobility".to_string(), - ), - _1m_to_2m: SeriesPattern1::new( - client.clone(), - "utxos_1m_to_2m_old_mobility".to_string(), - ), - _2m_to_3m: SeriesPattern1::new( - client.clone(), - "utxos_2m_to_3m_old_mobility".to_string(), - ), - _3m_to_4m: SeriesPattern1::new( - client.clone(), - "utxos_3m_to_4m_old_mobility".to_string(), - ), - _4m_to_5m: SeriesPattern1::new( - client.clone(), - "utxos_4m_to_5m_old_mobility".to_string(), - ), - _5m_to_6m: SeriesPattern1::new( - client.clone(), - "utxos_5m_to_6m_old_mobility".to_string(), - ), - _6m_to_9m: SeriesPattern1::new( - client.clone(), - "utxos_6m_to_9m_old_mobility".to_string(), - ), - _9m_to_1y: SeriesPattern1::new( - client.clone(), - "utxos_9m_to_1y_old_mobility".to_string(), - ), - _1y_to_18m: SeriesPattern1::new( - client.clone(), - "utxos_1y_to_18m_old_mobility".to_string(), - ), - _18m_to_2y: SeriesPattern1::new( - client.clone(), - "utxos_18m_to_2y_old_mobility".to_string(), - ), - _2y_to_3y: SeriesPattern1::new( - client.clone(), - "utxos_2y_to_3y_old_mobility".to_string(), - ), - _3y_to_4y: SeriesPattern1::new( - client.clone(), - "utxos_3y_to_4y_old_mobility".to_string(), - ), - _4y_to_5y: SeriesPattern1::new( - client.clone(), - "utxos_4y_to_5y_old_mobility".to_string(), - ), - _5y_to_6y: SeriesPattern1::new( - client.clone(), - "utxos_5y_to_6y_old_mobility".to_string(), - ), - _6y_to_7y: SeriesPattern1::new( - client.clone(), - "utxos_6y_to_7y_old_mobility".to_string(), - ), - _7y_to_8y: SeriesPattern1::new( - client.clone(), - "utxos_7y_to_8y_old_mobility".to_string(), - ), - _8y_to_10y: SeriesPattern1::new( - client.clone(), - "utxos_8y_to_10y_old_mobility".to_string(), - ), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_10y_to_12y_old_mobility".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_12y_to_15y_old_mobility".to_string(), - ), - over_15y: SeriesPattern1::new( - client.clone(), - "utxos_over_15y_old_mobility".to_string(), - ), + under_1h: SeriesPattern1::new(client.clone(), "utxos_under_1h_old_mobility".to_string()), + _1h_to_1d: SeriesPattern1::new(client.clone(), "utxos_1h_to_1d_old_mobility".to_string()), + _1d_to_1w: SeriesPattern1::new(client.clone(), "utxos_1d_to_1w_old_mobility".to_string()), + _1w_to_1m: SeriesPattern1::new(client.clone(), "utxos_1w_to_1m_old_mobility".to_string()), + _1m_to_2m: SeriesPattern1::new(client.clone(), "utxos_1m_to_2m_old_mobility".to_string()), + _2m_to_3m: SeriesPattern1::new(client.clone(), "utxos_2m_to_3m_old_mobility".to_string()), + _3m_to_4m: SeriesPattern1::new(client.clone(), "utxos_3m_to_4m_old_mobility".to_string()), + _4m_to_5m: SeriesPattern1::new(client.clone(), "utxos_4m_to_5m_old_mobility".to_string()), + _5m_to_6m: SeriesPattern1::new(client.clone(), "utxos_5m_to_6m_old_mobility".to_string()), + _6m_to_9m: SeriesPattern1::new(client.clone(), "utxos_6m_to_9m_old_mobility".to_string()), + _9m_to_1y: SeriesPattern1::new(client.clone(), "utxos_9m_to_1y_old_mobility".to_string()), + _1y_to_18m: SeriesPattern1::new(client.clone(), "utxos_1y_to_18m_old_mobility".to_string()), + _18m_to_2y: SeriesPattern1::new(client.clone(), "utxos_18m_to_2y_old_mobility".to_string()), + _2y_to_3y: SeriesPattern1::new(client.clone(), "utxos_2y_to_3y_old_mobility".to_string()), + _3y_to_4y: SeriesPattern1::new(client.clone(), "utxos_3y_to_4y_old_mobility".to_string()), + _4y_to_5y: SeriesPattern1::new(client.clone(), "utxos_4y_to_5y_old_mobility".to_string()), + _5y_to_6y: SeriesPattern1::new(client.clone(), "utxos_5y_to_6y_old_mobility".to_string()), + _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_mobility".to_string()), + _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_mobility".to_string()), + _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_mobility".to_string()), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_mobility".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_mobility".to_string()), + over_15y: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_mobility".to_string()), } } } @@ -13995,14 +9439,8 @@ pub struct SeriesTree_Frameworks_Coinflow_AgeRange_Supply { impl SeriesTree_Frameworks_Coinflow_AgeRange_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { - mobile: SeriesTree_Frameworks_Coinflow_AgeRange_Supply_Mobile::new( - client.clone(), - format!("{base_path}_mobile"), - ), - immobile: SeriesTree_Frameworks_Coinflow_AgeRange_Supply_Immobile::new( - client.clone(), - format!("{base_path}_immobile"), - ), + mobile: SeriesTree_Frameworks_Coinflow_AgeRange_Supply_Mobile::new(client.clone(), format!("{base_path}_mobile")), + immobile: SeriesTree_Frameworks_Coinflow_AgeRange_Supply_Immobile::new(client.clone(), format!("{base_path}_immobile")), } } } @@ -14038,102 +9476,30 @@ pub struct SeriesTree_Frameworks_Coinflow_AgeRange_Supply_Mobile { impl SeriesTree_Frameworks_Coinflow_AgeRange_Supply_Mobile { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_mobile_supply".to_string(), - ), - _1h_to_1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_mobile_supply".to_string(), - ), - _1d_to_1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_mobile_supply".to_string(), - ), - _1w_to_1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_mobile_supply".to_string(), - ), - _1m_to_2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_mobile_supply".to_string(), - ), - _2m_to_3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_mobile_supply".to_string(), - ), - _3m_to_4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_mobile_supply".to_string(), - ), - _4m_to_5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_mobile_supply".to_string(), - ), - _5m_to_6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_mobile_supply".to_string(), - ), - _6m_to_9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_mobile_supply".to_string(), - ), - _9m_to_1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_mobile_supply".to_string(), - ), - _1y_to_18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_mobile_supply".to_string(), - ), - _18m_to_2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_mobile_supply".to_string(), - ), - _2y_to_3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_mobile_supply".to_string(), - ), - _3y_to_4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_mobile_supply".to_string(), - ), - _4y_to_5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_mobile_supply".to_string(), - ), - _5y_to_6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_mobile_supply".to_string(), - ), - _6y_to_7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_mobile_supply".to_string(), - ), - _7y_to_8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_mobile_supply".to_string(), - ), - _8y_to_10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_mobile_supply".to_string(), - ), - _10y_to_12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_mobile_supply".to_string(), - ), - _12y_to_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_mobile_supply".to_string(), - ), - over_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_mobile_supply".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "utxos_age_range_mobile_supply_sats".to_string(), - ), + under_1h: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1h_old_mobile_supply".to_string()), + _1h_to_1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_mobile_supply".to_string()), + _1d_to_1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_mobile_supply".to_string()), + _1w_to_1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_mobile_supply".to_string()), + _1m_to_2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_mobile_supply".to_string()), + _2m_to_3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_mobile_supply".to_string()), + _3m_to_4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_mobile_supply".to_string()), + _4m_to_5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_mobile_supply".to_string()), + _5m_to_6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_mobile_supply".to_string()), + _6m_to_9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_mobile_supply".to_string()), + _9m_to_1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_mobile_supply".to_string()), + _1y_to_18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_mobile_supply".to_string()), + _18m_to_2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_mobile_supply".to_string()), + _2y_to_3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_mobile_supply".to_string()), + _3y_to_4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_mobile_supply".to_string()), + _4y_to_5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_mobile_supply".to_string()), + _5y_to_6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_mobile_supply".to_string()), + _6y_to_7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_mobile_supply".to_string()), + _7y_to_8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_mobile_supply".to_string()), + _8y_to_10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_mobile_supply".to_string()), + _10y_to_12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_mobile_supply".to_string()), + _12y_to_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_mobile_supply".to_string()), + over_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_15y_old_mobile_supply".to_string()), + height: SeriesPattern18::new(client.clone(), "utxos_age_range_mobile_supply_sats".to_string()), } } } @@ -14169,102 +9535,30 @@ pub struct SeriesTree_Frameworks_Coinflow_AgeRange_Supply_Immobile { impl SeriesTree_Frameworks_Coinflow_AgeRange_Supply_Immobile { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_immobile_supply".to_string(), - ), - _1h_to_1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_immobile_supply".to_string(), - ), - _1d_to_1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_immobile_supply".to_string(), - ), - _1w_to_1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_immobile_supply".to_string(), - ), - _1m_to_2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_immobile_supply".to_string(), - ), - _2m_to_3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_immobile_supply".to_string(), - ), - _3m_to_4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_immobile_supply".to_string(), - ), - _4m_to_5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_immobile_supply".to_string(), - ), - _5m_to_6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_immobile_supply".to_string(), - ), - _6m_to_9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_immobile_supply".to_string(), - ), - _9m_to_1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_immobile_supply".to_string(), - ), - _1y_to_18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_immobile_supply".to_string(), - ), - _18m_to_2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_immobile_supply".to_string(), - ), - _2y_to_3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_immobile_supply".to_string(), - ), - _3y_to_4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_immobile_supply".to_string(), - ), - _4y_to_5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_immobile_supply".to_string(), - ), - _5y_to_6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_immobile_supply".to_string(), - ), - _6y_to_7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_immobile_supply".to_string(), - ), - _7y_to_8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_immobile_supply".to_string(), - ), - _8y_to_10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_immobile_supply".to_string(), - ), - _10y_to_12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_immobile_supply".to_string(), - ), - _12y_to_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_immobile_supply".to_string(), - ), - over_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_immobile_supply".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "utxos_age_range_immobile_supply_sats".to_string(), - ), + under_1h: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1h_old_immobile_supply".to_string()), + _1h_to_1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_immobile_supply".to_string()), + _1d_to_1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_immobile_supply".to_string()), + _1w_to_1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_immobile_supply".to_string()), + _1m_to_2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_immobile_supply".to_string()), + _2m_to_3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_immobile_supply".to_string()), + _3m_to_4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_immobile_supply".to_string()), + _4m_to_5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_immobile_supply".to_string()), + _5m_to_6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_immobile_supply".to_string()), + _6m_to_9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_immobile_supply".to_string()), + _9m_to_1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_immobile_supply".to_string()), + _1y_to_18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_immobile_supply".to_string()), + _18m_to_2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_immobile_supply".to_string()), + _2y_to_3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_immobile_supply".to_string()), + _3y_to_4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_immobile_supply".to_string()), + _4y_to_5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_immobile_supply".to_string()), + _5y_to_6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_immobile_supply".to_string()), + _6y_to_7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_immobile_supply".to_string()), + _7y_to_8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_immobile_supply".to_string()), + _8y_to_10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_immobile_supply".to_string()), + _10y_to_12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_immobile_supply".to_string()), + _12y_to_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_immobile_supply".to_string()), + over_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_15y_old_immobile_supply".to_string()), + height: SeriesPattern18::new(client.clone(), "utxos_age_range_immobile_supply_sats".to_string()), } } } @@ -14278,14 +9572,8 @@ pub struct SeriesTree_Frameworks_Coinflow_Supply { impl SeriesTree_Frameworks_Coinflow_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { - mobile: SeriesTree_Frameworks_Coinflow_Supply_Mobile::new( - client.clone(), - format!("{base_path}_mobile"), - ), - immobile: BtcCentsSatsUsdPattern::new( - client.clone(), - "all_immobile_supply".to_string(), - ), + mobile: SeriesTree_Frameworks_Coinflow_Supply_Mobile::new(client.clone(), format!("{base_path}_mobile")), + immobile: BtcCentsSatsUsdPattern::new(client.clone(), "all_immobile_supply".to_string()), } } } @@ -14306,10 +9594,7 @@ impl SeriesTree_Frameworks_Coinflow_Supply_Mobile { sats: SeriesPattern1::new(client.clone(), "all_mobile_supply_sats".to_string()), usd: SeriesPattern1::new(client.clone(), "all_mobile_supply_usd".to_string()), cents: SeriesPattern1::new(client.clone(), "all_mobile_supply_cents".to_string()), - in_loss: SharePattern3::new( - client.clone(), - "all_coinflow_supply_in_loss_share".to_string(), - ), + in_loss: SharePattern3::new(client.clone(), "all_coinflow_supply_in_loss_share".to_string()), } } } @@ -14325,16 +9610,10 @@ pub struct SeriesTree_Frameworks_Coinflow_Sth { impl SeriesTree_Frameworks_Coinflow_Sth { pub fn new(client: Arc, base_path: String) -> Self { Self { - supply: SeriesTree_Frameworks_Coinflow_Sth_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + supply: SeriesTree_Frameworks_Coinflow_Sth_Supply::new(client.clone(), format!("{base_path}_supply")), horizon: _1m1y2y3m4y6m8yPattern2::new(client.clone(), "sth_coinflow".to_string()), cap: CentsUsdPattern3::new(client.clone(), "sth_coinflow_cap".to_string()), - price: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "sth_coinflow_price".to_string(), - ), + price: CentsPpmRatioSatsUsdPattern::new(client.clone(), "sth_coinflow_price".to_string()), } } } @@ -14348,14 +9627,8 @@ pub struct SeriesTree_Frameworks_Coinflow_Sth_Supply { impl SeriesTree_Frameworks_Coinflow_Sth_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { - mobile: SeriesTree_Frameworks_Coinflow_Sth_Supply_Mobile::new( - client.clone(), - format!("{base_path}_mobile"), - ), - immobile: BtcCentsSatsUsdPattern::new( - client.clone(), - "sth_immobile_supply".to_string(), - ), + mobile: SeriesTree_Frameworks_Coinflow_Sth_Supply_Mobile::new(client.clone(), format!("{base_path}_mobile")), + immobile: BtcCentsSatsUsdPattern::new(client.clone(), "sth_immobile_supply".to_string()), } } } @@ -14376,10 +9649,7 @@ impl SeriesTree_Frameworks_Coinflow_Sth_Supply_Mobile { sats: SeriesPattern1::new(client.clone(), "sth_mobile_supply_sats".to_string()), usd: SeriesPattern1::new(client.clone(), "sth_mobile_supply_usd".to_string()), cents: SeriesPattern1::new(client.clone(), "sth_mobile_supply_cents".to_string()), - in_loss: SharePattern3::new( - client.clone(), - "sth_coinflow_supply_in_loss_share".to_string(), - ), + in_loss: SharePattern3::new(client.clone(), "sth_coinflow_supply_in_loss_share".to_string()), } } } @@ -14395,16 +9665,10 @@ pub struct SeriesTree_Frameworks_Coinflow_Lth { impl SeriesTree_Frameworks_Coinflow_Lth { pub fn new(client: Arc, base_path: String) -> Self { Self { - supply: SeriesTree_Frameworks_Coinflow_Lth_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), + supply: SeriesTree_Frameworks_Coinflow_Lth_Supply::new(client.clone(), format!("{base_path}_supply")), horizon: _1m1y2y3m4y6m8yPattern2::new(client.clone(), "lth_coinflow".to_string()), cap: CentsUsdPattern3::new(client.clone(), "lth_coinflow_cap".to_string()), - price: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "lth_coinflow_price".to_string(), - ), + price: CentsPpmRatioSatsUsdPattern::new(client.clone(), "lth_coinflow_price".to_string()), } } } @@ -14418,14 +9682,8 @@ pub struct SeriesTree_Frameworks_Coinflow_Lth_Supply { impl SeriesTree_Frameworks_Coinflow_Lth_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { - mobile: SeriesTree_Frameworks_Coinflow_Lth_Supply_Mobile::new( - client.clone(), - format!("{base_path}_mobile"), - ), - immobile: BtcCentsSatsUsdPattern::new( - client.clone(), - "lth_immobile_supply".to_string(), - ), + mobile: SeriesTree_Frameworks_Coinflow_Lth_Supply_Mobile::new(client.clone(), format!("{base_path}_mobile")), + immobile: BtcCentsSatsUsdPattern::new(client.clone(), "lth_immobile_supply".to_string()), } } } @@ -14446,10 +9704,7 @@ impl SeriesTree_Frameworks_Coinflow_Lth_Supply_Mobile { sats: SeriesPattern1::new(client.clone(), "lth_mobile_supply_sats".to_string()), usd: SeriesPattern1::new(client.clone(), "lth_mobile_supply_usd".to_string()), cents: SeriesPattern1::new(client.clone(), "lth_mobile_supply_cents".to_string()), - in_loss: SharePattern3::new( - client.clone(), - "lth_coinflow_supply_in_loss_share".to_string(), - ), + in_loss: SharePattern3::new(client.clone(), "lth_coinflow_supply_in_loss_share".to_string()), } } } @@ -14466,23 +9721,11 @@ pub struct SeriesTree_Frameworks_Coinflow_AggregateSources { impl SeriesTree_Frameworks_Coinflow_AggregateSources { pub fn new(client: Arc, base_path: String) -> Self { Self { - supply: SeriesTree_Frameworks_Coinflow_AggregateSources_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), - supply_in_loss_share: SeriesPattern18::new( - client.clone(), - "coinflow_supply_in_loss_share_by_aggregate".to_string(), - ), - horizon: SeriesTree_Frameworks_Coinflow_AggregateSources_Horizon::new( - client.clone(), - format!("{base_path}_horizon"), - ), + supply: SeriesTree_Frameworks_Coinflow_AggregateSources_Supply::new(client.clone(), format!("{base_path}_supply")), + supply_in_loss_share: SeriesPattern18::new(client.clone(), "coinflow_supply_in_loss_share_by_aggregate".to_string()), + horizon: SeriesTree_Frameworks_Coinflow_AggregateSources_Horizon::new(client.clone(), format!("{base_path}_horizon")), cap: SeriesPattern18::new(client.clone(), "coinflow_cap_cents_by_term".to_string()), - price: SeriesPattern18::new( - client.clone(), - "coinflow_price_cents_by_aggregate".to_string(), - ), + price: SeriesPattern18::new(client.clone(), "coinflow_price_cents_by_aggregate".to_string()), } } } @@ -14496,14 +9739,8 @@ pub struct SeriesTree_Frameworks_Coinflow_AggregateSources_Supply { impl SeriesTree_Frameworks_Coinflow_AggregateSources_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { - mobile: SeriesPattern18::new( - client.clone(), - "coinflow_mobile_supply_sats_by_term".to_string(), - ), - immobile: SeriesPattern18::new( - client.clone(), - "coinflow_immobile_supply_sats_by_term".to_string(), - ), + mobile: SeriesPattern18::new(client.clone(), "coinflow_mobile_supply_sats_by_term".to_string()), + immobile: SeriesPattern18::new(client.clone(), "coinflow_immobile_supply_sats_by_term".to_string()), } } } @@ -14522,34 +9759,13 @@ pub struct SeriesTree_Frameworks_Coinflow_AggregateSources_Horizon { impl SeriesTree_Frameworks_Coinflow_AggregateSources_Horizon { pub fn new(client: Arc, base_path: String) -> Self { Self { - _8y: SeriesPattern18::new( - client.clone(), - "coinflow_8y_supply_in_loss_share_by_aggregate".to_string(), - ), - _4y: SeriesPattern18::new( - client.clone(), - "coinflow_4y_supply_in_loss_share_by_aggregate".to_string(), - ), - _2y: SeriesPattern18::new( - client.clone(), - "coinflow_2y_supply_in_loss_share_by_aggregate".to_string(), - ), - _1y: SeriesPattern18::new( - client.clone(), - "coinflow_1y_supply_in_loss_share_by_aggregate".to_string(), - ), - _6m: SeriesPattern18::new( - client.clone(), - "coinflow_6m_supply_in_loss_share_by_aggregate".to_string(), - ), - _3m: SeriesPattern18::new( - client.clone(), - "coinflow_3m_supply_in_loss_share_by_aggregate".to_string(), - ), - _1m: SeriesPattern18::new( - client.clone(), - "coinflow_1m_supply_in_loss_share_by_aggregate".to_string(), - ), + _8y: SeriesPattern18::new(client.clone(), "coinflow_8y_supply_in_loss_share_by_aggregate".to_string()), + _4y: SeriesPattern18::new(client.clone(), "coinflow_4y_supply_in_loss_share_by_aggregate".to_string()), + _2y: SeriesPattern18::new(client.clone(), "coinflow_2y_supply_in_loss_share_by_aggregate".to_string()), + _1y: SeriesPattern18::new(client.clone(), "coinflow_1y_supply_in_loss_share_by_aggregate".to_string()), + _6m: SeriesPattern18::new(client.clone(), "coinflow_6m_supply_in_loss_share_by_aggregate".to_string()), + _3m: SeriesPattern18::new(client.clone(), "coinflow_3m_supply_in_loss_share_by_aggregate".to_string()), + _1m: SeriesPattern18::new(client.clone(), "coinflow_1m_supply_in_loss_share_by_aggregate".to_string()), } } } @@ -14565,14 +9781,8 @@ impl SeriesTree_Models { pub fn new(client: Arc, base_path: String) -> Self { Self { bedrock: SeriesTree_Models_Bedrock::new(client.clone(), format!("{base_path}_bedrock")), - capital_sentiment: SeriesTree_Models_CapitalSentiment::new( - client.clone(), - format!("{base_path}_capital_sentiment"), - ), - rarity_meter: SeriesTree_Models_RarityMeter::new( - client.clone(), - format!("{base_path}_rarity_meter"), - ), + capital_sentiment: SeriesTree_Models_CapitalSentiment::new(client.clone(), format!("{base_path}_capital_sentiment")), + rarity_meter: SeriesTree_Models_RarityMeter::new(client.clone(), format!("{base_path}_rarity_meter")), } } } @@ -14597,34 +9807,13 @@ impl SeriesTree_Models_Bedrock { raw: FloorLevelLossPattern::new(client.clone(), "bedrock_raw".to_string()), cointime: FloorLevelLossPattern::new(client.clone(), "bedrock_cointime".to_string()), coinflow: FloorLevelLossPattern::new(client.clone(), "bedrock_coinflow".to_string()), - coinflow_8y: FloorLevelLossPattern::new( - client.clone(), - "bedrock_coinflow_8y".to_string(), - ), - coinflow_4y: FloorLevelLossPattern::new( - client.clone(), - "bedrock_coinflow_4y".to_string(), - ), - coinflow_2y: FloorLevelLossPattern::new( - client.clone(), - "bedrock_coinflow_2y".to_string(), - ), - coinflow_1y: FloorLevelLossPattern::new( - client.clone(), - "bedrock_coinflow_1y".to_string(), - ), - coinflow_6m: FloorLevelLossPattern::new( - client.clone(), - "bedrock_coinflow_6m".to_string(), - ), - coinflow_3m: FloorLevelLossPattern::new( - client.clone(), - "bedrock_coinflow_3m".to_string(), - ), - coinflow_1m: FloorLevelLossPattern::new( - client.clone(), - "bedrock_coinflow_1m".to_string(), - ), + coinflow_8y: FloorLevelLossPattern::new(client.clone(), "bedrock_coinflow_8y".to_string()), + coinflow_4y: FloorLevelLossPattern::new(client.clone(), "bedrock_coinflow_4y".to_string()), + coinflow_2y: FloorLevelLossPattern::new(client.clone(), "bedrock_coinflow_2y".to_string()), + coinflow_1y: FloorLevelLossPattern::new(client.clone(), "bedrock_coinflow_1y".to_string()), + coinflow_6m: FloorLevelLossPattern::new(client.clone(), "bedrock_coinflow_6m".to_string()), + coinflow_3m: FloorLevelLossPattern::new(client.clone(), "bedrock_coinflow_3m".to_string()), + coinflow_1m: FloorLevelLossPattern::new(client.clone(), "bedrock_coinflow_1m".to_string()), } } } @@ -14671,36 +9860,21 @@ impl SeriesTree_Models_RarityMeter { /// Series tree node. pub struct SeriesTree_Models_RarityMeter_Components { - pub realized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub capitalized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub sth_realized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub sth_capitalized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub lth_realized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub lth_capitalized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub over_6m_realized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub over_4m_realized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub under_4m_realized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub under_6m_realized_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub vaulted_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub active_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub true_market_mean_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub cointime_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, - pub coinflow_price: - Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub realized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub capitalized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub sth_realized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub sth_capitalized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub lth_realized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub lth_capitalized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub over_6m_realized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub over_4m_realized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub under_4m_realized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub under_6m_realized_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub vaulted_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub active_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub true_market_mean_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub cointime_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, + pub coinflow_price: Pct0Pct1Pct10Pct2Pct20Pct30Pct40Pct5Pct50Pct60Pct70Pct80Pct90Pct95Pct98Pct99RatiosPattern, } impl SeriesTree_Models_RarityMeter_Components { @@ -14737,26 +9911,11 @@ pub struct SeriesTree_Models_RarityMeter_Extremes { impl SeriesTree_Models_RarityMeter_Extremes { pub fn new(client: Arc, base_path: String) -> Self { Self { - coins_in_loss: SeriesTree_Models_RarityMeter_Extremes_CoinsInLoss::new( - client.clone(), - format!("{base_path}_coins_in_loss"), - ), - profit_taking: HeightRankTailThresholdPattern::new( - client.clone(), - "rarity_meter_profit_taking".to_string(), - ), - capitulation: HeightRankTailThresholdPattern::new( - client.clone(), - "rarity_meter_capitulation".to_string(), - ), - peak_regret: HeightRankTailThresholdPattern::new( - client.clone(), - "rarity_meter_peak_regret".to_string(), - ), - seller_exhaustion: SeriesTree_Models_RarityMeter_Extremes_SellerExhaustion::new( - client.clone(), - format!("{base_path}_seller_exhaustion"), - ), + coins_in_loss: SeriesTree_Models_RarityMeter_Extremes_CoinsInLoss::new(client.clone(), format!("{base_path}_coins_in_loss")), + profit_taking: HeightRankTailThresholdPattern::new(client.clone(), "rarity_meter_profit_taking".to_string()), + capitulation: HeightRankTailThresholdPattern::new(client.clone(), "rarity_meter_capitulation".to_string()), + peak_regret: HeightRankTailThresholdPattern::new(client.clone(), "rarity_meter_peak_regret".to_string()), + seller_exhaustion: SeriesTree_Models_RarityMeter_Extremes_SellerExhaustion::new(client.clone(), format!("{base_path}_seller_exhaustion")), } } } @@ -14774,30 +9933,12 @@ pub struct SeriesTree_Models_RarityMeter_Extremes_CoinsInLoss { impl SeriesTree_Models_RarityMeter_Extremes_CoinsInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - threshold_pct0_1: SeriesPattern1::new( - client.clone(), - "rarity_meter_coins_in_loss_threshold_pct0_1".to_string(), - ), - threshold_pct0_05: SeriesPattern1::new( - client.clone(), - "rarity_meter_coins_in_loss_threshold_pct0_05".to_string(), - ), - threshold_pct0_025: SeriesPattern1::new( - client.clone(), - "rarity_meter_coins_in_loss_threshold".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "rarity_meter_coins_in_loss_thresholds".to_string(), - ), - tail: PercentPpmRatioPattern2::new( - client.clone(), - "rarity_meter_coins_in_loss_tail".to_string(), - ), - rank: SeriesPattern1::new( - client.clone(), - "rarity_meter_coins_in_loss_rank".to_string(), - ), + threshold_pct0_1: SeriesPattern1::new(client.clone(), "rarity_meter_coins_in_loss_threshold_pct0_1".to_string()), + threshold_pct0_05: SeriesPattern1::new(client.clone(), "rarity_meter_coins_in_loss_threshold_pct0_05".to_string()), + threshold_pct0_025: SeriesPattern1::new(client.clone(), "rarity_meter_coins_in_loss_threshold".to_string()), + height: SeriesPattern18::new(client.clone(), "rarity_meter_coins_in_loss_thresholds".to_string()), + tail: PercentPpmRatioPattern2::new(client.clone(), "rarity_meter_coins_in_loss_tail".to_string()), + rank: SeriesPattern1::new(client.clone(), "rarity_meter_coins_in_loss_rank".to_string()), } } } @@ -14815,30 +9956,12 @@ pub struct SeriesTree_Models_RarityMeter_Extremes_SellerExhaustion { impl SeriesTree_Models_RarityMeter_Extremes_SellerExhaustion { pub fn new(client: Arc, base_path: String) -> Self { Self { - threshold_pct0_1: SeriesPattern1::new( - client.clone(), - "rarity_meter_seller_exhaustion_threshold_pct0_1".to_string(), - ), - threshold_pct0_05: SeriesPattern1::new( - client.clone(), - "rarity_meter_seller_exhaustion_threshold_pct0_05".to_string(), - ), - threshold_pct0_025: SeriesPattern1::new( - client.clone(), - "rarity_meter_seller_exhaustion_threshold".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "rarity_meter_seller_exhaustion_thresholds".to_string(), - ), - tail: PercentPpmRatioPattern2::new( - client.clone(), - "rarity_meter_seller_exhaustion_tail".to_string(), - ), - rank: SeriesPattern1::new( - client.clone(), - "rarity_meter_seller_exhaustion_rank".to_string(), - ), + threshold_pct0_1: SeriesPattern1::new(client.clone(), "rarity_meter_seller_exhaustion_threshold_pct0_1".to_string()), + threshold_pct0_05: SeriesPattern1::new(client.clone(), "rarity_meter_seller_exhaustion_threshold_pct0_05".to_string()), + threshold_pct0_025: SeriesPattern1::new(client.clone(), "rarity_meter_seller_exhaustion_threshold".to_string()), + height: SeriesPattern18::new(client.clone(), "rarity_meter_seller_exhaustion_thresholds".to_string()), + tail: PercentPpmRatioPattern2::new(client.clone(), "rarity_meter_seller_exhaustion_tail".to_string()), + rank: SeriesPattern1::new(client.clone(), "rarity_meter_seller_exhaustion_rank".to_string()), } } } @@ -14921,18 +10044,9 @@ impl SeriesTree_Indexes { addr: SeriesTree_Indexes_Addr::new(client.clone(), format!("{base_path}_addr")), height: SeriesTree_Indexes_Height::new(client.clone(), format!("{base_path}_height")), epoch: SeriesTree_Indexes_Epoch::new(client.clone(), format!("{base_path}_epoch")), - halving: SeriesTree_Indexes_Halving::new( - client.clone(), - format!("{base_path}_halving"), - ), - minute10: SeriesTree_Indexes_Minute10::new( - client.clone(), - format!("{base_path}_minute10"), - ), - minute30: SeriesTree_Indexes_Minute30::new( - client.clone(), - format!("{base_path}_minute30"), - ), + halving: SeriesTree_Indexes_Halving::new(client.clone(), format!("{base_path}_halving")), + minute10: SeriesTree_Indexes_Minute10::new(client.clone(), format!("{base_path}_minute10")), + minute30: SeriesTree_Indexes_Minute30::new(client.clone(), format!("{base_path}_minute30")), hour1: SeriesTree_Indexes_Hour1::new(client.clone(), format!("{base_path}_hour1")), hour4: SeriesTree_Indexes_Hour4::new(client.clone(), format!("{base_path}_hour4")), hour12: SeriesTree_Indexes_Hour12::new(client.clone(), format!("{base_path}_hour12")), @@ -14944,22 +10058,10 @@ impl SeriesTree_Indexes { month6: SeriesTree_Indexes_Month6::new(client.clone(), format!("{base_path}_month6")), year1: SeriesTree_Indexes_Year1::new(client.clone(), format!("{base_path}_year1")), year10: SeriesTree_Indexes_Year10::new(client.clone(), format!("{base_path}_year10")), - tx_index: SeriesTree_Indexes_TxIndex::new( - client.clone(), - format!("{base_path}_tx_index"), - ), - txin_index: SeriesTree_Indexes_TxinIndex::new( - client.clone(), - format!("{base_path}_txin_index"), - ), - txout_index: SeriesTree_Indexes_TxoutIndex::new( - client.clone(), - format!("{base_path}_txout_index"), - ), - timestamp: SeriesTree_Indexes_Timestamp::new( - client.clone(), - format!("{base_path}_timestamp"), - ), + tx_index: SeriesTree_Indexes_TxIndex::new(client.clone(), format!("{base_path}_tx_index")), + txin_index: SeriesTree_Indexes_TxinIndex::new(client.clone(), format!("{base_path}_txin_index")), + txout_index: SeriesTree_Indexes_TxoutIndex::new(client.clone(), format!("{base_path}_txout_index")), + timestamp: SeriesTree_Indexes_Timestamp::new(client.clone(), format!("{base_path}_timestamp")), } } } @@ -14983,33 +10085,18 @@ pub struct SeriesTree_Indexes_Addr { impl SeriesTree_Indexes_Addr { pub fn new(client: Arc, base_path: String) -> Self { Self { - p2pk33: SeriesTree_Indexes_Addr_P2pk33::new( - client.clone(), - format!("{base_path}_p2pk33"), - ), - p2pk65: SeriesTree_Indexes_Addr_P2pk65::new( - client.clone(), - format!("{base_path}_p2pk65"), - ), + p2pk33: SeriesTree_Indexes_Addr_P2pk33::new(client.clone(), format!("{base_path}_p2pk33")), + p2pk65: SeriesTree_Indexes_Addr_P2pk65::new(client.clone(), format!("{base_path}_p2pk65")), p2pkh: SeriesTree_Indexes_Addr_P2pkh::new(client.clone(), format!("{base_path}_p2pkh")), p2sh: SeriesTree_Indexes_Addr_P2sh::new(client.clone(), format!("{base_path}_p2sh")), p2tr: SeriesTree_Indexes_Addr_P2tr::new(client.clone(), format!("{base_path}_p2tr")), - p2wpkh: SeriesTree_Indexes_Addr_P2wpkh::new( - client.clone(), - format!("{base_path}_p2wpkh"), - ), + p2wpkh: SeriesTree_Indexes_Addr_P2wpkh::new(client.clone(), format!("{base_path}_p2wpkh")), p2wsh: SeriesTree_Indexes_Addr_P2wsh::new(client.clone(), format!("{base_path}_p2wsh")), p2a: SeriesTree_Indexes_Addr_P2a::new(client.clone(), format!("{base_path}_p2a")), p2ms: SeriesTree_Indexes_Addr_P2ms::new(client.clone(), format!("{base_path}_p2ms")), empty: SeriesTree_Indexes_Addr_Empty::new(client.clone(), format!("{base_path}_empty")), - unknown: SeriesTree_Indexes_Addr_Unknown::new( - client.clone(), - format!("{base_path}_unknown"), - ), - op_return: SeriesTree_Indexes_Addr_OpReturn::new( - client.clone(), - format!("{base_path}_op_return"), - ), + unknown: SeriesTree_Indexes_Addr_Unknown::new(client.clone(), format!("{base_path}_unknown")), + op_return: SeriesTree_Indexes_Addr_OpReturn::new(client.clone(), format!("{base_path}_op_return")), } } } @@ -15519,22 +10606,10 @@ impl SeriesTree_Indicators { nvt: PpmRatioPattern3::new(client.clone(), "nvt".to_string()), gini: PercentPpmRatioPattern2::new(client.clone(), "gini".to_string()), rhodl_ratio: PpmRatioPattern3::new(client.clone(), "rhodl_ratio".to_string()), - thermo_cap_multiple: PpmRatioPattern3::new( - client.clone(), - "thermo_cap_multiple".to_string(), - ), - coindays_destroyed_supply_adj: SeriesPattern1::new( - client.clone(), - "coindays_destroyed_supply_adj".to_string(), - ), - coinyears_destroyed_supply_adj: SeriesPattern1::new( - client.clone(), - "coinyears_destroyed_supply_adj".to_string(), - ), - dormancy: SeriesTree_Indicators_Dormancy::new( - client.clone(), - format!("{base_path}_dormancy"), - ), + thermo_cap_multiple: PpmRatioPattern3::new(client.clone(), "thermo_cap_multiple".to_string()), + coindays_destroyed_supply_adj: SeriesPattern1::new(client.clone(), "coindays_destroyed_supply_adj".to_string()), + coinyears_destroyed_supply_adj: SeriesPattern1::new(client.clone(), "coinyears_destroyed_supply_adj".to_string()), + dormancy: SeriesTree_Indicators_Dormancy::new(client.clone(), format!("{base_path}_dormancy")), stock_to_flow: SeriesPattern1::new(client.clone(), "stock_to_flow".to_string()), seller_exhaustion: SeriesPattern1::new(client.clone(), "seller_exhaustion".to_string()), } @@ -15586,27 +10661,12 @@ pub struct SeriesTree_Investing_Period { impl SeriesTree_Investing_Period { pub fn new(client: Arc, base_path: String) -> Self { Self { - dca_stack: _10y1m1w1y2y3m3y4y5y6m6y8yPattern3::new( - client.clone(), - "dca_stack".to_string(), - ), - dca_cost_basis: SeriesTree_Investing_Period_DcaCostBasis::new( - client.clone(), - format!("{base_path}_dca_cost_basis"), - ), - dca_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2::new( - client.clone(), - "dca_return".to_string(), - ), + dca_stack: _10y1m1w1y2y3m3y4y5y6m6y8yPattern3::new(client.clone(), "dca_stack".to_string()), + dca_cost_basis: SeriesTree_Investing_Period_DcaCostBasis::new(client.clone(), format!("{base_path}_dca_cost_basis")), + dca_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2::new(client.clone(), "dca_return".to_string()), dca_cagr: _10y2y3y4y5y6y8yPattern::new(client.clone(), "dca_cagr".to_string()), - lump_sum_stack: _10y1m1w1y2y3m3y4y5y6m6y8yPattern3::new( - client.clone(), - "lump_sum_stack".to_string(), - ), - lump_sum_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2::new( - client.clone(), - "lump_sum_return".to_string(), - ), + lump_sum_stack: _10y1m1w1y2y3m3y4y5y6m6y8yPattern3::new(client.clone(), "lump_sum_stack".to_string()), + lump_sum_return: _10y1m1w1y2y3m3y4y5y6m6y8yPattern2::new(client.clone(), "lump_sum_return".to_string()), } } } @@ -15656,18 +10716,9 @@ pub struct SeriesTree_Investing_Class { impl SeriesTree_Investing_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - dca_stack: SeriesTree_Investing_Class_DcaStack::new( - client.clone(), - format!("{base_path}_dca_stack"), - ), - dca_cost_basis: SeriesTree_Investing_Class_DcaCostBasis::new( - client.clone(), - format!("{base_path}_dca_cost_basis"), - ), - dca_return: SeriesTree_Investing_Class_DcaReturn::new( - client.clone(), - format!("{base_path}_dca_return"), - ), + dca_stack: SeriesTree_Investing_Class_DcaStack::new(client.clone(), format!("{base_path}_dca_stack")), + dca_cost_basis: SeriesTree_Investing_Class_DcaCostBasis::new(client.clone(), format!("{base_path}_dca_cost_basis")), + dca_return: SeriesTree_Investing_Class_DcaReturn::new(client.clone(), format!("{base_path}_dca_return")), } } } @@ -15691,54 +10742,18 @@ pub struct SeriesTree_Investing_Class_DcaStack { impl SeriesTree_Investing_Class_DcaStack { pub fn new(client: Arc, base_path: String) -> Self { Self { - from_2015: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2015".to_string(), - ), - from_2016: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2016".to_string(), - ), - from_2017: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2017".to_string(), - ), - from_2018: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2018".to_string(), - ), - from_2019: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2019".to_string(), - ), - from_2020: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2020".to_string(), - ), - from_2021: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2021".to_string(), - ), - from_2022: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2022".to_string(), - ), - from_2023: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2023".to_string(), - ), - from_2024: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2024".to_string(), - ), - from_2025: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2025".to_string(), - ), - from_2026: BtcCentsSatsUsdPattern::new( - client.clone(), - "dca_stack_from_2026".to_string(), - ), + from_2015: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2015".to_string()), + from_2016: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2016".to_string()), + from_2017: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2017".to_string()), + from_2018: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2018".to_string()), + from_2019: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2019".to_string()), + from_2020: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2020".to_string()), + from_2021: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2021".to_string()), + from_2022: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2022".to_string()), + from_2023: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2023".to_string()), + from_2024: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2024".to_string()), + from_2025: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2025".to_string()), + from_2026: BtcCentsSatsUsdPattern::new(client.clone(), "dca_stack_from_2026".to_string()), } } } @@ -15762,54 +10777,18 @@ pub struct SeriesTree_Investing_Class_DcaCostBasis { impl SeriesTree_Investing_Class_DcaCostBasis { pub fn new(client: Arc, base_path: String) -> Self { Self { - from_2015: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2015".to_string(), - ), - from_2016: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2016".to_string(), - ), - from_2017: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2017".to_string(), - ), - from_2018: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2018".to_string(), - ), - from_2019: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2019".to_string(), - ), - from_2020: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2020".to_string(), - ), - from_2021: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2021".to_string(), - ), - from_2022: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2022".to_string(), - ), - from_2023: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2023".to_string(), - ), - from_2024: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2024".to_string(), - ), - from_2025: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2025".to_string(), - ), - from_2026: CentsSatsUsdPattern::new( - client.clone(), - "dca_cost_basis_from_2026".to_string(), - ), + from_2015: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2015".to_string()), + from_2016: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2016".to_string()), + from_2017: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2017".to_string()), + from_2018: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2018".to_string()), + from_2019: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2019".to_string()), + from_2020: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2020".to_string()), + from_2021: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2021".to_string()), + from_2022: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2022".to_string()), + from_2023: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2023".to_string()), + from_2024: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2024".to_string()), + from_2025: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2025".to_string()), + from_2026: CentsSatsUsdPattern::new(client.clone(), "dca_cost_basis_from_2026".to_string()), } } } @@ -15833,54 +10812,18 @@ pub struct SeriesTree_Investing_Class_DcaReturn { impl SeriesTree_Investing_Class_DcaReturn { pub fn new(client: Arc, base_path: String) -> Self { Self { - from_2015: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2015".to_string(), - ), - from_2016: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2016".to_string(), - ), - from_2017: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2017".to_string(), - ), - from_2018: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2018".to_string(), - ), - from_2019: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2019".to_string(), - ), - from_2020: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2020".to_string(), - ), - from_2021: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2021".to_string(), - ), - from_2022: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2022".to_string(), - ), - from_2023: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2023".to_string(), - ), - from_2024: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2024".to_string(), - ), - from_2025: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2025".to_string(), - ), - from_2026: PercentPpmRatioPattern::new( - client.clone(), - "dca_return_from_2026".to_string(), - ), + from_2015: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2015".to_string()), + from_2016: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2016".to_string()), + from_2017: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2017".to_string()), + from_2018: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2018".to_string()), + from_2019: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2019".to_string()), + from_2020: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2020".to_string()), + from_2021: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2021".to_string()), + from_2022: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2022".to_string()), + from_2023: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2023".to_string()), + from_2024: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2024".to_string()), + from_2025: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2025".to_string()), + from_2026: PercentPpmRatioPattern::new(client.clone(), "dca_return_from_2026".to_string()), } } } @@ -15900,21 +10843,12 @@ impl SeriesTree_Market { pub fn new(client: Arc, base_path: String) -> Self { Self { ath: SeriesTree_Market_Ath::new(client.clone(), format!("{base_path}_ath")), - lookback: SeriesTree_Market_Lookback::new( - client.clone(), - format!("{base_path}_lookback"), - ), + lookback: SeriesTree_Market_Lookback::new(client.clone(), format!("{base_path}_lookback")), returns: SeriesTree_Market_Returns::new(client.clone(), format!("{base_path}_returns")), volatility: _1m1w1y24hPattern::new(client.clone(), "price_volatility".to_string()), range: SeriesTree_Market_Range::new(client.clone(), format!("{base_path}_range")), - moving_average: SeriesTree_Market_MovingAverage::new( - client.clone(), - format!("{base_path}_moving_average"), - ), - technical: SeriesTree_Market_Technical::new( - client.clone(), - format!("{base_path}_technical"), - ), + moving_average: SeriesTree_Market_MovingAverage::new(client.clone(), format!("{base_path}_moving_average")), + technical: SeriesTree_Market_Technical::new(client.clone(), format!("{base_path}_technical")), } } } @@ -15936,14 +10870,8 @@ impl SeriesTree_Market_Ath { drawdown: PercentPpmRatioPattern3::new(client.clone(), "price_drawdown".to_string()), days_since: SeriesPattern1::new(client.clone(), "days_since_price_ath".to_string()), years_since: SeriesPattern1::new(client.clone(), "years_since_price_ath".to_string()), - max_days_between: SeriesPattern1::new( - client.clone(), - "max_days_between_price_ath".to_string(), - ), - max_years_between: SeriesPattern1::new( - client.clone(), - "max_years_between_price_ath".to_string(), - ), + max_days_between: SeriesPattern1::new(client.clone(), "max_days_between_price_ath".to_string()), + max_years_between: SeriesPattern1::new(client.clone(), "max_years_between_price_ath".to_string()), } } } @@ -15995,15 +10923,9 @@ pub struct SeriesTree_Market_Returns { impl SeriesTree_Market_Returns { pub fn new(client: Arc, base_path: String) -> Self { Self { - periods: SeriesTree_Market_Returns_Periods::new( - client.clone(), - format!("{base_path}_periods"), - ), + periods: SeriesTree_Market_Returns_Periods::new(client.clone(), format!("{base_path}_periods")), cagr: _10y2y3y4y5y6y8yPattern::new(client.clone(), "price_cagr".to_string()), - sd_24h: SeriesTree_Market_Returns_Sd24h::new( - client.clone(), - format!("{base_path}_sd_24h"), - ), + sd_24h: SeriesTree_Market_Returns_Sd24h::new(client.clone(), format!("{base_path}_sd_24h")), } } } @@ -16056,10 +10978,7 @@ pub struct SeriesTree_Market_Returns_Sd24h { impl SeriesTree_Market_Returns_Sd24h { pub fn new(client: Arc, base_path: String) -> Self { Self { - _24h: SeriesTree_Market_Returns_Sd24h_24h::new( - client.clone(), - format!("{base_path}_24h"), - ), + _24h: SeriesTree_Market_Returns_Sd24h_24h::new(client.clone(), format!("{base_path}_24h")), _1w: SeriesTree_Market_Returns_Sd24h_1w::new(client.clone(), format!("{base_path}_1w")), _1m: SeriesTree_Market_Returns_Sd24h_1m::new(client.clone(), format!("{base_path}_1m")), _1y: SeriesTree_Market_Returns_Sd24h_1y::new(client.clone(), format!("{base_path}_1y")), @@ -16142,14 +11061,8 @@ impl SeriesTree_Market_Range { min: _1m1w1y2wPattern::new(client.clone(), "price_min".to_string()), max: _1m1w1y2wPattern::new(client.clone(), "price_max".to_string()), true_range: SeriesPattern1::new(client.clone(), "price_true_range".to_string()), - true_range_sum_2w: SeriesPattern1::new( - client.clone(), - "price_true_range_sum_2w".to_string(), - ), - choppiness_index_2w: PercentPpmRatioPattern2::new( - client.clone(), - "price_choppiness_index_2w".to_string(), - ), + true_range_sum_2w: SeriesPattern1::new(client.clone(), "price_true_range_sum_2w".to_string()), + choppiness_index_2w: PercentPpmRatioPattern2::new(client.clone(), "price_choppiness_index_2w".to_string()), } } } @@ -16163,14 +11076,8 @@ pub struct SeriesTree_Market_MovingAverage { impl SeriesTree_Market_MovingAverage { pub fn new(client: Arc, base_path: String) -> Self { Self { - sma: SeriesTree_Market_MovingAverage_Sma::new( - client.clone(), - format!("{base_path}_sma"), - ), - ema: SeriesTree_Market_MovingAverage_Ema::new( - client.clone(), - format!("{base_path}_ema"), - ), + sma: SeriesTree_Market_MovingAverage_Sma::new(client.clone(), format!("{base_path}_sma")), + ema: SeriesTree_Market_MovingAverage_Ema::new(client.clone(), format!("{base_path}_ema")), } } } @@ -16208,14 +11115,8 @@ impl SeriesTree_Market_MovingAverage_Sma { _89d: CentsPpmRatioSatsUsdPattern::new(client.clone(), "price_sma_89d".to_string()), _111d: CentsPpmRatioSatsUsdPattern::new(client.clone(), "price_sma_111d".to_string()), _144d: CentsPpmRatioSatsUsdPattern::new(client.clone(), "price_sma_144d".to_string()), - _200d: SeriesTree_Market_MovingAverage_Sma_200d::new( - client.clone(), - format!("{base_path}_200d"), - ), - _350d: SeriesTree_Market_MovingAverage_Sma_350d::new( - client.clone(), - format!("{base_path}_350d"), - ), + _200d: SeriesTree_Market_MovingAverage_Sma_200d::new(client.clone(), format!("{base_path}_200d")), + _350d: SeriesTree_Market_MovingAverage_Sma_350d::new(client.clone(), format!("{base_path}_350d")), _1y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "price_sma_1y".to_string()), _2y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "price_sma_2y".to_string()), _200w: CentsPpmRatioSatsUsdPattern::new(client.clone(), "price_sma_200w".to_string()), @@ -16329,10 +11230,7 @@ impl SeriesTree_Market_Technical { Self { rsi: SeriesTree_Market_Technical_Rsi::new(client.clone(), format!("{base_path}_rsi")), pi_cycle: PpmRatioPattern2::new(client.clone(), "pi_cycle".to_string()), - macd: SeriesTree_Market_Technical_Macd::new( - client.clone(), - format!("{base_path}_macd"), - ), + macd: SeriesTree_Market_Technical_Macd::new(client.clone(), format!("{base_path}_macd")), } } } @@ -16364,18 +11262,9 @@ pub struct SeriesTree_Market_Technical_Macd { impl SeriesTree_Market_Technical_Macd { pub fn new(client: Arc, base_path: String) -> Self { Self { - _24h: SeriesTree_Market_Technical_Macd_24h::new( - client.clone(), - format!("{base_path}_24h"), - ), - _1w: SeriesTree_Market_Technical_Macd_1w::new( - client.clone(), - format!("{base_path}_1w"), - ), - _1m: SeriesTree_Market_Technical_Macd_1m::new( - client.clone(), - format!("{base_path}_1m"), - ), + _24h: SeriesTree_Market_Technical_Macd_24h::new(client.clone(), format!("{base_path}_24h")), + _1w: SeriesTree_Market_Technical_Macd_1w::new(client.clone(), format!("{base_path}_1w")), + _1m: SeriesTree_Market_Technical_Macd_1m::new(client.clone(), format!("{base_path}_1m")), } } } @@ -16496,28 +11385,16 @@ impl SeriesTree_Pools_Major { btcguild: BlocksDominanceRewardsPattern::new(client.clone(), "btcguild".to_string()), eligius: BlocksDominanceRewardsPattern::new(client.clone(), "eligius".to_string()), f2pool: BlocksDominanceRewardsPattern::new(client.clone(), "f2pool".to_string()), - braiinspool: BlocksDominanceRewardsPattern::new( - client.clone(), - "braiinspool".to_string(), - ), + braiinspool: BlocksDominanceRewardsPattern::new(client.clone(), "braiinspool".to_string()), antpool: BlocksDominanceRewardsPattern::new(client.clone(), "antpool".to_string()), btcc: BlocksDominanceRewardsPattern::new(client.clone(), "btcc".to_string()), bwpool: BlocksDominanceRewardsPattern::new(client.clone(), "bwpool".to_string()), bitfury: BlocksDominanceRewardsPattern::new(client.clone(), "bitfury".to_string()), viabtc: BlocksDominanceRewardsPattern::new(client.clone(), "viabtc".to_string()), poolin: BlocksDominanceRewardsPattern::new(client.clone(), "poolin".to_string()), - spiderpool: BlocksDominanceRewardsPattern::new( - client.clone(), - "spiderpool".to_string(), - ), - binancepool: BlocksDominanceRewardsPattern::new( - client.clone(), - "binancepool".to_string(), - ), - foundryusa: BlocksDominanceRewardsPattern::new( - client.clone(), - "foundryusa".to_string(), - ), + spiderpool: BlocksDominanceRewardsPattern::new(client.clone(), "spiderpool".to_string()), + binancepool: BlocksDominanceRewardsPattern::new(client.clone(), "binancepool".to_string()), + foundryusa: BlocksDominanceRewardsPattern::new(client.clone(), "foundryusa".to_string()), sbicrypto: BlocksDominanceRewardsPattern::new(client.clone(), "sbicrypto".to_string()), marapool: BlocksDominanceRewardsPattern::new(client.clone(), "marapool".to_string()), secpool: BlocksDominanceRewardsPattern::new(client.clone(), "secpool".to_string()), @@ -16722,10 +11599,7 @@ impl SeriesTree_Pools_Minor { ckpool: BlocksDominancePattern::new(client.clone(), "ckpool".to_string()), nicehash: BlocksDominancePattern::new(client.clone(), "nicehash".to_string()), bitclub: BlocksDominancePattern::new(client.clone(), "bitclub".to_string()), - bitcoinaffiliatenetwork: BlocksDominancePattern::new( - client.clone(), - "bitcoinaffiliatenetwork".to_string(), - ), + bitcoinaffiliatenetwork: BlocksDominancePattern::new(client.clone(), "bitcoinaffiliatenetwork".to_string()), exxbw: BlocksDominancePattern::new(client.clone(), "exxbw".to_string()), bitsolo: BlocksDominancePattern::new(client.clone(), "bitsolo".to_string()), twentyoneinc: BlocksDominancePattern::new(client.clone(), "twentyoneinc".to_string()), @@ -16748,10 +11622,7 @@ impl SeriesTree_Pools_Minor { dcexploration: BlocksDominancePattern::new(client.clone(), "dcexploration".to_string()), dcex: BlocksDominancePattern::new(client.clone(), "dcex".to_string()), btpool: BlocksDominancePattern::new(client.clone(), "btpool".to_string()), - fiftyeightcoin: BlocksDominancePattern::new( - client.clone(), - "fiftyeightcoin".to_string(), - ), + fiftyeightcoin: BlocksDominancePattern::new(client.clone(), "fiftyeightcoin".to_string()), bitcoinindia: BlocksDominancePattern::new(client.clone(), "bitcoinindia".to_string()), shawnp0wers: BlocksDominancePattern::new(client.clone(), "shawnp0wers".to_string()), phashio: BlocksDominancePattern::new(client.clone(), "phashio".to_string()), @@ -16764,14 +11635,8 @@ impl SeriesTree_Pools_Minor { rawpool: BlocksDominancePattern::new(client.clone(), "rawpool".to_string()), haominer: BlocksDominancePattern::new(client.clone(), "haominer".to_string()), helix: BlocksDominancePattern::new(client.clone(), "helix".to_string()), - bitcoinukraine: BlocksDominancePattern::new( - client.clone(), - "bitcoinukraine".to_string(), - ), - secretsuperstar: BlocksDominancePattern::new( - client.clone(), - "secretsuperstar".to_string(), - ), + bitcoinukraine: BlocksDominancePattern::new(client.clone(), "bitcoinukraine".to_string()), + secretsuperstar: BlocksDominancePattern::new(client.clone(), "secretsuperstar".to_string()), tigerpoolnet: BlocksDominancePattern::new(client.clone(), "tigerpoolnet".to_string()), sigmapoolcom: BlocksDominancePattern::new(client.clone(), "sigmapoolcom".to_string()), okpooltop: BlocksDominancePattern::new(client.clone(), "okpooltop".to_string()), @@ -16788,40 +11653,25 @@ impl SeriesTree_Pools_Minor { arkpool: BlocksDominancePattern::new(client.clone(), "arkpool".to_string()), purebtccom: BlocksDominancePattern::new(client.clone(), "purebtccom".to_string()), kucoinpool: BlocksDominancePattern::new(client.clone(), "kucoinpool".to_string()), - entrustcharitypool: BlocksDominancePattern::new( - client.clone(), - "entrustcharitypool".to_string(), - ), + entrustcharitypool: BlocksDominancePattern::new(client.clone(), "entrustcharitypool".to_string()), okminer: BlocksDominancePattern::new(client.clone(), "okminer".to_string()), titan: BlocksDominancePattern::new(client.clone(), "titan".to_string()), pegapool: BlocksDominancePattern::new(client.clone(), "pegapool".to_string()), btcnuggets: BlocksDominancePattern::new(client.clone(), "btcnuggets".to_string()), cloudhashing: BlocksDominancePattern::new(client.clone(), "cloudhashing".to_string()), - digitalxmintsy: BlocksDominancePattern::new( - client.clone(), - "digitalxmintsy".to_string(), - ), + digitalxmintsy: BlocksDominancePattern::new(client.clone(), "digitalxmintsy".to_string()), telco214: BlocksDominancePattern::new(client.clone(), "telco214".to_string()), btcpoolparty: BlocksDominancePattern::new(client.clone(), "btcpoolparty".to_string()), multipool: BlocksDominancePattern::new(client.clone(), "multipool".to_string()), - transactioncoinmining: BlocksDominancePattern::new( - client.clone(), - "transactioncoinmining".to_string(), - ), + transactioncoinmining: BlocksDominancePattern::new(client.clone(), "transactioncoinmining".to_string()), btcdig: BlocksDominancePattern::new(client.clone(), "btcdig".to_string()), - trickysbtcpool: BlocksDominancePattern::new( - client.clone(), - "trickysbtcpool".to_string(), - ), + trickysbtcpool: BlocksDominancePattern::new(client.clone(), "trickysbtcpool".to_string()), btcmp: BlocksDominancePattern::new(client.clone(), "btcmp".to_string()), eobot: BlocksDominancePattern::new(client.clone(), "eobot".to_string()), unomp: BlocksDominancePattern::new(client.clone(), "unomp".to_string()), patels: BlocksDominancePattern::new(client.clone(), "patels".to_string()), gogreenlight: BlocksDominancePattern::new(client.clone(), "gogreenlight".to_string()), - bitcoinindiapool: BlocksDominancePattern::new( - client.clone(), - "bitcoinindiapool".to_string(), - ), + bitcoinindiapool: BlocksDominancePattern::new(client.clone(), "bitcoinindiapool".to_string()), ekanembtc: BlocksDominancePattern::new(client.clone(), "ekanembtc".to_string()), canoe: BlocksDominancePattern::new(client.clone(), "canoe".to_string()), tiger: BlocksDominancePattern::new(client.clone(), "tiger".to_string()), @@ -16829,14 +11679,8 @@ impl SeriesTree_Pools_Minor { zulupool: BlocksDominancePattern::new(client.clone(), "zulupool".to_string()), wiz: BlocksDominancePattern::new(client.clone(), "wiz".to_string()), wk057: BlocksDominancePattern::new(client.clone(), "wk057".to_string()), - futurebitapollosolo: BlocksDominancePattern::new( - client.clone(), - "futurebitapollosolo".to_string(), - ), - carbonnegative: BlocksDominancePattern::new( - client.clone(), - "carbonnegative".to_string(), - ), + futurebitapollosolo: BlocksDominancePattern::new(client.clone(), "futurebitapollosolo".to_string()), + carbonnegative: BlocksDominancePattern::new(client.clone(), "carbonnegative".to_string()), portlandhodl: BlocksDominancePattern::new(client.clone(), "portlandhodl".to_string()), phoenix: BlocksDominancePattern::new(client.clone(), "phoenix".to_string()), neopool: BlocksDominancePattern::new(client.clone(), "neopool".to_string()), @@ -16945,28 +11789,13 @@ impl SeriesTree_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { state: SeriesPattern18::new(client.clone(), "supply_state".to_string()), - circulating: BtcCentsSatsUsdPattern::new( - client.clone(), - "circulating_supply".to_string(), - ), + circulating: BtcCentsSatsUsdPattern::new(client.clone(), "circulating_supply".to_string()), burned: BlockCumulativePattern::new(client.clone(), "unspendable_supply".to_string()), - inflation_rate: PercentPpmRatioPattern::new( - client.clone(), - "inflation_rate".to_string(), - ), - velocity: SeriesTree_Supply_Velocity::new( - client.clone(), - format!("{base_path}_velocity"), - ), + inflation_rate: PercentPpmRatioPattern::new(client.clone(), "inflation_rate".to_string()), + velocity: SeriesTree_Supply_Velocity::new(client.clone(), format!("{base_path}_velocity")), market_cap: CentsDeltaUsdPattern::new(client.clone(), "market_cap".to_string()), - market_minus_realized_cap_growth_rate: _1m1w1y24hPattern::new( - client.clone(), - "market_minus_realized_cap_growth_rate".to_string(), - ), - hodled_or_lost: BtcCentsSatsUsdPattern::new( - client.clone(), - "hodled_or_lost_supply".to_string(), - ), + market_minus_realized_cap_growth_rate: _1m1w1y24hPattern::new(client.clone(), "market_minus_realized_cap_growth_rate".to_string()), + hodled_or_lost: BtcCentsSatsUsdPattern::new(client.clone(), "hodled_or_lost_supply".to_string()), } } } @@ -16994,10 +11823,7 @@ pub struct SeriesTree_Cohorts { impl SeriesTree_Cohorts { pub fn new(client: Arc, base_path: String) -> Self { Self { - cohorts: SeriesTree_Cohorts_Cohorts::new( - client.clone(), - format!("{base_path}_cohorts"), - ), + cohorts: SeriesTree_Cohorts_Cohorts::new(client.clone(), format!("{base_path}_cohorts")), } } } @@ -17017,38 +11843,14 @@ pub struct SeriesTree_Cohorts_Cohorts { impl SeriesTree_Cohorts_Cohorts { pub fn new(client: Arc, base_path: String) -> Self { Self { - supply: SeriesTree_Cohorts_Cohorts_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), - outputs: SeriesTree_Cohorts_Cohorts_Outputs::new( - client.clone(), - format!("{base_path}_outputs"), - ), - activity: SeriesTree_Cohorts_Cohorts_Activity::new( - client.clone(), - format!("{base_path}_activity"), - ), - realized: SeriesTree_Cohorts_Cohorts_Realized::new( - client.clone(), - format!("{base_path}_realized"), - ), - unrealized: SeriesTree_Cohorts_Cohorts_Unrealized::new( - client.clone(), - format!("{base_path}_unrealized"), - ), - cost_basis: SeriesTree_Cohorts_Cohorts_CostBasis::new( - client.clone(), - format!("{base_path}_cost_basis"), - ), - relative: SeriesTree_Cohorts_Cohorts_Relative::new( - client.clone(), - format!("{base_path}_relative"), - ), - profitability: SeriesTree_Cohorts_Cohorts_Profitability::new( - client.clone(), - format!("{base_path}_profitability"), - ), + supply: SeriesTree_Cohorts_Cohorts_Supply::new(client.clone(), format!("{base_path}_supply")), + outputs: SeriesTree_Cohorts_Cohorts_Outputs::new(client.clone(), format!("{base_path}_outputs")), + activity: SeriesTree_Cohorts_Cohorts_Activity::new(client.clone(), format!("{base_path}_activity")), + realized: SeriesTree_Cohorts_Cohorts_Realized::new(client.clone(), format!("{base_path}_realized")), + unrealized: SeriesTree_Cohorts_Cohorts_Unrealized::new(client.clone(), format!("{base_path}_unrealized")), + cost_basis: SeriesTree_Cohorts_Cohorts_CostBasis::new(client.clone(), format!("{base_path}_cost_basis")), + relative: SeriesTree_Cohorts_Cohorts_Relative::new(client.clone(), format!("{base_path}_relative")), + profitability: SeriesTree_Cohorts_Cohorts_Profitability::new(client.clone(), format!("{base_path}_profitability")), } } } @@ -17067,34 +11869,13 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply { impl SeriesTree_Cohorts_Cohorts_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { - total: SeriesTree_Cohorts_Cohorts_Supply_Total::new( - client.clone(), - format!("{base_path}_total"), - ), - matured: SeriesTree_Cohorts_Cohorts_Supply_Matured::new( - client.clone(), - format!("{base_path}_matured"), - ), - half: SeriesTree_Cohorts_Cohorts_Supply_Half::new( - client.clone(), - format!("{base_path}_half"), - ), - in_profit: SeriesTree_Cohorts_Cohorts_Supply_InProfit::new( - client.clone(), - format!("{base_path}_in_profit"), - ), - in_loss: SeriesTree_Cohorts_Cohorts_Supply_InLoss::new( - client.clone(), - format!("{base_path}_in_loss"), - ), - delta: SeriesTree_Cohorts_Cohorts_Supply_Delta::new( - client.clone(), - format!("{base_path}_delta"), - ), - dominance: SeriesTree_Cohorts_Cohorts_Supply_Dominance::new( - client.clone(), - format!("{base_path}_dominance"), - ), + total: SeriesTree_Cohorts_Cohorts_Supply_Total::new(client.clone(), format!("{base_path}_total")), + matured: SeriesTree_Cohorts_Cohorts_Supply_Matured::new(client.clone(), format!("{base_path}_matured")), + half: SeriesTree_Cohorts_Cohorts_Supply_Half::new(client.clone(), format!("{base_path}_half")), + in_profit: SeriesTree_Cohorts_Cohorts_Supply_InProfit::new(client.clone(), format!("{base_path}_in_profit")), + in_loss: SeriesTree_Cohorts_Cohorts_Supply_InLoss::new(client.clone(), format!("{base_path}_in_loss")), + delta: SeriesTree_Cohorts_Cohorts_Supply_Delta::new(client.clone(), format!("{base_path}_delta")), + dominance: SeriesTree_Cohorts_Cohorts_Supply_Dominance::new(client.clone(), format!("{base_path}_dominance")), } } } @@ -17122,44 +11903,20 @@ impl SeriesTree_Cohorts_Cohorts_Supply_Total { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BtcCentsSatsUsdPattern::new(client.clone(), "supply".to_string()), - age: SeriesTree_Cohorts_Cohorts_Supply_Total_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Supply_Total_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Supply_Total_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Supply_Total_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Supply_Total_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Supply_Total_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern12::new(client.clone(), "supply".to_string()), - utxo_amount: SeriesTree_Cohorts_Cohorts_Supply_Total_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), + utxo_amount: SeriesTree_Cohorts_Cohorts_Supply_Total_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), term: LongShortPattern13::new(client.clone(), "supply".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern10::new( - client.clone(), - "supply".to_string(), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_supply_sats_by_age_range".to_string(), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern10::new(client.clone(), "supply".to_string()), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_supply_sats_by_age_range".to_string()), epoch_matrix: SeriesPattern18::new(client.clone(), "supply_sats_by_epoch".to_string()), class_matrix: SeriesPattern18::new(client.clone(), "supply_sats_by_class".to_string()), entry_matrix: SeriesPattern18::new(client.clone(), "supply_sats_by_entry".to_string()), type_matrix: SeriesPattern18::new(client.clone(), "supply_sats_by_type".to_string()), - amount_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_supply_sats_by_amount_range".to_string(), - ), - addr_balance: SeriesTree_Cohorts_Cohorts_Supply_Total_AddrBalance::new( - client.clone(), - format!("{base_path}_addr_balance"), - ), + amount_range_matrix: SeriesPattern18::new(client.clone(), "utxos_supply_sats_by_amount_range".to_string()), + addr_balance: SeriesTree_Cohorts_Cohorts_Supply_Total_AddrBalance::new(client.clone(), format!("{base_path}_addr_balance")), } } } @@ -17174,18 +11931,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Total_Age { impl SeriesTree_Cohorts_Cohorts_Supply_Total_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -17220,98 +11968,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Range { impl SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_supply".to_string(), - ), - _1h_to_1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_supply".to_string(), - ), - _1d_to_1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_supply".to_string(), - ), - _1w_to_1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_supply".to_string(), - ), - _1m_to_2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_supply".to_string(), - ), - _2m_to_3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_supply".to_string(), - ), - _3m_to_4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_supply".to_string(), - ), - _4m_to_5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_supply".to_string(), - ), - _5m_to_6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_supply".to_string(), - ), - _6m_to_9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_supply".to_string(), - ), - _9m_to_1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_supply".to_string(), - ), - _1y_to_18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_supply".to_string(), - ), - _18m_to_2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_supply".to_string(), - ), - _2y_to_3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_supply".to_string(), - ), - _3y_to_4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_supply".to_string(), - ), - _4y_to_5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_supply".to_string(), - ), - _5y_to_6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_supply".to_string(), - ), - _6y_to_7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_supply".to_string(), - ), - _7y_to_8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_supply".to_string(), - ), - _8y_to_10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_supply".to_string(), - ), - _10y_to_12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_supply".to_string(), - ), - _12y_to_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_supply".to_string(), - ), - over_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_supply".to_string(), - ), + under_1h: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1h_old_supply".to_string()), + _1h_to_1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_supply".to_string()), + _1d_to_1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_supply".to_string()), + _1w_to_1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_supply".to_string()), + _1m_to_2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_supply".to_string()), + _2m_to_3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_supply".to_string()), + _3m_to_4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_supply".to_string()), + _4m_to_5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_supply".to_string()), + _5m_to_6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_supply".to_string()), + _6m_to_9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_supply".to_string()), + _9m_to_1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_supply".to_string()), + _1y_to_18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_supply".to_string()), + _18m_to_2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_supply".to_string()), + _2y_to_3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_supply".to_string()), + _3y_to_4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_supply".to_string()), + _4y_to_5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_supply".to_string()), + _5y_to_6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_supply".to_string()), + _6y_to_7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_supply".to_string()), + _7y_to_8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_supply".to_string()), + _8y_to_10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_supply".to_string()), + _10y_to_12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_supply".to_string()), + _12y_to_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_supply".to_string()), + over_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_15y_old_supply".to_string()), } } } @@ -17343,86 +12022,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Under { impl SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1w_old_supply".to_string(), - ), - _1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1m_old_supply".to_string(), - ), - _2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_2m_old_supply".to_string(), - ), - _3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_3m_old_supply".to_string(), - ), - _4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_4m_old_supply".to_string(), - ), - _5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_5m_old_supply".to_string(), - ), - _6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_6m_old_supply".to_string(), - ), - _9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_9m_old_supply".to_string(), - ), - _1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1y_old_supply".to_string(), - ), - _18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_18m_old_supply".to_string(), - ), - _2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_2y_old_supply".to_string(), - ), - _3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_3y_old_supply".to_string(), - ), - _4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_4y_old_supply".to_string(), - ), - _5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_5y_old_supply".to_string(), - ), - _6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_6y_old_supply".to_string(), - ), - _7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_7y_old_supply".to_string(), - ), - _8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_8y_old_supply".to_string(), - ), - _10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_10y_old_supply".to_string(), - ), - _12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_12y_old_supply".to_string(), - ), - _15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_15y_old_supply".to_string(), - ), + _1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1w_old_supply".to_string()), + _1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1m_old_supply".to_string()), + _2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_2m_old_supply".to_string()), + _3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_3m_old_supply".to_string()), + _4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_4m_old_supply".to_string()), + _5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_5m_old_supply".to_string()), + _6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_6m_old_supply".to_string()), + _9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_9m_old_supply".to_string()), + _1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1y_old_supply".to_string()), + _18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_18m_old_supply".to_string()), + _2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_2y_old_supply".to_string()), + _3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_3y_old_supply".to_string()), + _4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_4y_old_supply".to_string()), + _5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_5y_old_supply".to_string()), + _6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_6y_old_supply".to_string()), + _7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_7y_old_supply".to_string()), + _8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_8y_old_supply".to_string()), + _10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_10y_old_supply".to_string()), + _12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_12y_old_supply".to_string()), + _15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_15y_old_supply".to_string()), } } } @@ -17454,86 +12073,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Over { impl SeriesTree_Cohorts_Cohorts_Supply_Total_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1d_old_supply".to_string(), - ), - _1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1w_old_supply".to_string(), - ), - _1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1m_old_supply".to_string(), - ), - _2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_2m_old_supply".to_string(), - ), - _3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_3m_old_supply".to_string(), - ), - _4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_4m_old_supply".to_string(), - ), - _5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_5m_old_supply".to_string(), - ), - _6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_6m_old_supply".to_string(), - ), - _9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_9m_old_supply".to_string(), - ), - _1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1y_old_supply".to_string(), - ), - _18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_18m_old_supply".to_string(), - ), - _2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_2y_old_supply".to_string(), - ), - _3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_3y_old_supply".to_string(), - ), - _4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_4y_old_supply".to_string(), - ), - _5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_5y_old_supply".to_string(), - ), - _6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_6y_old_supply".to_string(), - ), - _7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_7y_old_supply".to_string(), - ), - _8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_8y_old_supply".to_string(), - ), - _10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_10y_old_supply".to_string(), - ), - _12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_12y_old_supply".to_string(), - ), + _1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1d_old_supply".to_string()), + _1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1w_old_supply".to_string()), + _1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1m_old_supply".to_string()), + _2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_2m_old_supply".to_string()), + _3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_3m_old_supply".to_string()), + _4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_4m_old_supply".to_string()), + _5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_5m_old_supply".to_string()), + _6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_6m_old_supply".to_string()), + _9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_9m_old_supply".to_string()), + _1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1y_old_supply".to_string()), + _18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_18m_old_supply".to_string()), + _2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_2y_old_supply".to_string()), + _3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_3y_old_supply".to_string()), + _4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_4y_old_supply".to_string()), + _5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_5y_old_supply".to_string()), + _6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_6y_old_supply".to_string()), + _7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_7y_old_supply".to_string()), + _8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_8y_old_supply".to_string()), + _10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_10y_old_supply".to_string()), + _12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_12y_old_supply".to_string()), } } } @@ -17616,18 +12175,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Total_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Supply_Total_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern10::new( - client.clone(), - "utxos".to_string(), - ), - under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern10::new( - client.clone(), - "utxos_under".to_string(), - ), - over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern10::new( - client.clone(), - "utxos_over".to_string(), - ), + range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern10::new(client.clone(), "utxos".to_string()), + under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern10::new(client.clone(), "utxos_under".to_string()), + over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern10::new(client.clone(), "utxos_over".to_string()), } } } @@ -17643,22 +12193,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Total_AddrBalance { impl SeriesTree_Cohorts_Cohorts_Supply_Total_AddrBalance { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern10::new( - client.clone(), - "addrs".to_string(), - ), - under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern10::new( - client.clone(), - "addrs_under".to_string(), - ), - over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern10::new( - client.clone(), - "addrs_over".to_string(), - ), - matrix: SeriesPattern18::new( - client.clone(), - "addrs_supply_sats_by_balance_range".to_string(), - ), + range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern10::new(client.clone(), "addrs".to_string()), + under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern10::new(client.clone(), "addrs_under".to_string()), + over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern10::new(client.clone(), "addrs_over".to_string()), + matrix: SeriesPattern18::new(client.clone(), "addrs_supply_sats_by_balance_range".to_string()), } } } @@ -17695,106 +12233,31 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Matured { impl SeriesTree_Cohorts_Cohorts_Supply_Matured { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_under_1h_old_matured_supply".to_string(), - ), - _1h_to_1d: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_1h_to_1d_old_matured_supply".to_string(), - ), - _1d_to_1w: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_1d_to_1w_old_matured_supply".to_string(), - ), - _1w_to_1m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_1w_to_1m_old_matured_supply".to_string(), - ), - _1m_to_2m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_1m_to_2m_old_matured_supply".to_string(), - ), - _2m_to_3m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_2m_to_3m_old_matured_supply".to_string(), - ), - _3m_to_4m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_3m_to_4m_old_matured_supply".to_string(), - ), - _4m_to_5m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_4m_to_5m_old_matured_supply".to_string(), - ), - _5m_to_6m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_5m_to_6m_old_matured_supply".to_string(), - ), - _6m_to_9m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_6m_to_9m_old_matured_supply".to_string(), - ), - _9m_to_1y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_9m_to_1y_old_matured_supply".to_string(), - ), - _1y_to_18m: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_1y_to_18m_old_matured_supply".to_string(), - ), - _18m_to_2y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_18m_to_2y_old_matured_supply".to_string(), - ), - _2y_to_3y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_2y_to_3y_old_matured_supply".to_string(), - ), - _3y_to_4y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_3y_to_4y_old_matured_supply".to_string(), - ), - _4y_to_5y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_4y_to_5y_old_matured_supply".to_string(), - ), - _5y_to_6y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_5y_to_6y_old_matured_supply".to_string(), - ), - _6y_to_7y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_6y_to_7y_old_matured_supply".to_string(), - ), - _7y_to_8y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_7y_to_8y_old_matured_supply".to_string(), - ), - _8y_to_10y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_8y_to_10y_old_matured_supply".to_string(), - ), - _10y_to_12y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_10y_to_12y_old_matured_supply".to_string(), - ), - _12y_to_15y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_12y_to_15y_old_matured_supply".to_string(), - ), - over_15y: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "utxos_over_15y_old_matured_supply".to_string(), - ), - sats: CumulativePattern::new( - client.clone(), - "utxos_age_range_matured_supply_cumulative_sats".to_string(), - ), - cents: CumulativePattern::new( - client.clone(), - "utxos_age_range_matured_supply_cumulative_cents".to_string(), - ), + under_1h: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_under_1h_old_matured_supply".to_string()), + _1h_to_1d: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1h_to_1d_old_matured_supply".to_string()), + _1d_to_1w: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1d_to_1w_old_matured_supply".to_string()), + _1w_to_1m: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1w_to_1m_old_matured_supply".to_string()), + _1m_to_2m: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1m_to_2m_old_matured_supply".to_string()), + _2m_to_3m: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_2m_to_3m_old_matured_supply".to_string()), + _3m_to_4m: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_3m_to_4m_old_matured_supply".to_string()), + _4m_to_5m: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_4m_to_5m_old_matured_supply".to_string()), + _5m_to_6m: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_5m_to_6m_old_matured_supply".to_string()), + _6m_to_9m: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_6m_to_9m_old_matured_supply".to_string()), + _9m_to_1y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_9m_to_1y_old_matured_supply".to_string()), + _1y_to_18m: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_1y_to_18m_old_matured_supply".to_string()), + _18m_to_2y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_18m_to_2y_old_matured_supply".to_string()), + _2y_to_3y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_2y_to_3y_old_matured_supply".to_string()), + _3y_to_4y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_3y_to_4y_old_matured_supply".to_string()), + _4y_to_5y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_4y_to_5y_old_matured_supply".to_string()), + _5y_to_6y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_5y_to_6y_old_matured_supply".to_string()), + _6y_to_7y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_6y_to_7y_old_matured_supply".to_string()), + _7y_to_8y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_7y_to_8y_old_matured_supply".to_string()), + _8y_to_10y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_8y_to_10y_old_matured_supply".to_string()), + _10y_to_12y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_10y_to_12y_old_matured_supply".to_string()), + _12y_to_15y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_12y_to_15y_old_matured_supply".to_string()), + over_15y: AverageBlockCumulativeSumPattern2::new(client.clone(), "utxos_over_15y_old_matured_supply".to_string()), + sats: CumulativePattern::new(client.clone(), "utxos_age_range_matured_supply_cumulative_sats".to_string()), + cents: CumulativePattern::new(client.clone(), "utxos_age_range_matured_supply_cumulative_cents".to_string()), } } } @@ -17814,24 +12277,12 @@ impl SeriesTree_Cohorts_Cohorts_Supply_Half { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BtcCentsSatsUsdPattern::new(client.clone(), "supply_half".to_string()), - age: SeriesTree_Cohorts_Cohorts_Supply_Half_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Supply_Half_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Supply_Half_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Supply_Half_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Supply_Half_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Supply_Half_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern12::new(client.clone(), "supply_half".to_string()), term: LongShortPattern13::new(client.clone(), "supply_half".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern10::new( - client.clone(), - "supply_half".to_string(), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern10::new(client.clone(), "supply_half".to_string()), } } } @@ -17846,18 +12297,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Half_Age { impl SeriesTree_Cohorts_Cohorts_Supply_Half_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -17892,98 +12334,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Range { impl SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_supply_half".to_string(), - ), - _1h_to_1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_supply_half".to_string(), - ), - _1d_to_1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_supply_half".to_string(), - ), - _1w_to_1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_supply_half".to_string(), - ), - _1m_to_2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_supply_half".to_string(), - ), - _2m_to_3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_supply_half".to_string(), - ), - _3m_to_4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_supply_half".to_string(), - ), - _4m_to_5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_supply_half".to_string(), - ), - _5m_to_6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_supply_half".to_string(), - ), - _6m_to_9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_supply_half".to_string(), - ), - _9m_to_1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_supply_half".to_string(), - ), - _1y_to_18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_supply_half".to_string(), - ), - _18m_to_2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_supply_half".to_string(), - ), - _2y_to_3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_supply_half".to_string(), - ), - _3y_to_4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_supply_half".to_string(), - ), - _4y_to_5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_supply_half".to_string(), - ), - _5y_to_6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_supply_half".to_string(), - ), - _6y_to_7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_supply_half".to_string(), - ), - _7y_to_8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_supply_half".to_string(), - ), - _8y_to_10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_supply_half".to_string(), - ), - _10y_to_12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_supply_half".to_string(), - ), - _12y_to_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_supply_half".to_string(), - ), - over_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_supply_half".to_string(), - ), + under_1h: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1h_old_supply_half".to_string()), + _1h_to_1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_supply_half".to_string()), + _1d_to_1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_supply_half".to_string()), + _1w_to_1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_supply_half".to_string()), + _1m_to_2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_supply_half".to_string()), + _2m_to_3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_supply_half".to_string()), + _3m_to_4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_supply_half".to_string()), + _4m_to_5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_supply_half".to_string()), + _5m_to_6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_supply_half".to_string()), + _6m_to_9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_supply_half".to_string()), + _9m_to_1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_supply_half".to_string()), + _1y_to_18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_supply_half".to_string()), + _18m_to_2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_supply_half".to_string()), + _2y_to_3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_supply_half".to_string()), + _3y_to_4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_supply_half".to_string()), + _4y_to_5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_supply_half".to_string()), + _5y_to_6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_supply_half".to_string()), + _6y_to_7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_supply_half".to_string()), + _7y_to_8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_supply_half".to_string()), + _8y_to_10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_supply_half".to_string()), + _10y_to_12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_supply_half".to_string()), + _12y_to_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_supply_half".to_string()), + over_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_15y_old_supply_half".to_string()), } } } @@ -18015,86 +12388,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Under { impl SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1w_old_supply_half".to_string(), - ), - _1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1m_old_supply_half".to_string(), - ), - _2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_2m_old_supply_half".to_string(), - ), - _3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_3m_old_supply_half".to_string(), - ), - _4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_4m_old_supply_half".to_string(), - ), - _5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_5m_old_supply_half".to_string(), - ), - _6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_6m_old_supply_half".to_string(), - ), - _9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_9m_old_supply_half".to_string(), - ), - _1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1y_old_supply_half".to_string(), - ), - _18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_18m_old_supply_half".to_string(), - ), - _2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_2y_old_supply_half".to_string(), - ), - _3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_3y_old_supply_half".to_string(), - ), - _4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_4y_old_supply_half".to_string(), - ), - _5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_5y_old_supply_half".to_string(), - ), - _6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_6y_old_supply_half".to_string(), - ), - _7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_7y_old_supply_half".to_string(), - ), - _8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_8y_old_supply_half".to_string(), - ), - _10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_10y_old_supply_half".to_string(), - ), - _12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_12y_old_supply_half".to_string(), - ), - _15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_15y_old_supply_half".to_string(), - ), + _1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1w_old_supply_half".to_string()), + _1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1m_old_supply_half".to_string()), + _2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_2m_old_supply_half".to_string()), + _3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_3m_old_supply_half".to_string()), + _4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_4m_old_supply_half".to_string()), + _5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_5m_old_supply_half".to_string()), + _6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_6m_old_supply_half".to_string()), + _9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_9m_old_supply_half".to_string()), + _1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1y_old_supply_half".to_string()), + _18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_18m_old_supply_half".to_string()), + _2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_2y_old_supply_half".to_string()), + _3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_3y_old_supply_half".to_string()), + _4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_4y_old_supply_half".to_string()), + _5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_5y_old_supply_half".to_string()), + _6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_6y_old_supply_half".to_string()), + _7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_7y_old_supply_half".to_string()), + _8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_8y_old_supply_half".to_string()), + _10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_10y_old_supply_half".to_string()), + _12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_12y_old_supply_half".to_string()), + _15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_15y_old_supply_half".to_string()), } } } @@ -18126,86 +12439,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Over { impl SeriesTree_Cohorts_Cohorts_Supply_Half_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1d_old_supply_half".to_string(), - ), - _1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1w_old_supply_half".to_string(), - ), - _1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1m_old_supply_half".to_string(), - ), - _2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_2m_old_supply_half".to_string(), - ), - _3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_3m_old_supply_half".to_string(), - ), - _4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_4m_old_supply_half".to_string(), - ), - _5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_5m_old_supply_half".to_string(), - ), - _6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_6m_old_supply_half".to_string(), - ), - _9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_9m_old_supply_half".to_string(), - ), - _1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1y_old_supply_half".to_string(), - ), - _18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_18m_old_supply_half".to_string(), - ), - _2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_2y_old_supply_half".to_string(), - ), - _3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_3y_old_supply_half".to_string(), - ), - _4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_4y_old_supply_half".to_string(), - ), - _5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_5y_old_supply_half".to_string(), - ), - _6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_6y_old_supply_half".to_string(), - ), - _7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_7y_old_supply_half".to_string(), - ), - _8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_8y_old_supply_half".to_string(), - ), - _10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_10y_old_supply_half".to_string(), - ), - _12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_12y_old_supply_half".to_string(), - ), + _1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1d_old_supply_half".to_string()), + _1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1w_old_supply_half".to_string()), + _1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1m_old_supply_half".to_string()), + _2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_2m_old_supply_half".to_string()), + _3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_3m_old_supply_half".to_string()), + _4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_4m_old_supply_half".to_string()), + _5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_5m_old_supply_half".to_string()), + _6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_6m_old_supply_half".to_string()), + _9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_9m_old_supply_half".to_string()), + _1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1y_old_supply_half".to_string()), + _18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_18m_old_supply_half".to_string()), + _2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_2y_old_supply_half".to_string()), + _3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_3y_old_supply_half".to_string()), + _4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_4y_old_supply_half".to_string()), + _5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_5y_old_supply_half".to_string()), + _6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_6y_old_supply_half".to_string()), + _7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_7y_old_supply_half".to_string()), + _8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_8y_old_supply_half".to_string()), + _10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_10y_old_supply_half".to_string()), + _12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_12y_old_supply_half".to_string()), } } } @@ -18256,78 +12509,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Half_Class { impl SeriesTree_Cohorts_Cohorts_Supply_Half_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2009_supply_half".to_string(), - ), - _2010: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2010_supply_half".to_string(), - ), - _2011: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2011_supply_half".to_string(), - ), - _2012: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2012_supply_half".to_string(), - ), - _2013: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2013_supply_half".to_string(), - ), - _2014: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2014_supply_half".to_string(), - ), - _2015: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2015_supply_half".to_string(), - ), - _2016: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2016_supply_half".to_string(), - ), - _2017: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2017_supply_half".to_string(), - ), - _2018: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2018_supply_half".to_string(), - ), - _2019: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2019_supply_half".to_string(), - ), - _2020: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2020_supply_half".to_string(), - ), - _2021: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2021_supply_half".to_string(), - ), - _2022: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2022_supply_half".to_string(), - ), - _2023: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2023_supply_half".to_string(), - ), - _2024: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2024_supply_half".to_string(), - ), - _2025: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2025_supply_half".to_string(), - ), - _2026: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2026_supply_half".to_string(), - ), + _2009: BtcCentsSatsUsdPattern::new(client.clone(), "class_2009_supply_half".to_string()), + _2010: BtcCentsSatsUsdPattern::new(client.clone(), "class_2010_supply_half".to_string()), + _2011: BtcCentsSatsUsdPattern::new(client.clone(), "class_2011_supply_half".to_string()), + _2012: BtcCentsSatsUsdPattern::new(client.clone(), "class_2012_supply_half".to_string()), + _2013: BtcCentsSatsUsdPattern::new(client.clone(), "class_2013_supply_half".to_string()), + _2014: BtcCentsSatsUsdPattern::new(client.clone(), "class_2014_supply_half".to_string()), + _2015: BtcCentsSatsUsdPattern::new(client.clone(), "class_2015_supply_half".to_string()), + _2016: BtcCentsSatsUsdPattern::new(client.clone(), "class_2016_supply_half".to_string()), + _2017: BtcCentsSatsUsdPattern::new(client.clone(), "class_2017_supply_half".to_string()), + _2018: BtcCentsSatsUsdPattern::new(client.clone(), "class_2018_supply_half".to_string()), + _2019: BtcCentsSatsUsdPattern::new(client.clone(), "class_2019_supply_half".to_string()), + _2020: BtcCentsSatsUsdPattern::new(client.clone(), "class_2020_supply_half".to_string()), + _2021: BtcCentsSatsUsdPattern::new(client.clone(), "class_2021_supply_half".to_string()), + _2022: BtcCentsSatsUsdPattern::new(client.clone(), "class_2022_supply_half".to_string()), + _2023: BtcCentsSatsUsdPattern::new(client.clone(), "class_2023_supply_half".to_string()), + _2024: BtcCentsSatsUsdPattern::new(client.clone(), "class_2024_supply_half".to_string()), + _2025: BtcCentsSatsUsdPattern::new(client.clone(), "class_2025_supply_half".to_string()), + _2026: BtcCentsSatsUsdPattern::new(client.clone(), "class_2026_supply_half".to_string()), } } } @@ -18352,44 +12551,17 @@ impl SeriesTree_Cohorts_Cohorts_Supply_InProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BtcCentsSatsUsdPattern::new(client.clone(), "supply_in_profit".to_string()), - age: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern12::new(client.clone(), "supply_in_profit".to_string()), term: LongShortPattern13::new(client.clone(), "supply_in_profit".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern10::new( - client.clone(), - "supply_in_profit".to_string(), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_supply_in_profit_sats_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "supply_in_profit_sats_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "supply_in_profit_sats_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "supply_in_profit_sats_by_entry".to_string(), - ), - type_matrix: SeriesPattern18::new( - client.clone(), - "supply_in_profit_sats_by_type".to_string(), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern10::new(client.clone(), "supply_in_profit".to_string()), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_supply_in_profit_sats_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "supply_in_profit_sats_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "supply_in_profit_sats_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "supply_in_profit_sats_by_entry".to_string()), + type_matrix: SeriesPattern18::new(client.clone(), "supply_in_profit_sats_by_type".to_string()), } } } @@ -18404,18 +12576,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age { impl SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -18450,98 +12613,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Range { impl SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_supply_in_profit".to_string(), - ), - _1h_to_1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_supply_in_profit".to_string(), - ), - _1d_to_1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_supply_in_profit".to_string(), - ), - _1w_to_1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_supply_in_profit".to_string(), - ), - _1m_to_2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_supply_in_profit".to_string(), - ), - _2m_to_3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_supply_in_profit".to_string(), - ), - _3m_to_4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_supply_in_profit".to_string(), - ), - _4m_to_5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_supply_in_profit".to_string(), - ), - _5m_to_6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_supply_in_profit".to_string(), - ), - _6m_to_9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_supply_in_profit".to_string(), - ), - _9m_to_1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_supply_in_profit".to_string(), - ), - _1y_to_18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_supply_in_profit".to_string(), - ), - _18m_to_2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_supply_in_profit".to_string(), - ), - _2y_to_3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_supply_in_profit".to_string(), - ), - _3y_to_4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_supply_in_profit".to_string(), - ), - _4y_to_5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_supply_in_profit".to_string(), - ), - _5y_to_6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_supply_in_profit".to_string(), - ), - _6y_to_7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_supply_in_profit".to_string(), - ), - _7y_to_8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_supply_in_profit".to_string(), - ), - _8y_to_10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_supply_in_profit".to_string(), - ), - _10y_to_12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_supply_in_profit".to_string(), - ), - _12y_to_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_supply_in_profit".to_string(), - ), - over_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_supply_in_profit".to_string(), - ), + under_1h: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1h_old_supply_in_profit".to_string()), + _1h_to_1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_supply_in_profit".to_string()), + _1d_to_1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_supply_in_profit".to_string()), + _1w_to_1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_supply_in_profit".to_string()), + _1m_to_2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_supply_in_profit".to_string()), + _2m_to_3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_supply_in_profit".to_string()), + _3m_to_4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_supply_in_profit".to_string()), + _4m_to_5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_supply_in_profit".to_string()), + _5m_to_6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_supply_in_profit".to_string()), + _6m_to_9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_supply_in_profit".to_string()), + _9m_to_1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_supply_in_profit".to_string()), + _1y_to_18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_supply_in_profit".to_string()), + _18m_to_2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_supply_in_profit".to_string()), + _2y_to_3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_supply_in_profit".to_string()), + _3y_to_4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_supply_in_profit".to_string()), + _4y_to_5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_supply_in_profit".to_string()), + _5y_to_6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_supply_in_profit".to_string()), + _6y_to_7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_supply_in_profit".to_string()), + _7y_to_8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_supply_in_profit".to_string()), + _8y_to_10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_supply_in_profit".to_string()), + _10y_to_12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_supply_in_profit".to_string()), + _12y_to_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_supply_in_profit".to_string()), + over_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_15y_old_supply_in_profit".to_string()), } } } @@ -18573,86 +12667,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Under { impl SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1w_old_supply_in_profit".to_string(), - ), - _1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1m_old_supply_in_profit".to_string(), - ), - _2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_2m_old_supply_in_profit".to_string(), - ), - _3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_3m_old_supply_in_profit".to_string(), - ), - _4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_4m_old_supply_in_profit".to_string(), - ), - _5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_5m_old_supply_in_profit".to_string(), - ), - _6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_6m_old_supply_in_profit".to_string(), - ), - _9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_9m_old_supply_in_profit".to_string(), - ), - _1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1y_old_supply_in_profit".to_string(), - ), - _18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_18m_old_supply_in_profit".to_string(), - ), - _2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_2y_old_supply_in_profit".to_string(), - ), - _3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_3y_old_supply_in_profit".to_string(), - ), - _4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_4y_old_supply_in_profit".to_string(), - ), - _5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_5y_old_supply_in_profit".to_string(), - ), - _6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_6y_old_supply_in_profit".to_string(), - ), - _7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_7y_old_supply_in_profit".to_string(), - ), - _8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_8y_old_supply_in_profit".to_string(), - ), - _10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_10y_old_supply_in_profit".to_string(), - ), - _12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_12y_old_supply_in_profit".to_string(), - ), - _15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_15y_old_supply_in_profit".to_string(), - ), + _1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1w_old_supply_in_profit".to_string()), + _1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1m_old_supply_in_profit".to_string()), + _2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_2m_old_supply_in_profit".to_string()), + _3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_3m_old_supply_in_profit".to_string()), + _4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_4m_old_supply_in_profit".to_string()), + _5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_5m_old_supply_in_profit".to_string()), + _6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_6m_old_supply_in_profit".to_string()), + _9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_9m_old_supply_in_profit".to_string()), + _1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1y_old_supply_in_profit".to_string()), + _18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_18m_old_supply_in_profit".to_string()), + _2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_2y_old_supply_in_profit".to_string()), + _3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_3y_old_supply_in_profit".to_string()), + _4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_4y_old_supply_in_profit".to_string()), + _5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_5y_old_supply_in_profit".to_string()), + _6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_6y_old_supply_in_profit".to_string()), + _7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_7y_old_supply_in_profit".to_string()), + _8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_8y_old_supply_in_profit".to_string()), + _10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_10y_old_supply_in_profit".to_string()), + _12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_12y_old_supply_in_profit".to_string()), + _15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_15y_old_supply_in_profit".to_string()), } } } @@ -18684,86 +12718,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Over { impl SeriesTree_Cohorts_Cohorts_Supply_InProfit_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1d_old_supply_in_profit".to_string(), - ), - _1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1w_old_supply_in_profit".to_string(), - ), - _1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1m_old_supply_in_profit".to_string(), - ), - _2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_2m_old_supply_in_profit".to_string(), - ), - _3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_3m_old_supply_in_profit".to_string(), - ), - _4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_4m_old_supply_in_profit".to_string(), - ), - _5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_5m_old_supply_in_profit".to_string(), - ), - _6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_6m_old_supply_in_profit".to_string(), - ), - _9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_9m_old_supply_in_profit".to_string(), - ), - _1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1y_old_supply_in_profit".to_string(), - ), - _18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_18m_old_supply_in_profit".to_string(), - ), - _2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_2y_old_supply_in_profit".to_string(), - ), - _3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_3y_old_supply_in_profit".to_string(), - ), - _4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_4y_old_supply_in_profit".to_string(), - ), - _5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_5y_old_supply_in_profit".to_string(), - ), - _6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_6y_old_supply_in_profit".to_string(), - ), - _7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_7y_old_supply_in_profit".to_string(), - ), - _8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_8y_old_supply_in_profit".to_string(), - ), - _10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_10y_old_supply_in_profit".to_string(), - ), - _12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_12y_old_supply_in_profit".to_string(), - ), + _1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1d_old_supply_in_profit".to_string()), + _1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1w_old_supply_in_profit".to_string()), + _1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1m_old_supply_in_profit".to_string()), + _2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_2m_old_supply_in_profit".to_string()), + _3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_3m_old_supply_in_profit".to_string()), + _4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_4m_old_supply_in_profit".to_string()), + _5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_5m_old_supply_in_profit".to_string()), + _6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_6m_old_supply_in_profit".to_string()), + _9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_9m_old_supply_in_profit".to_string()), + _1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1y_old_supply_in_profit".to_string()), + _18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_18m_old_supply_in_profit".to_string()), + _2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_2y_old_supply_in_profit".to_string()), + _3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_3y_old_supply_in_profit".to_string()), + _4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_4y_old_supply_in_profit".to_string()), + _5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_5y_old_supply_in_profit".to_string()), + _6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_6y_old_supply_in_profit".to_string()), + _7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_7y_old_supply_in_profit".to_string()), + _8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_8y_old_supply_in_profit".to_string()), + _10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_10y_old_supply_in_profit".to_string()), + _12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_12y_old_supply_in_profit".to_string()), } } } @@ -18814,78 +12788,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InProfit_Class { impl SeriesTree_Cohorts_Cohorts_Supply_InProfit_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2009_supply_in_profit".to_string(), - ), - _2010: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2010_supply_in_profit".to_string(), - ), - _2011: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2011_supply_in_profit".to_string(), - ), - _2012: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2012_supply_in_profit".to_string(), - ), - _2013: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2013_supply_in_profit".to_string(), - ), - _2014: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2014_supply_in_profit".to_string(), - ), - _2015: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2015_supply_in_profit".to_string(), - ), - _2016: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2016_supply_in_profit".to_string(), - ), - _2017: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2017_supply_in_profit".to_string(), - ), - _2018: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2018_supply_in_profit".to_string(), - ), - _2019: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2019_supply_in_profit".to_string(), - ), - _2020: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2020_supply_in_profit".to_string(), - ), - _2021: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2021_supply_in_profit".to_string(), - ), - _2022: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2022_supply_in_profit".to_string(), - ), - _2023: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2023_supply_in_profit".to_string(), - ), - _2024: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2024_supply_in_profit".to_string(), - ), - _2025: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2025_supply_in_profit".to_string(), - ), - _2026: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2026_supply_in_profit".to_string(), - ), + _2009: BtcCentsSatsUsdPattern::new(client.clone(), "class_2009_supply_in_profit".to_string()), + _2010: BtcCentsSatsUsdPattern::new(client.clone(), "class_2010_supply_in_profit".to_string()), + _2011: BtcCentsSatsUsdPattern::new(client.clone(), "class_2011_supply_in_profit".to_string()), + _2012: BtcCentsSatsUsdPattern::new(client.clone(), "class_2012_supply_in_profit".to_string()), + _2013: BtcCentsSatsUsdPattern::new(client.clone(), "class_2013_supply_in_profit".to_string()), + _2014: BtcCentsSatsUsdPattern::new(client.clone(), "class_2014_supply_in_profit".to_string()), + _2015: BtcCentsSatsUsdPattern::new(client.clone(), "class_2015_supply_in_profit".to_string()), + _2016: BtcCentsSatsUsdPattern::new(client.clone(), "class_2016_supply_in_profit".to_string()), + _2017: BtcCentsSatsUsdPattern::new(client.clone(), "class_2017_supply_in_profit".to_string()), + _2018: BtcCentsSatsUsdPattern::new(client.clone(), "class_2018_supply_in_profit".to_string()), + _2019: BtcCentsSatsUsdPattern::new(client.clone(), "class_2019_supply_in_profit".to_string()), + _2020: BtcCentsSatsUsdPattern::new(client.clone(), "class_2020_supply_in_profit".to_string()), + _2021: BtcCentsSatsUsdPattern::new(client.clone(), "class_2021_supply_in_profit".to_string()), + _2022: BtcCentsSatsUsdPattern::new(client.clone(), "class_2022_supply_in_profit".to_string()), + _2023: BtcCentsSatsUsdPattern::new(client.clone(), "class_2023_supply_in_profit".to_string()), + _2024: BtcCentsSatsUsdPattern::new(client.clone(), "class_2024_supply_in_profit".to_string()), + _2025: BtcCentsSatsUsdPattern::new(client.clone(), "class_2025_supply_in_profit".to_string()), + _2026: BtcCentsSatsUsdPattern::new(client.clone(), "class_2026_supply_in_profit".to_string()), } } } @@ -18910,44 +12830,17 @@ impl SeriesTree_Cohorts_Cohorts_Supply_InLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BtcCentsSatsUsdPattern::new(client.clone(), "supply_in_loss".to_string()), - age: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern12::new(client.clone(), "supply_in_loss".to_string()), term: LongShortPattern13::new(client.clone(), "supply_in_loss".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern10::new( - client.clone(), - "supply_in_loss".to_string(), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_supply_in_loss_sats_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "supply_in_loss_sats_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "supply_in_loss_sats_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "supply_in_loss_sats_by_entry".to_string(), - ), - type_matrix: SeriesPattern18::new( - client.clone(), - "supply_in_loss_sats_by_type".to_string(), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern10::new(client.clone(), "supply_in_loss".to_string()), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_supply_in_loss_sats_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "supply_in_loss_sats_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "supply_in_loss_sats_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "supply_in_loss_sats_by_entry".to_string()), + type_matrix: SeriesPattern18::new(client.clone(), "supply_in_loss_sats_by_type".to_string()), } } } @@ -18962,18 +12855,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age { impl SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -19008,98 +12892,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Range { impl SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_supply_in_loss".to_string(), - ), - _1h_to_1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_supply_in_loss".to_string(), - ), - _1d_to_1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_supply_in_loss".to_string(), - ), - _1w_to_1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_supply_in_loss".to_string(), - ), - _1m_to_2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_supply_in_loss".to_string(), - ), - _2m_to_3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_supply_in_loss".to_string(), - ), - _3m_to_4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_supply_in_loss".to_string(), - ), - _4m_to_5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_supply_in_loss".to_string(), - ), - _5m_to_6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_supply_in_loss".to_string(), - ), - _6m_to_9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_supply_in_loss".to_string(), - ), - _9m_to_1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_supply_in_loss".to_string(), - ), - _1y_to_18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_supply_in_loss".to_string(), - ), - _18m_to_2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_supply_in_loss".to_string(), - ), - _2y_to_3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_supply_in_loss".to_string(), - ), - _3y_to_4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_supply_in_loss".to_string(), - ), - _4y_to_5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_supply_in_loss".to_string(), - ), - _5y_to_6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_supply_in_loss".to_string(), - ), - _6y_to_7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_supply_in_loss".to_string(), - ), - _7y_to_8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_supply_in_loss".to_string(), - ), - _8y_to_10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_supply_in_loss".to_string(), - ), - _10y_to_12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_supply_in_loss".to_string(), - ), - _12y_to_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_supply_in_loss".to_string(), - ), - over_15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_supply_in_loss".to_string(), - ), + under_1h: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1h_old_supply_in_loss".to_string()), + _1h_to_1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_supply_in_loss".to_string()), + _1d_to_1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_supply_in_loss".to_string()), + _1w_to_1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_supply_in_loss".to_string()), + _1m_to_2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_supply_in_loss".to_string()), + _2m_to_3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_supply_in_loss".to_string()), + _3m_to_4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_supply_in_loss".to_string()), + _4m_to_5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_supply_in_loss".to_string()), + _5m_to_6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_supply_in_loss".to_string()), + _6m_to_9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_supply_in_loss".to_string()), + _9m_to_1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_supply_in_loss".to_string()), + _1y_to_18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_supply_in_loss".to_string()), + _18m_to_2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_supply_in_loss".to_string()), + _2y_to_3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_supply_in_loss".to_string()), + _3y_to_4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_supply_in_loss".to_string()), + _4y_to_5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_supply_in_loss".to_string()), + _5y_to_6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_supply_in_loss".to_string()), + _6y_to_7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_supply_in_loss".to_string()), + _7y_to_8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_supply_in_loss".to_string()), + _8y_to_10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_supply_in_loss".to_string()), + _10y_to_12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_supply_in_loss".to_string()), + _12y_to_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_supply_in_loss".to_string()), + over_15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_15y_old_supply_in_loss".to_string()), } } } @@ -19131,86 +12946,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Under { impl SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1w_old_supply_in_loss".to_string(), - ), - _1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1m_old_supply_in_loss".to_string(), - ), - _2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_2m_old_supply_in_loss".to_string(), - ), - _3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_3m_old_supply_in_loss".to_string(), - ), - _4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_4m_old_supply_in_loss".to_string(), - ), - _5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_5m_old_supply_in_loss".to_string(), - ), - _6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_6m_old_supply_in_loss".to_string(), - ), - _9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_9m_old_supply_in_loss".to_string(), - ), - _1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_1y_old_supply_in_loss".to_string(), - ), - _18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_18m_old_supply_in_loss".to_string(), - ), - _2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_2y_old_supply_in_loss".to_string(), - ), - _3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_3y_old_supply_in_loss".to_string(), - ), - _4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_4y_old_supply_in_loss".to_string(), - ), - _5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_5y_old_supply_in_loss".to_string(), - ), - _6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_6y_old_supply_in_loss".to_string(), - ), - _7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_7y_old_supply_in_loss".to_string(), - ), - _8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_8y_old_supply_in_loss".to_string(), - ), - _10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_10y_old_supply_in_loss".to_string(), - ), - _12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_12y_old_supply_in_loss".to_string(), - ), - _15y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_under_15y_old_supply_in_loss".to_string(), - ), + _1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1w_old_supply_in_loss".to_string()), + _1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1m_old_supply_in_loss".to_string()), + _2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_2m_old_supply_in_loss".to_string()), + _3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_3m_old_supply_in_loss".to_string()), + _4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_4m_old_supply_in_loss".to_string()), + _5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_5m_old_supply_in_loss".to_string()), + _6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_6m_old_supply_in_loss".to_string()), + _9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_9m_old_supply_in_loss".to_string()), + _1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_1y_old_supply_in_loss".to_string()), + _18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_18m_old_supply_in_loss".to_string()), + _2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_2y_old_supply_in_loss".to_string()), + _3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_3y_old_supply_in_loss".to_string()), + _4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_4y_old_supply_in_loss".to_string()), + _5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_5y_old_supply_in_loss".to_string()), + _6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_6y_old_supply_in_loss".to_string()), + _7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_7y_old_supply_in_loss".to_string()), + _8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_8y_old_supply_in_loss".to_string()), + _10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_10y_old_supply_in_loss".to_string()), + _12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_12y_old_supply_in_loss".to_string()), + _15y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_under_15y_old_supply_in_loss".to_string()), } } } @@ -19242,86 +12997,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Over { impl SeriesTree_Cohorts_Cohorts_Supply_InLoss_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1d_old_supply_in_loss".to_string(), - ), - _1w: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1w_old_supply_in_loss".to_string(), - ), - _1m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1m_old_supply_in_loss".to_string(), - ), - _2m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_2m_old_supply_in_loss".to_string(), - ), - _3m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_3m_old_supply_in_loss".to_string(), - ), - _4m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_4m_old_supply_in_loss".to_string(), - ), - _5m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_5m_old_supply_in_loss".to_string(), - ), - _6m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_6m_old_supply_in_loss".to_string(), - ), - _9m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_9m_old_supply_in_loss".to_string(), - ), - _1y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_1y_old_supply_in_loss".to_string(), - ), - _18m: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_18m_old_supply_in_loss".to_string(), - ), - _2y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_2y_old_supply_in_loss".to_string(), - ), - _3y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_3y_old_supply_in_loss".to_string(), - ), - _4y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_4y_old_supply_in_loss".to_string(), - ), - _5y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_5y_old_supply_in_loss".to_string(), - ), - _6y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_6y_old_supply_in_loss".to_string(), - ), - _7y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_7y_old_supply_in_loss".to_string(), - ), - _8y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_8y_old_supply_in_loss".to_string(), - ), - _10y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_10y_old_supply_in_loss".to_string(), - ), - _12y: BtcCentsSatsUsdPattern::new( - client.clone(), - "utxos_over_12y_old_supply_in_loss".to_string(), - ), + _1d: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1d_old_supply_in_loss".to_string()), + _1w: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1w_old_supply_in_loss".to_string()), + _1m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1m_old_supply_in_loss".to_string()), + _2m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_2m_old_supply_in_loss".to_string()), + _3m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_3m_old_supply_in_loss".to_string()), + _4m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_4m_old_supply_in_loss".to_string()), + _5m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_5m_old_supply_in_loss".to_string()), + _6m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_6m_old_supply_in_loss".to_string()), + _9m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_9m_old_supply_in_loss".to_string()), + _1y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_1y_old_supply_in_loss".to_string()), + _18m: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_18m_old_supply_in_loss".to_string()), + _2y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_2y_old_supply_in_loss".to_string()), + _3y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_3y_old_supply_in_loss".to_string()), + _4y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_4y_old_supply_in_loss".to_string()), + _5y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_5y_old_supply_in_loss".to_string()), + _6y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_6y_old_supply_in_loss".to_string()), + _7y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_7y_old_supply_in_loss".to_string()), + _8y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_8y_old_supply_in_loss".to_string()), + _10y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_10y_old_supply_in_loss".to_string()), + _12y: BtcCentsSatsUsdPattern::new(client.clone(), "utxos_over_12y_old_supply_in_loss".to_string()), } } } @@ -19372,78 +13067,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_InLoss_Class { impl SeriesTree_Cohorts_Cohorts_Supply_InLoss_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2009_supply_in_loss".to_string(), - ), - _2010: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2010_supply_in_loss".to_string(), - ), - _2011: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2011_supply_in_loss".to_string(), - ), - _2012: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2012_supply_in_loss".to_string(), - ), - _2013: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2013_supply_in_loss".to_string(), - ), - _2014: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2014_supply_in_loss".to_string(), - ), - _2015: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2015_supply_in_loss".to_string(), - ), - _2016: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2016_supply_in_loss".to_string(), - ), - _2017: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2017_supply_in_loss".to_string(), - ), - _2018: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2018_supply_in_loss".to_string(), - ), - _2019: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2019_supply_in_loss".to_string(), - ), - _2020: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2020_supply_in_loss".to_string(), - ), - _2021: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2021_supply_in_loss".to_string(), - ), - _2022: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2022_supply_in_loss".to_string(), - ), - _2023: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2023_supply_in_loss".to_string(), - ), - _2024: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2024_supply_in_loss".to_string(), - ), - _2025: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2025_supply_in_loss".to_string(), - ), - _2026: BtcCentsSatsUsdPattern::new( - client.clone(), - "class_2026_supply_in_loss".to_string(), - ), + _2009: BtcCentsSatsUsdPattern::new(client.clone(), "class_2009_supply_in_loss".to_string()), + _2010: BtcCentsSatsUsdPattern::new(client.clone(), "class_2010_supply_in_loss".to_string()), + _2011: BtcCentsSatsUsdPattern::new(client.clone(), "class_2011_supply_in_loss".to_string()), + _2012: BtcCentsSatsUsdPattern::new(client.clone(), "class_2012_supply_in_loss".to_string()), + _2013: BtcCentsSatsUsdPattern::new(client.clone(), "class_2013_supply_in_loss".to_string()), + _2014: BtcCentsSatsUsdPattern::new(client.clone(), "class_2014_supply_in_loss".to_string()), + _2015: BtcCentsSatsUsdPattern::new(client.clone(), "class_2015_supply_in_loss".to_string()), + _2016: BtcCentsSatsUsdPattern::new(client.clone(), "class_2016_supply_in_loss".to_string()), + _2017: BtcCentsSatsUsdPattern::new(client.clone(), "class_2017_supply_in_loss".to_string()), + _2018: BtcCentsSatsUsdPattern::new(client.clone(), "class_2018_supply_in_loss".to_string()), + _2019: BtcCentsSatsUsdPattern::new(client.clone(), "class_2019_supply_in_loss".to_string()), + _2020: BtcCentsSatsUsdPattern::new(client.clone(), "class_2020_supply_in_loss".to_string()), + _2021: BtcCentsSatsUsdPattern::new(client.clone(), "class_2021_supply_in_loss".to_string()), + _2022: BtcCentsSatsUsdPattern::new(client.clone(), "class_2022_supply_in_loss".to_string()), + _2023: BtcCentsSatsUsdPattern::new(client.clone(), "class_2023_supply_in_loss".to_string()), + _2024: BtcCentsSatsUsdPattern::new(client.clone(), "class_2024_supply_in_loss".to_string()), + _2025: BtcCentsSatsUsdPattern::new(client.clone(), "class_2025_supply_in_loss".to_string()), + _2026: BtcCentsSatsUsdPattern::new(client.clone(), "class_2026_supply_in_loss".to_string()), } } } @@ -19465,31 +13106,13 @@ impl SeriesTree_Cohorts_Cohorts_Supply_Delta { pub fn new(client: Arc, base_path: String) -> Self { Self { all: AbsoluteRatePattern2::new(client.clone(), "supply_delta".to_string()), - age: SeriesTree_Cohorts_Cohorts_Supply_Delta_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Supply_Delta_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Supply_Delta_Class::new( - client.clone(), - format!("{base_path}_class"), - ), - entry: SeriesTree_Cohorts_Cohorts_Supply_Delta_Entry::new( - client.clone(), - format!("{base_path}_entry"), - ), + age: SeriesTree_Cohorts_Cohorts_Supply_Delta_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Supply_Delta_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Supply_Delta_Class::new(client.clone(), format!("{base_path}_class")), + entry: SeriesTree_Cohorts_Cohorts_Supply_Delta_Entry::new(client.clone(), format!("{base_path}_entry")), utxo_amount: OverRangeUnderPattern17::new(client.clone(), "utxos".to_string()), - term: SeriesTree_Cohorts_Cohorts_Supply_Delta_Term::new( - client.clone(), - format!("{base_path}_term"), - ), - type_: SeriesTree_Cohorts_Cohorts_Supply_Delta_Type::new( - client.clone(), - format!("{base_path}_type"), - ), + term: SeriesTree_Cohorts_Cohorts_Supply_Delta_Term::new(client.clone(), format!("{base_path}_term")), + type_: SeriesTree_Cohorts_Cohorts_Supply_Delta_Type::new(client.clone(), format!("{base_path}_type")), addr_balance: OverRangeUnderPattern17::new(client.clone(), "addrs".to_string()), } } @@ -19505,18 +13128,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Delta_Age { impl SeriesTree_Cohorts_Cohorts_Supply_Delta_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -19551,98 +13165,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Range { impl SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_1h_old_supply_delta".to_string(), - ), - _1h_to_1d: AbsoluteRatePattern2::new( - client.clone(), - "utxos_1h_to_1d_old_supply_delta".to_string(), - ), - _1d_to_1w: AbsoluteRatePattern2::new( - client.clone(), - "utxos_1d_to_1w_old_supply_delta".to_string(), - ), - _1w_to_1m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_1w_to_1m_old_supply_delta".to_string(), - ), - _1m_to_2m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_1m_to_2m_old_supply_delta".to_string(), - ), - _2m_to_3m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_2m_to_3m_old_supply_delta".to_string(), - ), - _3m_to_4m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_3m_to_4m_old_supply_delta".to_string(), - ), - _4m_to_5m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_4m_to_5m_old_supply_delta".to_string(), - ), - _5m_to_6m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_5m_to_6m_old_supply_delta".to_string(), - ), - _6m_to_9m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_6m_to_9m_old_supply_delta".to_string(), - ), - _9m_to_1y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_9m_to_1y_old_supply_delta".to_string(), - ), - _1y_to_18m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_1y_to_18m_old_supply_delta".to_string(), - ), - _18m_to_2y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_18m_to_2y_old_supply_delta".to_string(), - ), - _2y_to_3y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_2y_to_3y_old_supply_delta".to_string(), - ), - _3y_to_4y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_3y_to_4y_old_supply_delta".to_string(), - ), - _4y_to_5y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_4y_to_5y_old_supply_delta".to_string(), - ), - _5y_to_6y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_5y_to_6y_old_supply_delta".to_string(), - ), - _6y_to_7y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_6y_to_7y_old_supply_delta".to_string(), - ), - _7y_to_8y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_7y_to_8y_old_supply_delta".to_string(), - ), - _8y_to_10y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_8y_to_10y_old_supply_delta".to_string(), - ), - _10y_to_12y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_10y_to_12y_old_supply_delta".to_string(), - ), - _12y_to_15y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_12y_to_15y_old_supply_delta".to_string(), - ), - over_15y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_15y_old_supply_delta".to_string(), - ), + under_1h: AbsoluteRatePattern2::new(client.clone(), "utxos_under_1h_old_supply_delta".to_string()), + _1h_to_1d: AbsoluteRatePattern2::new(client.clone(), "utxos_1h_to_1d_old_supply_delta".to_string()), + _1d_to_1w: AbsoluteRatePattern2::new(client.clone(), "utxos_1d_to_1w_old_supply_delta".to_string()), + _1w_to_1m: AbsoluteRatePattern2::new(client.clone(), "utxos_1w_to_1m_old_supply_delta".to_string()), + _1m_to_2m: AbsoluteRatePattern2::new(client.clone(), "utxos_1m_to_2m_old_supply_delta".to_string()), + _2m_to_3m: AbsoluteRatePattern2::new(client.clone(), "utxos_2m_to_3m_old_supply_delta".to_string()), + _3m_to_4m: AbsoluteRatePattern2::new(client.clone(), "utxos_3m_to_4m_old_supply_delta".to_string()), + _4m_to_5m: AbsoluteRatePattern2::new(client.clone(), "utxos_4m_to_5m_old_supply_delta".to_string()), + _5m_to_6m: AbsoluteRatePattern2::new(client.clone(), "utxos_5m_to_6m_old_supply_delta".to_string()), + _6m_to_9m: AbsoluteRatePattern2::new(client.clone(), "utxos_6m_to_9m_old_supply_delta".to_string()), + _9m_to_1y: AbsoluteRatePattern2::new(client.clone(), "utxos_9m_to_1y_old_supply_delta".to_string()), + _1y_to_18m: AbsoluteRatePattern2::new(client.clone(), "utxos_1y_to_18m_old_supply_delta".to_string()), + _18m_to_2y: AbsoluteRatePattern2::new(client.clone(), "utxos_18m_to_2y_old_supply_delta".to_string()), + _2y_to_3y: AbsoluteRatePattern2::new(client.clone(), "utxos_2y_to_3y_old_supply_delta".to_string()), + _3y_to_4y: AbsoluteRatePattern2::new(client.clone(), "utxos_3y_to_4y_old_supply_delta".to_string()), + _4y_to_5y: AbsoluteRatePattern2::new(client.clone(), "utxos_4y_to_5y_old_supply_delta".to_string()), + _5y_to_6y: AbsoluteRatePattern2::new(client.clone(), "utxos_5y_to_6y_old_supply_delta".to_string()), + _6y_to_7y: AbsoluteRatePattern2::new(client.clone(), "utxos_6y_to_7y_old_supply_delta".to_string()), + _7y_to_8y: AbsoluteRatePattern2::new(client.clone(), "utxos_7y_to_8y_old_supply_delta".to_string()), + _8y_to_10y: AbsoluteRatePattern2::new(client.clone(), "utxos_8y_to_10y_old_supply_delta".to_string()), + _10y_to_12y: AbsoluteRatePattern2::new(client.clone(), "utxos_10y_to_12y_old_supply_delta".to_string()), + _12y_to_15y: AbsoluteRatePattern2::new(client.clone(), "utxos_12y_to_15y_old_supply_delta".to_string()), + over_15y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_15y_old_supply_delta".to_string()), } } } @@ -19674,86 +13219,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Under { impl SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_1w_old_supply_delta".to_string(), - ), - _1m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_1m_old_supply_delta".to_string(), - ), - _2m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_2m_old_supply_delta".to_string(), - ), - _3m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_3m_old_supply_delta".to_string(), - ), - _4m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_4m_old_supply_delta".to_string(), - ), - _5m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_5m_old_supply_delta".to_string(), - ), - _6m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_6m_old_supply_delta".to_string(), - ), - _9m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_9m_old_supply_delta".to_string(), - ), - _1y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_1y_old_supply_delta".to_string(), - ), - _18m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_18m_old_supply_delta".to_string(), - ), - _2y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_2y_old_supply_delta".to_string(), - ), - _3y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_3y_old_supply_delta".to_string(), - ), - _4y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_4y_old_supply_delta".to_string(), - ), - _5y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_5y_old_supply_delta".to_string(), - ), - _6y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_6y_old_supply_delta".to_string(), - ), - _7y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_7y_old_supply_delta".to_string(), - ), - _8y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_8y_old_supply_delta".to_string(), - ), - _10y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_10y_old_supply_delta".to_string(), - ), - _12y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_12y_old_supply_delta".to_string(), - ), - _15y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_under_15y_old_supply_delta".to_string(), - ), + _1w: AbsoluteRatePattern2::new(client.clone(), "utxos_under_1w_old_supply_delta".to_string()), + _1m: AbsoluteRatePattern2::new(client.clone(), "utxos_under_1m_old_supply_delta".to_string()), + _2m: AbsoluteRatePattern2::new(client.clone(), "utxos_under_2m_old_supply_delta".to_string()), + _3m: AbsoluteRatePattern2::new(client.clone(), "utxos_under_3m_old_supply_delta".to_string()), + _4m: AbsoluteRatePattern2::new(client.clone(), "utxos_under_4m_old_supply_delta".to_string()), + _5m: AbsoluteRatePattern2::new(client.clone(), "utxos_under_5m_old_supply_delta".to_string()), + _6m: AbsoluteRatePattern2::new(client.clone(), "utxos_under_6m_old_supply_delta".to_string()), + _9m: AbsoluteRatePattern2::new(client.clone(), "utxos_under_9m_old_supply_delta".to_string()), + _1y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_1y_old_supply_delta".to_string()), + _18m: AbsoluteRatePattern2::new(client.clone(), "utxos_under_18m_old_supply_delta".to_string()), + _2y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_2y_old_supply_delta".to_string()), + _3y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_3y_old_supply_delta".to_string()), + _4y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_4y_old_supply_delta".to_string()), + _5y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_5y_old_supply_delta".to_string()), + _6y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_6y_old_supply_delta".to_string()), + _7y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_7y_old_supply_delta".to_string()), + _8y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_8y_old_supply_delta".to_string()), + _10y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_10y_old_supply_delta".to_string()), + _12y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_12y_old_supply_delta".to_string()), + _15y: AbsoluteRatePattern2::new(client.clone(), "utxos_under_15y_old_supply_delta".to_string()), } } } @@ -19785,86 +13270,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Over { impl SeriesTree_Cohorts_Cohorts_Supply_Delta_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_1d_old_supply_delta".to_string(), - ), - _1w: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_1w_old_supply_delta".to_string(), - ), - _1m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_1m_old_supply_delta".to_string(), - ), - _2m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_2m_old_supply_delta".to_string(), - ), - _3m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_3m_old_supply_delta".to_string(), - ), - _4m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_4m_old_supply_delta".to_string(), - ), - _5m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_5m_old_supply_delta".to_string(), - ), - _6m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_6m_old_supply_delta".to_string(), - ), - _9m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_9m_old_supply_delta".to_string(), - ), - _1y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_1y_old_supply_delta".to_string(), - ), - _18m: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_18m_old_supply_delta".to_string(), - ), - _2y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_2y_old_supply_delta".to_string(), - ), - _3y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_3y_old_supply_delta".to_string(), - ), - _4y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_4y_old_supply_delta".to_string(), - ), - _5y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_5y_old_supply_delta".to_string(), - ), - _6y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_6y_old_supply_delta".to_string(), - ), - _7y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_7y_old_supply_delta".to_string(), - ), - _8y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_8y_old_supply_delta".to_string(), - ), - _10y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_10y_old_supply_delta".to_string(), - ), - _12y: AbsoluteRatePattern2::new( - client.clone(), - "utxos_over_12y_old_supply_delta".to_string(), - ), + _1d: AbsoluteRatePattern2::new(client.clone(), "utxos_over_1d_old_supply_delta".to_string()), + _1w: AbsoluteRatePattern2::new(client.clone(), "utxos_over_1w_old_supply_delta".to_string()), + _1m: AbsoluteRatePattern2::new(client.clone(), "utxos_over_1m_old_supply_delta".to_string()), + _2m: AbsoluteRatePattern2::new(client.clone(), "utxos_over_2m_old_supply_delta".to_string()), + _3m: AbsoluteRatePattern2::new(client.clone(), "utxos_over_3m_old_supply_delta".to_string()), + _4m: AbsoluteRatePattern2::new(client.clone(), "utxos_over_4m_old_supply_delta".to_string()), + _5m: AbsoluteRatePattern2::new(client.clone(), "utxos_over_5m_old_supply_delta".to_string()), + _6m: AbsoluteRatePattern2::new(client.clone(), "utxos_over_6m_old_supply_delta".to_string()), + _9m: AbsoluteRatePattern2::new(client.clone(), "utxos_over_9m_old_supply_delta".to_string()), + _1y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_1y_old_supply_delta".to_string()), + _18m: AbsoluteRatePattern2::new(client.clone(), "utxos_over_18m_old_supply_delta".to_string()), + _2y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_2y_old_supply_delta".to_string()), + _3y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_3y_old_supply_delta".to_string()), + _4y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_4y_old_supply_delta".to_string()), + _5y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_5y_old_supply_delta".to_string()), + _6y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_6y_old_supply_delta".to_string()), + _7y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_7y_old_supply_delta".to_string()), + _8y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_8y_old_supply_delta".to_string()), + _10y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_10y_old_supply_delta".to_string()), + _12y: AbsoluteRatePattern2::new(client.clone(), "utxos_over_12y_old_supply_delta".to_string()), } } } @@ -19994,14 +13419,8 @@ impl SeriesTree_Cohorts_Cohorts_Supply_Delta_Type { p2wsh: AbsoluteRatePattern2::new(client.clone(), "p2wsh_supply_delta".to_string()), p2tr: AbsoluteRatePattern2::new(client.clone(), "p2tr_supply_delta".to_string()), p2a: AbsoluteRatePattern2::new(client.clone(), "p2a_supply_delta".to_string()), - unknown: AbsoluteRatePattern2::new( - client.clone(), - "unknown_outputs_supply_delta".to_string(), - ), - empty: AbsoluteRatePattern2::new( - client.clone(), - "empty_outputs_supply_delta".to_string(), - ), + unknown: AbsoluteRatePattern2::new(client.clone(), "unknown_outputs_supply_delta".to_string()), + empty: AbsoluteRatePattern2::new(client.clone(), "empty_outputs_supply_delta".to_string()), } } } @@ -20023,31 +13442,13 @@ impl SeriesTree_Cohorts_Cohorts_Supply_Dominance { pub fn new(client: Arc, base_path: String) -> Self { Self { all: PercentPpmRatioPattern2::new(client.clone(), "supply_dominance".to_string()), - age: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Class::new( - client.clone(), - format!("{base_path}_class"), - ), - entry: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Entry::new( - client.clone(), - format!("{base_path}_entry"), - ), + age: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Class::new(client.clone(), format!("{base_path}_class")), + entry: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Entry::new(client.clone(), format!("{base_path}_entry")), utxo_amount: OverRangeUnderPattern19::new(client.clone(), "utxos".to_string()), - term: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Term::new( - client.clone(), - format!("{base_path}_term"), - ), - type_: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Type::new( - client.clone(), - format!("{base_path}_type"), - ), + term: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Term::new(client.clone(), format!("{base_path}_term")), + type_: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Type::new(client.clone(), format!("{base_path}_type")), addr_balance: OverRangeUnderPattern19::new(client.clone(), "addrs".to_string()), } } @@ -20063,18 +13464,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age { impl SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -20109,98 +13501,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Range { impl SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_1h_old_supply_dominance".to_string(), - ), - _1h_to_1d: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_1h_to_1d_old_supply_dominance".to_string(), - ), - _1d_to_1w: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_1d_to_1w_old_supply_dominance".to_string(), - ), - _1w_to_1m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_1w_to_1m_old_supply_dominance".to_string(), - ), - _1m_to_2m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_1m_to_2m_old_supply_dominance".to_string(), - ), - _2m_to_3m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_2m_to_3m_old_supply_dominance".to_string(), - ), - _3m_to_4m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_3m_to_4m_old_supply_dominance".to_string(), - ), - _4m_to_5m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_4m_to_5m_old_supply_dominance".to_string(), - ), - _5m_to_6m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_5m_to_6m_old_supply_dominance".to_string(), - ), - _6m_to_9m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_6m_to_9m_old_supply_dominance".to_string(), - ), - _9m_to_1y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_9m_to_1y_old_supply_dominance".to_string(), - ), - _1y_to_18m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_1y_to_18m_old_supply_dominance".to_string(), - ), - _18m_to_2y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_18m_to_2y_old_supply_dominance".to_string(), - ), - _2y_to_3y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_2y_to_3y_old_supply_dominance".to_string(), - ), - _3y_to_4y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_3y_to_4y_old_supply_dominance".to_string(), - ), - _4y_to_5y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_4y_to_5y_old_supply_dominance".to_string(), - ), - _5y_to_6y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_5y_to_6y_old_supply_dominance".to_string(), - ), - _6y_to_7y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_6y_to_7y_old_supply_dominance".to_string(), - ), - _7y_to_8y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_7y_to_8y_old_supply_dominance".to_string(), - ), - _8y_to_10y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_8y_to_10y_old_supply_dominance".to_string(), - ), - _10y_to_12y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_10y_to_12y_old_supply_dominance".to_string(), - ), - _12y_to_15y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_12y_to_15y_old_supply_dominance".to_string(), - ), - over_15y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_15y_old_supply_dominance".to_string(), - ), + under_1h: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_1h_old_supply_dominance".to_string()), + _1h_to_1d: PercentPpmRatioPattern2::new(client.clone(), "utxos_1h_to_1d_old_supply_dominance".to_string()), + _1d_to_1w: PercentPpmRatioPattern2::new(client.clone(), "utxos_1d_to_1w_old_supply_dominance".to_string()), + _1w_to_1m: PercentPpmRatioPattern2::new(client.clone(), "utxos_1w_to_1m_old_supply_dominance".to_string()), + _1m_to_2m: PercentPpmRatioPattern2::new(client.clone(), "utxos_1m_to_2m_old_supply_dominance".to_string()), + _2m_to_3m: PercentPpmRatioPattern2::new(client.clone(), "utxos_2m_to_3m_old_supply_dominance".to_string()), + _3m_to_4m: PercentPpmRatioPattern2::new(client.clone(), "utxos_3m_to_4m_old_supply_dominance".to_string()), + _4m_to_5m: PercentPpmRatioPattern2::new(client.clone(), "utxos_4m_to_5m_old_supply_dominance".to_string()), + _5m_to_6m: PercentPpmRatioPattern2::new(client.clone(), "utxos_5m_to_6m_old_supply_dominance".to_string()), + _6m_to_9m: PercentPpmRatioPattern2::new(client.clone(), "utxos_6m_to_9m_old_supply_dominance".to_string()), + _9m_to_1y: PercentPpmRatioPattern2::new(client.clone(), "utxos_9m_to_1y_old_supply_dominance".to_string()), + _1y_to_18m: PercentPpmRatioPattern2::new(client.clone(), "utxos_1y_to_18m_old_supply_dominance".to_string()), + _18m_to_2y: PercentPpmRatioPattern2::new(client.clone(), "utxos_18m_to_2y_old_supply_dominance".to_string()), + _2y_to_3y: PercentPpmRatioPattern2::new(client.clone(), "utxos_2y_to_3y_old_supply_dominance".to_string()), + _3y_to_4y: PercentPpmRatioPattern2::new(client.clone(), "utxos_3y_to_4y_old_supply_dominance".to_string()), + _4y_to_5y: PercentPpmRatioPattern2::new(client.clone(), "utxos_4y_to_5y_old_supply_dominance".to_string()), + _5y_to_6y: PercentPpmRatioPattern2::new(client.clone(), "utxos_5y_to_6y_old_supply_dominance".to_string()), + _6y_to_7y: PercentPpmRatioPattern2::new(client.clone(), "utxos_6y_to_7y_old_supply_dominance".to_string()), + _7y_to_8y: PercentPpmRatioPattern2::new(client.clone(), "utxos_7y_to_8y_old_supply_dominance".to_string()), + _8y_to_10y: PercentPpmRatioPattern2::new(client.clone(), "utxos_8y_to_10y_old_supply_dominance".to_string()), + _10y_to_12y: PercentPpmRatioPattern2::new(client.clone(), "utxos_10y_to_12y_old_supply_dominance".to_string()), + _12y_to_15y: PercentPpmRatioPattern2::new(client.clone(), "utxos_12y_to_15y_old_supply_dominance".to_string()), + over_15y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_15y_old_supply_dominance".to_string()), } } } @@ -20232,86 +13555,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Under { impl SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_1w_old_supply_dominance".to_string(), - ), - _1m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_1m_old_supply_dominance".to_string(), - ), - _2m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_2m_old_supply_dominance".to_string(), - ), - _3m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_3m_old_supply_dominance".to_string(), - ), - _4m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_4m_old_supply_dominance".to_string(), - ), - _5m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_5m_old_supply_dominance".to_string(), - ), - _6m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_6m_old_supply_dominance".to_string(), - ), - _9m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_9m_old_supply_dominance".to_string(), - ), - _1y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_1y_old_supply_dominance".to_string(), - ), - _18m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_18m_old_supply_dominance".to_string(), - ), - _2y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_2y_old_supply_dominance".to_string(), - ), - _3y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_3y_old_supply_dominance".to_string(), - ), - _4y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_4y_old_supply_dominance".to_string(), - ), - _5y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_5y_old_supply_dominance".to_string(), - ), - _6y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_6y_old_supply_dominance".to_string(), - ), - _7y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_7y_old_supply_dominance".to_string(), - ), - _8y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_8y_old_supply_dominance".to_string(), - ), - _10y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_10y_old_supply_dominance".to_string(), - ), - _12y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_12y_old_supply_dominance".to_string(), - ), - _15y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_under_15y_old_supply_dominance".to_string(), - ), + _1w: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_1w_old_supply_dominance".to_string()), + _1m: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_1m_old_supply_dominance".to_string()), + _2m: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_2m_old_supply_dominance".to_string()), + _3m: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_3m_old_supply_dominance".to_string()), + _4m: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_4m_old_supply_dominance".to_string()), + _5m: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_5m_old_supply_dominance".to_string()), + _6m: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_6m_old_supply_dominance".to_string()), + _9m: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_9m_old_supply_dominance".to_string()), + _1y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_1y_old_supply_dominance".to_string()), + _18m: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_18m_old_supply_dominance".to_string()), + _2y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_2y_old_supply_dominance".to_string()), + _3y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_3y_old_supply_dominance".to_string()), + _4y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_4y_old_supply_dominance".to_string()), + _5y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_5y_old_supply_dominance".to_string()), + _6y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_6y_old_supply_dominance".to_string()), + _7y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_7y_old_supply_dominance".to_string()), + _8y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_8y_old_supply_dominance".to_string()), + _10y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_10y_old_supply_dominance".to_string()), + _12y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_12y_old_supply_dominance".to_string()), + _15y: PercentPpmRatioPattern2::new(client.clone(), "utxos_under_15y_old_supply_dominance".to_string()), } } } @@ -20343,86 +13606,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Over { impl SeriesTree_Cohorts_Cohorts_Supply_Dominance_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_1d_old_supply_dominance".to_string(), - ), - _1w: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_1w_old_supply_dominance".to_string(), - ), - _1m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_1m_old_supply_dominance".to_string(), - ), - _2m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_2m_old_supply_dominance".to_string(), - ), - _3m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_3m_old_supply_dominance".to_string(), - ), - _4m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_4m_old_supply_dominance".to_string(), - ), - _5m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_5m_old_supply_dominance".to_string(), - ), - _6m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_6m_old_supply_dominance".to_string(), - ), - _9m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_9m_old_supply_dominance".to_string(), - ), - _1y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_1y_old_supply_dominance".to_string(), - ), - _18m: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_18m_old_supply_dominance".to_string(), - ), - _2y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_2y_old_supply_dominance".to_string(), - ), - _3y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_3y_old_supply_dominance".to_string(), - ), - _4y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_4y_old_supply_dominance".to_string(), - ), - _5y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_5y_old_supply_dominance".to_string(), - ), - _6y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_6y_old_supply_dominance".to_string(), - ), - _7y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_7y_old_supply_dominance".to_string(), - ), - _8y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_8y_old_supply_dominance".to_string(), - ), - _10y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_10y_old_supply_dominance".to_string(), - ), - _12y: PercentPpmRatioPattern2::new( - client.clone(), - "utxos_over_12y_old_supply_dominance".to_string(), - ), + _1d: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_1d_old_supply_dominance".to_string()), + _1w: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_1w_old_supply_dominance".to_string()), + _1m: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_1m_old_supply_dominance".to_string()), + _2m: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_2m_old_supply_dominance".to_string()), + _3m: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_3m_old_supply_dominance".to_string()), + _4m: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_4m_old_supply_dominance".to_string()), + _5m: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_5m_old_supply_dominance".to_string()), + _6m: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_6m_old_supply_dominance".to_string()), + _9m: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_9m_old_supply_dominance".to_string()), + _1y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_1y_old_supply_dominance".to_string()), + _18m: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_18m_old_supply_dominance".to_string()), + _2y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_2y_old_supply_dominance".to_string()), + _3y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_3y_old_supply_dominance".to_string()), + _4y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_4y_old_supply_dominance".to_string()), + _5y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_5y_old_supply_dominance".to_string()), + _6y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_6y_old_supply_dominance".to_string()), + _7y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_7y_old_supply_dominance".to_string()), + _8y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_8y_old_supply_dominance".to_string()), + _10y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_10y_old_supply_dominance".to_string()), + _12y: PercentPpmRatioPattern2::new(client.clone(), "utxos_over_12y_old_supply_dominance".to_string()), } } } @@ -20439,26 +13642,11 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Dominance_Epoch { impl SeriesTree_Cohorts_Cohorts_Supply_Dominance_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: PercentPpmRatioPattern2::new( - client.clone(), - "epoch_0_supply_dominance".to_string(), - ), - _1: PercentPpmRatioPattern2::new( - client.clone(), - "epoch_1_supply_dominance".to_string(), - ), - _2: PercentPpmRatioPattern2::new( - client.clone(), - "epoch_2_supply_dominance".to_string(), - ), - _3: PercentPpmRatioPattern2::new( - client.clone(), - "epoch_3_supply_dominance".to_string(), - ), - _4: PercentPpmRatioPattern2::new( - client.clone(), - "epoch_4_supply_dominance".to_string(), - ), + _0: PercentPpmRatioPattern2::new(client.clone(), "epoch_0_supply_dominance".to_string()), + _1: PercentPpmRatioPattern2::new(client.clone(), "epoch_1_supply_dominance".to_string()), + _2: PercentPpmRatioPattern2::new(client.clone(), "epoch_2_supply_dominance".to_string()), + _3: PercentPpmRatioPattern2::new(client.clone(), "epoch_3_supply_dominance".to_string()), + _4: PercentPpmRatioPattern2::new(client.clone(), "epoch_4_supply_dominance".to_string()), } } } @@ -20488,78 +13676,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Dominance_Class { impl SeriesTree_Cohorts_Cohorts_Supply_Dominance_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: PercentPpmRatioPattern2::new( - client.clone(), - "class_2009_supply_dominance".to_string(), - ), - _2010: PercentPpmRatioPattern2::new( - client.clone(), - "class_2010_supply_dominance".to_string(), - ), - _2011: PercentPpmRatioPattern2::new( - client.clone(), - "class_2011_supply_dominance".to_string(), - ), - _2012: PercentPpmRatioPattern2::new( - client.clone(), - "class_2012_supply_dominance".to_string(), - ), - _2013: PercentPpmRatioPattern2::new( - client.clone(), - "class_2013_supply_dominance".to_string(), - ), - _2014: PercentPpmRatioPattern2::new( - client.clone(), - "class_2014_supply_dominance".to_string(), - ), - _2015: PercentPpmRatioPattern2::new( - client.clone(), - "class_2015_supply_dominance".to_string(), - ), - _2016: PercentPpmRatioPattern2::new( - client.clone(), - "class_2016_supply_dominance".to_string(), - ), - _2017: PercentPpmRatioPattern2::new( - client.clone(), - "class_2017_supply_dominance".to_string(), - ), - _2018: PercentPpmRatioPattern2::new( - client.clone(), - "class_2018_supply_dominance".to_string(), - ), - _2019: PercentPpmRatioPattern2::new( - client.clone(), - "class_2019_supply_dominance".to_string(), - ), - _2020: PercentPpmRatioPattern2::new( - client.clone(), - "class_2020_supply_dominance".to_string(), - ), - _2021: PercentPpmRatioPattern2::new( - client.clone(), - "class_2021_supply_dominance".to_string(), - ), - _2022: PercentPpmRatioPattern2::new( - client.clone(), - "class_2022_supply_dominance".to_string(), - ), - _2023: PercentPpmRatioPattern2::new( - client.clone(), - "class_2023_supply_dominance".to_string(), - ), - _2024: PercentPpmRatioPattern2::new( - client.clone(), - "class_2024_supply_dominance".to_string(), - ), - _2025: PercentPpmRatioPattern2::new( - client.clone(), - "class_2025_supply_dominance".to_string(), - ), - _2026: PercentPpmRatioPattern2::new( - client.clone(), - "class_2026_supply_dominance".to_string(), - ), + _2009: PercentPpmRatioPattern2::new(client.clone(), "class_2009_supply_dominance".to_string()), + _2010: PercentPpmRatioPattern2::new(client.clone(), "class_2010_supply_dominance".to_string()), + _2011: PercentPpmRatioPattern2::new(client.clone(), "class_2011_supply_dominance".to_string()), + _2012: PercentPpmRatioPattern2::new(client.clone(), "class_2012_supply_dominance".to_string()), + _2013: PercentPpmRatioPattern2::new(client.clone(), "class_2013_supply_dominance".to_string()), + _2014: PercentPpmRatioPattern2::new(client.clone(), "class_2014_supply_dominance".to_string()), + _2015: PercentPpmRatioPattern2::new(client.clone(), "class_2015_supply_dominance".to_string()), + _2016: PercentPpmRatioPattern2::new(client.clone(), "class_2016_supply_dominance".to_string()), + _2017: PercentPpmRatioPattern2::new(client.clone(), "class_2017_supply_dominance".to_string()), + _2018: PercentPpmRatioPattern2::new(client.clone(), "class_2018_supply_dominance".to_string()), + _2019: PercentPpmRatioPattern2::new(client.clone(), "class_2019_supply_dominance".to_string()), + _2020: PercentPpmRatioPattern2::new(client.clone(), "class_2020_supply_dominance".to_string()), + _2021: PercentPpmRatioPattern2::new(client.clone(), "class_2021_supply_dominance".to_string()), + _2022: PercentPpmRatioPattern2::new(client.clone(), "class_2022_supply_dominance".to_string()), + _2023: PercentPpmRatioPattern2::new(client.clone(), "class_2023_supply_dominance".to_string()), + _2024: PercentPpmRatioPattern2::new(client.clone(), "class_2024_supply_dominance".to_string()), + _2025: PercentPpmRatioPattern2::new(client.clone(), "class_2025_supply_dominance".to_string()), + _2026: PercentPpmRatioPattern2::new(client.clone(), "class_2026_supply_dominance".to_string()), } } } @@ -20573,14 +13707,8 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Dominance_Entry { impl SeriesTree_Cohorts_Cohorts_Supply_Dominance_Entry { pub fn new(client: Arc, base_path: String) -> Self { Self { - discount: PercentPpmRatioPattern2::new( - client.clone(), - "veteran_supply_dominance".to_string(), - ), - premium: PercentPpmRatioPattern2::new( - client.clone(), - "rookie_supply_dominance".to_string(), - ), + discount: PercentPpmRatioPattern2::new(client.clone(), "veteran_supply_dominance".to_string()), + premium: PercentPpmRatioPattern2::new(client.clone(), "rookie_supply_dominance".to_string()), } } } @@ -20618,38 +13746,17 @@ pub struct SeriesTree_Cohorts_Cohorts_Supply_Dominance_Type { impl SeriesTree_Cohorts_Cohorts_Supply_Dominance_Type { pub fn new(client: Arc, base_path: String) -> Self { Self { - p2pk65: PercentPpmRatioPattern2::new( - client.clone(), - "p2pk65_supply_dominance".to_string(), - ), - p2pk33: PercentPpmRatioPattern2::new( - client.clone(), - "p2pk33_supply_dominance".to_string(), - ), - p2pkh: PercentPpmRatioPattern2::new( - client.clone(), - "p2pkh_supply_dominance".to_string(), - ), + p2pk65: PercentPpmRatioPattern2::new(client.clone(), "p2pk65_supply_dominance".to_string()), + p2pk33: PercentPpmRatioPattern2::new(client.clone(), "p2pk33_supply_dominance".to_string()), + p2pkh: PercentPpmRatioPattern2::new(client.clone(), "p2pkh_supply_dominance".to_string()), p2ms: PercentPpmRatioPattern2::new(client.clone(), "p2ms_supply_dominance".to_string()), p2sh: PercentPpmRatioPattern2::new(client.clone(), "p2sh_supply_dominance".to_string()), - p2wpkh: PercentPpmRatioPattern2::new( - client.clone(), - "p2wpkh_supply_dominance".to_string(), - ), - p2wsh: PercentPpmRatioPattern2::new( - client.clone(), - "p2wsh_supply_dominance".to_string(), - ), + p2wpkh: PercentPpmRatioPattern2::new(client.clone(), "p2wpkh_supply_dominance".to_string()), + p2wsh: PercentPpmRatioPattern2::new(client.clone(), "p2wsh_supply_dominance".to_string()), p2tr: PercentPpmRatioPattern2::new(client.clone(), "p2tr_supply_dominance".to_string()), p2a: PercentPpmRatioPattern2::new(client.clone(), "p2a_supply_dominance".to_string()), - unknown: PercentPpmRatioPattern2::new( - client.clone(), - "unknown_outputs_supply_dominance".to_string(), - ), - empty: PercentPpmRatioPattern2::new( - client.clone(), - "empty_outputs_supply_dominance".to_string(), - ), + unknown: PercentPpmRatioPattern2::new(client.clone(), "unknown_outputs_supply_dominance".to_string()), + empty: PercentPpmRatioPattern2::new(client.clone(), "empty_outputs_supply_dominance".to_string()), } } } @@ -20663,14 +13770,8 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs { impl SeriesTree_Cohorts_Cohorts_Outputs { pub fn new(client: Arc, base_path: String) -> Self { Self { - unspent_count: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount::new( - client.clone(), - format!("{base_path}_unspent_count"), - ), - spent_count: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount::new( - client.clone(), - format!("{base_path}_spent_count"), - ), + unspent_count: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount::new(client.clone(), format!("{base_path}_unspent_count")), + spent_count: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount::new(client.clone(), format!("{base_path}_spent_count")), } } } @@ -20698,50 +13799,20 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BaseDeltaPattern::new(client.clone(), "utxo_count".to_string()), - age: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Class::new( - client.clone(), - format!("{base_path}_class"), - ), - entry: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Entry::new( - client.clone(), - format!("{base_path}_entry"), - ), - utxo_amount: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), - term: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Term::new( - client.clone(), - format!("{base_path}_term"), - ), - type_: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Type::new( - client.clone(), - format!("{base_path}_type"), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_utxo_count_by_age_range".to_string(), - ), + age: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Class::new(client.clone(), format!("{base_path}_class")), + entry: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Entry::new(client.clone(), format!("{base_path}_entry")), + utxo_amount: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), + term: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Term::new(client.clone(), format!("{base_path}_term")), + type_: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Type::new(client.clone(), format!("{base_path}_type")), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_utxo_count_by_age_range".to_string()), epoch_matrix: SeriesPattern18::new(client.clone(), "utxo_count_by_epoch".to_string()), class_matrix: SeriesPattern18::new(client.clone(), "utxo_count_by_class".to_string()), entry_matrix: SeriesPattern18::new(client.clone(), "utxo_count_by_entry".to_string()), type_matrix: SeriesPattern18::new(client.clone(), "utxo_count_by_type".to_string()), - amount_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_utxo_count_by_amount_range".to_string(), - ), - addr_balance: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance::new( - client.clone(), - format!("{base_path}_addr_balance"), - ), + amount_range_matrix: SeriesPattern18::new(client.clone(), "utxos_utxo_count_by_amount_range".to_string()), + addr_balance: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance::new(client.clone(), format!("{base_path}_addr_balance")), } } } @@ -20756,18 +13827,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age { impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -20802,98 +13864,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Range { impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BaseDeltaPattern::new( - client.clone(), - "utxos_under_1h_old_utxo_count".to_string(), - ), - _1h_to_1d: BaseDeltaPattern::new( - client.clone(), - "utxos_1h_to_1d_old_utxo_count".to_string(), - ), - _1d_to_1w: BaseDeltaPattern::new( - client.clone(), - "utxos_1d_to_1w_old_utxo_count".to_string(), - ), - _1w_to_1m: BaseDeltaPattern::new( - client.clone(), - "utxos_1w_to_1m_old_utxo_count".to_string(), - ), - _1m_to_2m: BaseDeltaPattern::new( - client.clone(), - "utxos_1m_to_2m_old_utxo_count".to_string(), - ), - _2m_to_3m: BaseDeltaPattern::new( - client.clone(), - "utxos_2m_to_3m_old_utxo_count".to_string(), - ), - _3m_to_4m: BaseDeltaPattern::new( - client.clone(), - "utxos_3m_to_4m_old_utxo_count".to_string(), - ), - _4m_to_5m: BaseDeltaPattern::new( - client.clone(), - "utxos_4m_to_5m_old_utxo_count".to_string(), - ), - _5m_to_6m: BaseDeltaPattern::new( - client.clone(), - "utxos_5m_to_6m_old_utxo_count".to_string(), - ), - _6m_to_9m: BaseDeltaPattern::new( - client.clone(), - "utxos_6m_to_9m_old_utxo_count".to_string(), - ), - _9m_to_1y: BaseDeltaPattern::new( - client.clone(), - "utxos_9m_to_1y_old_utxo_count".to_string(), - ), - _1y_to_18m: BaseDeltaPattern::new( - client.clone(), - "utxos_1y_to_18m_old_utxo_count".to_string(), - ), - _18m_to_2y: BaseDeltaPattern::new( - client.clone(), - "utxos_18m_to_2y_old_utxo_count".to_string(), - ), - _2y_to_3y: BaseDeltaPattern::new( - client.clone(), - "utxos_2y_to_3y_old_utxo_count".to_string(), - ), - _3y_to_4y: BaseDeltaPattern::new( - client.clone(), - "utxos_3y_to_4y_old_utxo_count".to_string(), - ), - _4y_to_5y: BaseDeltaPattern::new( - client.clone(), - "utxos_4y_to_5y_old_utxo_count".to_string(), - ), - _5y_to_6y: BaseDeltaPattern::new( - client.clone(), - "utxos_5y_to_6y_old_utxo_count".to_string(), - ), - _6y_to_7y: BaseDeltaPattern::new( - client.clone(), - "utxos_6y_to_7y_old_utxo_count".to_string(), - ), - _7y_to_8y: BaseDeltaPattern::new( - client.clone(), - "utxos_7y_to_8y_old_utxo_count".to_string(), - ), - _8y_to_10y: BaseDeltaPattern::new( - client.clone(), - "utxos_8y_to_10y_old_utxo_count".to_string(), - ), - _10y_to_12y: BaseDeltaPattern::new( - client.clone(), - "utxos_10y_to_12y_old_utxo_count".to_string(), - ), - _12y_to_15y: BaseDeltaPattern::new( - client.clone(), - "utxos_12y_to_15y_old_utxo_count".to_string(), - ), - over_15y: BaseDeltaPattern::new( - client.clone(), - "utxos_over_15y_old_utxo_count".to_string(), - ), + under_1h: BaseDeltaPattern::new(client.clone(), "utxos_under_1h_old_utxo_count".to_string()), + _1h_to_1d: BaseDeltaPattern::new(client.clone(), "utxos_1h_to_1d_old_utxo_count".to_string()), + _1d_to_1w: BaseDeltaPattern::new(client.clone(), "utxos_1d_to_1w_old_utxo_count".to_string()), + _1w_to_1m: BaseDeltaPattern::new(client.clone(), "utxos_1w_to_1m_old_utxo_count".to_string()), + _1m_to_2m: BaseDeltaPattern::new(client.clone(), "utxos_1m_to_2m_old_utxo_count".to_string()), + _2m_to_3m: BaseDeltaPattern::new(client.clone(), "utxos_2m_to_3m_old_utxo_count".to_string()), + _3m_to_4m: BaseDeltaPattern::new(client.clone(), "utxos_3m_to_4m_old_utxo_count".to_string()), + _4m_to_5m: BaseDeltaPattern::new(client.clone(), "utxos_4m_to_5m_old_utxo_count".to_string()), + _5m_to_6m: BaseDeltaPattern::new(client.clone(), "utxos_5m_to_6m_old_utxo_count".to_string()), + _6m_to_9m: BaseDeltaPattern::new(client.clone(), "utxos_6m_to_9m_old_utxo_count".to_string()), + _9m_to_1y: BaseDeltaPattern::new(client.clone(), "utxos_9m_to_1y_old_utxo_count".to_string()), + _1y_to_18m: BaseDeltaPattern::new(client.clone(), "utxos_1y_to_18m_old_utxo_count".to_string()), + _18m_to_2y: BaseDeltaPattern::new(client.clone(), "utxos_18m_to_2y_old_utxo_count".to_string()), + _2y_to_3y: BaseDeltaPattern::new(client.clone(), "utxos_2y_to_3y_old_utxo_count".to_string()), + _3y_to_4y: BaseDeltaPattern::new(client.clone(), "utxos_3y_to_4y_old_utxo_count".to_string()), + _4y_to_5y: BaseDeltaPattern::new(client.clone(), "utxos_4y_to_5y_old_utxo_count".to_string()), + _5y_to_6y: BaseDeltaPattern::new(client.clone(), "utxos_5y_to_6y_old_utxo_count".to_string()), + _6y_to_7y: BaseDeltaPattern::new(client.clone(), "utxos_6y_to_7y_old_utxo_count".to_string()), + _7y_to_8y: BaseDeltaPattern::new(client.clone(), "utxos_7y_to_8y_old_utxo_count".to_string()), + _8y_to_10y: BaseDeltaPattern::new(client.clone(), "utxos_8y_to_10y_old_utxo_count".to_string()), + _10y_to_12y: BaseDeltaPattern::new(client.clone(), "utxos_10y_to_12y_old_utxo_count".to_string()), + _12y_to_15y: BaseDeltaPattern::new(client.clone(), "utxos_12y_to_15y_old_utxo_count".to_string()), + over_15y: BaseDeltaPattern::new(client.clone(), "utxos_over_15y_old_utxo_count".to_string()), } } } @@ -20934,10 +13927,7 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Under { _6m: BaseDeltaPattern::new(client.clone(), "utxos_under_6m_old_utxo_count".to_string()), _9m: BaseDeltaPattern::new(client.clone(), "utxos_under_9m_old_utxo_count".to_string()), _1y: BaseDeltaPattern::new(client.clone(), "utxos_under_1y_old_utxo_count".to_string()), - _18m: BaseDeltaPattern::new( - client.clone(), - "utxos_under_18m_old_utxo_count".to_string(), - ), + _18m: BaseDeltaPattern::new(client.clone(), "utxos_under_18m_old_utxo_count".to_string()), _2y: BaseDeltaPattern::new(client.clone(), "utxos_under_2y_old_utxo_count".to_string()), _3y: BaseDeltaPattern::new(client.clone(), "utxos_under_3y_old_utxo_count".to_string()), _4y: BaseDeltaPattern::new(client.clone(), "utxos_under_4y_old_utxo_count".to_string()), @@ -20945,18 +13935,9 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Under { _6y: BaseDeltaPattern::new(client.clone(), "utxos_under_6y_old_utxo_count".to_string()), _7y: BaseDeltaPattern::new(client.clone(), "utxos_under_7y_old_utxo_count".to_string()), _8y: BaseDeltaPattern::new(client.clone(), "utxos_under_8y_old_utxo_count".to_string()), - _10y: BaseDeltaPattern::new( - client.clone(), - "utxos_under_10y_old_utxo_count".to_string(), - ), - _12y: BaseDeltaPattern::new( - client.clone(), - "utxos_under_12y_old_utxo_count".to_string(), - ), - _15y: BaseDeltaPattern::new( - client.clone(), - "utxos_under_15y_old_utxo_count".to_string(), - ), + _10y: BaseDeltaPattern::new(client.clone(), "utxos_under_10y_old_utxo_count".to_string()), + _12y: BaseDeltaPattern::new(client.clone(), "utxos_under_12y_old_utxo_count".to_string()), + _15y: BaseDeltaPattern::new(client.clone(), "utxos_under_15y_old_utxo_count".to_string()), } } } @@ -20998,10 +13979,7 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Over { _6m: BaseDeltaPattern::new(client.clone(), "utxos_over_6m_old_utxo_count".to_string()), _9m: BaseDeltaPattern::new(client.clone(), "utxos_over_9m_old_utxo_count".to_string()), _1y: BaseDeltaPattern::new(client.clone(), "utxos_over_1y_old_utxo_count".to_string()), - _18m: BaseDeltaPattern::new( - client.clone(), - "utxos_over_18m_old_utxo_count".to_string(), - ), + _18m: BaseDeltaPattern::new(client.clone(), "utxos_over_18m_old_utxo_count".to_string()), _2y: BaseDeltaPattern::new(client.clone(), "utxos_over_2y_old_utxo_count".to_string()), _3y: BaseDeltaPattern::new(client.clone(), "utxos_over_3y_old_utxo_count".to_string()), _4y: BaseDeltaPattern::new(client.clone(), "utxos_over_4y_old_utxo_count".to_string()), @@ -21009,14 +13987,8 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Age_Over { _6y: BaseDeltaPattern::new(client.clone(), "utxos_over_6y_old_utxo_count".to_string()), _7y: BaseDeltaPattern::new(client.clone(), "utxos_over_7y_old_utxo_count".to_string()), _8y: BaseDeltaPattern::new(client.clone(), "utxos_over_8y_old_utxo_count".to_string()), - _10y: BaseDeltaPattern::new( - client.clone(), - "utxos_over_10y_old_utxo_count".to_string(), - ), - _12y: BaseDeltaPattern::new( - client.clone(), - "utxos_over_12y_old_utxo_count".to_string(), - ), + _10y: BaseDeltaPattern::new(client.clone(), "utxos_over_10y_old_utxo_count".to_string()), + _12y: BaseDeltaPattern::new(client.clone(), "utxos_over_12y_old_utxo_count".to_string()), } } } @@ -21114,18 +14086,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -21153,62 +14116,20 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { _0sats: BaseDeltaPattern::new(client.clone(), "utxos_0sats_utxo_count".to_string()), - _1sat_to_10sats: BaseDeltaPattern::new( - client.clone(), - "utxos_1sat_to_10sats_utxo_count".to_string(), - ), - _10sats_to_100sats: BaseDeltaPattern::new( - client.clone(), - "utxos_10sats_to_100sats_utxo_count".to_string(), - ), - _100sats_to_1k_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_100sats_to_1k_sats_utxo_count".to_string(), - ), - _1k_sats_to_10k_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_1k_sats_to_10k_sats_utxo_count".to_string(), - ), - _10k_sats_to_100k_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_10k_sats_to_100k_sats_utxo_count".to_string(), - ), - _100k_sats_to_1m_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_100k_sats_to_1m_sats_utxo_count".to_string(), - ), - _1m_sats_to_10m_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_1m_sats_to_10m_sats_utxo_count".to_string(), - ), - _10m_sats_to_1btc: BaseDeltaPattern::new( - client.clone(), - "utxos_10m_sats_to_1btc_utxo_count".to_string(), - ), - _1btc_to_10btc: BaseDeltaPattern::new( - client.clone(), - "utxos_1btc_to_10btc_utxo_count".to_string(), - ), - _10btc_to_100btc: BaseDeltaPattern::new( - client.clone(), - "utxos_10btc_to_100btc_utxo_count".to_string(), - ), - _100btc_to_1k_btc: BaseDeltaPattern::new( - client.clone(), - "utxos_100btc_to_1k_btc_utxo_count".to_string(), - ), - _1k_btc_to_10k_btc: BaseDeltaPattern::new( - client.clone(), - "utxos_1k_btc_to_10k_btc_utxo_count".to_string(), - ), - _10k_btc_to_100k_btc: BaseDeltaPattern::new( - client.clone(), - "utxos_10k_btc_to_100k_btc_utxo_count".to_string(), - ), - over_100k_btc: BaseDeltaPattern::new( - client.clone(), - "utxos_over_100k_btc_utxo_count".to_string(), - ), + _1sat_to_10sats: BaseDeltaPattern::new(client.clone(), "utxos_1sat_to_10sats_utxo_count".to_string()), + _10sats_to_100sats: BaseDeltaPattern::new(client.clone(), "utxos_10sats_to_100sats_utxo_count".to_string()), + _100sats_to_1k_sats: BaseDeltaPattern::new(client.clone(), "utxos_100sats_to_1k_sats_utxo_count".to_string()), + _1k_sats_to_10k_sats: BaseDeltaPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_utxo_count".to_string()), + _10k_sats_to_100k_sats: BaseDeltaPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_utxo_count".to_string()), + _100k_sats_to_1m_sats: BaseDeltaPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_utxo_count".to_string()), + _1m_sats_to_10m_sats: BaseDeltaPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_utxo_count".to_string()), + _10m_sats_to_1btc: BaseDeltaPattern::new(client.clone(), "utxos_10m_sats_to_1btc_utxo_count".to_string()), + _1btc_to_10btc: BaseDeltaPattern::new(client.clone(), "utxos_1btc_to_10btc_utxo_count".to_string()), + _10btc_to_100btc: BaseDeltaPattern::new(client.clone(), "utxos_10btc_to_100btc_utxo_count".to_string()), + _100btc_to_1k_btc: BaseDeltaPattern::new(client.clone(), "utxos_100btc_to_1k_btc_utxo_count".to_string()), + _1k_btc_to_10k_btc: BaseDeltaPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_utxo_count".to_string()), + _10k_btc_to_100k_btc: BaseDeltaPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_utxo_count".to_string()), + over_100k_btc: BaseDeltaPattern::new(client.clone(), "utxos_over_100k_btc_utxo_count".to_string()), } } } @@ -21233,55 +14154,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Under { impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: BaseDeltaPattern::new( - client.clone(), - "utxos_under_10sats_utxo_count".to_string(), - ), - _100sats: BaseDeltaPattern::new( - client.clone(), - "utxos_under_100sats_utxo_count".to_string(), - ), - _1k_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_under_1k_sats_utxo_count".to_string(), - ), - _10k_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_under_10k_sats_utxo_count".to_string(), - ), - _100k_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_under_100k_sats_utxo_count".to_string(), - ), - _1m_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_under_1m_sats_utxo_count".to_string(), - ), - _10m_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_under_10m_sats_utxo_count".to_string(), - ), + _10sats: BaseDeltaPattern::new(client.clone(), "utxos_under_10sats_utxo_count".to_string()), + _100sats: BaseDeltaPattern::new(client.clone(), "utxos_under_100sats_utxo_count".to_string()), + _1k_sats: BaseDeltaPattern::new(client.clone(), "utxos_under_1k_sats_utxo_count".to_string()), + _10k_sats: BaseDeltaPattern::new(client.clone(), "utxos_under_10k_sats_utxo_count".to_string()), + _100k_sats: BaseDeltaPattern::new(client.clone(), "utxos_under_100k_sats_utxo_count".to_string()), + _1m_sats: BaseDeltaPattern::new(client.clone(), "utxos_under_1m_sats_utxo_count".to_string()), + _10m_sats: BaseDeltaPattern::new(client.clone(), "utxos_under_10m_sats_utxo_count".to_string()), _1btc: BaseDeltaPattern::new(client.clone(), "utxos_under_1btc_utxo_count".to_string()), - _10btc: BaseDeltaPattern::new( - client.clone(), - "utxos_under_10btc_utxo_count".to_string(), - ), - _100btc: BaseDeltaPattern::new( - client.clone(), - "utxos_under_100btc_utxo_count".to_string(), - ), - _1k_btc: BaseDeltaPattern::new( - client.clone(), - "utxos_under_1k_btc_utxo_count".to_string(), - ), - _10k_btc: BaseDeltaPattern::new( - client.clone(), - "utxos_under_10k_btc_utxo_count".to_string(), - ), - _100k_btc: BaseDeltaPattern::new( - client.clone(), - "utxos_under_100k_btc_utxo_count".to_string(), - ), + _10btc: BaseDeltaPattern::new(client.clone(), "utxos_under_10btc_utxo_count".to_string()), + _100btc: BaseDeltaPattern::new(client.clone(), "utxos_under_100btc_utxo_count".to_string()), + _1k_btc: BaseDeltaPattern::new(client.clone(), "utxos_under_1k_btc_utxo_count".to_string()), + _10k_btc: BaseDeltaPattern::new(client.clone(), "utxos_under_10k_btc_utxo_count".to_string()), + _100k_btc: BaseDeltaPattern::new(client.clone(), "utxos_under_100k_btc_utxo_count".to_string()), } } } @@ -21307,51 +14192,18 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_UtxoAmount_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { _1sat: BaseDeltaPattern::new(client.clone(), "utxos_over_1sat_utxo_count".to_string()), - _10sats: BaseDeltaPattern::new( - client.clone(), - "utxos_over_10sats_utxo_count".to_string(), - ), - _100sats: BaseDeltaPattern::new( - client.clone(), - "utxos_over_100sats_utxo_count".to_string(), - ), - _1k_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_over_1k_sats_utxo_count".to_string(), - ), - _10k_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_over_10k_sats_utxo_count".to_string(), - ), - _100k_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_over_100k_sats_utxo_count".to_string(), - ), - _1m_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_over_1m_sats_utxo_count".to_string(), - ), - _10m_sats: BaseDeltaPattern::new( - client.clone(), - "utxos_over_10m_sats_utxo_count".to_string(), - ), + _10sats: BaseDeltaPattern::new(client.clone(), "utxos_over_10sats_utxo_count".to_string()), + _100sats: BaseDeltaPattern::new(client.clone(), "utxos_over_100sats_utxo_count".to_string()), + _1k_sats: BaseDeltaPattern::new(client.clone(), "utxos_over_1k_sats_utxo_count".to_string()), + _10k_sats: BaseDeltaPattern::new(client.clone(), "utxos_over_10k_sats_utxo_count".to_string()), + _100k_sats: BaseDeltaPattern::new(client.clone(), "utxos_over_100k_sats_utxo_count".to_string()), + _1m_sats: BaseDeltaPattern::new(client.clone(), "utxos_over_1m_sats_utxo_count".to_string()), + _10m_sats: BaseDeltaPattern::new(client.clone(), "utxos_over_10m_sats_utxo_count".to_string()), _1btc: BaseDeltaPattern::new(client.clone(), "utxos_over_1btc_utxo_count".to_string()), - _10btc: BaseDeltaPattern::new( - client.clone(), - "utxos_over_10btc_utxo_count".to_string(), - ), - _100btc: BaseDeltaPattern::new( - client.clone(), - "utxos_over_100btc_utxo_count".to_string(), - ), - _1k_btc: BaseDeltaPattern::new( - client.clone(), - "utxos_over_1k_btc_utxo_count".to_string(), - ), - _10k_btc: BaseDeltaPattern::new( - client.clone(), - "utxos_over_10k_btc_utxo_count".to_string(), - ), + _10btc: BaseDeltaPattern::new(client.clone(), "utxos_over_10btc_utxo_count".to_string()), + _100btc: BaseDeltaPattern::new(client.clone(), "utxos_over_100btc_utxo_count".to_string()), + _1k_btc: BaseDeltaPattern::new(client.clone(), "utxos_over_1k_btc_utxo_count".to_string()), + _10k_btc: BaseDeltaPattern::new(client.clone(), "utxos_over_10k_btc_utxo_count".to_string()), } } } @@ -21398,10 +14250,7 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_Type { p2wsh: BaseDeltaPattern::new(client.clone(), "p2wsh_utxo_count".to_string()), p2tr: BaseDeltaPattern::new(client.clone(), "p2tr_utxo_count".to_string()), p2a: BaseDeltaPattern::new(client.clone(), "p2a_utxo_count".to_string()), - unknown: BaseDeltaPattern::new( - client.clone(), - "unknown_outputs_utxo_count".to_string(), - ), + unknown: BaseDeltaPattern::new(client.clone(), "unknown_outputs_utxo_count".to_string()), empty: BaseDeltaPattern::new(client.clone(), "empty_outputs_utxo_count".to_string()), } } @@ -21418,22 +14267,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance { impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Over::new( - client.clone(), - format!("{base_path}_over"), - ), - matrix: SeriesPattern18::new( - client.clone(), - "addrs_utxo_count_by_balance_range".to_string(), - ), + range: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Over::new(client.clone(), format!("{base_path}_over")), + matrix: SeriesPattern18::new(client.clone(), "addrs_utxo_count_by_balance_range".to_string()), } } } @@ -21461,62 +14298,20 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { _0sats: BaseDeltaPattern::new(client.clone(), "addrs_0sats_utxo_count".to_string()), - _1sat_to_10sats: BaseDeltaPattern::new( - client.clone(), - "addrs_1sat_to_10sats_utxo_count".to_string(), - ), - _10sats_to_100sats: BaseDeltaPattern::new( - client.clone(), - "addrs_10sats_to_100sats_utxo_count".to_string(), - ), - _100sats_to_1k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_100sats_to_1k_sats_utxo_count".to_string(), - ), - _1k_sats_to_10k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_1k_sats_to_10k_sats_utxo_count".to_string(), - ), - _10k_sats_to_100k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_10k_sats_to_100k_sats_utxo_count".to_string(), - ), - _100k_sats_to_1m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_100k_sats_to_1m_sats_utxo_count".to_string(), - ), - _1m_sats_to_10m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_1m_sats_to_10m_sats_utxo_count".to_string(), - ), - _10m_sats_to_1btc: BaseDeltaPattern::new( - client.clone(), - "addrs_10m_sats_to_1btc_utxo_count".to_string(), - ), - _1btc_to_10btc: BaseDeltaPattern::new( - client.clone(), - "addrs_1btc_to_10btc_utxo_count".to_string(), - ), - _10btc_to_100btc: BaseDeltaPattern::new( - client.clone(), - "addrs_10btc_to_100btc_utxo_count".to_string(), - ), - _100btc_to_1k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_100btc_to_1k_btc_utxo_count".to_string(), - ), - _1k_btc_to_10k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_1k_btc_to_10k_btc_utxo_count".to_string(), - ), - _10k_btc_to_100k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_10k_btc_to_100k_btc_utxo_count".to_string(), - ), - over_100k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_100k_btc_utxo_count".to_string(), - ), + _1sat_to_10sats: BaseDeltaPattern::new(client.clone(), "addrs_1sat_to_10sats_utxo_count".to_string()), + _10sats_to_100sats: BaseDeltaPattern::new(client.clone(), "addrs_10sats_to_100sats_utxo_count".to_string()), + _100sats_to_1k_sats: BaseDeltaPattern::new(client.clone(), "addrs_100sats_to_1k_sats_utxo_count".to_string()), + _1k_sats_to_10k_sats: BaseDeltaPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats_utxo_count".to_string()), + _10k_sats_to_100k_sats: BaseDeltaPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats_utxo_count".to_string()), + _100k_sats_to_1m_sats: BaseDeltaPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats_utxo_count".to_string()), + _1m_sats_to_10m_sats: BaseDeltaPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats_utxo_count".to_string()), + _10m_sats_to_1btc: BaseDeltaPattern::new(client.clone(), "addrs_10m_sats_to_1btc_utxo_count".to_string()), + _1btc_to_10btc: BaseDeltaPattern::new(client.clone(), "addrs_1btc_to_10btc_utxo_count".to_string()), + _10btc_to_100btc: BaseDeltaPattern::new(client.clone(), "addrs_10btc_to_100btc_utxo_count".to_string()), + _100btc_to_1k_btc: BaseDeltaPattern::new(client.clone(), "addrs_100btc_to_1k_btc_utxo_count".to_string()), + _1k_btc_to_10k_btc: BaseDeltaPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc_utxo_count".to_string()), + _10k_btc_to_100k_btc: BaseDeltaPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc_utxo_count".to_string()), + over_100k_btc: BaseDeltaPattern::new(client.clone(), "addrs_over_100k_btc_utxo_count".to_string()), } } } @@ -21541,55 +14336,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Under { impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10sats_utxo_count".to_string(), - ), - _100sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_100sats_utxo_count".to_string(), - ), - _1k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_1k_sats_utxo_count".to_string(), - ), - _10k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10k_sats_utxo_count".to_string(), - ), - _100k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_100k_sats_utxo_count".to_string(), - ), - _1m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_1m_sats_utxo_count".to_string(), - ), - _10m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10m_sats_utxo_count".to_string(), - ), + _10sats: BaseDeltaPattern::new(client.clone(), "addrs_under_10sats_utxo_count".to_string()), + _100sats: BaseDeltaPattern::new(client.clone(), "addrs_under_100sats_utxo_count".to_string()), + _1k_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_1k_sats_utxo_count".to_string()), + _10k_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_10k_sats_utxo_count".to_string()), + _100k_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_100k_sats_utxo_count".to_string()), + _1m_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_1m_sats_utxo_count".to_string()), + _10m_sats: BaseDeltaPattern::new(client.clone(), "addrs_under_10m_sats_utxo_count".to_string()), _1btc: BaseDeltaPattern::new(client.clone(), "addrs_under_1btc_utxo_count".to_string()), - _10btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10btc_utxo_count".to_string(), - ), - _100btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_100btc_utxo_count".to_string(), - ), - _1k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_1k_btc_utxo_count".to_string(), - ), - _10k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_10k_btc_utxo_count".to_string(), - ), - _100k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_under_100k_btc_utxo_count".to_string(), - ), + _10btc: BaseDeltaPattern::new(client.clone(), "addrs_under_10btc_utxo_count".to_string()), + _100btc: BaseDeltaPattern::new(client.clone(), "addrs_under_100btc_utxo_count".to_string()), + _1k_btc: BaseDeltaPattern::new(client.clone(), "addrs_under_1k_btc_utxo_count".to_string()), + _10k_btc: BaseDeltaPattern::new(client.clone(), "addrs_under_10k_btc_utxo_count".to_string()), + _100k_btc: BaseDeltaPattern::new(client.clone(), "addrs_under_100k_btc_utxo_count".to_string()), } } } @@ -21615,51 +14374,18 @@ impl SeriesTree_Cohorts_Cohorts_Outputs_UnspentCount_AddrBalance_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { _1sat: BaseDeltaPattern::new(client.clone(), "addrs_over_1sat_utxo_count".to_string()), - _10sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10sats_utxo_count".to_string(), - ), - _100sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_100sats_utxo_count".to_string(), - ), - _1k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_1k_sats_utxo_count".to_string(), - ), - _10k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10k_sats_utxo_count".to_string(), - ), - _100k_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_100k_sats_utxo_count".to_string(), - ), - _1m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_1m_sats_utxo_count".to_string(), - ), - _10m_sats: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10m_sats_utxo_count".to_string(), - ), + _10sats: BaseDeltaPattern::new(client.clone(), "addrs_over_10sats_utxo_count".to_string()), + _100sats: BaseDeltaPattern::new(client.clone(), "addrs_over_100sats_utxo_count".to_string()), + _1k_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_1k_sats_utxo_count".to_string()), + _10k_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_10k_sats_utxo_count".to_string()), + _100k_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_100k_sats_utxo_count".to_string()), + _1m_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_1m_sats_utxo_count".to_string()), + _10m_sats: BaseDeltaPattern::new(client.clone(), "addrs_over_10m_sats_utxo_count".to_string()), _1btc: BaseDeltaPattern::new(client.clone(), "addrs_over_1btc_utxo_count".to_string()), - _10btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10btc_utxo_count".to_string(), - ), - _100btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_100btc_utxo_count".to_string(), - ), - _1k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_1k_btc_utxo_count".to_string(), - ), - _10k_btc: BaseDeltaPattern::new( - client.clone(), - "addrs_over_10k_btc_utxo_count".to_string(), - ), + _10btc: BaseDeltaPattern::new(client.clone(), "addrs_over_10btc_utxo_count".to_string()), + _100btc: BaseDeltaPattern::new(client.clone(), "addrs_over_100btc_utxo_count".to_string()), + _1k_btc: BaseDeltaPattern::new(client.clone(), "addrs_over_1k_btc_utxo_count".to_string()), + _10k_btc: BaseDeltaPattern::new(client.clone(), "addrs_over_10k_btc_utxo_count".to_string()), } } } @@ -21685,56 +14411,20 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "spent_utxo_count".to_string(), - ), - age: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "spent_utxo_count".to_string()), + age: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern::new(client.clone(), "spent_utxo_count".to_string()), - utxo_amount: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), + utxo_amount: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), term: LongShortPattern::new(client.clone(), "spent_utxo_count".to_string()), - type_: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Type::new( - client.clone(), - format!("{base_path}_type"), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_spent_utxo_count_cumulative_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "spent_utxo_count_cumulative_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "spent_utxo_count_cumulative_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "spent_utxo_count_cumulative_by_entry".to_string(), - ), - type_matrix: SeriesPattern18::new( - client.clone(), - "spent_utxo_count_cumulative_by_type".to_string(), - ), - amount_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_spent_utxo_count_cumulative_by_amount_range".to_string(), - ), + type_: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Type::new(client.clone(), format!("{base_path}_type")), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_spent_utxo_count_cumulative_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "spent_utxo_count_cumulative_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "spent_utxo_count_cumulative_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "spent_utxo_count_cumulative_by_entry".to_string()), + type_matrix: SeriesPattern18::new(client.clone(), "spent_utxo_count_cumulative_by_type".to_string()), + amount_range_matrix: SeriesPattern18::new(client.clone(), "utxos_spent_utxo_count_cumulative_by_amount_range".to_string()), } } } @@ -21749,18 +14439,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -21795,98 +14476,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Range { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1h_old_spent_utxo_count".to_string(), - ), - _1h_to_1d: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_spent_utxo_count".to_string(), - ), - _1d_to_1w: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_spent_utxo_count".to_string(), - ), - _1w_to_1m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_spent_utxo_count".to_string(), - ), - _1m_to_2m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_spent_utxo_count".to_string(), - ), - _2m_to_3m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_spent_utxo_count".to_string(), - ), - _3m_to_4m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_spent_utxo_count".to_string(), - ), - _4m_to_5m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_spent_utxo_count".to_string(), - ), - _5m_to_6m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_spent_utxo_count".to_string(), - ), - _6m_to_9m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_spent_utxo_count".to_string(), - ), - _9m_to_1y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_spent_utxo_count".to_string(), - ), - _1y_to_18m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_spent_utxo_count".to_string(), - ), - _18m_to_2y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_spent_utxo_count".to_string(), - ), - _2y_to_3y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_spent_utxo_count".to_string(), - ), - _3y_to_4y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_spent_utxo_count".to_string(), - ), - _4y_to_5y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_spent_utxo_count".to_string(), - ), - _5y_to_6y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_spent_utxo_count".to_string(), - ), - _6y_to_7y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_spent_utxo_count".to_string(), - ), - _7y_to_8y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_spent_utxo_count".to_string(), - ), - _8y_to_10y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_spent_utxo_count".to_string(), - ), - _10y_to_12y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_spent_utxo_count".to_string(), - ), - _12y_to_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_spent_utxo_count".to_string(), - ), - over_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_15y_old_spent_utxo_count".to_string(), - ), + under_1h: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1h_old_spent_utxo_count".to_string()), + _1h_to_1d: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1h_to_1d_old_spent_utxo_count".to_string()), + _1d_to_1w: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1d_to_1w_old_spent_utxo_count".to_string()), + _1w_to_1m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1w_to_1m_old_spent_utxo_count".to_string()), + _1m_to_2m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1m_to_2m_old_spent_utxo_count".to_string()), + _2m_to_3m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2m_to_3m_old_spent_utxo_count".to_string()), + _3m_to_4m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3m_to_4m_old_spent_utxo_count".to_string()), + _4m_to_5m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4m_to_5m_old_spent_utxo_count".to_string()), + _5m_to_6m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5m_to_6m_old_spent_utxo_count".to_string()), + _6m_to_9m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6m_to_9m_old_spent_utxo_count".to_string()), + _9m_to_1y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_9m_to_1y_old_spent_utxo_count".to_string()), + _1y_to_18m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1y_to_18m_old_spent_utxo_count".to_string()), + _18m_to_2y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_18m_to_2y_old_spent_utxo_count".to_string()), + _2y_to_3y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2y_to_3y_old_spent_utxo_count".to_string()), + _3y_to_4y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3y_to_4y_old_spent_utxo_count".to_string()), + _4y_to_5y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4y_to_5y_old_spent_utxo_count".to_string()), + _5y_to_6y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5y_to_6y_old_spent_utxo_count".to_string()), + _6y_to_7y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6y_to_7y_old_spent_utxo_count".to_string()), + _7y_to_8y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_7y_to_8y_old_spent_utxo_count".to_string()), + _8y_to_10y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_8y_to_10y_old_spent_utxo_count".to_string()), + _10y_to_12y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10y_to_12y_old_spent_utxo_count".to_string()), + _12y_to_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_12y_to_15y_old_spent_utxo_count".to_string()), + over_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_15y_old_spent_utxo_count".to_string()), } } } @@ -21918,86 +14530,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Under { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1w_old_spent_utxo_count".to_string(), - ), - _1m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1m_old_spent_utxo_count".to_string(), - ), - _2m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2m_old_spent_utxo_count".to_string(), - ), - _3m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3m_old_spent_utxo_count".to_string(), - ), - _4m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4m_old_spent_utxo_count".to_string(), - ), - _5m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5m_old_spent_utxo_count".to_string(), - ), - _6m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6m_old_spent_utxo_count".to_string(), - ), - _9m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_9m_old_spent_utxo_count".to_string(), - ), - _1y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1y_old_spent_utxo_count".to_string(), - ), - _18m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_18m_old_spent_utxo_count".to_string(), - ), - _2y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2y_old_spent_utxo_count".to_string(), - ), - _3y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3y_old_spent_utxo_count".to_string(), - ), - _4y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4y_old_spent_utxo_count".to_string(), - ), - _5y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5y_old_spent_utxo_count".to_string(), - ), - _6y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6y_old_spent_utxo_count".to_string(), - ), - _7y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_7y_old_spent_utxo_count".to_string(), - ), - _8y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_8y_old_spent_utxo_count".to_string(), - ), - _10y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10y_old_spent_utxo_count".to_string(), - ), - _12y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_12y_old_spent_utxo_count".to_string(), - ), - _15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_15y_old_spent_utxo_count".to_string(), - ), + _1w: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1w_old_spent_utxo_count".to_string()), + _1m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1m_old_spent_utxo_count".to_string()), + _2m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_2m_old_spent_utxo_count".to_string()), + _3m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_3m_old_spent_utxo_count".to_string()), + _4m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_4m_old_spent_utxo_count".to_string()), + _5m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_5m_old_spent_utxo_count".to_string()), + _6m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_6m_old_spent_utxo_count".to_string()), + _9m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_9m_old_spent_utxo_count".to_string()), + _1y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1y_old_spent_utxo_count".to_string()), + _18m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_18m_old_spent_utxo_count".to_string()), + _2y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_2y_old_spent_utxo_count".to_string()), + _3y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_3y_old_spent_utxo_count".to_string()), + _4y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_4y_old_spent_utxo_count".to_string()), + _5y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_5y_old_spent_utxo_count".to_string()), + _6y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_6y_old_spent_utxo_count".to_string()), + _7y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_7y_old_spent_utxo_count".to_string()), + _8y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_8y_old_spent_utxo_count".to_string()), + _10y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_10y_old_spent_utxo_count".to_string()), + _12y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_12y_old_spent_utxo_count".to_string()), + _15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_15y_old_spent_utxo_count".to_string()), } } } @@ -22029,86 +14581,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Over { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1d_old_spent_utxo_count".to_string(), - ), - _1w: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1w_old_spent_utxo_count".to_string(), - ), - _1m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1m_old_spent_utxo_count".to_string(), - ), - _2m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2m_old_spent_utxo_count".to_string(), - ), - _3m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3m_old_spent_utxo_count".to_string(), - ), - _4m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4m_old_spent_utxo_count".to_string(), - ), - _5m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5m_old_spent_utxo_count".to_string(), - ), - _6m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6m_old_spent_utxo_count".to_string(), - ), - _9m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_9m_old_spent_utxo_count".to_string(), - ), - _1y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1y_old_spent_utxo_count".to_string(), - ), - _18m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_18m_old_spent_utxo_count".to_string(), - ), - _2y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2y_old_spent_utxo_count".to_string(), - ), - _3y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3y_old_spent_utxo_count".to_string(), - ), - _4y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4y_old_spent_utxo_count".to_string(), - ), - _5y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5y_old_spent_utxo_count".to_string(), - ), - _6y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6y_old_spent_utxo_count".to_string(), - ), - _7y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_7y_old_spent_utxo_count".to_string(), - ), - _8y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_8y_old_spent_utxo_count".to_string(), - ), - _10y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10y_old_spent_utxo_count".to_string(), - ), - _12y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_12y_old_spent_utxo_count".to_string(), - ), + _1d: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1d_old_spent_utxo_count".to_string()), + _1w: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1w_old_spent_utxo_count".to_string()), + _1m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1m_old_spent_utxo_count".to_string()), + _2m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_2m_old_spent_utxo_count".to_string()), + _3m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_3m_old_spent_utxo_count".to_string()), + _4m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_4m_old_spent_utxo_count".to_string()), + _5m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_5m_old_spent_utxo_count".to_string()), + _6m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_6m_old_spent_utxo_count".to_string()), + _9m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_9m_old_spent_utxo_count".to_string()), + _1y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1y_old_spent_utxo_count".to_string()), + _18m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_18m_old_spent_utxo_count".to_string()), + _2y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_2y_old_spent_utxo_count".to_string()), + _3y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_3y_old_spent_utxo_count".to_string()), + _4y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_4y_old_spent_utxo_count".to_string()), + _5y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_5y_old_spent_utxo_count".to_string()), + _6y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_6y_old_spent_utxo_count".to_string()), + _7y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_7y_old_spent_utxo_count".to_string()), + _8y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_8y_old_spent_utxo_count".to_string()), + _10y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_10y_old_spent_utxo_count".to_string()), + _12y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_12y_old_spent_utxo_count".to_string()), } } } @@ -22125,26 +14617,11 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Epoch { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_0_spent_utxo_count".to_string(), - ), - _1: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_1_spent_utxo_count".to_string(), - ), - _2: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_2_spent_utxo_count".to_string(), - ), - _3: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_3_spent_utxo_count".to_string(), - ), - _4: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_4_spent_utxo_count".to_string(), - ), + _0: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_0_spent_utxo_count".to_string()), + _1: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_1_spent_utxo_count".to_string()), + _2: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_2_spent_utxo_count".to_string()), + _3: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_3_spent_utxo_count".to_string()), + _4: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_4_spent_utxo_count".to_string()), } } } @@ -22174,78 +14651,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Class { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2009_spent_utxo_count".to_string(), - ), - _2010: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2010_spent_utxo_count".to_string(), - ), - _2011: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2011_spent_utxo_count".to_string(), - ), - _2012: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2012_spent_utxo_count".to_string(), - ), - _2013: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2013_spent_utxo_count".to_string(), - ), - _2014: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2014_spent_utxo_count".to_string(), - ), - _2015: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2015_spent_utxo_count".to_string(), - ), - _2016: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2016_spent_utxo_count".to_string(), - ), - _2017: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2017_spent_utxo_count".to_string(), - ), - _2018: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2018_spent_utxo_count".to_string(), - ), - _2019: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2019_spent_utxo_count".to_string(), - ), - _2020: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2020_spent_utxo_count".to_string(), - ), - _2021: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2021_spent_utxo_count".to_string(), - ), - _2022: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2022_spent_utxo_count".to_string(), - ), - _2023: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2023_spent_utxo_count".to_string(), - ), - _2024: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2024_spent_utxo_count".to_string(), - ), - _2025: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2025_spent_utxo_count".to_string(), - ), - _2026: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2026_spent_utxo_count".to_string(), - ), + _2009: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2009_spent_utxo_count".to_string()), + _2010: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2010_spent_utxo_count".to_string()), + _2011: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2011_spent_utxo_count".to_string()), + _2012: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2012_spent_utxo_count".to_string()), + _2013: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2013_spent_utxo_count".to_string()), + _2014: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2014_spent_utxo_count".to_string()), + _2015: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2015_spent_utxo_count".to_string()), + _2016: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2016_spent_utxo_count".to_string()), + _2017: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2017_spent_utxo_count".to_string()), + _2018: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2018_spent_utxo_count".to_string()), + _2019: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2019_spent_utxo_count".to_string()), + _2020: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2020_spent_utxo_count".to_string()), + _2021: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2021_spent_utxo_count".to_string()), + _2022: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2022_spent_utxo_count".to_string()), + _2023: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2023_spent_utxo_count".to_string()), + _2024: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2024_spent_utxo_count".to_string()), + _2025: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2025_spent_utxo_count".to_string()), + _2026: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2026_spent_utxo_count".to_string()), } } } @@ -22260,18 +14683,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -22298,66 +14712,21 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Range { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_0sats_spent_utxo_count".to_string(), - ), - _1sat_to_10sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1sat_to_10sats_spent_utxo_count".to_string(), - ), - _10sats_to_100sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10sats_to_100sats_spent_utxo_count".to_string(), - ), - _100sats_to_1k_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_100sats_to_1k_sats_spent_utxo_count".to_string(), - ), - _1k_sats_to_10k_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1k_sats_to_10k_sats_spent_utxo_count".to_string(), - ), - _10k_sats_to_100k_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10k_sats_to_100k_sats_spent_utxo_count".to_string(), - ), - _100k_sats_to_1m_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_100k_sats_to_1m_sats_spent_utxo_count".to_string(), - ), - _1m_sats_to_10m_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_sats_to_10m_sats_spent_utxo_count".to_string(), - ), - _10m_sats_to_1btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10m_sats_to_1btc_spent_utxo_count".to_string(), - ), - _1btc_to_10btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1btc_to_10btc_spent_utxo_count".to_string(), - ), - _10btc_to_100btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10btc_to_100btc_spent_utxo_count".to_string(), - ), - _100btc_to_1k_btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_100btc_to_1k_btc_spent_utxo_count".to_string(), - ), - _1k_btc_to_10k_btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1k_btc_to_10k_btc_spent_utxo_count".to_string(), - ), - _10k_btc_to_100k_btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10k_btc_to_100k_btc_spent_utxo_count".to_string(), - ), - over_100k_btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100k_btc_spent_utxo_count".to_string(), - ), + _0sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_0sats_spent_utxo_count".to_string()), + _1sat_to_10sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1sat_to_10sats_spent_utxo_count".to_string()), + _10sats_to_100sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10sats_to_100sats_spent_utxo_count".to_string()), + _100sats_to_1k_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_100sats_to_1k_sats_spent_utxo_count".to_string()), + _1k_sats_to_10k_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_spent_utxo_count".to_string()), + _10k_sats_to_100k_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_spent_utxo_count".to_string()), + _100k_sats_to_1m_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_spent_utxo_count".to_string()), + _1m_sats_to_10m_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_spent_utxo_count".to_string()), + _10m_sats_to_1btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10m_sats_to_1btc_spent_utxo_count".to_string()), + _1btc_to_10btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1btc_to_10btc_spent_utxo_count".to_string()), + _10btc_to_100btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10btc_to_100btc_spent_utxo_count".to_string()), + _100btc_to_1k_btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_100btc_to_1k_btc_spent_utxo_count".to_string()), + _1k_btc_to_10k_btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_spent_utxo_count".to_string()), + _10k_btc_to_100k_btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_spent_utxo_count".to_string()), + over_100k_btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_100k_btc_spent_utxo_count".to_string()), } } } @@ -22382,58 +14751,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Under { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10sats_spent_utxo_count".to_string(), - ), - _100sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100sats_spent_utxo_count".to_string(), - ), - _1k_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1k_sats_spent_utxo_count".to_string(), - ), - _10k_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10k_sats_spent_utxo_count".to_string(), - ), - _100k_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100k_sats_spent_utxo_count".to_string(), - ), - _1m_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1m_sats_spent_utxo_count".to_string(), - ), - _10m_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10m_sats_spent_utxo_count".to_string(), - ), - _1btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1btc_spent_utxo_count".to_string(), - ), - _10btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10btc_spent_utxo_count".to_string(), - ), - _100btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100btc_spent_utxo_count".to_string(), - ), - _1k_btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1k_btc_spent_utxo_count".to_string(), - ), - _10k_btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10k_btc_spent_utxo_count".to_string(), - ), - _100k_btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100k_btc_spent_utxo_count".to_string(), - ), + _10sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_10sats_spent_utxo_count".to_string()), + _100sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_100sats_spent_utxo_count".to_string()), + _1k_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1k_sats_spent_utxo_count".to_string()), + _10k_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_10k_sats_spent_utxo_count".to_string()), + _100k_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_100k_sats_spent_utxo_count".to_string()), + _1m_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1m_sats_spent_utxo_count".to_string()), + _10m_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_10m_sats_spent_utxo_count".to_string()), + _1btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1btc_spent_utxo_count".to_string()), + _10btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_10btc_spent_utxo_count".to_string()), + _100btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_100btc_spent_utxo_count".to_string()), + _1k_btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1k_btc_spent_utxo_count".to_string()), + _10k_btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_10k_btc_spent_utxo_count".to_string()), + _100k_btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_100k_btc_spent_utxo_count".to_string()), } } } @@ -22458,58 +14788,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Over { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_UtxoAmount_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1sat_spent_utxo_count".to_string(), - ), - _10sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10sats_spent_utxo_count".to_string(), - ), - _100sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100sats_spent_utxo_count".to_string(), - ), - _1k_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1k_sats_spent_utxo_count".to_string(), - ), - _10k_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10k_sats_spent_utxo_count".to_string(), - ), - _100k_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100k_sats_spent_utxo_count".to_string(), - ), - _1m_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1m_sats_spent_utxo_count".to_string(), - ), - _10m_sats: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10m_sats_spent_utxo_count".to_string(), - ), - _1btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1btc_spent_utxo_count".to_string(), - ), - _10btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10btc_spent_utxo_count".to_string(), - ), - _100btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100btc_spent_utxo_count".to_string(), - ), - _1k_btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1k_btc_spent_utxo_count".to_string(), - ), - _10k_btc: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10k_btc_spent_utxo_count".to_string(), - ), + _1sat: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1sat_spent_utxo_count".to_string()), + _10sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_10sats_spent_utxo_count".to_string()), + _100sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_100sats_spent_utxo_count".to_string()), + _1k_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1k_sats_spent_utxo_count".to_string()), + _10k_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_10k_sats_spent_utxo_count".to_string()), + _100k_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_100k_sats_spent_utxo_count".to_string()), + _1m_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1m_sats_spent_utxo_count".to_string()), + _10m_sats: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_10m_sats_spent_utxo_count".to_string()), + _1btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1btc_spent_utxo_count".to_string()), + _10btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_10btc_spent_utxo_count".to_string()), + _100btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_100btc_spent_utxo_count".to_string()), + _1k_btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1k_btc_spent_utxo_count".to_string()), + _10k_btc: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_10k_btc_spent_utxo_count".to_string()), } } } @@ -22532,50 +14823,17 @@ pub struct SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Type { impl SeriesTree_Cohorts_Cohorts_Outputs_SpentCount_Type { pub fn new(client: Arc, base_path: String) -> Self { Self { - p2pk65: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk65_spent_utxo_count".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pk33_spent_utxo_count".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2pkh_spent_utxo_count".to_string(), - ), - p2ms: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2ms_spent_utxo_count".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2sh_spent_utxo_count".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wpkh_spent_utxo_count".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2wsh_spent_utxo_count".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2tr_spent_utxo_count".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern::new( - client.clone(), - "p2a_spent_utxo_count".to_string(), - ), - unknown: AverageBlockCumulativeSumPattern::new( - client.clone(), - "unknown_outputs_spent_utxo_count".to_string(), - ), - empty: AverageBlockCumulativeSumPattern::new( - client.clone(), - "empty_outputs_spent_utxo_count".to_string(), - ), + p2pk65: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk65_spent_utxo_count".to_string()), + p2pk33: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pk33_spent_utxo_count".to_string()), + p2pkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2pkh_spent_utxo_count".to_string()), + p2ms: AverageBlockCumulativeSumPattern::new(client.clone(), "p2ms_spent_utxo_count".to_string()), + p2sh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2sh_spent_utxo_count".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wpkh_spent_utxo_count".to_string()), + p2wsh: AverageBlockCumulativeSumPattern::new(client.clone(), "p2wsh_spent_utxo_count".to_string()), + p2tr: AverageBlockCumulativeSumPattern::new(client.clone(), "p2tr_spent_utxo_count".to_string()), + p2a: AverageBlockCumulativeSumPattern::new(client.clone(), "p2a_spent_utxo_count".to_string()), + unknown: AverageBlockCumulativeSumPattern::new(client.clone(), "unknown_outputs_spent_utxo_count".to_string()), + empty: AverageBlockCumulativeSumPattern::new(client.clone(), "empty_outputs_spent_utxo_count".to_string()), } } } @@ -22591,22 +14849,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity { impl SeriesTree_Cohorts_Cohorts_Activity { pub fn new(client: Arc, base_path: String) -> Self { Self { - transfer_volume: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume::new( - client.clone(), - format!("{base_path}_transfer_volume"), - ), - coindays_destroyed: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed::new( - client.clone(), - format!("{base_path}_coindays_destroyed"), - ), - coinyears_destroyed: SeriesTree_Cohorts_Cohorts_Activity_CoinyearsDestroyed::new( - client.clone(), - format!("{base_path}_coinyears_destroyed"), - ), - dormancy: SeriesTree_Cohorts_Cohorts_Activity_Dormancy::new( - client.clone(), - format!("{base_path}_dormancy"), - ), + transfer_volume: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume::new(client.clone(), format!("{base_path}_transfer_volume")), + coindays_destroyed: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed::new(client.clone(), format!("{base_path}_coindays_destroyed")), + coinyears_destroyed: SeriesTree_Cohorts_Cohorts_Activity_CoinyearsDestroyed::new(client.clone(), format!("{base_path}_coinyears_destroyed")), + dormancy: SeriesTree_Cohorts_Cohorts_Activity_Dormancy::new(client.clone(), format!("{base_path}_dormancy")), } } } @@ -22630,45 +14876,18 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_TransferVolume { impl SeriesTree_Cohorts_Cohorts_Activity_TransferVolume { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "transfer_volume".to_string(), - ), + all: AverageBlockCumulativeSumPattern2::new(client.clone(), "transfer_volume".to_string()), age: OverRangeUnderPattern2::new(client.clone(), "utxos".to_string()), - epoch: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + epoch: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern2::new(client.clone(), "transfer_volume".to_string()), - utxo_amount: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), + utxo_amount: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), term: LongShortPattern2::new(client.clone(), "transfer_volume".to_string()), - type_: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Type::new( - client.clone(), - format!("{base_path}_type"), - ), - cumulative: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Cumulative::new( - client.clone(), - format!("{base_path}_cumulative"), - ), - addr_balance: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_AddrBalance::new( - client.clone(), - format!("{base_path}_addr_balance"), - ), - in_profit: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_InProfit::new( - client.clone(), - format!("{base_path}_in_profit"), - ), - in_loss: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_InLoss::new( - client.clone(), - format!("{base_path}_in_loss"), - ), + type_: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Type::new(client.clone(), format!("{base_path}_type")), + cumulative: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Cumulative::new(client.clone(), format!("{base_path}_cumulative")), + addr_balance: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_AddrBalance::new(client.clone(), format!("{base_path}_addr_balance")), + in_profit: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_InProfit::new(client.clone(), format!("{base_path}_in_profit")), + in_loss: SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_InLoss::new(client.clone(), format!("{base_path}_in_loss")), } } } @@ -22685,26 +14904,11 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Epoch { impl SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "epoch_0_transfer_volume".to_string(), - ), - _1: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "epoch_1_transfer_volume".to_string(), - ), - _2: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "epoch_2_transfer_volume".to_string(), - ), - _3: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "epoch_3_transfer_volume".to_string(), - ), - _4: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "epoch_4_transfer_volume".to_string(), - ), + _0: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_0_transfer_volume".to_string()), + _1: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_1_transfer_volume".to_string()), + _2: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_2_transfer_volume".to_string()), + _3: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_3_transfer_volume".to_string()), + _4: AverageBlockCumulativeSumPattern2::new(client.clone(), "epoch_4_transfer_volume".to_string()), } } } @@ -22734,78 +14938,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Class { impl SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2009_transfer_volume".to_string(), - ), - _2010: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2010_transfer_volume".to_string(), - ), - _2011: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2011_transfer_volume".to_string(), - ), - _2012: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2012_transfer_volume".to_string(), - ), - _2013: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2013_transfer_volume".to_string(), - ), - _2014: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2014_transfer_volume".to_string(), - ), - _2015: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2015_transfer_volume".to_string(), - ), - _2016: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2016_transfer_volume".to_string(), - ), - _2017: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2017_transfer_volume".to_string(), - ), - _2018: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2018_transfer_volume".to_string(), - ), - _2019: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2019_transfer_volume".to_string(), - ), - _2020: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2020_transfer_volume".to_string(), - ), - _2021: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2021_transfer_volume".to_string(), - ), - _2022: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2022_transfer_volume".to_string(), - ), - _2023: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2023_transfer_volume".to_string(), - ), - _2024: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2024_transfer_volume".to_string(), - ), - _2025: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2025_transfer_volume".to_string(), - ), - _2026: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "class_2026_transfer_volume".to_string(), - ), + _2009: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2009_transfer_volume".to_string()), + _2010: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2010_transfer_volume".to_string()), + _2011: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2011_transfer_volume".to_string()), + _2012: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2012_transfer_volume".to_string()), + _2013: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2013_transfer_volume".to_string()), + _2014: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2014_transfer_volume".to_string()), + _2015: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2015_transfer_volume".to_string()), + _2016: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2016_transfer_volume".to_string()), + _2017: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2017_transfer_volume".to_string()), + _2018: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2018_transfer_volume".to_string()), + _2019: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2019_transfer_volume".to_string()), + _2020: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2020_transfer_volume".to_string()), + _2021: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2021_transfer_volume".to_string()), + _2022: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2022_transfer_volume".to_string()), + _2023: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2023_transfer_volume".to_string()), + _2024: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2024_transfer_volume".to_string()), + _2025: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2025_transfer_volume".to_string()), + _2026: AverageBlockCumulativeSumPattern2::new(client.clone(), "class_2026_transfer_volume".to_string()), } } } @@ -22820,18 +14970,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern2::new( - client.clone(), - "utxos".to_string(), - ), - under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern2::new( - client.clone(), - "utxos_under".to_string(), - ), - over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern2::new( - client.clone(), - "utxos_over".to_string(), - ), + range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern2::new(client.clone(), "utxos".to_string()), + under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern2::new(client.clone(), "utxos_under".to_string()), + over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern2::new(client.clone(), "utxos_over".to_string()), } } } @@ -22854,50 +14995,17 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Type { impl SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Type { pub fn new(client: Arc, base_path: String) -> Self { Self { - p2pk65: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "p2pk65_transfer_volume".to_string(), - ), - p2pk33: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "p2pk33_transfer_volume".to_string(), - ), - p2pkh: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "p2pkh_transfer_volume".to_string(), - ), - p2ms: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "p2ms_transfer_volume".to_string(), - ), - p2sh: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "p2sh_transfer_volume".to_string(), - ), - p2wpkh: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "p2wpkh_transfer_volume".to_string(), - ), - p2wsh: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "p2wsh_transfer_volume".to_string(), - ), - p2tr: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "p2tr_transfer_volume".to_string(), - ), - p2a: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "p2a_transfer_volume".to_string(), - ), - unknown: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "unknown_outputs_transfer_volume".to_string(), - ), - empty: AverageBlockCumulativeSumPattern2::new( - client.clone(), - "empty_outputs_transfer_volume".to_string(), - ), + p2pk65: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2pk65_transfer_volume".to_string()), + p2pk33: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2pk33_transfer_volume".to_string()), + p2pkh: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2pkh_transfer_volume".to_string()), + p2ms: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2ms_transfer_volume".to_string()), + p2sh: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2sh_transfer_volume".to_string()), + p2wpkh: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2wpkh_transfer_volume".to_string()), + p2wsh: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2wsh_transfer_volume".to_string()), + p2tr: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2tr_transfer_volume".to_string()), + p2a: AverageBlockCumulativeSumPattern2::new(client.clone(), "p2a_transfer_volume".to_string()), + unknown: AverageBlockCumulativeSumPattern2::new(client.clone(), "unknown_outputs_transfer_volume".to_string()), + empty: AverageBlockCumulativeSumPattern2::new(client.clone(), "empty_outputs_transfer_volume".to_string()), } } } @@ -22915,30 +15023,12 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Cumulative { impl SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_Cumulative { pub fn new(client: Arc, base_path: String) -> Self { Self { - age_range: CentsSatsPattern::new( - client.clone(), - "utxos_transfer_volume_cumulative_by_age_range".to_string(), - ), - epoch: CentsSatsPattern::new( - client.clone(), - "transfer_volume_cumulative_by_epoch".to_string(), - ), - class: CentsSatsPattern::new( - client.clone(), - "transfer_volume_cumulative_by_class".to_string(), - ), - entry: CentsSatsPattern::new( - client.clone(), - "transfer_volume_cumulative_by_entry".to_string(), - ), - amount_range: CentsSatsPattern::new( - client.clone(), - "utxos_transfer_volume_cumulative_by_amount_range".to_string(), - ), - type_: CentsSatsPattern::new( - client.clone(), - "transfer_volume_cumulative_by_type".to_string(), - ), + age_range: CentsSatsPattern::new(client.clone(), "utxos_transfer_volume_cumulative_by_age_range".to_string()), + epoch: CentsSatsPattern::new(client.clone(), "transfer_volume_cumulative_by_epoch".to_string()), + class: CentsSatsPattern::new(client.clone(), "transfer_volume_cumulative_by_class".to_string()), + entry: CentsSatsPattern::new(client.clone(), "transfer_volume_cumulative_by_entry".to_string()), + amount_range: CentsSatsPattern::new(client.clone(), "utxos_transfer_volume_cumulative_by_amount_range".to_string()), + type_: CentsSatsPattern::new(client.clone(), "transfer_volume_cumulative_by_type".to_string()), } } } @@ -22954,22 +15044,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_AddrBalance { impl SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_AddrBalance { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern2::new( - client.clone(), - "addrs".to_string(), - ), - under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern2::new( - client.clone(), - "addrs_under".to_string(), - ), - over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern2::new( - client.clone(), - "addrs_over".to_string(), - ), - values: CentsSatsPattern::new( - client.clone(), - "addrs_transfer_volume_cumulative_by_balance_range".to_string(), - ), + range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern2::new(client.clone(), "addrs".to_string()), + under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern2::new(client.clone(), "addrs_under".to_string()), + over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern2::new(client.clone(), "addrs_over".to_string()), + values: CentsSatsPattern::new(client.clone(), "addrs_transfer_volume_cumulative_by_balance_range".to_string()), } } } @@ -23010,22 +15088,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_InProfit_Cumulativ impl SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_InProfit_Cumulative { pub fn new(client: Arc, base_path: String) -> Self { Self { - age_range: CentsSatsPattern::new( - client.clone(), - "utxos_transfer_volume_in_profit_cumulative_by_age_range".to_string(), - ), - epoch: CentsSatsPattern::new( - client.clone(), - "transfer_volume_in_profit_cumulative_by_epoch".to_string(), - ), - class: CentsSatsPattern::new( - client.clone(), - "transfer_volume_in_profit_cumulative_by_class".to_string(), - ), - entry: CentsSatsPattern::new( - client.clone(), - "transfer_volume_in_profit_cumulative_by_entry".to_string(), - ), + age_range: CentsSatsPattern::new(client.clone(), "utxos_transfer_volume_in_profit_cumulative_by_age_range".to_string()), + epoch: CentsSatsPattern::new(client.clone(), "transfer_volume_in_profit_cumulative_by_epoch".to_string()), + class: CentsSatsPattern::new(client.clone(), "transfer_volume_in_profit_cumulative_by_class".to_string()), + entry: CentsSatsPattern::new(client.clone(), "transfer_volume_in_profit_cumulative_by_entry".to_string()), } } } @@ -23066,22 +15132,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_InLoss_Cumulative impl SeriesTree_Cohorts_Cohorts_Activity_TransferVolume_InLoss_Cumulative { pub fn new(client: Arc, base_path: String) -> Self { Self { - age_range: CentsSatsPattern::new( - client.clone(), - "utxos_transfer_volume_in_loss_cumulative_by_age_range".to_string(), - ), - epoch: CentsSatsPattern::new( - client.clone(), - "transfer_volume_in_loss_cumulative_by_epoch".to_string(), - ), - class: CentsSatsPattern::new( - client.clone(), - "transfer_volume_in_loss_cumulative_by_class".to_string(), - ), - entry: CentsSatsPattern::new( - client.clone(), - "transfer_volume_in_loss_cumulative_by_entry".to_string(), - ), + age_range: CentsSatsPattern::new(client.clone(), "utxos_transfer_volume_in_loss_cumulative_by_age_range".to_string()), + epoch: CentsSatsPattern::new(client.clone(), "transfer_volume_in_loss_cumulative_by_epoch".to_string()), + class: CentsSatsPattern::new(client.clone(), "transfer_volume_in_loss_cumulative_by_class".to_string()), + entry: CentsSatsPattern::new(client.clone(), "transfer_volume_in_loss_cumulative_by_entry".to_string()), } } } @@ -23103,40 +15157,16 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed { impl SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "coindays_destroyed".to_string(), - ), - age: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "coindays_destroyed".to_string()), + age: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern::new(client.clone(), "coindays_destroyed".to_string()), term: LongShortPattern::new(client.clone(), "coindays_destroyed".to_string()), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_coindays_destroyed_cumulative_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "coindays_destroyed_cumulative_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "coindays_destroyed_cumulative_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "coindays_destroyed_cumulative_by_entry".to_string(), - ), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_coindays_destroyed_cumulative_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "coindays_destroyed_cumulative_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "coindays_destroyed_cumulative_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "coindays_destroyed_cumulative_by_entry".to_string()), } } } @@ -23151,18 +15181,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age { impl SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -23197,98 +15218,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Range { impl SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1h_old_coindays_destroyed".to_string(), - ), - _1h_to_1d: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_coindays_destroyed".to_string(), - ), - _1d_to_1w: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_coindays_destroyed".to_string(), - ), - _1w_to_1m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_coindays_destroyed".to_string(), - ), - _1m_to_2m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_coindays_destroyed".to_string(), - ), - _2m_to_3m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_coindays_destroyed".to_string(), - ), - _3m_to_4m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_coindays_destroyed".to_string(), - ), - _4m_to_5m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_coindays_destroyed".to_string(), - ), - _5m_to_6m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_coindays_destroyed".to_string(), - ), - _6m_to_9m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_coindays_destroyed".to_string(), - ), - _9m_to_1y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_coindays_destroyed".to_string(), - ), - _1y_to_18m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_coindays_destroyed".to_string(), - ), - _18m_to_2y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_coindays_destroyed".to_string(), - ), - _2y_to_3y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_coindays_destroyed".to_string(), - ), - _3y_to_4y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_coindays_destroyed".to_string(), - ), - _4y_to_5y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_coindays_destroyed".to_string(), - ), - _5y_to_6y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_coindays_destroyed".to_string(), - ), - _6y_to_7y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_coindays_destroyed".to_string(), - ), - _7y_to_8y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_coindays_destroyed".to_string(), - ), - _8y_to_10y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_coindays_destroyed".to_string(), - ), - _10y_to_12y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_coindays_destroyed".to_string(), - ), - _12y_to_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_coindays_destroyed".to_string(), - ), - over_15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_15y_old_coindays_destroyed".to_string(), - ), + under_1h: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1h_old_coindays_destroyed".to_string()), + _1h_to_1d: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1h_to_1d_old_coindays_destroyed".to_string()), + _1d_to_1w: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1d_to_1w_old_coindays_destroyed".to_string()), + _1w_to_1m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1w_to_1m_old_coindays_destroyed".to_string()), + _1m_to_2m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1m_to_2m_old_coindays_destroyed".to_string()), + _2m_to_3m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2m_to_3m_old_coindays_destroyed".to_string()), + _3m_to_4m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3m_to_4m_old_coindays_destroyed".to_string()), + _4m_to_5m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4m_to_5m_old_coindays_destroyed".to_string()), + _5m_to_6m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5m_to_6m_old_coindays_destroyed".to_string()), + _6m_to_9m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6m_to_9m_old_coindays_destroyed".to_string()), + _9m_to_1y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_9m_to_1y_old_coindays_destroyed".to_string()), + _1y_to_18m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_1y_to_18m_old_coindays_destroyed".to_string()), + _18m_to_2y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_18m_to_2y_old_coindays_destroyed".to_string()), + _2y_to_3y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_2y_to_3y_old_coindays_destroyed".to_string()), + _3y_to_4y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_3y_to_4y_old_coindays_destroyed".to_string()), + _4y_to_5y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_4y_to_5y_old_coindays_destroyed".to_string()), + _5y_to_6y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_5y_to_6y_old_coindays_destroyed".to_string()), + _6y_to_7y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_6y_to_7y_old_coindays_destroyed".to_string()), + _7y_to_8y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_7y_to_8y_old_coindays_destroyed".to_string()), + _8y_to_10y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_8y_to_10y_old_coindays_destroyed".to_string()), + _10y_to_12y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_10y_to_12y_old_coindays_destroyed".to_string()), + _12y_to_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_12y_to_15y_old_coindays_destroyed".to_string()), + over_15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_15y_old_coindays_destroyed".to_string()), } } } @@ -23320,86 +15272,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Under { impl SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1w_old_coindays_destroyed".to_string(), - ), - _1m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1m_old_coindays_destroyed".to_string(), - ), - _2m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2m_old_coindays_destroyed".to_string(), - ), - _3m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3m_old_coindays_destroyed".to_string(), - ), - _4m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4m_old_coindays_destroyed".to_string(), - ), - _5m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5m_old_coindays_destroyed".to_string(), - ), - _6m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6m_old_coindays_destroyed".to_string(), - ), - _9m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_9m_old_coindays_destroyed".to_string(), - ), - _1y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1y_old_coindays_destroyed".to_string(), - ), - _18m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_18m_old_coindays_destroyed".to_string(), - ), - _2y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2y_old_coindays_destroyed".to_string(), - ), - _3y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3y_old_coindays_destroyed".to_string(), - ), - _4y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4y_old_coindays_destroyed".to_string(), - ), - _5y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5y_old_coindays_destroyed".to_string(), - ), - _6y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6y_old_coindays_destroyed".to_string(), - ), - _7y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_7y_old_coindays_destroyed".to_string(), - ), - _8y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_8y_old_coindays_destroyed".to_string(), - ), - _10y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10y_old_coindays_destroyed".to_string(), - ), - _12y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_12y_old_coindays_destroyed".to_string(), - ), - _15y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_15y_old_coindays_destroyed".to_string(), - ), + _1w: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1w_old_coindays_destroyed".to_string()), + _1m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1m_old_coindays_destroyed".to_string()), + _2m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_2m_old_coindays_destroyed".to_string()), + _3m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_3m_old_coindays_destroyed".to_string()), + _4m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_4m_old_coindays_destroyed".to_string()), + _5m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_5m_old_coindays_destroyed".to_string()), + _6m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_6m_old_coindays_destroyed".to_string()), + _9m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_9m_old_coindays_destroyed".to_string()), + _1y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_1y_old_coindays_destroyed".to_string()), + _18m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_18m_old_coindays_destroyed".to_string()), + _2y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_2y_old_coindays_destroyed".to_string()), + _3y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_3y_old_coindays_destroyed".to_string()), + _4y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_4y_old_coindays_destroyed".to_string()), + _5y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_5y_old_coindays_destroyed".to_string()), + _6y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_6y_old_coindays_destroyed".to_string()), + _7y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_7y_old_coindays_destroyed".to_string()), + _8y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_8y_old_coindays_destroyed".to_string()), + _10y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_10y_old_coindays_destroyed".to_string()), + _12y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_12y_old_coindays_destroyed".to_string()), + _15y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_under_15y_old_coindays_destroyed".to_string()), } } } @@ -23431,86 +15323,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Over { impl SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1d_old_coindays_destroyed".to_string(), - ), - _1w: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1w_old_coindays_destroyed".to_string(), - ), - _1m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1m_old_coindays_destroyed".to_string(), - ), - _2m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2m_old_coindays_destroyed".to_string(), - ), - _3m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3m_old_coindays_destroyed".to_string(), - ), - _4m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4m_old_coindays_destroyed".to_string(), - ), - _5m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5m_old_coindays_destroyed".to_string(), - ), - _6m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6m_old_coindays_destroyed".to_string(), - ), - _9m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_9m_old_coindays_destroyed".to_string(), - ), - _1y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1y_old_coindays_destroyed".to_string(), - ), - _18m: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_18m_old_coindays_destroyed".to_string(), - ), - _2y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2y_old_coindays_destroyed".to_string(), - ), - _3y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3y_old_coindays_destroyed".to_string(), - ), - _4y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4y_old_coindays_destroyed".to_string(), - ), - _5y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5y_old_coindays_destroyed".to_string(), - ), - _6y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6y_old_coindays_destroyed".to_string(), - ), - _7y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_7y_old_coindays_destroyed".to_string(), - ), - _8y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_8y_old_coindays_destroyed".to_string(), - ), - _10y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10y_old_coindays_destroyed".to_string(), - ), - _12y: AverageBlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_12y_old_coindays_destroyed".to_string(), - ), + _1d: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1d_old_coindays_destroyed".to_string()), + _1w: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1w_old_coindays_destroyed".to_string()), + _1m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1m_old_coindays_destroyed".to_string()), + _2m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_2m_old_coindays_destroyed".to_string()), + _3m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_3m_old_coindays_destroyed".to_string()), + _4m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_4m_old_coindays_destroyed".to_string()), + _5m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_5m_old_coindays_destroyed".to_string()), + _6m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_6m_old_coindays_destroyed".to_string()), + _9m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_9m_old_coindays_destroyed".to_string()), + _1y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_1y_old_coindays_destroyed".to_string()), + _18m: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_18m_old_coindays_destroyed".to_string()), + _2y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_2y_old_coindays_destroyed".to_string()), + _3y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_3y_old_coindays_destroyed".to_string()), + _4y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_4y_old_coindays_destroyed".to_string()), + _5y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_5y_old_coindays_destroyed".to_string()), + _6y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_6y_old_coindays_destroyed".to_string()), + _7y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_7y_old_coindays_destroyed".to_string()), + _8y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_8y_old_coindays_destroyed".to_string()), + _10y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_10y_old_coindays_destroyed".to_string()), + _12y: AverageBlockCumulativeSumPattern::new(client.clone(), "utxos_over_12y_old_coindays_destroyed".to_string()), } } } @@ -23527,26 +15359,11 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Epoch { impl SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_0_coindays_destroyed".to_string(), - ), - _1: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_1_coindays_destroyed".to_string(), - ), - _2: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_2_coindays_destroyed".to_string(), - ), - _3: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_3_coindays_destroyed".to_string(), - ), - _4: AverageBlockCumulativeSumPattern::new( - client.clone(), - "epoch_4_coindays_destroyed".to_string(), - ), + _0: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_0_coindays_destroyed".to_string()), + _1: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_1_coindays_destroyed".to_string()), + _2: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_2_coindays_destroyed".to_string()), + _3: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_3_coindays_destroyed".to_string()), + _4: AverageBlockCumulativeSumPattern::new(client.clone(), "epoch_4_coindays_destroyed".to_string()), } } } @@ -23576,78 +15393,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Class { impl SeriesTree_Cohorts_Cohorts_Activity_CoindaysDestroyed_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2009_coindays_destroyed".to_string(), - ), - _2010: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2010_coindays_destroyed".to_string(), - ), - _2011: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2011_coindays_destroyed".to_string(), - ), - _2012: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2012_coindays_destroyed".to_string(), - ), - _2013: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2013_coindays_destroyed".to_string(), - ), - _2014: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2014_coindays_destroyed".to_string(), - ), - _2015: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2015_coindays_destroyed".to_string(), - ), - _2016: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2016_coindays_destroyed".to_string(), - ), - _2017: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2017_coindays_destroyed".to_string(), - ), - _2018: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2018_coindays_destroyed".to_string(), - ), - _2019: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2019_coindays_destroyed".to_string(), - ), - _2020: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2020_coindays_destroyed".to_string(), - ), - _2021: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2021_coindays_destroyed".to_string(), - ), - _2022: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2022_coindays_destroyed".to_string(), - ), - _2023: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2023_coindays_destroyed".to_string(), - ), - _2024: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2024_coindays_destroyed".to_string(), - ), - _2025: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2025_coindays_destroyed".to_string(), - ), - _2026: AverageBlockCumulativeSumPattern::new( - client.clone(), - "class_2026_coindays_destroyed".to_string(), - ), + _2009: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2009_coindays_destroyed".to_string()), + _2010: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2010_coindays_destroyed".to_string()), + _2011: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2011_coindays_destroyed".to_string()), + _2012: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2012_coindays_destroyed".to_string()), + _2013: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2013_coindays_destroyed".to_string()), + _2014: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2014_coindays_destroyed".to_string()), + _2015: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2015_coindays_destroyed".to_string()), + _2016: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2016_coindays_destroyed".to_string()), + _2017: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2017_coindays_destroyed".to_string()), + _2018: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2018_coindays_destroyed".to_string()), + _2019: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2019_coindays_destroyed".to_string()), + _2020: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2020_coindays_destroyed".to_string()), + _2021: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2021_coindays_destroyed".to_string()), + _2022: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2022_coindays_destroyed".to_string()), + _2023: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2023_coindays_destroyed".to_string()), + _2024: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2024_coindays_destroyed".to_string()), + _2025: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2025_coindays_destroyed".to_string()), + _2026: AverageBlockCumulativeSumPattern::new(client.clone(), "class_2026_coindays_destroyed".to_string()), } } } @@ -23710,72 +15473,23 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized { impl SeriesTree_Cohorts_Cohorts_Realized { pub fn new(client: Arc, base_path: String) -> Self { Self { - cap: SeriesTree_Cohorts_Cohorts_Realized_Cap::new( - client.clone(), - format!("{base_path}_cap"), - ), - price: SeriesTree_Cohorts_Cohorts_Realized_Price::new( - client.clone(), - format!("{base_path}_price"), - ), - profit: SeriesTree_Cohorts_Cohorts_Realized_Profit::new( - client.clone(), - format!("{base_path}_profit"), - ), - loss: SeriesTree_Cohorts_Cohorts_Realized_Loss::new( - client.clone(), - format!("{base_path}_loss"), - ), - net_pnl: SeriesTree_Cohorts_Cohorts_Realized_NetPnl::new( - client.clone(), - format!("{base_path}_net_pnl"), - ), - sopr: SeriesTree_Cohorts_Cohorts_Realized_Sopr::new( - client.clone(), - format!("{base_path}_sopr"), - ), - adjusted_sopr: SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr::new( - client.clone(), - format!("{base_path}_adjusted_sopr"), - ), - gross_pnl: SeriesTree_Cohorts_Cohorts_Realized_GrossPnl::new( - client.clone(), - format!("{base_path}_gross_pnl"), - ), - capitalized_price: SeriesTree_Cohorts_Cohorts_Realized_CapitalizedPrice::new( - client.clone(), - format!("{base_path}_capitalized_price"), - ), + cap: SeriesTree_Cohorts_Cohorts_Realized_Cap::new(client.clone(), format!("{base_path}_cap")), + price: SeriesTree_Cohorts_Cohorts_Realized_Price::new(client.clone(), format!("{base_path}_price")), + profit: SeriesTree_Cohorts_Cohorts_Realized_Profit::new(client.clone(), format!("{base_path}_profit")), + loss: SeriesTree_Cohorts_Cohorts_Realized_Loss::new(client.clone(), format!("{base_path}_loss")), + net_pnl: SeriesTree_Cohorts_Cohorts_Realized_NetPnl::new(client.clone(), format!("{base_path}_net_pnl")), + sopr: SeriesTree_Cohorts_Cohorts_Realized_Sopr::new(client.clone(), format!("{base_path}_sopr")), + adjusted_sopr: SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr::new(client.clone(), format!("{base_path}_adjusted_sopr")), + gross_pnl: SeriesTree_Cohorts_Cohorts_Realized_GrossPnl::new(client.clone(), format!("{base_path}_gross_pnl")), + capitalized_price: SeriesTree_Cohorts_Cohorts_Realized_CapitalizedPrice::new(client.clone(), format!("{base_path}_capitalized_price")), cap_raw: MatrixPattern::new(client.clone(), "cap_raw_by_term".to_string()), - capitalized_cap_raw: MatrixPattern::new( - client.clone(), - "capitalized_cap_raw_by_term".to_string(), - ), - peak_regret: SeriesTree_Cohorts_Cohorts_Realized_PeakRegret::new( - client.clone(), - format!("{base_path}_peak_regret"), - ), - net_pnl_change_1m_to_rcap: - SeriesTree_Cohorts_Cohorts_Realized_NetPnlChange1mToRcap::new( - client.clone(), - format!("{base_path}_net_pnl_change_1m_to_rcap"), - ), - sell_side_risk_ratio: SeriesTree_Cohorts_Cohorts_Realized_SellSideRiskRatio::new( - client.clone(), - format!("{base_path}_sell_side_risk_ratio"), - ), - sopr_ratio_extended: SeriesTree_Cohorts_Cohorts_Realized_SoprRatioExtended::new( - client.clone(), - format!("{base_path}_sopr_ratio_extended"), - ), - profit_to_loss_ratio: SeriesTree_Cohorts_Cohorts_Realized_ProfitToLossRatio::new( - client.clone(), - format!("{base_path}_profit_to_loss_ratio"), - ), - mvrv: SeriesTree_Cohorts_Cohorts_Realized_Mvrv::new( - client.clone(), - format!("{base_path}_mvrv"), - ), + capitalized_cap_raw: MatrixPattern::new(client.clone(), "capitalized_cap_raw_by_term".to_string()), + peak_regret: SeriesTree_Cohorts_Cohorts_Realized_PeakRegret::new(client.clone(), format!("{base_path}_peak_regret")), + net_pnl_change_1m_to_rcap: SeriesTree_Cohorts_Cohorts_Realized_NetPnlChange1mToRcap::new(client.clone(), format!("{base_path}_net_pnl_change_1m_to_rcap")), + sell_side_risk_ratio: SeriesTree_Cohorts_Cohorts_Realized_SellSideRiskRatio::new(client.clone(), format!("{base_path}_sell_side_risk_ratio")), + sopr_ratio_extended: SeriesTree_Cohorts_Cohorts_Realized_SoprRatioExtended::new(client.clone(), format!("{base_path}_sopr_ratio_extended")), + profit_to_loss_ratio: SeriesTree_Cohorts_Cohorts_Realized_ProfitToLossRatio::new(client.clone(), format!("{base_path}_profit_to_loss_ratio")), + mvrv: SeriesTree_Cohorts_Cohorts_Realized_Mvrv::new(client.clone(), format!("{base_path}_mvrv")), } } } @@ -23804,66 +15518,21 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Cap { pub fn new(client: Arc, base_path: String) -> Self { Self { all: CentsDeltaUsdPattern::new(client.clone(), "realized_cap".to_string()), - age: SeriesTree_Cohorts_Cohorts_Realized_Cap_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Realized_Cap_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Realized_Cap_Class::new( - client.clone(), - format!("{base_path}_class"), - ), - entry: SeriesTree_Cohorts_Cohorts_Realized_Cap_Entry::new( - client.clone(), - format!("{base_path}_entry"), - ), - utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Cap_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), - term: SeriesTree_Cohorts_Cohorts_Realized_Cap_Term::new( - client.clone(), - format!("{base_path}_term"), - ), - type_: SeriesTree_Cohorts_Cohorts_Realized_Cap_Type::new( - client.clone(), - format!("{base_path}_type"), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_cap_cents_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "realized_cap_cents_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "realized_cap_cents_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "realized_cap_cents_by_entry".to_string(), - ), - type_matrix: SeriesPattern18::new( - client.clone(), - "realized_cap_cents_by_type".to_string(), - ), - amount_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_cap_cents_by_amount_range".to_string(), - ), - addr_balance: SeriesTree_Cohorts_Cohorts_Realized_Cap_AddrBalance::new( - client.clone(), - format!("{base_path}_addr_balance"), - ), - to_own_mcap: AllLthSthPattern5::new( - client.clone(), - "realized_cap_to_own_mcap".to_string(), - ), + age: SeriesTree_Cohorts_Cohorts_Realized_Cap_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Realized_Cap_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Realized_Cap_Class::new(client.clone(), format!("{base_path}_class")), + entry: SeriesTree_Cohorts_Cohorts_Realized_Cap_Entry::new(client.clone(), format!("{base_path}_entry")), + utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Cap_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), + term: SeriesTree_Cohorts_Cohorts_Realized_Cap_Term::new(client.clone(), format!("{base_path}_term")), + type_: SeriesTree_Cohorts_Cohorts_Realized_Cap_Type::new(client.clone(), format!("{base_path}_type")), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_cap_cents_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "realized_cap_cents_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "realized_cap_cents_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "realized_cap_cents_by_entry".to_string()), + type_matrix: SeriesPattern18::new(client.clone(), "realized_cap_cents_by_type".to_string()), + amount_range_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_cap_cents_by_amount_range".to_string()), + addr_balance: SeriesTree_Cohorts_Cohorts_Realized_Cap_AddrBalance::new(client.clone(), format!("{base_path}_addr_balance")), + to_own_mcap: AllLthSthPattern5::new(client.clone(), "realized_cap_to_own_mcap".to_string()), } } } @@ -23878,18 +15547,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Cap_Age { impl SeriesTree_Cohorts_Cohorts_Realized_Cap_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -23924,98 +15584,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_1h_old_realized_cap".to_string(), - ), - _1h_to_1d: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_realized_cap".to_string(), - ), - _1d_to_1w: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_realized_cap".to_string(), - ), - _1w_to_1m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_realized_cap".to_string(), - ), - _1m_to_2m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_realized_cap".to_string(), - ), - _2m_to_3m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_realized_cap".to_string(), - ), - _3m_to_4m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_realized_cap".to_string(), - ), - _4m_to_5m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_realized_cap".to_string(), - ), - _5m_to_6m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_realized_cap".to_string(), - ), - _6m_to_9m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_realized_cap".to_string(), - ), - _9m_to_1y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_realized_cap".to_string(), - ), - _1y_to_18m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_realized_cap".to_string(), - ), - _18m_to_2y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_realized_cap".to_string(), - ), - _2y_to_3y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_realized_cap".to_string(), - ), - _3y_to_4y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_realized_cap".to_string(), - ), - _4y_to_5y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_realized_cap".to_string(), - ), - _5y_to_6y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_realized_cap".to_string(), - ), - _6y_to_7y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_realized_cap".to_string(), - ), - _7y_to_8y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_realized_cap".to_string(), - ), - _8y_to_10y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_realized_cap".to_string(), - ), - _10y_to_12y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_realized_cap".to_string(), - ), - _12y_to_15y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_realized_cap".to_string(), - ), - over_15y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_15y_old_realized_cap".to_string(), - ), + under_1h: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_1h_old_realized_cap".to_string()), + _1h_to_1d: CentsDeltaUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_realized_cap".to_string()), + _1d_to_1w: CentsDeltaUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_realized_cap".to_string()), + _1w_to_1m: CentsDeltaUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_realized_cap".to_string()), + _1m_to_2m: CentsDeltaUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_realized_cap".to_string()), + _2m_to_3m: CentsDeltaUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_realized_cap".to_string()), + _3m_to_4m: CentsDeltaUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_realized_cap".to_string()), + _4m_to_5m: CentsDeltaUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_realized_cap".to_string()), + _5m_to_6m: CentsDeltaUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_realized_cap".to_string()), + _6m_to_9m: CentsDeltaUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_realized_cap".to_string()), + _9m_to_1y: CentsDeltaUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_realized_cap".to_string()), + _1y_to_18m: CentsDeltaUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_realized_cap".to_string()), + _18m_to_2y: CentsDeltaUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_realized_cap".to_string()), + _2y_to_3y: CentsDeltaUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_realized_cap".to_string()), + _3y_to_4y: CentsDeltaUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_realized_cap".to_string()), + _4y_to_5y: CentsDeltaUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_realized_cap".to_string()), + _5y_to_6y: CentsDeltaUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_realized_cap".to_string()), + _6y_to_7y: CentsDeltaUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_realized_cap".to_string()), + _7y_to_8y: CentsDeltaUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_realized_cap".to_string()), + _8y_to_10y: CentsDeltaUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_realized_cap".to_string()), + _10y_to_12y: CentsDeltaUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_realized_cap".to_string()), + _12y_to_15y: CentsDeltaUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_realized_cap".to_string()), + over_15y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_15y_old_realized_cap".to_string()), } } } @@ -24047,86 +15638,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_1w_old_realized_cap".to_string(), - ), - _1m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_1m_old_realized_cap".to_string(), - ), - _2m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_2m_old_realized_cap".to_string(), - ), - _3m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_3m_old_realized_cap".to_string(), - ), - _4m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_4m_old_realized_cap".to_string(), - ), - _5m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_5m_old_realized_cap".to_string(), - ), - _6m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_6m_old_realized_cap".to_string(), - ), - _9m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_9m_old_realized_cap".to_string(), - ), - _1y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_1y_old_realized_cap".to_string(), - ), - _18m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_18m_old_realized_cap".to_string(), - ), - _2y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_2y_old_realized_cap".to_string(), - ), - _3y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_3y_old_realized_cap".to_string(), - ), - _4y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_4y_old_realized_cap".to_string(), - ), - _5y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_5y_old_realized_cap".to_string(), - ), - _6y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_6y_old_realized_cap".to_string(), - ), - _7y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_7y_old_realized_cap".to_string(), - ), - _8y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_8y_old_realized_cap".to_string(), - ), - _10y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_10y_old_realized_cap".to_string(), - ), - _12y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_12y_old_realized_cap".to_string(), - ), - _15y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_under_15y_old_realized_cap".to_string(), - ), + _1w: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_1w_old_realized_cap".to_string()), + _1m: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_1m_old_realized_cap".to_string()), + _2m: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_2m_old_realized_cap".to_string()), + _3m: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_3m_old_realized_cap".to_string()), + _4m: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_4m_old_realized_cap".to_string()), + _5m: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_5m_old_realized_cap".to_string()), + _6m: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_6m_old_realized_cap".to_string()), + _9m: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_9m_old_realized_cap".to_string()), + _1y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_1y_old_realized_cap".to_string()), + _18m: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_18m_old_realized_cap".to_string()), + _2y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_2y_old_realized_cap".to_string()), + _3y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_3y_old_realized_cap".to_string()), + _4y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_4y_old_realized_cap".to_string()), + _5y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_5y_old_realized_cap".to_string()), + _6y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_6y_old_realized_cap".to_string()), + _7y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_7y_old_realized_cap".to_string()), + _8y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_8y_old_realized_cap".to_string()), + _10y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_10y_old_realized_cap".to_string()), + _12y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_12y_old_realized_cap".to_string()), + _15y: CentsDeltaUsdPattern::new(client.clone(), "utxos_under_15y_old_realized_cap".to_string()), } } } @@ -24158,86 +15689,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Cap_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_1d_old_realized_cap".to_string(), - ), - _1w: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_1w_old_realized_cap".to_string(), - ), - _1m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_1m_old_realized_cap".to_string(), - ), - _2m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_2m_old_realized_cap".to_string(), - ), - _3m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_3m_old_realized_cap".to_string(), - ), - _4m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_4m_old_realized_cap".to_string(), - ), - _5m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_5m_old_realized_cap".to_string(), - ), - _6m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_6m_old_realized_cap".to_string(), - ), - _9m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_9m_old_realized_cap".to_string(), - ), - _1y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_1y_old_realized_cap".to_string(), - ), - _18m: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_18m_old_realized_cap".to_string(), - ), - _2y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_2y_old_realized_cap".to_string(), - ), - _3y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_3y_old_realized_cap".to_string(), - ), - _4y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_4y_old_realized_cap".to_string(), - ), - _5y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_5y_old_realized_cap".to_string(), - ), - _6y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_6y_old_realized_cap".to_string(), - ), - _7y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_7y_old_realized_cap".to_string(), - ), - _8y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_8y_old_realized_cap".to_string(), - ), - _10y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_10y_old_realized_cap".to_string(), - ), - _12y: CentsDeltaUsdPattern::new( - client.clone(), - "utxos_over_12y_old_realized_cap".to_string(), - ), + _1d: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_1d_old_realized_cap".to_string()), + _1w: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_1w_old_realized_cap".to_string()), + _1m: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_1m_old_realized_cap".to_string()), + _2m: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_2m_old_realized_cap".to_string()), + _3m: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_3m_old_realized_cap".to_string()), + _4m: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_4m_old_realized_cap".to_string()), + _5m: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_5m_old_realized_cap".to_string()), + _6m: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_6m_old_realized_cap".to_string()), + _9m: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_9m_old_realized_cap".to_string()), + _1y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_1y_old_realized_cap".to_string()), + _18m: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_18m_old_realized_cap".to_string()), + _2y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_2y_old_realized_cap".to_string()), + _3y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_3y_old_realized_cap".to_string()), + _4y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_4y_old_realized_cap".to_string()), + _5y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_5y_old_realized_cap".to_string()), + _6y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_6y_old_realized_cap".to_string()), + _7y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_7y_old_realized_cap".to_string()), + _8y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_8y_old_realized_cap".to_string()), + _10y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_10y_old_realized_cap".to_string()), + _12y: CentsDeltaUsdPattern::new(client.clone(), "utxos_over_12y_old_realized_cap".to_string()), } } } @@ -24335,18 +15806,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Cap_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Realized_Cap_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern4::new( - client.clone(), - "utxos".to_string(), - ), - under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern4::new( - client.clone(), - "utxos_under".to_string(), - ), - over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern4::new( - client.clone(), - "utxos_over".to_string(), - ), + range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern4::new(client.clone(), "utxos".to_string()), + under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern4::new(client.clone(), "utxos_under".to_string()), + over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern4::new(client.clone(), "utxos_over".to_string()), } } } @@ -24393,14 +15855,8 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Cap_Type { p2wsh: CentsDeltaUsdPattern::new(client.clone(), "p2wsh_realized_cap".to_string()), p2tr: CentsDeltaUsdPattern::new(client.clone(), "p2tr_realized_cap".to_string()), p2a: CentsDeltaUsdPattern::new(client.clone(), "p2a_realized_cap".to_string()), - unknown: CentsDeltaUsdPattern::new( - client.clone(), - "unknown_outputs_realized_cap".to_string(), - ), - empty: CentsDeltaUsdPattern::new( - client.clone(), - "empty_outputs_realized_cap".to_string(), - ), + unknown: CentsDeltaUsdPattern::new(client.clone(), "unknown_outputs_realized_cap".to_string()), + empty: CentsDeltaUsdPattern::new(client.clone(), "empty_outputs_realized_cap".to_string()), } } } @@ -24416,22 +15872,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Cap_AddrBalance { impl SeriesTree_Cohorts_Cohorts_Realized_Cap_AddrBalance { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern4::new( - client.clone(), - "addrs".to_string(), - ), - under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern4::new( - client.clone(), - "addrs_under".to_string(), - ), - over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern4::new( - client.clone(), - "addrs_over".to_string(), - ), - matrix: SeriesPattern18::new( - client.clone(), - "addrs_realized_cap_cents_by_balance_range".to_string(), - ), + range: _0sats100btc100k100sats10btc10k10m10sats1btc1k1m1satOverPattern4::new(client.clone(), "addrs".to_string()), + under: _100btc100k100sats10btc10k10m10sats1btc1k1mPattern4::new(client.clone(), "addrs_under".to_string()), + over: _100btc100k100sats10btc10k10m10sats1btc1k1m1satPattern4::new(client.clone(), "addrs_over".to_string()), + matrix: SeriesPattern18::new(client.clone(), "addrs_realized_cap_cents_by_balance_range".to_string()), } } } @@ -24463,78 +15907,24 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Price { pub fn new(client: Arc, base_path: String) -> Self { Self { all: CentsPpmRatioSatsUsdPattern::new(client.clone(), "realized_price".to_string()), - age: SeriesTree_Cohorts_Cohorts_Realized_Price_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Realized_Price_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Realized_Price_Class::new( - client.clone(), - format!("{base_path}_class"), - ), - entry: SeriesTree_Cohorts_Cohorts_Realized_Price_Entry::new( - client.clone(), - format!("{base_path}_entry"), - ), - utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), - term: SeriesTree_Cohorts_Cohorts_Realized_Price_Term::new( - client.clone(), - format!("{base_path}_term"), - ), - type_: SeriesTree_Cohorts_Cohorts_Realized_Price_Type::new( - client.clone(), - format!("{base_path}_type"), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_price_cents_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "realized_price_cents_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "realized_price_cents_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "realized_price_cents_by_entry".to_string(), - ), - type_matrix: SeriesPattern18::new( - client.clone(), - "realized_price_cents_by_type".to_string(), - ), - amount_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_price_cents_by_amount_range".to_string(), - ), - aggregate_matrix: SeriesPattern18::new( - client.clone(), - "realized_price_cents_by_aggregate".to_string(), - ), - under_age_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_price_cents_by_under_age".to_string(), - ), - over_age_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_price_cents_by_over_age".to_string(), - ), - under_amount_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_price_cents_by_under_amount".to_string(), - ), - over_amount_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_price_cents_by_over_amount".to_string(), - ), + age: SeriesTree_Cohorts_Cohorts_Realized_Price_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Realized_Price_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Realized_Price_Class::new(client.clone(), format!("{base_path}_class")), + entry: SeriesTree_Cohorts_Cohorts_Realized_Price_Entry::new(client.clone(), format!("{base_path}_entry")), + utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), + term: SeriesTree_Cohorts_Cohorts_Realized_Price_Term::new(client.clone(), format!("{base_path}_term")), + type_: SeriesTree_Cohorts_Cohorts_Realized_Price_Type::new(client.clone(), format!("{base_path}_type")), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_price_cents_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "realized_price_cents_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "realized_price_cents_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "realized_price_cents_by_entry".to_string()), + type_matrix: SeriesPattern18::new(client.clone(), "realized_price_cents_by_type".to_string()), + amount_range_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_price_cents_by_amount_range".to_string()), + aggregate_matrix: SeriesPattern18::new(client.clone(), "realized_price_cents_by_aggregate".to_string()), + under_age_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_price_cents_by_under_age".to_string()), + over_age_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_price_cents_by_over_age".to_string()), + under_amount_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_price_cents_by_under_amount".to_string()), + over_amount_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_price_cents_by_over_amount".to_string()), } } } @@ -24549,18 +15939,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_Age { impl SeriesTree_Cohorts_Cohorts_Realized_Price_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -24595,98 +15976,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_realized_price".to_string(), - ), - _1h_to_1d: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_realized_price".to_string(), - ), - _1d_to_1w: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_realized_price".to_string(), - ), - _1w_to_1m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_realized_price".to_string(), - ), - _1m_to_2m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_realized_price".to_string(), - ), - _2m_to_3m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_realized_price".to_string(), - ), - _3m_to_4m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_realized_price".to_string(), - ), - _4m_to_5m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_realized_price".to_string(), - ), - _5m_to_6m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_realized_price".to_string(), - ), - _6m_to_9m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_realized_price".to_string(), - ), - _9m_to_1y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_realized_price".to_string(), - ), - _1y_to_18m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_realized_price".to_string(), - ), - _18m_to_2y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_realized_price".to_string(), - ), - _2y_to_3y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_realized_price".to_string(), - ), - _3y_to_4y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_realized_price".to_string(), - ), - _4y_to_5y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_realized_price".to_string(), - ), - _5y_to_6y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_realized_price".to_string(), - ), - _6y_to_7y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_realized_price".to_string(), - ), - _7y_to_8y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_realized_price".to_string(), - ), - _8y_to_10y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_realized_price".to_string(), - ), - _10y_to_12y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_realized_price".to_string(), - ), - _12y_to_15y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_realized_price".to_string(), - ), - over_15y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_realized_price".to_string(), - ), + under_1h: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_1h_old_realized_price".to_string()), + _1h_to_1d: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_realized_price".to_string()), + _1d_to_1w: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_realized_price".to_string()), + _1w_to_1m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_realized_price".to_string()), + _1m_to_2m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_realized_price".to_string()), + _2m_to_3m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_realized_price".to_string()), + _3m_to_4m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_realized_price".to_string()), + _4m_to_5m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_realized_price".to_string()), + _5m_to_6m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_realized_price".to_string()), + _6m_to_9m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_realized_price".to_string()), + _9m_to_1y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_realized_price".to_string()), + _1y_to_18m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_realized_price".to_string()), + _18m_to_2y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_realized_price".to_string()), + _2y_to_3y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_realized_price".to_string()), + _3y_to_4y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_realized_price".to_string()), + _4y_to_5y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_realized_price".to_string()), + _5y_to_6y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_realized_price".to_string()), + _6y_to_7y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_realized_price".to_string()), + _7y_to_8y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_realized_price".to_string()), + _8y_to_10y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_realized_price".to_string()), + _10y_to_12y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_realized_price".to_string()), + _12y_to_15y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_realized_price".to_string()), + over_15y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_15y_old_realized_price".to_string()), } } } @@ -24718,86 +16030,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_1w_old_realized_price".to_string(), - ), - _1m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_1m_old_realized_price".to_string(), - ), - _2m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_2m_old_realized_price".to_string(), - ), - _3m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_3m_old_realized_price".to_string(), - ), - _4m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_4m_old_realized_price".to_string(), - ), - _5m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_5m_old_realized_price".to_string(), - ), - _6m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_6m_old_realized_price".to_string(), - ), - _9m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_9m_old_realized_price".to_string(), - ), - _1y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_1y_old_realized_price".to_string(), - ), - _18m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_18m_old_realized_price".to_string(), - ), - _2y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_2y_old_realized_price".to_string(), - ), - _3y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_3y_old_realized_price".to_string(), - ), - _4y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_4y_old_realized_price".to_string(), - ), - _5y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_5y_old_realized_price".to_string(), - ), - _6y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_6y_old_realized_price".to_string(), - ), - _7y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_7y_old_realized_price".to_string(), - ), - _8y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_8y_old_realized_price".to_string(), - ), - _10y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_10y_old_realized_price".to_string(), - ), - _12y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_12y_old_realized_price".to_string(), - ), - _15y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_15y_old_realized_price".to_string(), - ), + _1w: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_1w_old_realized_price".to_string()), + _1m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_1m_old_realized_price".to_string()), + _2m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_2m_old_realized_price".to_string()), + _3m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_3m_old_realized_price".to_string()), + _4m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_4m_old_realized_price".to_string()), + _5m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_5m_old_realized_price".to_string()), + _6m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_6m_old_realized_price".to_string()), + _9m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_9m_old_realized_price".to_string()), + _1y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_1y_old_realized_price".to_string()), + _18m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_18m_old_realized_price".to_string()), + _2y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_2y_old_realized_price".to_string()), + _3y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_3y_old_realized_price".to_string()), + _4y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_4y_old_realized_price".to_string()), + _5y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_5y_old_realized_price".to_string()), + _6y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_6y_old_realized_price".to_string()), + _7y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_7y_old_realized_price".to_string()), + _8y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_8y_old_realized_price".to_string()), + _10y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_10y_old_realized_price".to_string()), + _12y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_12y_old_realized_price".to_string()), + _15y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_15y_old_realized_price".to_string()), } } } @@ -24829,86 +16081,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Price_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_1d_old_realized_price".to_string(), - ), - _1w: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_1w_old_realized_price".to_string(), - ), - _1m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_1m_old_realized_price".to_string(), - ), - _2m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_2m_old_realized_price".to_string(), - ), - _3m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_3m_old_realized_price".to_string(), - ), - _4m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_4m_old_realized_price".to_string(), - ), - _5m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_5m_old_realized_price".to_string(), - ), - _6m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_6m_old_realized_price".to_string(), - ), - _9m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_9m_old_realized_price".to_string(), - ), - _1y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_1y_old_realized_price".to_string(), - ), - _18m: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_18m_old_realized_price".to_string(), - ), - _2y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_2y_old_realized_price".to_string(), - ), - _3y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_3y_old_realized_price".to_string(), - ), - _4y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_4y_old_realized_price".to_string(), - ), - _5y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_5y_old_realized_price".to_string(), - ), - _6y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_6y_old_realized_price".to_string(), - ), - _7y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_7y_old_realized_price".to_string(), - ), - _8y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_8y_old_realized_price".to_string(), - ), - _10y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_10y_old_realized_price".to_string(), - ), - _12y: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_12y_old_realized_price".to_string(), - ), + _1d: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_1d_old_realized_price".to_string()), + _1w: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_1w_old_realized_price".to_string()), + _1m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_1m_old_realized_price".to_string()), + _2m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_2m_old_realized_price".to_string()), + _3m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_3m_old_realized_price".to_string()), + _4m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_4m_old_realized_price".to_string()), + _5m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_5m_old_realized_price".to_string()), + _6m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_6m_old_realized_price".to_string()), + _9m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_9m_old_realized_price".to_string()), + _1y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_1y_old_realized_price".to_string()), + _18m: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_18m_old_realized_price".to_string()), + _2y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_2y_old_realized_price".to_string()), + _3y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_3y_old_realized_price".to_string()), + _4y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_4y_old_realized_price".to_string()), + _5y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_5y_old_realized_price".to_string()), + _6y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_6y_old_realized_price".to_string()), + _7y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_7y_old_realized_price".to_string()), + _8y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_8y_old_realized_price".to_string()), + _10y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_10y_old_realized_price".to_string()), + _12y: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_12y_old_realized_price".to_string()), } } } @@ -24925,26 +16117,11 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_Epoch { impl SeriesTree_Cohorts_Cohorts_Realized_Price_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "epoch_0_realized_price".to_string(), - ), - _1: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "epoch_1_realized_price".to_string(), - ), - _2: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "epoch_2_realized_price".to_string(), - ), - _3: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "epoch_3_realized_price".to_string(), - ), - _4: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "epoch_4_realized_price".to_string(), - ), + _0: CentsPpmRatioSatsUsdPattern::new(client.clone(), "epoch_0_realized_price".to_string()), + _1: CentsPpmRatioSatsUsdPattern::new(client.clone(), "epoch_1_realized_price".to_string()), + _2: CentsPpmRatioSatsUsdPattern::new(client.clone(), "epoch_2_realized_price".to_string()), + _3: CentsPpmRatioSatsUsdPattern::new(client.clone(), "epoch_3_realized_price".to_string()), + _4: CentsPpmRatioSatsUsdPattern::new(client.clone(), "epoch_4_realized_price".to_string()), } } } @@ -24974,78 +16151,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_Class { impl SeriesTree_Cohorts_Cohorts_Realized_Price_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2009_realized_price".to_string(), - ), - _2010: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2010_realized_price".to_string(), - ), - _2011: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2011_realized_price".to_string(), - ), - _2012: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2012_realized_price".to_string(), - ), - _2013: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2013_realized_price".to_string(), - ), - _2014: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2014_realized_price".to_string(), - ), - _2015: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2015_realized_price".to_string(), - ), - _2016: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2016_realized_price".to_string(), - ), - _2017: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2017_realized_price".to_string(), - ), - _2018: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2018_realized_price".to_string(), - ), - _2019: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2019_realized_price".to_string(), - ), - _2020: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2020_realized_price".to_string(), - ), - _2021: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2021_realized_price".to_string(), - ), - _2022: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2022_realized_price".to_string(), - ), - _2023: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2023_realized_price".to_string(), - ), - _2024: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2024_realized_price".to_string(), - ), - _2025: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2025_realized_price".to_string(), - ), - _2026: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "class_2026_realized_price".to_string(), - ), + _2009: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2009_realized_price".to_string()), + _2010: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2010_realized_price".to_string()), + _2011: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2011_realized_price".to_string()), + _2012: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2012_realized_price".to_string()), + _2013: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2013_realized_price".to_string()), + _2014: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2014_realized_price".to_string()), + _2015: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2015_realized_price".to_string()), + _2016: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2016_realized_price".to_string()), + _2017: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2017_realized_price".to_string()), + _2018: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2018_realized_price".to_string()), + _2019: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2019_realized_price".to_string()), + _2020: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2020_realized_price".to_string()), + _2021: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2021_realized_price".to_string()), + _2022: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2022_realized_price".to_string()), + _2023: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2023_realized_price".to_string()), + _2024: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2024_realized_price".to_string()), + _2025: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2025_realized_price".to_string()), + _2026: CentsPpmRatioSatsUsdPattern::new(client.clone(), "class_2026_realized_price".to_string()), } } } @@ -25059,14 +16182,8 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_Entry { impl SeriesTree_Cohorts_Cohorts_Realized_Price_Entry { pub fn new(client: Arc, base_path: String) -> Self { Self { - discount: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "veteran_realized_price".to_string(), - ), - premium: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "rookie_realized_price".to_string(), - ), + discount: CentsPpmRatioSatsUsdPattern::new(client.clone(), "veteran_realized_price".to_string()), + premium: CentsPpmRatioSatsUsdPattern::new(client.clone(), "rookie_realized_price".to_string()), } } } @@ -25081,18 +16198,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -25119,66 +16227,21 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_0sats_realized_price".to_string(), - ), - _1sat_to_10sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1sat_to_10sats_realized_price".to_string(), - ), - _10sats_to_100sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_10sats_to_100sats_realized_price".to_string(), - ), - _100sats_to_1k_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_100sats_to_1k_sats_realized_price".to_string(), - ), - _1k_sats_to_10k_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1k_sats_to_10k_sats_realized_price".to_string(), - ), - _10k_sats_to_100k_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_10k_sats_to_100k_sats_realized_price".to_string(), - ), - _100k_sats_to_1m_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_100k_sats_to_1m_sats_realized_price".to_string(), - ), - _1m_sats_to_10m_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1m_sats_to_10m_sats_realized_price".to_string(), - ), - _10m_sats_to_1btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_10m_sats_to_1btc_realized_price".to_string(), - ), - _1btc_to_10btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1btc_to_10btc_realized_price".to_string(), - ), - _10btc_to_100btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_10btc_to_100btc_realized_price".to_string(), - ), - _100btc_to_1k_btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_100btc_to_1k_btc_realized_price".to_string(), - ), - _1k_btc_to_10k_btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_1k_btc_to_10k_btc_realized_price".to_string(), - ), - _10k_btc_to_100k_btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_10k_btc_to_100k_btc_realized_price".to_string(), - ), - over_100k_btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_100k_btc_realized_price".to_string(), - ), + _0sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_0sats_realized_price".to_string()), + _1sat_to_10sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1sat_to_10sats_realized_price".to_string()), + _10sats_to_100sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_10sats_to_100sats_realized_price".to_string()), + _100sats_to_1k_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_100sats_to_1k_sats_realized_price".to_string()), + _1k_sats_to_10k_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_realized_price".to_string()), + _10k_sats_to_100k_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_realized_price".to_string()), + _100k_sats_to_1m_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_realized_price".to_string()), + _1m_sats_to_10m_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_realized_price".to_string()), + _10m_sats_to_1btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_10m_sats_to_1btc_realized_price".to_string()), + _1btc_to_10btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1btc_to_10btc_realized_price".to_string()), + _10btc_to_100btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_10btc_to_100btc_realized_price".to_string()), + _100btc_to_1k_btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_100btc_to_1k_btc_realized_price".to_string()), + _1k_btc_to_10k_btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_realized_price".to_string()), + _10k_btc_to_100k_btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_realized_price".to_string()), + over_100k_btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_100k_btc_realized_price".to_string()), } } } @@ -25203,58 +16266,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_10sats_realized_price".to_string(), - ), - _100sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_100sats_realized_price".to_string(), - ), - _1k_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_1k_sats_realized_price".to_string(), - ), - _10k_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_10k_sats_realized_price".to_string(), - ), - _100k_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_100k_sats_realized_price".to_string(), - ), - _1m_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_1m_sats_realized_price".to_string(), - ), - _10m_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_10m_sats_realized_price".to_string(), - ), - _1btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_1btc_realized_price".to_string(), - ), - _10btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_10btc_realized_price".to_string(), - ), - _100btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_100btc_realized_price".to_string(), - ), - _1k_btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_1k_btc_realized_price".to_string(), - ), - _10k_btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_10k_btc_realized_price".to_string(), - ), - _100k_btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_under_100k_btc_realized_price".to_string(), - ), + _10sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_10sats_realized_price".to_string()), + _100sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_100sats_realized_price".to_string()), + _1k_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_1k_sats_realized_price".to_string()), + _10k_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_10k_sats_realized_price".to_string()), + _100k_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_100k_sats_realized_price".to_string()), + _1m_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_1m_sats_realized_price".to_string()), + _10m_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_10m_sats_realized_price".to_string()), + _1btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_1btc_realized_price".to_string()), + _10btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_10btc_realized_price".to_string()), + _100btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_100btc_realized_price".to_string()), + _1k_btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_1k_btc_realized_price".to_string()), + _10k_btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_10k_btc_realized_price".to_string()), + _100k_btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_under_100k_btc_realized_price".to_string()), } } } @@ -25279,58 +16303,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Price_UtxoAmount_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_1sat_realized_price".to_string(), - ), - _10sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_10sats_realized_price".to_string(), - ), - _100sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_100sats_realized_price".to_string(), - ), - _1k_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_1k_sats_realized_price".to_string(), - ), - _10k_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_10k_sats_realized_price".to_string(), - ), - _100k_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_100k_sats_realized_price".to_string(), - ), - _1m_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_1m_sats_realized_price".to_string(), - ), - _10m_sats: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_10m_sats_realized_price".to_string(), - ), - _1btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_1btc_realized_price".to_string(), - ), - _10btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_10btc_realized_price".to_string(), - ), - _100btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_100btc_realized_price".to_string(), - ), - _1k_btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_1k_btc_realized_price".to_string(), - ), - _10k_btc: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "utxos_over_10k_btc_realized_price".to_string(), - ), + _1sat: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_1sat_realized_price".to_string()), + _10sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_10sats_realized_price".to_string()), + _100sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_100sats_realized_price".to_string()), + _1k_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_1k_sats_realized_price".to_string()), + _10k_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_10k_sats_realized_price".to_string()), + _100k_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_100k_sats_realized_price".to_string()), + _1m_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_1m_sats_realized_price".to_string()), + _10m_sats: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_10m_sats_realized_price".to_string()), + _1btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_1btc_realized_price".to_string()), + _10btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_10btc_realized_price".to_string()), + _100btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_100btc_realized_price".to_string()), + _1k_btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_1k_btc_realized_price".to_string()), + _10k_btc: CentsPpmRatioSatsUsdPattern::new(client.clone(), "utxos_over_10k_btc_realized_price".to_string()), } } } @@ -25344,14 +16329,8 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_Term { impl SeriesTree_Cohorts_Cohorts_Realized_Price_Term { pub fn new(client: Arc, base_path: String) -> Self { Self { - short: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "sth_realized_price".to_string(), - ), - long: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "lth_realized_price".to_string(), - ), + short: CentsPpmRatioSatsUsdPattern::new(client.clone(), "sth_realized_price".to_string()), + long: CentsPpmRatioSatsUsdPattern::new(client.clone(), "lth_realized_price".to_string()), } } } @@ -25374,47 +16353,17 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Price_Type { impl SeriesTree_Cohorts_Cohorts_Realized_Price_Type { pub fn new(client: Arc, base_path: String) -> Self { Self { - p2pk65: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "p2pk65_realized_price".to_string(), - ), - p2pk33: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "p2pk33_realized_price".to_string(), - ), - p2pkh: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "p2pkh_realized_price".to_string(), - ), - p2ms: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "p2ms_realized_price".to_string(), - ), - p2sh: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "p2sh_realized_price".to_string(), - ), - p2wpkh: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "p2wpkh_realized_price".to_string(), - ), - p2wsh: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "p2wsh_realized_price".to_string(), - ), - p2tr: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "p2tr_realized_price".to_string(), - ), + p2pk65: CentsPpmRatioSatsUsdPattern::new(client.clone(), "p2pk65_realized_price".to_string()), + p2pk33: CentsPpmRatioSatsUsdPattern::new(client.clone(), "p2pk33_realized_price".to_string()), + p2pkh: CentsPpmRatioSatsUsdPattern::new(client.clone(), "p2pkh_realized_price".to_string()), + p2ms: CentsPpmRatioSatsUsdPattern::new(client.clone(), "p2ms_realized_price".to_string()), + p2sh: CentsPpmRatioSatsUsdPattern::new(client.clone(), "p2sh_realized_price".to_string()), + p2wpkh: CentsPpmRatioSatsUsdPattern::new(client.clone(), "p2wpkh_realized_price".to_string()), + p2wsh: CentsPpmRatioSatsUsdPattern::new(client.clone(), "p2wsh_realized_price".to_string()), + p2tr: CentsPpmRatioSatsUsdPattern::new(client.clone(), "p2tr_realized_price".to_string()), p2a: CentsPpmRatioSatsUsdPattern::new(client.clone(), "p2a_realized_price".to_string()), - unknown: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "unknown_outputs_realized_price".to_string(), - ), - empty: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "empty_outputs_realized_price".to_string(), - ), + unknown: CentsPpmRatioSatsUsdPattern::new(client.clone(), "unknown_outputs_realized_price".to_string()), + empty: CentsPpmRatioSatsUsdPattern::new(client.clone(), "empty_outputs_realized_price".to_string()), } } } @@ -25442,56 +16391,20 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Profit { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BlockCumulativeSumPattern::new(client.clone(), "realized_profit".to_string()), - age: SeriesTree_Cohorts_Cohorts_Realized_Profit_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Realized_Profit_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Realized_Profit_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Realized_Profit_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Realized_Profit_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Realized_Profit_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern5::new(client.clone(), "realized_profit".to_string()), - utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), + utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), term: LongShortPattern6::new(client.clone(), "realized_profit".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern5::new( - client.clone(), - "realized_profit".to_string(), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_profit_cumulative_cents_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "realized_profit_cumulative_cents_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "realized_profit_cumulative_cents_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "realized_profit_cumulative_cents_by_entry".to_string(), - ), - type_matrix: SeriesPattern18::new( - client.clone(), - "realized_profit_cumulative_cents_by_type".to_string(), - ), - amount_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_profit_cumulative_cents_by_amount_range".to_string(), - ), - addr_balance: SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance::new( - client.clone(), - format!("{base_path}_addr_balance"), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern5::new(client.clone(), "realized_profit".to_string()), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_profit_cumulative_cents_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "realized_profit_cumulative_cents_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "realized_profit_cumulative_cents_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "realized_profit_cumulative_cents_by_entry".to_string()), + type_matrix: SeriesPattern18::new(client.clone(), "realized_profit_cumulative_cents_by_type".to_string()), + amount_range_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_profit_cumulative_cents_by_amount_range".to_string()), + addr_balance: SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance::new(client.clone(), format!("{base_path}_addr_balance")), } } } @@ -25506,18 +16419,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_Age { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -25552,98 +16456,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1h_old_realized_profit".to_string(), - ), - _1h_to_1d: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_realized_profit".to_string(), - ), - _1d_to_1w: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_realized_profit".to_string(), - ), - _1w_to_1m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_realized_profit".to_string(), - ), - _1m_to_2m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_realized_profit".to_string(), - ), - _2m_to_3m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_realized_profit".to_string(), - ), - _3m_to_4m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_realized_profit".to_string(), - ), - _4m_to_5m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_realized_profit".to_string(), - ), - _5m_to_6m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_realized_profit".to_string(), - ), - _6m_to_9m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_realized_profit".to_string(), - ), - _9m_to_1y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_realized_profit".to_string(), - ), - _1y_to_18m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_realized_profit".to_string(), - ), - _18m_to_2y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_realized_profit".to_string(), - ), - _2y_to_3y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_realized_profit".to_string(), - ), - _3y_to_4y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_realized_profit".to_string(), - ), - _4y_to_5y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_realized_profit".to_string(), - ), - _5y_to_6y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_realized_profit".to_string(), - ), - _6y_to_7y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_realized_profit".to_string(), - ), - _7y_to_8y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_realized_profit".to_string(), - ), - _8y_to_10y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_realized_profit".to_string(), - ), - _10y_to_12y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_realized_profit".to_string(), - ), - _12y_to_15y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_realized_profit".to_string(), - ), - over_15y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_15y_old_realized_profit".to_string(), - ), + under_1h: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1h_old_realized_profit".to_string()), + _1h_to_1d: BlockCumulativeSumPattern::new(client.clone(), "utxos_1h_to_1d_old_realized_profit".to_string()), + _1d_to_1w: BlockCumulativeSumPattern::new(client.clone(), "utxos_1d_to_1w_old_realized_profit".to_string()), + _1w_to_1m: BlockCumulativeSumPattern::new(client.clone(), "utxos_1w_to_1m_old_realized_profit".to_string()), + _1m_to_2m: BlockCumulativeSumPattern::new(client.clone(), "utxos_1m_to_2m_old_realized_profit".to_string()), + _2m_to_3m: BlockCumulativeSumPattern::new(client.clone(), "utxos_2m_to_3m_old_realized_profit".to_string()), + _3m_to_4m: BlockCumulativeSumPattern::new(client.clone(), "utxos_3m_to_4m_old_realized_profit".to_string()), + _4m_to_5m: BlockCumulativeSumPattern::new(client.clone(), "utxos_4m_to_5m_old_realized_profit".to_string()), + _5m_to_6m: BlockCumulativeSumPattern::new(client.clone(), "utxos_5m_to_6m_old_realized_profit".to_string()), + _6m_to_9m: BlockCumulativeSumPattern::new(client.clone(), "utxos_6m_to_9m_old_realized_profit".to_string()), + _9m_to_1y: BlockCumulativeSumPattern::new(client.clone(), "utxos_9m_to_1y_old_realized_profit".to_string()), + _1y_to_18m: BlockCumulativeSumPattern::new(client.clone(), "utxos_1y_to_18m_old_realized_profit".to_string()), + _18m_to_2y: BlockCumulativeSumPattern::new(client.clone(), "utxos_18m_to_2y_old_realized_profit".to_string()), + _2y_to_3y: BlockCumulativeSumPattern::new(client.clone(), "utxos_2y_to_3y_old_realized_profit".to_string()), + _3y_to_4y: BlockCumulativeSumPattern::new(client.clone(), "utxos_3y_to_4y_old_realized_profit".to_string()), + _4y_to_5y: BlockCumulativeSumPattern::new(client.clone(), "utxos_4y_to_5y_old_realized_profit".to_string()), + _5y_to_6y: BlockCumulativeSumPattern::new(client.clone(), "utxos_5y_to_6y_old_realized_profit".to_string()), + _6y_to_7y: BlockCumulativeSumPattern::new(client.clone(), "utxos_6y_to_7y_old_realized_profit".to_string()), + _7y_to_8y: BlockCumulativeSumPattern::new(client.clone(), "utxos_7y_to_8y_old_realized_profit".to_string()), + _8y_to_10y: BlockCumulativeSumPattern::new(client.clone(), "utxos_8y_to_10y_old_realized_profit".to_string()), + _10y_to_12y: BlockCumulativeSumPattern::new(client.clone(), "utxos_10y_to_12y_old_realized_profit".to_string()), + _12y_to_15y: BlockCumulativeSumPattern::new(client.clone(), "utxos_12y_to_15y_old_realized_profit".to_string()), + over_15y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_15y_old_realized_profit".to_string()), } } } @@ -25675,86 +16510,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1w_old_realized_profit".to_string(), - ), - _1m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1m_old_realized_profit".to_string(), - ), - _2m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2m_old_realized_profit".to_string(), - ), - _3m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3m_old_realized_profit".to_string(), - ), - _4m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4m_old_realized_profit".to_string(), - ), - _5m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5m_old_realized_profit".to_string(), - ), - _6m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6m_old_realized_profit".to_string(), - ), - _9m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_9m_old_realized_profit".to_string(), - ), - _1y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1y_old_realized_profit".to_string(), - ), - _18m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_18m_old_realized_profit".to_string(), - ), - _2y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2y_old_realized_profit".to_string(), - ), - _3y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3y_old_realized_profit".to_string(), - ), - _4y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4y_old_realized_profit".to_string(), - ), - _5y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5y_old_realized_profit".to_string(), - ), - _6y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6y_old_realized_profit".to_string(), - ), - _7y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_7y_old_realized_profit".to_string(), - ), - _8y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_8y_old_realized_profit".to_string(), - ), - _10y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10y_old_realized_profit".to_string(), - ), - _12y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_12y_old_realized_profit".to_string(), - ), - _15y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_15y_old_realized_profit".to_string(), - ), + _1w: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1w_old_realized_profit".to_string()), + _1m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1m_old_realized_profit".to_string()), + _2m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_2m_old_realized_profit".to_string()), + _3m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_3m_old_realized_profit".to_string()), + _4m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_4m_old_realized_profit".to_string()), + _5m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_5m_old_realized_profit".to_string()), + _6m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_6m_old_realized_profit".to_string()), + _9m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_9m_old_realized_profit".to_string()), + _1y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1y_old_realized_profit".to_string()), + _18m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_18m_old_realized_profit".to_string()), + _2y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_2y_old_realized_profit".to_string()), + _3y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_3y_old_realized_profit".to_string()), + _4y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_4y_old_realized_profit".to_string()), + _5y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_5y_old_realized_profit".to_string()), + _6y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_6y_old_realized_profit".to_string()), + _7y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_7y_old_realized_profit".to_string()), + _8y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_8y_old_realized_profit".to_string()), + _10y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10y_old_realized_profit".to_string()), + _12y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_12y_old_realized_profit".to_string()), + _15y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_15y_old_realized_profit".to_string()), } } } @@ -25786,86 +16561,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1d_old_realized_profit".to_string(), - ), - _1w: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1w_old_realized_profit".to_string(), - ), - _1m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1m_old_realized_profit".to_string(), - ), - _2m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2m_old_realized_profit".to_string(), - ), - _3m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3m_old_realized_profit".to_string(), - ), - _4m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4m_old_realized_profit".to_string(), - ), - _5m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5m_old_realized_profit".to_string(), - ), - _6m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6m_old_realized_profit".to_string(), - ), - _9m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_9m_old_realized_profit".to_string(), - ), - _1y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1y_old_realized_profit".to_string(), - ), - _18m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_18m_old_realized_profit".to_string(), - ), - _2y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2y_old_realized_profit".to_string(), - ), - _3y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3y_old_realized_profit".to_string(), - ), - _4y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4y_old_realized_profit".to_string(), - ), - _5y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5y_old_realized_profit".to_string(), - ), - _6y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6y_old_realized_profit".to_string(), - ), - _7y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_7y_old_realized_profit".to_string(), - ), - _8y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_8y_old_realized_profit".to_string(), - ), - _10y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10y_old_realized_profit".to_string(), - ), - _12y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_12y_old_realized_profit".to_string(), - ), + _1d: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1d_old_realized_profit".to_string()), + _1w: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1w_old_realized_profit".to_string()), + _1m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1m_old_realized_profit".to_string()), + _2m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_2m_old_realized_profit".to_string()), + _3m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_3m_old_realized_profit".to_string()), + _4m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_4m_old_realized_profit".to_string()), + _5m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_5m_old_realized_profit".to_string()), + _6m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_6m_old_realized_profit".to_string()), + _9m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_9m_old_realized_profit".to_string()), + _1y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1y_old_realized_profit".to_string()), + _18m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_18m_old_realized_profit".to_string()), + _2y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_2y_old_realized_profit".to_string()), + _3y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_3y_old_realized_profit".to_string()), + _4y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_4y_old_realized_profit".to_string()), + _5y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_5y_old_realized_profit".to_string()), + _6y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_6y_old_realized_profit".to_string()), + _7y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_7y_old_realized_profit".to_string()), + _8y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_8y_old_realized_profit".to_string()), + _10y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10y_old_realized_profit".to_string()), + _12y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_12y_old_realized_profit".to_string()), } } } @@ -25882,26 +16597,11 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_Epoch { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_0_realized_profit".to_string(), - ), - _1: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_1_realized_profit".to_string(), - ), - _2: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_2_realized_profit".to_string(), - ), - _3: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_3_realized_profit".to_string(), - ), - _4: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_4_realized_profit".to_string(), - ), + _0: BlockCumulativeSumPattern::new(client.clone(), "epoch_0_realized_profit".to_string()), + _1: BlockCumulativeSumPattern::new(client.clone(), "epoch_1_realized_profit".to_string()), + _2: BlockCumulativeSumPattern::new(client.clone(), "epoch_2_realized_profit".to_string()), + _3: BlockCumulativeSumPattern::new(client.clone(), "epoch_3_realized_profit".to_string()), + _4: BlockCumulativeSumPattern::new(client.clone(), "epoch_4_realized_profit".to_string()), } } } @@ -25931,78 +16631,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_Class { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: BlockCumulativeSumPattern::new( - client.clone(), - "class_2009_realized_profit".to_string(), - ), - _2010: BlockCumulativeSumPattern::new( - client.clone(), - "class_2010_realized_profit".to_string(), - ), - _2011: BlockCumulativeSumPattern::new( - client.clone(), - "class_2011_realized_profit".to_string(), - ), - _2012: BlockCumulativeSumPattern::new( - client.clone(), - "class_2012_realized_profit".to_string(), - ), - _2013: BlockCumulativeSumPattern::new( - client.clone(), - "class_2013_realized_profit".to_string(), - ), - _2014: BlockCumulativeSumPattern::new( - client.clone(), - "class_2014_realized_profit".to_string(), - ), - _2015: BlockCumulativeSumPattern::new( - client.clone(), - "class_2015_realized_profit".to_string(), - ), - _2016: BlockCumulativeSumPattern::new( - client.clone(), - "class_2016_realized_profit".to_string(), - ), - _2017: BlockCumulativeSumPattern::new( - client.clone(), - "class_2017_realized_profit".to_string(), - ), - _2018: BlockCumulativeSumPattern::new( - client.clone(), - "class_2018_realized_profit".to_string(), - ), - _2019: BlockCumulativeSumPattern::new( - client.clone(), - "class_2019_realized_profit".to_string(), - ), - _2020: BlockCumulativeSumPattern::new( - client.clone(), - "class_2020_realized_profit".to_string(), - ), - _2021: BlockCumulativeSumPattern::new( - client.clone(), - "class_2021_realized_profit".to_string(), - ), - _2022: BlockCumulativeSumPattern::new( - client.clone(), - "class_2022_realized_profit".to_string(), - ), - _2023: BlockCumulativeSumPattern::new( - client.clone(), - "class_2023_realized_profit".to_string(), - ), - _2024: BlockCumulativeSumPattern::new( - client.clone(), - "class_2024_realized_profit".to_string(), - ), - _2025: BlockCumulativeSumPattern::new( - client.clone(), - "class_2025_realized_profit".to_string(), - ), - _2026: BlockCumulativeSumPattern::new( - client.clone(), - "class_2026_realized_profit".to_string(), - ), + _2009: BlockCumulativeSumPattern::new(client.clone(), "class_2009_realized_profit".to_string()), + _2010: BlockCumulativeSumPattern::new(client.clone(), "class_2010_realized_profit".to_string()), + _2011: BlockCumulativeSumPattern::new(client.clone(), "class_2011_realized_profit".to_string()), + _2012: BlockCumulativeSumPattern::new(client.clone(), "class_2012_realized_profit".to_string()), + _2013: BlockCumulativeSumPattern::new(client.clone(), "class_2013_realized_profit".to_string()), + _2014: BlockCumulativeSumPattern::new(client.clone(), "class_2014_realized_profit".to_string()), + _2015: BlockCumulativeSumPattern::new(client.clone(), "class_2015_realized_profit".to_string()), + _2016: BlockCumulativeSumPattern::new(client.clone(), "class_2016_realized_profit".to_string()), + _2017: BlockCumulativeSumPattern::new(client.clone(), "class_2017_realized_profit".to_string()), + _2018: BlockCumulativeSumPattern::new(client.clone(), "class_2018_realized_profit".to_string()), + _2019: BlockCumulativeSumPattern::new(client.clone(), "class_2019_realized_profit".to_string()), + _2020: BlockCumulativeSumPattern::new(client.clone(), "class_2020_realized_profit".to_string()), + _2021: BlockCumulativeSumPattern::new(client.clone(), "class_2021_realized_profit".to_string()), + _2022: BlockCumulativeSumPattern::new(client.clone(), "class_2022_realized_profit".to_string()), + _2023: BlockCumulativeSumPattern::new(client.clone(), "class_2023_realized_profit".to_string()), + _2024: BlockCumulativeSumPattern::new(client.clone(), "class_2024_realized_profit".to_string()), + _2025: BlockCumulativeSumPattern::new(client.clone(), "class_2025_realized_profit".to_string()), + _2026: BlockCumulativeSumPattern::new(client.clone(), "class_2026_realized_profit".to_string()), } } } @@ -26017,18 +16663,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -26055,66 +16692,21 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_0sats_realized_profit".to_string(), - ), - _1sat_to_10sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1sat_to_10sats_realized_profit".to_string(), - ), - _10sats_to_100sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10sats_to_100sats_realized_profit".to_string(), - ), - _100sats_to_1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_100sats_to_1k_sats_realized_profit".to_string(), - ), - _1k_sats_to_10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1k_sats_to_10k_sats_realized_profit".to_string(), - ), - _10k_sats_to_100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10k_sats_to_100k_sats_realized_profit".to_string(), - ), - _100k_sats_to_1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_100k_sats_to_1m_sats_realized_profit".to_string(), - ), - _1m_sats_to_10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_sats_to_10m_sats_realized_profit".to_string(), - ), - _10m_sats_to_1btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10m_sats_to_1btc_realized_profit".to_string(), - ), - _1btc_to_10btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1btc_to_10btc_realized_profit".to_string(), - ), - _10btc_to_100btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10btc_to_100btc_realized_profit".to_string(), - ), - _100btc_to_1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_100btc_to_1k_btc_realized_profit".to_string(), - ), - _1k_btc_to_10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1k_btc_to_10k_btc_realized_profit".to_string(), - ), - _10k_btc_to_100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10k_btc_to_100k_btc_realized_profit".to_string(), - ), - over_100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100k_btc_realized_profit".to_string(), - ), + _0sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_0sats_realized_profit".to_string()), + _1sat_to_10sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_1sat_to_10sats_realized_profit".to_string()), + _10sats_to_100sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_10sats_to_100sats_realized_profit".to_string()), + _100sats_to_1k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_100sats_to_1k_sats_realized_profit".to_string()), + _1k_sats_to_10k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_realized_profit".to_string()), + _10k_sats_to_100k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_realized_profit".to_string()), + _100k_sats_to_1m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_realized_profit".to_string()), + _1m_sats_to_10m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_realized_profit".to_string()), + _10m_sats_to_1btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_10m_sats_to_1btc_realized_profit".to_string()), + _1btc_to_10btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_1btc_to_10btc_realized_profit".to_string()), + _10btc_to_100btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_10btc_to_100btc_realized_profit".to_string()), + _100btc_to_1k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_100btc_to_1k_btc_realized_profit".to_string()), + _1k_btc_to_10k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_realized_profit".to_string()), + _10k_btc_to_100k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_realized_profit".to_string()), + over_100k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_100k_btc_realized_profit".to_string()), } } } @@ -26139,58 +16731,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10sats_realized_profit".to_string(), - ), - _100sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100sats_realized_profit".to_string(), - ), - _1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1k_sats_realized_profit".to_string(), - ), - _10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10k_sats_realized_profit".to_string(), - ), - _100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100k_sats_realized_profit".to_string(), - ), - _1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1m_sats_realized_profit".to_string(), - ), - _10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10m_sats_realized_profit".to_string(), - ), - _1btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1btc_realized_profit".to_string(), - ), - _10btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10btc_realized_profit".to_string(), - ), - _100btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100btc_realized_profit".to_string(), - ), - _1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1k_btc_realized_profit".to_string(), - ), - _10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10k_btc_realized_profit".to_string(), - ), - _100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100k_btc_realized_profit".to_string(), - ), + _10sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10sats_realized_profit".to_string()), + _100sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_100sats_realized_profit".to_string()), + _1k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1k_sats_realized_profit".to_string()), + _10k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10k_sats_realized_profit".to_string()), + _100k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_100k_sats_realized_profit".to_string()), + _1m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1m_sats_realized_profit".to_string()), + _10m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10m_sats_realized_profit".to_string()), + _1btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1btc_realized_profit".to_string()), + _10btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10btc_realized_profit".to_string()), + _100btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_100btc_realized_profit".to_string()), + _1k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1k_btc_realized_profit".to_string()), + _10k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10k_btc_realized_profit".to_string()), + _100k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_100k_btc_realized_profit".to_string()), } } } @@ -26215,58 +16768,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_UtxoAmount_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1sat_realized_profit".to_string(), - ), - _10sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10sats_realized_profit".to_string(), - ), - _100sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100sats_realized_profit".to_string(), - ), - _1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1k_sats_realized_profit".to_string(), - ), - _10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10k_sats_realized_profit".to_string(), - ), - _100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100k_sats_realized_profit".to_string(), - ), - _1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1m_sats_realized_profit".to_string(), - ), - _10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10m_sats_realized_profit".to_string(), - ), - _1btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1btc_realized_profit".to_string(), - ), - _10btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10btc_realized_profit".to_string(), - ), - _100btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100btc_realized_profit".to_string(), - ), - _1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1k_btc_realized_profit".to_string(), - ), - _10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10k_btc_realized_profit".to_string(), - ), + _1sat: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1sat_realized_profit".to_string()), + _10sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10sats_realized_profit".to_string()), + _100sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_100sats_realized_profit".to_string()), + _1k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1k_sats_realized_profit".to_string()), + _10k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10k_sats_realized_profit".to_string()), + _100k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_100k_sats_realized_profit".to_string()), + _1m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1m_sats_realized_profit".to_string()), + _10m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10m_sats_realized_profit".to_string()), + _1btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1btc_realized_profit".to_string()), + _10btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10btc_realized_profit".to_string()), + _100btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_100btc_realized_profit".to_string()), + _1k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1k_btc_realized_profit".to_string()), + _10k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10k_btc_realized_profit".to_string()), } } } @@ -26282,22 +16796,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Over::new( - client.clone(), - format!("{base_path}_over"), - ), - matrix: SeriesPattern18::new( - client.clone(), - "addrs_realized_profit_cumulative_cents_by_balance_range".to_string(), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Over::new(client.clone(), format!("{base_path}_over")), + matrix: SeriesPattern18::new(client.clone(), "addrs_realized_profit_cumulative_cents_by_balance_range".to_string()), } } } @@ -26324,66 +16826,21 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_0sats_realized_profit".to_string(), - ), - _1sat_to_10sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1sat_to_10sats_realized_profit".to_string(), - ), - _10sats_to_100sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10sats_to_100sats_realized_profit".to_string(), - ), - _100sats_to_1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_100sats_to_1k_sats_realized_profit".to_string(), - ), - _1k_sats_to_10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1k_sats_to_10k_sats_realized_profit".to_string(), - ), - _10k_sats_to_100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10k_sats_to_100k_sats_realized_profit".to_string(), - ), - _100k_sats_to_1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_100k_sats_to_1m_sats_realized_profit".to_string(), - ), - _1m_sats_to_10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1m_sats_to_10m_sats_realized_profit".to_string(), - ), - _10m_sats_to_1btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10m_sats_to_1btc_realized_profit".to_string(), - ), - _1btc_to_10btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1btc_to_10btc_realized_profit".to_string(), - ), - _10btc_to_100btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10btc_to_100btc_realized_profit".to_string(), - ), - _100btc_to_1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_100btc_to_1k_btc_realized_profit".to_string(), - ), - _1k_btc_to_10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1k_btc_to_10k_btc_realized_profit".to_string(), - ), - _10k_btc_to_100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10k_btc_to_100k_btc_realized_profit".to_string(), - ), - over_100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_100k_btc_realized_profit".to_string(), - ), + _0sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_0sats_realized_profit".to_string()), + _1sat_to_10sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_1sat_to_10sats_realized_profit".to_string()), + _10sats_to_100sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_10sats_to_100sats_realized_profit".to_string()), + _100sats_to_1k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_100sats_to_1k_sats_realized_profit".to_string()), + _1k_sats_to_10k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats_realized_profit".to_string()), + _10k_sats_to_100k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats_realized_profit".to_string()), + _100k_sats_to_1m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats_realized_profit".to_string()), + _1m_sats_to_10m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats_realized_profit".to_string()), + _10m_sats_to_1btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_10m_sats_to_1btc_realized_profit".to_string()), + _1btc_to_10btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_1btc_to_10btc_realized_profit".to_string()), + _10btc_to_100btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_10btc_to_100btc_realized_profit".to_string()), + _100btc_to_1k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_100btc_to_1k_btc_realized_profit".to_string()), + _1k_btc_to_10k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc_realized_profit".to_string()), + _10k_btc_to_100k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc_realized_profit".to_string()), + over_100k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_100k_btc_realized_profit".to_string()), } } } @@ -26408,58 +16865,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10sats_realized_profit".to_string(), - ), - _100sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_100sats_realized_profit".to_string(), - ), - _1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_1k_sats_realized_profit".to_string(), - ), - _10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10k_sats_realized_profit".to_string(), - ), - _100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_100k_sats_realized_profit".to_string(), - ), - _1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_1m_sats_realized_profit".to_string(), - ), - _10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10m_sats_realized_profit".to_string(), - ), - _1btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_1btc_realized_profit".to_string(), - ), - _10btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10btc_realized_profit".to_string(), - ), - _100btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_100btc_realized_profit".to_string(), - ), - _1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_1k_btc_realized_profit".to_string(), - ), - _10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10k_btc_realized_profit".to_string(), - ), - _100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_100k_btc_realized_profit".to_string(), - ), + _10sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10sats_realized_profit".to_string()), + _100sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_100sats_realized_profit".to_string()), + _1k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_1k_sats_realized_profit".to_string()), + _10k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10k_sats_realized_profit".to_string()), + _100k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_100k_sats_realized_profit".to_string()), + _1m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_1m_sats_realized_profit".to_string()), + _10m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10m_sats_realized_profit".to_string()), + _1btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_1btc_realized_profit".to_string()), + _10btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10btc_realized_profit".to_string()), + _100btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_100btc_realized_profit".to_string()), + _1k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_1k_btc_realized_profit".to_string()), + _10k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10k_btc_realized_profit".to_string()), + _100k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_100k_btc_realized_profit".to_string()), } } } @@ -26484,58 +16902,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Profit_AddrBalance_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1sat_realized_profit".to_string(), - ), - _10sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10sats_realized_profit".to_string(), - ), - _100sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_100sats_realized_profit".to_string(), - ), - _1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1k_sats_realized_profit".to_string(), - ), - _10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10k_sats_realized_profit".to_string(), - ), - _100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_100k_sats_realized_profit".to_string(), - ), - _1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1m_sats_realized_profit".to_string(), - ), - _10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10m_sats_realized_profit".to_string(), - ), - _1btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1btc_realized_profit".to_string(), - ), - _10btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10btc_realized_profit".to_string(), - ), - _100btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_100btc_realized_profit".to_string(), - ), - _1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1k_btc_realized_profit".to_string(), - ), - _10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10k_btc_realized_profit".to_string(), - ), + _1sat: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1sat_realized_profit".to_string()), + _10sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10sats_realized_profit".to_string()), + _100sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_100sats_realized_profit".to_string()), + _1k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1k_sats_realized_profit".to_string()), + _10k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10k_sats_realized_profit".to_string()), + _100k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_100k_sats_realized_profit".to_string()), + _1m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1m_sats_realized_profit".to_string()), + _10m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10m_sats_realized_profit".to_string()), + _1btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1btc_realized_profit".to_string()), + _10btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10btc_realized_profit".to_string()), + _100btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_100btc_realized_profit".to_string()), + _1k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1k_btc_realized_profit".to_string()), + _10k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10k_btc_realized_profit".to_string()), } } } @@ -26564,60 +16943,21 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Loss { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BlockCumulativeSumPattern::new(client.clone(), "realized_loss".to_string()), - age: SeriesTree_Cohorts_Cohorts_Realized_Loss_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Realized_Loss_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Realized_Loss_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Realized_Loss_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Realized_Loss_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Realized_Loss_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern5::new(client.clone(), "realized_loss".to_string()), - utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), + utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), term: LongShortPattern6::new(client.clone(), "realized_loss".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern5::new( - client.clone(), - "realized_loss".to_string(), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_loss_cumulative_cents_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "realized_loss_cumulative_cents_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "realized_loss_cumulative_cents_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "realized_loss_cumulative_cents_by_entry".to_string(), - ), - type_matrix: SeriesPattern18::new( - client.clone(), - "realized_loss_cumulative_cents_by_type".to_string(), - ), - amount_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_realized_loss_cumulative_cents_by_amount_range".to_string(), - ), - addr_balance: SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance::new( - client.clone(), - format!("{base_path}_addr_balance"), - ), - negative: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative::new( - client.clone(), - format!("{base_path}_negative"), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern5::new(client.clone(), "realized_loss".to_string()), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_loss_cumulative_cents_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "realized_loss_cumulative_cents_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "realized_loss_cumulative_cents_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "realized_loss_cumulative_cents_by_entry".to_string()), + type_matrix: SeriesPattern18::new(client.clone(), "realized_loss_cumulative_cents_by_type".to_string()), + amount_range_matrix: SeriesPattern18::new(client.clone(), "utxos_realized_loss_cumulative_cents_by_amount_range".to_string()), + addr_balance: SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance::new(client.clone(), format!("{base_path}_addr_balance")), + negative: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative::new(client.clone(), format!("{base_path}_negative")), } } } @@ -26632,18 +16972,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_Age { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -26678,98 +17009,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1h_old_realized_loss".to_string(), - ), - _1h_to_1d: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_realized_loss".to_string(), - ), - _1d_to_1w: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_realized_loss".to_string(), - ), - _1w_to_1m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_realized_loss".to_string(), - ), - _1m_to_2m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_realized_loss".to_string(), - ), - _2m_to_3m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_realized_loss".to_string(), - ), - _3m_to_4m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_realized_loss".to_string(), - ), - _4m_to_5m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_realized_loss".to_string(), - ), - _5m_to_6m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_realized_loss".to_string(), - ), - _6m_to_9m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_realized_loss".to_string(), - ), - _9m_to_1y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_realized_loss".to_string(), - ), - _1y_to_18m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_realized_loss".to_string(), - ), - _18m_to_2y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_realized_loss".to_string(), - ), - _2y_to_3y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_realized_loss".to_string(), - ), - _3y_to_4y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_realized_loss".to_string(), - ), - _4y_to_5y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_realized_loss".to_string(), - ), - _5y_to_6y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_realized_loss".to_string(), - ), - _6y_to_7y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_realized_loss".to_string(), - ), - _7y_to_8y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_realized_loss".to_string(), - ), - _8y_to_10y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_realized_loss".to_string(), - ), - _10y_to_12y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_realized_loss".to_string(), - ), - _12y_to_15y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_realized_loss".to_string(), - ), - over_15y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_15y_old_realized_loss".to_string(), - ), + under_1h: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1h_old_realized_loss".to_string()), + _1h_to_1d: BlockCumulativeSumPattern::new(client.clone(), "utxos_1h_to_1d_old_realized_loss".to_string()), + _1d_to_1w: BlockCumulativeSumPattern::new(client.clone(), "utxos_1d_to_1w_old_realized_loss".to_string()), + _1w_to_1m: BlockCumulativeSumPattern::new(client.clone(), "utxos_1w_to_1m_old_realized_loss".to_string()), + _1m_to_2m: BlockCumulativeSumPattern::new(client.clone(), "utxos_1m_to_2m_old_realized_loss".to_string()), + _2m_to_3m: BlockCumulativeSumPattern::new(client.clone(), "utxos_2m_to_3m_old_realized_loss".to_string()), + _3m_to_4m: BlockCumulativeSumPattern::new(client.clone(), "utxos_3m_to_4m_old_realized_loss".to_string()), + _4m_to_5m: BlockCumulativeSumPattern::new(client.clone(), "utxos_4m_to_5m_old_realized_loss".to_string()), + _5m_to_6m: BlockCumulativeSumPattern::new(client.clone(), "utxos_5m_to_6m_old_realized_loss".to_string()), + _6m_to_9m: BlockCumulativeSumPattern::new(client.clone(), "utxos_6m_to_9m_old_realized_loss".to_string()), + _9m_to_1y: BlockCumulativeSumPattern::new(client.clone(), "utxos_9m_to_1y_old_realized_loss".to_string()), + _1y_to_18m: BlockCumulativeSumPattern::new(client.clone(), "utxos_1y_to_18m_old_realized_loss".to_string()), + _18m_to_2y: BlockCumulativeSumPattern::new(client.clone(), "utxos_18m_to_2y_old_realized_loss".to_string()), + _2y_to_3y: BlockCumulativeSumPattern::new(client.clone(), "utxos_2y_to_3y_old_realized_loss".to_string()), + _3y_to_4y: BlockCumulativeSumPattern::new(client.clone(), "utxos_3y_to_4y_old_realized_loss".to_string()), + _4y_to_5y: BlockCumulativeSumPattern::new(client.clone(), "utxos_4y_to_5y_old_realized_loss".to_string()), + _5y_to_6y: BlockCumulativeSumPattern::new(client.clone(), "utxos_5y_to_6y_old_realized_loss".to_string()), + _6y_to_7y: BlockCumulativeSumPattern::new(client.clone(), "utxos_6y_to_7y_old_realized_loss".to_string()), + _7y_to_8y: BlockCumulativeSumPattern::new(client.clone(), "utxos_7y_to_8y_old_realized_loss".to_string()), + _8y_to_10y: BlockCumulativeSumPattern::new(client.clone(), "utxos_8y_to_10y_old_realized_loss".to_string()), + _10y_to_12y: BlockCumulativeSumPattern::new(client.clone(), "utxos_10y_to_12y_old_realized_loss".to_string()), + _12y_to_15y: BlockCumulativeSumPattern::new(client.clone(), "utxos_12y_to_15y_old_realized_loss".to_string()), + over_15y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_15y_old_realized_loss".to_string()), } } } @@ -26801,86 +17063,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1w_old_realized_loss".to_string(), - ), - _1m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1m_old_realized_loss".to_string(), - ), - _2m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2m_old_realized_loss".to_string(), - ), - _3m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3m_old_realized_loss".to_string(), - ), - _4m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4m_old_realized_loss".to_string(), - ), - _5m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5m_old_realized_loss".to_string(), - ), - _6m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6m_old_realized_loss".to_string(), - ), - _9m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_9m_old_realized_loss".to_string(), - ), - _1y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1y_old_realized_loss".to_string(), - ), - _18m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_18m_old_realized_loss".to_string(), - ), - _2y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2y_old_realized_loss".to_string(), - ), - _3y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3y_old_realized_loss".to_string(), - ), - _4y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4y_old_realized_loss".to_string(), - ), - _5y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5y_old_realized_loss".to_string(), - ), - _6y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6y_old_realized_loss".to_string(), - ), - _7y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_7y_old_realized_loss".to_string(), - ), - _8y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_8y_old_realized_loss".to_string(), - ), - _10y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10y_old_realized_loss".to_string(), - ), - _12y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_12y_old_realized_loss".to_string(), - ), - _15y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_15y_old_realized_loss".to_string(), - ), + _1w: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1w_old_realized_loss".to_string()), + _1m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1m_old_realized_loss".to_string()), + _2m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_2m_old_realized_loss".to_string()), + _3m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_3m_old_realized_loss".to_string()), + _4m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_4m_old_realized_loss".to_string()), + _5m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_5m_old_realized_loss".to_string()), + _6m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_6m_old_realized_loss".to_string()), + _9m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_9m_old_realized_loss".to_string()), + _1y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1y_old_realized_loss".to_string()), + _18m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_18m_old_realized_loss".to_string()), + _2y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_2y_old_realized_loss".to_string()), + _3y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_3y_old_realized_loss".to_string()), + _4y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_4y_old_realized_loss".to_string()), + _5y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_5y_old_realized_loss".to_string()), + _6y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_6y_old_realized_loss".to_string()), + _7y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_7y_old_realized_loss".to_string()), + _8y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_8y_old_realized_loss".to_string()), + _10y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10y_old_realized_loss".to_string()), + _12y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_12y_old_realized_loss".to_string()), + _15y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_15y_old_realized_loss".to_string()), } } } @@ -26912,86 +17114,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1d_old_realized_loss".to_string(), - ), - _1w: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1w_old_realized_loss".to_string(), - ), - _1m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1m_old_realized_loss".to_string(), - ), - _2m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2m_old_realized_loss".to_string(), - ), - _3m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3m_old_realized_loss".to_string(), - ), - _4m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4m_old_realized_loss".to_string(), - ), - _5m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5m_old_realized_loss".to_string(), - ), - _6m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6m_old_realized_loss".to_string(), - ), - _9m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_9m_old_realized_loss".to_string(), - ), - _1y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1y_old_realized_loss".to_string(), - ), - _18m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_18m_old_realized_loss".to_string(), - ), - _2y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2y_old_realized_loss".to_string(), - ), - _3y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3y_old_realized_loss".to_string(), - ), - _4y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4y_old_realized_loss".to_string(), - ), - _5y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5y_old_realized_loss".to_string(), - ), - _6y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6y_old_realized_loss".to_string(), - ), - _7y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_7y_old_realized_loss".to_string(), - ), - _8y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_8y_old_realized_loss".to_string(), - ), - _10y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10y_old_realized_loss".to_string(), - ), - _12y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_12y_old_realized_loss".to_string(), - ), + _1d: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1d_old_realized_loss".to_string()), + _1w: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1w_old_realized_loss".to_string()), + _1m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1m_old_realized_loss".to_string()), + _2m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_2m_old_realized_loss".to_string()), + _3m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_3m_old_realized_loss".to_string()), + _4m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_4m_old_realized_loss".to_string()), + _5m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_5m_old_realized_loss".to_string()), + _6m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_6m_old_realized_loss".to_string()), + _9m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_9m_old_realized_loss".to_string()), + _1y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1y_old_realized_loss".to_string()), + _18m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_18m_old_realized_loss".to_string()), + _2y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_2y_old_realized_loss".to_string()), + _3y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_3y_old_realized_loss".to_string()), + _4y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_4y_old_realized_loss".to_string()), + _5y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_5y_old_realized_loss".to_string()), + _6y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_6y_old_realized_loss".to_string()), + _7y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_7y_old_realized_loss".to_string()), + _8y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_8y_old_realized_loss".to_string()), + _10y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10y_old_realized_loss".to_string()), + _12y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_12y_old_realized_loss".to_string()), } } } @@ -27042,78 +17184,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_Class { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: BlockCumulativeSumPattern::new( - client.clone(), - "class_2009_realized_loss".to_string(), - ), - _2010: BlockCumulativeSumPattern::new( - client.clone(), - "class_2010_realized_loss".to_string(), - ), - _2011: BlockCumulativeSumPattern::new( - client.clone(), - "class_2011_realized_loss".to_string(), - ), - _2012: BlockCumulativeSumPattern::new( - client.clone(), - "class_2012_realized_loss".to_string(), - ), - _2013: BlockCumulativeSumPattern::new( - client.clone(), - "class_2013_realized_loss".to_string(), - ), - _2014: BlockCumulativeSumPattern::new( - client.clone(), - "class_2014_realized_loss".to_string(), - ), - _2015: BlockCumulativeSumPattern::new( - client.clone(), - "class_2015_realized_loss".to_string(), - ), - _2016: BlockCumulativeSumPattern::new( - client.clone(), - "class_2016_realized_loss".to_string(), - ), - _2017: BlockCumulativeSumPattern::new( - client.clone(), - "class_2017_realized_loss".to_string(), - ), - _2018: BlockCumulativeSumPattern::new( - client.clone(), - "class_2018_realized_loss".to_string(), - ), - _2019: BlockCumulativeSumPattern::new( - client.clone(), - "class_2019_realized_loss".to_string(), - ), - _2020: BlockCumulativeSumPattern::new( - client.clone(), - "class_2020_realized_loss".to_string(), - ), - _2021: BlockCumulativeSumPattern::new( - client.clone(), - "class_2021_realized_loss".to_string(), - ), - _2022: BlockCumulativeSumPattern::new( - client.clone(), - "class_2022_realized_loss".to_string(), - ), - _2023: BlockCumulativeSumPattern::new( - client.clone(), - "class_2023_realized_loss".to_string(), - ), - _2024: BlockCumulativeSumPattern::new( - client.clone(), - "class_2024_realized_loss".to_string(), - ), - _2025: BlockCumulativeSumPattern::new( - client.clone(), - "class_2025_realized_loss".to_string(), - ), - _2026: BlockCumulativeSumPattern::new( - client.clone(), - "class_2026_realized_loss".to_string(), - ), + _2009: BlockCumulativeSumPattern::new(client.clone(), "class_2009_realized_loss".to_string()), + _2010: BlockCumulativeSumPattern::new(client.clone(), "class_2010_realized_loss".to_string()), + _2011: BlockCumulativeSumPattern::new(client.clone(), "class_2011_realized_loss".to_string()), + _2012: BlockCumulativeSumPattern::new(client.clone(), "class_2012_realized_loss".to_string()), + _2013: BlockCumulativeSumPattern::new(client.clone(), "class_2013_realized_loss".to_string()), + _2014: BlockCumulativeSumPattern::new(client.clone(), "class_2014_realized_loss".to_string()), + _2015: BlockCumulativeSumPattern::new(client.clone(), "class_2015_realized_loss".to_string()), + _2016: BlockCumulativeSumPattern::new(client.clone(), "class_2016_realized_loss".to_string()), + _2017: BlockCumulativeSumPattern::new(client.clone(), "class_2017_realized_loss".to_string()), + _2018: BlockCumulativeSumPattern::new(client.clone(), "class_2018_realized_loss".to_string()), + _2019: BlockCumulativeSumPattern::new(client.clone(), "class_2019_realized_loss".to_string()), + _2020: BlockCumulativeSumPattern::new(client.clone(), "class_2020_realized_loss".to_string()), + _2021: BlockCumulativeSumPattern::new(client.clone(), "class_2021_realized_loss".to_string()), + _2022: BlockCumulativeSumPattern::new(client.clone(), "class_2022_realized_loss".to_string()), + _2023: BlockCumulativeSumPattern::new(client.clone(), "class_2023_realized_loss".to_string()), + _2024: BlockCumulativeSumPattern::new(client.clone(), "class_2024_realized_loss".to_string()), + _2025: BlockCumulativeSumPattern::new(client.clone(), "class_2025_realized_loss".to_string()), + _2026: BlockCumulativeSumPattern::new(client.clone(), "class_2026_realized_loss".to_string()), } } } @@ -27128,18 +17216,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -27166,66 +17245,21 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_0sats_realized_loss".to_string(), - ), - _1sat_to_10sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1sat_to_10sats_realized_loss".to_string(), - ), - _10sats_to_100sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10sats_to_100sats_realized_loss".to_string(), - ), - _100sats_to_1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_100sats_to_1k_sats_realized_loss".to_string(), - ), - _1k_sats_to_10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1k_sats_to_10k_sats_realized_loss".to_string(), - ), - _10k_sats_to_100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10k_sats_to_100k_sats_realized_loss".to_string(), - ), - _100k_sats_to_1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_100k_sats_to_1m_sats_realized_loss".to_string(), - ), - _1m_sats_to_10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_sats_to_10m_sats_realized_loss".to_string(), - ), - _10m_sats_to_1btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10m_sats_to_1btc_realized_loss".to_string(), - ), - _1btc_to_10btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1btc_to_10btc_realized_loss".to_string(), - ), - _10btc_to_100btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10btc_to_100btc_realized_loss".to_string(), - ), - _100btc_to_1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_100btc_to_1k_btc_realized_loss".to_string(), - ), - _1k_btc_to_10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1k_btc_to_10k_btc_realized_loss".to_string(), - ), - _10k_btc_to_100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10k_btc_to_100k_btc_realized_loss".to_string(), - ), - over_100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100k_btc_realized_loss".to_string(), - ), + _0sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_0sats_realized_loss".to_string()), + _1sat_to_10sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_1sat_to_10sats_realized_loss".to_string()), + _10sats_to_100sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_10sats_to_100sats_realized_loss".to_string()), + _100sats_to_1k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_100sats_to_1k_sats_realized_loss".to_string()), + _1k_sats_to_10k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_realized_loss".to_string()), + _10k_sats_to_100k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_realized_loss".to_string()), + _100k_sats_to_1m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_realized_loss".to_string()), + _1m_sats_to_10m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_realized_loss".to_string()), + _10m_sats_to_1btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_10m_sats_to_1btc_realized_loss".to_string()), + _1btc_to_10btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_1btc_to_10btc_realized_loss".to_string()), + _10btc_to_100btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_10btc_to_100btc_realized_loss".to_string()), + _100btc_to_1k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_100btc_to_1k_btc_realized_loss".to_string()), + _1k_btc_to_10k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_realized_loss".to_string()), + _10k_btc_to_100k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_realized_loss".to_string()), + over_100k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_100k_btc_realized_loss".to_string()), } } } @@ -27250,58 +17284,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10sats_realized_loss".to_string(), - ), - _100sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100sats_realized_loss".to_string(), - ), - _1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1k_sats_realized_loss".to_string(), - ), - _10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10k_sats_realized_loss".to_string(), - ), - _100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100k_sats_realized_loss".to_string(), - ), - _1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1m_sats_realized_loss".to_string(), - ), - _10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10m_sats_realized_loss".to_string(), - ), - _1btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1btc_realized_loss".to_string(), - ), - _10btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10btc_realized_loss".to_string(), - ), - _100btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100btc_realized_loss".to_string(), - ), - _1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1k_btc_realized_loss".to_string(), - ), - _10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10k_btc_realized_loss".to_string(), - ), - _100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_100k_btc_realized_loss".to_string(), - ), + _10sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10sats_realized_loss".to_string()), + _100sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_100sats_realized_loss".to_string()), + _1k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1k_sats_realized_loss".to_string()), + _10k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10k_sats_realized_loss".to_string()), + _100k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_100k_sats_realized_loss".to_string()), + _1m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1m_sats_realized_loss".to_string()), + _10m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10m_sats_realized_loss".to_string()), + _1btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1btc_realized_loss".to_string()), + _10btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10btc_realized_loss".to_string()), + _100btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_100btc_realized_loss".to_string()), + _1k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1k_btc_realized_loss".to_string()), + _10k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10k_btc_realized_loss".to_string()), + _100k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_100k_btc_realized_loss".to_string()), } } } @@ -27326,58 +17321,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_UtxoAmount_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1sat_realized_loss".to_string(), - ), - _10sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10sats_realized_loss".to_string(), - ), - _100sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100sats_realized_loss".to_string(), - ), - _1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1k_sats_realized_loss".to_string(), - ), - _10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10k_sats_realized_loss".to_string(), - ), - _100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100k_sats_realized_loss".to_string(), - ), - _1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1m_sats_realized_loss".to_string(), - ), - _10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10m_sats_realized_loss".to_string(), - ), - _1btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1btc_realized_loss".to_string(), - ), - _10btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10btc_realized_loss".to_string(), - ), - _100btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_100btc_realized_loss".to_string(), - ), - _1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1k_btc_realized_loss".to_string(), - ), - _10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10k_btc_realized_loss".to_string(), - ), + _1sat: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1sat_realized_loss".to_string()), + _10sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10sats_realized_loss".to_string()), + _100sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_100sats_realized_loss".to_string()), + _1k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1k_sats_realized_loss".to_string()), + _10k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10k_sats_realized_loss".to_string()), + _100k_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_100k_sats_realized_loss".to_string()), + _1m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1m_sats_realized_loss".to_string()), + _10m_sats: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10m_sats_realized_loss".to_string()), + _1btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1btc_realized_loss".to_string()), + _10btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10btc_realized_loss".to_string()), + _100btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_100btc_realized_loss".to_string()), + _1k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1k_btc_realized_loss".to_string()), + _10k_btc: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10k_btc_realized_loss".to_string()), } } } @@ -27393,22 +17349,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Over::new( - client.clone(), - format!("{base_path}_over"), - ), - matrix: SeriesPattern18::new( - client.clone(), - "addrs_realized_loss_cumulative_cents_by_balance_range".to_string(), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Over::new(client.clone(), format!("{base_path}_over")), + matrix: SeriesPattern18::new(client.clone(), "addrs_realized_loss_cumulative_cents_by_balance_range".to_string()), } } } @@ -27435,66 +17379,21 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_0sats_realized_loss".to_string(), - ), - _1sat_to_10sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1sat_to_10sats_realized_loss".to_string(), - ), - _10sats_to_100sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10sats_to_100sats_realized_loss".to_string(), - ), - _100sats_to_1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_100sats_to_1k_sats_realized_loss".to_string(), - ), - _1k_sats_to_10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1k_sats_to_10k_sats_realized_loss".to_string(), - ), - _10k_sats_to_100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10k_sats_to_100k_sats_realized_loss".to_string(), - ), - _100k_sats_to_1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_100k_sats_to_1m_sats_realized_loss".to_string(), - ), - _1m_sats_to_10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1m_sats_to_10m_sats_realized_loss".to_string(), - ), - _10m_sats_to_1btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10m_sats_to_1btc_realized_loss".to_string(), - ), - _1btc_to_10btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1btc_to_10btc_realized_loss".to_string(), - ), - _10btc_to_100btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10btc_to_100btc_realized_loss".to_string(), - ), - _100btc_to_1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_100btc_to_1k_btc_realized_loss".to_string(), - ), - _1k_btc_to_10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_1k_btc_to_10k_btc_realized_loss".to_string(), - ), - _10k_btc_to_100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_10k_btc_to_100k_btc_realized_loss".to_string(), - ), - over_100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_100k_btc_realized_loss".to_string(), - ), + _0sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_0sats_realized_loss".to_string()), + _1sat_to_10sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_1sat_to_10sats_realized_loss".to_string()), + _10sats_to_100sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_10sats_to_100sats_realized_loss".to_string()), + _100sats_to_1k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_100sats_to_1k_sats_realized_loss".to_string()), + _1k_sats_to_10k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_1k_sats_to_10k_sats_realized_loss".to_string()), + _10k_sats_to_100k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_10k_sats_to_100k_sats_realized_loss".to_string()), + _100k_sats_to_1m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_100k_sats_to_1m_sats_realized_loss".to_string()), + _1m_sats_to_10m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_1m_sats_to_10m_sats_realized_loss".to_string()), + _10m_sats_to_1btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_10m_sats_to_1btc_realized_loss".to_string()), + _1btc_to_10btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_1btc_to_10btc_realized_loss".to_string()), + _10btc_to_100btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_10btc_to_100btc_realized_loss".to_string()), + _100btc_to_1k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_100btc_to_1k_btc_realized_loss".to_string()), + _1k_btc_to_10k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_1k_btc_to_10k_btc_realized_loss".to_string()), + _10k_btc_to_100k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_10k_btc_to_100k_btc_realized_loss".to_string()), + over_100k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_100k_btc_realized_loss".to_string()), } } } @@ -27519,58 +17418,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _10sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10sats_realized_loss".to_string(), - ), - _100sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_100sats_realized_loss".to_string(), - ), - _1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_1k_sats_realized_loss".to_string(), - ), - _10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10k_sats_realized_loss".to_string(), - ), - _100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_100k_sats_realized_loss".to_string(), - ), - _1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_1m_sats_realized_loss".to_string(), - ), - _10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10m_sats_realized_loss".to_string(), - ), - _1btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_1btc_realized_loss".to_string(), - ), - _10btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10btc_realized_loss".to_string(), - ), - _100btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_100btc_realized_loss".to_string(), - ), - _1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_1k_btc_realized_loss".to_string(), - ), - _10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_10k_btc_realized_loss".to_string(), - ), - _100k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_under_100k_btc_realized_loss".to_string(), - ), + _10sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10sats_realized_loss".to_string()), + _100sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_100sats_realized_loss".to_string()), + _1k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_1k_sats_realized_loss".to_string()), + _10k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10k_sats_realized_loss".to_string()), + _100k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_100k_sats_realized_loss".to_string()), + _1m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_1m_sats_realized_loss".to_string()), + _10m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10m_sats_realized_loss".to_string()), + _1btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_1btc_realized_loss".to_string()), + _10btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10btc_realized_loss".to_string()), + _100btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_100btc_realized_loss".to_string()), + _1k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_1k_btc_realized_loss".to_string()), + _10k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_10k_btc_realized_loss".to_string()), + _100k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_under_100k_btc_realized_loss".to_string()), } } } @@ -27595,58 +17455,19 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_AddrBalance_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1sat: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1sat_realized_loss".to_string(), - ), - _10sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10sats_realized_loss".to_string(), - ), - _100sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_100sats_realized_loss".to_string(), - ), - _1k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1k_sats_realized_loss".to_string(), - ), - _10k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10k_sats_realized_loss".to_string(), - ), - _100k_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_100k_sats_realized_loss".to_string(), - ), - _1m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1m_sats_realized_loss".to_string(), - ), - _10m_sats: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10m_sats_realized_loss".to_string(), - ), - _1btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1btc_realized_loss".to_string(), - ), - _10btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10btc_realized_loss".to_string(), - ), - _100btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_100btc_realized_loss".to_string(), - ), - _1k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_1k_btc_realized_loss".to_string(), - ), - _10k_btc: BlockCumulativeSumPattern::new( - client.clone(), - "addrs_over_10k_btc_realized_loss".to_string(), - ), + _1sat: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1sat_realized_loss".to_string()), + _10sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10sats_realized_loss".to_string()), + _100sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_100sats_realized_loss".to_string()), + _1k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1k_sats_realized_loss".to_string()), + _10k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10k_sats_realized_loss".to_string()), + _100k_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_100k_sats_realized_loss".to_string()), + _1m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1m_sats_realized_loss".to_string()), + _10m_sats: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10m_sats_realized_loss".to_string()), + _1btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1btc_realized_loss".to_string()), + _10btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10btc_realized_loss".to_string()), + _100btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_100btc_realized_loss".to_string()), + _1k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_1k_btc_realized_loss".to_string()), + _10k_btc: BlockCumulativeSumPattern::new(client.clone(), "addrs_over_10k_btc_realized_loss".to_string()), } } } @@ -27665,26 +17486,11 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BaseSumPattern::new(client.clone(), "realized_loss_neg".to_string()), - age: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Class::new( - client.clone(), - format!("{base_path}_class"), - ), - entry: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Entry::new( - client.clone(), - format!("{base_path}_entry"), - ), - term: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Term::new( - client.clone(), - format!("{base_path}_term"), - ), + age: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Class::new(client.clone(), format!("{base_path}_class")), + entry: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Entry::new(client.clone(), format!("{base_path}_entry")), + term: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Term::new(client.clone(), format!("{base_path}_term")), } } } @@ -27699,18 +17505,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -27745,98 +17542,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BaseSumPattern::new( - client.clone(), - "utxos_under_1h_old_realized_loss_neg".to_string(), - ), - _1h_to_1d: BaseSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_realized_loss_neg".to_string(), - ), - _1d_to_1w: BaseSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_realized_loss_neg".to_string(), - ), - _1w_to_1m: BaseSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_realized_loss_neg".to_string(), - ), - _1m_to_2m: BaseSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_realized_loss_neg".to_string(), - ), - _2m_to_3m: BaseSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_realized_loss_neg".to_string(), - ), - _3m_to_4m: BaseSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_realized_loss_neg".to_string(), - ), - _4m_to_5m: BaseSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_realized_loss_neg".to_string(), - ), - _5m_to_6m: BaseSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_realized_loss_neg".to_string(), - ), - _6m_to_9m: BaseSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_realized_loss_neg".to_string(), - ), - _9m_to_1y: BaseSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_realized_loss_neg".to_string(), - ), - _1y_to_18m: BaseSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_realized_loss_neg".to_string(), - ), - _18m_to_2y: BaseSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_realized_loss_neg".to_string(), - ), - _2y_to_3y: BaseSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_realized_loss_neg".to_string(), - ), - _3y_to_4y: BaseSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_realized_loss_neg".to_string(), - ), - _4y_to_5y: BaseSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_realized_loss_neg".to_string(), - ), - _5y_to_6y: BaseSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_realized_loss_neg".to_string(), - ), - _6y_to_7y: BaseSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_realized_loss_neg".to_string(), - ), - _7y_to_8y: BaseSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_realized_loss_neg".to_string(), - ), - _8y_to_10y: BaseSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_realized_loss_neg".to_string(), - ), - _10y_to_12y: BaseSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_realized_loss_neg".to_string(), - ), - _12y_to_15y: BaseSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_realized_loss_neg".to_string(), - ), - over_15y: BaseSumPattern::new( - client.clone(), - "utxos_over_15y_old_realized_loss_neg".to_string(), - ), + under_1h: BaseSumPattern::new(client.clone(), "utxos_under_1h_old_realized_loss_neg".to_string()), + _1h_to_1d: BaseSumPattern::new(client.clone(), "utxos_1h_to_1d_old_realized_loss_neg".to_string()), + _1d_to_1w: BaseSumPattern::new(client.clone(), "utxos_1d_to_1w_old_realized_loss_neg".to_string()), + _1w_to_1m: BaseSumPattern::new(client.clone(), "utxos_1w_to_1m_old_realized_loss_neg".to_string()), + _1m_to_2m: BaseSumPattern::new(client.clone(), "utxos_1m_to_2m_old_realized_loss_neg".to_string()), + _2m_to_3m: BaseSumPattern::new(client.clone(), "utxos_2m_to_3m_old_realized_loss_neg".to_string()), + _3m_to_4m: BaseSumPattern::new(client.clone(), "utxos_3m_to_4m_old_realized_loss_neg".to_string()), + _4m_to_5m: BaseSumPattern::new(client.clone(), "utxos_4m_to_5m_old_realized_loss_neg".to_string()), + _5m_to_6m: BaseSumPattern::new(client.clone(), "utxos_5m_to_6m_old_realized_loss_neg".to_string()), + _6m_to_9m: BaseSumPattern::new(client.clone(), "utxos_6m_to_9m_old_realized_loss_neg".to_string()), + _9m_to_1y: BaseSumPattern::new(client.clone(), "utxos_9m_to_1y_old_realized_loss_neg".to_string()), + _1y_to_18m: BaseSumPattern::new(client.clone(), "utxos_1y_to_18m_old_realized_loss_neg".to_string()), + _18m_to_2y: BaseSumPattern::new(client.clone(), "utxos_18m_to_2y_old_realized_loss_neg".to_string()), + _2y_to_3y: BaseSumPattern::new(client.clone(), "utxos_2y_to_3y_old_realized_loss_neg".to_string()), + _3y_to_4y: BaseSumPattern::new(client.clone(), "utxos_3y_to_4y_old_realized_loss_neg".to_string()), + _4y_to_5y: BaseSumPattern::new(client.clone(), "utxos_4y_to_5y_old_realized_loss_neg".to_string()), + _5y_to_6y: BaseSumPattern::new(client.clone(), "utxos_5y_to_6y_old_realized_loss_neg".to_string()), + _6y_to_7y: BaseSumPattern::new(client.clone(), "utxos_6y_to_7y_old_realized_loss_neg".to_string()), + _7y_to_8y: BaseSumPattern::new(client.clone(), "utxos_7y_to_8y_old_realized_loss_neg".to_string()), + _8y_to_10y: BaseSumPattern::new(client.clone(), "utxos_8y_to_10y_old_realized_loss_neg".to_string()), + _10y_to_12y: BaseSumPattern::new(client.clone(), "utxos_10y_to_12y_old_realized_loss_neg".to_string()), + _12y_to_15y: BaseSumPattern::new(client.clone(), "utxos_12y_to_15y_old_realized_loss_neg".to_string()), + over_15y: BaseSumPattern::new(client.clone(), "utxos_over_15y_old_realized_loss_neg".to_string()), } } } @@ -27868,86 +17596,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: BaseSumPattern::new( - client.clone(), - "utxos_under_1w_old_realized_loss_neg".to_string(), - ), - _1m: BaseSumPattern::new( - client.clone(), - "utxos_under_1m_old_realized_loss_neg".to_string(), - ), - _2m: BaseSumPattern::new( - client.clone(), - "utxos_under_2m_old_realized_loss_neg".to_string(), - ), - _3m: BaseSumPattern::new( - client.clone(), - "utxos_under_3m_old_realized_loss_neg".to_string(), - ), - _4m: BaseSumPattern::new( - client.clone(), - "utxos_under_4m_old_realized_loss_neg".to_string(), - ), - _5m: BaseSumPattern::new( - client.clone(), - "utxos_under_5m_old_realized_loss_neg".to_string(), - ), - _6m: BaseSumPattern::new( - client.clone(), - "utxos_under_6m_old_realized_loss_neg".to_string(), - ), - _9m: BaseSumPattern::new( - client.clone(), - "utxos_under_9m_old_realized_loss_neg".to_string(), - ), - _1y: BaseSumPattern::new( - client.clone(), - "utxos_under_1y_old_realized_loss_neg".to_string(), - ), - _18m: BaseSumPattern::new( - client.clone(), - "utxos_under_18m_old_realized_loss_neg".to_string(), - ), - _2y: BaseSumPattern::new( - client.clone(), - "utxos_under_2y_old_realized_loss_neg".to_string(), - ), - _3y: BaseSumPattern::new( - client.clone(), - "utxos_under_3y_old_realized_loss_neg".to_string(), - ), - _4y: BaseSumPattern::new( - client.clone(), - "utxos_under_4y_old_realized_loss_neg".to_string(), - ), - _5y: BaseSumPattern::new( - client.clone(), - "utxos_under_5y_old_realized_loss_neg".to_string(), - ), - _6y: BaseSumPattern::new( - client.clone(), - "utxos_under_6y_old_realized_loss_neg".to_string(), - ), - _7y: BaseSumPattern::new( - client.clone(), - "utxos_under_7y_old_realized_loss_neg".to_string(), - ), - _8y: BaseSumPattern::new( - client.clone(), - "utxos_under_8y_old_realized_loss_neg".to_string(), - ), - _10y: BaseSumPattern::new( - client.clone(), - "utxos_under_10y_old_realized_loss_neg".to_string(), - ), - _12y: BaseSumPattern::new( - client.clone(), - "utxos_under_12y_old_realized_loss_neg".to_string(), - ), - _15y: BaseSumPattern::new( - client.clone(), - "utxos_under_15y_old_realized_loss_neg".to_string(), - ), + _1w: BaseSumPattern::new(client.clone(), "utxos_under_1w_old_realized_loss_neg".to_string()), + _1m: BaseSumPattern::new(client.clone(), "utxos_under_1m_old_realized_loss_neg".to_string()), + _2m: BaseSumPattern::new(client.clone(), "utxos_under_2m_old_realized_loss_neg".to_string()), + _3m: BaseSumPattern::new(client.clone(), "utxos_under_3m_old_realized_loss_neg".to_string()), + _4m: BaseSumPattern::new(client.clone(), "utxos_under_4m_old_realized_loss_neg".to_string()), + _5m: BaseSumPattern::new(client.clone(), "utxos_under_5m_old_realized_loss_neg".to_string()), + _6m: BaseSumPattern::new(client.clone(), "utxos_under_6m_old_realized_loss_neg".to_string()), + _9m: BaseSumPattern::new(client.clone(), "utxos_under_9m_old_realized_loss_neg".to_string()), + _1y: BaseSumPattern::new(client.clone(), "utxos_under_1y_old_realized_loss_neg".to_string()), + _18m: BaseSumPattern::new(client.clone(), "utxos_under_18m_old_realized_loss_neg".to_string()), + _2y: BaseSumPattern::new(client.clone(), "utxos_under_2y_old_realized_loss_neg".to_string()), + _3y: BaseSumPattern::new(client.clone(), "utxos_under_3y_old_realized_loss_neg".to_string()), + _4y: BaseSumPattern::new(client.clone(), "utxos_under_4y_old_realized_loss_neg".to_string()), + _5y: BaseSumPattern::new(client.clone(), "utxos_under_5y_old_realized_loss_neg".to_string()), + _6y: BaseSumPattern::new(client.clone(), "utxos_under_6y_old_realized_loss_neg".to_string()), + _7y: BaseSumPattern::new(client.clone(), "utxos_under_7y_old_realized_loss_neg".to_string()), + _8y: BaseSumPattern::new(client.clone(), "utxos_under_8y_old_realized_loss_neg".to_string()), + _10y: BaseSumPattern::new(client.clone(), "utxos_under_10y_old_realized_loss_neg".to_string()), + _12y: BaseSumPattern::new(client.clone(), "utxos_under_12y_old_realized_loss_neg".to_string()), + _15y: BaseSumPattern::new(client.clone(), "utxos_under_15y_old_realized_loss_neg".to_string()), } } } @@ -27979,86 +17647,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Loss_Negative_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: BaseSumPattern::new( - client.clone(), - "utxos_over_1d_old_realized_loss_neg".to_string(), - ), - _1w: BaseSumPattern::new( - client.clone(), - "utxos_over_1w_old_realized_loss_neg".to_string(), - ), - _1m: BaseSumPattern::new( - client.clone(), - "utxos_over_1m_old_realized_loss_neg".to_string(), - ), - _2m: BaseSumPattern::new( - client.clone(), - "utxos_over_2m_old_realized_loss_neg".to_string(), - ), - _3m: BaseSumPattern::new( - client.clone(), - "utxos_over_3m_old_realized_loss_neg".to_string(), - ), - _4m: BaseSumPattern::new( - client.clone(), - "utxos_over_4m_old_realized_loss_neg".to_string(), - ), - _5m: BaseSumPattern::new( - client.clone(), - "utxos_over_5m_old_realized_loss_neg".to_string(), - ), - _6m: BaseSumPattern::new( - client.clone(), - "utxos_over_6m_old_realized_loss_neg".to_string(), - ), - _9m: BaseSumPattern::new( - client.clone(), - "utxos_over_9m_old_realized_loss_neg".to_string(), - ), - _1y: BaseSumPattern::new( - client.clone(), - "utxos_over_1y_old_realized_loss_neg".to_string(), - ), - _18m: BaseSumPattern::new( - client.clone(), - "utxos_over_18m_old_realized_loss_neg".to_string(), - ), - _2y: BaseSumPattern::new( - client.clone(), - "utxos_over_2y_old_realized_loss_neg".to_string(), - ), - _3y: BaseSumPattern::new( - client.clone(), - "utxos_over_3y_old_realized_loss_neg".to_string(), - ), - _4y: BaseSumPattern::new( - client.clone(), - "utxos_over_4y_old_realized_loss_neg".to_string(), - ), - _5y: BaseSumPattern::new( - client.clone(), - "utxos_over_5y_old_realized_loss_neg".to_string(), - ), - _6y: BaseSumPattern::new( - client.clone(), - "utxos_over_6y_old_realized_loss_neg".to_string(), - ), - _7y: BaseSumPattern::new( - client.clone(), - "utxos_over_7y_old_realized_loss_neg".to_string(), - ), - _8y: BaseSumPattern::new( - client.clone(), - "utxos_over_8y_old_realized_loss_neg".to_string(), - ), - _10y: BaseSumPattern::new( - client.clone(), - "utxos_over_10y_old_realized_loss_neg".to_string(), - ), - _12y: BaseSumPattern::new( - client.clone(), - "utxos_over_12y_old_realized_loss_neg".to_string(), - ), + _1d: BaseSumPattern::new(client.clone(), "utxos_over_1d_old_realized_loss_neg".to_string()), + _1w: BaseSumPattern::new(client.clone(), "utxos_over_1w_old_realized_loss_neg".to_string()), + _1m: BaseSumPattern::new(client.clone(), "utxos_over_1m_old_realized_loss_neg".to_string()), + _2m: BaseSumPattern::new(client.clone(), "utxos_over_2m_old_realized_loss_neg".to_string()), + _3m: BaseSumPattern::new(client.clone(), "utxos_over_3m_old_realized_loss_neg".to_string()), + _4m: BaseSumPattern::new(client.clone(), "utxos_over_4m_old_realized_loss_neg".to_string()), + _5m: BaseSumPattern::new(client.clone(), "utxos_over_5m_old_realized_loss_neg".to_string()), + _6m: BaseSumPattern::new(client.clone(), "utxos_over_6m_old_realized_loss_neg".to_string()), + _9m: BaseSumPattern::new(client.clone(), "utxos_over_9m_old_realized_loss_neg".to_string()), + _1y: BaseSumPattern::new(client.clone(), "utxos_over_1y_old_realized_loss_neg".to_string()), + _18m: BaseSumPattern::new(client.clone(), "utxos_over_18m_old_realized_loss_neg".to_string()), + _2y: BaseSumPattern::new(client.clone(), "utxos_over_2y_old_realized_loss_neg".to_string()), + _3y: BaseSumPattern::new(client.clone(), "utxos_over_3y_old_realized_loss_neg".to_string()), + _4y: BaseSumPattern::new(client.clone(), "utxos_over_4y_old_realized_loss_neg".to_string()), + _5y: BaseSumPattern::new(client.clone(), "utxos_over_5y_old_realized_loss_neg".to_string()), + _6y: BaseSumPattern::new(client.clone(), "utxos_over_6y_old_realized_loss_neg".to_string()), + _7y: BaseSumPattern::new(client.clone(), "utxos_over_7y_old_realized_loss_neg".to_string()), + _8y: BaseSumPattern::new(client.clone(), "utxos_over_8y_old_realized_loss_neg".to_string()), + _10y: BaseSumPattern::new(client.clone(), "utxos_over_10y_old_realized_loss_neg".to_string()), + _12y: BaseSumPattern::new(client.clone(), "utxos_over_12y_old_realized_loss_neg".to_string()), } } } @@ -28179,50 +17787,17 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "net_realized_pnl".to_string(), - ), - age: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Class::new( - client.clone(), - format!("{base_path}_class"), - ), - entry: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Entry::new( - client.clone(), - format!("{base_path}_entry"), - ), - term: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Term::new( - client.clone(), - format!("{base_path}_term"), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_net_realized_pnl_cumulative_cents_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "net_realized_pnl_cumulative_cents_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "net_realized_pnl_cumulative_cents_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "net_realized_pnl_cumulative_cents_by_entry".to_string(), - ), - change_1m: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Change1m::new( - client.clone(), - format!("{base_path}_change_1m"), - ), + all: BlockCumulativeDeltaSumPattern::new(client.clone(), "net_realized_pnl".to_string()), + age: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Class::new(client.clone(), format!("{base_path}_class")), + entry: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Entry::new(client.clone(), format!("{base_path}_entry")), + term: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Term::new(client.clone(), format!("{base_path}_term")), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_net_realized_pnl_cumulative_cents_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "net_realized_pnl_cumulative_cents_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "net_realized_pnl_cumulative_cents_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "net_realized_pnl_cumulative_cents_by_entry".to_string()), + change_1m: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Change1m::new(client.clone(), format!("{base_path}_change_1m")), } } } @@ -28237,18 +17812,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -28283,98 +17849,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Range { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_1h_old_net_realized_pnl".to_string(), - ), - _1h_to_1d: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_net_realized_pnl".to_string(), - ), - _1d_to_1w: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_net_realized_pnl".to_string(), - ), - _1w_to_1m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_net_realized_pnl".to_string(), - ), - _1m_to_2m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_net_realized_pnl".to_string(), - ), - _2m_to_3m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_net_realized_pnl".to_string(), - ), - _3m_to_4m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_net_realized_pnl".to_string(), - ), - _4m_to_5m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_net_realized_pnl".to_string(), - ), - _5m_to_6m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_net_realized_pnl".to_string(), - ), - _6m_to_9m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_net_realized_pnl".to_string(), - ), - _9m_to_1y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_net_realized_pnl".to_string(), - ), - _1y_to_18m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_net_realized_pnl".to_string(), - ), - _18m_to_2y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_net_realized_pnl".to_string(), - ), - _2y_to_3y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_net_realized_pnl".to_string(), - ), - _3y_to_4y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_net_realized_pnl".to_string(), - ), - _4y_to_5y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_net_realized_pnl".to_string(), - ), - _5y_to_6y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_net_realized_pnl".to_string(), - ), - _6y_to_7y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_net_realized_pnl".to_string(), - ), - _7y_to_8y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_net_realized_pnl".to_string(), - ), - _8y_to_10y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_net_realized_pnl".to_string(), - ), - _10y_to_12y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_net_realized_pnl".to_string(), - ), - _12y_to_15y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_net_realized_pnl".to_string(), - ), - over_15y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_15y_old_net_realized_pnl".to_string(), - ), + under_1h: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_1h_old_net_realized_pnl".to_string()), + _1h_to_1d: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_1h_to_1d_old_net_realized_pnl".to_string()), + _1d_to_1w: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_1d_to_1w_old_net_realized_pnl".to_string()), + _1w_to_1m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_1w_to_1m_old_net_realized_pnl".to_string()), + _1m_to_2m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_1m_to_2m_old_net_realized_pnl".to_string()), + _2m_to_3m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_2m_to_3m_old_net_realized_pnl".to_string()), + _3m_to_4m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_3m_to_4m_old_net_realized_pnl".to_string()), + _4m_to_5m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_4m_to_5m_old_net_realized_pnl".to_string()), + _5m_to_6m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_5m_to_6m_old_net_realized_pnl".to_string()), + _6m_to_9m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_6m_to_9m_old_net_realized_pnl".to_string()), + _9m_to_1y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_9m_to_1y_old_net_realized_pnl".to_string()), + _1y_to_18m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_1y_to_18m_old_net_realized_pnl".to_string()), + _18m_to_2y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_18m_to_2y_old_net_realized_pnl".to_string()), + _2y_to_3y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_2y_to_3y_old_net_realized_pnl".to_string()), + _3y_to_4y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_3y_to_4y_old_net_realized_pnl".to_string()), + _4y_to_5y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_4y_to_5y_old_net_realized_pnl".to_string()), + _5y_to_6y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_5y_to_6y_old_net_realized_pnl".to_string()), + _6y_to_7y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_6y_to_7y_old_net_realized_pnl".to_string()), + _7y_to_8y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_7y_to_8y_old_net_realized_pnl".to_string()), + _8y_to_10y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_8y_to_10y_old_net_realized_pnl".to_string()), + _10y_to_12y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_10y_to_12y_old_net_realized_pnl".to_string()), + _12y_to_15y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_12y_to_15y_old_net_realized_pnl".to_string()), + over_15y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_15y_old_net_realized_pnl".to_string()), } } } @@ -28406,86 +17903,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Under { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_1w_old_net_realized_pnl".to_string(), - ), - _1m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_1m_old_net_realized_pnl".to_string(), - ), - _2m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_2m_old_net_realized_pnl".to_string(), - ), - _3m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_3m_old_net_realized_pnl".to_string(), - ), - _4m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_4m_old_net_realized_pnl".to_string(), - ), - _5m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_5m_old_net_realized_pnl".to_string(), - ), - _6m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_6m_old_net_realized_pnl".to_string(), - ), - _9m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_9m_old_net_realized_pnl".to_string(), - ), - _1y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_1y_old_net_realized_pnl".to_string(), - ), - _18m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_18m_old_net_realized_pnl".to_string(), - ), - _2y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_2y_old_net_realized_pnl".to_string(), - ), - _3y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_3y_old_net_realized_pnl".to_string(), - ), - _4y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_4y_old_net_realized_pnl".to_string(), - ), - _5y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_5y_old_net_realized_pnl".to_string(), - ), - _6y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_6y_old_net_realized_pnl".to_string(), - ), - _7y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_7y_old_net_realized_pnl".to_string(), - ), - _8y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_8y_old_net_realized_pnl".to_string(), - ), - _10y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_10y_old_net_realized_pnl".to_string(), - ), - _12y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_12y_old_net_realized_pnl".to_string(), - ), - _15y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_under_15y_old_net_realized_pnl".to_string(), - ), + _1w: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_1w_old_net_realized_pnl".to_string()), + _1m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_1m_old_net_realized_pnl".to_string()), + _2m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_2m_old_net_realized_pnl".to_string()), + _3m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_3m_old_net_realized_pnl".to_string()), + _4m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_4m_old_net_realized_pnl".to_string()), + _5m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_5m_old_net_realized_pnl".to_string()), + _6m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_6m_old_net_realized_pnl".to_string()), + _9m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_9m_old_net_realized_pnl".to_string()), + _1y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_1y_old_net_realized_pnl".to_string()), + _18m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_18m_old_net_realized_pnl".to_string()), + _2y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_2y_old_net_realized_pnl".to_string()), + _3y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_3y_old_net_realized_pnl".to_string()), + _4y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_4y_old_net_realized_pnl".to_string()), + _5y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_5y_old_net_realized_pnl".to_string()), + _6y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_6y_old_net_realized_pnl".to_string()), + _7y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_7y_old_net_realized_pnl".to_string()), + _8y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_8y_old_net_realized_pnl".to_string()), + _10y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_10y_old_net_realized_pnl".to_string()), + _12y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_12y_old_net_realized_pnl".to_string()), + _15y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_under_15y_old_net_realized_pnl".to_string()), } } } @@ -28517,86 +17954,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Over { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_1d_old_net_realized_pnl".to_string(), - ), - _1w: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_1w_old_net_realized_pnl".to_string(), - ), - _1m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_1m_old_net_realized_pnl".to_string(), - ), - _2m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_2m_old_net_realized_pnl".to_string(), - ), - _3m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_3m_old_net_realized_pnl".to_string(), - ), - _4m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_4m_old_net_realized_pnl".to_string(), - ), - _5m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_5m_old_net_realized_pnl".to_string(), - ), - _6m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_6m_old_net_realized_pnl".to_string(), - ), - _9m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_9m_old_net_realized_pnl".to_string(), - ), - _1y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_1y_old_net_realized_pnl".to_string(), - ), - _18m: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_18m_old_net_realized_pnl".to_string(), - ), - _2y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_2y_old_net_realized_pnl".to_string(), - ), - _3y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_3y_old_net_realized_pnl".to_string(), - ), - _4y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_4y_old_net_realized_pnl".to_string(), - ), - _5y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_5y_old_net_realized_pnl".to_string(), - ), - _6y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_6y_old_net_realized_pnl".to_string(), - ), - _7y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_7y_old_net_realized_pnl".to_string(), - ), - _8y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_8y_old_net_realized_pnl".to_string(), - ), - _10y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_10y_old_net_realized_pnl".to_string(), - ), - _12y: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "utxos_over_12y_old_net_realized_pnl".to_string(), - ), + _1d: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_1d_old_net_realized_pnl".to_string()), + _1w: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_1w_old_net_realized_pnl".to_string()), + _1m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_1m_old_net_realized_pnl".to_string()), + _2m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_2m_old_net_realized_pnl".to_string()), + _3m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_3m_old_net_realized_pnl".to_string()), + _4m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_4m_old_net_realized_pnl".to_string()), + _5m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_5m_old_net_realized_pnl".to_string()), + _6m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_6m_old_net_realized_pnl".to_string()), + _9m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_9m_old_net_realized_pnl".to_string()), + _1y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_1y_old_net_realized_pnl".to_string()), + _18m: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_18m_old_net_realized_pnl".to_string()), + _2y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_2y_old_net_realized_pnl".to_string()), + _3y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_3y_old_net_realized_pnl".to_string()), + _4y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_4y_old_net_realized_pnl".to_string()), + _5y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_5y_old_net_realized_pnl".to_string()), + _6y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_6y_old_net_realized_pnl".to_string()), + _7y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_7y_old_net_realized_pnl".to_string()), + _8y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_8y_old_net_realized_pnl".to_string()), + _10y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_10y_old_net_realized_pnl".to_string()), + _12y: BlockCumulativeDeltaSumPattern::new(client.clone(), "utxos_over_12y_old_net_realized_pnl".to_string()), } } } @@ -28613,26 +17990,11 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Epoch { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "epoch_0_net_realized_pnl".to_string(), - ), - _1: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "epoch_1_net_realized_pnl".to_string(), - ), - _2: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "epoch_2_net_realized_pnl".to_string(), - ), - _3: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "epoch_3_net_realized_pnl".to_string(), - ), - _4: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "epoch_4_net_realized_pnl".to_string(), - ), + _0: BlockCumulativeDeltaSumPattern::new(client.clone(), "epoch_0_net_realized_pnl".to_string()), + _1: BlockCumulativeDeltaSumPattern::new(client.clone(), "epoch_1_net_realized_pnl".to_string()), + _2: BlockCumulativeDeltaSumPattern::new(client.clone(), "epoch_2_net_realized_pnl".to_string()), + _3: BlockCumulativeDeltaSumPattern::new(client.clone(), "epoch_3_net_realized_pnl".to_string()), + _4: BlockCumulativeDeltaSumPattern::new(client.clone(), "epoch_4_net_realized_pnl".to_string()), } } } @@ -28662,78 +18024,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Class { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2009_net_realized_pnl".to_string(), - ), - _2010: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2010_net_realized_pnl".to_string(), - ), - _2011: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2011_net_realized_pnl".to_string(), - ), - _2012: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2012_net_realized_pnl".to_string(), - ), - _2013: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2013_net_realized_pnl".to_string(), - ), - _2014: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2014_net_realized_pnl".to_string(), - ), - _2015: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2015_net_realized_pnl".to_string(), - ), - _2016: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2016_net_realized_pnl".to_string(), - ), - _2017: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2017_net_realized_pnl".to_string(), - ), - _2018: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2018_net_realized_pnl".to_string(), - ), - _2019: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2019_net_realized_pnl".to_string(), - ), - _2020: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2020_net_realized_pnl".to_string(), - ), - _2021: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2021_net_realized_pnl".to_string(), - ), - _2022: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2022_net_realized_pnl".to_string(), - ), - _2023: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2023_net_realized_pnl".to_string(), - ), - _2024: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2024_net_realized_pnl".to_string(), - ), - _2025: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2025_net_realized_pnl".to_string(), - ), - _2026: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "class_2026_net_realized_pnl".to_string(), - ), + _2009: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2009_net_realized_pnl".to_string()), + _2010: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2010_net_realized_pnl".to_string()), + _2011: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2011_net_realized_pnl".to_string()), + _2012: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2012_net_realized_pnl".to_string()), + _2013: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2013_net_realized_pnl".to_string()), + _2014: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2014_net_realized_pnl".to_string()), + _2015: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2015_net_realized_pnl".to_string()), + _2016: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2016_net_realized_pnl".to_string()), + _2017: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2017_net_realized_pnl".to_string()), + _2018: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2018_net_realized_pnl".to_string()), + _2019: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2019_net_realized_pnl".to_string()), + _2020: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2020_net_realized_pnl".to_string()), + _2021: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2021_net_realized_pnl".to_string()), + _2022: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2022_net_realized_pnl".to_string()), + _2023: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2023_net_realized_pnl".to_string()), + _2024: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2024_net_realized_pnl".to_string()), + _2025: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2025_net_realized_pnl".to_string()), + _2026: BlockCumulativeDeltaSumPattern::new(client.clone(), "class_2026_net_realized_pnl".to_string()), } } } @@ -28747,14 +18055,8 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Entry { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Entry { pub fn new(client: Arc, base_path: String) -> Self { Self { - discount: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "veteran_net_realized_pnl".to_string(), - ), - premium: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "rookie_net_realized_pnl".to_string(), - ), + discount: BlockCumulativeDeltaSumPattern::new(client.clone(), "veteran_net_realized_pnl".to_string()), + premium: BlockCumulativeDeltaSumPattern::new(client.clone(), "rookie_net_realized_pnl".to_string()), } } } @@ -28768,14 +18070,8 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Term { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Term { pub fn new(client: Arc, base_path: String) -> Self { Self { - short: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "sth_net_realized_pnl".to_string(), - ), - long: BlockCumulativeDeltaSumPattern::new( - client.clone(), - "lth_net_realized_pnl".to_string(), - ), + short: BlockCumulativeDeltaSumPattern::new(client.clone(), "sth_net_realized_pnl".to_string()), + long: BlockCumulativeDeltaSumPattern::new(client.clone(), "lth_net_realized_pnl".to_string()), } } } @@ -28788,10 +18084,7 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Change1m { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Change1m { pub fn new(client: Arc, base_path: String) -> Self { Self { - to_mcap: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Change1m_ToMcap::new( - client.clone(), - format!("{base_path}_to_mcap"), - ), + to_mcap: SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Change1m_ToMcap::new(client.clone(), format!("{base_path}_to_mcap")), } } } @@ -28806,18 +18099,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Change1m_ToMcap { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnl_Change1m_ToMcap { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: PercentPpmRatioPattern::new( - client.clone(), - "all_net_pnl_change_1m_to_mcap".to_string(), - ), - sth: PercentPpmRatioPattern::new( - client.clone(), - "sth_net_pnl_change_1m_to_mcap".to_string(), - ), - lth: PercentPpmRatioPattern::new( - client.clone(), - "lth_net_pnl_change_1m_to_mcap".to_string(), - ), + all: PercentPpmRatioPattern::new(client.clone(), "all_net_pnl_change_1m_to_mcap".to_string()), + sth: PercentPpmRatioPattern::new(client.clone(), "sth_net_pnl_change_1m_to_mcap".to_string()), + lth: PercentPpmRatioPattern::new(client.clone(), "lth_net_pnl_change_1m_to_mcap".to_string()), } } } @@ -28843,53 +18127,20 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr { pub fn new(client: Arc, base_path: String) -> Self { Self { - value_destroyed: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed::new( - client.clone(), - format!("{base_path}_value_destroyed"), - ), + value_destroyed: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed::new(client.clone(), format!("{base_path}_value_destroyed")), all: SeriesPattern1::new(client.clone(), "sopr_24h".to_string()), - age: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern7::new(client.clone(), "sopr_24h".to_string()), term: LongShortPattern7::new(client.clone(), "sopr_24h".to_string()), - aggregate_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_AggregateMatrix::new( - client.clone(), - format!("{base_path}_aggregate_matrix"), - ), - age_range_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_AgeRangeMatrix::new( - client.clone(), - format!("{base_path}_age_range_matrix"), - ), - under_age_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_UnderAgeMatrix::new( - client.clone(), - format!("{base_path}_under_age_matrix"), - ), - over_age_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_OverAgeMatrix::new( - client.clone(), - format!("{base_path}_over_age_matrix"), - ), - epoch_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_EpochMatrix::new( - client.clone(), - format!("{base_path}_epoch_matrix"), - ), - class_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ClassMatrix::new( - client.clone(), - format!("{base_path}_class_matrix"), - ), - entry_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_EntryMatrix::new( - client.clone(), - format!("{base_path}_entry_matrix"), - ), + aggregate_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_AggregateMatrix::new(client.clone(), format!("{base_path}_aggregate_matrix")), + age_range_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_AgeRangeMatrix::new(client.clone(), format!("{base_path}_age_range_matrix")), + under_age_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_UnderAgeMatrix::new(client.clone(), format!("{base_path}_under_age_matrix")), + over_age_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_OverAgeMatrix::new(client.clone(), format!("{base_path}_over_age_matrix")), + epoch_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_EpochMatrix::new(client.clone(), format!("{base_path}_epoch_matrix")), + class_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ClassMatrix::new(client.clone(), format!("{base_path}_class_matrix")), + entry_matrix: SeriesTree_Cohorts_Cohorts_Realized_Sopr_EntryMatrix::new(client.clone(), format!("{base_path}_entry_matrix")), } } } @@ -28912,36 +18163,15 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed { pub fn new(client: Arc, base_path: String) -> Self { Self { all: BlockCumulativeSumPattern::new(client.clone(), "value_destroyed".to_string()), - age: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern5::new(client.clone(), "value_destroyed".to_string()), term: LongShortPattern6::new(client.clone(), "value_destroyed".to_string()), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_value_destroyed_cumulative_cents_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "value_destroyed_cumulative_cents_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "value_destroyed_cumulative_cents_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "value_destroyed_cumulative_cents_by_entry".to_string(), - ), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_value_destroyed_cumulative_cents_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "value_destroyed_cumulative_cents_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "value_destroyed_cumulative_cents_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "value_destroyed_cumulative_cents_by_entry".to_string()), } } } @@ -28956,18 +18186,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -29002,98 +18223,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1h_old_value_destroyed".to_string(), - ), - _1h_to_1d: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1h_to_1d_old_value_destroyed".to_string(), - ), - _1d_to_1w: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1d_to_1w_old_value_destroyed".to_string(), - ), - _1w_to_1m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1w_to_1m_old_value_destroyed".to_string(), - ), - _1m_to_2m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1m_to_2m_old_value_destroyed".to_string(), - ), - _2m_to_3m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_2m_to_3m_old_value_destroyed".to_string(), - ), - _3m_to_4m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_3m_to_4m_old_value_destroyed".to_string(), - ), - _4m_to_5m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_4m_to_5m_old_value_destroyed".to_string(), - ), - _5m_to_6m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_5m_to_6m_old_value_destroyed".to_string(), - ), - _6m_to_9m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_6m_to_9m_old_value_destroyed".to_string(), - ), - _9m_to_1y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_9m_to_1y_old_value_destroyed".to_string(), - ), - _1y_to_18m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_1y_to_18m_old_value_destroyed".to_string(), - ), - _18m_to_2y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_18m_to_2y_old_value_destroyed".to_string(), - ), - _2y_to_3y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_2y_to_3y_old_value_destroyed".to_string(), - ), - _3y_to_4y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_3y_to_4y_old_value_destroyed".to_string(), - ), - _4y_to_5y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_4y_to_5y_old_value_destroyed".to_string(), - ), - _5y_to_6y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_5y_to_6y_old_value_destroyed".to_string(), - ), - _6y_to_7y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_6y_to_7y_old_value_destroyed".to_string(), - ), - _7y_to_8y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_7y_to_8y_old_value_destroyed".to_string(), - ), - _8y_to_10y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_8y_to_10y_old_value_destroyed".to_string(), - ), - _10y_to_12y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_10y_to_12y_old_value_destroyed".to_string(), - ), - _12y_to_15y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_12y_to_15y_old_value_destroyed".to_string(), - ), - over_15y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_15y_old_value_destroyed".to_string(), - ), + under_1h: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1h_old_value_destroyed".to_string()), + _1h_to_1d: BlockCumulativeSumPattern::new(client.clone(), "utxos_1h_to_1d_old_value_destroyed".to_string()), + _1d_to_1w: BlockCumulativeSumPattern::new(client.clone(), "utxos_1d_to_1w_old_value_destroyed".to_string()), + _1w_to_1m: BlockCumulativeSumPattern::new(client.clone(), "utxos_1w_to_1m_old_value_destroyed".to_string()), + _1m_to_2m: BlockCumulativeSumPattern::new(client.clone(), "utxos_1m_to_2m_old_value_destroyed".to_string()), + _2m_to_3m: BlockCumulativeSumPattern::new(client.clone(), "utxos_2m_to_3m_old_value_destroyed".to_string()), + _3m_to_4m: BlockCumulativeSumPattern::new(client.clone(), "utxos_3m_to_4m_old_value_destroyed".to_string()), + _4m_to_5m: BlockCumulativeSumPattern::new(client.clone(), "utxos_4m_to_5m_old_value_destroyed".to_string()), + _5m_to_6m: BlockCumulativeSumPattern::new(client.clone(), "utxos_5m_to_6m_old_value_destroyed".to_string()), + _6m_to_9m: BlockCumulativeSumPattern::new(client.clone(), "utxos_6m_to_9m_old_value_destroyed".to_string()), + _9m_to_1y: BlockCumulativeSumPattern::new(client.clone(), "utxos_9m_to_1y_old_value_destroyed".to_string()), + _1y_to_18m: BlockCumulativeSumPattern::new(client.clone(), "utxos_1y_to_18m_old_value_destroyed".to_string()), + _18m_to_2y: BlockCumulativeSumPattern::new(client.clone(), "utxos_18m_to_2y_old_value_destroyed".to_string()), + _2y_to_3y: BlockCumulativeSumPattern::new(client.clone(), "utxos_2y_to_3y_old_value_destroyed".to_string()), + _3y_to_4y: BlockCumulativeSumPattern::new(client.clone(), "utxos_3y_to_4y_old_value_destroyed".to_string()), + _4y_to_5y: BlockCumulativeSumPattern::new(client.clone(), "utxos_4y_to_5y_old_value_destroyed".to_string()), + _5y_to_6y: BlockCumulativeSumPattern::new(client.clone(), "utxos_5y_to_6y_old_value_destroyed".to_string()), + _6y_to_7y: BlockCumulativeSumPattern::new(client.clone(), "utxos_6y_to_7y_old_value_destroyed".to_string()), + _7y_to_8y: BlockCumulativeSumPattern::new(client.clone(), "utxos_7y_to_8y_old_value_destroyed".to_string()), + _8y_to_10y: BlockCumulativeSumPattern::new(client.clone(), "utxos_8y_to_10y_old_value_destroyed".to_string()), + _10y_to_12y: BlockCumulativeSumPattern::new(client.clone(), "utxos_10y_to_12y_old_value_destroyed".to_string()), + _12y_to_15y: BlockCumulativeSumPattern::new(client.clone(), "utxos_12y_to_15y_old_value_destroyed".to_string()), + over_15y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_15y_old_value_destroyed".to_string()), } } } @@ -29125,86 +18277,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Under { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1w_old_value_destroyed".to_string(), - ), - _1m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1m_old_value_destroyed".to_string(), - ), - _2m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2m_old_value_destroyed".to_string(), - ), - _3m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3m_old_value_destroyed".to_string(), - ), - _4m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4m_old_value_destroyed".to_string(), - ), - _5m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5m_old_value_destroyed".to_string(), - ), - _6m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6m_old_value_destroyed".to_string(), - ), - _9m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_9m_old_value_destroyed".to_string(), - ), - _1y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_1y_old_value_destroyed".to_string(), - ), - _18m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_18m_old_value_destroyed".to_string(), - ), - _2y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_2y_old_value_destroyed".to_string(), - ), - _3y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_3y_old_value_destroyed".to_string(), - ), - _4y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_4y_old_value_destroyed".to_string(), - ), - _5y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_5y_old_value_destroyed".to_string(), - ), - _6y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_6y_old_value_destroyed".to_string(), - ), - _7y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_7y_old_value_destroyed".to_string(), - ), - _8y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_8y_old_value_destroyed".to_string(), - ), - _10y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_10y_old_value_destroyed".to_string(), - ), - _12y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_12y_old_value_destroyed".to_string(), - ), - _15y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_under_15y_old_value_destroyed".to_string(), - ), + _1w: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1w_old_value_destroyed".to_string()), + _1m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1m_old_value_destroyed".to_string()), + _2m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_2m_old_value_destroyed".to_string()), + _3m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_3m_old_value_destroyed".to_string()), + _4m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_4m_old_value_destroyed".to_string()), + _5m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_5m_old_value_destroyed".to_string()), + _6m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_6m_old_value_destroyed".to_string()), + _9m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_9m_old_value_destroyed".to_string()), + _1y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_1y_old_value_destroyed".to_string()), + _18m: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_18m_old_value_destroyed".to_string()), + _2y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_2y_old_value_destroyed".to_string()), + _3y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_3y_old_value_destroyed".to_string()), + _4y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_4y_old_value_destroyed".to_string()), + _5y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_5y_old_value_destroyed".to_string()), + _6y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_6y_old_value_destroyed".to_string()), + _7y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_7y_old_value_destroyed".to_string()), + _8y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_8y_old_value_destroyed".to_string()), + _10y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_10y_old_value_destroyed".to_string()), + _12y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_12y_old_value_destroyed".to_string()), + _15y: BlockCumulativeSumPattern::new(client.clone(), "utxos_under_15y_old_value_destroyed".to_string()), } } } @@ -29236,86 +18328,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Over { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1d_old_value_destroyed".to_string(), - ), - _1w: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1w_old_value_destroyed".to_string(), - ), - _1m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1m_old_value_destroyed".to_string(), - ), - _2m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2m_old_value_destroyed".to_string(), - ), - _3m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3m_old_value_destroyed".to_string(), - ), - _4m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4m_old_value_destroyed".to_string(), - ), - _5m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5m_old_value_destroyed".to_string(), - ), - _6m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6m_old_value_destroyed".to_string(), - ), - _9m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_9m_old_value_destroyed".to_string(), - ), - _1y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_1y_old_value_destroyed".to_string(), - ), - _18m: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_18m_old_value_destroyed".to_string(), - ), - _2y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_2y_old_value_destroyed".to_string(), - ), - _3y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_3y_old_value_destroyed".to_string(), - ), - _4y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_4y_old_value_destroyed".to_string(), - ), - _5y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_5y_old_value_destroyed".to_string(), - ), - _6y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_6y_old_value_destroyed".to_string(), - ), - _7y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_7y_old_value_destroyed".to_string(), - ), - _8y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_8y_old_value_destroyed".to_string(), - ), - _10y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_10y_old_value_destroyed".to_string(), - ), - _12y: BlockCumulativeSumPattern::new( - client.clone(), - "utxos_over_12y_old_value_destroyed".to_string(), - ), + _1d: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1d_old_value_destroyed".to_string()), + _1w: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1w_old_value_destroyed".to_string()), + _1m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1m_old_value_destroyed".to_string()), + _2m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_2m_old_value_destroyed".to_string()), + _3m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_3m_old_value_destroyed".to_string()), + _4m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_4m_old_value_destroyed".to_string()), + _5m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_5m_old_value_destroyed".to_string()), + _6m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_6m_old_value_destroyed".to_string()), + _9m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_9m_old_value_destroyed".to_string()), + _1y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_1y_old_value_destroyed".to_string()), + _18m: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_18m_old_value_destroyed".to_string()), + _2y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_2y_old_value_destroyed".to_string()), + _3y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_3y_old_value_destroyed".to_string()), + _4y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_4y_old_value_destroyed".to_string()), + _5y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_5y_old_value_destroyed".to_string()), + _6y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_6y_old_value_destroyed".to_string()), + _7y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_7y_old_value_destroyed".to_string()), + _8y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_8y_old_value_destroyed".to_string()), + _10y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_10y_old_value_destroyed".to_string()), + _12y: BlockCumulativeSumPattern::new(client.clone(), "utxos_over_12y_old_value_destroyed".to_string()), } } } @@ -29332,26 +18364,11 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Epoch { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Epoch { pub fn new(client: Arc, base_path: String) -> Self { Self { - _0: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_0_value_destroyed".to_string(), - ), - _1: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_1_value_destroyed".to_string(), - ), - _2: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_2_value_destroyed".to_string(), - ), - _3: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_3_value_destroyed".to_string(), - ), - _4: BlockCumulativeSumPattern::new( - client.clone(), - "epoch_4_value_destroyed".to_string(), - ), + _0: BlockCumulativeSumPattern::new(client.clone(), "epoch_0_value_destroyed".to_string()), + _1: BlockCumulativeSumPattern::new(client.clone(), "epoch_1_value_destroyed".to_string()), + _2: BlockCumulativeSumPattern::new(client.clone(), "epoch_2_value_destroyed".to_string()), + _3: BlockCumulativeSumPattern::new(client.clone(), "epoch_3_value_destroyed".to_string()), + _4: BlockCumulativeSumPattern::new(client.clone(), "epoch_4_value_destroyed".to_string()), } } } @@ -29381,78 +18398,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Class { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_ValueDestroyed_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: BlockCumulativeSumPattern::new( - client.clone(), - "class_2009_value_destroyed".to_string(), - ), - _2010: BlockCumulativeSumPattern::new( - client.clone(), - "class_2010_value_destroyed".to_string(), - ), - _2011: BlockCumulativeSumPattern::new( - client.clone(), - "class_2011_value_destroyed".to_string(), - ), - _2012: BlockCumulativeSumPattern::new( - client.clone(), - "class_2012_value_destroyed".to_string(), - ), - _2013: BlockCumulativeSumPattern::new( - client.clone(), - "class_2013_value_destroyed".to_string(), - ), - _2014: BlockCumulativeSumPattern::new( - client.clone(), - "class_2014_value_destroyed".to_string(), - ), - _2015: BlockCumulativeSumPattern::new( - client.clone(), - "class_2015_value_destroyed".to_string(), - ), - _2016: BlockCumulativeSumPattern::new( - client.clone(), - "class_2016_value_destroyed".to_string(), - ), - _2017: BlockCumulativeSumPattern::new( - client.clone(), - "class_2017_value_destroyed".to_string(), - ), - _2018: BlockCumulativeSumPattern::new( - client.clone(), - "class_2018_value_destroyed".to_string(), - ), - _2019: BlockCumulativeSumPattern::new( - client.clone(), - "class_2019_value_destroyed".to_string(), - ), - _2020: BlockCumulativeSumPattern::new( - client.clone(), - "class_2020_value_destroyed".to_string(), - ), - _2021: BlockCumulativeSumPattern::new( - client.clone(), - "class_2021_value_destroyed".to_string(), - ), - _2022: BlockCumulativeSumPattern::new( - client.clone(), - "class_2022_value_destroyed".to_string(), - ), - _2023: BlockCumulativeSumPattern::new( - client.clone(), - "class_2023_value_destroyed".to_string(), - ), - _2024: BlockCumulativeSumPattern::new( - client.clone(), - "class_2024_value_destroyed".to_string(), - ), - _2025: BlockCumulativeSumPattern::new( - client.clone(), - "class_2025_value_destroyed".to_string(), - ), - _2026: BlockCumulativeSumPattern::new( - client.clone(), - "class_2026_value_destroyed".to_string(), - ), + _2009: BlockCumulativeSumPattern::new(client.clone(), "class_2009_value_destroyed".to_string()), + _2010: BlockCumulativeSumPattern::new(client.clone(), "class_2010_value_destroyed".to_string()), + _2011: BlockCumulativeSumPattern::new(client.clone(), "class_2011_value_destroyed".to_string()), + _2012: BlockCumulativeSumPattern::new(client.clone(), "class_2012_value_destroyed".to_string()), + _2013: BlockCumulativeSumPattern::new(client.clone(), "class_2013_value_destroyed".to_string()), + _2014: BlockCumulativeSumPattern::new(client.clone(), "class_2014_value_destroyed".to_string()), + _2015: BlockCumulativeSumPattern::new(client.clone(), "class_2015_value_destroyed".to_string()), + _2016: BlockCumulativeSumPattern::new(client.clone(), "class_2016_value_destroyed".to_string()), + _2017: BlockCumulativeSumPattern::new(client.clone(), "class_2017_value_destroyed".to_string()), + _2018: BlockCumulativeSumPattern::new(client.clone(), "class_2018_value_destroyed".to_string()), + _2019: BlockCumulativeSumPattern::new(client.clone(), "class_2019_value_destroyed".to_string()), + _2020: BlockCumulativeSumPattern::new(client.clone(), "class_2020_value_destroyed".to_string()), + _2021: BlockCumulativeSumPattern::new(client.clone(), "class_2021_value_destroyed".to_string()), + _2022: BlockCumulativeSumPattern::new(client.clone(), "class_2022_value_destroyed".to_string()), + _2023: BlockCumulativeSumPattern::new(client.clone(), "class_2023_value_destroyed".to_string()), + _2024: BlockCumulativeSumPattern::new(client.clone(), "class_2024_value_destroyed".to_string()), + _2025: BlockCumulativeSumPattern::new(client.clone(), "class_2025_value_destroyed".to_string()), + _2026: BlockCumulativeSumPattern::new(client.clone(), "class_2026_value_destroyed".to_string()), } } } @@ -29467,18 +18430,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -29513,98 +18467,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age_Range { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesPattern1::new( - client.clone(), - "utxos_under_1h_old_sopr_24h".to_string(), - ), - _1h_to_1d: SeriesPattern1::new( - client.clone(), - "utxos_1h_to_1d_old_sopr_24h".to_string(), - ), - _1d_to_1w: SeriesPattern1::new( - client.clone(), - "utxos_1d_to_1w_old_sopr_24h".to_string(), - ), - _1w_to_1m: SeriesPattern1::new( - client.clone(), - "utxos_1w_to_1m_old_sopr_24h".to_string(), - ), - _1m_to_2m: SeriesPattern1::new( - client.clone(), - "utxos_1m_to_2m_old_sopr_24h".to_string(), - ), - _2m_to_3m: SeriesPattern1::new( - client.clone(), - "utxos_2m_to_3m_old_sopr_24h".to_string(), - ), - _3m_to_4m: SeriesPattern1::new( - client.clone(), - "utxos_3m_to_4m_old_sopr_24h".to_string(), - ), - _4m_to_5m: SeriesPattern1::new( - client.clone(), - "utxos_4m_to_5m_old_sopr_24h".to_string(), - ), - _5m_to_6m: SeriesPattern1::new( - client.clone(), - "utxos_5m_to_6m_old_sopr_24h".to_string(), - ), - _6m_to_9m: SeriesPattern1::new( - client.clone(), - "utxos_6m_to_9m_old_sopr_24h".to_string(), - ), - _9m_to_1y: SeriesPattern1::new( - client.clone(), - "utxos_9m_to_1y_old_sopr_24h".to_string(), - ), - _1y_to_18m: SeriesPattern1::new( - client.clone(), - "utxos_1y_to_18m_old_sopr_24h".to_string(), - ), - _18m_to_2y: SeriesPattern1::new( - client.clone(), - "utxos_18m_to_2y_old_sopr_24h".to_string(), - ), - _2y_to_3y: SeriesPattern1::new( - client.clone(), - "utxos_2y_to_3y_old_sopr_24h".to_string(), - ), - _3y_to_4y: SeriesPattern1::new( - client.clone(), - "utxos_3y_to_4y_old_sopr_24h".to_string(), - ), - _4y_to_5y: SeriesPattern1::new( - client.clone(), - "utxos_4y_to_5y_old_sopr_24h".to_string(), - ), - _5y_to_6y: SeriesPattern1::new( - client.clone(), - "utxos_5y_to_6y_old_sopr_24h".to_string(), - ), - _6y_to_7y: SeriesPattern1::new( - client.clone(), - "utxos_6y_to_7y_old_sopr_24h".to_string(), - ), - _7y_to_8y: SeriesPattern1::new( - client.clone(), - "utxos_7y_to_8y_old_sopr_24h".to_string(), - ), - _8y_to_10y: SeriesPattern1::new( - client.clone(), - "utxos_8y_to_10y_old_sopr_24h".to_string(), - ), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_10y_to_12y_old_sopr_24h".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_12y_to_15y_old_sopr_24h".to_string(), - ), - over_15y: SeriesPattern1::new( - client.clone(), - "utxos_over_15y_old_sopr_24h".to_string(), - ), + under_1h: SeriesPattern1::new(client.clone(), "utxos_under_1h_old_sopr_24h".to_string()), + _1h_to_1d: SeriesPattern1::new(client.clone(), "utxos_1h_to_1d_old_sopr_24h".to_string()), + _1d_to_1w: SeriesPattern1::new(client.clone(), "utxos_1d_to_1w_old_sopr_24h".to_string()), + _1w_to_1m: SeriesPattern1::new(client.clone(), "utxos_1w_to_1m_old_sopr_24h".to_string()), + _1m_to_2m: SeriesPattern1::new(client.clone(), "utxos_1m_to_2m_old_sopr_24h".to_string()), + _2m_to_3m: SeriesPattern1::new(client.clone(), "utxos_2m_to_3m_old_sopr_24h".to_string()), + _3m_to_4m: SeriesPattern1::new(client.clone(), "utxos_3m_to_4m_old_sopr_24h".to_string()), + _4m_to_5m: SeriesPattern1::new(client.clone(), "utxos_4m_to_5m_old_sopr_24h".to_string()), + _5m_to_6m: SeriesPattern1::new(client.clone(), "utxos_5m_to_6m_old_sopr_24h".to_string()), + _6m_to_9m: SeriesPattern1::new(client.clone(), "utxos_6m_to_9m_old_sopr_24h".to_string()), + _9m_to_1y: SeriesPattern1::new(client.clone(), "utxos_9m_to_1y_old_sopr_24h".to_string()), + _1y_to_18m: SeriesPattern1::new(client.clone(), "utxos_1y_to_18m_old_sopr_24h".to_string()), + _18m_to_2y: SeriesPattern1::new(client.clone(), "utxos_18m_to_2y_old_sopr_24h".to_string()), + _2y_to_3y: SeriesPattern1::new(client.clone(), "utxos_2y_to_3y_old_sopr_24h".to_string()), + _3y_to_4y: SeriesPattern1::new(client.clone(), "utxos_3y_to_4y_old_sopr_24h".to_string()), + _4y_to_5y: SeriesPattern1::new(client.clone(), "utxos_4y_to_5y_old_sopr_24h".to_string()), + _5y_to_6y: SeriesPattern1::new(client.clone(), "utxos_5y_to_6y_old_sopr_24h".to_string()), + _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_sopr_24h".to_string()), + _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_sopr_24h".to_string()), + _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_sopr_24h".to_string()), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_sopr_24h".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_sopr_24h".to_string()), + over_15y: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_sopr_24h".to_string()), } } } @@ -29829,98 +18714,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_AgeRangeMatrix { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_AgeRangeMatrix { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_0".to_string(), - ), - _1h_to_1d: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_1".to_string(), - ), - _1d_to_1w: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_2".to_string(), - ), - _1w_to_1m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_3".to_string(), - ), - _1m_to_2m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_4".to_string(), - ), - _2m_to_3m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_5".to_string(), - ), - _3m_to_4m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_6".to_string(), - ), - _4m_to_5m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_7".to_string(), - ), - _5m_to_6m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_8".to_string(), - ), - _6m_to_9m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_9".to_string(), - ), - _9m_to_1y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_10".to_string(), - ), - _1y_to_18m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_11".to_string(), - ), - _18m_to_2y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_12".to_string(), - ), - _2y_to_3y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_13".to_string(), - ), - _3y_to_4y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_14".to_string(), - ), - _4y_to_5y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_15".to_string(), - ), - _5y_to_6y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_16".to_string(), - ), - _6y_to_7y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_17".to_string(), - ), - _7y_to_8y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_18".to_string(), - ), - _8y_to_10y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_19".to_string(), - ), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_20".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_21".to_string(), - ), - over_15y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_age_range_column_22".to_string(), - ), + under_1h: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_0".to_string()), + _1h_to_1d: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_1".to_string()), + _1d_to_1w: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_2".to_string()), + _1w_to_1m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_3".to_string()), + _1m_to_2m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_4".to_string()), + _2m_to_3m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_5".to_string()), + _3m_to_4m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_6".to_string()), + _4m_to_5m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_7".to_string()), + _5m_to_6m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_8".to_string()), + _6m_to_9m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_9".to_string()), + _9m_to_1y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_10".to_string()), + _1y_to_18m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_11".to_string()), + _18m_to_2y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_12".to_string()), + _2y_to_3y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_13".to_string()), + _3y_to_4y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_14".to_string()), + _4y_to_5y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_15".to_string()), + _5y_to_6y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_16".to_string()), + _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_17".to_string()), + _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_18".to_string()), + _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_19".to_string()), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_20".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_21".to_string()), + over_15y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_age_range_column_22".to_string()), height: SeriesPattern18::new(client.clone(), "utxos_sopr_24h_by_age_range".to_string()), } } @@ -29954,86 +18770,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_UnderAgeMatrix { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_UnderAgeMatrix { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_0".to_string(), - ), - _1m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_1".to_string(), - ), - _2m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_2".to_string(), - ), - _3m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_3".to_string(), - ), - _4m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_4".to_string(), - ), - _5m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_5".to_string(), - ), - _6m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_6".to_string(), - ), - _9m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_7".to_string(), - ), - _1y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_8".to_string(), - ), - _18m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_9".to_string(), - ), - _2y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_10".to_string(), - ), - _3y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_11".to_string(), - ), - _4y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_12".to_string(), - ), - _5y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_13".to_string(), - ), - _6y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_14".to_string(), - ), - _7y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_15".to_string(), - ), - _8y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_16".to_string(), - ), - _10y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_17".to_string(), - ), - _12y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_18".to_string(), - ), - _15y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_under_age_column_19".to_string(), - ), + _1w: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_0".to_string()), + _1m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_1".to_string()), + _2m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_2".to_string()), + _3m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_3".to_string()), + _4m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_4".to_string()), + _5m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_5".to_string()), + _6m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_6".to_string()), + _9m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_7".to_string()), + _1y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_8".to_string()), + _18m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_9".to_string()), + _2y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_10".to_string()), + _3y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_11".to_string()), + _4y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_12".to_string()), + _5y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_13".to_string()), + _6y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_14".to_string()), + _7y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_15".to_string()), + _8y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_16".to_string()), + _10y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_17".to_string()), + _12y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_18".to_string()), + _15y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_under_age_column_19".to_string()), height: SeriesPattern18::new(client.clone(), "utxos_sopr_24h_by_under_age".to_string()), } } @@ -30067,86 +18823,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Sopr_OverAgeMatrix { impl SeriesTree_Cohorts_Cohorts_Realized_Sopr_OverAgeMatrix { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_0".to_string(), - ), - _1w: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_1".to_string(), - ), - _1m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_2".to_string(), - ), - _2m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_3".to_string(), - ), - _3m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_4".to_string(), - ), - _4m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_5".to_string(), - ), - _5m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_6".to_string(), - ), - _6m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_7".to_string(), - ), - _9m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_8".to_string(), - ), - _1y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_9".to_string(), - ), - _18m: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_10".to_string(), - ), - _2y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_11".to_string(), - ), - _3y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_12".to_string(), - ), - _4y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_13".to_string(), - ), - _5y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_14".to_string(), - ), - _6y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_15".to_string(), - ), - _7y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_16".to_string(), - ), - _8y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_17".to_string(), - ), - _10y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_18".to_string(), - ), - _12y: SeriesPattern1::new( - client.clone(), - "utxos_sopr_24h_by_over_age_column_19".to_string(), - ), + _1d: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_0".to_string()), + _1w: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_1".to_string()), + _1m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_2".to_string()), + _2m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_3".to_string()), + _3m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_4".to_string()), + _4m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_5".to_string()), + _5m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_6".to_string()), + _6m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_7".to_string()), + _9m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_8".to_string()), + _1y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_9".to_string()), + _18m: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_10".to_string()), + _2y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_11".to_string()), + _3y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_12".to_string()), + _4y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_13".to_string()), + _5y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_14".to_string()), + _6y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_15".to_string()), + _7y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_16".to_string()), + _8y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_17".to_string()), + _10y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_18".to_string()), + _12y: SeriesPattern1::new(client.clone(), "utxos_sopr_24h_by_over_age_column_19".to_string()), height: SeriesPattern18::new(client.clone(), "utxos_sopr_24h_by_over_age".to_string()), } } @@ -30251,18 +18947,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr { impl SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr { pub fn new(client: Arc, base_path: String) -> Self { Self { - ratio: SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_Ratio::new( - client.clone(), - format!("{base_path}_ratio"), - ), - transfer_volume: SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_TransferVolume::new( - client.clone(), - format!("{base_path}_transfer_volume"), - ), - value_destroyed: SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_ValueDestroyed::new( - client.clone(), - format!("{base_path}_value_destroyed"), - ), + ratio: SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_Ratio::new(client.clone(), format!("{base_path}_ratio")), + transfer_volume: SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_TransferVolume::new(client.clone(), format!("{base_path}_transfer_volume")), + value_destroyed: SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_ValueDestroyed::new(client.clone(), format!("{base_path}_value_destroyed")), } } } @@ -30292,18 +18979,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_TransferVolume { impl SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_TransferVolume { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "adj_value_created".to_string(), - ), - sth: AverageBlockCumulativeSumPattern::new( - client.clone(), - "sth_adj_value_created".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "adjusted_sopr_transfer_volume_cumulative_by_cohort".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "adj_value_created".to_string()), + sth: AverageBlockCumulativeSumPattern::new(client.clone(), "sth_adj_value_created".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "adjusted_sopr_transfer_volume_cumulative_by_cohort".to_string()), } } } @@ -30318,18 +18996,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_ValueDestroyed { impl SeriesTree_Cohorts_Cohorts_Realized_AdjustedSopr_ValueDestroyed { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: AverageBlockCumulativeSumPattern::new( - client.clone(), - "adj_value_destroyed".to_string(), - ), - sth: AverageBlockCumulativeSumPattern::new( - client.clone(), - "sth_adj_value_destroyed".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "adjusted_sopr_value_destroyed_cumulative_by_cohort".to_string(), - ), + all: AverageBlockCumulativeSumPattern::new(client.clone(), "adj_value_destroyed".to_string()), + sth: AverageBlockCumulativeSumPattern::new(client.clone(), "sth_adj_value_destroyed".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "adjusted_sopr_value_destroyed_cumulative_by_cohort".to_string()), } } } @@ -30345,22 +19014,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_GrossPnl { impl SeriesTree_Cohorts_Cohorts_Realized_GrossPnl { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: BlockCumulativeSumPattern::new( - client.clone(), - "all_realized_gross_pnl".to_string(), - ), - sth: BlockCumulativeSumPattern::new( - client.clone(), - "sth_realized_gross_pnl".to_string(), - ), - lth: BlockCumulativeSumPattern::new( - client.clone(), - "lth_realized_gross_pnl".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "realized_gross_pnl_cumulative_cents_by_term".to_string(), - ), + all: BlockCumulativeSumPattern::new(client.clone(), "all_realized_gross_pnl".to_string()), + sth: BlockCumulativeSumPattern::new(client.clone(), "sth_realized_gross_pnl".to_string()), + lth: BlockCumulativeSumPattern::new(client.clone(), "lth_realized_gross_pnl".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "realized_gross_pnl_cumulative_cents_by_term".to_string()), } } } @@ -30376,22 +19033,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_CapitalizedPrice { impl SeriesTree_Cohorts_Cohorts_Realized_CapitalizedPrice { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "all_capitalized_price".to_string(), - ), - sth: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "sth_capitalized_price".to_string(), - ), - lth: CentsPpmRatioSatsUsdPattern::new( - client.clone(), - "lth_capitalized_price".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "capitalized_price_cents_by_aggregate".to_string(), - ), + all: CentsPpmRatioSatsUsdPattern::new(client.clone(), "all_capitalized_price".to_string()), + sth: CentsPpmRatioSatsUsdPattern::new(client.clone(), "sth_capitalized_price".to_string()), + lth: CentsPpmRatioSatsUsdPattern::new(client.clone(), "lth_capitalized_price".to_string()), + height: SeriesPattern18::new(client.clone(), "capitalized_price_cents_by_aggregate".to_string()), } } } @@ -30407,22 +19052,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_PeakRegret { impl SeriesTree_Cohorts_Cohorts_Realized_PeakRegret { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: BlockCumulativeSumPattern::new( - client.clone(), - "all_realized_peak_regret".to_string(), - ), - sth: BlockCumulativeSumPattern::new( - client.clone(), - "sth_realized_peak_regret".to_string(), - ), - lth: BlockCumulativeSumPattern::new( - client.clone(), - "lth_realized_peak_regret".to_string(), - ), - cumulative: SeriesPattern18::new( - client.clone(), - "realized_peak_regret_cumulative_cents_by_term".to_string(), - ), + all: BlockCumulativeSumPattern::new(client.clone(), "all_realized_peak_regret".to_string()), + sth: BlockCumulativeSumPattern::new(client.clone(), "sth_realized_peak_regret".to_string()), + lth: BlockCumulativeSumPattern::new(client.clone(), "lth_realized_peak_regret".to_string()), + cumulative: SeriesPattern18::new(client.clone(), "realized_peak_regret_cumulative_cents_by_term".to_string()), } } } @@ -30438,22 +19071,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_NetPnlChange1mToRcap { impl SeriesTree_Cohorts_Cohorts_Realized_NetPnlChange1mToRcap { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: PercentPpmRatioPattern::new( - client.clone(), - "all_net_pnl_change_1m_to_rcap".to_string(), - ), - sth: PercentPpmRatioPattern::new( - client.clone(), - "sth_net_pnl_change_1m_to_rcap".to_string(), - ), - lth: PercentPpmRatioPattern::new( - client.clone(), - "lth_net_pnl_change_1m_to_rcap".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "net_pnl_change_1m_to_rcap_ppm_by_aggregate".to_string(), - ), + all: PercentPpmRatioPattern::new(client.clone(), "all_net_pnl_change_1m_to_rcap".to_string()), + sth: PercentPpmRatioPattern::new(client.clone(), "sth_net_pnl_change_1m_to_rcap".to_string()), + lth: PercentPpmRatioPattern::new(client.clone(), "lth_net_pnl_change_1m_to_rcap".to_string()), + height: SeriesPattern18::new(client.clone(), "net_pnl_change_1m_to_rcap_ppm_by_aggregate".to_string()), } } } @@ -30468,18 +19089,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_SellSideRiskRatio { impl SeriesTree_Cohorts_Cohorts_Realized_SellSideRiskRatio { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: _1m1w1y24hHeightPattern3::new( - client.clone(), - "all_sell_side_risk_ratio".to_string(), - ), - sth: _1m1w1y24hHeightPattern3::new( - client.clone(), - "sth_sell_side_risk_ratio".to_string(), - ), - lth: _1m1w1y24hHeightPattern3::new( - client.clone(), - "lth_sell_side_risk_ratio".to_string(), - ), + all: _1m1w1y24hHeightPattern3::new(client.clone(), "all_sell_side_risk_ratio".to_string()), + sth: _1m1w1y24hHeightPattern3::new(client.clone(), "sth_sell_side_risk_ratio".to_string()), + lth: _1m1w1y24hHeightPattern3::new(client.clone(), "lth_sell_side_risk_ratio".to_string()), } } } @@ -30511,18 +19123,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_ProfitToLossRatio { impl SeriesTree_Cohorts_Cohorts_Realized_ProfitToLossRatio { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: _1m1w1y24hHeightPattern2::new( - client.clone(), - "all_realized_profit_to_loss_ratio".to_string(), - ), - sth: _1m1w1y24hHeightPattern2::new( - client.clone(), - "sth_realized_profit_to_loss_ratio".to_string(), - ), - lth: _1m1w1y24hHeightPattern2::new( - client.clone(), - "lth_realized_profit_to_loss_ratio".to_string(), - ), + all: _1m1w1y24hHeightPattern2::new(client.clone(), "all_realized_profit_to_loss_ratio".to_string()), + sth: _1m1w1y24hHeightPattern2::new(client.clone(), "sth_realized_profit_to_loss_ratio".to_string()), + lth: _1m1w1y24hHeightPattern2::new(client.clone(), "lth_realized_profit_to_loss_ratio".to_string()), } } } @@ -30543,28 +19146,13 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Mvrv { pub fn new(client: Arc, base_path: String) -> Self { Self { all: SeriesPattern1::new(client.clone(), "mvrv".to_string()), - age: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern7::new(client.clone(), "mvrv".to_string()), - utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), + utxo_amount: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), term: LongShortPattern7::new(client.clone(), "mvrv".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern6::new( - client.clone(), - "mvrv".to_string(), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern6::new(client.clone(), "mvrv".to_string()), } } } @@ -30579,18 +19167,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age { impl SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -30645,14 +19224,8 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Mvrv_Age_Range { _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_mvrv".to_string()), _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_mvrv".to_string()), _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_mvrv".to_string()), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_10y_to_12y_old_mvrv".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_12y_to_15y_old_mvrv".to_string(), - ), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_mvrv".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_mvrv".to_string()), over_15y: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_mvrv".to_string()), } } @@ -30838,18 +19411,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -30877,62 +19441,20 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { _0sats: SeriesPattern1::new(client.clone(), "utxos_0sats_mvrv".to_string()), - _1sat_to_10sats: SeriesPattern1::new( - client.clone(), - "utxos_1sat_to_10sats_mvrv".to_string(), - ), - _10sats_to_100sats: SeriesPattern1::new( - client.clone(), - "utxos_10sats_to_100sats_mvrv".to_string(), - ), - _100sats_to_1k_sats: SeriesPattern1::new( - client.clone(), - "utxos_100sats_to_1k_sats_mvrv".to_string(), - ), - _1k_sats_to_10k_sats: SeriesPattern1::new( - client.clone(), - "utxos_1k_sats_to_10k_sats_mvrv".to_string(), - ), - _10k_sats_to_100k_sats: SeriesPattern1::new( - client.clone(), - "utxos_10k_sats_to_100k_sats_mvrv".to_string(), - ), - _100k_sats_to_1m_sats: SeriesPattern1::new( - client.clone(), - "utxos_100k_sats_to_1m_sats_mvrv".to_string(), - ), - _1m_sats_to_10m_sats: SeriesPattern1::new( - client.clone(), - "utxos_1m_sats_to_10m_sats_mvrv".to_string(), - ), - _10m_sats_to_1btc: SeriesPattern1::new( - client.clone(), - "utxos_10m_sats_to_1btc_mvrv".to_string(), - ), - _1btc_to_10btc: SeriesPattern1::new( - client.clone(), - "utxos_1btc_to_10btc_mvrv".to_string(), - ), - _10btc_to_100btc: SeriesPattern1::new( - client.clone(), - "utxos_10btc_to_100btc_mvrv".to_string(), - ), - _100btc_to_1k_btc: SeriesPattern1::new( - client.clone(), - "utxos_100btc_to_1k_btc_mvrv".to_string(), - ), - _1k_btc_to_10k_btc: SeriesPattern1::new( - client.clone(), - "utxos_1k_btc_to_10k_btc_mvrv".to_string(), - ), - _10k_btc_to_100k_btc: SeriesPattern1::new( - client.clone(), - "utxos_10k_btc_to_100k_btc_mvrv".to_string(), - ), - over_100k_btc: SeriesPattern1::new( - client.clone(), - "utxos_over_100k_btc_mvrv".to_string(), - ), + _1sat_to_10sats: SeriesPattern1::new(client.clone(), "utxos_1sat_to_10sats_mvrv".to_string()), + _10sats_to_100sats: SeriesPattern1::new(client.clone(), "utxos_10sats_to_100sats_mvrv".to_string()), + _100sats_to_1k_sats: SeriesPattern1::new(client.clone(), "utxos_100sats_to_1k_sats_mvrv".to_string()), + _1k_sats_to_10k_sats: SeriesPattern1::new(client.clone(), "utxos_1k_sats_to_10k_sats_mvrv".to_string()), + _10k_sats_to_100k_sats: SeriesPattern1::new(client.clone(), "utxos_10k_sats_to_100k_sats_mvrv".to_string()), + _100k_sats_to_1m_sats: SeriesPattern1::new(client.clone(), "utxos_100k_sats_to_1m_sats_mvrv".to_string()), + _1m_sats_to_10m_sats: SeriesPattern1::new(client.clone(), "utxos_1m_sats_to_10m_sats_mvrv".to_string()), + _10m_sats_to_1btc: SeriesPattern1::new(client.clone(), "utxos_10m_sats_to_1btc_mvrv".to_string()), + _1btc_to_10btc: SeriesPattern1::new(client.clone(), "utxos_1btc_to_10btc_mvrv".to_string()), + _10btc_to_100btc: SeriesPattern1::new(client.clone(), "utxos_10btc_to_100btc_mvrv".to_string()), + _100btc_to_1k_btc: SeriesPattern1::new(client.clone(), "utxos_100btc_to_1k_btc_mvrv".to_string()), + _1k_btc_to_10k_btc: SeriesPattern1::new(client.clone(), "utxos_1k_btc_to_10k_btc_mvrv".to_string()), + _10k_btc_to_100k_btc: SeriesPattern1::new(client.clone(), "utxos_10k_btc_to_100k_btc_mvrv".to_string()), + over_100k_btc: SeriesPattern1::new(client.clone(), "utxos_over_100k_btc_mvrv".to_string()), } } } @@ -30961,10 +19483,7 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount_Under { _100sats: SeriesPattern1::new(client.clone(), "utxos_under_100sats_mvrv".to_string()), _1k_sats: SeriesPattern1::new(client.clone(), "utxos_under_1k_sats_mvrv".to_string()), _10k_sats: SeriesPattern1::new(client.clone(), "utxos_under_10k_sats_mvrv".to_string()), - _100k_sats: SeriesPattern1::new( - client.clone(), - "utxos_under_100k_sats_mvrv".to_string(), - ), + _100k_sats: SeriesPattern1::new(client.clone(), "utxos_under_100k_sats_mvrv".to_string()), _1m_sats: SeriesPattern1::new(client.clone(), "utxos_under_1m_sats_mvrv".to_string()), _10m_sats: SeriesPattern1::new(client.clone(), "utxos_under_10m_sats_mvrv".to_string()), _1btc: SeriesPattern1::new(client.clone(), "utxos_under_1btc_mvrv".to_string()), @@ -31002,10 +19521,7 @@ impl SeriesTree_Cohorts_Cohorts_Realized_Mvrv_UtxoAmount_Over { _100sats: SeriesPattern1::new(client.clone(), "utxos_over_100sats_mvrv".to_string()), _1k_sats: SeriesPattern1::new(client.clone(), "utxos_over_1k_sats_mvrv".to_string()), _10k_sats: SeriesPattern1::new(client.clone(), "utxos_over_10k_sats_mvrv".to_string()), - _100k_sats: SeriesPattern1::new( - client.clone(), - "utxos_over_100k_sats_mvrv".to_string(), - ), + _100k_sats: SeriesPattern1::new(client.clone(), "utxos_over_100k_sats_mvrv".to_string()), _1m_sats: SeriesPattern1::new(client.clone(), "utxos_over_1m_sats_mvrv".to_string()), _10m_sats: SeriesPattern1::new(client.clone(), "utxos_over_10m_sats_mvrv".to_string()), _1btc: SeriesPattern1::new(client.clone(), "utxos_over_1btc_mvrv".to_string()), @@ -31036,56 +19552,18 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized { impl SeriesTree_Cohorts_Cohorts_Unrealized { pub fn new(client: Arc, base_path: String) -> Self { Self { - profit: SeriesTree_Cohorts_Cohorts_Unrealized_Profit::new( - client.clone(), - format!("{base_path}_profit"), - ), - loss: SeriesTree_Cohorts_Cohorts_Unrealized_Loss::new( - client.clone(), - format!("{base_path}_loss"), - ), - net_pnl: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl::new( - client.clone(), - format!("{base_path}_net_pnl"), - ), - gross_pnl: SeriesTree_Cohorts_Cohorts_Unrealized_GrossPnl::new( - client.clone(), - format!("{base_path}_gross_pnl"), - ), - invested_capital_in_profit: - SeriesTree_Cohorts_Cohorts_Unrealized_InvestedCapitalInProfit::new( - client.clone(), - format!("{base_path}_invested_capital_in_profit"), - ), - invested_capital_in_loss: - SeriesTree_Cohorts_Cohorts_Unrealized_InvestedCapitalInLoss::new( - client.clone(), - format!("{base_path}_invested_capital_in_loss"), - ), - capitalized_cap_in_profit_raw: MatrixPattern::new( - client.clone(), - "capitalized_cap_in_profit_raw_by_term".to_string(), - ), - capitalized_cap_in_loss_raw: MatrixPattern::new( - client.clone(), - "capitalized_cap_in_loss_raw_by_term".to_string(), - ), - pain_index: SeriesTree_Cohorts_Cohorts_Unrealized_PainIndex::new( - client.clone(), - format!("{base_path}_pain_index"), - ), - greed_index: SeriesTree_Cohorts_Cohorts_Unrealized_GreedIndex::new( - client.clone(), - format!("{base_path}_greed_index"), - ), - net_sentiment: SeriesTree_Cohorts_Cohorts_Unrealized_NetSentiment::new( - client.clone(), - format!("{base_path}_net_sentiment"), - ), - nupl: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl::new( - client.clone(), - format!("{base_path}_nupl"), - ), + profit: SeriesTree_Cohorts_Cohorts_Unrealized_Profit::new(client.clone(), format!("{base_path}_profit")), + loss: SeriesTree_Cohorts_Cohorts_Unrealized_Loss::new(client.clone(), format!("{base_path}_loss")), + net_pnl: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl::new(client.clone(), format!("{base_path}_net_pnl")), + gross_pnl: SeriesTree_Cohorts_Cohorts_Unrealized_GrossPnl::new(client.clone(), format!("{base_path}_gross_pnl")), + invested_capital_in_profit: SeriesTree_Cohorts_Cohorts_Unrealized_InvestedCapitalInProfit::new(client.clone(), format!("{base_path}_invested_capital_in_profit")), + invested_capital_in_loss: SeriesTree_Cohorts_Cohorts_Unrealized_InvestedCapitalInLoss::new(client.clone(), format!("{base_path}_invested_capital_in_loss")), + capitalized_cap_in_profit_raw: MatrixPattern::new(client.clone(), "capitalized_cap_in_profit_raw_by_term".to_string()), + capitalized_cap_in_loss_raw: MatrixPattern::new(client.clone(), "capitalized_cap_in_loss_raw_by_term".to_string()), + pain_index: SeriesTree_Cohorts_Cohorts_Unrealized_PainIndex::new(client.clone(), format!("{base_path}_pain_index")), + greed_index: SeriesTree_Cohorts_Cohorts_Unrealized_GreedIndex::new(client.clone(), format!("{base_path}_greed_index")), + net_sentiment: SeriesTree_Cohorts_Cohorts_Unrealized_NetSentiment::new(client.clone(), format!("{base_path}_net_sentiment")), + nupl: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl::new(client.clone(), format!("{base_path}_nupl")), } } } @@ -31110,44 +19588,17 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_Profit { pub fn new(client: Arc, base_path: String) -> Self { Self { all: CentsUsdPattern3::new(client.clone(), "unrealized_profit".to_string()), - age: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern13::new(client.clone(), "unrealized_profit".to_string()), term: LongShortPattern14::new(client.clone(), "unrealized_profit".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern11::new( - client.clone(), - "unrealized_profit".to_string(), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_unrealized_profit_cents_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "unrealized_profit_cents_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "unrealized_profit_cents_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "unrealized_profit_cents_by_entry".to_string(), - ), - type_matrix: SeriesPattern18::new( - client.clone(), - "unrealized_profit_cents_by_type".to_string(), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern11::new(client.clone(), "unrealized_profit".to_string()), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_unrealized_profit_cents_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "unrealized_profit_cents_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "unrealized_profit_cents_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "unrealized_profit_cents_by_entry".to_string()), + type_matrix: SeriesPattern18::new(client.clone(), "unrealized_profit_cents_by_type".to_string()), } } } @@ -31162,18 +19613,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age { impl SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -31208,98 +19650,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Range { impl SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: CentsUsdPattern3::new( - client.clone(), - "utxos_under_1h_old_unrealized_profit".to_string(), - ), - _1h_to_1d: CentsUsdPattern3::new( - client.clone(), - "utxos_1h_to_1d_old_unrealized_profit".to_string(), - ), - _1d_to_1w: CentsUsdPattern3::new( - client.clone(), - "utxos_1d_to_1w_old_unrealized_profit".to_string(), - ), - _1w_to_1m: CentsUsdPattern3::new( - client.clone(), - "utxos_1w_to_1m_old_unrealized_profit".to_string(), - ), - _1m_to_2m: CentsUsdPattern3::new( - client.clone(), - "utxos_1m_to_2m_old_unrealized_profit".to_string(), - ), - _2m_to_3m: CentsUsdPattern3::new( - client.clone(), - "utxos_2m_to_3m_old_unrealized_profit".to_string(), - ), - _3m_to_4m: CentsUsdPattern3::new( - client.clone(), - "utxos_3m_to_4m_old_unrealized_profit".to_string(), - ), - _4m_to_5m: CentsUsdPattern3::new( - client.clone(), - "utxos_4m_to_5m_old_unrealized_profit".to_string(), - ), - _5m_to_6m: CentsUsdPattern3::new( - client.clone(), - "utxos_5m_to_6m_old_unrealized_profit".to_string(), - ), - _6m_to_9m: CentsUsdPattern3::new( - client.clone(), - "utxos_6m_to_9m_old_unrealized_profit".to_string(), - ), - _9m_to_1y: CentsUsdPattern3::new( - client.clone(), - "utxos_9m_to_1y_old_unrealized_profit".to_string(), - ), - _1y_to_18m: CentsUsdPattern3::new( - client.clone(), - "utxos_1y_to_18m_old_unrealized_profit".to_string(), - ), - _18m_to_2y: CentsUsdPattern3::new( - client.clone(), - "utxos_18m_to_2y_old_unrealized_profit".to_string(), - ), - _2y_to_3y: CentsUsdPattern3::new( - client.clone(), - "utxos_2y_to_3y_old_unrealized_profit".to_string(), - ), - _3y_to_4y: CentsUsdPattern3::new( - client.clone(), - "utxos_3y_to_4y_old_unrealized_profit".to_string(), - ), - _4y_to_5y: CentsUsdPattern3::new( - client.clone(), - "utxos_4y_to_5y_old_unrealized_profit".to_string(), - ), - _5y_to_6y: CentsUsdPattern3::new( - client.clone(), - "utxos_5y_to_6y_old_unrealized_profit".to_string(), - ), - _6y_to_7y: CentsUsdPattern3::new( - client.clone(), - "utxos_6y_to_7y_old_unrealized_profit".to_string(), - ), - _7y_to_8y: CentsUsdPattern3::new( - client.clone(), - "utxos_7y_to_8y_old_unrealized_profit".to_string(), - ), - _8y_to_10y: CentsUsdPattern3::new( - client.clone(), - "utxos_8y_to_10y_old_unrealized_profit".to_string(), - ), - _10y_to_12y: CentsUsdPattern3::new( - client.clone(), - "utxos_10y_to_12y_old_unrealized_profit".to_string(), - ), - _12y_to_15y: CentsUsdPattern3::new( - client.clone(), - "utxos_12y_to_15y_old_unrealized_profit".to_string(), - ), - over_15y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_15y_old_unrealized_profit".to_string(), - ), + under_1h: CentsUsdPattern3::new(client.clone(), "utxos_under_1h_old_unrealized_profit".to_string()), + _1h_to_1d: CentsUsdPattern3::new(client.clone(), "utxos_1h_to_1d_old_unrealized_profit".to_string()), + _1d_to_1w: CentsUsdPattern3::new(client.clone(), "utxos_1d_to_1w_old_unrealized_profit".to_string()), + _1w_to_1m: CentsUsdPattern3::new(client.clone(), "utxos_1w_to_1m_old_unrealized_profit".to_string()), + _1m_to_2m: CentsUsdPattern3::new(client.clone(), "utxos_1m_to_2m_old_unrealized_profit".to_string()), + _2m_to_3m: CentsUsdPattern3::new(client.clone(), "utxos_2m_to_3m_old_unrealized_profit".to_string()), + _3m_to_4m: CentsUsdPattern3::new(client.clone(), "utxos_3m_to_4m_old_unrealized_profit".to_string()), + _4m_to_5m: CentsUsdPattern3::new(client.clone(), "utxos_4m_to_5m_old_unrealized_profit".to_string()), + _5m_to_6m: CentsUsdPattern3::new(client.clone(), "utxos_5m_to_6m_old_unrealized_profit".to_string()), + _6m_to_9m: CentsUsdPattern3::new(client.clone(), "utxos_6m_to_9m_old_unrealized_profit".to_string()), + _9m_to_1y: CentsUsdPattern3::new(client.clone(), "utxos_9m_to_1y_old_unrealized_profit".to_string()), + _1y_to_18m: CentsUsdPattern3::new(client.clone(), "utxos_1y_to_18m_old_unrealized_profit".to_string()), + _18m_to_2y: CentsUsdPattern3::new(client.clone(), "utxos_18m_to_2y_old_unrealized_profit".to_string()), + _2y_to_3y: CentsUsdPattern3::new(client.clone(), "utxos_2y_to_3y_old_unrealized_profit".to_string()), + _3y_to_4y: CentsUsdPattern3::new(client.clone(), "utxos_3y_to_4y_old_unrealized_profit".to_string()), + _4y_to_5y: CentsUsdPattern3::new(client.clone(), "utxos_4y_to_5y_old_unrealized_profit".to_string()), + _5y_to_6y: CentsUsdPattern3::new(client.clone(), "utxos_5y_to_6y_old_unrealized_profit".to_string()), + _6y_to_7y: CentsUsdPattern3::new(client.clone(), "utxos_6y_to_7y_old_unrealized_profit".to_string()), + _7y_to_8y: CentsUsdPattern3::new(client.clone(), "utxos_7y_to_8y_old_unrealized_profit".to_string()), + _8y_to_10y: CentsUsdPattern3::new(client.clone(), "utxos_8y_to_10y_old_unrealized_profit".to_string()), + _10y_to_12y: CentsUsdPattern3::new(client.clone(), "utxos_10y_to_12y_old_unrealized_profit".to_string()), + _12y_to_15y: CentsUsdPattern3::new(client.clone(), "utxos_12y_to_15y_old_unrealized_profit".to_string()), + over_15y: CentsUsdPattern3::new(client.clone(), "utxos_over_15y_old_unrealized_profit".to_string()), } } } @@ -31331,86 +19704,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Under { impl SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: CentsUsdPattern3::new( - client.clone(), - "utxos_under_1w_old_unrealized_profit".to_string(), - ), - _1m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_1m_old_unrealized_profit".to_string(), - ), - _2m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_2m_old_unrealized_profit".to_string(), - ), - _3m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_3m_old_unrealized_profit".to_string(), - ), - _4m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_4m_old_unrealized_profit".to_string(), - ), - _5m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_5m_old_unrealized_profit".to_string(), - ), - _6m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_6m_old_unrealized_profit".to_string(), - ), - _9m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_9m_old_unrealized_profit".to_string(), - ), - _1y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_1y_old_unrealized_profit".to_string(), - ), - _18m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_18m_old_unrealized_profit".to_string(), - ), - _2y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_2y_old_unrealized_profit".to_string(), - ), - _3y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_3y_old_unrealized_profit".to_string(), - ), - _4y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_4y_old_unrealized_profit".to_string(), - ), - _5y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_5y_old_unrealized_profit".to_string(), - ), - _6y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_6y_old_unrealized_profit".to_string(), - ), - _7y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_7y_old_unrealized_profit".to_string(), - ), - _8y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_8y_old_unrealized_profit".to_string(), - ), - _10y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_10y_old_unrealized_profit".to_string(), - ), - _12y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_12y_old_unrealized_profit".to_string(), - ), - _15y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_15y_old_unrealized_profit".to_string(), - ), + _1w: CentsUsdPattern3::new(client.clone(), "utxos_under_1w_old_unrealized_profit".to_string()), + _1m: CentsUsdPattern3::new(client.clone(), "utxos_under_1m_old_unrealized_profit".to_string()), + _2m: CentsUsdPattern3::new(client.clone(), "utxos_under_2m_old_unrealized_profit".to_string()), + _3m: CentsUsdPattern3::new(client.clone(), "utxos_under_3m_old_unrealized_profit".to_string()), + _4m: CentsUsdPattern3::new(client.clone(), "utxos_under_4m_old_unrealized_profit".to_string()), + _5m: CentsUsdPattern3::new(client.clone(), "utxos_under_5m_old_unrealized_profit".to_string()), + _6m: CentsUsdPattern3::new(client.clone(), "utxos_under_6m_old_unrealized_profit".to_string()), + _9m: CentsUsdPattern3::new(client.clone(), "utxos_under_9m_old_unrealized_profit".to_string()), + _1y: CentsUsdPattern3::new(client.clone(), "utxos_under_1y_old_unrealized_profit".to_string()), + _18m: CentsUsdPattern3::new(client.clone(), "utxos_under_18m_old_unrealized_profit".to_string()), + _2y: CentsUsdPattern3::new(client.clone(), "utxos_under_2y_old_unrealized_profit".to_string()), + _3y: CentsUsdPattern3::new(client.clone(), "utxos_under_3y_old_unrealized_profit".to_string()), + _4y: CentsUsdPattern3::new(client.clone(), "utxos_under_4y_old_unrealized_profit".to_string()), + _5y: CentsUsdPattern3::new(client.clone(), "utxos_under_5y_old_unrealized_profit".to_string()), + _6y: CentsUsdPattern3::new(client.clone(), "utxos_under_6y_old_unrealized_profit".to_string()), + _7y: CentsUsdPattern3::new(client.clone(), "utxos_under_7y_old_unrealized_profit".to_string()), + _8y: CentsUsdPattern3::new(client.clone(), "utxos_under_8y_old_unrealized_profit".to_string()), + _10y: CentsUsdPattern3::new(client.clone(), "utxos_under_10y_old_unrealized_profit".to_string()), + _12y: CentsUsdPattern3::new(client.clone(), "utxos_under_12y_old_unrealized_profit".to_string()), + _15y: CentsUsdPattern3::new(client.clone(), "utxos_under_15y_old_unrealized_profit".to_string()), } } } @@ -31442,86 +19755,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Over { impl SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: CentsUsdPattern3::new( - client.clone(), - "utxos_over_1d_old_unrealized_profit".to_string(), - ), - _1w: CentsUsdPattern3::new( - client.clone(), - "utxos_over_1w_old_unrealized_profit".to_string(), - ), - _1m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_1m_old_unrealized_profit".to_string(), - ), - _2m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_2m_old_unrealized_profit".to_string(), - ), - _3m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_3m_old_unrealized_profit".to_string(), - ), - _4m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_4m_old_unrealized_profit".to_string(), - ), - _5m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_5m_old_unrealized_profit".to_string(), - ), - _6m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_6m_old_unrealized_profit".to_string(), - ), - _9m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_9m_old_unrealized_profit".to_string(), - ), - _1y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_1y_old_unrealized_profit".to_string(), - ), - _18m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_18m_old_unrealized_profit".to_string(), - ), - _2y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_2y_old_unrealized_profit".to_string(), - ), - _3y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_3y_old_unrealized_profit".to_string(), - ), - _4y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_4y_old_unrealized_profit".to_string(), - ), - _5y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_5y_old_unrealized_profit".to_string(), - ), - _6y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_6y_old_unrealized_profit".to_string(), - ), - _7y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_7y_old_unrealized_profit".to_string(), - ), - _8y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_8y_old_unrealized_profit".to_string(), - ), - _10y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_10y_old_unrealized_profit".to_string(), - ), - _12y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_12y_old_unrealized_profit".to_string(), - ), + _1d: CentsUsdPattern3::new(client.clone(), "utxos_over_1d_old_unrealized_profit".to_string()), + _1w: CentsUsdPattern3::new(client.clone(), "utxos_over_1w_old_unrealized_profit".to_string()), + _1m: CentsUsdPattern3::new(client.clone(), "utxos_over_1m_old_unrealized_profit".to_string()), + _2m: CentsUsdPattern3::new(client.clone(), "utxos_over_2m_old_unrealized_profit".to_string()), + _3m: CentsUsdPattern3::new(client.clone(), "utxos_over_3m_old_unrealized_profit".to_string()), + _4m: CentsUsdPattern3::new(client.clone(), "utxos_over_4m_old_unrealized_profit".to_string()), + _5m: CentsUsdPattern3::new(client.clone(), "utxos_over_5m_old_unrealized_profit".to_string()), + _6m: CentsUsdPattern3::new(client.clone(), "utxos_over_6m_old_unrealized_profit".to_string()), + _9m: CentsUsdPattern3::new(client.clone(), "utxos_over_9m_old_unrealized_profit".to_string()), + _1y: CentsUsdPattern3::new(client.clone(), "utxos_over_1y_old_unrealized_profit".to_string()), + _18m: CentsUsdPattern3::new(client.clone(), "utxos_over_18m_old_unrealized_profit".to_string()), + _2y: CentsUsdPattern3::new(client.clone(), "utxos_over_2y_old_unrealized_profit".to_string()), + _3y: CentsUsdPattern3::new(client.clone(), "utxos_over_3y_old_unrealized_profit".to_string()), + _4y: CentsUsdPattern3::new(client.clone(), "utxos_over_4y_old_unrealized_profit".to_string()), + _5y: CentsUsdPattern3::new(client.clone(), "utxos_over_5y_old_unrealized_profit".to_string()), + _6y: CentsUsdPattern3::new(client.clone(), "utxos_over_6y_old_unrealized_profit".to_string()), + _7y: CentsUsdPattern3::new(client.clone(), "utxos_over_7y_old_unrealized_profit".to_string()), + _8y: CentsUsdPattern3::new(client.clone(), "utxos_over_8y_old_unrealized_profit".to_string()), + _10y: CentsUsdPattern3::new(client.clone(), "utxos_over_10y_old_unrealized_profit".to_string()), + _12y: CentsUsdPattern3::new(client.clone(), "utxos_over_12y_old_unrealized_profit".to_string()), } } } @@ -31572,78 +19825,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Class { impl SeriesTree_Cohorts_Cohorts_Unrealized_Profit_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: CentsUsdPattern3::new( - client.clone(), - "class_2009_unrealized_profit".to_string(), - ), - _2010: CentsUsdPattern3::new( - client.clone(), - "class_2010_unrealized_profit".to_string(), - ), - _2011: CentsUsdPattern3::new( - client.clone(), - "class_2011_unrealized_profit".to_string(), - ), - _2012: CentsUsdPattern3::new( - client.clone(), - "class_2012_unrealized_profit".to_string(), - ), - _2013: CentsUsdPattern3::new( - client.clone(), - "class_2013_unrealized_profit".to_string(), - ), - _2014: CentsUsdPattern3::new( - client.clone(), - "class_2014_unrealized_profit".to_string(), - ), - _2015: CentsUsdPattern3::new( - client.clone(), - "class_2015_unrealized_profit".to_string(), - ), - _2016: CentsUsdPattern3::new( - client.clone(), - "class_2016_unrealized_profit".to_string(), - ), - _2017: CentsUsdPattern3::new( - client.clone(), - "class_2017_unrealized_profit".to_string(), - ), - _2018: CentsUsdPattern3::new( - client.clone(), - "class_2018_unrealized_profit".to_string(), - ), - _2019: CentsUsdPattern3::new( - client.clone(), - "class_2019_unrealized_profit".to_string(), - ), - _2020: CentsUsdPattern3::new( - client.clone(), - "class_2020_unrealized_profit".to_string(), - ), - _2021: CentsUsdPattern3::new( - client.clone(), - "class_2021_unrealized_profit".to_string(), - ), - _2022: CentsUsdPattern3::new( - client.clone(), - "class_2022_unrealized_profit".to_string(), - ), - _2023: CentsUsdPattern3::new( - client.clone(), - "class_2023_unrealized_profit".to_string(), - ), - _2024: CentsUsdPattern3::new( - client.clone(), - "class_2024_unrealized_profit".to_string(), - ), - _2025: CentsUsdPattern3::new( - client.clone(), - "class_2025_unrealized_profit".to_string(), - ), - _2026: CentsUsdPattern3::new( - client.clone(), - "class_2026_unrealized_profit".to_string(), - ), + _2009: CentsUsdPattern3::new(client.clone(), "class_2009_unrealized_profit".to_string()), + _2010: CentsUsdPattern3::new(client.clone(), "class_2010_unrealized_profit".to_string()), + _2011: CentsUsdPattern3::new(client.clone(), "class_2011_unrealized_profit".to_string()), + _2012: CentsUsdPattern3::new(client.clone(), "class_2012_unrealized_profit".to_string()), + _2013: CentsUsdPattern3::new(client.clone(), "class_2013_unrealized_profit".to_string()), + _2014: CentsUsdPattern3::new(client.clone(), "class_2014_unrealized_profit".to_string()), + _2015: CentsUsdPattern3::new(client.clone(), "class_2015_unrealized_profit".to_string()), + _2016: CentsUsdPattern3::new(client.clone(), "class_2016_unrealized_profit".to_string()), + _2017: CentsUsdPattern3::new(client.clone(), "class_2017_unrealized_profit".to_string()), + _2018: CentsUsdPattern3::new(client.clone(), "class_2018_unrealized_profit".to_string()), + _2019: CentsUsdPattern3::new(client.clone(), "class_2019_unrealized_profit".to_string()), + _2020: CentsUsdPattern3::new(client.clone(), "class_2020_unrealized_profit".to_string()), + _2021: CentsUsdPattern3::new(client.clone(), "class_2021_unrealized_profit".to_string()), + _2022: CentsUsdPattern3::new(client.clone(), "class_2022_unrealized_profit".to_string()), + _2023: CentsUsdPattern3::new(client.clone(), "class_2023_unrealized_profit".to_string()), + _2024: CentsUsdPattern3::new(client.clone(), "class_2024_unrealized_profit".to_string()), + _2025: CentsUsdPattern3::new(client.clone(), "class_2025_unrealized_profit".to_string()), + _2026: CentsUsdPattern3::new(client.clone(), "class_2026_unrealized_profit".to_string()), } } } @@ -31669,48 +19868,18 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss { pub fn new(client: Arc, base_path: String) -> Self { Self { all: CentsUsdPattern3::new(client.clone(), "unrealized_loss".to_string()), - age: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern13::new(client.clone(), "unrealized_loss".to_string()), term: LongShortPattern14::new(client.clone(), "unrealized_loss".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern11::new( - client.clone(), - "unrealized_loss".to_string(), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_unrealized_loss_cents_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "unrealized_loss_cents_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "unrealized_loss_cents_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "unrealized_loss_cents_by_entry".to_string(), - ), - type_matrix: SeriesPattern18::new( - client.clone(), - "unrealized_loss_cents_by_type".to_string(), - ), - negative: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative::new( - client.clone(), - format!("{base_path}_negative"), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern11::new(client.clone(), "unrealized_loss".to_string()), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_unrealized_loss_cents_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "unrealized_loss_cents_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "unrealized_loss_cents_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "unrealized_loss_cents_by_entry".to_string()), + type_matrix: SeriesPattern18::new(client.clone(), "unrealized_loss_cents_by_type".to_string()), + negative: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative::new(client.clone(), format!("{base_path}_negative")), } } } @@ -31725,18 +19894,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age { impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -31771,98 +19931,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Range { impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: CentsUsdPattern3::new( - client.clone(), - "utxos_under_1h_old_unrealized_loss".to_string(), - ), - _1h_to_1d: CentsUsdPattern3::new( - client.clone(), - "utxos_1h_to_1d_old_unrealized_loss".to_string(), - ), - _1d_to_1w: CentsUsdPattern3::new( - client.clone(), - "utxos_1d_to_1w_old_unrealized_loss".to_string(), - ), - _1w_to_1m: CentsUsdPattern3::new( - client.clone(), - "utxos_1w_to_1m_old_unrealized_loss".to_string(), - ), - _1m_to_2m: CentsUsdPattern3::new( - client.clone(), - "utxos_1m_to_2m_old_unrealized_loss".to_string(), - ), - _2m_to_3m: CentsUsdPattern3::new( - client.clone(), - "utxos_2m_to_3m_old_unrealized_loss".to_string(), - ), - _3m_to_4m: CentsUsdPattern3::new( - client.clone(), - "utxos_3m_to_4m_old_unrealized_loss".to_string(), - ), - _4m_to_5m: CentsUsdPattern3::new( - client.clone(), - "utxos_4m_to_5m_old_unrealized_loss".to_string(), - ), - _5m_to_6m: CentsUsdPattern3::new( - client.clone(), - "utxos_5m_to_6m_old_unrealized_loss".to_string(), - ), - _6m_to_9m: CentsUsdPattern3::new( - client.clone(), - "utxos_6m_to_9m_old_unrealized_loss".to_string(), - ), - _9m_to_1y: CentsUsdPattern3::new( - client.clone(), - "utxos_9m_to_1y_old_unrealized_loss".to_string(), - ), - _1y_to_18m: CentsUsdPattern3::new( - client.clone(), - "utxos_1y_to_18m_old_unrealized_loss".to_string(), - ), - _18m_to_2y: CentsUsdPattern3::new( - client.clone(), - "utxos_18m_to_2y_old_unrealized_loss".to_string(), - ), - _2y_to_3y: CentsUsdPattern3::new( - client.clone(), - "utxos_2y_to_3y_old_unrealized_loss".to_string(), - ), - _3y_to_4y: CentsUsdPattern3::new( - client.clone(), - "utxos_3y_to_4y_old_unrealized_loss".to_string(), - ), - _4y_to_5y: CentsUsdPattern3::new( - client.clone(), - "utxos_4y_to_5y_old_unrealized_loss".to_string(), - ), - _5y_to_6y: CentsUsdPattern3::new( - client.clone(), - "utxos_5y_to_6y_old_unrealized_loss".to_string(), - ), - _6y_to_7y: CentsUsdPattern3::new( - client.clone(), - "utxos_6y_to_7y_old_unrealized_loss".to_string(), - ), - _7y_to_8y: CentsUsdPattern3::new( - client.clone(), - "utxos_7y_to_8y_old_unrealized_loss".to_string(), - ), - _8y_to_10y: CentsUsdPattern3::new( - client.clone(), - "utxos_8y_to_10y_old_unrealized_loss".to_string(), - ), - _10y_to_12y: CentsUsdPattern3::new( - client.clone(), - "utxos_10y_to_12y_old_unrealized_loss".to_string(), - ), - _12y_to_15y: CentsUsdPattern3::new( - client.clone(), - "utxos_12y_to_15y_old_unrealized_loss".to_string(), - ), - over_15y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_15y_old_unrealized_loss".to_string(), - ), + under_1h: CentsUsdPattern3::new(client.clone(), "utxos_under_1h_old_unrealized_loss".to_string()), + _1h_to_1d: CentsUsdPattern3::new(client.clone(), "utxos_1h_to_1d_old_unrealized_loss".to_string()), + _1d_to_1w: CentsUsdPattern3::new(client.clone(), "utxos_1d_to_1w_old_unrealized_loss".to_string()), + _1w_to_1m: CentsUsdPattern3::new(client.clone(), "utxos_1w_to_1m_old_unrealized_loss".to_string()), + _1m_to_2m: CentsUsdPattern3::new(client.clone(), "utxos_1m_to_2m_old_unrealized_loss".to_string()), + _2m_to_3m: CentsUsdPattern3::new(client.clone(), "utxos_2m_to_3m_old_unrealized_loss".to_string()), + _3m_to_4m: CentsUsdPattern3::new(client.clone(), "utxos_3m_to_4m_old_unrealized_loss".to_string()), + _4m_to_5m: CentsUsdPattern3::new(client.clone(), "utxos_4m_to_5m_old_unrealized_loss".to_string()), + _5m_to_6m: CentsUsdPattern3::new(client.clone(), "utxos_5m_to_6m_old_unrealized_loss".to_string()), + _6m_to_9m: CentsUsdPattern3::new(client.clone(), "utxos_6m_to_9m_old_unrealized_loss".to_string()), + _9m_to_1y: CentsUsdPattern3::new(client.clone(), "utxos_9m_to_1y_old_unrealized_loss".to_string()), + _1y_to_18m: CentsUsdPattern3::new(client.clone(), "utxos_1y_to_18m_old_unrealized_loss".to_string()), + _18m_to_2y: CentsUsdPattern3::new(client.clone(), "utxos_18m_to_2y_old_unrealized_loss".to_string()), + _2y_to_3y: CentsUsdPattern3::new(client.clone(), "utxos_2y_to_3y_old_unrealized_loss".to_string()), + _3y_to_4y: CentsUsdPattern3::new(client.clone(), "utxos_3y_to_4y_old_unrealized_loss".to_string()), + _4y_to_5y: CentsUsdPattern3::new(client.clone(), "utxos_4y_to_5y_old_unrealized_loss".to_string()), + _5y_to_6y: CentsUsdPattern3::new(client.clone(), "utxos_5y_to_6y_old_unrealized_loss".to_string()), + _6y_to_7y: CentsUsdPattern3::new(client.clone(), "utxos_6y_to_7y_old_unrealized_loss".to_string()), + _7y_to_8y: CentsUsdPattern3::new(client.clone(), "utxos_7y_to_8y_old_unrealized_loss".to_string()), + _8y_to_10y: CentsUsdPattern3::new(client.clone(), "utxos_8y_to_10y_old_unrealized_loss".to_string()), + _10y_to_12y: CentsUsdPattern3::new(client.clone(), "utxos_10y_to_12y_old_unrealized_loss".to_string()), + _12y_to_15y: CentsUsdPattern3::new(client.clone(), "utxos_12y_to_15y_old_unrealized_loss".to_string()), + over_15y: CentsUsdPattern3::new(client.clone(), "utxos_over_15y_old_unrealized_loss".to_string()), } } } @@ -31894,86 +19985,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Under { impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: CentsUsdPattern3::new( - client.clone(), - "utxos_under_1w_old_unrealized_loss".to_string(), - ), - _1m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_1m_old_unrealized_loss".to_string(), - ), - _2m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_2m_old_unrealized_loss".to_string(), - ), - _3m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_3m_old_unrealized_loss".to_string(), - ), - _4m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_4m_old_unrealized_loss".to_string(), - ), - _5m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_5m_old_unrealized_loss".to_string(), - ), - _6m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_6m_old_unrealized_loss".to_string(), - ), - _9m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_9m_old_unrealized_loss".to_string(), - ), - _1y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_1y_old_unrealized_loss".to_string(), - ), - _18m: CentsUsdPattern3::new( - client.clone(), - "utxos_under_18m_old_unrealized_loss".to_string(), - ), - _2y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_2y_old_unrealized_loss".to_string(), - ), - _3y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_3y_old_unrealized_loss".to_string(), - ), - _4y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_4y_old_unrealized_loss".to_string(), - ), - _5y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_5y_old_unrealized_loss".to_string(), - ), - _6y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_6y_old_unrealized_loss".to_string(), - ), - _7y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_7y_old_unrealized_loss".to_string(), - ), - _8y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_8y_old_unrealized_loss".to_string(), - ), - _10y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_10y_old_unrealized_loss".to_string(), - ), - _12y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_12y_old_unrealized_loss".to_string(), - ), - _15y: CentsUsdPattern3::new( - client.clone(), - "utxos_under_15y_old_unrealized_loss".to_string(), - ), + _1w: CentsUsdPattern3::new(client.clone(), "utxos_under_1w_old_unrealized_loss".to_string()), + _1m: CentsUsdPattern3::new(client.clone(), "utxos_under_1m_old_unrealized_loss".to_string()), + _2m: CentsUsdPattern3::new(client.clone(), "utxos_under_2m_old_unrealized_loss".to_string()), + _3m: CentsUsdPattern3::new(client.clone(), "utxos_under_3m_old_unrealized_loss".to_string()), + _4m: CentsUsdPattern3::new(client.clone(), "utxos_under_4m_old_unrealized_loss".to_string()), + _5m: CentsUsdPattern3::new(client.clone(), "utxos_under_5m_old_unrealized_loss".to_string()), + _6m: CentsUsdPattern3::new(client.clone(), "utxos_under_6m_old_unrealized_loss".to_string()), + _9m: CentsUsdPattern3::new(client.clone(), "utxos_under_9m_old_unrealized_loss".to_string()), + _1y: CentsUsdPattern3::new(client.clone(), "utxos_under_1y_old_unrealized_loss".to_string()), + _18m: CentsUsdPattern3::new(client.clone(), "utxos_under_18m_old_unrealized_loss".to_string()), + _2y: CentsUsdPattern3::new(client.clone(), "utxos_under_2y_old_unrealized_loss".to_string()), + _3y: CentsUsdPattern3::new(client.clone(), "utxos_under_3y_old_unrealized_loss".to_string()), + _4y: CentsUsdPattern3::new(client.clone(), "utxos_under_4y_old_unrealized_loss".to_string()), + _5y: CentsUsdPattern3::new(client.clone(), "utxos_under_5y_old_unrealized_loss".to_string()), + _6y: CentsUsdPattern3::new(client.clone(), "utxos_under_6y_old_unrealized_loss".to_string()), + _7y: CentsUsdPattern3::new(client.clone(), "utxos_under_7y_old_unrealized_loss".to_string()), + _8y: CentsUsdPattern3::new(client.clone(), "utxos_under_8y_old_unrealized_loss".to_string()), + _10y: CentsUsdPattern3::new(client.clone(), "utxos_under_10y_old_unrealized_loss".to_string()), + _12y: CentsUsdPattern3::new(client.clone(), "utxos_under_12y_old_unrealized_loss".to_string()), + _15y: CentsUsdPattern3::new(client.clone(), "utxos_under_15y_old_unrealized_loss".to_string()), } } } @@ -32005,86 +20036,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Over { impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: CentsUsdPattern3::new( - client.clone(), - "utxos_over_1d_old_unrealized_loss".to_string(), - ), - _1w: CentsUsdPattern3::new( - client.clone(), - "utxos_over_1w_old_unrealized_loss".to_string(), - ), - _1m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_1m_old_unrealized_loss".to_string(), - ), - _2m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_2m_old_unrealized_loss".to_string(), - ), - _3m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_3m_old_unrealized_loss".to_string(), - ), - _4m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_4m_old_unrealized_loss".to_string(), - ), - _5m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_5m_old_unrealized_loss".to_string(), - ), - _6m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_6m_old_unrealized_loss".to_string(), - ), - _9m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_9m_old_unrealized_loss".to_string(), - ), - _1y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_1y_old_unrealized_loss".to_string(), - ), - _18m: CentsUsdPattern3::new( - client.clone(), - "utxos_over_18m_old_unrealized_loss".to_string(), - ), - _2y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_2y_old_unrealized_loss".to_string(), - ), - _3y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_3y_old_unrealized_loss".to_string(), - ), - _4y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_4y_old_unrealized_loss".to_string(), - ), - _5y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_5y_old_unrealized_loss".to_string(), - ), - _6y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_6y_old_unrealized_loss".to_string(), - ), - _7y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_7y_old_unrealized_loss".to_string(), - ), - _8y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_8y_old_unrealized_loss".to_string(), - ), - _10y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_10y_old_unrealized_loss".to_string(), - ), - _12y: CentsUsdPattern3::new( - client.clone(), - "utxos_over_12y_old_unrealized_loss".to_string(), - ), + _1d: CentsUsdPattern3::new(client.clone(), "utxos_over_1d_old_unrealized_loss".to_string()), + _1w: CentsUsdPattern3::new(client.clone(), "utxos_over_1w_old_unrealized_loss".to_string()), + _1m: CentsUsdPattern3::new(client.clone(), "utxos_over_1m_old_unrealized_loss".to_string()), + _2m: CentsUsdPattern3::new(client.clone(), "utxos_over_2m_old_unrealized_loss".to_string()), + _3m: CentsUsdPattern3::new(client.clone(), "utxos_over_3m_old_unrealized_loss".to_string()), + _4m: CentsUsdPattern3::new(client.clone(), "utxos_over_4m_old_unrealized_loss".to_string()), + _5m: CentsUsdPattern3::new(client.clone(), "utxos_over_5m_old_unrealized_loss".to_string()), + _6m: CentsUsdPattern3::new(client.clone(), "utxos_over_6m_old_unrealized_loss".to_string()), + _9m: CentsUsdPattern3::new(client.clone(), "utxos_over_9m_old_unrealized_loss".to_string()), + _1y: CentsUsdPattern3::new(client.clone(), "utxos_over_1y_old_unrealized_loss".to_string()), + _18m: CentsUsdPattern3::new(client.clone(), "utxos_over_18m_old_unrealized_loss".to_string()), + _2y: CentsUsdPattern3::new(client.clone(), "utxos_over_2y_old_unrealized_loss".to_string()), + _3y: CentsUsdPattern3::new(client.clone(), "utxos_over_3y_old_unrealized_loss".to_string()), + _4y: CentsUsdPattern3::new(client.clone(), "utxos_over_4y_old_unrealized_loss".to_string()), + _5y: CentsUsdPattern3::new(client.clone(), "utxos_over_5y_old_unrealized_loss".to_string()), + _6y: CentsUsdPattern3::new(client.clone(), "utxos_over_6y_old_unrealized_loss".to_string()), + _7y: CentsUsdPattern3::new(client.clone(), "utxos_over_7y_old_unrealized_loss".to_string()), + _8y: CentsUsdPattern3::new(client.clone(), "utxos_over_8y_old_unrealized_loss".to_string()), + _10y: CentsUsdPattern3::new(client.clone(), "utxos_over_10y_old_unrealized_loss".to_string()), + _12y: CentsUsdPattern3::new(client.clone(), "utxos_over_12y_old_unrealized_loss".to_string()), } } } @@ -32172,24 +20143,12 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative { pub fn new(client: Arc, base_path: String) -> Self { Self { all: SeriesPattern1::new(client.clone(), "unrealized_loss_neg".to_string()), - age: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Class::new( - client.clone(), - format!("{base_path}_class"), - ), + age: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Class::new(client.clone(), format!("{base_path}_class")), entry: DiscountPremiumPattern7::new(client.clone(), "unrealized_loss_neg".to_string()), term: LongShortPattern7::new(client.clone(), "unrealized_loss_neg".to_string()), - type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern6::new( - client.clone(), - "unrealized_loss_neg".to_string(), - ), + type_: EmptyP2aP2msP2pk33P2pk65P2pkhP2shP2trP2wpkhP2wshUnknownPattern6::new(client.clone(), "unrealized_loss_neg".to_string()), } } } @@ -32204,18 +20163,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age { impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -32250,98 +20200,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Range { impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: SeriesPattern1::new( - client.clone(), - "utxos_under_1h_old_unrealized_loss_neg".to_string(), - ), - _1h_to_1d: SeriesPattern1::new( - client.clone(), - "utxos_1h_to_1d_old_unrealized_loss_neg".to_string(), - ), - _1d_to_1w: SeriesPattern1::new( - client.clone(), - "utxos_1d_to_1w_old_unrealized_loss_neg".to_string(), - ), - _1w_to_1m: SeriesPattern1::new( - client.clone(), - "utxos_1w_to_1m_old_unrealized_loss_neg".to_string(), - ), - _1m_to_2m: SeriesPattern1::new( - client.clone(), - "utxos_1m_to_2m_old_unrealized_loss_neg".to_string(), - ), - _2m_to_3m: SeriesPattern1::new( - client.clone(), - "utxos_2m_to_3m_old_unrealized_loss_neg".to_string(), - ), - _3m_to_4m: SeriesPattern1::new( - client.clone(), - "utxos_3m_to_4m_old_unrealized_loss_neg".to_string(), - ), - _4m_to_5m: SeriesPattern1::new( - client.clone(), - "utxos_4m_to_5m_old_unrealized_loss_neg".to_string(), - ), - _5m_to_6m: SeriesPattern1::new( - client.clone(), - "utxos_5m_to_6m_old_unrealized_loss_neg".to_string(), - ), - _6m_to_9m: SeriesPattern1::new( - client.clone(), - "utxos_6m_to_9m_old_unrealized_loss_neg".to_string(), - ), - _9m_to_1y: SeriesPattern1::new( - client.clone(), - "utxos_9m_to_1y_old_unrealized_loss_neg".to_string(), - ), - _1y_to_18m: SeriesPattern1::new( - client.clone(), - "utxos_1y_to_18m_old_unrealized_loss_neg".to_string(), - ), - _18m_to_2y: SeriesPattern1::new( - client.clone(), - "utxos_18m_to_2y_old_unrealized_loss_neg".to_string(), - ), - _2y_to_3y: SeriesPattern1::new( - client.clone(), - "utxos_2y_to_3y_old_unrealized_loss_neg".to_string(), - ), - _3y_to_4y: SeriesPattern1::new( - client.clone(), - "utxos_3y_to_4y_old_unrealized_loss_neg".to_string(), - ), - _4y_to_5y: SeriesPattern1::new( - client.clone(), - "utxos_4y_to_5y_old_unrealized_loss_neg".to_string(), - ), - _5y_to_6y: SeriesPattern1::new( - client.clone(), - "utxos_5y_to_6y_old_unrealized_loss_neg".to_string(), - ), - _6y_to_7y: SeriesPattern1::new( - client.clone(), - "utxos_6y_to_7y_old_unrealized_loss_neg".to_string(), - ), - _7y_to_8y: SeriesPattern1::new( - client.clone(), - "utxos_7y_to_8y_old_unrealized_loss_neg".to_string(), - ), - _8y_to_10y: SeriesPattern1::new( - client.clone(), - "utxos_8y_to_10y_old_unrealized_loss_neg".to_string(), - ), - _10y_to_12y: SeriesPattern1::new( - client.clone(), - "utxos_10y_to_12y_old_unrealized_loss_neg".to_string(), - ), - _12y_to_15y: SeriesPattern1::new( - client.clone(), - "utxos_12y_to_15y_old_unrealized_loss_neg".to_string(), - ), - over_15y: SeriesPattern1::new( - client.clone(), - "utxos_over_15y_old_unrealized_loss_neg".to_string(), - ), + under_1h: SeriesPattern1::new(client.clone(), "utxos_under_1h_old_unrealized_loss_neg".to_string()), + _1h_to_1d: SeriesPattern1::new(client.clone(), "utxos_1h_to_1d_old_unrealized_loss_neg".to_string()), + _1d_to_1w: SeriesPattern1::new(client.clone(), "utxos_1d_to_1w_old_unrealized_loss_neg".to_string()), + _1w_to_1m: SeriesPattern1::new(client.clone(), "utxos_1w_to_1m_old_unrealized_loss_neg".to_string()), + _1m_to_2m: SeriesPattern1::new(client.clone(), "utxos_1m_to_2m_old_unrealized_loss_neg".to_string()), + _2m_to_3m: SeriesPattern1::new(client.clone(), "utxos_2m_to_3m_old_unrealized_loss_neg".to_string()), + _3m_to_4m: SeriesPattern1::new(client.clone(), "utxos_3m_to_4m_old_unrealized_loss_neg".to_string()), + _4m_to_5m: SeriesPattern1::new(client.clone(), "utxos_4m_to_5m_old_unrealized_loss_neg".to_string()), + _5m_to_6m: SeriesPattern1::new(client.clone(), "utxos_5m_to_6m_old_unrealized_loss_neg".to_string()), + _6m_to_9m: SeriesPattern1::new(client.clone(), "utxos_6m_to_9m_old_unrealized_loss_neg".to_string()), + _9m_to_1y: SeriesPattern1::new(client.clone(), "utxos_9m_to_1y_old_unrealized_loss_neg".to_string()), + _1y_to_18m: SeriesPattern1::new(client.clone(), "utxos_1y_to_18m_old_unrealized_loss_neg".to_string()), + _18m_to_2y: SeriesPattern1::new(client.clone(), "utxos_18m_to_2y_old_unrealized_loss_neg".to_string()), + _2y_to_3y: SeriesPattern1::new(client.clone(), "utxos_2y_to_3y_old_unrealized_loss_neg".to_string()), + _3y_to_4y: SeriesPattern1::new(client.clone(), "utxos_3y_to_4y_old_unrealized_loss_neg".to_string()), + _4y_to_5y: SeriesPattern1::new(client.clone(), "utxos_4y_to_5y_old_unrealized_loss_neg".to_string()), + _5y_to_6y: SeriesPattern1::new(client.clone(), "utxos_5y_to_6y_old_unrealized_loss_neg".to_string()), + _6y_to_7y: SeriesPattern1::new(client.clone(), "utxos_6y_to_7y_old_unrealized_loss_neg".to_string()), + _7y_to_8y: SeriesPattern1::new(client.clone(), "utxos_7y_to_8y_old_unrealized_loss_neg".to_string()), + _8y_to_10y: SeriesPattern1::new(client.clone(), "utxos_8y_to_10y_old_unrealized_loss_neg".to_string()), + _10y_to_12y: SeriesPattern1::new(client.clone(), "utxos_10y_to_12y_old_unrealized_loss_neg".to_string()), + _12y_to_15y: SeriesPattern1::new(client.clone(), "utxos_12y_to_15y_old_unrealized_loss_neg".to_string()), + over_15y: SeriesPattern1::new(client.clone(), "utxos_over_15y_old_unrealized_loss_neg".to_string()), } } } @@ -32373,86 +20254,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Under { impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: SeriesPattern1::new( - client.clone(), - "utxos_under_1w_old_unrealized_loss_neg".to_string(), - ), - _1m: SeriesPattern1::new( - client.clone(), - "utxos_under_1m_old_unrealized_loss_neg".to_string(), - ), - _2m: SeriesPattern1::new( - client.clone(), - "utxos_under_2m_old_unrealized_loss_neg".to_string(), - ), - _3m: SeriesPattern1::new( - client.clone(), - "utxos_under_3m_old_unrealized_loss_neg".to_string(), - ), - _4m: SeriesPattern1::new( - client.clone(), - "utxos_under_4m_old_unrealized_loss_neg".to_string(), - ), - _5m: SeriesPattern1::new( - client.clone(), - "utxos_under_5m_old_unrealized_loss_neg".to_string(), - ), - _6m: SeriesPattern1::new( - client.clone(), - "utxos_under_6m_old_unrealized_loss_neg".to_string(), - ), - _9m: SeriesPattern1::new( - client.clone(), - "utxos_under_9m_old_unrealized_loss_neg".to_string(), - ), - _1y: SeriesPattern1::new( - client.clone(), - "utxos_under_1y_old_unrealized_loss_neg".to_string(), - ), - _18m: SeriesPattern1::new( - client.clone(), - "utxos_under_18m_old_unrealized_loss_neg".to_string(), - ), - _2y: SeriesPattern1::new( - client.clone(), - "utxos_under_2y_old_unrealized_loss_neg".to_string(), - ), - _3y: SeriesPattern1::new( - client.clone(), - "utxos_under_3y_old_unrealized_loss_neg".to_string(), - ), - _4y: SeriesPattern1::new( - client.clone(), - "utxos_under_4y_old_unrealized_loss_neg".to_string(), - ), - _5y: SeriesPattern1::new( - client.clone(), - "utxos_under_5y_old_unrealized_loss_neg".to_string(), - ), - _6y: SeriesPattern1::new( - client.clone(), - "utxos_under_6y_old_unrealized_loss_neg".to_string(), - ), - _7y: SeriesPattern1::new( - client.clone(), - "utxos_under_7y_old_unrealized_loss_neg".to_string(), - ), - _8y: SeriesPattern1::new( - client.clone(), - "utxos_under_8y_old_unrealized_loss_neg".to_string(), - ), - _10y: SeriesPattern1::new( - client.clone(), - "utxos_under_10y_old_unrealized_loss_neg".to_string(), - ), - _12y: SeriesPattern1::new( - client.clone(), - "utxos_under_12y_old_unrealized_loss_neg".to_string(), - ), - _15y: SeriesPattern1::new( - client.clone(), - "utxos_under_15y_old_unrealized_loss_neg".to_string(), - ), + _1w: SeriesPattern1::new(client.clone(), "utxos_under_1w_old_unrealized_loss_neg".to_string()), + _1m: SeriesPattern1::new(client.clone(), "utxos_under_1m_old_unrealized_loss_neg".to_string()), + _2m: SeriesPattern1::new(client.clone(), "utxos_under_2m_old_unrealized_loss_neg".to_string()), + _3m: SeriesPattern1::new(client.clone(), "utxos_under_3m_old_unrealized_loss_neg".to_string()), + _4m: SeriesPattern1::new(client.clone(), "utxos_under_4m_old_unrealized_loss_neg".to_string()), + _5m: SeriesPattern1::new(client.clone(), "utxos_under_5m_old_unrealized_loss_neg".to_string()), + _6m: SeriesPattern1::new(client.clone(), "utxos_under_6m_old_unrealized_loss_neg".to_string()), + _9m: SeriesPattern1::new(client.clone(), "utxos_under_9m_old_unrealized_loss_neg".to_string()), + _1y: SeriesPattern1::new(client.clone(), "utxos_under_1y_old_unrealized_loss_neg".to_string()), + _18m: SeriesPattern1::new(client.clone(), "utxos_under_18m_old_unrealized_loss_neg".to_string()), + _2y: SeriesPattern1::new(client.clone(), "utxos_under_2y_old_unrealized_loss_neg".to_string()), + _3y: SeriesPattern1::new(client.clone(), "utxos_under_3y_old_unrealized_loss_neg".to_string()), + _4y: SeriesPattern1::new(client.clone(), "utxos_under_4y_old_unrealized_loss_neg".to_string()), + _5y: SeriesPattern1::new(client.clone(), "utxos_under_5y_old_unrealized_loss_neg".to_string()), + _6y: SeriesPattern1::new(client.clone(), "utxos_under_6y_old_unrealized_loss_neg".to_string()), + _7y: SeriesPattern1::new(client.clone(), "utxos_under_7y_old_unrealized_loss_neg".to_string()), + _8y: SeriesPattern1::new(client.clone(), "utxos_under_8y_old_unrealized_loss_neg".to_string()), + _10y: SeriesPattern1::new(client.clone(), "utxos_under_10y_old_unrealized_loss_neg".to_string()), + _12y: SeriesPattern1::new(client.clone(), "utxos_under_12y_old_unrealized_loss_neg".to_string()), + _15y: SeriesPattern1::new(client.clone(), "utxos_under_15y_old_unrealized_loss_neg".to_string()), } } } @@ -32484,86 +20305,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Over { impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: SeriesPattern1::new( - client.clone(), - "utxos_over_1d_old_unrealized_loss_neg".to_string(), - ), - _1w: SeriesPattern1::new( - client.clone(), - "utxos_over_1w_old_unrealized_loss_neg".to_string(), - ), - _1m: SeriesPattern1::new( - client.clone(), - "utxos_over_1m_old_unrealized_loss_neg".to_string(), - ), - _2m: SeriesPattern1::new( - client.clone(), - "utxos_over_2m_old_unrealized_loss_neg".to_string(), - ), - _3m: SeriesPattern1::new( - client.clone(), - "utxos_over_3m_old_unrealized_loss_neg".to_string(), - ), - _4m: SeriesPattern1::new( - client.clone(), - "utxos_over_4m_old_unrealized_loss_neg".to_string(), - ), - _5m: SeriesPattern1::new( - client.clone(), - "utxos_over_5m_old_unrealized_loss_neg".to_string(), - ), - _6m: SeriesPattern1::new( - client.clone(), - "utxos_over_6m_old_unrealized_loss_neg".to_string(), - ), - _9m: SeriesPattern1::new( - client.clone(), - "utxos_over_9m_old_unrealized_loss_neg".to_string(), - ), - _1y: SeriesPattern1::new( - client.clone(), - "utxos_over_1y_old_unrealized_loss_neg".to_string(), - ), - _18m: SeriesPattern1::new( - client.clone(), - "utxos_over_18m_old_unrealized_loss_neg".to_string(), - ), - _2y: SeriesPattern1::new( - client.clone(), - "utxos_over_2y_old_unrealized_loss_neg".to_string(), - ), - _3y: SeriesPattern1::new( - client.clone(), - "utxos_over_3y_old_unrealized_loss_neg".to_string(), - ), - _4y: SeriesPattern1::new( - client.clone(), - "utxos_over_4y_old_unrealized_loss_neg".to_string(), - ), - _5y: SeriesPattern1::new( - client.clone(), - "utxos_over_5y_old_unrealized_loss_neg".to_string(), - ), - _6y: SeriesPattern1::new( - client.clone(), - "utxos_over_6y_old_unrealized_loss_neg".to_string(), - ), - _7y: SeriesPattern1::new( - client.clone(), - "utxos_over_7y_old_unrealized_loss_neg".to_string(), - ), - _8y: SeriesPattern1::new( - client.clone(), - "utxos_over_8y_old_unrealized_loss_neg".to_string(), - ), - _10y: SeriesPattern1::new( - client.clone(), - "utxos_over_10y_old_unrealized_loss_neg".to_string(), - ), - _12y: SeriesPattern1::new( - client.clone(), - "utxos_over_12y_old_unrealized_loss_neg".to_string(), - ), + _1d: SeriesPattern1::new(client.clone(), "utxos_over_1d_old_unrealized_loss_neg".to_string()), + _1w: SeriesPattern1::new(client.clone(), "utxos_over_1w_old_unrealized_loss_neg".to_string()), + _1m: SeriesPattern1::new(client.clone(), "utxos_over_1m_old_unrealized_loss_neg".to_string()), + _2m: SeriesPattern1::new(client.clone(), "utxos_over_2m_old_unrealized_loss_neg".to_string()), + _3m: SeriesPattern1::new(client.clone(), "utxos_over_3m_old_unrealized_loss_neg".to_string()), + _4m: SeriesPattern1::new(client.clone(), "utxos_over_4m_old_unrealized_loss_neg".to_string()), + _5m: SeriesPattern1::new(client.clone(), "utxos_over_5m_old_unrealized_loss_neg".to_string()), + _6m: SeriesPattern1::new(client.clone(), "utxos_over_6m_old_unrealized_loss_neg".to_string()), + _9m: SeriesPattern1::new(client.clone(), "utxos_over_9m_old_unrealized_loss_neg".to_string()), + _1y: SeriesPattern1::new(client.clone(), "utxos_over_1y_old_unrealized_loss_neg".to_string()), + _18m: SeriesPattern1::new(client.clone(), "utxos_over_18m_old_unrealized_loss_neg".to_string()), + _2y: SeriesPattern1::new(client.clone(), "utxos_over_2y_old_unrealized_loss_neg".to_string()), + _3y: SeriesPattern1::new(client.clone(), "utxos_over_3y_old_unrealized_loss_neg".to_string()), + _4y: SeriesPattern1::new(client.clone(), "utxos_over_4y_old_unrealized_loss_neg".to_string()), + _5y: SeriesPattern1::new(client.clone(), "utxos_over_5y_old_unrealized_loss_neg".to_string()), + _6y: SeriesPattern1::new(client.clone(), "utxos_over_6y_old_unrealized_loss_neg".to_string()), + _7y: SeriesPattern1::new(client.clone(), "utxos_over_7y_old_unrealized_loss_neg".to_string()), + _8y: SeriesPattern1::new(client.clone(), "utxos_over_8y_old_unrealized_loss_neg".to_string()), + _10y: SeriesPattern1::new(client.clone(), "utxos_over_10y_old_unrealized_loss_neg".to_string()), + _12y: SeriesPattern1::new(client.clone(), "utxos_over_12y_old_unrealized_loss_neg".to_string()), } } } @@ -32614,78 +20375,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Class { impl SeriesTree_Cohorts_Cohorts_Unrealized_Loss_Negative_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: SeriesPattern1::new( - client.clone(), - "class_2009_unrealized_loss_neg".to_string(), - ), - _2010: SeriesPattern1::new( - client.clone(), - "class_2010_unrealized_loss_neg".to_string(), - ), - _2011: SeriesPattern1::new( - client.clone(), - "class_2011_unrealized_loss_neg".to_string(), - ), - _2012: SeriesPattern1::new( - client.clone(), - "class_2012_unrealized_loss_neg".to_string(), - ), - _2013: SeriesPattern1::new( - client.clone(), - "class_2013_unrealized_loss_neg".to_string(), - ), - _2014: SeriesPattern1::new( - client.clone(), - "class_2014_unrealized_loss_neg".to_string(), - ), - _2015: SeriesPattern1::new( - client.clone(), - "class_2015_unrealized_loss_neg".to_string(), - ), - _2016: SeriesPattern1::new( - client.clone(), - "class_2016_unrealized_loss_neg".to_string(), - ), - _2017: SeriesPattern1::new( - client.clone(), - "class_2017_unrealized_loss_neg".to_string(), - ), - _2018: SeriesPattern1::new( - client.clone(), - "class_2018_unrealized_loss_neg".to_string(), - ), - _2019: SeriesPattern1::new( - client.clone(), - "class_2019_unrealized_loss_neg".to_string(), - ), - _2020: SeriesPattern1::new( - client.clone(), - "class_2020_unrealized_loss_neg".to_string(), - ), - _2021: SeriesPattern1::new( - client.clone(), - "class_2021_unrealized_loss_neg".to_string(), - ), - _2022: SeriesPattern1::new( - client.clone(), - "class_2022_unrealized_loss_neg".to_string(), - ), - _2023: SeriesPattern1::new( - client.clone(), - "class_2023_unrealized_loss_neg".to_string(), - ), - _2024: SeriesPattern1::new( - client.clone(), - "class_2024_unrealized_loss_neg".to_string(), - ), - _2025: SeriesPattern1::new( - client.clone(), - "class_2025_unrealized_loss_neg".to_string(), - ), - _2026: SeriesPattern1::new( - client.clone(), - "class_2026_unrealized_loss_neg".to_string(), - ), + _2009: SeriesPattern1::new(client.clone(), "class_2009_unrealized_loss_neg".to_string()), + _2010: SeriesPattern1::new(client.clone(), "class_2010_unrealized_loss_neg".to_string()), + _2011: SeriesPattern1::new(client.clone(), "class_2011_unrealized_loss_neg".to_string()), + _2012: SeriesPattern1::new(client.clone(), "class_2012_unrealized_loss_neg".to_string()), + _2013: SeriesPattern1::new(client.clone(), "class_2013_unrealized_loss_neg".to_string()), + _2014: SeriesPattern1::new(client.clone(), "class_2014_unrealized_loss_neg".to_string()), + _2015: SeriesPattern1::new(client.clone(), "class_2015_unrealized_loss_neg".to_string()), + _2016: SeriesPattern1::new(client.clone(), "class_2016_unrealized_loss_neg".to_string()), + _2017: SeriesPattern1::new(client.clone(), "class_2017_unrealized_loss_neg".to_string()), + _2018: SeriesPattern1::new(client.clone(), "class_2018_unrealized_loss_neg".to_string()), + _2019: SeriesPattern1::new(client.clone(), "class_2019_unrealized_loss_neg".to_string()), + _2020: SeriesPattern1::new(client.clone(), "class_2020_unrealized_loss_neg".to_string()), + _2021: SeriesPattern1::new(client.clone(), "class_2021_unrealized_loss_neg".to_string()), + _2022: SeriesPattern1::new(client.clone(), "class_2022_unrealized_loss_neg".to_string()), + _2023: SeriesPattern1::new(client.clone(), "class_2023_unrealized_loss_neg".to_string()), + _2024: SeriesPattern1::new(client.clone(), "class_2024_unrealized_loss_neg".to_string()), + _2025: SeriesPattern1::new(client.clone(), "class_2025_unrealized_loss_neg".to_string()), + _2026: SeriesPattern1::new(client.clone(), "class_2026_unrealized_loss_neg".to_string()), } } } @@ -32708,42 +20415,15 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl { pub fn new(client: Arc, base_path: String) -> Self { Self { all: CentsUsdPattern::new(client.clone(), "net_unrealized_pnl".to_string()), - age: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Class::new( - client.clone(), - format!("{base_path}_class"), - ), - entry: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Entry::new( - client.clone(), - format!("{base_path}_entry"), - ), - term: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Term::new( - client.clone(), - format!("{base_path}_term"), - ), - age_range_matrix: SeriesPattern18::new( - client.clone(), - "utxos_net_unrealized_pnl_cents_by_age_range".to_string(), - ), - epoch_matrix: SeriesPattern18::new( - client.clone(), - "net_unrealized_pnl_cents_by_epoch".to_string(), - ), - class_matrix: SeriesPattern18::new( - client.clone(), - "net_unrealized_pnl_cents_by_class".to_string(), - ), - entry_matrix: SeriesPattern18::new( - client.clone(), - "net_unrealized_pnl_cents_by_entry".to_string(), - ), + age: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Class::new(client.clone(), format!("{base_path}_class")), + entry: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Entry::new(client.clone(), format!("{base_path}_entry")), + term: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Term::new(client.clone(), format!("{base_path}_term")), + age_range_matrix: SeriesPattern18::new(client.clone(), "utxos_net_unrealized_pnl_cents_by_age_range".to_string()), + epoch_matrix: SeriesPattern18::new(client.clone(), "net_unrealized_pnl_cents_by_epoch".to_string()), + class_matrix: SeriesPattern18::new(client.clone(), "net_unrealized_pnl_cents_by_class".to_string()), + entry_matrix: SeriesPattern18::new(client.clone(), "net_unrealized_pnl_cents_by_entry".to_string()), } } } @@ -32758,18 +20438,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age { impl SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -32804,98 +20475,29 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Range { impl SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - under_1h: CentsUsdPattern::new( - client.clone(), - "utxos_under_1h_old_net_unrealized_pnl".to_string(), - ), - _1h_to_1d: CentsUsdPattern::new( - client.clone(), - "utxos_1h_to_1d_old_net_unrealized_pnl".to_string(), - ), - _1d_to_1w: CentsUsdPattern::new( - client.clone(), - "utxos_1d_to_1w_old_net_unrealized_pnl".to_string(), - ), - _1w_to_1m: CentsUsdPattern::new( - client.clone(), - "utxos_1w_to_1m_old_net_unrealized_pnl".to_string(), - ), - _1m_to_2m: CentsUsdPattern::new( - client.clone(), - "utxos_1m_to_2m_old_net_unrealized_pnl".to_string(), - ), - _2m_to_3m: CentsUsdPattern::new( - client.clone(), - "utxos_2m_to_3m_old_net_unrealized_pnl".to_string(), - ), - _3m_to_4m: CentsUsdPattern::new( - client.clone(), - "utxos_3m_to_4m_old_net_unrealized_pnl".to_string(), - ), - _4m_to_5m: CentsUsdPattern::new( - client.clone(), - "utxos_4m_to_5m_old_net_unrealized_pnl".to_string(), - ), - _5m_to_6m: CentsUsdPattern::new( - client.clone(), - "utxos_5m_to_6m_old_net_unrealized_pnl".to_string(), - ), - _6m_to_9m: CentsUsdPattern::new( - client.clone(), - "utxos_6m_to_9m_old_net_unrealized_pnl".to_string(), - ), - _9m_to_1y: CentsUsdPattern::new( - client.clone(), - "utxos_9m_to_1y_old_net_unrealized_pnl".to_string(), - ), - _1y_to_18m: CentsUsdPattern::new( - client.clone(), - "utxos_1y_to_18m_old_net_unrealized_pnl".to_string(), - ), - _18m_to_2y: CentsUsdPattern::new( - client.clone(), - "utxos_18m_to_2y_old_net_unrealized_pnl".to_string(), - ), - _2y_to_3y: CentsUsdPattern::new( - client.clone(), - "utxos_2y_to_3y_old_net_unrealized_pnl".to_string(), - ), - _3y_to_4y: CentsUsdPattern::new( - client.clone(), - "utxos_3y_to_4y_old_net_unrealized_pnl".to_string(), - ), - _4y_to_5y: CentsUsdPattern::new( - client.clone(), - "utxos_4y_to_5y_old_net_unrealized_pnl".to_string(), - ), - _5y_to_6y: CentsUsdPattern::new( - client.clone(), - "utxos_5y_to_6y_old_net_unrealized_pnl".to_string(), - ), - _6y_to_7y: CentsUsdPattern::new( - client.clone(), - "utxos_6y_to_7y_old_net_unrealized_pnl".to_string(), - ), - _7y_to_8y: CentsUsdPattern::new( - client.clone(), - "utxos_7y_to_8y_old_net_unrealized_pnl".to_string(), - ), - _8y_to_10y: CentsUsdPattern::new( - client.clone(), - "utxos_8y_to_10y_old_net_unrealized_pnl".to_string(), - ), - _10y_to_12y: CentsUsdPattern::new( - client.clone(), - "utxos_10y_to_12y_old_net_unrealized_pnl".to_string(), - ), - _12y_to_15y: CentsUsdPattern::new( - client.clone(), - "utxos_12y_to_15y_old_net_unrealized_pnl".to_string(), - ), - over_15y: CentsUsdPattern::new( - client.clone(), - "utxos_over_15y_old_net_unrealized_pnl".to_string(), - ), + under_1h: CentsUsdPattern::new(client.clone(), "utxos_under_1h_old_net_unrealized_pnl".to_string()), + _1h_to_1d: CentsUsdPattern::new(client.clone(), "utxos_1h_to_1d_old_net_unrealized_pnl".to_string()), + _1d_to_1w: CentsUsdPattern::new(client.clone(), "utxos_1d_to_1w_old_net_unrealized_pnl".to_string()), + _1w_to_1m: CentsUsdPattern::new(client.clone(), "utxos_1w_to_1m_old_net_unrealized_pnl".to_string()), + _1m_to_2m: CentsUsdPattern::new(client.clone(), "utxos_1m_to_2m_old_net_unrealized_pnl".to_string()), + _2m_to_3m: CentsUsdPattern::new(client.clone(), "utxos_2m_to_3m_old_net_unrealized_pnl".to_string()), + _3m_to_4m: CentsUsdPattern::new(client.clone(), "utxos_3m_to_4m_old_net_unrealized_pnl".to_string()), + _4m_to_5m: CentsUsdPattern::new(client.clone(), "utxos_4m_to_5m_old_net_unrealized_pnl".to_string()), + _5m_to_6m: CentsUsdPattern::new(client.clone(), "utxos_5m_to_6m_old_net_unrealized_pnl".to_string()), + _6m_to_9m: CentsUsdPattern::new(client.clone(), "utxos_6m_to_9m_old_net_unrealized_pnl".to_string()), + _9m_to_1y: CentsUsdPattern::new(client.clone(), "utxos_9m_to_1y_old_net_unrealized_pnl".to_string()), + _1y_to_18m: CentsUsdPattern::new(client.clone(), "utxos_1y_to_18m_old_net_unrealized_pnl".to_string()), + _18m_to_2y: CentsUsdPattern::new(client.clone(), "utxos_18m_to_2y_old_net_unrealized_pnl".to_string()), + _2y_to_3y: CentsUsdPattern::new(client.clone(), "utxos_2y_to_3y_old_net_unrealized_pnl".to_string()), + _3y_to_4y: CentsUsdPattern::new(client.clone(), "utxos_3y_to_4y_old_net_unrealized_pnl".to_string()), + _4y_to_5y: CentsUsdPattern::new(client.clone(), "utxos_4y_to_5y_old_net_unrealized_pnl".to_string()), + _5y_to_6y: CentsUsdPattern::new(client.clone(), "utxos_5y_to_6y_old_net_unrealized_pnl".to_string()), + _6y_to_7y: CentsUsdPattern::new(client.clone(), "utxos_6y_to_7y_old_net_unrealized_pnl".to_string()), + _7y_to_8y: CentsUsdPattern::new(client.clone(), "utxos_7y_to_8y_old_net_unrealized_pnl".to_string()), + _8y_to_10y: CentsUsdPattern::new(client.clone(), "utxos_8y_to_10y_old_net_unrealized_pnl".to_string()), + _10y_to_12y: CentsUsdPattern::new(client.clone(), "utxos_10y_to_12y_old_net_unrealized_pnl".to_string()), + _12y_to_15y: CentsUsdPattern::new(client.clone(), "utxos_12y_to_15y_old_net_unrealized_pnl".to_string()), + over_15y: CentsUsdPattern::new(client.clone(), "utxos_over_15y_old_net_unrealized_pnl".to_string()), } } } @@ -32927,86 +20529,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Under { impl SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Under { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1w: CentsUsdPattern::new( - client.clone(), - "utxos_under_1w_old_net_unrealized_pnl".to_string(), - ), - _1m: CentsUsdPattern::new( - client.clone(), - "utxos_under_1m_old_net_unrealized_pnl".to_string(), - ), - _2m: CentsUsdPattern::new( - client.clone(), - "utxos_under_2m_old_net_unrealized_pnl".to_string(), - ), - _3m: CentsUsdPattern::new( - client.clone(), - "utxos_under_3m_old_net_unrealized_pnl".to_string(), - ), - _4m: CentsUsdPattern::new( - client.clone(), - "utxos_under_4m_old_net_unrealized_pnl".to_string(), - ), - _5m: CentsUsdPattern::new( - client.clone(), - "utxos_under_5m_old_net_unrealized_pnl".to_string(), - ), - _6m: CentsUsdPattern::new( - client.clone(), - "utxos_under_6m_old_net_unrealized_pnl".to_string(), - ), - _9m: CentsUsdPattern::new( - client.clone(), - "utxos_under_9m_old_net_unrealized_pnl".to_string(), - ), - _1y: CentsUsdPattern::new( - client.clone(), - "utxos_under_1y_old_net_unrealized_pnl".to_string(), - ), - _18m: CentsUsdPattern::new( - client.clone(), - "utxos_under_18m_old_net_unrealized_pnl".to_string(), - ), - _2y: CentsUsdPattern::new( - client.clone(), - "utxos_under_2y_old_net_unrealized_pnl".to_string(), - ), - _3y: CentsUsdPattern::new( - client.clone(), - "utxos_under_3y_old_net_unrealized_pnl".to_string(), - ), - _4y: CentsUsdPattern::new( - client.clone(), - "utxos_under_4y_old_net_unrealized_pnl".to_string(), - ), - _5y: CentsUsdPattern::new( - client.clone(), - "utxos_under_5y_old_net_unrealized_pnl".to_string(), - ), - _6y: CentsUsdPattern::new( - client.clone(), - "utxos_under_6y_old_net_unrealized_pnl".to_string(), - ), - _7y: CentsUsdPattern::new( - client.clone(), - "utxos_under_7y_old_net_unrealized_pnl".to_string(), - ), - _8y: CentsUsdPattern::new( - client.clone(), - "utxos_under_8y_old_net_unrealized_pnl".to_string(), - ), - _10y: CentsUsdPattern::new( - client.clone(), - "utxos_under_10y_old_net_unrealized_pnl".to_string(), - ), - _12y: CentsUsdPattern::new( - client.clone(), - "utxos_under_12y_old_net_unrealized_pnl".to_string(), - ), - _15y: CentsUsdPattern::new( - client.clone(), - "utxos_under_15y_old_net_unrealized_pnl".to_string(), - ), + _1w: CentsUsdPattern::new(client.clone(), "utxos_under_1w_old_net_unrealized_pnl".to_string()), + _1m: CentsUsdPattern::new(client.clone(), "utxos_under_1m_old_net_unrealized_pnl".to_string()), + _2m: CentsUsdPattern::new(client.clone(), "utxos_under_2m_old_net_unrealized_pnl".to_string()), + _3m: CentsUsdPattern::new(client.clone(), "utxos_under_3m_old_net_unrealized_pnl".to_string()), + _4m: CentsUsdPattern::new(client.clone(), "utxos_under_4m_old_net_unrealized_pnl".to_string()), + _5m: CentsUsdPattern::new(client.clone(), "utxos_under_5m_old_net_unrealized_pnl".to_string()), + _6m: CentsUsdPattern::new(client.clone(), "utxos_under_6m_old_net_unrealized_pnl".to_string()), + _9m: CentsUsdPattern::new(client.clone(), "utxos_under_9m_old_net_unrealized_pnl".to_string()), + _1y: CentsUsdPattern::new(client.clone(), "utxos_under_1y_old_net_unrealized_pnl".to_string()), + _18m: CentsUsdPattern::new(client.clone(), "utxos_under_18m_old_net_unrealized_pnl".to_string()), + _2y: CentsUsdPattern::new(client.clone(), "utxos_under_2y_old_net_unrealized_pnl".to_string()), + _3y: CentsUsdPattern::new(client.clone(), "utxos_under_3y_old_net_unrealized_pnl".to_string()), + _4y: CentsUsdPattern::new(client.clone(), "utxos_under_4y_old_net_unrealized_pnl".to_string()), + _5y: CentsUsdPattern::new(client.clone(), "utxos_under_5y_old_net_unrealized_pnl".to_string()), + _6y: CentsUsdPattern::new(client.clone(), "utxos_under_6y_old_net_unrealized_pnl".to_string()), + _7y: CentsUsdPattern::new(client.clone(), "utxos_under_7y_old_net_unrealized_pnl".to_string()), + _8y: CentsUsdPattern::new(client.clone(), "utxos_under_8y_old_net_unrealized_pnl".to_string()), + _10y: CentsUsdPattern::new(client.clone(), "utxos_under_10y_old_net_unrealized_pnl".to_string()), + _12y: CentsUsdPattern::new(client.clone(), "utxos_under_12y_old_net_unrealized_pnl".to_string()), + _15y: CentsUsdPattern::new(client.clone(), "utxos_under_15y_old_net_unrealized_pnl".to_string()), } } } @@ -33038,86 +20580,26 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Over { impl SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Age_Over { pub fn new(client: Arc, base_path: String) -> Self { Self { - _1d: CentsUsdPattern::new( - client.clone(), - "utxos_over_1d_old_net_unrealized_pnl".to_string(), - ), - _1w: CentsUsdPattern::new( - client.clone(), - "utxos_over_1w_old_net_unrealized_pnl".to_string(), - ), - _1m: CentsUsdPattern::new( - client.clone(), - "utxos_over_1m_old_net_unrealized_pnl".to_string(), - ), - _2m: CentsUsdPattern::new( - client.clone(), - "utxos_over_2m_old_net_unrealized_pnl".to_string(), - ), - _3m: CentsUsdPattern::new( - client.clone(), - "utxos_over_3m_old_net_unrealized_pnl".to_string(), - ), - _4m: CentsUsdPattern::new( - client.clone(), - "utxos_over_4m_old_net_unrealized_pnl".to_string(), - ), - _5m: CentsUsdPattern::new( - client.clone(), - "utxos_over_5m_old_net_unrealized_pnl".to_string(), - ), - _6m: CentsUsdPattern::new( - client.clone(), - "utxos_over_6m_old_net_unrealized_pnl".to_string(), - ), - _9m: CentsUsdPattern::new( - client.clone(), - "utxos_over_9m_old_net_unrealized_pnl".to_string(), - ), - _1y: CentsUsdPattern::new( - client.clone(), - "utxos_over_1y_old_net_unrealized_pnl".to_string(), - ), - _18m: CentsUsdPattern::new( - client.clone(), - "utxos_over_18m_old_net_unrealized_pnl".to_string(), - ), - _2y: CentsUsdPattern::new( - client.clone(), - "utxos_over_2y_old_net_unrealized_pnl".to_string(), - ), - _3y: CentsUsdPattern::new( - client.clone(), - "utxos_over_3y_old_net_unrealized_pnl".to_string(), - ), - _4y: CentsUsdPattern::new( - client.clone(), - "utxos_over_4y_old_net_unrealized_pnl".to_string(), - ), - _5y: CentsUsdPattern::new( - client.clone(), - "utxos_over_5y_old_net_unrealized_pnl".to_string(), - ), - _6y: CentsUsdPattern::new( - client.clone(), - "utxos_over_6y_old_net_unrealized_pnl".to_string(), - ), - _7y: CentsUsdPattern::new( - client.clone(), - "utxos_over_7y_old_net_unrealized_pnl".to_string(), - ), - _8y: CentsUsdPattern::new( - client.clone(), - "utxos_over_8y_old_net_unrealized_pnl".to_string(), - ), - _10y: CentsUsdPattern::new( - client.clone(), - "utxos_over_10y_old_net_unrealized_pnl".to_string(), - ), - _12y: CentsUsdPattern::new( - client.clone(), - "utxos_over_12y_old_net_unrealized_pnl".to_string(), - ), + _1d: CentsUsdPattern::new(client.clone(), "utxos_over_1d_old_net_unrealized_pnl".to_string()), + _1w: CentsUsdPattern::new(client.clone(), "utxos_over_1w_old_net_unrealized_pnl".to_string()), + _1m: CentsUsdPattern::new(client.clone(), "utxos_over_1m_old_net_unrealized_pnl".to_string()), + _2m: CentsUsdPattern::new(client.clone(), "utxos_over_2m_old_net_unrealized_pnl".to_string()), + _3m: CentsUsdPattern::new(client.clone(), "utxos_over_3m_old_net_unrealized_pnl".to_string()), + _4m: CentsUsdPattern::new(client.clone(), "utxos_over_4m_old_net_unrealized_pnl".to_string()), + _5m: CentsUsdPattern::new(client.clone(), "utxos_over_5m_old_net_unrealized_pnl".to_string()), + _6m: CentsUsdPattern::new(client.clone(), "utxos_over_6m_old_net_unrealized_pnl".to_string()), + _9m: CentsUsdPattern::new(client.clone(), "utxos_over_9m_old_net_unrealized_pnl".to_string()), + _1y: CentsUsdPattern::new(client.clone(), "utxos_over_1y_old_net_unrealized_pnl".to_string()), + _18m: CentsUsdPattern::new(client.clone(), "utxos_over_18m_old_net_unrealized_pnl".to_string()), + _2y: CentsUsdPattern::new(client.clone(), "utxos_over_2y_old_net_unrealized_pnl".to_string()), + _3y: CentsUsdPattern::new(client.clone(), "utxos_over_3y_old_net_unrealized_pnl".to_string()), + _4y: CentsUsdPattern::new(client.clone(), "utxos_over_4y_old_net_unrealized_pnl".to_string()), + _5y: CentsUsdPattern::new(client.clone(), "utxos_over_5y_old_net_unrealized_pnl".to_string()), + _6y: CentsUsdPattern::new(client.clone(), "utxos_over_6y_old_net_unrealized_pnl".to_string()), + _7y: CentsUsdPattern::new(client.clone(), "utxos_over_7y_old_net_unrealized_pnl".to_string()), + _8y: CentsUsdPattern::new(client.clone(), "utxos_over_8y_old_net_unrealized_pnl".to_string()), + _10y: CentsUsdPattern::new(client.clone(), "utxos_over_10y_old_net_unrealized_pnl".to_string()), + _12y: CentsUsdPattern::new(client.clone(), "utxos_over_12y_old_net_unrealized_pnl".to_string()), } } } @@ -33168,78 +20650,24 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Class { impl SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Class { pub fn new(client: Arc, base_path: String) -> Self { Self { - _2009: CentsUsdPattern::new( - client.clone(), - "class_2009_net_unrealized_pnl".to_string(), - ), - _2010: CentsUsdPattern::new( - client.clone(), - "class_2010_net_unrealized_pnl".to_string(), - ), - _2011: CentsUsdPattern::new( - client.clone(), - "class_2011_net_unrealized_pnl".to_string(), - ), - _2012: CentsUsdPattern::new( - client.clone(), - "class_2012_net_unrealized_pnl".to_string(), - ), - _2013: CentsUsdPattern::new( - client.clone(), - "class_2013_net_unrealized_pnl".to_string(), - ), - _2014: CentsUsdPattern::new( - client.clone(), - "class_2014_net_unrealized_pnl".to_string(), - ), - _2015: CentsUsdPattern::new( - client.clone(), - "class_2015_net_unrealized_pnl".to_string(), - ), - _2016: CentsUsdPattern::new( - client.clone(), - "class_2016_net_unrealized_pnl".to_string(), - ), - _2017: CentsUsdPattern::new( - client.clone(), - "class_2017_net_unrealized_pnl".to_string(), - ), - _2018: CentsUsdPattern::new( - client.clone(), - "class_2018_net_unrealized_pnl".to_string(), - ), - _2019: CentsUsdPattern::new( - client.clone(), - "class_2019_net_unrealized_pnl".to_string(), - ), - _2020: CentsUsdPattern::new( - client.clone(), - "class_2020_net_unrealized_pnl".to_string(), - ), - _2021: CentsUsdPattern::new( - client.clone(), - "class_2021_net_unrealized_pnl".to_string(), - ), - _2022: CentsUsdPattern::new( - client.clone(), - "class_2022_net_unrealized_pnl".to_string(), - ), - _2023: CentsUsdPattern::new( - client.clone(), - "class_2023_net_unrealized_pnl".to_string(), - ), - _2024: CentsUsdPattern::new( - client.clone(), - "class_2024_net_unrealized_pnl".to_string(), - ), - _2025: CentsUsdPattern::new( - client.clone(), - "class_2025_net_unrealized_pnl".to_string(), - ), - _2026: CentsUsdPattern::new( - client.clone(), - "class_2026_net_unrealized_pnl".to_string(), - ), + _2009: CentsUsdPattern::new(client.clone(), "class_2009_net_unrealized_pnl".to_string()), + _2010: CentsUsdPattern::new(client.clone(), "class_2010_net_unrealized_pnl".to_string()), + _2011: CentsUsdPattern::new(client.clone(), "class_2011_net_unrealized_pnl".to_string()), + _2012: CentsUsdPattern::new(client.clone(), "class_2012_net_unrealized_pnl".to_string()), + _2013: CentsUsdPattern::new(client.clone(), "class_2013_net_unrealized_pnl".to_string()), + _2014: CentsUsdPattern::new(client.clone(), "class_2014_net_unrealized_pnl".to_string()), + _2015: CentsUsdPattern::new(client.clone(), "class_2015_net_unrealized_pnl".to_string()), + _2016: CentsUsdPattern::new(client.clone(), "class_2016_net_unrealized_pnl".to_string()), + _2017: CentsUsdPattern::new(client.clone(), "class_2017_net_unrealized_pnl".to_string()), + _2018: CentsUsdPattern::new(client.clone(), "class_2018_net_unrealized_pnl".to_string()), + _2019: CentsUsdPattern::new(client.clone(), "class_2019_net_unrealized_pnl".to_string()), + _2020: CentsUsdPattern::new(client.clone(), "class_2020_net_unrealized_pnl".to_string()), + _2021: CentsUsdPattern::new(client.clone(), "class_2021_net_unrealized_pnl".to_string()), + _2022: CentsUsdPattern::new(client.clone(), "class_2022_net_unrealized_pnl".to_string()), + _2023: CentsUsdPattern::new(client.clone(), "class_2023_net_unrealized_pnl".to_string()), + _2024: CentsUsdPattern::new(client.clone(), "class_2024_net_unrealized_pnl".to_string()), + _2025: CentsUsdPattern::new(client.clone(), "class_2025_net_unrealized_pnl".to_string()), + _2026: CentsUsdPattern::new(client.clone(), "class_2026_net_unrealized_pnl".to_string()), } } } @@ -33253,10 +20681,7 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Entry { impl SeriesTree_Cohorts_Cohorts_Unrealized_NetPnl_Entry { pub fn new(client: Arc, base_path: String) -> Self { Self { - discount: CentsUsdPattern::new( - client.clone(), - "veteran_net_unrealized_pnl".to_string(), - ), + discount: CentsUsdPattern::new(client.clone(), "veteran_net_unrealized_pnl".to_string()), premium: CentsUsdPattern::new(client.clone(), "rookie_net_unrealized_pnl".to_string()), } } @@ -33291,10 +20716,7 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_GrossPnl { all: CentsUsdPattern3::new(client.clone(), "all_unrealized_gross_pnl".to_string()), sth: CentsUsdPattern3::new(client.clone(), "sth_unrealized_gross_pnl".to_string()), lth: CentsUsdPattern3::new(client.clone(), "lth_unrealized_gross_pnl".to_string()), - height: SeriesPattern18::new( - client.clone(), - "unrealized_gross_pnl_cents_by_term".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "unrealized_gross_pnl_cents_by_term".to_string()), } } } @@ -33310,22 +20732,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_InvestedCapitalInProfit { impl SeriesTree_Cohorts_Cohorts_Unrealized_InvestedCapitalInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: CentsUsdPattern3::new( - client.clone(), - "all_invested_capital_in_profit".to_string(), - ), - sth: CentsUsdPattern3::new( - client.clone(), - "sth_invested_capital_in_profit".to_string(), - ), - lth: CentsUsdPattern3::new( - client.clone(), - "lth_invested_capital_in_profit".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "invested_capital_in_profit_cents_by_term".to_string(), - ), + all: CentsUsdPattern3::new(client.clone(), "all_invested_capital_in_profit".to_string()), + sth: CentsUsdPattern3::new(client.clone(), "sth_invested_capital_in_profit".to_string()), + lth: CentsUsdPattern3::new(client.clone(), "lth_invested_capital_in_profit".to_string()), + height: SeriesPattern18::new(client.clone(), "invested_capital_in_profit_cents_by_term".to_string()), } } } @@ -33344,10 +20754,7 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_InvestedCapitalInLoss { all: CentsUsdPattern3::new(client.clone(), "all_invested_capital_in_loss".to_string()), sth: CentsUsdPattern3::new(client.clone(), "sth_invested_capital_in_loss".to_string()), lth: CentsUsdPattern3::new(client.clone(), "lth_invested_capital_in_loss".to_string()), - height: SeriesPattern18::new( - client.clone(), - "invested_capital_in_loss_cents_by_term".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "invested_capital_in_loss_cents_by_term".to_string()), } } } @@ -33366,10 +20773,7 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_PainIndex { all: CentsUsdPattern3::new(client.clone(), "all_pain_index".to_string()), sth: CentsUsdPattern3::new(client.clone(), "sth_pain_index".to_string()), lth: CentsUsdPattern3::new(client.clone(), "lth_pain_index".to_string()), - height: SeriesPattern18::new( - client.clone(), - "pain_index_cents_by_aggregate".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "pain_index_cents_by_aggregate".to_string()), } } } @@ -33388,10 +20792,7 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_GreedIndex { all: CentsUsdPattern3::new(client.clone(), "all_greed_index".to_string()), sth: CentsUsdPattern3::new(client.clone(), "sth_greed_index".to_string()), lth: CentsUsdPattern3::new(client.clone(), "lth_greed_index".to_string()), - height: SeriesPattern18::new( - client.clone(), - "greed_index_cents_by_aggregate".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "greed_index_cents_by_aggregate".to_string()), } } } @@ -33410,10 +20811,7 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_NetSentiment { all: CentsUsdPattern::new(client.clone(), "all_net_sentiment".to_string()), sth: CentsUsdPattern::new(client.clone(), "sth_net_sentiment".to_string()), lth: CentsUsdPattern::new(client.clone(), "lth_net_sentiment".to_string()), - height: SeriesPattern18::new( - client.clone(), - "net_sentiment_cents_by_aggregate".to_string(), - ), + height: SeriesPattern18::new(client.clone(), "net_sentiment_cents_by_aggregate".to_string()), } } } @@ -33434,34 +20832,13 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_Nupl { pub fn new(client: Arc, base_path: String) -> Self { Self { all: PpmRatioPattern::new(client.clone(), "nupl".to_string()), - age: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age::new( - client.clone(), - format!("{base_path}_age"), - ), - epoch: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Epoch::new( - client.clone(), - format!("{base_path}_epoch"), - ), - class: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Class::new( - client.clone(), - format!("{base_path}_class"), - ), - entry: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Entry::new( - client.clone(), - format!("{base_path}_entry"), - ), - utxo_amount: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount::new( - client.clone(), - format!("{base_path}_utxo_amount"), - ), - term: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Term::new( - client.clone(), - format!("{base_path}_term"), - ), - type_: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Type::new( - client.clone(), - format!("{base_path}_type"), - ), + age: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age::new(client.clone(), format!("{base_path}_age")), + epoch: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Epoch::new(client.clone(), format!("{base_path}_epoch")), + class: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Class::new(client.clone(), format!("{base_path}_class")), + entry: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Entry::new(client.clone(), format!("{base_path}_entry")), + utxo_amount: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount::new(client.clone(), format!("{base_path}_utxo_amount")), + term: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Term::new(client.clone(), format!("{base_path}_term")), + type_: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Type::new(client.clone(), format!("{base_path}_type")), } } } @@ -33476,18 +20853,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age { impl SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -33533,32 +20901,17 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_Age_Range { _5m_to_6m: PpmRatioPattern::new(client.clone(), "utxos_5m_to_6m_old_nupl".to_string()), _6m_to_9m: PpmRatioPattern::new(client.clone(), "utxos_6m_to_9m_old_nupl".to_string()), _9m_to_1y: PpmRatioPattern::new(client.clone(), "utxos_9m_to_1y_old_nupl".to_string()), - _1y_to_18m: PpmRatioPattern::new( - client.clone(), - "utxos_1y_to_18m_old_nupl".to_string(), - ), - _18m_to_2y: PpmRatioPattern::new( - client.clone(), - "utxos_18m_to_2y_old_nupl".to_string(), - ), + _1y_to_18m: PpmRatioPattern::new(client.clone(), "utxos_1y_to_18m_old_nupl".to_string()), + _18m_to_2y: PpmRatioPattern::new(client.clone(), "utxos_18m_to_2y_old_nupl".to_string()), _2y_to_3y: PpmRatioPattern::new(client.clone(), "utxos_2y_to_3y_old_nupl".to_string()), _3y_to_4y: PpmRatioPattern::new(client.clone(), "utxos_3y_to_4y_old_nupl".to_string()), _4y_to_5y: PpmRatioPattern::new(client.clone(), "utxos_4y_to_5y_old_nupl".to_string()), _5y_to_6y: PpmRatioPattern::new(client.clone(), "utxos_5y_to_6y_old_nupl".to_string()), _6y_to_7y: PpmRatioPattern::new(client.clone(), "utxos_6y_to_7y_old_nupl".to_string()), _7y_to_8y: PpmRatioPattern::new(client.clone(), "utxos_7y_to_8y_old_nupl".to_string()), - _8y_to_10y: PpmRatioPattern::new( - client.clone(), - "utxos_8y_to_10y_old_nupl".to_string(), - ), - _10y_to_12y: PpmRatioPattern::new( - client.clone(), - "utxos_10y_to_12y_old_nupl".to_string(), - ), - _12y_to_15y: PpmRatioPattern::new( - client.clone(), - "utxos_12y_to_15y_old_nupl".to_string(), - ), + _8y_to_10y: PpmRatioPattern::new(client.clone(), "utxos_8y_to_10y_old_nupl".to_string()), + _10y_to_12y: PpmRatioPattern::new(client.clone(), "utxos_10y_to_12y_old_nupl".to_string()), + _12y_to_15y: PpmRatioPattern::new(client.clone(), "utxos_12y_to_15y_old_nupl".to_string()), over_15y: PpmRatioPattern::new(client.clone(), "utxos_over_15y_old_nupl".to_string()), } } @@ -33759,18 +21112,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount { impl SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - under: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount_Under::new( - client.clone(), - format!("{base_path}_under"), - ), - over: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount_Over::new( - client.clone(), - format!("{base_path}_over"), - ), + range: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount_Range::new(client.clone(), format!("{base_path}_range")), + under: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount_Under::new(client.clone(), format!("{base_path}_under")), + over: SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount_Over::new(client.clone(), format!("{base_path}_over")), } } } @@ -33798,62 +21142,20 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { _0sats: PpmRatioPattern::new(client.clone(), "utxos_0sats_nupl".to_string()), - _1sat_to_10sats: PpmRatioPattern::new( - client.clone(), - "utxos_1sat_to_10sats_nupl".to_string(), - ), - _10sats_to_100sats: PpmRatioPattern::new( - client.clone(), - "utxos_10sats_to_100sats_nupl".to_string(), - ), - _100sats_to_1k_sats: PpmRatioPattern::new( - client.clone(), - "utxos_100sats_to_1k_sats_nupl".to_string(), - ), - _1k_sats_to_10k_sats: PpmRatioPattern::new( - client.clone(), - "utxos_1k_sats_to_10k_sats_nupl".to_string(), - ), - _10k_sats_to_100k_sats: PpmRatioPattern::new( - client.clone(), - "utxos_10k_sats_to_100k_sats_nupl".to_string(), - ), - _100k_sats_to_1m_sats: PpmRatioPattern::new( - client.clone(), - "utxos_100k_sats_to_1m_sats_nupl".to_string(), - ), - _1m_sats_to_10m_sats: PpmRatioPattern::new( - client.clone(), - "utxos_1m_sats_to_10m_sats_nupl".to_string(), - ), - _10m_sats_to_1btc: PpmRatioPattern::new( - client.clone(), - "utxos_10m_sats_to_1btc_nupl".to_string(), - ), - _1btc_to_10btc: PpmRatioPattern::new( - client.clone(), - "utxos_1btc_to_10btc_nupl".to_string(), - ), - _10btc_to_100btc: PpmRatioPattern::new( - client.clone(), - "utxos_10btc_to_100btc_nupl".to_string(), - ), - _100btc_to_1k_btc: PpmRatioPattern::new( - client.clone(), - "utxos_100btc_to_1k_btc_nupl".to_string(), - ), - _1k_btc_to_10k_btc: PpmRatioPattern::new( - client.clone(), - "utxos_1k_btc_to_10k_btc_nupl".to_string(), - ), - _10k_btc_to_100k_btc: PpmRatioPattern::new( - client.clone(), - "utxos_10k_btc_to_100k_btc_nupl".to_string(), - ), - over_100k_btc: PpmRatioPattern::new( - client.clone(), - "utxos_over_100k_btc_nupl".to_string(), - ), + _1sat_to_10sats: PpmRatioPattern::new(client.clone(), "utxos_1sat_to_10sats_nupl".to_string()), + _10sats_to_100sats: PpmRatioPattern::new(client.clone(), "utxos_10sats_to_100sats_nupl".to_string()), + _100sats_to_1k_sats: PpmRatioPattern::new(client.clone(), "utxos_100sats_to_1k_sats_nupl".to_string()), + _1k_sats_to_10k_sats: PpmRatioPattern::new(client.clone(), "utxos_1k_sats_to_10k_sats_nupl".to_string()), + _10k_sats_to_100k_sats: PpmRatioPattern::new(client.clone(), "utxos_10k_sats_to_100k_sats_nupl".to_string()), + _100k_sats_to_1m_sats: PpmRatioPattern::new(client.clone(), "utxos_100k_sats_to_1m_sats_nupl".to_string()), + _1m_sats_to_10m_sats: PpmRatioPattern::new(client.clone(), "utxos_1m_sats_to_10m_sats_nupl".to_string()), + _10m_sats_to_1btc: PpmRatioPattern::new(client.clone(), "utxos_10m_sats_to_1btc_nupl".to_string()), + _1btc_to_10btc: PpmRatioPattern::new(client.clone(), "utxos_1btc_to_10btc_nupl".to_string()), + _10btc_to_100btc: PpmRatioPattern::new(client.clone(), "utxos_10btc_to_100btc_nupl".to_string()), + _100btc_to_1k_btc: PpmRatioPattern::new(client.clone(), "utxos_100btc_to_1k_btc_nupl".to_string()), + _1k_btc_to_10k_btc: PpmRatioPattern::new(client.clone(), "utxos_1k_btc_to_10k_btc_nupl".to_string()), + _10k_btc_to_100k_btc: PpmRatioPattern::new(client.clone(), "utxos_10k_btc_to_100k_btc_nupl".to_string()), + over_100k_btc: PpmRatioPattern::new(client.clone(), "utxos_over_100k_btc_nupl".to_string()), } } } @@ -33881,28 +21183,16 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount_Under { _10sats: PpmRatioPattern::new(client.clone(), "utxos_under_10sats_nupl".to_string()), _100sats: PpmRatioPattern::new(client.clone(), "utxos_under_100sats_nupl".to_string()), _1k_sats: PpmRatioPattern::new(client.clone(), "utxos_under_1k_sats_nupl".to_string()), - _10k_sats: PpmRatioPattern::new( - client.clone(), - "utxos_under_10k_sats_nupl".to_string(), - ), - _100k_sats: PpmRatioPattern::new( - client.clone(), - "utxos_under_100k_sats_nupl".to_string(), - ), + _10k_sats: PpmRatioPattern::new(client.clone(), "utxos_under_10k_sats_nupl".to_string()), + _100k_sats: PpmRatioPattern::new(client.clone(), "utxos_under_100k_sats_nupl".to_string()), _1m_sats: PpmRatioPattern::new(client.clone(), "utxos_under_1m_sats_nupl".to_string()), - _10m_sats: PpmRatioPattern::new( - client.clone(), - "utxos_under_10m_sats_nupl".to_string(), - ), + _10m_sats: PpmRatioPattern::new(client.clone(), "utxos_under_10m_sats_nupl".to_string()), _1btc: PpmRatioPattern::new(client.clone(), "utxos_under_1btc_nupl".to_string()), _10btc: PpmRatioPattern::new(client.clone(), "utxos_under_10btc_nupl".to_string()), _100btc: PpmRatioPattern::new(client.clone(), "utxos_under_100btc_nupl".to_string()), _1k_btc: PpmRatioPattern::new(client.clone(), "utxos_under_1k_btc_nupl".to_string()), _10k_btc: PpmRatioPattern::new(client.clone(), "utxos_under_10k_btc_nupl".to_string()), - _100k_btc: PpmRatioPattern::new( - client.clone(), - "utxos_under_100k_btc_nupl".to_string(), - ), + _100k_btc: PpmRatioPattern::new(client.clone(), "utxos_under_100k_btc_nupl".to_string()), } } } @@ -33932,10 +21222,7 @@ impl SeriesTree_Cohorts_Cohorts_Unrealized_Nupl_UtxoAmount_Over { _100sats: PpmRatioPattern::new(client.clone(), "utxos_over_100sats_nupl".to_string()), _1k_sats: PpmRatioPattern::new(client.clone(), "utxos_over_1k_sats_nupl".to_string()), _10k_sats: PpmRatioPattern::new(client.clone(), "utxos_over_10k_sats_nupl".to_string()), - _100k_sats: PpmRatioPattern::new( - client.clone(), - "utxos_over_100k_sats_nupl".to_string(), - ), + _100k_sats: PpmRatioPattern::new(client.clone(), "utxos_over_100k_sats_nupl".to_string()), _1m_sats: PpmRatioPattern::new(client.clone(), "utxos_over_1m_sats_nupl".to_string()), _10m_sats: PpmRatioPattern::new(client.clone(), "utxos_over_10m_sats_nupl".to_string()), _1btc: PpmRatioPattern::new(client.clone(), "utxos_over_1btc_nupl".to_string()), @@ -34022,18 +21309,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative { impl SeriesTree_Cohorts_Cohorts_Relative { pub fn new(client: Arc, base_path: String) -> Self { Self { - supply: SeriesTree_Cohorts_Cohorts_Relative_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), - unrealized: SeriesTree_Cohorts_Cohorts_Relative_Unrealized::new( - client.clone(), - format!("{base_path}_unrealized"), - ), - invested_capital: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital::new( - client.clone(), - format!("{base_path}_invested_capital"), - ), + supply: SeriesTree_Cohorts_Cohorts_Relative_Supply::new(client.clone(), format!("{base_path}_supply")), + unrealized: SeriesTree_Cohorts_Cohorts_Relative_Unrealized::new(client.clone(), format!("{base_path}_unrealized")), + invested_capital: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital::new(client.clone(), format!("{base_path}_invested_capital")), } } } @@ -34063,18 +21341,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_Unrealized { impl SeriesTree_Cohorts_Cohorts_Relative_Unrealized { pub fn new(client: Arc, base_path: String) -> Self { Self { - profit: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Profit::new( - client.clone(), - format!("{base_path}_profit"), - ), - loss: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Loss::new( - client.clone(), - format!("{base_path}_loss"), - ), - net_pnl: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl::new( - client.clone(), - format!("{base_path}_net_pnl"), - ), + profit: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Profit::new(client.clone(), format!("{base_path}_profit")), + loss: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Loss::new(client.clone(), format!("{base_path}_loss")), + net_pnl: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl::new(client.clone(), format!("{base_path}_net_pnl")), } } } @@ -34089,18 +21358,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Profit { impl SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Profit { pub fn new(client: Arc, base_path: String) -> Self { Self { - to_mcap: AllLthSthPattern5::new( - client.clone(), - "unrealized_profit_to_mcap".to_string(), - ), - to_own_mcap: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Profit_ToOwnMcap::new( - client.clone(), - format!("{base_path}_to_own_mcap"), - ), - to_own_gross_pnl: AllLthSthPattern5::new( - client.clone(), - "unrealized_profit_to_own_gross_pnl".to_string(), - ), + to_mcap: AllLthSthPattern5::new(client.clone(), "unrealized_profit_to_mcap".to_string()), + to_own_mcap: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Profit_ToOwnMcap::new(client.clone(), format!("{base_path}_to_own_mcap")), + to_own_gross_pnl: AllLthSthPattern5::new(client.clone(), "unrealized_profit_to_own_gross_pnl".to_string()), } } } @@ -34115,18 +21375,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Profit_ToOwnMcap { impl SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Profit_ToOwnMcap { pub fn new(client: Arc, base_path: String) -> Self { Self { - short: PercentPpmRatioPattern2::new( - client.clone(), - "sth_unrealized_profit_to_own_mcap".to_string(), - ), - long: PercentPpmRatioPattern2::new( - client.clone(), - "lth_unrealized_profit_to_own_mcap".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "unrealized_profit_to_own_mcap_ppm_by_term".to_string(), - ), + short: PercentPpmRatioPattern2::new(client.clone(), "sth_unrealized_profit_to_own_mcap".to_string()), + long: PercentPpmRatioPattern2::new(client.clone(), "lth_unrealized_profit_to_own_mcap".to_string()), + height: SeriesPattern18::new(client.clone(), "unrealized_profit_to_own_mcap_ppm_by_term".to_string()), } } } @@ -34142,14 +21393,8 @@ impl SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Loss { pub fn new(client: Arc, base_path: String) -> Self { Self { to_mcap: AllLthSthPattern5::new(client.clone(), "unrealized_loss_to_mcap".to_string()), - to_own_mcap: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Loss_ToOwnMcap::new( - client.clone(), - format!("{base_path}_to_own_mcap"), - ), - to_own_gross_pnl: AllLthSthPattern5::new( - client.clone(), - "unrealized_loss_to_own_gross_pnl".to_string(), - ), + to_own_mcap: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Loss_ToOwnMcap::new(client.clone(), format!("{base_path}_to_own_mcap")), + to_own_gross_pnl: AllLthSthPattern5::new(client.clone(), "unrealized_loss_to_own_gross_pnl".to_string()), } } } @@ -34164,18 +21409,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Loss_ToOwnMcap { impl SeriesTree_Cohorts_Cohorts_Relative_Unrealized_Loss_ToOwnMcap { pub fn new(client: Arc, base_path: String) -> Self { Self { - short: PercentPpmRatioPattern2::new( - client.clone(), - "sth_unrealized_loss_to_own_mcap".to_string(), - ), - long: PercentPpmRatioPattern2::new( - client.clone(), - "lth_unrealized_loss_to_own_mcap".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "unrealized_loss_to_own_mcap_ppm_by_term".to_string(), - ), + short: PercentPpmRatioPattern2::new(client.clone(), "sth_unrealized_loss_to_own_mcap".to_string()), + long: PercentPpmRatioPattern2::new(client.clone(), "lth_unrealized_loss_to_own_mcap".to_string()), + height: SeriesPattern18::new(client.clone(), "unrealized_loss_to_own_mcap_ppm_by_term".to_string()), } } } @@ -34189,15 +21425,8 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl { impl SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl { pub fn new(client: Arc, base_path: String) -> Self { Self { - to_own_mcap: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl_ToOwnMcap::new( - client.clone(), - format!("{base_path}_to_own_mcap"), - ), - to_own_gross_pnl: - SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl_ToOwnGrossPnl::new( - client.clone(), - format!("{base_path}_to_own_gross_pnl"), - ), + to_own_mcap: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl_ToOwnMcap::new(client.clone(), format!("{base_path}_to_own_mcap")), + to_own_gross_pnl: SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl_ToOwnGrossPnl::new(client.clone(), format!("{base_path}_to_own_gross_pnl")), } } } @@ -34211,14 +21440,8 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl_ToOwnMcap { impl SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl_ToOwnMcap { pub fn new(client: Arc, base_path: String) -> Self { Self { - short: PercentPpmRatioPattern3::new( - client.clone(), - "sth_net_unrealized_pnl_to_own_mcap".to_string(), - ), - long: PercentPpmRatioPattern3::new( - client.clone(), - "lth_net_unrealized_pnl_to_own_mcap".to_string(), - ), + short: PercentPpmRatioPattern3::new(client.clone(), "sth_net_unrealized_pnl_to_own_mcap".to_string()), + long: PercentPpmRatioPattern3::new(client.clone(), "lth_net_unrealized_pnl_to_own_mcap".to_string()), } } } @@ -34233,18 +21456,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl_ToOwnGrossPnl { impl SeriesTree_Cohorts_Cohorts_Relative_Unrealized_NetPnl_ToOwnGrossPnl { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: PercentPpmRatioPattern3::new( - client.clone(), - "all_net_unrealized_pnl_to_own_gross_pnl".to_string(), - ), - sth: PercentPpmRatioPattern3::new( - client.clone(), - "sth_net_unrealized_pnl_to_own_gross_pnl".to_string(), - ), - lth: PercentPpmRatioPattern3::new( - client.clone(), - "lth_net_unrealized_pnl_to_own_gross_pnl".to_string(), - ), + all: PercentPpmRatioPattern3::new(client.clone(), "all_net_unrealized_pnl_to_own_gross_pnl".to_string()), + sth: PercentPpmRatioPattern3::new(client.clone(), "sth_net_unrealized_pnl_to_own_gross_pnl".to_string()), + lth: PercentPpmRatioPattern3::new(client.clone(), "lth_net_unrealized_pnl_to_own_gross_pnl".to_string()), } } } @@ -34258,14 +21472,8 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital { impl SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital { pub fn new(client: Arc, base_path: String) -> Self { Self { - in_profit: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InProfit::new( - client.clone(), - format!("{base_path}_in_profit"), - ), - in_loss: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InLoss::new( - client.clone(), - format!("{base_path}_in_loss"), - ), + in_profit: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InProfit::new(client.clone(), format!("{base_path}_in_profit")), + in_loss: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InLoss::new(client.clone(), format!("{base_path}_in_loss")), } } } @@ -34278,10 +21486,7 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InProfit { impl SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - share: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InProfit_Share::new( - client.clone(), - format!("{base_path}_share"), - ), + share: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InProfit_Share::new(client.clone(), format!("{base_path}_share")), } } } @@ -34297,22 +21502,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InProfit_Share { impl SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InProfit_Share { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: PercentPpmRatioPattern2::new( - client.clone(), - "all_invested_capital_in_profit_share".to_string(), - ), - sth: PercentPpmRatioPattern2::new( - client.clone(), - "sth_invested_capital_in_profit_share".to_string(), - ), - lth: PercentPpmRatioPattern2::new( - client.clone(), - "lth_invested_capital_in_profit_share".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "invested_capital_in_profit_share_ppm_by_aggregate".to_string(), - ), + all: PercentPpmRatioPattern2::new(client.clone(), "all_invested_capital_in_profit_share".to_string()), + sth: PercentPpmRatioPattern2::new(client.clone(), "sth_invested_capital_in_profit_share".to_string()), + lth: PercentPpmRatioPattern2::new(client.clone(), "lth_invested_capital_in_profit_share".to_string()), + height: SeriesPattern18::new(client.clone(), "invested_capital_in_profit_share_ppm_by_aggregate".to_string()), } } } @@ -34325,10 +21518,7 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InLoss { impl SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - share: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InLoss_Share::new( - client.clone(), - format!("{base_path}_share"), - ), + share: SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InLoss_Share::new(client.clone(), format!("{base_path}_share")), } } } @@ -34344,22 +21534,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InLoss_Share { impl SeriesTree_Cohorts_Cohorts_Relative_InvestedCapital_InLoss_Share { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: PercentPpmRatioPattern2::new( - client.clone(), - "all_invested_capital_in_loss_share".to_string(), - ), - sth: PercentPpmRatioPattern2::new( - client.clone(), - "sth_invested_capital_in_loss_share".to_string(), - ), - lth: PercentPpmRatioPattern2::new( - client.clone(), - "lth_invested_capital_in_loss_share".to_string(), - ), - height: SeriesPattern18::new( - client.clone(), - "invested_capital_in_loss_share_ppm_by_aggregate".to_string(), - ), + all: PercentPpmRatioPattern2::new(client.clone(), "all_invested_capital_in_loss_share".to_string()), + sth: PercentPpmRatioPattern2::new(client.clone(), "sth_invested_capital_in_loss_share".to_string()), + lth: PercentPpmRatioPattern2::new(client.clone(), "lth_invested_capital_in_loss_share".to_string()), + height: SeriesPattern18::new(client.clone(), "invested_capital_in_loss_share_ppm_by_aggregate".to_string()), } } } @@ -34375,22 +21553,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability { impl SeriesTree_Cohorts_Cohorts_Profitability { pub fn new(client: Arc, base_path: String) -> Self { Self { - supply: SeriesTree_Cohorts_Cohorts_Profitability_Supply::new( - client.clone(), - format!("{base_path}_supply"), - ), - realized_cap: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap::new( - client.clone(), - format!("{base_path}_realized_cap"), - ), - unrealized_pnl: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl::new( - client.clone(), - format!("{base_path}_unrealized_pnl"), - ), - nupl: SeriesTree_Cohorts_Cohorts_Profitability_Nupl::new( - client.clone(), - format!("{base_path}_nupl"), - ), + supply: SeriesTree_Cohorts_Cohorts_Profitability_Supply::new(client.clone(), format!("{base_path}_supply")), + realized_cap: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap::new(client.clone(), format!("{base_path}_realized_cap")), + unrealized_pnl: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl::new(client.clone(), format!("{base_path}_unrealized_pnl")), + nupl: SeriesTree_Cohorts_Cohorts_Profitability_Nupl::new(client.clone(), format!("{base_path}_nupl")), } } } @@ -34406,22 +21572,10 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_Supply { impl SeriesTree_Cohorts_Cohorts_Profitability_Supply { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Profitability_Supply_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - profit: SeriesTree_Cohorts_Cohorts_Profitability_Supply_Profit::new( - client.clone(), - format!("{base_path}_profit"), - ), - loss: SeriesTree_Cohorts_Cohorts_Profitability_Supply_Loss::new( - client.clone(), - format!("{base_path}_loss"), - ), - height: SeriesPattern18::new( - client.clone(), - "profitability_supply_sats_by_term_and_range".to_string(), - ), + range: SeriesTree_Cohorts_Cohorts_Profitability_Supply_Range::new(client.clone(), format!("{base_path}_range")), + profit: SeriesTree_Cohorts_Cohorts_Profitability_Supply_Profit::new(client.clone(), format!("{base_path}_profit")), + loss: SeriesTree_Cohorts_Cohorts_Profitability_Supply_Loss::new(client.clone(), format!("{base_path}_loss")), + height: SeriesPattern18::new(client.clone(), "profitability_supply_sats_by_term_and_range".to_string()), } } } @@ -34458,106 +21612,31 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_Supply_Range { impl SeriesTree_Cohorts_Cohorts_Profitability_Supply_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - over_1000pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_over_1000pct_in_profit".to_string(), - ), - _500pct_to_1000pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_500pct_to_1000pct_in_profit".to_string(), - ), - _300pct_to_500pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_300pct_to_500pct_in_profit".to_string(), - ), - _200pct_to_300pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_200pct_to_300pct_in_profit".to_string(), - ), - _100pct_to_200pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_100pct_to_200pct_in_profit".to_string(), - ), - _90pct_to_100pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_90pct_to_100pct_in_profit".to_string(), - ), - _80pct_to_90pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_80pct_to_90pct_in_profit".to_string(), - ), - _70pct_to_80pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_70pct_to_80pct_in_profit".to_string(), - ), - _60pct_to_70pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_60pct_to_70pct_in_profit".to_string(), - ), - _50pct_to_60pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_50pct_to_60pct_in_profit".to_string(), - ), - _40pct_to_50pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_40pct_to_50pct_in_profit".to_string(), - ), - _30pct_to_40pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_30pct_to_40pct_in_profit".to_string(), - ), - _20pct_to_30pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_20pct_to_30pct_in_profit".to_string(), - ), - _10pct_to_20pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_10pct_to_20pct_in_profit".to_string(), - ), - _0pct_to_10pct_in_profit: AllLthSthPattern4::new( - client.clone(), - "utxos_0pct_to_10pct_in_profit".to_string(), - ), - _0pct_to_10pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_0pct_to_10pct_in_loss".to_string(), - ), - _10pct_to_20pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_10pct_to_20pct_in_loss".to_string(), - ), - _20pct_to_30pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_20pct_to_30pct_in_loss".to_string(), - ), - _30pct_to_40pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_30pct_to_40pct_in_loss".to_string(), - ), - _40pct_to_50pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_40pct_to_50pct_in_loss".to_string(), - ), - _50pct_to_60pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_50pct_to_60pct_in_loss".to_string(), - ), - _60pct_to_70pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_60pct_to_70pct_in_loss".to_string(), - ), - _70pct_to_80pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_70pct_to_80pct_in_loss".to_string(), - ), - _80pct_to_90pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_80pct_to_90pct_in_loss".to_string(), - ), - _90pct_to_100pct_in_loss: AllLthSthPattern4::new( - client.clone(), - "utxos_90pct_to_100pct_in_loss".to_string(), - ), + over_1000pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_over_1000pct_in_profit".to_string()), + _500pct_to_1000pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_500pct_to_1000pct_in_profit".to_string()), + _300pct_to_500pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_300pct_to_500pct_in_profit".to_string()), + _200pct_to_300pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_200pct_to_300pct_in_profit".to_string()), + _100pct_to_200pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_100pct_to_200pct_in_profit".to_string()), + _90pct_to_100pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_90pct_to_100pct_in_profit".to_string()), + _80pct_to_90pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_80pct_to_90pct_in_profit".to_string()), + _70pct_to_80pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_70pct_to_80pct_in_profit".to_string()), + _60pct_to_70pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_60pct_to_70pct_in_profit".to_string()), + _50pct_to_60pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_50pct_to_60pct_in_profit".to_string()), + _40pct_to_50pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_40pct_to_50pct_in_profit".to_string()), + _30pct_to_40pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_30pct_to_40pct_in_profit".to_string()), + _20pct_to_30pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_20pct_to_30pct_in_profit".to_string()), + _10pct_to_20pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_10pct_to_20pct_in_profit".to_string()), + _0pct_to_10pct_in_profit: AllLthSthPattern4::new(client.clone(), "utxos_0pct_to_10pct_in_profit".to_string()), + _0pct_to_10pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_0pct_to_10pct_in_loss".to_string()), + _10pct_to_20pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_10pct_to_20pct_in_loss".to_string()), + _20pct_to_30pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_20pct_to_30pct_in_loss".to_string()), + _30pct_to_40pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_30pct_to_40pct_in_loss".to_string()), + _40pct_to_50pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_40pct_to_50pct_in_loss".to_string()), + _50pct_to_60pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_50pct_to_60pct_in_loss".to_string()), + _60pct_to_70pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_60pct_to_70pct_in_loss".to_string()), + _70pct_to_80pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_70pct_to_80pct_in_loss".to_string()), + _80pct_to_90pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_80pct_to_90pct_in_loss".to_string()), + _90pct_to_100pct_in_loss: AllLthSthPattern4::new(client.clone(), "utxos_90pct_to_100pct_in_loss".to_string()), } } } @@ -34584,58 +21663,19 @@ impl SeriesTree_Cohorts_Cohorts_Profitability_Supply_Profit { pub fn new(client: Arc, base_path: String) -> Self { Self { all: AllLthSthPattern4::new(client.clone(), "utxos_in_profit".to_string()), - _10pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_10pct_in_profit".to_string(), - ), - _20pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_20pct_in_profit".to_string(), - ), - _30pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_30pct_in_profit".to_string(), - ), - _40pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_40pct_in_profit".to_string(), - ), - _50pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_50pct_in_profit".to_string(), - ), - _60pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_60pct_in_profit".to_string(), - ), - _70pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_70pct_in_profit".to_string(), - ), - _80pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_80pct_in_profit".to_string(), - ), - _90pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_90pct_in_profit".to_string(), - ), - _100pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_100pct_in_profit".to_string(), - ), - _200pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_200pct_in_profit".to_string(), - ), - _300pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_300pct_in_profit".to_string(), - ), - _500pct: AllLthSthPattern4::new( - client.clone(), - "utxos_over_500pct_in_profit".to_string(), - ), + _10pct: AllLthSthPattern4::new(client.clone(), "utxos_over_10pct_in_profit".to_string()), + _20pct: AllLthSthPattern4::new(client.clone(), "utxos_over_20pct_in_profit".to_string()), + _30pct: AllLthSthPattern4::new(client.clone(), "utxos_over_30pct_in_profit".to_string()), + _40pct: AllLthSthPattern4::new(client.clone(), "utxos_over_40pct_in_profit".to_string()), + _50pct: AllLthSthPattern4::new(client.clone(), "utxos_over_50pct_in_profit".to_string()), + _60pct: AllLthSthPattern4::new(client.clone(), "utxos_over_60pct_in_profit".to_string()), + _70pct: AllLthSthPattern4::new(client.clone(), "utxos_over_70pct_in_profit".to_string()), + _80pct: AllLthSthPattern4::new(client.clone(), "utxos_over_80pct_in_profit".to_string()), + _90pct: AllLthSthPattern4::new(client.clone(), "utxos_over_90pct_in_profit".to_string()), + _100pct: AllLthSthPattern4::new(client.clone(), "utxos_over_100pct_in_profit".to_string()), + _200pct: AllLthSthPattern4::new(client.clone(), "utxos_over_200pct_in_profit".to_string()), + _300pct: AllLthSthPattern4::new(client.clone(), "utxos_over_300pct_in_profit".to_string()), + _500pct: AllLthSthPattern4::new(client.clone(), "utxos_over_500pct_in_profit".to_string()), } } } @@ -34680,78 +21720,41 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit::new( - client.clone(), - format!("{base_path}_profit"), - ), - loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss::new( - client.clone(), - format!("{base_path}_loss"), - ), - height: SeriesPattern18::new( - client.clone(), - "profitability_realized_cap_by_term_and_range".to_string(), - ), + range: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range::new(client.clone(), format!("{base_path}_range")), + profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit::new(client.clone(), format!("{base_path}_profit")), + loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss::new(client.clone(), format!("{base_path}_loss")), + height: SeriesPattern18::new(client.clone(), "profitability_realized_cap_by_term_and_range".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range { - pub over_1000pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_Over1000pctInProfit, - pub _500pct_to_1000pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_500pctTo1000pctInProfit, - pub _300pct_to_500pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_300pctTo500pctInProfit, - pub _200pct_to_300pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_200pctTo300pctInProfit, - pub _100pct_to_200pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_100pctTo200pctInProfit, - pub _90pct_to_100pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_90pctTo100pctInProfit, - pub _80pct_to_90pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_80pctTo90pctInProfit, - pub _70pct_to_80pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_70pctTo80pctInProfit, - pub _60pct_to_70pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_60pctTo70pctInProfit, - pub _50pct_to_60pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_50pctTo60pctInProfit, - pub _40pct_to_50pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_40pctTo50pctInProfit, - pub _30pct_to_40pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_30pctTo40pctInProfit, - pub _20pct_to_30pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_20pctTo30pctInProfit, - pub _10pct_to_20pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_10pctTo20pctInProfit, - pub _0pct_to_10pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_0pctTo10pctInProfit, - pub _0pct_to_10pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_0pctTo10pctInLoss, - pub _10pct_to_20pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_10pctTo20pctInLoss, - pub _20pct_to_30pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_20pctTo30pctInLoss, - pub _30pct_to_40pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_30pctTo40pctInLoss, - pub _40pct_to_50pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_40pctTo50pctInLoss, - pub _50pct_to_60pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_50pctTo60pctInLoss, - pub _60pct_to_70pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_60pctTo70pctInLoss, - pub _70pct_to_80pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_70pctTo80pctInLoss, - pub _80pct_to_90pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_80pctTo90pctInLoss, - pub _90pct_to_100pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_90pctTo100pctInLoss, + pub over_1000pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_Over1000pctInProfit, + pub _500pct_to_1000pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_500pctTo1000pctInProfit, + pub _300pct_to_500pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_300pctTo500pctInProfit, + pub _200pct_to_300pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_200pctTo300pctInProfit, + pub _100pct_to_200pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_100pctTo200pctInProfit, + pub _90pct_to_100pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_90pctTo100pctInProfit, + pub _80pct_to_90pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_80pctTo90pctInProfit, + pub _70pct_to_80pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_70pctTo80pctInProfit, + pub _60pct_to_70pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_60pctTo70pctInProfit, + pub _50pct_to_60pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_50pctTo60pctInProfit, + pub _40pct_to_50pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_40pctTo50pctInProfit, + pub _30pct_to_40pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_30pctTo40pctInProfit, + pub _20pct_to_30pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_20pctTo30pctInProfit, + pub _10pct_to_20pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_10pctTo20pctInProfit, + pub _0pct_to_10pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_0pctTo10pctInProfit, + pub _0pct_to_10pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_0pctTo10pctInLoss, + pub _10pct_to_20pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_10pctTo20pctInLoss, + pub _20pct_to_30pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_20pctTo30pctInLoss, + pub _30pct_to_40pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_30pctTo40pctInLoss, + pub _40pct_to_50pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_40pctTo50pctInLoss, + pub _50pct_to_60pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_50pctTo60pctInLoss, + pub _60pct_to_70pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_60pctTo70pctInLoss, + pub _70pct_to_80pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_70pctTo80pctInLoss, + pub _80pct_to_90pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_80pctTo90pctInLoss, + pub _90pct_to_100pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_90pctTo100pctInLoss, } impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range { @@ -34796,18 +21799,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_Over1000pc impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_Over1000pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_1000pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_1000pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_1000pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_1000pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_1000pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_1000pct_in_profit_lth_realized_cap".to_string()), } } } @@ -34822,18 +21816,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_500pctTo10 impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_500pctTo1000pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_500pct_to_1000pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_500pct_to_1000pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_500pct_to_1000pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_500pct_to_1000pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_500pct_to_1000pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_500pct_to_1000pct_in_profit_lth_realized_cap".to_string()), } } } @@ -34848,18 +21833,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_300pctTo50 impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_300pctTo500pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_300pct_to_500pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_300pct_to_500pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_300pct_to_500pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_300pct_to_500pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_300pct_to_500pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_300pct_to_500pct_in_profit_lth_realized_cap".to_string()), } } } @@ -34874,18 +21850,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_200pctTo30 impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_200pctTo300pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_200pct_to_300pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_200pct_to_300pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_200pct_to_300pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_200pct_to_300pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_200pct_to_300pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_200pct_to_300pct_in_profit_lth_realized_cap".to_string()), } } } @@ -34900,18 +21867,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_100pctTo20 impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_100pctTo200pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_100pct_to_200pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_100pct_to_200pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_100pct_to_200pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_100pct_to_200pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_100pct_to_200pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_100pct_to_200pct_in_profit_lth_realized_cap".to_string()), } } } @@ -34926,18 +21884,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_90pctTo100 impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_90pctTo100pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_profit_lth_realized_cap".to_string()), } } } @@ -34952,18 +21901,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_80pctTo90p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_80pctTo90pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_profit_lth_realized_cap".to_string()), } } } @@ -34978,18 +21918,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_70pctTo80p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_70pctTo80pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35004,18 +21935,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_60pctTo70p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_60pctTo70pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35030,18 +21952,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_50pctTo60p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_50pctTo60pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35056,18 +21969,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_40pctTo50p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_40pctTo50pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35082,18 +21986,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_30pctTo40p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_30pctTo40pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35108,18 +22003,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_20pctTo30p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_20pctTo30pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35134,18 +22020,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_10pctTo20p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_10pctTo20pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35160,18 +22037,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_0pctTo10pc impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_0pctTo10pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35186,18 +22054,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_0pctTo10pc impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_0pctTo10pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35212,18 +22071,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_10pctTo20p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_10pctTo20pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35238,18 +22088,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_20pctTo30p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_20pctTo30pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35264,18 +22105,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_30pctTo40p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_30pctTo40pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35290,18 +22122,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_40pctTo50p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_40pctTo50pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35316,18 +22139,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_50pctTo60p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_50pctTo60pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35342,18 +22156,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_60pctTo70p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_60pctTo70pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35368,18 +22173,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_70pctTo80p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_70pctTo80pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35394,18 +22190,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_80pctTo90p impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_80pctTo90pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35420,18 +22207,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_90pctTo100 impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Range_90pctTo100pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35457,62 +22235,20 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_All::new( - client.clone(), - format!("{base_path}_all"), - ), - _10pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_10pct::new( - client.clone(), - format!("{base_path}_10pct"), - ), - _20pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_20pct::new( - client.clone(), - format!("{base_path}_20pct"), - ), - _30pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_30pct::new( - client.clone(), - format!("{base_path}_30pct"), - ), - _40pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_40pct::new( - client.clone(), - format!("{base_path}_40pct"), - ), - _50pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_50pct::new( - client.clone(), - format!("{base_path}_50pct"), - ), - _60pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_60pct::new( - client.clone(), - format!("{base_path}_60pct"), - ), - _70pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_70pct::new( - client.clone(), - format!("{base_path}_70pct"), - ), - _80pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_80pct::new( - client.clone(), - format!("{base_path}_80pct"), - ), - _90pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_90pct::new( - client.clone(), - format!("{base_path}_90pct"), - ), - _100pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_100pct::new( - client.clone(), - format!("{base_path}_100pct"), - ), - _200pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_200pct::new( - client.clone(), - format!("{base_path}_200pct"), - ), - _300pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_300pct::new( - client.clone(), - format!("{base_path}_300pct"), - ), - _500pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_500pct::new( - client.clone(), - format!("{base_path}_500pct"), - ), + all: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_All::new(client.clone(), format!("{base_path}_all")), + _10pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_10pct::new(client.clone(), format!("{base_path}_10pct")), + _20pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_20pct::new(client.clone(), format!("{base_path}_20pct")), + _30pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_30pct::new(client.clone(), format!("{base_path}_30pct")), + _40pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_40pct::new(client.clone(), format!("{base_path}_40pct")), + _50pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_50pct::new(client.clone(), format!("{base_path}_50pct")), + _60pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_60pct::new(client.clone(), format!("{base_path}_60pct")), + _70pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_70pct::new(client.clone(), format!("{base_path}_70pct")), + _80pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_80pct::new(client.clone(), format!("{base_path}_80pct")), + _90pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_90pct::new(client.clone(), format!("{base_path}_90pct")), + _100pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_100pct::new(client.clone(), format!("{base_path}_100pct")), + _200pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_200pct::new(client.clone(), format!("{base_path}_200pct")), + _300pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_300pct::new(client.clone(), format!("{base_path}_300pct")), + _500pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_500pct::new(client.clone(), format!("{base_path}_500pct")), } } } @@ -35528,14 +22264,8 @@ impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_All { pub fn new(client: Arc, base_path: String) -> Self { Self { all: SeriesPattern1::new(client.clone(), "utxos_in_profit_realized_cap".to_string()), - sth: SeriesPattern1::new( - client.clone(), - "utxos_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_in_profit_lth_realized_cap".to_string(), - ), + sth: SeriesPattern1::new(client.clone(), "utxos_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_in_profit_lth_realized_cap".to_string()), } } } @@ -35550,18 +22280,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_10pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_10pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35576,18 +22297,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_20pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_20pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35602,18 +22314,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_30pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_30pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35628,18 +22331,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_40pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_40pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35654,18 +22348,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_50pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_50pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35680,18 +22365,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_60pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_60pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35706,18 +22382,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_70pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_70pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35732,18 +22399,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_80pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_80pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35758,18 +22416,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_90pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_90pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_90pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_90pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_90pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_90pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_90pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_90pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35784,18 +22433,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_100pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_100pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_100pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_100pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_100pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_100pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_100pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_100pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35810,18 +22450,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_200pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_200pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_200pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_200pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_200pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_200pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_200pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_200pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35836,18 +22467,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_300pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_300pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_300pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_300pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_300pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_300pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_300pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_300pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35862,18 +22484,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_500pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Profit_500pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_500pct_in_profit_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_500pct_in_profit_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_500pct_in_profit_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_500pct_in_profit_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_500pct_in_profit_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_500pct_in_profit_lth_realized_cap".to_string()), } } } @@ -35894,42 +22507,15 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_All::new( - client.clone(), - format!("{base_path}_all"), - ), - _10pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_10pct::new( - client.clone(), - format!("{base_path}_10pct"), - ), - _20pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_20pct::new( - client.clone(), - format!("{base_path}_20pct"), - ), - _30pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_30pct::new( - client.clone(), - format!("{base_path}_30pct"), - ), - _40pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_40pct::new( - client.clone(), - format!("{base_path}_40pct"), - ), - _50pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_50pct::new( - client.clone(), - format!("{base_path}_50pct"), - ), - _60pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_60pct::new( - client.clone(), - format!("{base_path}_60pct"), - ), - _70pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_70pct::new( - client.clone(), - format!("{base_path}_70pct"), - ), - _80pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_80pct::new( - client.clone(), - format!("{base_path}_80pct"), - ), + all: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_All::new(client.clone(), format!("{base_path}_all")), + _10pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_10pct::new(client.clone(), format!("{base_path}_10pct")), + _20pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_20pct::new(client.clone(), format!("{base_path}_20pct")), + _30pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_30pct::new(client.clone(), format!("{base_path}_30pct")), + _40pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_40pct::new(client.clone(), format!("{base_path}_40pct")), + _50pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_50pct::new(client.clone(), format!("{base_path}_50pct")), + _60pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_60pct::new(client.clone(), format!("{base_path}_60pct")), + _70pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_70pct::new(client.clone(), format!("{base_path}_70pct")), + _80pct: SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_80pct::new(client.clone(), format!("{base_path}_80pct")), } } } @@ -35961,18 +22547,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_10pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_10pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_loss_lth_realized_cap".to_string()), } } } @@ -35987,18 +22564,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_20pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_20pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_loss_lth_realized_cap".to_string()), } } } @@ -36013,18 +22581,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_30pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_30pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_loss_lth_realized_cap".to_string()), } } } @@ -36039,18 +22598,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_40pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_40pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_loss_lth_realized_cap".to_string()), } } } @@ -36065,18 +22615,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_50pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_50pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_loss_lth_realized_cap".to_string()), } } } @@ -36091,18 +22632,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_60pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_60pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_loss_lth_realized_cap".to_string()), } } } @@ -36117,18 +22649,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_70pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_70pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_loss_lth_realized_cap".to_string()), } } } @@ -36143,18 +22666,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_80pct { impl SeriesTree_Cohorts_Cohorts_Profitability_RealizedCap_Loss_80pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_loss_realized_cap".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_loss_sth_realized_cap".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_loss_lth_realized_cap".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_loss_realized_cap".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_loss_sth_realized_cap".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_loss_lth_realized_cap".to_string()), } } } @@ -36170,78 +22684,41 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit::new( - client.clone(), - format!("{base_path}_profit"), - ), - loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss::new( - client.clone(), - format!("{base_path}_loss"), - ), - height: SeriesPattern18::new( - client.clone(), - "profitability_unrealized_pnl_by_term_and_range".to_string(), - ), + range: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range::new(client.clone(), format!("{base_path}_range")), + profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit::new(client.clone(), format!("{base_path}_profit")), + loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss::new(client.clone(), format!("{base_path}_loss")), + height: SeriesPattern18::new(client.clone(), "profitability_unrealized_pnl_by_term_and_range".to_string()), } } } /// Series tree node. pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range { - pub over_1000pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_Over1000pctInProfit, - pub _500pct_to_1000pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_500pctTo1000pctInProfit, - pub _300pct_to_500pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_300pctTo500pctInProfit, - pub _200pct_to_300pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_200pctTo300pctInProfit, - pub _100pct_to_200pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_100pctTo200pctInProfit, - pub _90pct_to_100pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_90pctTo100pctInProfit, - pub _80pct_to_90pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_80pctTo90pctInProfit, - pub _70pct_to_80pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_70pctTo80pctInProfit, - pub _60pct_to_70pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_60pctTo70pctInProfit, - pub _50pct_to_60pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_50pctTo60pctInProfit, - pub _40pct_to_50pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_40pctTo50pctInProfit, - pub _30pct_to_40pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_30pctTo40pctInProfit, - pub _20pct_to_30pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_20pctTo30pctInProfit, - pub _10pct_to_20pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_10pctTo20pctInProfit, - pub _0pct_to_10pct_in_profit: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_0pctTo10pctInProfit, - pub _0pct_to_10pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_0pctTo10pctInLoss, - pub _10pct_to_20pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_10pctTo20pctInLoss, - pub _20pct_to_30pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_20pctTo30pctInLoss, - pub _30pct_to_40pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_30pctTo40pctInLoss, - pub _40pct_to_50pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_40pctTo50pctInLoss, - pub _50pct_to_60pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_50pctTo60pctInLoss, - pub _60pct_to_70pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_60pctTo70pctInLoss, - pub _70pct_to_80pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_70pctTo80pctInLoss, - pub _80pct_to_90pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_80pctTo90pctInLoss, - pub _90pct_to_100pct_in_loss: - SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_90pctTo100pctInLoss, + pub over_1000pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_Over1000pctInProfit, + pub _500pct_to_1000pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_500pctTo1000pctInProfit, + pub _300pct_to_500pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_300pctTo500pctInProfit, + pub _200pct_to_300pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_200pctTo300pctInProfit, + pub _100pct_to_200pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_100pctTo200pctInProfit, + pub _90pct_to_100pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_90pctTo100pctInProfit, + pub _80pct_to_90pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_80pctTo90pctInProfit, + pub _70pct_to_80pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_70pctTo80pctInProfit, + pub _60pct_to_70pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_60pctTo70pctInProfit, + pub _50pct_to_60pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_50pctTo60pctInProfit, + pub _40pct_to_50pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_40pctTo50pctInProfit, + pub _30pct_to_40pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_30pctTo40pctInProfit, + pub _20pct_to_30pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_20pctTo30pctInProfit, + pub _10pct_to_20pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_10pctTo20pctInProfit, + pub _0pct_to_10pct_in_profit: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_0pctTo10pctInProfit, + pub _0pct_to_10pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_0pctTo10pctInLoss, + pub _10pct_to_20pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_10pctTo20pctInLoss, + pub _20pct_to_30pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_20pctTo30pctInLoss, + pub _30pct_to_40pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_30pctTo40pctInLoss, + pub _40pct_to_50pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_40pctTo50pctInLoss, + pub _50pct_to_60pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_50pctTo60pctInLoss, + pub _60pct_to_70pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_60pctTo70pctInLoss, + pub _70pct_to_80pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_70pctTo80pctInLoss, + pub _80pct_to_90pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_80pctTo90pctInLoss, + pub _90pct_to_100pct_in_loss: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_90pctTo100pctInLoss, } impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range { @@ -36286,18 +22763,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_Over1000 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_Over1000pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_1000pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_1000pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_1000pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_1000pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_1000pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_1000pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36312,18 +22780,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_500pctTo impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_500pctTo1000pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_500pct_to_1000pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_500pct_to_1000pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_500pct_to_1000pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_500pct_to_1000pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_500pct_to_1000pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_500pct_to_1000pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36338,18 +22797,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_300pctTo impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_300pctTo500pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_300pct_to_500pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_300pct_to_500pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_300pct_to_500pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_300pct_to_500pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_300pct_to_500pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_300pct_to_500pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36364,18 +22814,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_200pctTo impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_200pctTo300pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_200pct_to_300pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_200pct_to_300pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_200pct_to_300pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_200pct_to_300pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_200pct_to_300pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_200pct_to_300pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36390,18 +22831,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_100pctTo impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_100pctTo200pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_100pct_to_200pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_100pct_to_200pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_100pct_to_200pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_100pct_to_200pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_100pct_to_200pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_100pct_to_200pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36416,18 +22848,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_90pctTo1 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_90pctTo100pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36442,18 +22865,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_80pctTo9 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_80pctTo90pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36468,18 +22882,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_70pctTo8 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_70pctTo80pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36494,18 +22899,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_60pctTo7 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_60pctTo70pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36520,18 +22916,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_50pctTo6 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_50pctTo60pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36546,18 +22933,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_40pctTo5 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_40pctTo50pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36572,18 +22950,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_30pctTo4 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_30pctTo40pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36598,18 +22967,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_20pctTo3 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_20pctTo30pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36624,18 +22984,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_10pctTo2 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_10pctTo20pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36650,18 +23001,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_0pctTo10 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_0pctTo10pctInProfit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -36676,18 +23018,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_0pctTo10 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_0pctTo10pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_0pct_to_10pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_0pct_to_10pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36702,18 +23035,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_10pctTo2 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_10pctTo20pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_10pct_to_20pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_10pct_to_20pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36728,18 +23052,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_20pctTo3 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_20pctTo30pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_20pct_to_30pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_20pct_to_30pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36754,18 +23069,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_30pctTo4 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_30pctTo40pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_30pct_to_40pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_30pct_to_40pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36780,18 +23086,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_40pctTo5 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_40pctTo50pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_40pct_to_50pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_40pct_to_50pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36806,18 +23103,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_50pctTo6 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_50pctTo60pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_50pct_to_60pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_50pct_to_60pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36832,18 +23120,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_60pctTo7 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_60pctTo70pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_60pct_to_70pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_60pct_to_70pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36858,18 +23137,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_70pctTo8 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_70pctTo80pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_70pct_to_80pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_70pct_to_80pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36884,18 +23154,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_80pctTo9 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_80pctTo90pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_80pct_to_90pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_80pct_to_90pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36910,18 +23171,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_90pctTo1 impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Range_90pctTo100pctInLoss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_90pct_to_100pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_90pct_to_100pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -36947,62 +23199,20 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_All::new( - client.clone(), - format!("{base_path}_all"), - ), - _10pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_10pct::new( - client.clone(), - format!("{base_path}_10pct"), - ), - _20pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_20pct::new( - client.clone(), - format!("{base_path}_20pct"), - ), - _30pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_30pct::new( - client.clone(), - format!("{base_path}_30pct"), - ), - _40pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_40pct::new( - client.clone(), - format!("{base_path}_40pct"), - ), - _50pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_50pct::new( - client.clone(), - format!("{base_path}_50pct"), - ), - _60pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_60pct::new( - client.clone(), - format!("{base_path}_60pct"), - ), - _70pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_70pct::new( - client.clone(), - format!("{base_path}_70pct"), - ), - _80pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_80pct::new( - client.clone(), - format!("{base_path}_80pct"), - ), - _90pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_90pct::new( - client.clone(), - format!("{base_path}_90pct"), - ), - _100pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_100pct::new( - client.clone(), - format!("{base_path}_100pct"), - ), - _200pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_200pct::new( - client.clone(), - format!("{base_path}_200pct"), - ), - _300pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_300pct::new( - client.clone(), - format!("{base_path}_300pct"), - ), - _500pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_500pct::new( - client.clone(), - format!("{base_path}_500pct"), - ), + all: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_All::new(client.clone(), format!("{base_path}_all")), + _10pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_10pct::new(client.clone(), format!("{base_path}_10pct")), + _20pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_20pct::new(client.clone(), format!("{base_path}_20pct")), + _30pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_30pct::new(client.clone(), format!("{base_path}_30pct")), + _40pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_40pct::new(client.clone(), format!("{base_path}_40pct")), + _50pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_50pct::new(client.clone(), format!("{base_path}_50pct")), + _60pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_60pct::new(client.clone(), format!("{base_path}_60pct")), + _70pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_70pct::new(client.clone(), format!("{base_path}_70pct")), + _80pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_80pct::new(client.clone(), format!("{base_path}_80pct")), + _90pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_90pct::new(client.clone(), format!("{base_path}_90pct")), + _100pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_100pct::new(client.clone(), format!("{base_path}_100pct")), + _200pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_200pct::new(client.clone(), format!("{base_path}_200pct")), + _300pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_300pct::new(client.clone(), format!("{base_path}_300pct")), + _500pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_500pct::new(client.clone(), format!("{base_path}_500pct")), } } } @@ -37018,14 +23228,8 @@ impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_All { pub fn new(client: Arc, base_path: String) -> Self { Self { all: SeriesPattern1::new(client.clone(), "utxos_in_profit_unrealized_pnl".to_string()), - sth: SeriesPattern1::new( - client.clone(), - "utxos_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_in_profit_lth_unrealized_pnl".to_string(), - ), + sth: SeriesPattern1::new(client.clone(), "utxos_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37040,18 +23244,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_10pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_10pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37066,18 +23261,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_20pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_20pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37092,18 +23278,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_30pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_30pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37118,18 +23295,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_40pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_40pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37144,18 +23312,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_50pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_50pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37170,18 +23329,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_60pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_60pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37196,18 +23346,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_70pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_70pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37222,18 +23363,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_80pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_80pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37248,18 +23380,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_90pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_90pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_90pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_90pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_90pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_90pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_90pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_90pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37274,18 +23397,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_100pct impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_100pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_100pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_100pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_100pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_100pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_100pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_100pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37300,18 +23414,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_200pct impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_200pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_200pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_200pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_200pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_200pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_200pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_200pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37326,18 +23431,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_300pct impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_300pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_300pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_300pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_300pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_300pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_300pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_300pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37352,18 +23448,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_500pct impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Profit_500pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_500pct_in_profit_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_500pct_in_profit_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_500pct_in_profit_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_500pct_in_profit_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_500pct_in_profit_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_500pct_in_profit_lth_unrealized_pnl".to_string()), } } } @@ -37384,42 +23471,15 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_All::new( - client.clone(), - format!("{base_path}_all"), - ), - _10pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_10pct::new( - client.clone(), - format!("{base_path}_10pct"), - ), - _20pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_20pct::new( - client.clone(), - format!("{base_path}_20pct"), - ), - _30pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_30pct::new( - client.clone(), - format!("{base_path}_30pct"), - ), - _40pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_40pct::new( - client.clone(), - format!("{base_path}_40pct"), - ), - _50pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_50pct::new( - client.clone(), - format!("{base_path}_50pct"), - ), - _60pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_60pct::new( - client.clone(), - format!("{base_path}_60pct"), - ), - _70pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_70pct::new( - client.clone(), - format!("{base_path}_70pct"), - ), - _80pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_80pct::new( - client.clone(), - format!("{base_path}_80pct"), - ), + all: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_All::new(client.clone(), format!("{base_path}_all")), + _10pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_10pct::new(client.clone(), format!("{base_path}_10pct")), + _20pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_20pct::new(client.clone(), format!("{base_path}_20pct")), + _30pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_30pct::new(client.clone(), format!("{base_path}_30pct")), + _40pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_40pct::new(client.clone(), format!("{base_path}_40pct")), + _50pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_50pct::new(client.clone(), format!("{base_path}_50pct")), + _60pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_60pct::new(client.clone(), format!("{base_path}_60pct")), + _70pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_70pct::new(client.clone(), format!("{base_path}_70pct")), + _80pct: SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_80pct::new(client.clone(), format!("{base_path}_80pct")), } } } @@ -37435,14 +23495,8 @@ impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_All { pub fn new(client: Arc, base_path: String) -> Self { Self { all: SeriesPattern1::new(client.clone(), "utxos_in_loss_unrealized_pnl".to_string()), - sth: SeriesPattern1::new( - client.clone(), - "utxos_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_in_loss_lth_unrealized_pnl".to_string(), - ), + sth: SeriesPattern1::new(client.clone(), "utxos_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -37457,18 +23511,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_10pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_10pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_10pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_10pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -37483,18 +23528,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_20pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_20pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_20pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_20pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -37509,18 +23545,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_30pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_30pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_30pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_30pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -37535,18 +23562,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_40pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_40pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_40pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_40pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -37561,18 +23579,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_50pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_50pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_50pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_50pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -37587,18 +23596,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_60pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_60pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_60pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_60pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -37613,18 +23613,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_70pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_70pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_70pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_70pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -37639,18 +23630,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_80pct { impl SeriesTree_Cohorts_Cohorts_Profitability_UnrealizedPnl_Loss_80pct { pub fn new(client: Arc, base_path: String) -> Self { Self { - all: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_loss_unrealized_pnl".to_string(), - ), - sth: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_loss_sth_unrealized_pnl".to_string(), - ), - lth: SeriesPattern1::new( - client.clone(), - "utxos_over_80pct_in_loss_lth_unrealized_pnl".to_string(), - ), + all: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_loss_unrealized_pnl".to_string()), + sth: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_loss_sth_unrealized_pnl".to_string()), + lth: SeriesPattern1::new(client.clone(), "utxos_over_80pct_in_loss_lth_unrealized_pnl".to_string()), } } } @@ -37666,18 +23648,9 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_Nupl { impl SeriesTree_Cohorts_Cohorts_Profitability_Nupl { pub fn new(client: Arc, base_path: String) -> Self { Self { - range: SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Range::new( - client.clone(), - format!("{base_path}_range"), - ), - profit: SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Profit::new( - client.clone(), - format!("{base_path}_profit"), - ), - loss: SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Loss::new( - client.clone(), - format!("{base_path}_loss"), - ), + range: SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Range::new(client.clone(), format!("{base_path}_range")), + profit: SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Profit::new(client.clone(), format!("{base_path}_profit")), + loss: SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Loss::new(client.clone(), format!("{base_path}_loss")), height: SeriesPattern18::new(client.clone(), "profitability_nupl_ppm".to_string()), } } @@ -37715,106 +23688,31 @@ pub struct SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Range { impl SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Range { pub fn new(client: Arc, base_path: String) -> Self { Self { - over_1000pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_over_1000pct_in_profit_nupl".to_string(), - ), - _500pct_to_1000pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_500pct_to_1000pct_in_profit_nupl".to_string(), - ), - _300pct_to_500pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_300pct_to_500pct_in_profit_nupl".to_string(), - ), - _200pct_to_300pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_200pct_to_300pct_in_profit_nupl".to_string(), - ), - _100pct_to_200pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_100pct_to_200pct_in_profit_nupl".to_string(), - ), - _90pct_to_100pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_90pct_to_100pct_in_profit_nupl".to_string(), - ), - _80pct_to_90pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_80pct_to_90pct_in_profit_nupl".to_string(), - ), - _70pct_to_80pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_70pct_to_80pct_in_profit_nupl".to_string(), - ), - _60pct_to_70pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_60pct_to_70pct_in_profit_nupl".to_string(), - ), - _50pct_to_60pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_50pct_to_60pct_in_profit_nupl".to_string(), - ), - _40pct_to_50pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_40pct_to_50pct_in_profit_nupl".to_string(), - ), - _30pct_to_40pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_30pct_to_40pct_in_profit_nupl".to_string(), - ), - _20pct_to_30pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_20pct_to_30pct_in_profit_nupl".to_string(), - ), - _10pct_to_20pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_10pct_to_20pct_in_profit_nupl".to_string(), - ), - _0pct_to_10pct_in_profit: PpmRatioPattern::new( - client.clone(), - "utxos_0pct_to_10pct_in_profit_nupl".to_string(), - ), - _0pct_to_10pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_0pct_to_10pct_in_loss_nupl".to_string(), - ), - _10pct_to_20pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_10pct_to_20pct_in_loss_nupl".to_string(), - ), - _20pct_to_30pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_20pct_to_30pct_in_loss_nupl".to_string(), - ), - _30pct_to_40pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_30pct_to_40pct_in_loss_nupl".to_string(), - ), - _40pct_to_50pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_40pct_to_50pct_in_loss_nupl".to_string(), - ), - _50pct_to_60pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_50pct_to_60pct_in_loss_nupl".to_string(), - ), - _60pct_to_70pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_60pct_to_70pct_in_loss_nupl".to_string(), - ), - _70pct_to_80pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_70pct_to_80pct_in_loss_nupl".to_string(), - ), - _80pct_to_90pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_80pct_to_90pct_in_loss_nupl".to_string(), - ), - _90pct_to_100pct_in_loss: PpmRatioPattern::new( - client.clone(), - "utxos_90pct_to_100pct_in_loss_nupl".to_string(), - ), + over_1000pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_over_1000pct_in_profit_nupl".to_string()), + _500pct_to_1000pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_500pct_to_1000pct_in_profit_nupl".to_string()), + _300pct_to_500pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_300pct_to_500pct_in_profit_nupl".to_string()), + _200pct_to_300pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_200pct_to_300pct_in_profit_nupl".to_string()), + _100pct_to_200pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_100pct_to_200pct_in_profit_nupl".to_string()), + _90pct_to_100pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_90pct_to_100pct_in_profit_nupl".to_string()), + _80pct_to_90pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_80pct_to_90pct_in_profit_nupl".to_string()), + _70pct_to_80pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_70pct_to_80pct_in_profit_nupl".to_string()), + _60pct_to_70pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_60pct_to_70pct_in_profit_nupl".to_string()), + _50pct_to_60pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_50pct_to_60pct_in_profit_nupl".to_string()), + _40pct_to_50pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_40pct_to_50pct_in_profit_nupl".to_string()), + _30pct_to_40pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_30pct_to_40pct_in_profit_nupl".to_string()), + _20pct_to_30pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_20pct_to_30pct_in_profit_nupl".to_string()), + _10pct_to_20pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_10pct_to_20pct_in_profit_nupl".to_string()), + _0pct_to_10pct_in_profit: PpmRatioPattern::new(client.clone(), "utxos_0pct_to_10pct_in_profit_nupl".to_string()), + _0pct_to_10pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_0pct_to_10pct_in_loss_nupl".to_string()), + _10pct_to_20pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_10pct_to_20pct_in_loss_nupl".to_string()), + _20pct_to_30pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_20pct_to_30pct_in_loss_nupl".to_string()), + _30pct_to_40pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_30pct_to_40pct_in_loss_nupl".to_string()), + _40pct_to_50pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_40pct_to_50pct_in_loss_nupl".to_string()), + _50pct_to_60pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_50pct_to_60pct_in_loss_nupl".to_string()), + _60pct_to_70pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_60pct_to_70pct_in_loss_nupl".to_string()), + _70pct_to_80pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_70pct_to_80pct_in_loss_nupl".to_string()), + _80pct_to_90pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_80pct_to_90pct_in_loss_nupl".to_string()), + _90pct_to_100pct_in_loss: PpmRatioPattern::new(client.clone(), "utxos_90pct_to_100pct_in_loss_nupl".to_string()), } } } @@ -37841,58 +23739,19 @@ impl SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Profit { pub fn new(client: Arc, base_path: String) -> Self { Self { all: PpmRatioPattern::new(client.clone(), "utxos_in_profit_nupl".to_string()), - _10pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_10pct_in_profit_nupl".to_string(), - ), - _20pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_20pct_in_profit_nupl".to_string(), - ), - _30pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_30pct_in_profit_nupl".to_string(), - ), - _40pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_40pct_in_profit_nupl".to_string(), - ), - _50pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_50pct_in_profit_nupl".to_string(), - ), - _60pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_60pct_in_profit_nupl".to_string(), - ), - _70pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_70pct_in_profit_nupl".to_string(), - ), - _80pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_80pct_in_profit_nupl".to_string(), - ), - _90pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_90pct_in_profit_nupl".to_string(), - ), - _100pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_100pct_in_profit_nupl".to_string(), - ), - _200pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_200pct_in_profit_nupl".to_string(), - ), - _300pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_300pct_in_profit_nupl".to_string(), - ), - _500pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_500pct_in_profit_nupl".to_string(), - ), + _10pct: PpmRatioPattern::new(client.clone(), "utxos_over_10pct_in_profit_nupl".to_string()), + _20pct: PpmRatioPattern::new(client.clone(), "utxos_over_20pct_in_profit_nupl".to_string()), + _30pct: PpmRatioPattern::new(client.clone(), "utxos_over_30pct_in_profit_nupl".to_string()), + _40pct: PpmRatioPattern::new(client.clone(), "utxos_over_40pct_in_profit_nupl".to_string()), + _50pct: PpmRatioPattern::new(client.clone(), "utxos_over_50pct_in_profit_nupl".to_string()), + _60pct: PpmRatioPattern::new(client.clone(), "utxos_over_60pct_in_profit_nupl".to_string()), + _70pct: PpmRatioPattern::new(client.clone(), "utxos_over_70pct_in_profit_nupl".to_string()), + _80pct: PpmRatioPattern::new(client.clone(), "utxos_over_80pct_in_profit_nupl".to_string()), + _90pct: PpmRatioPattern::new(client.clone(), "utxos_over_90pct_in_profit_nupl".to_string()), + _100pct: PpmRatioPattern::new(client.clone(), "utxos_over_100pct_in_profit_nupl".to_string()), + _200pct: PpmRatioPattern::new(client.clone(), "utxos_over_200pct_in_profit_nupl".to_string()), + _300pct: PpmRatioPattern::new(client.clone(), "utxos_over_300pct_in_profit_nupl".to_string()), + _500pct: PpmRatioPattern::new(client.clone(), "utxos_over_500pct_in_profit_nupl".to_string()), } } } @@ -37914,38 +23773,14 @@ impl SeriesTree_Cohorts_Cohorts_Profitability_Nupl_Loss { pub fn new(client: Arc, base_path: String) -> Self { Self { all: PpmRatioPattern::new(client.clone(), "utxos_in_loss_nupl".to_string()), - _10pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_10pct_in_loss_nupl".to_string(), - ), - _20pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_20pct_in_loss_nupl".to_string(), - ), - _30pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_30pct_in_loss_nupl".to_string(), - ), - _40pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_40pct_in_loss_nupl".to_string(), - ), - _50pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_50pct_in_loss_nupl".to_string(), - ), - _60pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_60pct_in_loss_nupl".to_string(), - ), - _70pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_70pct_in_loss_nupl".to_string(), - ), - _80pct: PpmRatioPattern::new( - client.clone(), - "utxos_over_80pct_in_loss_nupl".to_string(), - ), + _10pct: PpmRatioPattern::new(client.clone(), "utxos_over_10pct_in_loss_nupl".to_string()), + _20pct: PpmRatioPattern::new(client.clone(), "utxos_over_20pct_in_loss_nupl".to_string()), + _30pct: PpmRatioPattern::new(client.clone(), "utxos_over_30pct_in_loss_nupl".to_string()), + _40pct: PpmRatioPattern::new(client.clone(), "utxos_over_40pct_in_loss_nupl".to_string()), + _50pct: PpmRatioPattern::new(client.clone(), "utxos_over_50pct_in_loss_nupl".to_string()), + _60pct: PpmRatioPattern::new(client.clone(), "utxos_over_60pct_in_loss_nupl".to_string()), + _70pct: PpmRatioPattern::new(client.clone(), "utxos_over_70pct_in_loss_nupl".to_string()), + _80pct: PpmRatioPattern::new(client.clone(), "utxos_over_80pct_in_loss_nupl".to_string()), } } } @@ -37958,10 +23793,7 @@ pub struct SeriesTree_Cointime { impl SeriesTree_Cointime { pub fn new(client: Arc, base_path: String) -> Self { Self { - activity: SeriesTree_Cointime_Activity::new( - client.clone(), - format!("{base_path}_activity"), - ), + activity: SeriesTree_Cointime_Activity::new(client.clone(), format!("{base_path}_activity")), } } } @@ -37974,10 +23806,7 @@ pub struct SeriesTree_Cointime_Activity { impl SeriesTree_Cointime_Activity { pub fn new(client: Arc, base_path: String) -> Self { Self { - coinblocks_destroyed: AverageBlockCumulativeSumPattern::new( - client.clone(), - "coinblocks_destroyed".to_string(), - ), + coinblocks_destroyed: AverageBlockCumulativeSumPattern::new(client.clone(), "coinblocks_destroyed".to_string()), } } } @@ -38022,26 +23851,20 @@ impl BrkClient { /// .last(10) /// .json::()?; /// ``` - pub fn series_endpoint( - &self, - series: impl Into, - index: Index, - ) -> SeriesEndpoint { - SeriesEndpoint::new(self.base.clone(), Arc::from(series.into().as_str()), index) + pub fn series_endpoint(&self, series: impl Into, index: Index) -> SeriesEndpoint { + SeriesEndpoint::new( + self.base.clone(), + Arc::from(series.into().as_str()), + index, + ) } /// Create a dynamic date-based series endpoint builder. /// /// Returns `Err` if the index is not date-based. - pub fn date_series_endpoint( - &self, - series: impl Into, - index: Index, - ) -> Result> { + pub fn date_series_endpoint(&self, series: impl Into, index: Index) -> Result> { if !index.is_date_based() { - return Err(BrkError { - message: format!("{} is not a date-based index", index.name()), - }); + return Err(BrkError { message: format!("{} is not a date-based index", index.name()) }); } Ok(DateSeriesEndpoint::new( self.base.clone(), @@ -38066,23 +23889,14 @@ impl BrkClient { } /// Fetch address hash-prefix matches from raw payload bytes matching `addr_type` length. - pub fn get_address_payload_hash_prefix_matches( - &self, - addr_type: OutputType, - payload: &[u8], - nibbles: usize, - ) -> Result { + pub fn get_address_payload_hash_prefix_matches(&self, addr_type: OutputType, payload: &[u8], nibbles: usize) -> Result { validate_address_payload_for_type(addr_type, payload)?; let prefix = address_payload_hash_prefix(payload, nibbles)?; self.get_address_hash_prefix_matches(addr_type, &prefix) } /// Fetch address hash-prefix matches for a mainnet Bitcoin address. - pub fn get_address_hash_prefix_matches_for_address( - &self, - address: &str, - nibbles: usize, - ) -> Result { + pub fn get_address_hash_prefix_matches_for_address(&self, address: &str, nibbles: usize) -> Result { let hashed = address_hash_prefix(address, nibbles)?; self.get_address_hash_prefix_matches(hashed.addr_type, &hashed.prefix) } @@ -38157,17 +23971,9 @@ impl BrkClient { /// Endpoint: `GET /api/series/list` pub fn list_series(&self, page: Option, per_page: Option) -> Result { let mut query = Vec::new(); - if let Some(v) = page { - query.push(format!("page={}", v)); - } - if let Some(v) = per_page { - query.push(format!("per_page={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + if let Some(v) = page { query.push(format!("page={}", v)); } + if let Some(v) = per_page { query.push(format!("per_page={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/series/list{}", query_str); self.base.get_json(&path) } @@ -38180,14 +23986,8 @@ impl BrkClient { pub fn search_series(&self, q: SeriesName, limit: Option) -> Result> { let mut query = Vec::new(); query.push(format!("q={}", q)); - if let Some(v) = limit { - query.push(format!("limit={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + if let Some(v) = limit { query.push(format!("limit={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/series/search{}", query_str); self.base.get_json(&path) } @@ -38206,33 +24006,13 @@ impl BrkClient { /// Fetch data for a specific series at the given index. Use query parameters to filter by date range and format (json/csv). /// /// Endpoint: `GET /api/series/{series}/{index}` - pub fn get_series( - &self, - series: SeriesName, - index: Index, - start: Option, - end: Option, - limit: Option, - format: Option, - ) -> Result> { + pub fn get_series(&self, series: SeriesName, index: Index, start: Option, end: Option, limit: Option, format: Option) -> Result> { let mut query = Vec::new(); - if let Some(v) = start { - query.push(format!("start={}", v)); - } - if let Some(v) = end { - query.push(format!("end={}", v)); - } - if let Some(v) = limit { - query.push(format!("limit={}", v)); - } - if let Some(v) = format { - query.push(format!("format={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + if let Some(v) = start { query.push(format!("start={}", v)); } + if let Some(v) = end { query.push(format!("end={}", v)); } + if let Some(v) = limit { query.push(format!("limit={}", v)); } + if let Some(v) = format { query.push(format!("format={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/series/{series}/{}{}", index.name(), query_str); if format == Some(Format::CSV) { self.base.get_text(&path).map(FormatResponse::Csv) @@ -38246,33 +24026,13 @@ impl BrkClient { /// Returns just the data array without the SeriesData wrapper. Supports the same range and format parameters as `GET /api/series/{series}/{index}`. /// /// Endpoint: `GET /api/series/{series}/{index}/data` - pub fn get_series_data( - &self, - series: SeriesName, - index: Index, - start: Option, - end: Option, - limit: Option, - format: Option, - ) -> Result>> { + pub fn get_series_data(&self, series: SeriesName, index: Index, start: Option, end: Option, limit: Option, format: Option) -> Result>> { let mut query = Vec::new(); - if let Some(v) = start { - query.push(format!("start={}", v)); - } - if let Some(v) = end { - query.push(format!("end={}", v)); - } - if let Some(v) = limit { - query.push(format!("limit={}", v)); - } - if let Some(v) = format { - query.push(format!("format={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + if let Some(v) = start { query.push(format!("start={}", v)); } + if let Some(v) = end { query.push(format!("end={}", v)); } + if let Some(v) = limit { query.push(format!("limit={}", v)); } + if let Some(v) = format { query.push(format!("format={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/series/{series}/{}/data{}", index.name(), query_str); if format == Some(Format::CSV) { self.base.get_text(&path).map(FormatResponse::Csv) @@ -38287,8 +24047,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/series/{series}/{index}/latest` pub fn get_series_latest(&self, series: SeriesName, index: Index) -> Result { - self.base - .get_json(&format!("/api/series/{series}/{}/latest", index.name())) + self.base.get_json(&format!("/api/series/{series}/{}/latest", index.name())) } /// Get series data length @@ -38297,8 +24056,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/series/{series}/{index}/len` pub fn get_series_len(&self, series: SeriesName, index: Index) -> Result { - self.base - .get_json(&format!("/api/series/{series}/{}/len", index.name())) + self.base.get_json(&format!("/api/series/{series}/{}/len", index.name())) } /// Get series version @@ -38307,8 +24065,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/series/{series}/{index}/version` pub fn get_series_version(&self, series: SeriesName, index: Index) -> Result { - self.base - .get_json(&format!("/api/series/{series}/{}/version", index.name())) + self.base.get_json(&format!("/api/series/{series}/{}/version", index.name())) } /// Bulk series data @@ -38316,35 +24073,15 @@ impl BrkClient { /// Fetch multiple series in a single request. Supports filtering by index and date range. Returns an array of SeriesData objects. For a single series, use `get_series` instead. /// /// Endpoint: `GET /api/series/bulk` - pub fn get_series_bulk( - &self, - series: SeriesList, - index: Index, - start: Option, - end: Option, - limit: Option, - format: Option, - ) -> Result>> { + pub fn get_series_bulk(&self, series: SeriesList, index: Index, start: Option, end: Option, limit: Option, format: Option) -> Result>> { let mut query = Vec::new(); query.push(format!("series={}", series)); query.push(format!("index={}", index)); - if let Some(v) = start { - query.push(format!("start={}", v)); - } - if let Some(v) = end { - query.push(format!("end={}", v)); - } - if let Some(v) = limit { - query.push(format!("limit={}", v)); - } - if let Some(v) = format { - query.push(format!("format={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + if let Some(v) = start { query.push(format!("start={}", v)); } + if let Some(v) = end { query.push(format!("end={}", v)); } + if let Some(v) = limit { query.push(format!("limit={}", v)); } + if let Some(v) = format { query.push(format!("format={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/series/bulk{}", query_str); if format == Some(Format::CSV) { self.base.get_text(&path).map(FormatResponse::Csv) @@ -38369,14 +24106,8 @@ impl BrkClient { /// Endpoint: `GET /api/urpd/{cohort}/dates` pub fn list_urpd_dates(&self, cohort: Cohort, weight: Option) -> Result> { let mut query = Vec::new(); - if let Some(v) = weight { - query.push(format!("weight={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + if let Some(v) = weight { query.push(format!("weight={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/urpd/{cohort}/dates{}", query_str); self.base.get_json(&path) } @@ -38386,24 +24117,11 @@ impl BrkClient { /// URPD for the most recent available date in the cohort. The response's `date` field echoes which date was served. Returns `{ cohort, date, weight, aggregation, close, total_supply, buckets }`. `close` and each bucket's `price_floor`, `realized_cap`, and `unrealized_pnl` are USD; `total_supply` and bucket `supply` are BTC. `unrealized_pnl` can be negative. /// /// Endpoint: `GET /api/urpd/{cohort}` - pub fn get_urpd( - &self, - cohort: Cohort, - agg: Option, - weight: Option, - ) -> Result { + pub fn get_urpd(&self, cohort: Cohort, agg: Option, weight: Option) -> Result { let mut query = Vec::new(); - if let Some(v) = agg { - query.push(format!("agg={}", v)); - } - if let Some(v) = weight { - query.push(format!("weight={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + if let Some(v) = agg { query.push(format!("agg={}", v)); } + if let Some(v) = weight { query.push(format!("weight={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/urpd/{cohort}{}", query_str); self.base.get_json(&path) } @@ -38413,25 +24131,11 @@ impl BrkClient { /// URPD for a (cohort, date) pair. Returns `{ cohort, date, weight, aggregation, close, total_supply, buckets }` where each bucket is `{ price_floor, supply, realized_cap, unrealized_pnl }`. `close`, `price_floor`, `realized_cap`, and `unrealized_pnl` are USD; `total_supply` and `supply` are BTC. `unrealized_pnl` can be negative. /// /// Endpoint: `GET /api/urpd/{cohort}/{date}` - pub fn get_urpd_at( - &self, - cohort: Cohort, - date: &str, - agg: Option, - weight: Option, - ) -> Result { + pub fn get_urpd_at(&self, cohort: Cohort, date: &str, agg: Option, weight: Option) -> Result { let mut query = Vec::new(); - if let Some(v) = agg { - query.push(format!("agg={}", v)); - } - if let Some(v) = weight { - query.push(format!("weight={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + if let Some(v) = agg { query.push(format!("agg={}", v)); } + if let Some(v) = weight { query.push(format!("weight={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/urpd/{cohort}/{date}{}", query_str); self.base.get_json(&path) } @@ -38444,8 +24148,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/difficulty-adjustment` pub fn get_difficulty_adjustment(&self) -> Result { - self.base - .get_json(&format!("/api/v1/difficulty-adjustment")) + self.base.get_json(&format!("/api/v1/difficulty-adjustment")) } /// Current BTC price @@ -38468,14 +24171,8 @@ impl BrkClient { /// Endpoint: `GET /api/v1/historical-price` pub fn get_historical_price(&self, timestamp: Option) -> Result { let mut query = Vec::new(); - if let Some(v) = timestamp { - query.push(format!("timestamp={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + if let Some(v) = timestamp { query.push(format!("timestamp={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/v1/historical-price{}", query_str); self.base.get_json(&path) } @@ -38485,13 +24182,8 @@ impl BrkClient { /// Find addresses by address type and by the first 1-16 hex nibbles of RapidHash v3 over the raw address payload bytes. Intended for privacy-preserving client-side wallet discovery without sending raw addresses or xpubs. Fetch metadata with `GET /api/address/{address}`. /// /// Endpoint: `GET /api/address/hash-prefix/{addr_type}/{prefix}` - pub fn get_address_hash_prefix_matches( - &self, - addr_type: OutputType, - prefix: &str, - ) -> Result { - self.base - .get_json(&format!("/api/address/hash-prefix/{addr_type}/{prefix}")) + pub fn get_address_hash_prefix_matches(&self, addr_type: OutputType, prefix: &str) -> Result { + self.base.get_json(&format!("/api/address/hash-prefix/{addr_type}/{prefix}")) } /// Address information @@ -38524,8 +24216,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/address/{address}/txs/chain` pub fn get_address_confirmed_txs(&self, address: Addr) -> Result> { - self.base - .get_json(&format!("/api/address/{address}/txs/chain")) + self.base.get_json(&format!("/api/address/{address}/txs/chain")) } /// Address confirmed transactions (paginated) @@ -38535,13 +24226,8 @@ impl BrkClient { /// *[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-chain)* /// /// Endpoint: `GET /api/address/{address}/txs/chain/{after_txid}` - pub fn get_address_confirmed_txs_after( - &self, - address: Addr, - after_txid: Txid, - ) -> Result> { - self.base - .get_json(&format!("/api/address/{address}/txs/chain/{after_txid}")) + pub fn get_address_confirmed_txs_after(&self, address: Addr, after_txid: Txid) -> Result> { + self.base.get_json(&format!("/api/address/{address}/txs/chain/{after_txid}")) } /// Address mempool transactions @@ -38552,8 +24238,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/address/{address}/txs/mempool` pub fn get_address_mempool_txs(&self, address: Addr) -> Result> { - self.base - .get_json(&format!("/api/address/{address}/txs/mempool")) + self.base.get_json(&format!("/api/address/{address}/txs/mempool")) } /// Address UTXOs @@ -38575,8 +24260,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/validate-address/{address}` pub fn validate_address(&self, address: &str) -> Result { - self.base - .get_json(&format!("/api/v1/validate-address/{address}")) + self.base.get_json(&format!("/api/v1/validate-address/{address}")) } /// Block information @@ -38631,8 +24315,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/blocks/timestamp/{timestamp}` pub fn get_block_by_timestamp(&self, timestamp: Timestamp) -> Result { - self.base - .get_json(&format!("/api/v1/mining/blocks/timestamp/{timestamp}")) + self.base.get_json(&format!("/api/v1/mining/blocks/timestamp/{timestamp}")) } /// Raw block @@ -38687,8 +24370,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/block/{hash}/txid/{index}` pub fn get_block_txid(&self, hash: BlockHash, index: BlockTxIndex) -> Result { - self.base - .get_text(&format!("/api/block/{hash}/txid/{index}")) + self.base.get_text(&format!("/api/block/{hash}/txid/{index}")) } /// Block transaction IDs @@ -38720,13 +24402,8 @@ impl BrkClient { /// *[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transactions)* /// /// Endpoint: `GET /api/block/{hash}/txs/{start_index}` - pub fn get_block_txs_from_index( - &self, - hash: BlockHash, - start_index: BlockTxIndex, - ) -> Result> { - self.base - .get_json(&format!("/api/block/{hash}/txs/{start_index}")) + pub fn get_block_txs_from_index(&self, hash: BlockHash, start_index: BlockTxIndex) -> Result> { + self.base.get_json(&format!("/api/block/{hash}/txs/{start_index}")) } /// Recent blocks @@ -38792,8 +24469,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/pools/{time_period}` pub fn get_pool_stats(&self, time_period: TimePeriod) -> Result { - self.base - .get_json(&format!("/api/v1/mining/pools/{time_period}")) + self.base.get_json(&format!("/api/v1/mining/pools/{time_period}")) } /// Mining pool details @@ -38815,8 +24491,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/hashrate/pools` pub fn get_pools_hashrate(&self) -> Result> { - self.base - .get_json(&format!("/api/v1/mining/hashrate/pools")) + self.base.get_json(&format!("/api/v1/mining/hashrate/pools")) } /// All pools hashrate @@ -38826,12 +24501,8 @@ impl BrkClient { /// *[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrates)* /// /// Endpoint: `GET /api/v1/mining/hashrate/pools/{time_period}` - pub fn get_pools_hashrate_by_period( - &self, - time_period: TimePeriod, - ) -> Result> { - self.base - .get_json(&format!("/api/v1/mining/hashrate/pools/{time_period}")) + pub fn get_pools_hashrate_by_period(&self, time_period: TimePeriod) -> Result> { + self.base.get_json(&format!("/api/v1/mining/hashrate/pools/{time_period}")) } /// Mining pool hashrate @@ -38842,8 +24513,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/pool/{slug}/hashrate` pub fn get_pool_hashrate(&self, slug: PoolSlug) -> Result> { - self.base - .get_json(&format!("/api/v1/mining/pool/{slug}/hashrate")) + self.base.get_json(&format!("/api/v1/mining/pool/{slug}/hashrate")) } /// Mining pool blocks @@ -38854,8 +24524,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/pool/{slug}/blocks` pub fn get_pool_blocks(&self, slug: PoolSlug) -> Result> { - self.base - .get_json(&format!("/api/v1/mining/pool/{slug}/blocks")) + self.base.get_json(&format!("/api/v1/mining/pool/{slug}/blocks")) } /// Mining pool blocks from height @@ -38866,8 +24535,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/pool/{slug}/blocks/{height}` pub fn get_pool_blocks_from(&self, slug: PoolSlug, height: Height) -> Result> { - self.base - .get_json(&format!("/api/v1/mining/pool/{slug}/blocks/{height}")) + self.base.get_json(&format!("/api/v1/mining/pool/{slug}/blocks/{height}")) } /// Network hashrate (all time) @@ -38889,8 +24557,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/hashrate/{time_period}` pub fn get_hashrate_by_period(&self, time_period: TimePeriod) -> Result { - self.base - .get_json(&format!("/api/v1/mining/hashrate/{time_period}")) + self.base.get_json(&format!("/api/v1/mining/hashrate/{time_period}")) } /// Difficulty adjustments (all time) @@ -38901,8 +24568,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/difficulty-adjustments` pub fn get_difficulty_adjustments(&self) -> Result> { - self.base - .get_json(&format!("/api/v1/mining/difficulty-adjustments")) + self.base.get_json(&format!("/api/v1/mining/difficulty-adjustments")) } /// Difficulty adjustments @@ -38912,13 +24578,8 @@ impl BrkClient { /// *[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustments)* /// /// Endpoint: `GET /api/v1/mining/difficulty-adjustments/{time_period}` - pub fn get_difficulty_adjustments_by_period( - &self, - time_period: TimePeriod, - ) -> Result> { - self.base.get_json(&format!( - "/api/v1/mining/difficulty-adjustments/{time_period}" - )) + pub fn get_difficulty_adjustments_by_period(&self, time_period: TimePeriod) -> Result> { + self.base.get_json(&format!("/api/v1/mining/difficulty-adjustments/{time_period}")) } /// Mining reward statistics @@ -38929,8 +24590,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/reward-stats/{block_count}` pub fn get_reward_stats(&self, block_count: i64) -> Result { - self.base - .get_json(&format!("/api/v1/mining/reward-stats/{block_count}")) + self.base.get_json(&format!("/api/v1/mining/reward-stats/{block_count}")) } /// Block fees @@ -38941,8 +24601,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/blocks/fees/{time_period}` pub fn get_block_fees(&self, time_period: TimePeriod) -> Result> { - self.base - .get_json(&format!("/api/v1/mining/blocks/fees/{time_period}")) + self.base.get_json(&format!("/api/v1/mining/blocks/fees/{time_period}")) } /// Block rewards @@ -38953,8 +24612,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/blocks/rewards/{time_period}` pub fn get_block_rewards(&self, time_period: TimePeriod) -> Result> { - self.base - .get_json(&format!("/api/v1/mining/blocks/rewards/{time_period}")) + self.base.get_json(&format!("/api/v1/mining/blocks/rewards/{time_period}")) } /// Block fee rates @@ -38965,8 +24623,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/blocks/fee-rates/{time_period}` pub fn get_block_fee_rates(&self, time_period: TimePeriod) -> Result> { - self.base - .get_json(&format!("/api/v1/mining/blocks/fee-rates/{time_period}")) + self.base.get_json(&format!("/api/v1/mining/blocks/fee-rates/{time_period}")) } /// Block sizes and weights @@ -38977,9 +24634,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mining/blocks/sizes-weights/{time_period}` pub fn get_block_sizes_weights(&self, time_period: TimePeriod) -> Result { - self.base.get_json(&format!( - "/api/v1/mining/blocks/sizes-weights/{time_period}" - )) + self.base.get_json(&format!("/api/v1/mining/blocks/sizes-weights/{time_period}")) } /// Projected mempool blocks @@ -39085,8 +24740,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mempool/block-template` pub fn get_block_template(&self) -> Result { - self.base - .get_json(&format!("/api/v1/mempool/block-template")) + self.base.get_json(&format!("/api/v1/mempool/block-template")) } /// Block template diff since hash @@ -39095,8 +24749,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/v1/mempool/block-template/diff/{hash}` pub fn get_block_template_diff(&self, hash: NextBlockHash) -> Result { - self.base - .get_json(&format!("/api/v1/mempool/block-template/diff/{hash}")) + self.base.get_json(&format!("/api/v1/mempool/block-template/diff/{hash}")) } /// Live BTC/USD price @@ -39123,8 +24776,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/oracle/histogram/payments/live` pub fn get_oracle_histogram_payments_live(&self) -> Result> { - self.base - .get_json(&format!("/api/oracle/histogram/payments/live")) + self.base.get_json(&format!("/api/oracle/histogram/payments/live")) } /// Payment output histogram at height or day @@ -39133,8 +24785,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/oracle/histogram/payments/{point}` pub fn get_oracle_histogram_payments(&self, point: &str) -> Result> { - self.base - .get_json(&format!("/api/oracle/histogram/payments/{point}")) + self.base.get_json(&format!("/api/oracle/histogram/payments/{point}")) } /// Live output value histogram @@ -39143,8 +24794,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/oracle/histogram/outputs/live` pub fn get_oracle_histogram_outputs_live(&self) -> Result> { - self.base - .get_json(&format!("/api/oracle/histogram/outputs/live")) + self.base.get_json(&format!("/api/oracle/histogram/outputs/live")) } /// Output value histogram at height or day @@ -39153,8 +24803,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/oracle/histogram/outputs/{point}` pub fn get_oracle_histogram_outputs(&self, point: &str) -> Result> { - self.base - .get_json(&format!("/api/oracle/histogram/outputs/{point}")) + self.base.get_json(&format!("/api/oracle/histogram/outputs/{point}")) } /// Txid by index @@ -39218,8 +24867,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/tx/{txid}/merkleblock-proof` pub fn get_tx_merkleblock_proof(&self, txid: Txid) -> Result { - self.base - .get_text(&format!("/api/tx/{txid}/merkleblock-proof")) + self.base.get_text(&format!("/api/tx/{txid}/merkleblock-proof")) } /// Transaction merkle proof @@ -39241,8 +24889,7 @@ impl BrkClient { /// /// Endpoint: `GET /api/tx/{txid}/outspend/{vout}` pub fn get_tx_outspend(&self, txid: Txid, vout: Vout) -> Result { - self.base - .get_json(&format!("/api/tx/{txid}/outspend/{vout}")) + self.base.get_json(&format!("/api/tx/{txid}/outspend/{vout}")) } /// All output spend statuses @@ -39287,14 +24934,8 @@ impl BrkClient { /// Endpoint: `GET /api/v1/transaction-times` pub fn get_transaction_times(&self, txId: &[Txid]) -> Result> { let mut query = Vec::new(); - for v in txId { - query.push(format!("txId[]={}", v)); - } - let query_str = if query.is_empty() { - String::new() - } else { - format!("?{}", query.join("&")) - }; + for v in txId { query.push(format!("txId[]={}", v)); } + let query_str = if query.is_empty() { String::new() } else { format!("?{}", query.join("&")) }; let path = format!("/api/v1/transaction-times{}", query_str); self.base.get_json(&path) } @@ -39327,4 +24968,5 @@ impl BrkClient { pub fn get_api(&self) -> Result { self.base.get_json(&format!("/api.json")) } + } diff --git a/crates/brk_computer/src/distribution/addr/activity/block_counts.rs b/crates/brk_computer/src/distribution/addr/activity/block_counts.rs index af15aeda5..f9cba730d 100644 --- a/crates/brk_computer/src/distribution/addr/activity/block_counts.rs +++ b/crates/brk_computer/src/distribution/addr/activity/block_counts.rs @@ -9,12 +9,12 @@ pub struct BlockActivityCounts { impl BlockActivityCounts { #[inline] - pub(crate) fn reset(&mut self) { + pub fn reset(&mut self) { *self = Self::default(); } #[inline(always)] - pub(crate) fn active(&self) -> u32 { + pub fn active(&self) -> u32 { debug_assert!(self.bidirectional <= self.sending.min(self.receiving)); self.sending + self.receiving - self.bidirectional } diff --git a/crates/brk_computer/src/distribution/addr/activity/by_type.rs b/crates/brk_computer/src/distribution/addr/activity/by_type.rs index 6a17966fa..d05ec1411 100644 --- a/crates/brk_computer/src/distribution/addr/activity/by_type.rs +++ b/crates/brk_computer/src/distribution/addr/activity/by_type.rs @@ -10,16 +10,16 @@ use super::BlockActivityCounts; pub struct AddrTypeToActivityCounts(pub ByAddrType); impl AddrTypeToActivityCounts { - pub(crate) fn reset(&mut self) { + pub fn reset(&mut self) { self.0.values_mut().for_each(BlockActivityCounts::reset); } - pub(crate) fn active(&self) -> u32 { + pub fn active(&self) -> u32 { self.0.values().map(BlockActivityCounts::active).sum() } #[inline(always)] - pub(super) fn row( + pub fn row( &self, value: impl Fn(&BlockActivityCounts) -> u32, ) -> ::Row { diff --git a/crates/brk_computer/src/distribution/addr/activity/vecs.rs b/crates/brk_computer/src/distribution/addr/activity/vecs.rs index fcd3fb043..3b3cd345c 100644 --- a/crates/brk_computer/src/distribution/addr/activity/vecs.rs +++ b/crates/brk_computer/src/distribution/addr/activity/vecs.rs @@ -41,7 +41,7 @@ pub struct AddrActivityVecs { } impl AddrActivityVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, @@ -129,7 +129,7 @@ impl AddrActivityVecs { }) } - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { [ self.cumulative_reactivated.cumulative.len(), self.cumulative_sending.cumulative.len(), @@ -142,9 +142,7 @@ impl AddrActivityVecs { .unwrap_or_default() } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { [ self.cumulative_reactivated.stored_mut(), self.cumulative_sending.stored_mut(), @@ -155,7 +153,7 @@ impl AddrActivityVecs { .into_par_iter() } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.cumulative_reactivated.reset()?; self.cumulative_sending.reset()?; self.cumulative_receiving.reset()?; @@ -165,7 +163,7 @@ impl AddrActivityVecs { } #[inline(always)] - pub(crate) fn push_height(&mut self, counts: &AddrTypeToActivityCounts) { + pub fn push_height(&mut self, counts: &AddrTypeToActivityCounts) { self.cumulative_reactivated .push_block(counts.row(|counts| counts.reactivated)); self.cumulative_sending diff --git a/crates/brk_computer/src/distribution/addr/avg_amount.rs b/crates/brk_computer/src/distribution/addr/avg_amount.rs index d44af09c8..d7241a23e 100644 --- a/crates/brk_computer/src/distribution/addr/avg_amount.rs +++ b/crates/brk_computer/src/distribution/addr/avg_amount.rs @@ -9,7 +9,7 @@ use vecdb::{ }; use crate::{ - distribution::AllChainCache, + distribution::AllChainSources, indexes, internal::{ ColumnarPerBlock, LazyColumnSpotValuePerBlock, LazySpotValuePerBlock, WithAddrTypes, @@ -27,12 +27,12 @@ pub struct AvgAmountVecs { } impl AvgAmountVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, spot_price: &CachedBoxedVec, - all_chain: &AllChainCache, + all_chain: &AllChainSources, utxo_count: &(impl ReadableCloneableVec + 'static), funded_addr_count: &(impl ReadableCloneableVec + 'static), ) -> Result { @@ -101,20 +101,18 @@ impl AvgAmountVecs { }) } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { rayon::iter::once(self.utxo_source.stored_mut()) .chain(rayon::iter::once(self.addr_source.stored_mut())) } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.utxo_source.height.reset()?; self.addr_source.height.reset()?; Ok(()) } - pub(crate) fn compute( + pub fn compute( &mut self, supply_sats: &ByAddrType<&impl ReadableVec>, utxo_count: &ByAddrType<&impl ReadableVec>, diff --git a/crates/brk_computer/src/distribution/addr/count/all_vecs.rs b/crates/brk_computer/src/distribution/addr/count/all_vecs.rs index d14da93e5..24583514b 100644 --- a/crates/brk_computer/src/distribution/addr/count/all_vecs.rs +++ b/crates/brk_computer/src/distribution/addr/count/all_vecs.rs @@ -28,7 +28,7 @@ pub struct AddrCountsVecs( ); impl AddrCountsVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, name: &str, version: Version, @@ -42,23 +42,21 @@ impl AddrCountsVecs { )?)) } - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { self.height.len() } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { rayon::iter::once(&mut self.height as &mut dyn AnyStoredVec) } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.height.reset()?; Ok(()) } #[inline(always)] - pub(crate) fn push_counts(&mut self, counts: &AddrTypeToAddrCount) { + pub fn push_counts(&mut self, counts: &AddrTypeToAddrCount) { self.push(counts.row()); } } diff --git a/crates/brk_computer/src/distribution/addr/count/delta_vecs.rs b/crates/brk_computer/src/distribution/addr/count/delta_vecs.rs index b321c6f94..197032564 100644 --- a/crates/brk_computer/src/distribution/addr/count/delta_vecs.rs +++ b/crates/brk_computer/src/distribution/addr/count/delta_vecs.rs @@ -16,7 +16,7 @@ pub struct DeltaVecs( ); impl DeltaVecs { - pub(crate) fn new( + pub fn new( version: Version, addr_count: &AddrCountsVecs, cached_starts: &Windows<&CachedWindowStartVec>, diff --git a/crates/brk_computer/src/distribution/addr/count/funded_total_vecs.rs b/crates/brk_computer/src/distribution/addr/count/funded_total_vecs.rs index d58bf606c..ad0ab7320 100644 --- a/crates/brk_computer/src/distribution/addr/count/funded_total_vecs.rs +++ b/crates/brk_computer/src/distribution/addr/count/funded_total_vecs.rs @@ -18,7 +18,7 @@ pub struct AddrCountFundedTotalVecs { } impl AddrCountFundedTotalVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, name: &str, version: Version, @@ -40,32 +40,26 @@ impl AddrCountFundedTotalVecs { }) } - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { self.funded .min_stateful_len() .min(self.total.min_stateful_len()) } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { self.funded .par_iter_height_mut() .chain(self.total.par_iter_height_mut()) } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.funded.reset_height()?; self.total.reset_height()?; Ok(()) } #[inline(always)] - pub(crate) fn push_counts( - &mut self, - funded: &AddrTypeToAddrCount, - total: &AddrTypeToAddrCount, - ) { + pub fn push_counts(&mut self, funded: &AddrTypeToAddrCount, total: &AddrTypeToAddrCount) { self.funded.push_counts(funded); self.total.push_counts(total); } diff --git a/crates/brk_computer/src/distribution/addr/count/funded_vecs.rs b/crates/brk_computer/src/distribution/addr/count/funded_vecs.rs index c03b1c0b0..c54a7f71d 100644 --- a/crates/brk_computer/src/distribution/addr/count/funded_vecs.rs +++ b/crates/brk_computer/src/distribution/addr/count/funded_vecs.rs @@ -25,7 +25,7 @@ pub struct FundedAddrCountsVecs { } impl FundedAddrCountsVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, @@ -53,31 +53,29 @@ impl FundedAddrCountsVecs { }) } - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { self.counts.min_stateful_len().min(self.balance.len()) } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { self.counts .par_iter_height_mut() .chain(rayon::iter::once(self.balance.stored_mut())) } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.counts.reset_height()?; self.balance.reset()?; Ok(()) } #[inline(always)] - pub(crate) fn push_counts(&mut self, counts: &AddrTypeToAddrCount) { + pub fn push_counts(&mut self, counts: &AddrTypeToAddrCount) { self.counts.push_counts(counts); } #[inline(always)] - pub(crate) fn push_balance(&mut self, counts: AmountRange) { + pub fn push_balance(&mut self, counts: AmountRange) { self.balance.push(counts); } } diff --git a/crates/brk_computer/src/distribution/addr/count/new_vecs.rs b/crates/brk_computer/src/distribution/addr/count/new_vecs.rs index 7ef741416..ad438feb0 100644 --- a/crates/brk_computer/src/distribution/addr/count/new_vecs.rs +++ b/crates/brk_computer/src/distribution/addr/count/new_vecs.rs @@ -16,7 +16,7 @@ pub struct NewAddrCountVecs( ); impl NewAddrCountVecs { - pub(crate) fn new( + pub fn new( version: Version, total: &TotalAddrCountVecs, indexes: &indexes::Vecs, diff --git a/crates/brk_computer/src/distribution/addr/count/state.rs b/crates/brk_computer/src/distribution/addr/count/state.rs index 55d911328..7b722fbba 100644 --- a/crates/brk_computer/src/distribution/addr/count/state.rs +++ b/crates/brk_computer/src/distribution/addr/count/state.rs @@ -12,7 +12,7 @@ use super::AddrCountsVecs; pub struct AddrTypeToAddrCount(ByAddrType); impl AddrTypeToAddrCount { - pub(crate) fn row(&self) -> ::Row { + pub fn row(&self) -> ::Row { AddrTypeId::from_fn(|id| StoredU64::from(*id.select(&self.0))) } } diff --git a/crates/brk_computer/src/distribution/addr/count/total_vecs.rs b/crates/brk_computer/src/distribution/addr/count/total_vecs.rs index c98b76977..f8fbec6e4 100644 --- a/crates/brk_computer/src/distribution/addr/count/total_vecs.rs +++ b/crates/brk_computer/src/distribution/addr/count/total_vecs.rs @@ -14,11 +14,7 @@ use super::AddrCountsVecs; pub struct TotalAddrCountVecs(#[traversable(flatten)] pub AddrCountsVecs); impl TotalAddrCountVecs { - pub(crate) fn forced_import( - db: &Database, - version: Version, - indexes: &indexes::Vecs, - ) -> Result { + pub fn forced_import(db: &Database, version: Version, indexes: &indexes::Vecs) -> Result { Ok(Self(AddrCountsVecs::forced_import( db, "total_addr_count", @@ -28,7 +24,7 @@ impl TotalAddrCountVecs { } /// Eagerly compute total = addr_count + empty_addr_count. - pub(crate) fn compute( + pub fn compute( &mut self, max_from: Height, addr_count: &AddrCountsVecs, diff --git a/crates/brk_computer/src/distribution/addr/data.rs b/crates/brk_computer/src/distribution/addr/data.rs index 0ab8a63be..46c6e47b6 100644 --- a/crates/brk_computer/src/distribution/addr/data.rs +++ b/crates/brk_computer/src/distribution/addr/data.rs @@ -13,14 +13,14 @@ pub struct AddrsDataVecs { impl AddrsDataVecs { /// Get minimum stamped height across funded and empty data. - pub(crate) fn min_stamped_len(&self) -> Height { + pub fn min_stamped_len(&self) -> Height { Height::from(self.funded.stamp()) .incremented() .min(Height::from(self.empty.stamp()).incremented()) } /// Rollback both funded and empty data to before the given stamp. - pub(crate) fn rollback_before(&mut self, stamp: Stamp) -> Result<[Stamp; 2]> { + pub fn rollback_before(&mut self, stamp: Stamp) -> Result<[Stamp; 2]> { Ok([ self.funded.rollback_before(stamp)?, self.empty.rollback_before(stamp)?, @@ -28,14 +28,14 @@ impl AddrsDataVecs { } /// Reset both funded and empty data. - pub(crate) fn reset(&mut self) -> Result<()> { + pub fn reset(&mut self) -> Result<()> { self.funded.reset()?; self.empty.reset()?; Ok(()) } /// Returns a parallel iterator over all vecs for parallel writing. - pub(crate) fn par_iter_mut(&mut self) -> impl ParallelIterator { + pub fn par_iter_mut(&mut self) -> impl ParallelIterator { vec![ &mut self.funded as &mut dyn AnyStoredVec, &mut self.empty as &mut dyn AnyStoredVec, diff --git a/crates/brk_computer/src/distribution/addr/exposed/mod.rs b/crates/brk_computer/src/distribution/addr/exposed/mod.rs index 5653d6bd7..7f79cbb08 100644 --- a/crates/brk_computer/src/distribution/addr/exposed/mod.rs +++ b/crates/brk_computer/src/distribution/addr/exposed/mod.rs @@ -45,7 +45,7 @@ use super::{ count::AddrCountFundedTotalVecs, supply::{AddrSupplyShareVecs, AddrSupplyVecs}, }; -use crate::{distribution::metrics::AllSupplyCache, indexes}; +use crate::indexes; mod state; @@ -62,12 +62,12 @@ pub struct ExposedAddrVecs { } impl ExposedAddrVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, spot_price: &CachedBoxedVec, - all_supply: &AllSupplyCache, + all_supply: &CachedBoxedVec, ) -> Result { let count = AddrCountFundedTotalVecs::forced_import(db, "exposed", version, indexes)?; let supply = AddrSupplyVecs::forced_import(db, "exposed", version, indexes, spot_price)?; @@ -82,13 +82,13 @@ impl ExposedAddrVecs { }) } - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { self.count .min_stateful_len() .min(self.supply.min_stateful_len()) } - pub(crate) fn par_iter_stateful_height_mut( + pub fn par_iter_stateful_height_mut( &mut self, ) -> impl ParallelIterator { self.count @@ -96,16 +96,14 @@ impl ExposedAddrVecs { .chain(self.supply.par_iter_height_mut()) } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { self.count .par_iter_height_mut() .chain(self.supply.par_iter_height_mut()) .chain(rayon::iter::once(self.supply_share.stored_mut())) } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.count.reset_height()?; self.supply.reset_height()?; self.supply_share.reset_height()?; @@ -113,12 +111,12 @@ impl ExposedAddrVecs { } #[inline(always)] - pub(crate) fn push_height(&mut self, state: &ExposedAddrState) { + pub fn push_height(&mut self, state: &ExposedAddrState) { self.count.push_counts(&state.funded, &state.total); self.supply.push_supply(&state.supply); } - pub(crate) fn compute_rest( + pub fn compute_rest( &mut self, starting_lengths: &Lengths, type_supply_sats: &ByAddrType<&impl ReadableVec>, diff --git a/crates/brk_computer/src/distribution/addr/exposed/state.rs b/crates/brk_computer/src/distribution/addr/exposed/state.rs index 2e917fabd..fc14406c5 100644 --- a/crates/brk_computer/src/distribution/addr/exposed/state.rs +++ b/crates/brk_computer/src/distribution/addr/exposed/state.rs @@ -21,7 +21,7 @@ impl ExposedAddrState { /// Apply exposed-addr updates for a received output, AFTER the receive /// has mutated `addr_data`. `pre` is the snapshot taken before the mutation. #[inline] - pub(crate) fn on_receive( + pub fn on_receive( &mut self, output_type: OutputType, addr_data: &FundedAddrData, @@ -46,7 +46,7 @@ impl ExposedAddrState { /// Apply exposed-addr updates for a spent UTXO, AFTER the send has mutated /// `addr_data`. `pre` is the snapshot taken before the mutation. #[inline] - pub(crate) fn on_send( + pub fn on_send( &mut self, output_type: OutputType, addr_data: &FundedAddrData, diff --git a/crates/brk_computer/src/distribution/addr/indexes/any.rs b/crates/brk_computer/src/distribution/addr/indexes/any.rs index ba7240d7e..3d0608fb3 100644 --- a/crates/brk_computer/src/distribution/addr/indexes/any.rs +++ b/crates/brk_computer/src/distribution/addr/indexes/any.rs @@ -29,7 +29,7 @@ macro_rules! define_any_addr_indexes_vecs { impl AnyAddrIndexesVecs { /// Import from database. - pub(crate) fn forced_import(db: &Database, version: Version) -> Result { + pub fn forced_import(db: &Database, version: Version) -> Result { Ok(Self { $($field: BytesVec::forced_import_with( ImportOptions::new(db, "any_addr_index", version) @@ -39,7 +39,7 @@ macro_rules! define_any_addr_indexes_vecs { } /// Get minimum stamped height across all address types. - pub(crate) fn min_stamped_len(&self) -> Height { + pub fn min_stamped_len(&self) -> Height { [$(Height::from(self.$field.stamp()).incremented()),*] .into_iter() .min() @@ -47,18 +47,18 @@ macro_rules! define_any_addr_indexes_vecs { } /// Rollback all address types to before the given stamp. - pub(crate) fn rollback_before(&mut self, stamp: Stamp) -> Result> { + pub fn rollback_before(&mut self, stamp: Stamp) -> Result> { Ok(vec![$(self.$field.rollback_before(stamp)?),*]) } /// Reset all address types. - pub(crate) fn reset(&mut self) -> Result<()> { + pub fn reset(&mut self) -> Result<()> { $(self.$field.reset()?;)* Ok(()) } /// Returns a parallel iterator over all vecs for parallel writing. - pub(crate) fn par_iter_mut(&mut self) -> impl ParallelIterator { + pub fn par_iter_mut(&mut self) -> impl ParallelIterator { vec![$(&mut self.$field as &mut dyn AnyStoredVec),*].into_par_iter() } } @@ -94,7 +94,7 @@ impl AnyAddrIndexesVecs { /// Accepts two maps (e.g. from empty and funded processing) and merges per-thread. /// Updates existing entries and pushes new ones (sorted). /// Returns (update_count, push_count). - pub(crate) fn par_batch_update( + pub fn par_batch_update( &mut self, updates1: AddrTypeToTypeIndexMap, updates2: AddrTypeToTypeIndexMap, diff --git a/crates/brk_computer/src/distribution/addr/indexes/mod.rs b/crates/brk_computer/src/distribution/addr/indexes/mod.rs index 214330daf..cf9ad70a0 100644 --- a/crates/brk_computer/src/distribution/addr/indexes/mod.rs +++ b/crates/brk_computer/src/distribution/addr/indexes/mod.rs @@ -1,3 +1,3 @@ mod any; -pub use any::*; +pub use any::AnyAddrIndexesVecs; diff --git a/crates/brk_computer/src/distribution/addr/reused/events/state.rs b/crates/brk_computer/src/distribution/addr/reused/events/state.rs index d62f613d9..b329036e9 100644 --- a/crates/brk_computer/src/distribution/addr/reused/events/state.rs +++ b/crates/brk_computer/src/distribution/addr/reused/events/state.rs @@ -16,17 +16,17 @@ pub struct AddrTypeToAddrEventCount(ByAddrType); impl AddrTypeToAddrEventCount { #[inline] - pub(crate) fn sum(&self) -> u64 { + pub fn sum(&self) -> u64 { self.0.values().sum() } #[inline] - pub(crate) fn row(&self) -> ::Row { + pub fn row(&self) -> ::Row { AddrTypeId::from_fn(|column| StoredU64::from(*column.select(&self.0))) } #[inline] - pub(crate) fn reset(&mut self) { + pub fn reset(&mut self) { for v in self.0.values_mut() { *v = 0; } diff --git a/crates/brk_computer/src/distribution/addr/reused/events/vecs.rs b/crates/brk_computer/src/distribution/addr/reused/events/vecs.rs index a56370b3d..b6ad69485 100644 --- a/crates/brk_computer/src/distribution/addr/reused/events/vecs.rs +++ b/crates/brk_computer/src/distribution/addr/reused/events/vecs.rs @@ -115,7 +115,7 @@ impl AddrEventsVecs { }); WithAddrTypes { all, by_addr_type } } - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, name: &str, version: Version, @@ -218,7 +218,7 @@ impl AddrEventsVecs { }) } - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { self.output_to_reused_addr_count .cumulative .len() @@ -227,9 +227,7 @@ impl AddrEventsVecs { .min(self.active_reused_addr_share.block.len()) } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { rayon::iter::once(self.output_to_reused_addr_count.stored_mut()) .chain(rayon::iter::once( self.input_from_reused_addr_count.stored_mut(), @@ -240,7 +238,7 @@ impl AddrEventsVecs { ]) } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.output_to_reused_addr_count.reset()?; self.input_from_reused_addr_count.reset()?; self.active_reused_addr_count.reset()?; @@ -249,7 +247,7 @@ impl AddrEventsVecs { } #[inline(always)] - pub(crate) fn push_height( + pub fn push_height( &mut self, uses: &AddrTypeToAddrEventCount, spends: &AddrTypeToAddrEventCount, @@ -275,7 +273,7 @@ impl AddrEventsVecs { .push(StoredF32::from(share)); } - pub(crate) fn compute_rest(&mut self, starting_lengths: &Lengths, exit: &Exit) -> Result<()> { + pub fn compute_rest(&mut self, starting_lengths: &Lengths, exit: &Exit) -> Result<()> { self.active_reused_addr_share .compute_rest(starting_lengths.height, exit)?; Ok(()) diff --git a/crates/brk_computer/src/distribution/addr/reused/mod.rs b/crates/brk_computer/src/distribution/addr/reused/mod.rs index 4832f9e95..5ccb6e5ac 100644 --- a/crates/brk_computer/src/distribution/addr/reused/mod.rs +++ b/crates/brk_computer/src/distribution/addr/reused/mod.rs @@ -33,7 +33,6 @@ use super::{ supply::{AddrSupplyShareVecs, AddrSupplyVecs}, }; use crate::{ - distribution::metrics::AllSupplyCache, indexes, inputs, internal::{CachedWindowStartVec, Windows}, outputs, @@ -57,7 +56,7 @@ pub struct ReusedAddrVecs { impl ReusedAddrVecs { #[allow(clippy::too_many_arguments)] - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, name: &str, version: Version, @@ -66,7 +65,7 @@ impl ReusedAddrVecs { spot_price: &CachedBoxedVec, outputs_by_type: &outputs::ByTypeVecs, inputs_by_type: &inputs::ByTypeVecs, - all_supply: &AllSupplyCache, + all_supply: &CachedBoxedVec, ) -> Result { let count = AddrCountFundedTotalVecs::forced_import(db, name, version, indexes)?; let events = AddrEventsVecs::forced_import( @@ -90,14 +89,14 @@ impl ReusedAddrVecs { }) } - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { self.count .min_stateful_len() .min(self.events.min_stateful_len()) .min(self.supply.min_stateful_len()) } - pub(crate) fn par_iter_stateful_height_mut( + pub fn par_iter_stateful_height_mut( &mut self, ) -> impl ParallelIterator { self.count @@ -106,9 +105,7 @@ impl ReusedAddrVecs { .chain(self.supply.par_iter_height_mut()) } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { self.count .par_iter_height_mut() .chain(self.events.par_iter_height_mut()) @@ -116,7 +113,7 @@ impl ReusedAddrVecs { .chain(rayon::iter::once(self.supply_share.stored_mut())) } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.count.reset_height()?; self.events.reset_height()?; self.supply.reset_height()?; @@ -125,7 +122,7 @@ impl ReusedAddrVecs { } #[inline(always)] - pub(crate) fn push_height(&mut self, state: &ReusedAddrState, active_addr_count: u32) { + pub fn push_height(&mut self, state: &ReusedAddrState, active_addr_count: u32) { let active_reused_addr_count = state.active.sum(); debug_assert!(u32::try_from(active_reused_addr_count).is_ok()); @@ -140,7 +137,7 @@ impl ReusedAddrVecs { } #[allow(clippy::too_many_arguments)] - pub(crate) fn compute_rest( + pub fn compute_rest( &mut self, starting_lengths: &Lengths, type_supply_sats: &ByAddrType<&impl ReadableVec>, diff --git a/crates/brk_computer/src/distribution/addr/reused/state.rs b/crates/brk_computer/src/distribution/addr/reused/state.rs index 560ce416d..bf92de830 100644 --- a/crates/brk_computer/src/distribution/addr/reused/state.rs +++ b/crates/brk_computer/src/distribution/addr/reused/state.rs @@ -27,7 +27,7 @@ pub struct ReusedAddrState { impl ReusedAddrState { #[inline] - pub(crate) fn reset_per_block(&mut self) { + pub fn reset_per_block(&mut self) { self.output_events.reset(); self.input_events.reset(); self.active.reset(); @@ -36,7 +36,7 @@ impl ReusedAddrState { /// Apply reused-flavor (receive-based: `funded_txo_count > 1`) updates /// for a received output, AFTER the receive has mutated `addr_data`. #[inline] - pub(crate) fn on_receive_as_reused( + pub fn on_receive_as_reused( &mut self, output_type: OutputType, addr_data: &FundedAddrData, @@ -79,7 +79,7 @@ impl ReusedAddrState { /// don't cross the respent threshold. The only transition is an /// already-respent empty address reactivating into the funded set. #[inline] - pub(crate) fn on_receive_as_respent( + pub fn on_receive_as_respent( &mut self, output_type: OutputType, addr_data: &FundedAddrData, @@ -104,7 +104,7 @@ impl ReusedAddrState { /// mutated `addr_data`. Sends don't change the reused predicate, so /// `pre.was_reused == is_reused` post-spend. #[inline] - pub(crate) fn on_send_as_reused( + pub fn on_send_as_reused( &mut self, output_type: OutputType, addr_data: &FundedAddrData, @@ -133,7 +133,7 @@ impl ReusedAddrState { /// mutated `addr_data`. Sends CAN cross the respent threshold on the /// 2nd lifetime spend. #[inline] - pub(crate) fn on_send_as_respent( + pub fn on_send_as_respent( &mut self, output_type: OutputType, addr_data: &FundedAddrData, diff --git a/crates/brk_computer/src/distribution/addr/state/metrics.rs b/crates/brk_computer/src/distribution/addr/state/metrics.rs index cda6bc487..a792dca3b 100644 --- a/crates/brk_computer/src/distribution/addr/state/metrics.rs +++ b/crates/brk_computer/src/distribution/addr/state/metrics.rs @@ -20,14 +20,14 @@ pub struct AddrMetricsState { impl AddrMetricsState { #[inline] - pub(crate) fn reset_per_block(&mut self) { + pub fn reset_per_block(&mut self) { self.activity.reset(); self.reused.reset_per_block(); self.respent.reset_per_block(); } #[inline] - pub(crate) fn on_receive_applied( + pub fn on_receive_applied( &mut self, output_type: OutputType, status: TrackingStatus, @@ -56,7 +56,7 @@ impl AddrMetricsState { } #[inline] - pub(crate) fn on_send_applied( + pub fn on_send_applied( &mut self, output_type: OutputType, addr_data: &FundedAddrData, diff --git a/crates/brk_computer/src/distribution/addr/supply/share.rs b/crates/brk_computer/src/distribution/addr/supply/share.rs index fe6d01568..7934cc9ba 100644 --- a/crates/brk_computer/src/distribution/addr/supply/share.rs +++ b/crates/brk_computer/src/distribution/addr/supply/share.rs @@ -3,12 +3,11 @@ use brk_error::Result; use brk_traversable::Traversable; use brk_types::{Height, PartsPerMillion32, Sats, Version}; use vecdb::{ - AnyStoredVec, BinaryTransform, Database, Exit, ReadOnlyClone, ReadableVec, Rw, StorageMode, - WritableVec, + AnyStoredVec, BinaryTransform, CachedBoxedVec, Database, Exit, ReadOnlyClone, ReadableVec, Rw, + StorageMode, WritableVec, }; use crate::{ - distribution::metrics::AllSupplyCache, indexes, internal::{ColumnarPerBlock, LazyColumnPercentPerBlock, LazyPercentPerBlock, RatioSats}, }; @@ -29,20 +28,20 @@ pub struct AddrSupplyShareVecs { } impl AddrSupplyShareVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, name: &str, version: Version, indexes: &indexes::Vecs, supply: &AddrSupplyVecs, - all_supply: &AllSupplyCache, + all_supply: &CachedBoxedVec, ) -> Result { let name = format!("{name}_addr_supply_share"); let all = LazyPercentPerBlock::from_cached_ratio::>( &name, version, &supply.all.sats.height, - all_supply.cached_boxed_clone(), + all_supply.clone(), indexes, ); let ppm = @@ -65,16 +64,16 @@ impl AddrSupplyShareVecs { }) } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.ppm.height.reset()?; Ok(()) } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { self.ppm.stored_mut() } - pub(crate) fn compute_rest( + pub fn compute_rest( &mut self, max_from: Height, supply: &AddrSupplyVecs, diff --git a/crates/brk_computer/src/distribution/addr/supply/state.rs b/crates/brk_computer/src/distribution/addr/supply/state.rs index 62c685cd1..50a4714c3 100644 --- a/crates/brk_computer/src/distribution/addr/supply/state.rs +++ b/crates/brk_computer/src/distribution/addr/supply/state.rs @@ -12,14 +12,14 @@ pub struct AddrTypeToSupply(ByAddrType); impl AddrTypeToSupply { #[inline] - pub(crate) fn row(&self) -> ::Row { + pub fn row(&self) -> ::Row { AddrTypeId::from_fn(|column| *column.select(&self.0)) } /// Apply a signed `after - before` delta to the slot for `output_type`. /// Sats is unsigned, so branch on sign. #[inline] - pub(crate) fn apply_delta(&mut self, output_type: OutputType, before: Sats, after: Sats) { + pub fn apply_delta(&mut self, output_type: OutputType, before: Sats, after: Sats) { let slot = self.get_mut_unwrap(output_type); if after >= before { *slot += after - before; diff --git a/crates/brk_computer/src/distribution/addr/supply/vecs.rs b/crates/brk_computer/src/distribution/addr/supply/vecs.rs index 72b13f177..50f039331 100644 --- a/crates/brk_computer/src/distribution/addr/supply/vecs.rs +++ b/crates/brk_computer/src/distribution/addr/supply/vecs.rs @@ -31,7 +31,7 @@ pub struct AddrSupplyVecs( ); impl AddrSupplyVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, name: &str, version: Version, @@ -51,23 +51,21 @@ impl AddrSupplyVecs { )?)) } - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { self.height.len() } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { rayon::iter::once(self.stored_mut()) } - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.height.reset()?; Ok(()) } #[inline(always)] - pub(crate) fn push_supply(&mut self, supply: &AddrTypeToSupply) { + pub fn push_supply(&mut self, supply: &AddrTypeToSupply) { self.push(supply.row()); } } diff --git a/crates/brk_computer/src/distribution/addr/type_map/height_vec.rs b/crates/brk_computer/src/distribution/addr/type_map/height_vec.rs index eec89e8d7..18db3adc6 100644 --- a/crates/brk_computer/src/distribution/addr/type_map/height_vec.rs +++ b/crates/brk_computer/src/distribution/addr/type_map/height_vec.rs @@ -10,7 +10,7 @@ pub struct HeightToAddrTypeToVec(FxHashMap>); impl HeightToAddrTypeToVec { /// Create with pre-allocated capacity for unique heights. - pub(crate) fn with_capacity(capacity: usize) -> Self { + pub fn with_capacity(capacity: usize) -> Self { Self(FxHashMap::with_capacity_and_hasher( capacity, Default::default(), @@ -20,7 +20,7 @@ impl HeightToAddrTypeToVec { impl HeightToAddrTypeToVec { /// Consume and iterate over (Height, AddrTypeToVec) pairs. - pub(crate) fn into_iter(self) -> impl Iterator)> { + pub fn into_iter(self) -> impl Iterator)> { self.0.into_iter() } } diff --git a/crates/brk_computer/src/distribution/addr/type_map/index_map.rs b/crates/brk_computer/src/distribution/addr/type_map/index_map.rs index ae823a610..d47c9737d 100644 --- a/crates/brk_computer/src/distribution/addr/type_map/index_map.rs +++ b/crates/brk_computer/src/distribution/addr/type_map/index_map.rs @@ -27,7 +27,7 @@ impl Default for AddrTypeToTypeIndexMap { impl AddrTypeToTypeIndexMap { /// Create with pre-allocated capacity per address type. - pub(crate) fn with_capacity(capacity: usize) -> Self { + pub fn with_capacity(capacity: usize) -> Self { Self(ByAddrType { p2a: FxHashMap::with_capacity_and_hasher(capacity, Default::default()), p2pk33: FxHashMap::with_capacity_and_hasher(capacity, Default::default()), @@ -41,30 +41,23 @@ impl AddrTypeToTypeIndexMap { } /// Insert a value for a specific address type and type_index. - pub(crate) fn insert_for_type( - &mut self, - addr_type: OutputType, - type_index: TypeIndex, - value: T, - ) { + pub fn insert_for_type(&mut self, addr_type: OutputType, type_index: TypeIndex, value: T) { self.get_mut(addr_type).unwrap().insert(type_index, value); } /// Consume and iterate over entries by address type. #[allow(clippy::should_implement_trait)] - pub(crate) fn into_iter(self) -> impl Iterator)> { + pub fn into_iter(self) -> impl Iterator)> { self.0.into_iter() } /// Consume and return the inner ByAddrType. - pub(crate) fn into_inner(self) -> ByAddrType> { + pub fn into_inner(self) -> ByAddrType> { self.0 } /// Iterate mutably over entries by address type. - pub(crate) fn iter_mut( - &mut self, - ) -> impl Iterator)> { + pub fn iter_mut(&mut self) -> impl Iterator)> { self.0.iter_mut() } } @@ -74,7 +67,7 @@ where T: Array, { /// Merge two maps of SmallVec values, concatenating vectors. - pub(crate) fn merge_vec(mut self, other: Self) -> Self { + pub fn merge_vec(mut self, other: Self) -> Self { for (addr_type, other_map) in other.0.into_iter() { let self_map = self.0.get_mut_unwrap(addr_type); for (type_index, mut other_vec) in other_map { diff --git a/crates/brk_computer/src/distribution/addr/type_map/mod.rs b/crates/brk_computer/src/distribution/addr/type_map/mod.rs index 398fea565..ce2bbece6 100644 --- a/crates/brk_computer/src/distribution/addr/type_map/mod.rs +++ b/crates/brk_computer/src/distribution/addr/type_map/mod.rs @@ -2,6 +2,6 @@ mod height_vec; mod index_map; mod vec; -pub use height_vec::*; -pub use index_map::*; -pub use vec::*; +pub use height_vec::HeightToAddrTypeToVec; +pub use index_map::AddrTypeToTypeIndexMap; +pub use vec::AddrTypeToVec; diff --git a/crates/brk_computer/src/distribution/addr/type_map/vec.rs b/crates/brk_computer/src/distribution/addr/type_map/vec.rs index a43821800..37df49928 100644 --- a/crates/brk_computer/src/distribution/addr/type_map/vec.rs +++ b/crates/brk_computer/src/distribution/addr/type_map/vec.rs @@ -22,7 +22,7 @@ impl Default for AddrTypeToVec { impl AddrTypeToVec { /// Create with pre-allocated capacity per address type. - pub(crate) fn with_capacity(capacity: usize) -> Self { + pub fn with_capacity(capacity: usize) -> Self { Self(ByAddrType { p2a: Vec::with_capacity(capacity), p2pk33: Vec::with_capacity(capacity), @@ -38,7 +38,7 @@ impl AddrTypeToVec { impl AddrTypeToVec { /// Unwrap the inner ByAddrType. - pub(crate) fn unwrap(self) -> ByAddrType> { + pub fn unwrap(self) -> ByAddrType> { self.0 } } diff --git a/crates/brk_computer/src/distribution/addr/vecs.rs b/crates/brk_computer/src/distribution/addr/vecs.rs index 7f08ac14a..5e48208bd 100644 --- a/crates/brk_computer/src/distribution/addr/vecs.rs +++ b/crates/brk_computer/src/distribution/addr/vecs.rs @@ -28,7 +28,7 @@ pub struct AddrVecs { } impl AddrVecs { - pub(crate) fn reset_height(&mut self) -> Result<()> { + pub fn reset_height(&mut self) -> Result<()> { self.funded.reset_height()?; self.empty.reset_height()?; self.activity.reset_height()?; @@ -40,7 +40,7 @@ impl AddrVecs { Ok(()) } - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { self.funded .min_stateful_len() .min(self.empty.min_stateful_len()) @@ -50,7 +50,7 @@ impl AddrVecs { .min(self.exposed.min_stateful_len()) } - pub(crate) fn par_iter_stateful_height_mut( + pub fn par_iter_stateful_height_mut( &mut self, ) -> impl ParallelIterator { self.funded @@ -62,9 +62,7 @@ impl AddrVecs { .chain(self.exposed.par_iter_stateful_height_mut()) } - pub(crate) fn par_iter_height_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_height_mut(&mut self) -> impl ParallelIterator { self.funded .par_iter_height_mut() .chain(self.empty.par_iter_height_mut()) @@ -77,7 +75,7 @@ impl AddrVecs { } #[inline(always)] - pub(crate) fn push_height(&mut self, state: &AddrMetricsState, active_addr_count: u32) { + pub fn push_height(&mut self, state: &AddrMetricsState, active_addr_count: u32) { self.funded.push_counts(&state.funded); self.empty.push_counts(&state.empty); self.activity.push_height(&state.activity); diff --git a/crates/brk_computer/src/distribution/all_chain_cache.rs b/crates/brk_computer/src/distribution/all_chain_sources.rs similarity index 55% rename from crates/brk_computer/src/distribution/all_chain_cache.rs rename to crates/brk_computer/src/distribution/all_chain_sources.rs index d311d9942..7fc12643e 100644 --- a/crates/brk_computer/src/distribution/all_chain_cache.rs +++ b/crates/brk_computer/src/distribution/all_chain_sources.rs @@ -1,17 +1,15 @@ -use brk_types::{Cents, Height, PartsPerMillionSigned64, Sats, Version}; +use brk_types::{Cents, Height, Sats, Version}; use vecdb::{ BinaryTransform, CachedBoxedVec, ReadableCloneableVec, ReadableVec, TypedVec, VecValue, }; -use crate::internal::{LazyIndexedVec, LazyWindowVec, SatsToCents}; - -use super::metrics::AllSupplyCache; +use crate::internal::{LazyIndexedVec, SatsToCents}; /// Shared handles to the pinned all-chain inputs. /// /// Cloning these handles does not duplicate either cached array. #[derive(Clone)] -pub(crate) struct AllChainCache { +pub struct AllChainSources { supply: CachedBoxedVec, price: CachedBoxedVec, } @@ -22,22 +20,19 @@ struct WithSupply { supply: Sats, } -#[derive(Clone, Debug, Default)] -struct MarketAndRealizedCap { - market: Cents, - realized: Cents, -} - -impl AllChainCache { - pub(crate) fn new(supply: &AllSupplyCache, price: &CachedBoxedVec) -> Self { +impl AllChainSources { + pub fn new( + supply: &CachedBoxedVec, + price: &CachedBoxedVec, + ) -> Self { Self { - supply: supply.cached_boxed_clone(), + supply: supply.clone(), price: price.clone(), } } /// Lazily combines one ordinary source with the pinned all-supply cache. - pub(crate) fn with_supply( + pub fn with_supply( &self, name: &str, version: Version, @@ -59,7 +54,7 @@ impl AllChainCache { /// Lazily combines one ordinary source with market cap derived from the /// pinned all-supply and spot-price caches. - pub(crate) fn with_market_cap( + pub fn with_market_cap( &self, name: &str, version: Version, @@ -91,67 +86,25 @@ impl AllChainCache { }, ) } - - /// Computes market-cap growth minus realized-cap growth from one realized - /// cap source and cached window starts. - pub(crate) fn market_minus_realized_cap_growth( - &self, - name: &str, - version: Version, - realized_cap: &(impl ReadableCloneableVec + 'static), - window_starts: CachedBoxedVec, - ) -> impl TypedVec - + ReadableVec - + Clone - + 'static { - let caps = self.with_market_cap( - &format!("{name}_caps"), - Version::ZERO, - realized_cap, - |_, realized, market| MarketAndRealizedCap { market, realized }, - ); - - LazyWindowVec::new( - name, - version, - caps.read_only_boxed_clone(), - window_starts, - false, - |current, previous, _| { - let growth = |current: Cents, previous: Cents| { - if previous == Cents::ZERO { - 0.0 - } else { - (f64::from(current) - f64::from(previous)) / f64::from(previous) - } - }; - PartsPerMillionSigned64::from( - growth(current.market, previous.market) - - growth(current.realized, previous.realized), - ) - }, - ) - } } #[cfg(test)] mod tests { - use brk_types::PartsPerMillionSigned64; use vecdb::{ - AnyStoredVec, CachedVec, Database, EagerVec, ImportableVec, PcoVec, ReadOnlyClone, - WritableVec, + AnyStoredVec, CachedReadableVec, CachedVec, Database, EagerVec, ImportableVec, PcoVec, + ReadOnlyClone, WritableVec, }; use super::*; #[test] - fn derives_from_one_source_and_shared_chain_caches() { + fn derives_from_shared_chain_sources() { let suffix = std::time::SystemTime::now() .duration_since(std::time::UNIX_EPOCH) .unwrap() .as_nanos(); let path = std::env::temp_dir().join(format!( - "brk-all-chain-cache-{}-{suffix}", + "brk-all-chain-sources-{}-{suffix}", std::process::id() )); let db = Database::open(&path).unwrap(); @@ -162,8 +115,6 @@ mod tests { EagerVec::forced_import(&db, "price", Version::ONE).unwrap(); let mut realized: EagerVec> = EagerVec::forced_import(&db, "realized", Version::ONE).unwrap(); - let mut starts: EagerVec> = - EagerVec::forced_import(&db, "starts", Version::ONE).unwrap(); for value in [100_000_000, 100_000_000, 200_000_000] { supply.push(Sats::new(value)); @@ -174,20 +125,17 @@ mod tests { for value in [50, 100, 100] { realized.push(Cents::new(value)); } - for value in [0, 0, 1] { - starts.push(Height::new(value)); - } supply.write().unwrap(); price.write().unwrap(); realized.write().unwrap(); - starts.write().unwrap(); - let supply_cache = AllSupplyCache::new(supply.read_only_clone()); + let supply_cache = CachedVec::wrap(supply.read_only_clone()).cached_boxed_clone(); let price_cache = CachedVec::wrap(price); - let cache = AllChainCache::new(&supply_cache, &price_cache.read_only_cached_boxed_clone()); + let sources = + AllChainSources::new(&supply_cache, &price_cache.read_only_cached_boxed_clone()); let cached_supply = - cache.with_supply("cached_supply", Version::ONE, &realized, |_, _, supply| { + sources.with_supply("cached_supply", Version::ONE, &realized, |_, _, supply| { supply }); assert_eq!( @@ -199,7 +147,7 @@ mod tests { ], ); - let market_cap = cache.with_market_cap( + let market_cap = sources.with_market_cap( "market_cap", Version::ONE, &realized, @@ -214,27 +162,8 @@ mod tests { ], ); - let starts_cache = CachedVec::wrap(starts); - let growth = cache.market_minus_realized_cap_growth( - "growth", - Version::ONE, - &realized, - starts_cache.read_only_cached_boxed_clone(), - ); - assert_eq!( - growth.collect_range(Height::ZERO, Height::new(3)), - [ - PartsPerMillionSigned64::ZERO, - PartsPerMillionSigned64::ZERO, - PartsPerMillionSigned64::ONE, - ], - ); - - drop(growth); - drop(starts_cache); drop(market_cap); drop(cached_supply); - drop(cache); drop(price_cache); drop(supply_cache); drop(realized); diff --git a/crates/brk_computer/src/distribution/block/cache/addr.rs b/crates/brk_computer/src/distribution/block/cache/addr.rs index 001ae8357..b34c17761 100644 --- a/crates/brk_computer/src/distribution/block/cache/addr.rs +++ b/crates/brk_computer/src/distribution/block/cache/addr.rs @@ -98,7 +98,7 @@ impl Default for AddrCache { } impl AddrCache { - pub(crate) fn new() -> Self { + pub fn new() -> Self { Self { funded: AddrTypeToTypeIndexMap::default(), empty: AddrTypeToTypeIndexMap::default(), @@ -109,7 +109,7 @@ impl AddrCache { /// Check if address is in cache (either funded or empty). #[inline] - pub(crate) fn contains(&self, addr_type: OutputType, type_index: TypeIndex) -> bool { + pub fn contains(&self, addr_type: OutputType, type_index: TypeIndex) -> bool { self.funded .get(addr_type) .is_some_and(|m| m.contains_key(&type_index)) @@ -120,7 +120,7 @@ impl AddrCache { } /// Load each address touched by the block once. - pub(crate) fn load_block_addresses( + pub fn load_block_addresses( &mut self, addresses: impl Iterator, first_addr_indexes: &ByAddrType, @@ -171,7 +171,7 @@ impl AddrCache { /// Create an AddrLookup view into this cache. #[inline] - pub(crate) fn as_lookup(&mut self) -> AddrLookup<'_> { + pub fn as_lookup(&mut self) -> AddrLookup<'_> { AddrLookup { funded: &mut self.funded, empty: &mut self.empty, @@ -179,7 +179,7 @@ impl AddrCache { } /// Update transaction counts for addresses. - pub(crate) fn update_tx_counts( + pub fn update_tx_counts( &mut self, tx_index_vecs: AddrTypeToTypeIndexMap>, ) { @@ -187,7 +187,7 @@ impl AddrCache { } /// Take the cache contents for flushing, leaving empty caches. - pub(crate) fn take( + pub fn take( &mut self, ) -> ( AddrTypeToTypeIndexMap>, diff --git a/crates/brk_computer/src/distribution/block/cache/lookup.rs b/crates/brk_computer/src/distribution/block/cache/lookup.rs index eb9a6804d..e63955210 100644 --- a/crates/brk_computer/src/distribution/block/cache/lookup.rs +++ b/crates/brk_computer/src/distribution/block/cache/lookup.rs @@ -22,7 +22,7 @@ pub struct AddrLookup<'a> { } impl<'a> AddrLookup<'a> { - pub(crate) fn get_or_create_for_receive( + pub fn get_or_create_for_receive( &mut self, output_type: OutputType, type_index: TypeIndex, @@ -77,7 +77,7 @@ impl<'a> AddrLookup<'a> { } /// Get address data for a send operation (must exist in cache). - pub(crate) fn get_for_send( + pub fn get_for_send( &mut self, output_type: OutputType, type_index: TypeIndex, @@ -90,7 +90,7 @@ impl<'a> AddrLookup<'a> { } /// Move address from funded to empty set. - pub(crate) fn move_to_empty(&mut self, output_type: OutputType, type_index: TypeIndex) { + pub fn move_to_empty(&mut self, output_type: OutputType, type_index: TypeIndex) { let data = self .funded .get_mut(output_type) diff --git a/crates/brk_computer/src/distribution/block/cache/mod.rs b/crates/brk_computer/src/distribution/block/cache/mod.rs index 0574856d2..409ed5b94 100644 --- a/crates/brk_computer/src/distribution/block/cache/mod.rs +++ b/crates/brk_computer/src/distribution/block/cache/mod.rs @@ -1,5 +1,5 @@ mod addr; mod lookup; -pub use addr::*; -pub use lookup::*; +pub use addr::AddrCache; +pub use lookup::{AddrLookup, TrackingStatus}; diff --git a/crates/brk_computer/src/distribution/block/cohort/addr_updates.rs b/crates/brk_computer/src/distribution/block/cohort/addr_updates.rs index aaf51ea46..35c6a98b4 100644 --- a/crates/brk_computer/src/distribution/block/cohort/addr_updates.rs +++ b/crates/brk_computer/src/distribution/block/cohort/addr_updates.rs @@ -5,7 +5,7 @@ use brk_types::{ }; use vecdb::AnyVec; -use crate::distribution::{AddrTypeToTypeIndexMap, AddrsDataVecs}; +use crate::distribution::addr::{AddrTypeToTypeIndexMap, AddrsDataVecs}; use super::with_source::WithAddrDataSource; @@ -15,7 +15,7 @@ use super::with_source::WithAddrDataSource; /// - New funded address: push to funded storage /// - Updated funded address (was funded): update in place /// - Transition empty -> funded: delete from empty, push to funded -pub(crate) fn process_funded_addrs( +pub fn process_funded_addrs( addrs_data: &mut AddrsDataVecs, funded_updates: AddrTypeToTypeIndexMap>, ) -> Result> { @@ -85,7 +85,7 @@ pub(crate) fn process_funded_addrs( /// - New empty address: push to empty storage /// - Updated empty address (was empty): update in place /// - Transition funded -> empty: delete from funded, push to empty -pub(crate) fn process_empty_addrs( +pub fn process_empty_addrs( addrs_data: &mut AddrsDataVecs, empty_updates: AddrTypeToTypeIndexMap>, ) -> Result> { diff --git a/crates/brk_computer/src/distribution/block/cohort/mod.rs b/crates/brk_computer/src/distribution/block/cohort/mod.rs index ebd9cdade..6f8ddc299 100644 --- a/crates/brk_computer/src/distribution/block/cohort/mod.rs +++ b/crates/brk_computer/src/distribution/block/cohort/mod.rs @@ -5,9 +5,9 @@ mod transfer_address_cache; mod tx_counts; mod with_source; -pub(crate) use addr_updates::*; -pub(crate) use received::*; -pub(crate) use sent::*; -pub(crate) use transfer_address_cache::*; -pub(crate) use tx_counts::*; -pub(crate) use with_source::*; +pub use addr_updates::{process_empty_addrs, process_funded_addrs}; +pub use received::process_received; +pub use sent::process_sent; +pub use transfer_address_cache::TransferAddressCache; +pub use tx_counts::update_tx_counts; +pub use with_source::WithAddrDataSource; diff --git a/crates/brk_computer/src/distribution/block/cohort/received.rs b/crates/brk_computer/src/distribution/block/cohort/received.rs index ae58decdf..fba10cdaf 100644 --- a/crates/brk_computer/src/distribution/block/cohort/received.rs +++ b/crates/brk_computer/src/distribution/block/cohort/received.rs @@ -3,8 +3,8 @@ use brk_types::{Cents, Sats, TypeIndex}; use rustc_hash::FxHashMap; use crate::distribution::{ - AddrStates, addr::{AddrMetricsState, AddrReceivePreState, AddrTypeToVec}, + state::AddrStates, }; use super::super::cache::{AddrLookup, TrackingStatus}; @@ -16,7 +16,7 @@ struct AggregatedReceive { output_count: u32, } -pub(crate) fn process_received( +pub fn process_received( received_data: AddrTypeToVec<(TypeIndex, Sats)>, cohorts: &mut AddrStates, lookup: &mut AddrLookup<'_>, diff --git a/crates/brk_computer/src/distribution/block/cohort/sent.rs b/crates/brk_computer/src/distribution/block/cohort/sent.rs index 352635321..9dc591ee8 100644 --- a/crates/brk_computer/src/distribution/block/cohort/sent.rs +++ b/crates/brk_computer/src/distribution/block/cohort/sent.rs @@ -4,14 +4,14 @@ use brk_types::{Cents, Sats, TypeIndex}; use vecdb::VecIndex; use crate::distribution::{ - AddrStates, addr::{AddrMetricsState, AddrSendPreState, HeightToAddrTypeToVec}, + state::AddrStates, }; use super::{super::cache::AddrLookup, transfer_address_cache::TransferAddressCache}; /// Process sent UTXOs for address cohort membership and empty-address transitions. -pub(crate) fn process_sent( +pub fn process_sent( sent_data: HeightToAddrTypeToVec<(TypeIndex, Sats)>, cohorts: &mut AddrStates, lookup: &mut AddrLookup<'_>, diff --git a/crates/brk_computer/src/distribution/block/cohort/transfer_address_cache.rs b/crates/brk_computer/src/distribution/block/cohort/transfer_address_cache.rs index bc66113e9..496114f81 100644 --- a/crates/brk_computer/src/distribution/block/cohort/transfer_address_cache.rs +++ b/crates/brk_computer/src/distribution/block/cohort/transfer_address_cache.rs @@ -5,13 +5,13 @@ use rustc_hash::FxHashSet; use crate::distribution::addr::AddrTypeToVec; #[derive(Default)] -pub(crate) struct TransferAddressCache { +pub struct TransferAddressCache { received: ByAddrType>, seen_senders: ByAddrType>, } impl TransferAddressCache { - pub(crate) fn prepare(&mut self, received_data: &AddrTypeToVec<(TypeIndex, Sats)>) { + pub fn prepare(&mut self, received_data: &AddrTypeToVec<(TypeIndex, Sats)>) { self.received.values_mut().for_each(FxHashSet::clear); self.seen_senders.values_mut().for_each(FxHashSet::clear); @@ -22,7 +22,7 @@ impl TransferAddressCache { } } - pub(super) fn sets_for( + pub fn sets_for( &mut self, output_type: OutputType, ) -> (Option<&FxHashSet>, &mut FxHashSet) { diff --git a/crates/brk_computer/src/distribution/block/cohort/tx_counts.rs b/crates/brk_computer/src/distribution/block/cohort/tx_counts.rs index 15a3f1405..987131139 100644 --- a/crates/brk_computer/src/distribution/block/cohort/tx_counts.rs +++ b/crates/brk_computer/src/distribution/block/cohort/tx_counts.rs @@ -13,7 +13,7 @@ use super::with_source::WithAddrDataSource; /// /// Addresses are looked up in funded_cache first, then empty_cache. /// NOTE: This should be called AFTER merging parallel-fetched address data into funded_cache. -pub(crate) fn update_tx_counts( +pub fn update_tx_counts( funded_cache: &mut AddrTypeToTypeIndexMap>, empty_cache: &mut AddrTypeToTypeIndexMap>, mut tx_index_vecs: AddrTypeToTypeIndexMap>, diff --git a/crates/brk_computer/src/distribution/block/mod.rs b/crates/brk_computer/src/distribution/block/mod.rs index a948498e8..b6e8727bd 100644 --- a/crates/brk_computer/src/distribution/block/mod.rs +++ b/crates/brk_computer/src/distribution/block/mod.rs @@ -2,6 +2,9 @@ mod cache; mod cohort; mod utxo; -pub(crate) use cache::*; -pub(crate) use cohort::*; -pub(crate) use utxo::*; +pub use cache::{AddrCache, TrackingStatus}; +pub use cohort::{ + TransferAddressCache, WithAddrDataSource, process_empty_addrs, process_funded_addrs, + process_received, process_sent, +}; +pub use utxo::{process_inputs, process_outputs}; diff --git a/crates/brk_computer/src/distribution/block/utxo/inputs.rs b/crates/brk_computer/src/distribution/block/utxo/inputs.rs index dde1a566c..f6cf9d2b2 100644 --- a/crates/brk_computer/src/distribution/block/utxo/inputs.rs +++ b/crates/brk_computer/src/distribution/block/utxo/inputs.rs @@ -26,7 +26,7 @@ pub struct InputsResult { /// 4. Read value and type from the referenced output (random access via mmap) /// 5. Accumulate into height_to_sent map /// 6. Track address-specific data for address cohort processing -pub(crate) fn process_inputs( +pub fn process_inputs( txin_index_to_tx_index: &[TxIndex], txin_index_to_value: &[Sats], txin_index_to_output_type: &[OutputType], diff --git a/crates/brk_computer/src/distribution/block/utxo/mod.rs b/crates/brk_computer/src/distribution/block/utxo/mod.rs index f2ec0636f..b50500383 100644 --- a/crates/brk_computer/src/distribution/block/utxo/mod.rs +++ b/crates/brk_computer/src/distribution/block/utxo/mod.rs @@ -1,5 +1,5 @@ mod inputs; mod outputs; -pub use inputs::*; -pub use outputs::*; +pub use inputs::process_inputs; +pub use outputs::process_outputs; diff --git a/crates/brk_computer/src/distribution/block/utxo/outputs.rs b/crates/brk_computer/src/distribution/block/utxo/outputs.rs index 71dc05ea0..3abdfb159 100644 --- a/crates/brk_computer/src/distribution/block/utxo/outputs.rs +++ b/crates/brk_computer/src/distribution/block/utxo/outputs.rs @@ -23,7 +23,7 @@ pub struct OutputsResult { /// 1. Read pre-collected value, output type, and type_index /// 2. Accumulate into Transacted by type and amount /// 3. Track address-specific data for address cohort processing -pub(crate) fn process_outputs( +pub fn process_outputs( txout_index_to_tx_index: &[TxIndex], txout_data_vec: &[TxOutData], ) -> OutputsResult { diff --git a/crates/brk_computer/src/distribution/compute/block_loop.rs b/crates/brk_computer/src/distribution/compute/block_loop.rs index 4a35cc495..c5b557cad 100644 --- a/crates/brk_computer/src/distribution/compute/block_loop.rs +++ b/crates/brk_computer/src/distribution/compute/block_loop.rs @@ -2,7 +2,8 @@ use brk_cohort::{ByAddrType, EntryPrice, Filter, Term}; use brk_error::Result; use brk_indexer::Indexer; use brk_types::{ - Cents, Date, Height, ONE_DAY_IN_SEC, OutputType, Sats, StoredF64, Timestamp, TxIndex, TypeIndex, + Cents, Date, Height, ONE_DAY_IN_SEC, OutputType, RangeMap, Sats, StoredF64, Timestamp, TxIndex, + TypeIndex, }; use rayon::prelude::*; use tracing::{debug, info}; @@ -23,7 +24,6 @@ use crate::{ use super::{ super::{ - RangeMap, metrics::CohortMetrics, state::{AddrStates, UTXOStates}, vecs::Vecs, @@ -35,7 +35,7 @@ use super::{ /// Process all blocks from starting_height to last_height. #[allow(clippy::too_many_arguments)] -pub(crate) fn process_blocks( +pub fn process_blocks( vecs: &mut Vecs, utxo_states: &mut UTXOStates, addr_states: &mut AddrStates, diff --git a/crates/brk_computer/src/distribution/compute/context.rs b/crates/brk_computer/src/distribution/compute/context.rs index f8b4fc8de..4292156d1 100644 --- a/crates/brk_computer/src/distribution/compute/context.rs +++ b/crates/brk_computer/src/distribution/compute/context.rs @@ -12,11 +12,11 @@ pub struct ComputeContext<'a> { } impl<'a> ComputeContext<'a> { - pub(crate) fn price_at(&self, height: Height) -> Cents { + pub fn price_at(&self, height: Height) -> Cents { self.height_to_price[height.to_usize()] } - pub(crate) fn timestamp_at(&self, height: Height) -> Timestamp { + pub fn timestamp_at(&self, height: Height) -> Timestamp { self.height_to_timestamp[height.to_usize()] } } diff --git a/crates/brk_computer/src/distribution/compute/mod.rs b/crates/brk_computer/src/distribution/compute/mod.rs index 415afc020..e4dafdc8a 100644 --- a/crates/brk_computer/src/distribution/compute/mod.rs +++ b/crates/brk_computer/src/distribution/compute/mod.rs @@ -5,11 +5,11 @@ mod readers; mod recover; mod write; -pub(crate) use block_loop::process_blocks; -pub(crate) use context::ComputeContext; -pub(crate) use price_range_max::PriceRangeMax; -pub(crate) use readers::{AddrReaders, IndexToTxIndexBuf, TxInReaders, TxOutData, TxOutReaders}; -pub(crate) use recover::{StartMode, determine_start_mode, reset_state}; +pub use block_loop::process_blocks; +pub use context::ComputeContext; +pub use price_range_max::PriceRangeMax; +pub use readers::{AddrReaders, IndexToTxIndexBuf, TxInReaders, TxOutData, TxOutReaders}; +pub use recover::{StartMode, determine_start_mode, reset_state}; /// Flush checkpoint interval (every N blocks). pub const FLUSH_INTERVAL: usize = 10_000; diff --git a/crates/brk_computer/src/distribution/compute/price_range_max.rs b/crates/brk_computer/src/distribution/compute/price_range_max.rs index aa5d384d9..afe559349 100644 --- a/crates/brk_computer/src/distribution/compute/price_range_max.rs +++ b/crates/brk_computer/src/distribution/compute/price_range_max.rs @@ -11,7 +11,7 @@ pub struct PriceRangeMax { } impl PriceRangeMax { - pub(crate) fn extend(&mut self, prices: &[Cents]) { + pub fn extend(&mut self, prices: &[Cents]) { let new_n = prices.len(); if new_n <= self.n || new_n == 0 { return; @@ -53,7 +53,7 @@ impl PriceRangeMax { ); } - pub(crate) fn truncate(&mut self, new_n: usize) { + pub fn truncate(&mut self, new_n: usize) { if new_n >= self.n { return; } @@ -73,7 +73,7 @@ impl PriceRangeMax { } #[inline] - pub(crate) fn range_max(&self, start: usize, end: usize) -> Cents { + pub fn range_max(&self, start: usize, end: usize) -> Cents { debug_assert!(start <= end && end < self.n); let len = end - start + 1; let level = (usize::BITS - len.leading_zeros() - 1) as usize; @@ -87,7 +87,7 @@ impl PriceRangeMax { } #[inline] - pub(crate) fn max_between(&self, from: Height, to: Height) -> Cents { + pub fn max_between(&self, from: Height, to: Height) -> Cents { self.range_max(from.to_usize(), to.to_usize()) } } diff --git a/crates/brk_computer/src/distribution/compute/readers/addr.rs b/crates/brk_computer/src/distribution/compute/readers/addr.rs index d12b1eacc..016655717 100644 --- a/crates/brk_computer/src/distribution/compute/readers/addr.rs +++ b/crates/brk_computer/src/distribution/compute/readers/addr.rs @@ -22,7 +22,7 @@ pub struct AddrReaders { } impl AddrReaders { - pub(crate) fn new(any_addr_indexes: &AnyAddrIndexesVecs, addrs_data: &AddrsDataVecs) -> Self { + pub fn new(any_addr_indexes: &AnyAddrIndexesVecs, addrs_data: &AddrsDataVecs) -> Self { Self { p2a: any_addr_indexes.p2a.reader(), p2pk33: any_addr_indexes.p2pk33.reader(), @@ -37,7 +37,7 @@ impl AddrReaders { } } - pub(crate) fn any_addr_index( + pub fn any_addr_index( &self, vecs: &AnyAddrIndexesVecs, addr_type: OutputType, @@ -58,16 +58,12 @@ impl AddrReaders { } #[inline] - pub(crate) fn funded_data( - &self, - vecs: &AddrsDataVecs, - index: FundedAddrIndex, - ) -> FundedAddrData { + pub fn funded_data(&self, vecs: &AddrsDataVecs, index: FundedAddrIndex) -> FundedAddrData { vecs.funded.get_with_reader(index, &self.funded).unwrap() } #[inline] - pub(crate) fn empty_data(&self, vecs: &AddrsDataVecs, index: EmptyAddrIndex) -> EmptyAddrData { + pub fn empty_data(&self, vecs: &AddrsDataVecs, index: EmptyAddrIndex) -> EmptyAddrData { vecs.empty.get_with_reader(index, &self.empty).unwrap() } } diff --git a/crates/brk_computer/src/distribution/compute/readers/index_to_tx_index.rs b/crates/brk_computer/src/distribution/compute/readers/index_to_tx_index.rs index 6f0eb7142..5aa142881 100644 --- a/crates/brk_computer/src/distribution/compute/readers/index_to_tx_index.rs +++ b/crates/brk_computer/src/distribution/compute/readers/index_to_tx_index.rs @@ -2,20 +2,20 @@ use brk_types::{StoredU64, TxIndex}; use vecdb::{ReadableVec, VecIndex}; /// Reusable buffers for a block's index-to-transaction-index mapping. -pub(crate) struct IndexToTxIndexBuf { +pub struct IndexToTxIndexBuf { counts: Vec, result: Vec, } impl IndexToTxIndexBuf { - pub(crate) fn new() -> Self { + pub fn new() -> Self { Self { counts: Vec::new(), result: Vec::new(), } } - pub(crate) fn build( + pub fn build( &mut self, block_first_tx_index: TxIndex, block_tx_count: u64, diff --git a/crates/brk_computer/src/distribution/compute/readers/mod.rs b/crates/brk_computer/src/distribution/compute/readers/mod.rs index 9e2af88e8..3d64c6698 100644 --- a/crates/brk_computer/src/distribution/compute/readers/mod.rs +++ b/crates/brk_computer/src/distribution/compute/readers/mod.rs @@ -4,8 +4,8 @@ mod tx_in; mod tx_out; mod tx_out_data; -pub(crate) use addr::AddrReaders; -pub(crate) use index_to_tx_index::IndexToTxIndexBuf; -pub(crate) use tx_in::TxInReaders; -pub(crate) use tx_out::TxOutReaders; -pub(crate) use tx_out_data::TxOutData; +pub use addr::AddrReaders; +pub use index_to_tx_index::IndexToTxIndexBuf; +pub use tx_in::TxInReaders; +pub use tx_out::TxOutReaders; +pub use tx_out_data::TxOutData; diff --git a/crates/brk_computer/src/distribution/compute/readers/tx_in.rs b/crates/brk_computer/src/distribution/compute/readers/tx_in.rs index 7a3e7548c..f61f539ae 100644 --- a/crates/brk_computer/src/distribution/compute/readers/tx_in.rs +++ b/crates/brk_computer/src/distribution/compute/readers/tx_in.rs @@ -1,9 +1,7 @@ use brk_indexer::Indexer; -use brk_types::{Height, OutPoint, OutputType, Sats, TxInIndex, TxIndex, TypeIndex}; +use brk_types::{Height, OutPoint, OutputType, RangeMap, Sats, TxInIndex, TxIndex, TypeIndex}; use vecdb::{PcoVec, ReadableVec}; -use crate::distribution::RangeMap; - /// Bulk txin reader with reusable buffers. pub struct TxInReaders<'a> { indexer: &'a Indexer, @@ -17,7 +15,7 @@ pub struct TxInReaders<'a> { } impl<'a> TxInReaders<'a> { - pub(crate) fn new( + pub fn new( indexer: &'a Indexer, input_values: &'a PcoVec, tx_index_to_height: &'a mut RangeMap, @@ -34,7 +32,7 @@ impl<'a> TxInReaders<'a> { } } - pub(crate) fn collect_block_inputs( + pub fn collect_block_inputs( &mut self, first_txin_index: usize, input_count: usize, diff --git a/crates/brk_computer/src/distribution/compute/readers/tx_out.rs b/crates/brk_computer/src/distribution/compute/readers/tx_out.rs index dc0c856cb..9af0ef9af 100644 --- a/crates/brk_computer/src/distribution/compute/readers/tx_out.rs +++ b/crates/brk_computer/src/distribution/compute/readers/tx_out.rs @@ -14,7 +14,7 @@ pub struct TxOutReaders<'a> { } impl<'a> TxOutReaders<'a> { - pub(crate) fn new(indexer: &'a Indexer) -> Self { + pub fn new(indexer: &'a Indexer) -> Self { Self { indexer, values_buf: Vec::new(), @@ -24,7 +24,7 @@ impl<'a> TxOutReaders<'a> { } } - pub(crate) fn collect_block_outputs( + pub fn collect_block_outputs( &mut self, first_txout_index: usize, output_count: usize, diff --git a/crates/brk_computer/src/distribution/compute/recover.rs b/crates/brk_computer/src/distribution/compute/recover.rs index 7df87bf4b..214878621 100644 --- a/crates/brk_computer/src/distribution/compute/recover.rs +++ b/crates/brk_computer/src/distribution/compute/recover.rs @@ -11,9 +11,9 @@ use super::super::{ }; /// Result of state recovery. -pub(crate) struct RecoveredState { +pub struct RecoveredState { /// Height to start processing from. Zero means fresh start. - pub(crate) starting_height: Height, + pub starting_height: Height, } impl Vecs { @@ -22,7 +22,7 @@ impl Vecs { /// Rolls back state vectors and imports cohort states. /// Validates that all rollbacks and imports are consistent. /// Returns Height::ZERO if any validation fails (triggers fresh start). - pub(crate) fn recover_state( + pub fn recover_state( &mut self, height: Height, chain_state_rollback: Option>, @@ -119,7 +119,7 @@ impl Vecs { /// Reset all state for fresh start. /// /// Resets all state vectors and cohort states. -pub(crate) fn reset_state( +pub fn reset_state( any_addr_indexes: &mut AnyAddrIndexesVecs, addrs_data: &mut AddrsDataVecs, utxo_states: &mut UTXOStates, @@ -142,7 +142,7 @@ pub(crate) fn reset_state( /// /// - `min_available`: minimum height we have data for across all stateful vecs /// - `resume_target`: the height we want to resume processing from -pub(crate) fn determine_start_mode(min_available: Height, resume_target: Height) -> StartMode { +pub fn determine_start_mode(min_available: Height, resume_target: Height) -> StartMode { // No data to resume from if resume_target.is_zero() { return StartMode::Fresh; diff --git a/crates/brk_computer/src/distribution/compute/write.rs b/crates/brk_computer/src/distribution/compute/write.rs index 65e084815..966c6d5f9 100644 --- a/crates/brk_computer/src/distribution/compute/write.rs +++ b/crates/brk_computer/src/distribution/compute/write.rs @@ -22,7 +22,7 @@ use super::super::addr::{AddrTypeToTypeIndexMap, AddrsDataVecs, AnyAddrIndexesVe /// - Updates address indexes /// /// Call this before `flush()` to prepare data for writing. -pub(crate) fn process_addr_updates( +pub fn process_addr_updates( addrs_data: &mut AddrsDataVecs, addr_indexes: &mut AnyAddrIndexesVecs, empty_updates: AddrTypeToTypeIndexMap>, @@ -50,7 +50,7 @@ pub(crate) fn process_addr_updates( /// - Chain state /// /// Set `with_changes=true` near chain tip to enable rollback support. -pub(crate) fn write( +pub fn write( vecs: &mut Vecs, utxo_states: &mut UTXOStates, addr_states: &mut AddrStates, diff --git a/crates/brk_computer/src/distribution/inner.rs b/crates/brk_computer/src/distribution/inner.rs new file mode 100644 index 000000000..f348420b2 --- /dev/null +++ b/crates/brk_computer/src/distribution/inner.rs @@ -0,0 +1,36 @@ +use brk_types::{Cents, Height, RangeMap, Timestamp, TxIndex}; +use vecdb::Database; + +use super::{compute::PriceRangeMax, state::BlockState}; + +/// Private storage and transient computation state for distribution. +#[derive(Clone)] +pub struct Inner { + pub db: Database, + pub chain_state: Vec, + pub tx_index_to_height: RangeMap, + pub prices: Vec, + pub timestamps: Vec, + pub price_range_max: PriceRangeMax, +} + +impl Inner { + pub fn new(db: Database) -> Self { + Self { + db, + chain_state: Vec::new(), + tx_index_to_height: RangeMap::default(), + prices: Vec::new(), + timestamps: Vec::new(), + price_range_max: PriceRangeMax::default(), + } + } + + pub fn reset(&mut self) { + self.chain_state = Vec::new(); + self.tx_index_to_height = RangeMap::default(); + self.prices = Vec::new(); + self.timestamps = Vec::new(); + self.price_range_max = PriceRangeMax::default(); + } +} diff --git a/crates/brk_computer/src/distribution/metrics/activity/vecs/coindays_destroyed.rs b/crates/brk_computer/src/distribution/metrics/activity/vecs/coindays_destroyed.rs index 04bda0c68..68d2ae147 100644 --- a/crates/brk_computer/src/distribution/metrics/activity/vecs/coindays_destroyed.rs +++ b/crates/brk_computer/src/distribution/metrics/activity/vecs/coindays_destroyed.rs @@ -19,7 +19,7 @@ pub struct CoindaysDestroyedByCohort { } impl CoindaysDestroyedByCohort { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, diff --git a/crates/brk_computer/src/distribution/metrics/activity/vecs/collection.rs b/crates/brk_computer/src/distribution/metrics/activity/vecs/collection.rs index 2ebd109c5..78d782b70 100644 --- a/crates/brk_computer/src/distribution/metrics/activity/vecs/collection.rs +++ b/crates/brk_computer/src/distribution/metrics/activity/vecs/collection.rs @@ -33,7 +33,7 @@ pub struct ActivityVecs { } impl ActivityVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, @@ -117,14 +117,14 @@ impl ActivityVecs { ) } - pub(crate) fn sources(&self, filter: &Filter) -> Option { + pub fn sources(&self, filter: &Filter) -> Option { Some(ActivitySources { transfer_volume: self.transfer_volume.cohorts.get(filter)?.clone(), }) } #[inline(always)] - pub(crate) fn push( + pub fn push( &mut self, height_price: Cents, transfer_volume: UTXORows, @@ -150,11 +150,7 @@ impl ActivityVecs { } #[inline(always)] - pub(crate) fn push_addr_balance( - &mut self, - height_price: Cents, - transfer_volume: &AmountRange, - ) { + pub fn push_addr_balance(&mut self, height_price: Cents, transfer_volume: &AmountRange) { let cents = AmountRange::from_fn(|amount| { SatsToCents::apply(*amount.select(transfer_volume), height_price) }); @@ -162,7 +158,7 @@ impl ActivityVecs { .push_addr_balance(transfer_volume, ¢s); } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.transfer_volume .min_len() .min(self.coindays_destroyed.cumulative.min_len()) @@ -177,7 +173,7 @@ impl ActivityVecs { ) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = self.transfer_volume.collect_vecs_mut(); vecs.extend(self.coindays_destroyed.cumulative.collect_vecs_mut()); vecs.extend(self.transfer_volume_in_profit.collect_vecs_mut()); @@ -186,7 +182,7 @@ impl ActivityVecs { vecs } - pub(crate) fn compute_dormancy(&mut self, max_from: Height, exit: &Exit) -> Result<()> { + pub fn compute_dormancy(&mut self, max_from: Height, exit: &Exit) -> Result<()> { for id in UTXOAggregateId::ALL { let filter = id.select(&UTXO_AGGREGATE_FILTERS); let coindays_destroyed = &self diff --git a/crates/brk_computer/src/distribution/metrics/activity/vecs/core_cumulative_value.rs b/crates/brk_computer/src/distribution/metrics/activity/vecs/core_cumulative_value.rs index 4b8aa5151..0fd077a1f 100644 --- a/crates/brk_computer/src/distribution/metrics/activity/vecs/core_cumulative_value.rs +++ b/crates/brk_computer/src/distribution/metrics/activity/vecs/core_cumulative_value.rs @@ -18,7 +18,7 @@ pub struct CoreCumulativeValueByCohort { } impl CoreCumulativeValueByCohort { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, @@ -51,15 +51,15 @@ impl CoreCumulativeValueByCohort { } #[inline(always)] - pub(super) fn push_block(&mut self, sats: UTXORows, cents: UTXORows) { + pub fn push_block(&mut self, sats: UTXORows, cents: UTXORows) { self.cumulative.push_block(sats, cents); } - pub(super) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.cumulative.min_len() } - pub(super) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { self.cumulative.collect_vecs_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/activity/vecs/cumulative_value.rs b/crates/brk_computer/src/distribution/metrics/activity/vecs/cumulative_value.rs index 498b0d0c1..f0730a562 100644 --- a/crates/brk_computer/src/distribution/metrics/activity/vecs/cumulative_value.rs +++ b/crates/brk_computer/src/distribution/metrics/activity/vecs/cumulative_value.rs @@ -19,7 +19,7 @@ pub struct CumulativeValueByCohort { } impl CumulativeValueByCohort { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, @@ -71,24 +71,20 @@ impl CumulativeValueByCohort { } #[inline(always)] - pub(super) fn push_block(&mut self, sats: UTXORows, cents: UTXORows) { + pub fn push_block(&mut self, sats: UTXORows, cents: UTXORows) { self.cumulative.push_block(sats, cents); } #[inline(always)] - pub(super) fn push_addr_balance( - &mut self, - sats: &AmountRange, - cents: &AmountRange, - ) { + pub fn push_addr_balance(&mut self, sats: &AmountRange, cents: &AmountRange) { self.addr_balance.push_cumulative(sats, cents); } - pub(super) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.cumulative.min_len().min(self.addr_balance.len()) } - pub(super) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = self.cumulative.collect_vecs_mut(); vecs.extend(self.addr_balance.collect_vecs_mut()); vecs diff --git a/crates/brk_computer/src/distribution/metrics/activity/vecs/mod.rs b/crates/brk_computer/src/distribution/metrics/activity/vecs/mod.rs index 4c7ca3d49..705cbc94c 100644 --- a/crates/brk_computer/src/distribution/metrics/activity/vecs/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/activity/vecs/mod.rs @@ -4,8 +4,8 @@ mod core_cumulative_value; mod cumulative_value; mod sources; -pub(super) use coindays_destroyed::CoindaysDestroyedByCohort; +pub use coindays_destroyed::CoindaysDestroyedByCohort; pub use collection::ActivityVecs; -pub(super) use core_cumulative_value::CoreCumulativeValueByCohort; -pub(super) use cumulative_value::CumulativeValueByCohort; +pub use core_cumulative_value::CoreCumulativeValueByCohort; +pub use cumulative_value::CumulativeValueByCohort; pub use sources::ActivitySources; diff --git a/crates/brk_computer/src/distribution/metrics/additive/aggregate/fiat.rs b/crates/brk_computer/src/distribution/metrics/additive/aggregate/fiat.rs index cde8ad0d0..a44459fc6 100644 --- a/crates/brk_computer/src/distribution/metrics/additive/aggregate/fiat.rs +++ b/crates/brk_computer/src/distribution/metrics/additive/aggregate/fiat.rs @@ -13,7 +13,7 @@ use vecdb::{ use crate::{ indexes, - internal::{ColumnarPerBlock, FiatType, LazyFiatPerBlock}, + internal::{ColumnarPerBlock, FiatType, LazyFiatPerBlock, cache_wrap}, }; #[derive(Deref, DerefMut, Traversable)] @@ -25,7 +25,7 @@ pub struct AdditiveAggregateFiatPerBlock { } impl AdditiveAggregateFiatPerBlock { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, @@ -44,13 +44,12 @@ impl AdditiveAggregateFiatPerBlock { metric, ); let cents = match aggregate { - UTXOAggregateId::All => source - .sum_columns( - &format!("{name}_cents"), - version, - TermId::ALL.iter().copied(), - ) - .read_only_boxed_clone(), + UTXOAggregateId::All => cache_wrap(source.sum_columns( + &format!("{name}_cents"), + version, + TermId::ALL.iter().copied(), + )) + .read_only_boxed_clone(), UTXOAggregateId::Sth => source .column(&format!("{name}_cents"), version, TermId::Short) .read_only_boxed_clone(), @@ -66,18 +65,18 @@ impl AdditiveAggregateFiatPerBlock { } #[inline(always)] - pub(crate) fn push(&mut self, row: UTXOAggregate) { + pub fn push(&mut self, row: UTXOAggregate) { self.values.push(ByTerm { short: row.sth, long: row.lth, }); } - pub(crate) fn len(&self) -> usize { + pub fn len(&self) -> usize { self.values.height.len() } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { self.values.stored_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/additive/mod.rs b/crates/brk_computer/src/distribution/metrics/additive/mod.rs index f863eee55..6dcba3f33 100644 --- a/crates/brk_computer/src/distribution/metrics/additive/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/additive/mod.rs @@ -2,4 +2,4 @@ mod aggregate; mod utxo_raw; pub use aggregate::AdditiveAggregateFiatPerBlock; -pub(crate) use utxo_raw::AdditiveUTXORawVec; +pub use utxo_raw::AdditiveUTXORawVec; diff --git a/crates/brk_computer/src/distribution/metrics/additive/utxo_raw.rs b/crates/brk_computer/src/distribution/metrics/additive/utxo_raw.rs index 99888ce06..893d29fdd 100644 --- a/crates/brk_computer/src/distribution/metrics/additive/utxo_raw.rs +++ b/crates/brk_computer/src/distribution/metrics/additive/utxo_raw.rs @@ -21,25 +21,25 @@ impl AdditiveUTXORawVec where T: BytesVecValue + AddAssign + Copy, { - pub(crate) fn forced_import(db: &Database, name: &str, version: Version) -> Result { + pub fn forced_import(db: &Database, name: &str, version: Version) -> Result { Ok(Self { matrix: ImportableVec::forced_import(db, &format!("{name}_by_term"), version)?, }) } #[inline(always)] - pub(crate) fn push(&mut self, row: &UTXOAggregate) { + pub fn push(&mut self, row: &UTXOAggregate) { self.matrix.push(ByTerm { short: row.sth, long: row.lth, }); } - pub(crate) fn len(&self) -> usize { + pub fn len(&self) -> usize { self.matrix.len() } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { &mut self.matrix } } diff --git a/crates/brk_computer/src/distribution/metrics/aggregate/cumulative_fiat.rs b/crates/brk_computer/src/distribution/metrics/aggregate/cumulative_fiat.rs index d919f2595..a50f933ba 100644 --- a/crates/brk_computer/src/distribution/metrics/aggregate/cumulative_fiat.rs +++ b/crates/brk_computer/src/distribution/metrics/aggregate/cumulative_fiat.rs @@ -15,7 +15,7 @@ use crate::{ indexes, internal::{ CachedWindowStartVec, ColumnarPerBlockCumulativeRolling, FiatType, - LazyFiatPerBlockCumulativeWithSums, Windows, + LazyFiatPerBlockCumulativeWithSums, Windows, cache_wrap, }, }; @@ -33,7 +33,7 @@ pub struct AdditiveAggregateFiatPerBlockCumulativeWithSums AdditiveAggregateFiatPerBlockCumulativeWithSums { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, @@ -53,13 +53,12 @@ impl AdditiveAggregateFiatPerBlockCumulativeWithSums { metric, ); let cumulative = match id { - UTXOAggregateId::All => source - .sum_columns( - &format!("{name}_cumulative_cents"), - version, - TermId::ALL.iter().copied(), - ) - .read_only_boxed_clone(), + UTXOAggregateId::All => cache_wrap(source.sum_columns( + &format!("{name}_cumulative_cents"), + version, + TermId::ALL.iter().copied(), + )) + .read_only_boxed_clone(), UTXOAggregateId::Sth => source .column(&format!("{name}_cumulative_cents"), version, TermId::Short) .read_only_boxed_clone(), @@ -81,18 +80,18 @@ impl AdditiveAggregateFiatPerBlockCumulativeWithSums { } #[inline(always)] - pub(crate) fn push_block(&mut self, row: UTXOAggregate) { + pub fn push_block(&mut self, row: UTXOAggregate) { self.values.push_block(ByTerm { short: row.sth, long: row.lth, }); } - pub(crate) fn len(&self) -> usize { + pub fn len(&self) -> usize { self.values.cumulative.len() } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { self.values.stored_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/aggregate/fiat.rs b/crates/brk_computer/src/distribution/metrics/aggregate/fiat.rs index e0c0b06c7..473071fa5 100644 --- a/crates/brk_computer/src/distribution/metrics/aggregate/fiat.rs +++ b/crates/brk_computer/src/distribution/metrics/aggregate/fiat.rs @@ -23,7 +23,7 @@ pub struct AggregateFiatPerBlock { } impl AggregateFiatPerBlock { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, @@ -55,15 +55,15 @@ impl AggregateFiatPerBlock { } #[inline(always)] - pub(crate) fn push(&mut self, row: UTXOAggregate) { + pub fn push(&mut self, row: UTXOAggregate) { self.values.push(row); } - pub(crate) fn len(&self) -> usize { + pub fn len(&self) -> usize { self.values.height.len() } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { self.values.stored_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/aggregate/percent.rs b/crates/brk_computer/src/distribution/metrics/aggregate/percent.rs index 651f15368..435664eec 100644 --- a/crates/brk_computer/src/distribution/metrics/aggregate/percent.rs +++ b/crates/brk_computer/src/distribution/metrics/aggregate/percent.rs @@ -26,7 +26,7 @@ pub struct AggregatePercentPerBlock { } impl AggregatePercentPerBlock { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, @@ -50,7 +50,7 @@ impl AggregatePercentPerBlock { Ok(Self { values }) } - pub(crate) fn compute_columns2<'a, A, C, V1, V2>( + pub fn compute_columns2<'a, A, C, V1, V2>( &mut self, max_from: Height, source1: impl Fn(UTXOAggregateId) -> &'a V1, @@ -68,7 +68,7 @@ impl AggregatePercentPerBlock { .compute_columns2(max_from, source1, source2, transform, exit) } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { self.values.stored_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/aggregate/price.rs b/crates/brk_computer/src/distribution/metrics/aggregate/price.rs index a0da8e220..49ec9661b 100644 --- a/crates/brk_computer/src/distribution/metrics/aggregate/price.rs +++ b/crates/brk_computer/src/distribution/metrics/aggregate/price.rs @@ -26,7 +26,7 @@ pub struct AggregatePriceWithRatioPerBlock { } impl AggregatePriceWithRatioPerBlock { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, @@ -54,15 +54,15 @@ impl AggregatePriceWithRatioPerBlock { } #[inline(always)] - pub(crate) fn push(&mut self, row: UTXOAggregate) { + pub fn push(&mut self, row: UTXOAggregate) { self.values.push(row); } - pub(crate) fn len(&self) -> usize { + pub fn len(&self) -> usize { self.values.height.len() } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { self.values.stored_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/cohorts.rs b/crates/brk_computer/src/distribution/metrics/cohorts.rs index 1bcb5737d..ff7e835f0 100644 --- a/crates/brk_computer/src/distribution/metrics/cohorts.rs +++ b/crates/brk_computer/src/distribution/metrics/cohorts.rs @@ -5,7 +5,7 @@ use brk_cohort::{ use brk_error::Result; use brk_indexer::Lengths; use brk_traversable::Traversable; -use brk_types::{Cents, Height, StoredU64, Version}; +use brk_types::{Cents, Height, Sats, StoredU64, Version}; use rayon::prelude::*; use vecdb::{ AnyStoredVec, CachedBoxedVec, ColumnId, Database, Exit, ReadOnlyClone, Rw, StorageMode, @@ -13,11 +13,11 @@ use vecdb::{ use crate::{ distribution::{ - AllChainCache, + AllChainSources, metrics::{ - ActivityVecs, AdjustedSoprComputeSource, AllSupplyCache, CostBasisVecs, OutputsVecs, - ProfitabilityVecs, RealizedAggregateSources, RealizedAggregateState, RealizedVecs, - RelativeSource, RelativeVecs, Sopr24hInput, SupplyVecs, UTXORows, UnrealizedVecs, + ActivityVecs, AdjustedSoprComputeSource, CostBasisVecs, OutputsVecs, ProfitabilityVecs, + RealizedAggregateSources, RealizedAggregateState, RealizedVecs, RelativeSource, + RelativeVecs, Sopr24hInput, SupplyVecs, UTXORows, UnrealizedVecs, }, state::{AddrCohortState, RealizedOps, UTXOStates, UnrealizedState}, }, @@ -38,13 +38,11 @@ pub struct CohortMetrics { pub cost_basis: Box>, pub relative: Box>, pub profitability: Box>, - #[traversable(skip)] - all_supply_cache: AllSupplyCache, } impl CohortMetrics { /// Import all cohort metrics from the database. - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, @@ -54,10 +52,14 @@ impl CohortMetrics { let v = version + VERSION; // Phase 1: Import supply first so its shared sources can back every cohort view. - let (supply, all_supply_cache) = - SupplyVecs::forced_import(db, v, indexes, cached_starts, spot_price)?; - let supply = Box::new(supply); - let all_chain_cache = AllChainCache::new(&all_supply_cache, spot_price); + let supply = Box::new(SupplyVecs::forced_import( + db, + v, + indexes, + cached_starts, + spot_price, + )?); + let all_chain_sources = AllChainSources::new(supply.total.all_supply(), spot_price); let outputs = Box::new(OutputsVecs::forced_import(db, v, indexes, cached_starts)?); let activity = Box::new(ActivityVecs::forced_import(db, v, indexes, cached_starts)?); let realized = Box::new(RealizedVecs::forced_import( @@ -66,7 +68,7 @@ impl CohortMetrics { indexes, cached_starts, spot_price, - &all_chain_cache, + &all_chain_sources, )?); let unrealized = Box::new(UnrealizedVecs::forced_import( db, @@ -103,7 +105,7 @@ impl CohortMetrics { db, v, indexes, - &all_chain_cache, + &all_chain_sources, &relative_sources, )?); @@ -116,17 +118,16 @@ impl CohortMetrics { cost_basis, relative, profitability, - all_supply_cache, }) } /// Reset in-memory caches that become stale after rollback. - pub(crate) fn reset_caches(&mut self) { - self.all_supply_cache.clear(); + pub fn reset_caches(&mut self) { + self.supply.total.all_supply().clear(); } - pub(crate) fn all_supply_cache(&self) -> &AllSupplyCache { - &self.all_supply_cache + pub fn all_supply(&self) -> &CachedBoxedVec { + self.supply.total.all_supply() } fn sopr_24h_inputs(&self) -> UTXOGroupsWithoutAmountOrType { @@ -147,7 +148,7 @@ impl CohortMetrics { } #[inline(always)] - pub(crate) fn push_supply_and_unrealized( + pub fn push_supply_and_unrealized( &mut self, states: &mut UTXOStates, height_price: Cents, @@ -209,7 +210,7 @@ impl CohortMetrics { } #[inline(always)] - pub(crate) fn push_outputs(&mut self, states: &UTXOStates) { + pub fn push_outputs(&mut self, states: &UTXOStates) { let outputs = &mut self.outputs; let UTXOStates { age_range, @@ -235,7 +236,7 @@ impl CohortMetrics { } #[inline(always)] - pub(crate) fn push_activity(&mut self, states: &UTXOStates, height_price: Cents) { + pub fn push_activity(&mut self, states: &UTXOStates, height_price: Cents) { let activity = &mut self.activity; let UTXOStates { age_range, @@ -277,7 +278,7 @@ impl CohortMetrics { } #[inline(always)] - pub(crate) fn push_realized(&mut self, states: &UTXOStates) { + pub fn push_realized(&mut self, states: &UTXOStates) { let realized = &mut self.realized; let UTXOStates { age_range, @@ -301,7 +302,7 @@ impl CohortMetrics { } #[inline(always)] - pub(crate) fn push_addr_balance( + pub fn push_addr_balance( &mut self, states: &AmountRange, height_price: Cents, @@ -327,11 +328,7 @@ impl CohortMetrics { } /// First phase of post-processing: compute index transforms. - pub(crate) fn compute_rest_part1( - &mut self, - starting_lengths: &Lengths, - exit: &Exit, - ) -> Result<()> { + pub fn compute_rest_part1(&mut self, starting_lengths: &Lengths, exit: &Exit) -> Result<()> { self.activity .compute_dormancy(starting_lengths.height, exit)?; @@ -339,11 +336,7 @@ impl CohortMetrics { } /// Second phase of post-processing: compute derived ratios and relative metrics. - pub(crate) fn compute_rest_part2( - &mut self, - starting_lengths: &Lengths, - exit: &Exit, - ) -> Result<()> { + pub fn compute_rest_part2(&mut self, starting_lengths: &Lengths, exit: &Exit) -> Result<()> { // Get under_1h value sources for adjusted computation (cloned to avoid borrow conflicts). let under_1h_value_created = self .activity @@ -456,9 +449,7 @@ impl CohortMetrics { } /// Returns a parallel iterator over all vecs for parallel writing. - pub(crate) fn par_iter_vecs_mut( - &mut self, - ) -> impl ParallelIterator { + pub fn par_iter_vecs_mut(&mut self) -> impl ParallelIterator { let mut vecs: Vec<&mut dyn AnyStoredVec> = Vec::with_capacity(128); vecs.extend(self.supply.collect_vecs_mut()); vecs.extend(self.outputs.collect_vecs_mut()); @@ -471,7 +462,7 @@ impl CohortMetrics { vecs.into_par_iter() } - pub(crate) fn min_stateful_len(&self) -> Height { + pub fn min_stateful_len(&self) -> Height { Height::from(self.supply.min_len()) .min(Height::from(self.outputs.min_len())) .min(Height::from(self.activity.min_len())) @@ -482,13 +473,13 @@ impl CohortMetrics { } /// Validate computed versions for all cohorts. - pub(crate) fn validate_computed_versions(&mut self, base_version: Version) -> Result<()> { + pub fn validate_computed_versions(&mut self, base_version: Version) -> Result<()> { self.cost_basis.validate_computed_versions(base_version) } /// Aggregate realized fields from age-range states and push all/STH/LTH. /// Called during the block loop after separate cohorts' push_state but before reset. - pub(crate) fn push_overlapping( + pub fn push_overlapping( &mut self, states: &UTXOStates, height_price: Cents, diff --git a/crates/brk_computer/src/distribution/metrics/columnar/additive/mod.rs b/crates/brk_computer/src/distribution/metrics/columnar/additive/mod.rs index 77ac0307e..0913233cf 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/additive/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/additive/mod.rs @@ -2,6 +2,6 @@ mod with_amount_and_type; mod without_amount; mod without_amount_or_type; -pub(crate) use with_amount_and_type::UTXOColumnarMetric; -pub(crate) use without_amount::UTXOColumnarMetricWithoutAmount; -pub(crate) use without_amount_or_type::UTXOColumnarMetricWithoutAmountOrType; +pub use with_amount_and_type::UTXOColumnarMetric; +pub use without_amount::UTXOColumnarMetricWithoutAmount; +pub use without_amount_or_type::UTXOColumnarMetricWithoutAmountOrType; diff --git a/crates/brk_computer/src/distribution/metrics/columnar/additive/with_amount_and_type.rs b/crates/brk_computer/src/distribution/metrics/columnar/additive/with_amount_and_type.rs index 699bea539..5cfdd2672 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/additive/with_amount_and_type.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/additive/with_amount_and_type.rs @@ -32,7 +32,7 @@ impl UTXOColumnarMetric where T: PcoVecValue + AddAssign, { - pub(crate) fn forced_import(db: &Database, name: &str, version: Version) -> Result { + pub fn forced_import(db: &Database, name: &str, version: Version) -> Result { let version = version + Version::ONE; Ok(Self { age_range_matrix: EagerVec::forced_import( @@ -52,7 +52,7 @@ where }) } - pub(crate) fn additive_source( + pub fn additive_source( &self, filter: &Filter, name: &str, @@ -70,7 +70,7 @@ where }) } - pub(crate) fn direct_source( + pub fn direct_source( &self, filter: &Filter, name: &str, @@ -131,7 +131,7 @@ where } } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.age_range_matrix .len() .min(self.epoch_matrix.len()) @@ -142,7 +142,7 @@ where } #[inline(always)] - pub(crate) fn push(&mut self, rows: UTXORows) { + pub fn push(&mut self, rows: UTXORows) { let UTXORows { age_range, epoch, @@ -159,7 +159,7 @@ where self.amount_range_matrix.push(amount_range); } - pub(crate) fn collect_last(&self) -> Option> + pub fn collect_last(&self) -> Option> where T: Default, { @@ -173,7 +173,7 @@ where }) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { vec![ &mut self.age_range_matrix, &mut self.epoch_matrix, diff --git a/crates/brk_computer/src/distribution/metrics/columnar/additive/without_amount.rs b/crates/brk_computer/src/distribution/metrics/columnar/additive/without_amount.rs index 1af987e91..ea3d12573 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/additive/without_amount.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/additive/without_amount.rs @@ -30,7 +30,7 @@ impl UTXOColumnarMetricWithoutAmount where T: PcoVecValue + AddAssign, { - pub(crate) fn forced_import(db: &Database, name: &str, version: Version) -> Result { + pub fn forced_import(db: &Database, name: &str, version: Version) -> Result { let version = version + Version::ONE; Ok(Self { age_range_matrix: EagerVec::forced_import( @@ -45,7 +45,7 @@ where }) } - pub(crate) fn additive_source( + pub fn additive_source( &self, filter: &Filter, name: &str, @@ -61,7 +61,7 @@ where }) } - pub(super) fn direct_source( + pub fn direct_source( &self, filter: &Filter, name: &str, @@ -91,7 +91,7 @@ where } } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.age_range_matrix .len() .min(self.epoch_matrix.len()) @@ -101,7 +101,7 @@ where } #[inline(always)] - pub(crate) fn push(&mut self, rows: UTXORows) { + pub fn push(&mut self, rows: UTXORows) { let UTXORows { age_range, epoch, @@ -117,7 +117,7 @@ where self.type_matrix.push(type_); } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { vec![ &mut self.age_range_matrix, &mut self.epoch_matrix, diff --git a/crates/brk_computer/src/distribution/metrics/columnar/additive/without_amount_or_type.rs b/crates/brk_computer/src/distribution/metrics/columnar/additive/without_amount_or_type.rs index acf066707..e977babc0 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/additive/without_amount_or_type.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/additive/without_amount_or_type.rs @@ -15,6 +15,7 @@ use vecdb::{ }; use super::super::UTXORows; +use crate::internal::cache_wrap; #[derive(Traversable)] pub struct UTXOColumnarMetricWithoutAmountOrType @@ -31,7 +32,7 @@ impl UTXOColumnarMetricWithoutAmountOrType where T: PcoVecValue + AddAssign, { - pub(crate) fn forced_import(db: &Database, name: &str, version: Version) -> Result { + pub fn forced_import(db: &Database, name: &str, version: Version) -> Result { let version = version + Version::ONE; Ok(Self { age_range_matrix: EagerVec::forced_import( @@ -45,7 +46,7 @@ where }) } - pub(crate) fn additive_source( + pub fn additive_source( &self, filter: &Filter, name: &str, @@ -55,7 +56,7 @@ where .or_else(|| self.aggregate_source(filter, name, version)) } - pub(super) fn direct_source( + pub fn direct_source( &self, filter: &Filter, name: &str, @@ -72,7 +73,7 @@ where ) } - pub(super) fn direct_source_from( + pub fn direct_source_from( age_range_matrix: &ReadOnlyColumnarVec, AgeRangeId>, epoch_matrix: &ReadOnlyColumnarVec, EpochId>, class_matrix: &ReadOnlyColumnarVec, ClassId>, @@ -103,7 +104,7 @@ where } } - pub(super) fn aggregate_source( + pub fn aggregate_source( &self, filter: &Filter, name: &str, @@ -117,14 +118,14 @@ where ) } - pub(super) fn aggregate_source_from( + pub fn aggregate_source_from( age_range_matrix: &ReadOnlyColumnarVec, AgeRangeId>, filter: &Filter, name: &str, version: Version, ) -> Option> { match filter { - Filter::All => Some(Self::sum( + Filter::All => Some(Self::budgeted_sum( age_range_matrix, name, version, @@ -165,7 +166,7 @@ where } } - pub(super) fn column( + pub fn column( source: &ReadOnlyColumnarVec, C>, name: &str, version: Version, @@ -177,7 +178,7 @@ where source.column(name, version, column).read_only_boxed_clone() } - pub(super) fn sum( + pub fn sum( source: &ReadOnlyColumnarVec, C>, name: &str, version: Version, @@ -191,7 +192,19 @@ where .read_only_boxed_clone() } - pub(crate) fn min_len(&self) -> usize { + fn budgeted_sum( + source: &ReadOnlyColumnarVec, C>, + name: &str, + version: Version, + columns: impl IntoIterator, + ) -> ReadableBoxedVec + where + C: ColumnId, + { + cache_wrap(source.sum_columns(name, version, columns)).read_only_boxed_clone() + } + + pub fn min_len(&self) -> usize { self.age_range_matrix .len() .min(self.epoch_matrix.len()) @@ -199,7 +212,7 @@ where .min(self.entry_matrix.len()) } - pub(super) fn push_parts( + pub fn push_parts( &mut self, age_range: AgeRange, epoch: ByEpoch, @@ -213,11 +226,11 @@ where } #[inline(always)] - pub(crate) fn push(&mut self, rows: UTXORows) { + pub fn push(&mut self, rows: UTXORows) { self.push_parts(rows.age_range, rows.epoch, rows.class, rows.entry); } - pub(crate) fn collect_last(&self) -> Option> + pub fn collect_last(&self) -> Option> where T: Default, { @@ -231,7 +244,7 @@ where }) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { vec![ &mut self.age_range_matrix, &mut self.epoch_matrix, diff --git a/crates/brk_computer/src/distribution/metrics/columnar/amount.rs b/crates/brk_computer/src/distribution/metrics/columnar/amount.rs index d21709876..2d8ef031d 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/amount.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/amount.rs @@ -29,7 +29,7 @@ impl ColumnarAmount where T: PcoVecValue + AddAssign, { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, matrix_name: &str, context: CohortContext, @@ -71,12 +71,12 @@ where } #[inline(always)] - pub(crate) fn push(&mut self, row: AmountRange) { + pub fn push(&mut self, row: AmountRange) { self.matrix.push(row); } #[inline(always)] - pub(crate) fn push_cumulative(&mut self, delta: &AmountRange) + pub fn push_cumulative(&mut self, delta: &AmountRange) where T: AddAssign + Default, { @@ -92,16 +92,16 @@ where self.last = Some((len + 1, cumulative)); } - pub(crate) fn len(&self) -> usize { + pub fn len(&self) -> usize { self.matrix.len() } - pub(crate) fn reset(&mut self) -> Result<()> { + pub fn reset(&mut self) -> Result<()> { self.last = None; self.matrix.reset().map_err(Into::into) } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { self.last = None; &mut self.matrix } diff --git a/crates/brk_computer/src/distribution/metrics/columnar/amount_value.rs b/crates/brk_computer/src/distribution/metrics/columnar/amount_value.rs index 888dd0f8a..c46b84f9f 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/amount_value.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/amount_value.rs @@ -17,7 +17,7 @@ pub struct ColumnarAmountValue { } impl ColumnarAmountValue { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, matrix_name: &str, context: CohortContext, @@ -63,15 +63,15 @@ impl ColumnarAmountValue { } #[inline(always)] - pub(crate) fn push_cumulative(&mut self, sats: &AmountRange, cents: &AmountRange) { + pub fn push_cumulative(&mut self, sats: &AmountRange, cents: &AmountRange) { self.values.push_block(sats.clone(), cents.clone()); } - pub(crate) fn len(&self) -> usize { + pub fn len(&self) -> usize { self.values.len() } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { self.values.collect_vecs_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/mod.rs b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/mod.rs index 301ebbfb4..39b7be7aa 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/mod.rs @@ -3,7 +3,7 @@ mod value_without_amount_or_type; mod with_amount_and_type; mod without_amount_or_type; -pub(crate) use value_with_amount_and_type::CumulativeUTXOValueColumnarMetric; -pub(crate) use value_without_amount_or_type::CumulativeUTXOValueColumnarMetricWithoutAmountOrType; -pub(crate) use with_amount_and_type::CumulativeUTXOColumnarMetric; -pub(crate) use without_amount_or_type::CumulativeUTXOColumnarMetricWithoutAmountOrType; +pub use value_with_amount_and_type::CumulativeUTXOValueColumnarMetric; +pub use value_without_amount_or_type::CumulativeUTXOValueColumnarMetricWithoutAmountOrType; +pub use with_amount_and_type::CumulativeUTXOColumnarMetric; +pub use without_amount_or_type::CumulativeUTXOColumnarMetricWithoutAmountOrType; diff --git a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/value_with_amount_and_type.rs b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/value_with_amount_and_type.rs index 916c3fe6f..89d08a964 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/value_with_amount_and_type.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/value_with_amount_and_type.rs @@ -23,7 +23,7 @@ pub struct CumulativeUTXOValueColumnarMetric { } impl CumulativeUTXOValueColumnarMetric { - pub(crate) fn forced_import(db: &Database, name: &str, version: Version) -> Result { + pub fn forced_import(db: &Database, name: &str, version: Version) -> Result { let version = version + Version::ONE; Ok(Self { age_range: Self::import(db, &format!("utxos_{name}_by_age_range"), version)?, @@ -46,7 +46,7 @@ impl CumulativeUTXOValueColumnarMetric { ColumnarValuePerBlockCumulativeRolling::forced_import(db, name, version, |_, _| ()) } - pub(crate) fn sources( + pub fn sources( &self, filter: &Filter, name: &str, @@ -120,12 +120,12 @@ impl CumulativeUTXOValueColumnarMetric { ReadableBoxedVec, )> { let columns = CumulativeUTXOValueColumnarMetricWithoutAmountOrType::age_columns(filter)?; - Some(Self::matrix_sources( - &self.age_range, - name, - version, - columns, - )) + Some(if matches!(filter, Filter::All) { + self.age_range + .budgeted_sources(&format!("{name}_cumulative"), version, columns) + } else { + Self::matrix_sources(&self.age_range, name, version, columns) + }) } fn matrix_sources( @@ -146,7 +146,7 @@ impl CumulativeUTXOValueColumnarMetric { } #[inline(always)] - pub(crate) fn push_block(&mut self, sats: UTXORows, cents: UTXORows) { + pub fn push_block(&mut self, sats: UTXORows, cents: UTXORows) { self.age_range.push_block(sats.age_range, cents.age_range); self.epoch.push_block(sats.epoch, cents.epoch); self.class.push_block(sats.class, cents.class); @@ -156,7 +156,7 @@ impl CumulativeUTXOValueColumnarMetric { self.type_.push_block(sats.type_, cents.type_); } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.age_range .len() .min(self.epoch.len()) @@ -166,7 +166,7 @@ impl CumulativeUTXOValueColumnarMetric { .min(self.type_.len()) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let Self { age_range, epoch, diff --git a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/value_without_amount_or_type.rs b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/value_without_amount_or_type.rs index c89802d4b..0cd872d5e 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/value_without_amount_or_type.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/value_without_amount_or_type.rs @@ -20,7 +20,7 @@ pub struct CumulativeUTXOValueColumnarMetricWithoutAmountOrType Result { + pub fn forced_import(db: &Database, name: &str, version: Version) -> Result { let version = version + Version::ONE; Ok(Self { age_range: Self::import(db, &format!("utxos_{name}_by_age_range"), version)?, @@ -41,7 +41,7 @@ impl CumulativeUTXOValueColumnarMetricWithoutAmountOrType { ColumnarValuePerBlockCumulativeRolling::forced_import(db, name, version, |_, _| ()) } - pub(crate) fn sources( + pub fn sources( &self, filter: &Filter, name: &str, @@ -54,7 +54,7 @@ impl CumulativeUTXOValueColumnarMetricWithoutAmountOrType { .or_else(|| self.aggregate_sources(filter, name, version)) } - pub(super) fn direct_sources( + pub fn direct_sources( &self, filter: &Filter, name: &str, @@ -74,7 +74,7 @@ impl CumulativeUTXOValueColumnarMetricWithoutAmountOrType { ) } - pub(super) fn direct_sources_from( + pub fn direct_sources_from( age_range: &ColumnarValuePerBlockCumulativeRolling, epoch: &ColumnarValuePerBlockCumulativeRolling, class: &ColumnarValuePerBlockCumulativeRolling, @@ -108,7 +108,7 @@ impl CumulativeUTXOValueColumnarMetricWithoutAmountOrType { } } - pub(super) fn aggregate_sources( + pub fn aggregate_sources( &self, filter: &Filter, name: &str, @@ -118,15 +118,15 @@ impl CumulativeUTXOValueColumnarMetricWithoutAmountOrType { ReadableBoxedVec, )> { let columns = Self::age_columns(filter)?; - Some(Self::matrix_sources( - &self.age_range, - name, - version, - columns, - )) + Some(if matches!(filter, Filter::All) { + self.age_range + .budgeted_sources(&format!("{name}_cumulative"), version, columns) + } else { + Self::matrix_sources(&self.age_range, name, version, columns) + }) } - pub(super) fn age_columns(filter: &Filter) -> Option> { + pub fn age_columns(filter: &Filter) -> Option> { Some(match filter { Filter::All => AgeRangeId::ALL.to_vec(), Filter::Term(term) => { @@ -149,7 +149,7 @@ impl CumulativeUTXOValueColumnarMetricWithoutAmountOrType { }) } - pub(super) fn matrix_sources( + pub fn matrix_sources( matrix: &ColumnarValuePerBlockCumulativeRolling, name: &str, version: Version, @@ -165,14 +165,14 @@ impl CumulativeUTXOValueColumnarMetricWithoutAmountOrType { } #[inline(always)] - pub(crate) fn push_block(&mut self, sats: UTXORows, cents: UTXORows) { + pub fn push_block(&mut self, sats: UTXORows, cents: UTXORows) { self.age_range.push_block(sats.age_range, cents.age_range); self.epoch.push_block(sats.epoch, cents.epoch); self.class.push_block(sats.class, cents.class); self.entry.push_block(sats.entry, cents.entry); } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.age_range .len() .min(self.epoch.len()) @@ -180,7 +180,7 @@ impl CumulativeUTXOValueColumnarMetricWithoutAmountOrType { .min(self.entry.len()) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let Self { age_range, epoch, diff --git a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/with_amount_and_type.rs b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/with_amount_and_type.rs index cd969fc19..ae0b51eae 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/with_amount_and_type.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/with_amount_and_type.rs @@ -22,7 +22,7 @@ impl CumulativeUTXOColumnarMetric where T: PcoVecValue + AddAssign + Copy + Default, { - pub(crate) fn forced_import(db: &Database, name: &str, version: Version) -> Result { + pub fn forced_import(db: &Database, name: &str, version: Version) -> Result { Ok(Self { matrices: UTXOColumnarMetric::forced_import(db, name, version)?, last: None, @@ -30,7 +30,7 @@ where } #[inline(always)] - pub(crate) fn push_block(&mut self, rows: UTXORows) { + pub fn push_block(&mut self, rows: UTXORows) { let len = self.matrices.min_len(); let mut cumulative = match self.last.take() { Some((cached_len, row)) if cached_len == len => row, @@ -41,11 +41,11 @@ where self.last = Some((len + 1, cumulative)); } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.matrices.min_len() } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { self.last = None; self.matrices.collect_vecs_mut() } diff --git a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/without_amount_or_type.rs b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/without_amount_or_type.rs index b87997fd1..5fafa52a9 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/cumulative/without_amount_or_type.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/cumulative/without_amount_or_type.rs @@ -22,7 +22,7 @@ impl CumulativeUTXOColumnarMetricWithoutAmountOrType where T: PcoVecValue + AddAssign + Copy + Default, { - pub(crate) fn forced_import(db: &Database, name: &str, version: Version) -> Result { + pub fn forced_import(db: &Database, name: &str, version: Version) -> Result { Ok(Self { matrices: UTXOColumnarMetricWithoutAmountOrType::forced_import(db, name, version)?, last: None, @@ -30,7 +30,7 @@ where } #[inline(always)] - pub(crate) fn push_block(&mut self, rows: UTXORows) { + pub fn push_block(&mut self, rows: UTXORows) { let len = self.matrices.min_len(); let mut cumulative = match self.last.take() { Some((cached_len, row)) if cached_len == len => row, @@ -41,11 +41,11 @@ where self.last = Some((len + 1, cumulative)); } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.matrices.min_len() } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { self.last = None; self.matrices.collect_vecs_mut() } diff --git a/crates/brk_computer/src/distribution/metrics/columnar/exact.rs b/crates/brk_computer/src/distribution/metrics/columnar/exact.rs index 03e829728..08683c081 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/exact.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/exact.rs @@ -33,7 +33,7 @@ impl ExactUTXOColumnarMetric where T: PcoVecValue + AddAssign, { - pub(crate) fn forced_import(db: &Database, name: &str, version: Version) -> Result { + pub fn forced_import(db: &Database, name: &str, version: Version) -> Result { let direct = UTXOColumnarMetric::forced_import(db, name, version)?; let version = version + Version::ONE; @@ -67,7 +67,7 @@ where }) } - pub(crate) fn source( + pub fn source( &self, filter: &Filter, name: &str, @@ -127,7 +127,7 @@ where } #[inline(always)] - pub(crate) fn push(&mut self, direct: UTXORows, aggregates: UTXOAggregateRows) { + pub fn push(&mut self, direct: UTXORows, aggregates: UTXOAggregateRows) { self.direct.push(direct); self.aggregate_matrix.push(aggregates.aggregate); self.under_age_matrix.push(aggregates.under_age); @@ -136,7 +136,7 @@ where self.over_amount_matrix.push(aggregates.over_amount); } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.direct .min_len() .min(self.aggregate_matrix.len()) @@ -146,7 +146,7 @@ where .min(self.over_amount_matrix.len()) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let Self { direct, aggregate_matrix, diff --git a/crates/brk_computer/src/distribution/metrics/columnar/mod.rs b/crates/brk_computer/src/distribution/metrics/columnar/mod.rs index b5535c8f7..bead36d9e 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/mod.rs @@ -5,14 +5,14 @@ mod cumulative; mod exact; mod rows; -pub(crate) use additive::{ +pub use additive::{ UTXOColumnarMetric, UTXOColumnarMetricWithoutAmount, UTXOColumnarMetricWithoutAmountOrType, }; pub use amount::ColumnarAmount; pub use amount_value::ColumnarAmountValue; -pub(crate) use cumulative::{ +pub use cumulative::{ CumulativeUTXOColumnarMetric, CumulativeUTXOColumnarMetricWithoutAmountOrType, CumulativeUTXOValueColumnarMetric, CumulativeUTXOValueColumnarMetricWithoutAmountOrType, }; -pub(crate) use exact::ExactUTXOColumnarMetric; -pub(crate) use rows::{UTXOAggregateRows, UTXORows}; +pub use exact::ExactUTXOColumnarMetric; +pub use rows::{UTXOAggregateRows, UTXORows}; diff --git a/crates/brk_computer/src/distribution/metrics/columnar/rows/aggregate.rs b/crates/brk_computer/src/distribution/metrics/columnar/rows/aggregate.rs index 5312b39e0..f6c8bcf68 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/rows/aggregate.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/rows/aggregate.rs @@ -1,7 +1,7 @@ use brk_cohort::{OverAge, OverAmount, UTXOAggregate, UnderAge, UnderAmount}; #[derive(Clone, Default)] -pub(crate) struct UTXOAggregateRows { +pub struct UTXOAggregateRows { pub aggregate: UTXOAggregate, pub under_age: UnderAge, pub over_age: OverAge, @@ -10,7 +10,7 @@ pub(crate) struct UTXOAggregateRows { } impl UTXOAggregateRows { - pub(crate) fn map(&self, mut map: impl FnMut(&T) -> U) -> UTXOAggregateRows { + pub fn map(&self, mut map: impl FnMut(&T) -> U) -> UTXOAggregateRows { UTXOAggregateRows { aggregate: self.aggregate.map(&mut map), under_age: UnderAge::from_fn(|id| map(id.select(&self.under_age))), diff --git a/crates/brk_computer/src/distribution/metrics/columnar/rows/direct.rs b/crates/brk_computer/src/distribution/metrics/columnar/rows/direct.rs index 0bf705258..d4047690d 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/rows/direct.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/rows/direct.rs @@ -11,7 +11,7 @@ use vecdb::{ColumnId, VecValue}; use super::UTXOAggregateRows; #[derive(Clone, Default)] -pub(crate) struct UTXORows { +pub struct UTXORows { pub age_range: AgeRange, pub epoch: ByEpoch, pub class: Class, @@ -21,7 +21,7 @@ pub(crate) struct UTXORows { } impl UTXORows { - pub(crate) fn map(&self, mut map: impl FnMut(&T) -> U) -> UTXORows { + pub fn map(&self, mut map: impl FnMut(&T) -> U) -> UTXORows { UTXORows { age_range: AgeRange::from_fn(|id| map(id.select(&self.age_range))), epoch: ByEpoch::from_fn(|id| map(id.select(&self.epoch))), @@ -32,7 +32,7 @@ impl UTXORows { } } - pub(crate) fn aggregate(&self) -> UTXOAggregateRows + pub fn aggregate(&self) -> UTXOAggregateRows where T: AddAssign + Clone + Default, { diff --git a/crates/brk_computer/src/distribution/metrics/columnar/rows/mod.rs b/crates/brk_computer/src/distribution/metrics/columnar/rows/mod.rs index b78df3d57..6f5568b03 100644 --- a/crates/brk_computer/src/distribution/metrics/columnar/rows/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/columnar/rows/mod.rs @@ -1,5 +1,5 @@ mod aggregate; mod direct; -pub(crate) use aggregate::UTXOAggregateRows; -pub(crate) use direct::UTXORows; +pub use aggregate::UTXOAggregateRows; +pub use direct::UTXORows; diff --git a/crates/brk_computer/src/distribution/metrics/cost_basis/block_data.rs b/crates/brk_computer/src/distribution/metrics/cost_basis/block_data.rs index 6c4109861..cfb368f15 100644 --- a/crates/brk_computer/src/distribution/metrics/cost_basis/block_data.rs +++ b/crates/brk_computer/src/distribution/metrics/cost_basis/block_data.rs @@ -4,7 +4,7 @@ use crate::distribution::state::PercentileResult; use crate::internal::PERCENTILES_LEN; #[derive(Clone)] -pub(crate) struct CostBasisBlockData { +pub struct CostBasisBlockData { pub min: Cents, pub max: Cents, pub per_coin: [Cents; PERCENTILES_LEN], @@ -14,7 +14,7 @@ pub(crate) struct CostBasisBlockData { impl CostBasisBlockData { #[inline(always)] - pub(crate) fn from_percentiles( + pub fn from_percentiles( percentiles: PercentileResult, supply_density: PartsPerMillion32, ) -> Self { diff --git a/crates/brk_computer/src/distribution/metrics/cost_basis/mod.rs b/crates/brk_computer/src/distribution/metrics/cost_basis/mod.rs index 201725587..9fac08725 100644 --- a/crates/brk_computer/src/distribution/metrics/cost_basis/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/cost_basis/mod.rs @@ -4,6 +4,6 @@ mod side; mod vecs; pub use base::CostBasis; -pub(crate) use block_data::CostBasisBlockData; +pub use block_data::CostBasisBlockData; pub use side::CostBasisSide; pub use vecs::CostBasisVecs; diff --git a/crates/brk_computer/src/distribution/metrics/cost_basis/vecs.rs b/crates/brk_computer/src/distribution/metrics/cost_basis/vecs.rs index a581f6cdf..52c1e1288 100644 --- a/crates/brk_computer/src/distribution/metrics/cost_basis/vecs.rs +++ b/crates/brk_computer/src/distribution/metrics/cost_basis/vecs.rs @@ -76,11 +76,7 @@ pub struct CostBasisVecs { } impl CostBasisVecs { - pub(crate) fn forced_import( - db: &Database, - version: Version, - indexes: &indexes::Vecs, - ) -> Result { + pub fn forced_import(db: &Database, version: Version, indexes: &indexes::Vecs) -> Result { let aggregate_version = version + Version::ONE; let in_profit_per_coin_source = Self::import_prices( db, @@ -218,7 +214,7 @@ impl CostBasisVecs { } #[inline(always)] - pub(crate) fn push_prices(&mut self, spot: Cents, states: &UTXOAggregate) { + pub fn push_prices(&mut self, spot: Cents, states: &UTXOAggregate) { self.in_profit_per_coin_source .push(UTXOAggregate::from_fn(|id| { Self::per_coin_price(spot, id.select(states), true) @@ -286,7 +282,7 @@ impl CostBasisVecs { } #[inline(always)] - pub(crate) fn push(&mut self, rows: UTXOAggregate) { + pub fn push(&mut self, rows: UTXOAggregate) { self.min_source .push(UTXOAggregate::from_fn(|id| id.select(&rows).min)); self.max_source @@ -301,7 +297,7 @@ impl CostBasisVecs { self.per_dollar_sources.lth.push(&rows.lth.per_dollar); } - pub(crate) fn validate_computed_versions(&mut self, version: Version) -> Result<()> { + pub fn validate_computed_versions(&mut self, version: Version) -> Result<()> { for percentiles in self .per_coin_sources .iter_mut() @@ -312,7 +308,7 @@ impl CostBasisVecs { Ok(()) } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.in_profit_per_coin_source .height .len() @@ -332,7 +328,7 @@ impl CostBasisVecs { ) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = vec![ self.in_profit_per_coin_source.stored_mut(), self.in_profit_per_dollar_source.stored_mut(), diff --git a/crates/brk_computer/src/distribution/metrics/mod.rs b/crates/brk_computer/src/distribution/metrics/mod.rs index f3d6381b4..edab34999 100644 --- a/crates/brk_computer/src/distribution/metrics/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/mod.rs @@ -15,28 +15,27 @@ mod unrealized; pub use activity::{ActivitySources, ActivityVecs}; pub use additive::AdditiveAggregateFiatPerBlock; -pub(crate) use additive::AdditiveUTXORawVec; +pub use additive::AdditiveUTXORawVec; pub use aggregate::{ AdditiveAggregateFiatPerBlockCumulativeWithSums, AggregateFiatPerBlock, AggregatePercentPerBlock, AggregatePriceWithRatioPerBlock, }; pub use cohorts::CohortMetrics; pub use columnar::{ColumnarAmount, ColumnarAmountValue}; -pub(crate) use columnar::{ +pub use columnar::{ CumulativeUTXOColumnarMetric, CumulativeUTXOColumnarMetricWithoutAmountOrType, CumulativeUTXOValueColumnarMetric, CumulativeUTXOValueColumnarMetricWithoutAmountOrType, ExactUTXOColumnarMetric, UTXOColumnarMetric, UTXOColumnarMetricWithoutAmount, UTXOColumnarMetricWithoutAmountOrType, UTXORows, }; -pub(crate) use cost_basis::CostBasisBlockData; +pub use cost_basis::CostBasisBlockData; pub use cost_basis::CostBasisVecs; pub use outputs::OutputsVecs; pub use profitability::ProfitabilityVecs; -pub(crate) use realized::{AdjustedSoprComputeSource, RealizedAggregateSources}; +pub use realized::{AdjustedSoprComputeSource, RealizedAggregateSources}; pub use realized::{RealizedAggregateState, RealizedSources, RealizedVecs}; -pub(crate) use realized::{RealizedBlockData, RealizedTotals, Sopr24hInput}; -pub(crate) use relative::RelativeSource; +pub use realized::{RealizedBlockData, RealizedTotals, Sopr24hInput}; +pub use relative::RelativeSource; pub use relative::RelativeVecs; -pub(crate) use supply::AllSupplyCache; pub use supply::{SupplySources, SupplyVecs}; pub use unrealized::{UnrealizedAggregateSources, UnrealizedSources, UnrealizedVecs}; diff --git a/crates/brk_computer/src/distribution/metrics/outputs/vecs/collection.rs b/crates/brk_computer/src/distribution/metrics/outputs/vecs/collection.rs index ac9bb4ce3..af980da39 100644 --- a/crates/brk_computer/src/distribution/metrics/outputs/vecs/collection.rs +++ b/crates/brk_computer/src/distribution/metrics/outputs/vecs/collection.rs @@ -19,7 +19,7 @@ pub struct OutputsVecs { } impl OutputsVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, @@ -32,21 +32,17 @@ impl OutputsVecs { } #[inline(always)] - pub(crate) fn push( - &mut self, - unspent_count: UTXORows, - spent_count: UTXORows, - ) { + pub fn push(&mut self, unspent_count: UTXORows, spent_count: UTXORows) { self.unspent_count.matrices.push(unspent_count); self.spent_count.cumulative.push_block(spent_count); } #[inline(always)] - pub(crate) fn push_addr_balance(&mut self, row: AmountRange) { + pub fn push_addr_balance(&mut self, row: AmountRange) { self.unspent_count.push_addr_balance(row); } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.unspent_count .matrices .min_len() @@ -54,7 +50,7 @@ impl OutputsVecs { .min(self.spent_count.cumulative.min_len()) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = self.unspent_count.matrices.collect_vecs_mut(); vecs.push(self.unspent_count.addr_balance.stored_mut()); vecs.extend(self.spent_count.cumulative.collect_vecs_mut()); diff --git a/crates/brk_computer/src/distribution/metrics/outputs/vecs/mod.rs b/crates/brk_computer/src/distribution/metrics/outputs/vecs/mod.rs index 13a0e7ff7..4cf2d4089 100644 --- a/crates/brk_computer/src/distribution/metrics/outputs/vecs/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/outputs/vecs/mod.rs @@ -3,5 +3,5 @@ mod spent; mod unspent; pub use collection::OutputsVecs; -pub(super) use spent::SpentOutputCount; -pub(super) use unspent::UnspentOutputCount; +pub use spent::SpentOutputCount; +pub use unspent::UnspentOutputCount; diff --git a/crates/brk_computer/src/distribution/metrics/outputs/vecs/spent.rs b/crates/brk_computer/src/distribution/metrics/outputs/vecs/spent.rs index 18cc99cd5..94da8e8ae 100644 --- a/crates/brk_computer/src/distribution/metrics/outputs/vecs/spent.rs +++ b/crates/brk_computer/src/distribution/metrics/outputs/vecs/spent.rs @@ -19,7 +19,7 @@ pub struct SpentOutputCount { } impl SpentOutputCount { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, diff --git a/crates/brk_computer/src/distribution/metrics/outputs/vecs/unspent.rs b/crates/brk_computer/src/distribution/metrics/outputs/vecs/unspent.rs index 865bfc392..53eb07615 100644 --- a/crates/brk_computer/src/distribution/metrics/outputs/vecs/unspent.rs +++ b/crates/brk_computer/src/distribution/metrics/outputs/vecs/unspent.rs @@ -24,7 +24,7 @@ pub struct UnspentOutputCount { } impl UnspentOutputCount { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, @@ -69,7 +69,7 @@ impl UnspentOutputCount { } #[inline(always)] - pub(crate) fn push_addr_balance(&mut self, row: AmountRange) { + pub fn push_addr_balance(&mut self, row: AmountRange) { self.addr_balance.push(row); } } diff --git a/crates/brk_computer/src/distribution/metrics/percentiles.rs b/crates/brk_computer/src/distribution/metrics/percentiles.rs index 160aa78a7..ddf2d731a 100644 --- a/crates/brk_computer/src/distribution/metrics/percentiles.rs +++ b/crates/brk_computer/src/distribution/metrics/percentiles.rs @@ -11,7 +11,7 @@ use crate::distribution::{ }; impl CohortMetrics { - pub(crate) fn push_aggregate_percentiles( + pub fn push_aggregate_percentiles( &mut self, states: &UTXOStates, spot_price: Cents, diff --git a/crates/brk_computer/src/distribution/metrics/profitability/column_id.rs b/crates/brk_computer/src/distribution/metrics/profitability/column_id.rs index fa68e67a4..e6cf4614d 100644 --- a/crates/brk_computer/src/distribution/metrics/profitability/column_id.rs +++ b/crates/brk_computer/src/distribution/metrics/profitability/column_id.rs @@ -7,6 +7,8 @@ use vecdb::{ ReadableColumnarVec, VecValue, }; +use crate::internal::cache_wrap; + const RANGE_COUNT: usize = ProfitabilityRangeId::ALL.len(); const COLUMN_COUNT: usize = TermId::ALL.len() * RANGE_COUNT; @@ -38,7 +40,7 @@ pub struct TermProfitabilityRangeId { } impl TermProfitabilityRangeId { - pub(super) fn source( + pub fn source( source: &ReadOnlyColumnarVec, Self>, name: &str, version: Version, @@ -62,22 +64,25 @@ impl TermProfitabilityRangeId { } let selected_term = aggregate.term(); - source - .sum_columns( - name, - version, - TermId::ALL - .iter() - .copied() - .filter(move |&term| selected_term.is_none_or(|selected| selected == term)) - .flat_map(|term| { - ranges - .iter() - .copied() - .map(move |range| Self { term, range }) - }), - ) - .read_only_boxed_clone() + let source = source.sum_columns( + name, + version, + TermId::ALL + .iter() + .copied() + .filter(move |&term| selected_term.is_none_or(|selected| selected == term)) + .flat_map(|term| { + ranges + .iter() + .copied() + .map(move |range| Self { term, range }) + }), + ); + if aggregate == UTXOAggregateId::All { + cache_wrap(source).read_only_boxed_clone() + } else { + source.read_only_boxed_clone() + } } } diff --git a/crates/brk_computer/src/distribution/metrics/profitability/vecs.rs b/crates/brk_computer/src/distribution/metrics/profitability/vecs.rs index 37a60864c..0f952b7c5 100644 --- a/crates/brk_computer/src/distribution/metrics/profitability/vecs.rs +++ b/crates/brk_computer/src/distribution/metrics/profitability/vecs.rs @@ -53,7 +53,7 @@ pub struct ProfitabilityVecs { } impl ProfitabilityVecs { - pub(crate) fn min_stateful_len(&self) -> usize { + pub fn min_stateful_len(&self) -> usize { self.supply .height .len() @@ -64,7 +64,7 @@ impl ProfitabilityVecs { } impl ProfitabilityVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, @@ -168,7 +168,7 @@ impl ProfitabilityVecs { } #[inline(always)] - pub(crate) fn push( + pub fn push( &mut self, spot: Cents, supply: ByTerm>, @@ -185,7 +185,7 @@ impl ProfitabilityVecs { self.nupl.push(nupl); } - pub(crate) fn collect_all_vecs_mut(&mut self) -> [&mut dyn AnyStoredVec; 4] { + pub fn collect_all_vecs_mut(&mut self) -> [&mut dyn AnyStoredVec; 4] { [ self.supply.stored_mut(), self.realized_cap.stored_mut(), diff --git a/crates/brk_computer/src/distribution/metrics/realized/adjusted.rs b/crates/brk_computer/src/distribution/metrics/realized/adjusted.rs index dac1aac71..4d144b07a 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/adjusted.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/adjusted.rs @@ -36,7 +36,7 @@ pub struct AdjustedSoprVecs { } impl AdjustedSoprVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, @@ -141,7 +141,7 @@ impl AdjustedSoprVecs { } } - pub(crate) fn compute( + pub fn compute( &mut self, max_from: Height, sources: &UTXOAllAndSth, @@ -210,7 +210,7 @@ impl AdjustedSoprVecs { Ok(()) } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.transfer_volume .cumulative .len() @@ -224,7 +224,7 @@ impl AdjustedSoprVecs { ) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = vec![ self.transfer_volume.stored_mut(), self.value_destroyed.stored_mut(), diff --git a/crates/brk_computer/src/distribution/metrics/realized/adjusted_sopr_compute_source.rs b/crates/brk_computer/src/distribution/metrics/realized/adjusted_sopr_compute_source.rs index cfcf660e9..18b974a4a 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/adjusted_sopr_compute_source.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/adjusted_sopr_compute_source.rs @@ -1,6 +1,6 @@ use crate::distribution::metrics::{ActivitySources, RealizedSources}; -pub(crate) struct AdjustedSoprComputeSource { +pub struct AdjustedSoprComputeSource { pub activity: ActivitySources, pub realized: RealizedSources, } diff --git a/crates/brk_computer/src/distribution/metrics/realized/aggregate_sources.rs b/crates/brk_computer/src/distribution/metrics/realized/aggregate_sources.rs index a54808a26..9d6397db9 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/aggregate_sources.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/aggregate_sources.rs @@ -1,6 +1,6 @@ use crate::distribution::metrics::{ActivitySources, RealizedSources}; -pub(crate) struct RealizedAggregateSources { +pub struct RealizedAggregateSources { pub activity: ActivitySources, pub realized: RealizedSources, } diff --git a/crates/brk_computer/src/distribution/metrics/realized/aggregate_state.rs b/crates/brk_computer/src/distribution/metrics/realized/aggregate_state.rs index 04a85e6ce..b28d724cd 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/aggregate_state.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/aggregate_state.rs @@ -4,25 +4,25 @@ use crate::distribution::state::{RealizedOps, RealizedState}; #[derive(Default)] pub struct RealizedAggregateState { - pub(crate) cap_raw: CentsSats, - pub(crate) capitalized_cap_raw: CentsSquaredSats, + pub cap_raw: CentsSats, + pub capitalized_cap_raw: CentsSquaredSats, peak_regret: CentsSats, gross_pnl: Cents, } impl RealizedAggregateState { - pub(crate) fn add(&mut self, state: &RealizedState) { + pub fn add(&mut self, state: &RealizedState) { self.cap_raw += state.cap_raw(); self.capitalized_cap_raw += state.capitalized_cap_raw(); self.peak_regret += CentsSats::new(state.peak_regret_raw()); self.gross_pnl += state.profit() + state.loss(); } - pub(crate) fn peak_regret(&self) -> Cents { + pub fn peak_regret(&self) -> Cents { self.peak_regret.to_cents() } - pub(crate) fn capitalized_price(&self) -> Cents { + pub fn capitalized_price(&self) -> Cents { let cap = self.cap_raw.as_u128(); self.capitalized_cap_raw .inner() @@ -31,7 +31,7 @@ impl RealizedAggregateState { .unwrap_or_default() } - pub(crate) fn gross_pnl(&self) -> Cents { + pub fn gross_pnl(&self) -> Cents { self.gross_pnl } } diff --git a/crates/brk_computer/src/distribution/metrics/realized/block_data.rs b/crates/brk_computer/src/distribution/metrics/realized/block_data.rs index d9373b839..d02f48a69 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/block_data.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/block_data.rs @@ -3,7 +3,7 @@ use brk_types::{Cents, CentsSats, CentsSigned, Sats}; use super::RealizedTotals; #[derive(Clone, Default)] -pub(crate) struct RealizedBlockData { +pub struct RealizedBlockData { pub cap_raw: CentsSats, pub supply: Sats, pub cap: Cents, @@ -15,7 +15,7 @@ pub(crate) struct RealizedBlockData { } impl RealizedBlockData { - pub(crate) fn totals(&self) -> RealizedTotals { + pub fn totals(&self) -> RealizedTotals { RealizedTotals { cap_raw: self.cap_raw, supply: self.supply, diff --git a/crates/brk_computer/src/distribution/metrics/realized/mod.rs b/crates/brk_computer/src/distribution/metrics/realized/mod.rs index a064d8d32..00052abba 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/mod.rs @@ -10,12 +10,12 @@ mod totals; mod vecs; pub use adjusted::AdjustedSoprVecs; -pub(crate) use adjusted_sopr_compute_source::AdjustedSoprComputeSource; -pub(crate) use aggregate_sources::RealizedAggregateSources; +pub use adjusted_sopr_compute_source::AdjustedSoprComputeSource; +pub use aggregate_sources::RealizedAggregateSources; pub use aggregate_state::RealizedAggregateState; -pub(crate) use block_data::RealizedBlockData; +pub use block_data::RealizedBlockData; pub use neg_loss::NegRealizedLoss; -pub(crate) use sopr_24h_input::Sopr24hInput; +pub use sopr_24h_input::Sopr24hInput; pub use sopr_vecs::Sopr24hVecs; -pub(crate) use totals::RealizedTotals; +pub use totals::RealizedTotals; pub use vecs::{RealizedSources, RealizedVecs}; diff --git a/crates/brk_computer/src/distribution/metrics/realized/sopr_24h_input.rs b/crates/brk_computer/src/distribution/metrics/realized/sopr_24h_input.rs index 684f83514..df93c0859 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/sopr_24h_input.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/sopr_24h_input.rs @@ -4,13 +4,13 @@ use vecdb::{DeltaSub, LazyDeltaVec}; use crate::internal::{LazyFiatPerBlockCumulativeWithSums, LazyValuePerBlockCumulativeRolling}; #[derive(Clone)] -pub(crate) struct Sopr24hInput { - pub(super) transfer_volume: LazyDeltaVec, - pub(super) value_destroyed: LazyDeltaVec, +pub struct Sopr24hInput { + pub transfer_volume: LazyDeltaVec, + pub value_destroyed: LazyDeltaVec, } impl Sopr24hInput { - pub(crate) fn new( + pub fn new( transfer_volume: &LazyValuePerBlockCumulativeRolling, value_destroyed: &LazyFiatPerBlockCumulativeWithSums, ) -> Self { diff --git a/crates/brk_computer/src/distribution/metrics/realized/sopr_vecs.rs b/crates/brk_computer/src/distribution/metrics/realized/sopr_vecs.rs index 2a1d17c5c..567c99972 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/sopr_vecs.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/sopr_vecs.rs @@ -56,11 +56,7 @@ pub struct Sopr24hVecs { } impl Sopr24hVecs { - pub(crate) fn forced_import( - db: &Database, - version: Version, - indexes: &indexes::Vecs, - ) -> Result { + pub fn forced_import(db: &Database, version: Version, indexes: &indexes::Vecs) -> Result { let matrix_version = version + Version::ONE; let aggregate_matrix = Self::import_matrix( db, @@ -276,7 +272,7 @@ impl Sopr24hVecs { } } - pub(crate) fn compute( + pub fn compute( &mut self, max_from: Height, inputs: &UTXOGroupsWithoutAmountOrType, @@ -355,7 +351,7 @@ impl Sopr24hVecs { ) } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { [ self.aggregate_matrix.height.len(), self.age_range_matrix.height.len(), @@ -370,7 +366,7 @@ impl Sopr24hVecs { .unwrap_or_default() } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { vec![ self.aggregate_matrix.stored_mut(), self.age_range_matrix.stored_mut(), diff --git a/crates/brk_computer/src/distribution/metrics/realized/totals.rs b/crates/brk_computer/src/distribution/metrics/realized/totals.rs index 581bd2f6e..a4d194f99 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/totals.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/totals.rs @@ -3,13 +3,13 @@ use std::ops::AddAssign; use brk_types::{Cents, CentsSats, Sats}; #[derive(Clone, Copy, Debug, Default)] -pub(crate) struct RealizedTotals { - pub(super) cap_raw: CentsSats, - pub(super) supply: Sats, +pub struct RealizedTotals { + pub cap_raw: CentsSats, + pub supply: Sats, } impl RealizedTotals { - pub(crate) fn price(&self) -> Cents { + pub fn price(&self) -> Cents { self.cap_raw .as_u128() .checked_div(self.supply.as_u128()) diff --git a/crates/brk_computer/src/distribution/metrics/realized/vecs/cap.rs b/crates/brk_computer/src/distribution/metrics/realized/vecs/cap.rs index 998ce6325..911e19515 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/vecs/cap.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/vecs/cap.rs @@ -20,7 +20,7 @@ pub struct RealizedCapByCohort { } impl RealizedCapByCohort { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, diff --git a/crates/brk_computer/src/distribution/metrics/realized/vecs/collection.rs b/crates/brk_computer/src/distribution/metrics/realized/vecs/collection.rs index 4c4b4601b..4798074b4 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/vecs/collection.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/vecs/collection.rs @@ -15,7 +15,7 @@ use vecdb::{ use crate::{ distribution::{ - AllChainCache, + AllChainSources, metrics::{ AdditiveAggregateFiatPerBlockCumulativeWithSums, AdditiveUTXORawVec, AggregatePercentPerBlock, AggregatePriceWithRatioPerBlock, ColumnarAmount, @@ -80,13 +80,13 @@ pub struct RealizedVecs { } impl RealizedVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, cached_starts: &Windows<&CachedWindowStartVec>, spot_price: &CachedBoxedVec, - all_chain: &AllChainCache, + all_chain: &AllChainSources, ) -> Result { let aggregate_version = version + Version::ONE; let gross_pnl = AdditiveAggregateFiatPerBlockCumulativeWithSums::forced_import( @@ -364,7 +364,7 @@ impl RealizedVecs { PartsPerMillion32::from(1.0 / f64::from(mvrv)) } - pub(crate) fn sources(&self, filter: &Filter) -> Option { + pub fn sources(&self, filter: &Filter) -> Option { Some(RealizedSources { cap: self.cap.cohorts.get(filter)?.clone(), profit: self.profit.cohorts.get(filter)?.clone(), @@ -375,7 +375,7 @@ impl RealizedVecs { } #[inline(always)] - pub(crate) fn push_aggregate(&mut self, rows: &UTXOAggregate) -> Cents { + pub fn push_aggregate(&mut self, rows: &UTXOAggregate) -> Cents { let prices = rows.map(RealizedAggregateState::capitalized_price); self.gross_pnl .push_block(rows.map(RealizedAggregateState::gross_pnl)); @@ -388,7 +388,7 @@ impl RealizedVecs { prices.all } - pub(crate) fn compute_sopr( + pub fn compute_sopr( &mut self, max_from: Height, inputs: &UTXOGroupsWithoutAmountOrType, @@ -397,7 +397,7 @@ impl RealizedVecs { self.sopr.compute(max_from, inputs, exit) } - pub(crate) fn compute_adjusted_sopr( + pub fn compute_adjusted_sopr( &mut self, max_from: Height, sources: &UTXOAllAndSth, @@ -418,7 +418,7 @@ impl RealizedVecs { ) } - pub(crate) fn compute_aggregate_metrics( + pub fn compute_aggregate_metrics( &mut self, max_from: Height, sources: &UTXOAggregate, @@ -502,7 +502,7 @@ impl RealizedVecs { } #[inline(always)] - pub(crate) fn push(&mut self, rows: &UTXORows) { + pub fn push(&mut self, rows: &UTXORows) { let aggregate_price = rows .map(RealizedBlockData::totals) .aggregate() @@ -527,7 +527,7 @@ impl RealizedVecs { } #[inline(always)] - pub(crate) fn push_addr_balance( + pub fn push_addr_balance( &mut self, cap: AmountRange, profit: &AmountRange, @@ -538,7 +538,7 @@ impl RealizedVecs { self.addr_balance_loss.push_cumulative(loss); } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.cap .matrices .min_len() @@ -579,7 +579,7 @@ impl RealizedVecs { .min(self.capitalized_cap_raw.len()) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = self.cap.matrices.collect_vecs_mut(); vecs.push(self.addr_balance_cap.stored_mut()); vecs.extend(self.price.matrices.collect_vecs_mut()); diff --git a/crates/brk_computer/src/distribution/metrics/realized/vecs/cumulative.rs b/crates/brk_computer/src/distribution/metrics/realized/vecs/cumulative.rs index 28cfa336b..fcae84cc6 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/vecs/cumulative.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/vecs/cumulative.rs @@ -19,7 +19,7 @@ pub struct CumulativeRealizedByCohort { } impl CumulativeRealizedByCohort { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, diff --git a/crates/brk_computer/src/distribution/metrics/realized/vecs/cumulative_net.rs b/crates/brk_computer/src/distribution/metrics/realized/vecs/cumulative_net.rs index ee66ca334..793af5ec6 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/vecs/cumulative_net.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/vecs/cumulative_net.rs @@ -25,7 +25,7 @@ pub struct CumulativeNetRealizedByCohort { } impl CumulativeNetRealizedByCohort { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, diff --git a/crates/brk_computer/src/distribution/metrics/realized/vecs/mod.rs b/crates/brk_computer/src/distribution/metrics/realized/vecs/mod.rs index 67ce18314..1c6c66c83 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/vecs/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/vecs/mod.rs @@ -6,10 +6,10 @@ mod price; mod sources; mod value_destroyed; -pub(super) use cap::RealizedCapByCohort; +pub use cap::RealizedCapByCohort; pub use collection::RealizedVecs; -pub(super) use cumulative::CumulativeRealizedByCohort; -pub(super) use cumulative_net::CumulativeNetRealizedByCohort; -pub(super) use price::RealizedPriceByCohort; +pub use cumulative::CumulativeRealizedByCohort; +pub use cumulative_net::CumulativeNetRealizedByCohort; +pub use price::RealizedPriceByCohort; pub use sources::RealizedSources; -pub(super) use value_destroyed::CumulativeValueDestroyedByCohort; +pub use value_destroyed::CumulativeValueDestroyedByCohort; diff --git a/crates/brk_computer/src/distribution/metrics/realized/vecs/price.rs b/crates/brk_computer/src/distribution/metrics/realized/vecs/price.rs index 15ee132be..e500dd987 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/vecs/price.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/vecs/price.rs @@ -17,7 +17,7 @@ pub struct RealizedPriceByCohort { } impl RealizedPriceByCohort { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, diff --git a/crates/brk_computer/src/distribution/metrics/realized/vecs/value_destroyed.rs b/crates/brk_computer/src/distribution/metrics/realized/vecs/value_destroyed.rs index 19f780d4a..d54fde819 100644 --- a/crates/brk_computer/src/distribution/metrics/realized/vecs/value_destroyed.rs +++ b/crates/brk_computer/src/distribution/metrics/realized/vecs/value_destroyed.rs @@ -19,7 +19,7 @@ pub struct CumulativeValueDestroyedByCohort { } impl CumulativeValueDestroyedByCohort { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, diff --git a/crates/brk_computer/src/distribution/metrics/relative/gross_pnl_composition.rs b/crates/brk_computer/src/distribution/metrics/relative/gross_pnl_composition.rs index c50a8d74b..92b98e117 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/gross_pnl_composition.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/gross_pnl_composition.rs @@ -32,11 +32,7 @@ pub struct GrossPnlComposition { } impl GrossPnlComposition { - pub(crate) fn forced_import( - db: &Database, - version: Version, - indexes: &indexes::Vecs, - ) -> Result { + pub fn forced_import(db: &Database, version: Version, indexes: &indexes::Vecs) -> Result { let version = version + VERSION; let profit_share_source = ColumnarPerBlock::forced_import( db, @@ -131,7 +127,7 @@ impl GrossPnlComposition { } } - pub(crate) fn compute( + pub fn compute( &mut self, max_from: Height, sources: &UTXOAggregate>, @@ -146,7 +142,7 @@ impl GrossPnlComposition { ) } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { self.profit_share_source.stored_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/relative/mod.rs b/crates/brk_computer/src/distribution/metrics/relative/mod.rs index dbbab18f5..9da99ef16 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/mod.rs @@ -4,6 +4,6 @@ mod supply_profitability_shares; mod vecs; pub use gross_pnl_composition::GrossPnlComposition; -pub(crate) use source::RelativeSource; +pub use source::RelativeSource; pub use supply_profitability_shares::SupplyProfitabilityShares; pub use vecs::RelativeVecs; diff --git a/crates/brk_computer/src/distribution/metrics/relative/source.rs b/crates/brk_computer/src/distribution/metrics/relative/source.rs index c171c3bb6..8675ce5c1 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/source.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/source.rs @@ -7,7 +7,7 @@ use crate::{ internal::LazyRatioPerBlock, }; -pub(crate) struct RelativeSource<'a> { +pub struct RelativeSource<'a> { pub supply: SupplySources, pub unrealized: UnrealizedSources, pub unrealized_aggregate: UnrealizedAggregateSources, diff --git a/crates/brk_computer/src/distribution/metrics/relative/supply_profitability_shares.rs b/crates/brk_computer/src/distribution/metrics/relative/supply_profitability_shares.rs index 8b64d7bee..4b7f5a909 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/supply_profitability_shares.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/supply_profitability_shares.rs @@ -29,11 +29,7 @@ pub struct SupplyProfitabilityShares { } impl SupplyProfitabilityShares { - pub(crate) fn forced_import( - db: &Database, - version: Version, - indexes: &indexes::Vecs, - ) -> Result { + pub fn forced_import(db: &Database, version: Version, indexes: &indexes::Vecs) -> Result { let version = version + VERSION; let profit_share_source = ColumnarPerBlock::forced_import( db, @@ -111,7 +107,7 @@ impl SupplyProfitabilityShares { } } - pub(crate) fn compute( + pub fn compute( &mut self, max_from: Height, sources: &UTXOAggregate>, @@ -126,7 +122,7 @@ impl SupplyProfitabilityShares { ) } - pub(crate) fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { + pub fn stored_mut(&mut self) -> &mut dyn AnyStoredVec { self.profit_share_source.stored_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/relative/vecs.rs b/crates/brk_computer/src/distribution/metrics/relative/vecs.rs index 2787bb6dc..959f63446 100644 --- a/crates/brk_computer/src/distribution/metrics/relative/vecs.rs +++ b/crates/brk_computer/src/distribution/metrics/relative/vecs.rs @@ -8,7 +8,7 @@ use brk_types::{Cents, Height, PartsPerMillion32, PartsPerMillionSigned32, Versi use vecdb::{AnyStoredVec, BinaryTransform, Database, Exit, Rw, StorageMode}; use crate::{ - distribution::{AllChainCache, metrics::AggregatePercentPerBlock}, + distribution::{AllChainSources, metrics::AggregatePercentPerBlock}, indexes, internal::{ ColumnarPerBlock, LazyColumnPercentPerBlock, LazyPercentPerBlock, RatioCents, RatioDollars, @@ -50,11 +50,11 @@ pub struct RelativeVecs { } impl RelativeVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, - all_chain: &AllChainCache, + all_chain: &AllChainSources, sources: &UTXOAggregate>, ) -> Result { let aggregate_version = version + Version::ONE; @@ -196,7 +196,7 @@ impl RelativeVecs { } } - pub(crate) fn compute( + pub fn compute( &mut self, max_from: Height, sources: &UTXOAggregate>, @@ -253,7 +253,7 @@ impl RelativeVecs { Ok(()) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { vec![ self.supply_profitability_shares.stored_mut(), self.unrealized_profit_to_own_mcap.stored_mut(), diff --git a/crates/brk_computer/src/distribution/metrics/supply/base.rs b/crates/brk_computer/src/distribution/metrics/supply/base.rs index 6bd9e26f7..b9210300b 100644 --- a/crates/brk_computer/src/distribution/metrics/supply/base.rs +++ b/crates/brk_computer/src/distribution/metrics/supply/base.rs @@ -1,9 +1,8 @@ use brk_traversable::Traversable; use brk_types::{Height, PartsPerMillion32, PartsPerMillionSigned64, Sats, SatsSigned, Version}; -use vecdb::{BinaryTransform, ReadableCloneableVec}; +use vecdb::{BinaryTransform, CachedBoxedVec, ReadableCloneableVec}; use crate::{ - distribution::metrics::AllSupplyCache, indexes, internal::{ CachedWindowStartVec, LazyIndexedVec, LazyPercentPerBlock, @@ -20,11 +19,11 @@ pub struct SupplyBase { } impl SupplyBase { - pub(crate) fn from_total( + pub fn from_total( cohort_name: &str, version: Version, total: LazySpotValuePerBlock, - all_supply: &AllSupplyCache, + all_supply: &CachedBoxedVec, indexes: &indexes::Vecs, cached_starts: &Windows<&CachedWindowStartVec>, ) -> Self { @@ -33,7 +32,7 @@ impl SupplyBase { &format!("{dominance_name}_ppm_source"), version, total.sats.height.read_only_boxed_clone(), - all_supply.cached_boxed_clone(), + all_supply.clone(), |_, supply, all_supply| RatioSats::::apply(supply, all_supply), ); let dominance = @@ -49,7 +48,7 @@ impl SupplyBase { ) } - pub(crate) fn from_all_total( + pub fn from_all_total( cohort_name: &str, version: Version, total: LazySpotValuePerBlock, @@ -98,7 +97,7 @@ impl SupplyBase { } } - pub(super) fn metric_name(cohort_name: &str, metric: &str) -> String { + pub fn metric_name(cohort_name: &str, metric: &str) -> String { if cohort_name.is_empty() { metric.to_owned() } else { diff --git a/crates/brk_computer/src/distribution/metrics/supply/by_cohort.rs b/crates/brk_computer/src/distribution/metrics/supply/by_cohort.rs index aa2306849..1ad2c57ad 100644 --- a/crates/brk_computer/src/distribution/metrics/supply/by_cohort.rs +++ b/crates/brk_computer/src/distribution/metrics/supply/by_cohort.rs @@ -19,7 +19,7 @@ pub struct SupplyByCohort { } impl SupplyByCohort { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, @@ -41,20 +41,20 @@ impl SupplyByCohort { Ok(Self { cohorts, matrices }) } - pub(crate) fn get(&self, filter: &Filter) -> Option<&LazySpotValuePerBlock> { + pub fn get(&self, filter: &Filter) -> Option<&LazySpotValuePerBlock> { self.cohorts.get(filter) } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.matrices.min_len() } #[inline(always)] - pub(crate) fn push(&mut self, rows: UTXORows) { + pub fn push(&mut self, rows: UTXORows) { self.matrices.push(rows); } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { self.matrices.collect_vecs_mut() } } diff --git a/crates/brk_computer/src/distribution/metrics/supply/cache.rs b/crates/brk_computer/src/distribution/metrics/supply/cache.rs deleted file mode 100644 index 8594a1eda..000000000 --- a/crates/brk_computer/src/distribution/metrics/supply/cache.rs +++ /dev/null @@ -1,83 +0,0 @@ -use brk_types::{Height, Sats}; -use vecdb::{CachedBoxedVec, CachedReadableVec, CachedVec, ReadableVec, TypedVec}; - -/// Pinned in-memory snapshot of the all-cohort supply. -/// -/// Every cohort dominance vec shares this cache. It intentionally bypasses the -/// global cache budget because evicting it would make each lazy read hit disk. -#[derive(Clone)] -pub(crate) struct AllSupplyCache { - cache: CachedBoxedVec, -} - -impl AllSupplyCache { - pub(crate) fn new(source: V) -> Self - where - V: TypedVec - + ReadableVec - + Clone - + Send - + Sync - + 'static, - { - let cache = CachedVec::wrap(source); - let cache = cache.cached_boxed_clone(); - - Self { cache } - } - - pub(crate) fn cached_boxed_clone(&self) -> CachedBoxedVec { - self.cache.cached_boxed_clone() - } - - pub(crate) fn clear(&self) { - self.cache.clear(); - } -} - -#[cfg(test)] -mod tests { - use brk_types::Version; - use vecdb::{ - AnyStoredVec, Database, EagerVec, ImportableVec, PcoVec, ReadOnlyClone, WritableVec, - }; - - use super::*; - - #[test] - fn clear_refreshes_a_same_length_rewrite() { - let suffix = std::time::SystemTime::now() - .duration_since(std::time::UNIX_EPOCH) - .unwrap() - .as_nanos(); - let path = std::env::temp_dir().join(format!( - "brk-all-supply-cache-{}-{suffix}", - std::process::id() - )); - let db = Database::open(&path).unwrap(); - let mut source: EagerVec> = - EagerVec::forced_import(&db, "supply", Version::ONE).unwrap(); - - source.push(Sats::new(10)); - source.push(Sats::new(20)); - source.write().unwrap(); - - let cache = AllSupplyCache::new(source.read_only_clone()); - let reader = cache.cached_boxed_clone(); - assert_eq!(&*reader.cached(), &[Sats::new(10), Sats::new(20)]); - - source.truncate_if_needed_at(1).unwrap(); - source.push(Sats::new(30)); - source.write().unwrap(); - - assert_eq!(&*reader.cached(), &[Sats::new(10), Sats::new(20)]); - cache.clear(); - assert_eq!(&*reader.cached(), &[Sats::new(10), Sats::new(30)]); - - drop(reader); - drop(cache); - drop(source); - drop(db); - std::fs::remove_dir_all(path).unwrap(); - } -} diff --git a/crates/brk_computer/src/distribution/metrics/supply/mod.rs b/crates/brk_computer/src/distribution/metrics/supply/mod.rs index 37c224170..78bd41942 100644 --- a/crates/brk_computer/src/distribution/metrics/supply/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/supply/mod.rs @@ -1,13 +1,11 @@ mod base; mod by_cohort; -mod cache; mod sources; mod total; mod vecs; -pub(super) use base::SupplyBase; +pub use base::SupplyBase; pub use by_cohort::SupplyByCohort; -pub(crate) use cache::AllSupplyCache; pub use sources::SupplySources; pub use total::SupplyTotal; pub use vecs::SupplyVecs; diff --git a/crates/brk_computer/src/distribution/metrics/supply/total.rs b/crates/brk_computer/src/distribution/metrics/supply/total.rs index 8177781c9..ba36f5dba 100644 --- a/crates/brk_computer/src/distribution/metrics/supply/total.rs +++ b/crates/brk_computer/src/distribution/metrics/supply/total.rs @@ -1,8 +1,11 @@ -use brk_cohort::{AmountRange, CohortContext, Filter, UTXOGroups}; +use brk_cohort::{AgeRangeId, AmountRange, CohortContext, Filter, UTXOGroups}; use brk_error::Result; use brk_traversable::Traversable; use brk_types::{Cents, Height, Sats, Version}; -use vecdb::{AnyStoredVec, CachedBoxedVec, Database, Rw, StorageMode}; +use vecdb::{ + AnyStoredVec, CachedBoxedVec, ColumnId, Database, ReadOnlyClone, ReadableColumnarVec, Rw, + StorageMode, +}; use crate::{ distribution::metrics::{ColumnarAmount, UTXOColumnarMetric, UTXORows}, @@ -10,8 +13,6 @@ use crate::{ internal::LazySpotValuePerBlock, }; -use super::AllSupplyCache; - #[derive(Traversable)] pub struct SupplyTotal { #[traversable(flatten)] @@ -19,29 +20,43 @@ pub struct SupplyTotal { #[traversable(flatten)] pub matrices: UTXOColumnarMetric, pub addr_balance: ColumnarAmount, + #[traversable(skip)] + all_supply: CachedBoxedVec, } impl SupplyTotal { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, spot_price: &CachedBoxedVec, - ) -> Result<(Self, AllSupplyCache)> { + ) -> Result { let matrices = UTXOColumnarMetric::forced_import(db, "supply_sats", version)?; + let all_name = CohortContext::Utxo.metric_name(&Filter::All, "", "supply"); + let (all, all_supply) = LazySpotValuePerBlock::from_sats_source_with_pinned_height( + &all_name, + version, + matrices.age_range_matrix.read_only_clone().sum_columns( + &format!("{all_name}_sats"), + version, + AgeRangeId::ALL.iter().copied(), + ), + indexes, + spot_price, + ); let cohorts = UTXOGroups::new(|filter, cohort_name| { let name = CohortContext::Utxo.metric_name(&filter, cohort_name, "supply"); - LazySpotValuePerBlock::from_boxed_sats_source( - &name, - version, - matrices + if matches!(filter, Filter::All) { + all.clone() + } else { + let source = matrices .additive_source(&filter, &format!("{name}_sats"), version) - .expect("total-supply cohort source"), - indexes, - spot_price, - ) + .expect("total-supply cohort source"); + LazySpotValuePerBlock::from_boxed_sats_source( + &name, version, source, indexes, spot_price, + ) + } }); - let all_supply = AllSupplyCache::new(cohorts.all.sats.height.clone()); let addr_balance = ColumnarAmount::forced_import( db, "addrs_supply_sats_by_balance_range", @@ -59,35 +74,37 @@ impl SupplyTotal { }, )?; - Ok(( - Self { - cohorts, - matrices, - addr_balance, - }, + Ok(Self { + cohorts, + matrices, + addr_balance, all_supply, - )) + }) } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.matrices.min_len().min(self.addr_balance.len()) } - pub(crate) fn get(&self, filter: &Filter) -> Option<&LazySpotValuePerBlock> { + pub fn get(&self, filter: &Filter) -> Option<&LazySpotValuePerBlock> { self.cohorts.get(filter) } + pub fn all_supply(&self) -> &CachedBoxedVec { + &self.all_supply + } + #[inline(always)] - pub(crate) fn push(&mut self, rows: UTXORows) { + pub fn push(&mut self, rows: UTXORows) { self.matrices.push(rows); } #[inline(always)] - pub(crate) fn push_addr_balance(&mut self, row: AmountRange) { + pub fn push_addr_balance(&mut self, row: AmountRange) { self.addr_balance.push(row); } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = self.matrices.collect_vecs_mut(); vecs.push(self.addr_balance.stored_mut()); vecs diff --git a/crates/brk_computer/src/distribution/metrics/supply/vecs.rs b/crates/brk_computer/src/distribution/metrics/supply/vecs.rs index 49e8847fd..59f857af2 100644 --- a/crates/brk_computer/src/distribution/metrics/supply/vecs.rs +++ b/crates/brk_computer/src/distribution/metrics/supply/vecs.rs @@ -18,7 +18,7 @@ use crate::{ }, }; -use super::{AllSupplyCache, SupplyBase, SupplyByCohort, SupplySources, SupplyTotal}; +use super::{SupplyBase, SupplyByCohort, SupplySources, SupplyTotal}; const MATURED_VERSION: Version = Version::new(5); @@ -44,14 +44,15 @@ pub struct SupplyVecs { } impl SupplyVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, cached_starts: &Windows<&CachedWindowStartVec>, spot_price: &CachedBoxedVec, - ) -> Result<(Self, AllSupplyCache)> { - let (total, all_supply) = SupplyTotal::forced_import(db, version, indexes, spot_price)?; + ) -> Result { + let total = SupplyTotal::forced_import(db, version, indexes, spot_price)?; + let all_supply = total.all_supply(); let in_profit = SupplyByCohort::forced_import(db, "supply_in_profit", version, indexes, spot_price)?; let in_loss = @@ -71,7 +72,7 @@ impl SupplyVecs { &full_name, version, total.clone(), - &all_supply, + all_supply, indexes, cached_starts, ) @@ -85,7 +86,7 @@ impl SupplyVecs { &full_name, version + Version::ONE, total.clone(), - &all_supply, + all_supply, indexes, cached_starts, ) @@ -137,30 +138,27 @@ impl SupplyVecs { }, )?; - Ok(( - Self { - total, - matured, - half, - in_profit, - in_loss, - delta, - addr_balance_delta, - dominance, - addr_balance_dominance, - }, - all_supply, - )) + Ok(Self { + total, + matured, + half, + in_profit, + in_loss, + delta, + addr_balance_delta, + dominance, + addr_balance_dominance, + }) } - pub(crate) fn sources(&self, filter: &Filter) -> Option { + pub fn sources(&self, filter: &Filter) -> Option { Some(SupplySources { total: self.total.get(filter)?.clone(), in_profit: self.in_profit.get(filter)?.clone(), }) } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.total .min_len() .min(self.matured.len()) @@ -169,17 +167,13 @@ impl SupplyVecs { } #[inline(always)] - pub(crate) fn push_maturation(&mut self, matured: &AgeRange, price: Cents) { + pub fn push_maturation(&mut self, matured: &AgeRange, price: Cents) { let cents = AgeRange::from_fn(|column| SatsToCents::apply(*column.select(matured), price)); self.matured.push_block(matured.clone(), cents); } #[inline(always)] - pub(crate) fn push( - &mut self, - total: UTXORows, - profitability: &UTXORows, - ) { + pub fn push(&mut self, total: UTXORows, profitability: &UTXORows) { let in_profit = profitability.map(|state| state.supply_in_profit); let in_loss = profitability.map(|state| state.supply_in_loss); @@ -188,7 +182,7 @@ impl SupplyVecs { self.in_loss.push(in_loss); } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = self.total.collect_vecs_mut(); vecs.extend(self.matured.collect_vecs_mut()); vecs.extend(self.in_profit.collect_vecs_mut()); diff --git a/crates/brk_computer/src/distribution/metrics/unrealized/mod.rs b/crates/brk_computer/src/distribution/metrics/unrealized/mod.rs index 927d14459..695570026 100644 --- a/crates/brk_computer/src/distribution/metrics/unrealized/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/unrealized/mod.rs @@ -3,5 +3,5 @@ mod mvrv_to_nupl; mod vecs; pub use aggregate_sources::UnrealizedAggregateSources; -pub(crate) use mvrv_to_nupl::MvrvToNupl; +pub use mvrv_to_nupl::MvrvToNupl; pub use vecs::{UnrealizedSources, UnrealizedVecs}; diff --git a/crates/brk_computer/src/distribution/metrics/unrealized/mvrv_to_nupl.rs b/crates/brk_computer/src/distribution/metrics/unrealized/mvrv_to_nupl.rs index 1307fd87e..281c61852 100644 --- a/crates/brk_computer/src/distribution/metrics/unrealized/mvrv_to_nupl.rs +++ b/crates/brk_computer/src/distribution/metrics/unrealized/mvrv_to_nupl.rs @@ -1,7 +1,7 @@ use brk_types::{PartsPerMillion64, PartsPerMillionSigned32}; use vecdb::UnaryTransform; -pub(crate) struct MvrvToNupl; +pub struct MvrvToNupl; impl UnaryTransform for MvrvToNupl { #[inline(always)] diff --git a/crates/brk_computer/src/distribution/metrics/unrealized/vecs/by_cohort.rs b/crates/brk_computer/src/distribution/metrics/unrealized/vecs/by_cohort.rs index 18cc33159..981193e3c 100644 --- a/crates/brk_computer/src/distribution/metrics/unrealized/vecs/by_cohort.rs +++ b/crates/brk_computer/src/distribution/metrics/unrealized/vecs/by_cohort.rs @@ -27,7 +27,7 @@ impl UnrealizedByCohort where C: FiatType + PcoVecValue + AddAssign, { - pub(super) fn forced_import( + pub fn forced_import( db: &Database, metric: &str, version: Version, diff --git a/crates/brk_computer/src/distribution/metrics/unrealized/vecs/collection.rs b/crates/brk_computer/src/distribution/metrics/unrealized/vecs/collection.rs index f37d82571..28212cfae 100644 --- a/crates/brk_computer/src/distribution/metrics/unrealized/vecs/collection.rs +++ b/crates/brk_computer/src/distribution/metrics/unrealized/vecs/collection.rs @@ -44,7 +44,7 @@ pub struct UnrealizedVecs { } impl UnrealizedVecs { - pub(crate) fn forced_import( + pub fn forced_import( db: &Database, version: Version, indexes: &indexes::Vecs, @@ -137,14 +137,14 @@ impl UnrealizedVecs { } } - pub(crate) fn sources(&self, filter: &Filter) -> Option { + pub fn sources(&self, filter: &Filter) -> Option { Some(UnrealizedSources { profit: self.profit.cohorts.get(filter)?.clone(), loss: self.loss.cohorts.get(filter)?.clone(), }) } - pub(crate) fn aggregate_sources(&self, filter: &Filter) -> Option { + pub fn aggregate_sources(&self, filter: &Filter) -> Option { Some(UnrealizedAggregateSources { gross_pnl: self.gross_pnl.series.get(filter)?.clone(), invested_capital_in_profit: self.invested_capital_in_profit.series.get(filter)?.clone(), @@ -153,7 +153,7 @@ impl UnrealizedVecs { } #[inline(always)] - pub(crate) fn push( + pub fn push( &mut self, rows: &UTXORows, spot: Cents, @@ -185,7 +185,7 @@ impl UnrealizedVecs { .push(&rows.map(|row| row.capitalized_cap_in_loss_raw)); } - pub(crate) fn min_len(&self) -> usize { + pub fn min_len(&self) -> usize { self.profit .matrices .min_len() @@ -201,7 +201,7 @@ impl UnrealizedVecs { .min(self.capitalized_cap_in_loss_raw.len()) } - pub(crate) fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { + pub fn collect_vecs_mut(&mut self) -> Vec<&mut dyn AnyStoredVec> { let mut vecs = self.profit.matrices.collect_vecs_mut(); vecs.extend(self.loss.matrices.collect_vecs_mut()); vecs.extend(self.net_pnl.matrices.collect_vecs_mut()); diff --git a/crates/brk_computer/src/distribution/metrics/unrealized/vecs/mod.rs b/crates/brk_computer/src/distribution/metrics/unrealized/vecs/mod.rs index 13ba7a282..343e6f9d2 100644 --- a/crates/brk_computer/src/distribution/metrics/unrealized/vecs/mod.rs +++ b/crates/brk_computer/src/distribution/metrics/unrealized/vecs/mod.rs @@ -3,7 +3,7 @@ mod collection; mod net_by_cohort; mod sources; -pub(super) use by_cohort::UnrealizedByCohort; +pub use by_cohort::UnrealizedByCohort; pub use collection::UnrealizedVecs; -pub(super) use net_by_cohort::NetUnrealizedByCohort; +pub use net_by_cohort::NetUnrealizedByCohort; pub use sources::UnrealizedSources; diff --git a/crates/brk_computer/src/distribution/metrics/unrealized/vecs/net_by_cohort.rs b/crates/brk_computer/src/distribution/metrics/unrealized/vecs/net_by_cohort.rs index 08c7c5d8a..280922fe5 100644 --- a/crates/brk_computer/src/distribution/metrics/unrealized/vecs/net_by_cohort.rs +++ b/crates/brk_computer/src/distribution/metrics/unrealized/vecs/net_by_cohort.rs @@ -18,11 +18,7 @@ pub struct NetUnrealizedByCohort { } impl NetUnrealizedByCohort { - pub(super) fn forced_import( - db: &Database, - version: Version, - indexes: &indexes::Vecs, - ) -> Result { + pub fn forced_import(db: &Database, version: Version, indexes: &indexes::Vecs) -> Result { let metric = "net_unrealized_pnl"; let matrices = UTXOColumnarMetricWithoutAmountOrType::forced_import( db, diff --git a/crates/brk_computer/src/distribution/mod.rs b/crates/brk_computer/src/distribution/mod.rs index 43b005536..8465b9448 100644 --- a/crates/brk_computer/src/distribution/mod.rs +++ b/crates/brk_computer/src/distribution/mod.rs @@ -1,17 +1,16 @@ -pub mod addr; -mod all_chain_cache; +mod addr; +mod all_chain_sources; mod block; -pub mod compute; -pub mod metrics; +mod compute; +mod inner; +mod metrics; mod state; mod vecs; -pub(crate) use all_chain_cache::AllChainCache; -pub use brk_types::RangeMap; +pub use addr::{AddrsDataVecs, AnyAddrIndexesVecs}; +pub use all_chain_sources::AllChainSources; +pub use metrics::CohortMetrics; +pub use state::UTXOStates; pub use vecs::Vecs; pub const DB_NAME: &str = "distribution"; - -pub use addr::{AddrTypeToTypeIndexMap, AddrsDataVecs, AnyAddrIndexesVecs}; -pub use metrics::CohortMetrics; -pub use state::{AddrStates, UTXOStates}; diff --git a/crates/brk_computer/src/distribution/state/addr/cohort.rs b/crates/brk_computer/src/distribution/state/addr/cohort.rs index 8e0140713..4a97ebbf3 100644 --- a/crates/brk_computer/src/distribution/state/addr/cohort.rs +++ b/crates/brk_computer/src/distribution/state/addr/cohort.rs @@ -14,7 +14,7 @@ pub struct AddrCohortState { } impl AddrCohortState { - pub(crate) fn new(path: &Path, name: &str) -> Self { + pub fn new(path: &Path, name: &str) -> Self { Self { addr_count: 0, inner: CohortState::new(path, name), @@ -22,7 +22,7 @@ impl AddrCohortState { } /// Reset state for fresh start. - pub(crate) fn reset(&mut self) { + pub fn reset(&mut self) { self.addr_count = 0; self.inner.supply = SupplyState::default(); self.inner.sent = Sats::ZERO; @@ -31,7 +31,7 @@ impl AddrCohortState { self.inner.realized = MinimalRealizedState::default(); } - pub(crate) fn send( + pub fn send( &mut self, addr_data: &mut FundedAddrData, value: Sats, @@ -52,7 +52,7 @@ impl AddrCohortState { Ok(()) } - pub(crate) fn receive_outputs( + pub fn receive_outputs( &mut self, addr_data: &mut FundedAddrData, value: Sats, @@ -70,14 +70,14 @@ impl AddrCohortState { ); } - pub(crate) fn add(&mut self, addr_data: &FundedAddrData) { + pub fn add(&mut self, addr_data: &FundedAddrData) { self.addr_count += 1; let supply = SupplyState::from(addr_data); self.inner .increment_addr(&supply, addr_data.realized_cap_raw); } - pub(crate) fn subtract(&mut self, addr_data: &FundedAddrData) { + pub fn subtract(&mut self, addr_data: &FundedAddrData) { let supply = SupplyState::from(addr_data); // Check for potential underflow before it happens diff --git a/crates/brk_computer/src/distribution/state/addr/collection.rs b/crates/brk_computer/src/distribution/state/addr/collection.rs index 012afa60c..8220cab48 100644 --- a/crates/brk_computer/src/distribution/state/addr/collection.rs +++ b/crates/brk_computer/src/distribution/state/addr/collection.rs @@ -16,7 +16,7 @@ pub struct AddrStates { } impl AddrStates { - pub(crate) fn new(path: &Path) -> Self { + pub fn new(path: &Path) -> Self { Self { amount_range: AmountRange::new(|filter: Filter, name| { let name = CohortContext::Addr.full_name(&filter, name); @@ -26,7 +26,7 @@ impl AddrStates { } } - pub(crate) fn import( + pub fn import( &mut self, metrics: &CohortMetrics, funded: &FundedAddrCountsVecs, @@ -78,7 +78,7 @@ impl AddrStates { Ok(self.starting_height == height) } - pub(crate) fn reset(&mut self) -> Result<()> { + pub fn reset(&mut self) -> Result<()> { self.starting_height = Height::ZERO; for state in self.amount_range.iter_mut() { state.reset(); @@ -87,7 +87,7 @@ impl AddrStates { Ok(()) } - pub(crate) fn push( + pub fn push( &self, metrics: &mut CohortMetrics, funded: &mut FundedAddrCountsVecs, @@ -103,13 +103,13 @@ impl AddrStates { })); } - pub(crate) fn reset_block(&mut self) { + pub fn reset_block(&mut self) { self.amount_range .iter_mut() .for_each(|state| state.inner.reset_single_iteration_values()); } - pub(crate) fn write(&mut self, height: Height, cleanup: bool) -> Result<()> { + pub fn write(&mut self, height: Height, cleanup: bool) -> Result<()> { self.amount_range .par_iter_mut() .try_for_each(|state| state.inner.write(height, cleanup)) diff --git a/crates/brk_computer/src/distribution/state/addr/mod.rs b/crates/brk_computer/src/distribution/state/addr/mod.rs index 3f40c4d54..8165cc691 100644 --- a/crates/brk_computer/src/distribution/state/addr/mod.rs +++ b/crates/brk_computer/src/distribution/state/addr/mod.rs @@ -1,5 +1,5 @@ mod cohort; mod collection; -pub use cohort::*; -pub use collection::*; +pub use cohort::AddrCohortState; +pub use collection::AddrStates; diff --git a/crates/brk_computer/src/distribution/state/cohort.rs b/crates/brk_computer/src/distribution/state/cohort.rs index f3e7ad1d1..9c2a46533 100644 --- a/crates/brk_computer/src/distribution/state/cohort.rs +++ b/crates/brk_computer/src/distribution/state/cohort.rs @@ -24,7 +24,7 @@ pub struct CohortState { } impl CohortState { - pub(crate) fn new(path: &Path, name: &str) -> Self { + pub fn new(path: &Path, name: &str) -> Self { Self { supply: SupplyState::default(), realized: R::default(), @@ -35,28 +35,28 @@ impl CohortState { } } - pub(crate) fn import_at_or_before(&mut self, height: Height) -> Result { + pub fn import_at_or_before(&mut self, height: Height) -> Result { self.cost_basis.import_at_or_before(height) } /// Restore realized cap from cost_basis after import. - pub(crate) fn restore_realized_cap(&mut self) { + pub fn restore_realized_cap(&mut self) { self.realized.set_cap_raw(self.cost_basis.cap_raw()); self.realized .set_capitalized_cap_raw(self.cost_basis.capitalized_cap_raw()); } - pub(crate) fn reset_cost_basis_data_if_needed(&mut self) -> Result<()> { + pub fn reset_cost_basis_data_if_needed(&mut self) -> Result<()> { self.cost_basis.clean()?; self.cost_basis.init(); Ok(()) } - pub(crate) fn apply_pending(&mut self) { + pub fn apply_pending(&mut self) { self.cost_basis.apply_pending(); } - pub(crate) fn reset_single_iteration_values(&mut self) { + pub fn reset_single_iteration_values(&mut self) { self.sent = Sats::ZERO; self.spent_utxo_count = 0; if R::TRACK_ACTIVITY { @@ -65,7 +65,7 @@ impl CohortState { self.realized.reset_single_iteration_values(); } - pub(crate) fn increment_snapshot(&mut self, s: &CostBasisSnapshot) { + pub fn increment_snapshot(&mut self, s: &CostBasisSnapshot) { self.supply += &s.supply_state; if s.supply_state.value > Sats::ZERO { @@ -80,7 +80,7 @@ impl CohortState { } } - pub(crate) fn decrement_snapshot(&mut self, s: &CostBasisSnapshot) { + pub fn decrement_snapshot(&mut self, s: &CostBasisSnapshot) { self.supply -= &s.supply_state; if s.supply_state.value > Sats::ZERO { @@ -95,17 +95,13 @@ impl CohortState { } } - pub(crate) fn receive_utxo(&mut self, supply: &SupplyState, price: Cents) { + pub fn receive_utxo(&mut self, supply: &SupplyState, price: Cents) { self.receive_utxo_snapshot(supply, &CostBasisSnapshot::from_utxo(price, supply)); } /// Like receive_utxo but takes a pre-computed snapshot to avoid redundant multiplication /// when the same supply/price is used across multiple cohorts. - pub(crate) fn receive_utxo_snapshot( - &mut self, - supply: &SupplyState, - snapshot: &CostBasisSnapshot, - ) { + pub fn receive_utxo_snapshot(&mut self, supply: &SupplyState, snapshot: &CostBasisSnapshot) { self.supply += supply; if supply.value > Sats::ZERO { @@ -120,7 +116,7 @@ impl CohortState { } } - pub(crate) fn send_utxo_precomputed(&mut self, supply: &SupplyState, pre: &SendPrecomputed) { + pub fn send_utxo_precomputed(&mut self, supply: &SupplyState, pre: &SendPrecomputed) { self.supply -= supply; self.sent += pre.sats; self.spent_utxo_count += supply.utxo_count; @@ -144,7 +140,7 @@ impl CohortState { ); } - pub(crate) fn send_utxo( + pub fn send_utxo( &mut self, supply: &SupplyState, current_price: Cents, @@ -160,13 +156,13 @@ impl CohortState { } } - pub(crate) fn write(&mut self, height: Height, cleanup: bool) -> Result<()> { + pub fn write(&mut self, height: Height, cleanup: bool) -> Result<()> { self.cost_basis.write(height, cleanup) } } impl CohortState { - pub(crate) fn increment_addr(&mut self, supply: &SupplyState, cap: CentsSats) { + pub fn increment_addr(&mut self, supply: &SupplyState, cap: CentsSats) { self.supply += supply; if supply.value.is_not_zero() { @@ -175,7 +171,7 @@ impl CohortState { } } - pub(crate) fn decrement_addr(&mut self, supply: &SupplyState, cap: CentsSats) { + pub fn decrement_addr(&mut self, supply: &SupplyState, cap: CentsSats) { self.supply -= supply; if supply.value.is_not_zero() { @@ -184,12 +180,7 @@ impl CohortState { } } - pub(crate) fn send_addr( - &mut self, - supply: &SupplyState, - current_price: Cents, - prev_ps: CentsSats, - ) { + pub fn send_addr(&mut self, supply: &SupplyState, current_price: Cents, prev_ps: CentsSats) { if supply.utxo_count == 0 { return; } @@ -211,15 +202,15 @@ impl CohortState { /// Methods only available with CostBasisData (map + unrealized). impl CohortState> { - pub(crate) fn compute_unrealized_state(&mut self, height_price: Cents) -> UnrealizedState { + pub fn compute_unrealized_state(&mut self, height_price: Cents) -> UnrealizedState { self.cost_basis.compute_unrealized_state(height_price) } - pub(crate) fn for_each_cost_basis_pending(&self, f: impl FnMut(&CentsCompact, &PendingDelta)) { + pub fn for_each_cost_basis_pending(&self, f: impl FnMut(&CentsCompact, &PendingDelta)) { self.cost_basis.for_each_pending(f); } - pub(crate) fn cost_basis_map(&self) -> &BTreeMap { + pub fn cost_basis_map(&self) -> &BTreeMap { self.cost_basis.map() } } diff --git a/crates/brk_computer/src/distribution/state/cost_basis/core_realized_state.rs b/crates/brk_computer/src/distribution/state/cost_basis/core_realized_state.rs index b20a59aff..ef40b930e 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/core_realized_state.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/core_realized_state.rs @@ -108,7 +108,7 @@ impl RealizedOps for CoreRealizedState { impl CoreRealizedState { #[inline(always)] - pub(super) fn cap_raw_u128(&self) -> u128 { + pub fn cap_raw_u128(&self) -> u128 { self.minimal.cap_raw().as_u128() } } diff --git a/crates/brk_computer/src/distribution/state/cost_basis/data.rs b/crates/brk_computer/src/distribution/state/cost_basis/data.rs index a55b761f8..4a640b1cb 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/data.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/data.rs @@ -31,20 +31,20 @@ pub struct CostBasisData { } impl CostBasisData { - pub(crate) fn map(&self) -> &BTreeMap { + pub fn map(&self) -> &BTreeMap { debug_assert!(self.pending.is_empty() && self.raw.has_no_pending_cap()); &self.map.as_ref().unwrap().map } - pub(crate) fn is_empty(&self) -> bool { + pub fn is_empty(&self) -> bool { self.pending.is_empty() && self.map.as_ref().unwrap().map.is_empty() } - pub(crate) fn for_each_pending(&self, mut f: impl FnMut(&CentsCompact, &PendingDelta)) { + pub fn for_each_pending(&self, mut f: impl FnMut(&CentsCompact, &PendingDelta)) { self.pending.iter().for_each(|(k, v)| f(k, v)); } - pub(crate) fn compute_unrealized_state(&mut self, height_price: Cents) -> UnrealizedState { + pub fn compute_unrealized_state(&mut self, height_price: Cents) -> UnrealizedState { if self.is_empty() { return UnrealizedState::ZERO; } diff --git a/crates/brk_computer/src/distribution/state/cost_basis/minimal_realized_state.rs b/crates/brk_computer/src/distribution/state/cost_basis/minimal_realized_state.rs index 1efd40dc1..6bb3f81a8 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/minimal_realized_state.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/minimal_realized_state.rs @@ -14,17 +14,17 @@ pub struct MinimalRealizedState { impl MinimalRealizedState { #[inline] - pub(crate) fn increment_cap(&mut self, cap: CentsSats) { + pub fn increment_cap(&mut self, cap: CentsSats) { self.cap_raw += cap.as_u128(); } #[inline] - pub(crate) fn decrement_cap(&mut self, cap: CentsSats) { + pub fn decrement_cap(&mut self, cap: CentsSats) { self.cap_raw -= cap.as_u128(); } #[inline] - pub(crate) fn realize_spend(&mut self, current: CentsSats, previous: CentsSats) { + pub fn realize_spend(&mut self, current: CentsSats, previous: CentsSats) { match current.cmp(&previous) { Ordering::Greater => self.profit_raw += (current - previous).as_u128(), Ordering::Less => self.loss_raw += (previous - current).as_u128(), diff --git a/crates/brk_computer/src/distribution/state/cost_basis/mod.rs b/crates/brk_computer/src/distribution/state/cost_basis/mod.rs index 6d3479d1a..6990b2c6a 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/mod.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/mod.rs @@ -12,10 +12,10 @@ pub use data::CostBasisData; pub use minimal_realized_state::MinimalRealizedState; pub use ops::CostBasisOps; pub use raw::CostBasisRaw; -pub use realized::*; +pub use realized::RealizedOps; pub use realized_state::RealizedState; pub use unrealized::UnrealizedState; -pub(crate) use unrealized::{Accumulate, WithCapital, WithoutCapital}; +pub use unrealized::{Accumulate, WithCapital, WithoutCapital}; // Internal use only diff --git a/crates/brk_computer/src/distribution/state/cost_basis/raw.rs b/crates/brk_computer/src/distribution/state/cost_basis/raw.rs index d7806ea6d..d6c8c619d 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/raw.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/raw.rs @@ -41,33 +41,30 @@ pub struct CostBasisRaw { impl CostBasisRaw { #[inline] - pub(crate) fn increment_cap(&mut self, value: CentsSats) { + pub fn increment_cap(&mut self, value: CentsSats) { self.pending_cap.inc += value; } #[inline] - pub(crate) fn decrement_cap(&mut self, value: CentsSats) { + pub fn decrement_cap(&mut self, value: CentsSats) { self.pending_cap.dec += value; } #[inline] - pub(super) fn has_no_pending_cap(&self) -> bool { + pub fn has_no_pending_cap(&self) -> bool { self.pending_cap.is_zero() } #[inline] - pub(super) fn path(&self) -> &Path { + pub fn path(&self) -> &Path { &self.pathbuf } - pub(super) fn path_state(&self, height: Height) -> PathBuf { + pub fn path_state(&self, height: Height) -> PathBuf { self.pathbuf.join(height.to_string()) } - pub(super) fn read_dir( - &self, - keep_only_before: Option, - ) -> Result> { + pub fn read_dir(&self, keep_only_before: Option) -> Result> { if !self.pathbuf.exists() { return Ok(BTreeMap::new()); } @@ -89,17 +86,17 @@ impl CostBasisRaw { .collect()) } - pub(super) fn import_state(&mut self, data: &[u8]) -> Result<()> { + pub fn import_state(&mut self, data: &[u8]) -> Result<()> { self.state = Some(RawState::deserialize(data)?); self.pending_cap = PendingCapDelta::default(); Ok(()) } - pub(super) fn serialized_state(&self) -> Vec { + pub fn serialized_state(&self) -> Vec { self.state.as_ref().unwrap().serialize() } - pub(super) fn apply_pending_cap(&mut self) { + pub fn apply_pending_cap(&mut self) { if self.pending_cap.is_zero() { return; } @@ -120,7 +117,7 @@ impl CostBasisRaw { self.pending_cap = PendingCapDelta::default(); } - pub(super) fn write_and_cleanup(&mut self, height: Height, cleanup: bool) -> Result<()> { + pub fn write_and_cleanup(&mut self, height: Height, cleanup: bool) -> Result<()> { if cleanup { let files = self.read_dir(Some(height))?; for (_, path) in files diff --git a/crates/brk_computer/src/distribution/state/cost_basis/realized_state.rs b/crates/brk_computer/src/distribution/state/cost_basis/realized_state.rs index 09fc4dd61..952410d43 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/realized_state.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/realized_state.rs @@ -105,17 +105,17 @@ impl RealizedOps for RealizedState { impl RealizedState { #[inline] - pub(crate) fn cap_raw(&self) -> CentsSats { + pub fn cap_raw(&self) -> CentsSats { CentsSats::new(self.core.cap_raw_u128()) } #[inline] - pub(crate) fn capitalized_cap_raw(&self) -> CentsSquaredSats { + pub fn capitalized_cap_raw(&self) -> CentsSquaredSats { self.capitalized_cap_raw } #[inline] - pub(crate) fn peak_regret_raw(&self) -> u128 { + pub fn peak_regret_raw(&self) -> u128 { self.peak_regret_raw } } diff --git a/crates/brk_computer/src/distribution/state/cost_basis/unrealized/accumulate.rs b/crates/brk_computer/src/distribution/state/cost_basis/unrealized/accumulate.rs index 7164ee118..61d36852f 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/unrealized/accumulate.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/unrealized/accumulate.rs @@ -33,7 +33,7 @@ pub trait Accumulate: Default + Clone + Send + Sync + 'static { } #[inline(always)] -pub(super) fn div_btc(raw: u128) -> Cents { +pub fn div_btc(raw: u128) -> Cents { if raw == 0 { Cents::ZERO } else { diff --git a/crates/brk_computer/src/distribution/state/cost_basis/unrealized/cache.rs b/crates/brk_computer/src/distribution/state/cost_basis/unrealized/cache.rs index 3f5b72795..0dbc0c05c 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/unrealized/cache.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/unrealized/cache.rs @@ -5,14 +5,14 @@ use brk_types::{Cents, CentsCompact, Sats}; use super::{Accumulate, UnrealizedState}; #[derive(Debug, Clone)] -pub(crate) struct CachedUnrealizedState { +pub struct CachedUnrealizedState { state: S, at_price: CentsCompact, cached_output: Option, } impl CachedUnrealizedState { - pub(crate) fn compute_fresh(price: Cents, map: &BTreeMap) -> Self { + pub fn compute_fresh(price: Cents, map: &BTreeMap) -> Self { let price = price.into(); let state = Self::compute_raw(price, map); Self { @@ -22,11 +22,11 @@ impl CachedUnrealizedState { } } - pub(crate) fn current_state(&self) -> UnrealizedState { + pub fn current_state(&self) -> UnrealizedState { self.state.to_output() } - pub(crate) fn get_at_price( + pub fn get_at_price( &mut self, new_price: Cents, map: &BTreeMap, @@ -42,7 +42,7 @@ impl CachedUnrealizedState { self.cached_output.insert(self.state.to_output()).clone() } - pub(crate) fn on_receive(&mut self, price: Cents, sats: Sats) { + pub fn on_receive(&mut self, price: Cents, sats: Sats) { self.cached_output = None; let price: CentsCompact = price.into(); let sats_u128 = sats.as_u128(); @@ -61,7 +61,7 @@ impl CachedUnrealizedState { } } - pub(crate) fn on_send(&mut self, price: Cents, sats: Sats) { + pub fn on_send(&mut self, price: Cents, sats: Sats) { self.cached_output = None; let price: CentsCompact = price.into(); let sats_u128 = sats.as_u128(); diff --git a/crates/brk_computer/src/distribution/state/cost_basis/unrealized/mod.rs b/crates/brk_computer/src/distribution/state/cost_basis/unrealized/mod.rs index 3d0fad5d3..4806cbf14 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/unrealized/mod.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/unrealized/mod.rs @@ -6,8 +6,8 @@ mod without_capital; pub use state::UnrealizedState; -pub(crate) use accumulate::Accumulate; -pub(crate) use with_capital::WithCapital; -pub(crate) use without_capital::WithoutCapital; +pub use accumulate::Accumulate; +pub use with_capital::WithCapital; +pub use without_capital::WithoutCapital; -pub(super) use cache::CachedUnrealizedState; +pub use cache::CachedUnrealizedState; diff --git a/crates/brk_computer/src/distribution/state/cost_basis/unrealized/without_capital.rs b/crates/brk_computer/src/distribution/state/cost_basis/unrealized/without_capital.rs index fb851a5cc..e580fad27 100644 --- a/crates/brk_computer/src/distribution/state/cost_basis/unrealized/without_capital.rs +++ b/crates/brk_computer/src/distribution/state/cost_basis/unrealized/without_capital.rs @@ -5,10 +5,10 @@ use super::{Accumulate, UnrealizedState, accumulate::div_btc}; /// Supply and unrealized profit/loss cache state without capital tracking. #[derive(Debug, Default, Clone)] pub struct WithoutCapital { - pub(crate) supply_in_profit: Sats, - pub(crate) supply_in_loss: Sats, - pub(crate) unrealized_profit: u128, - pub(crate) unrealized_loss: u128, + pub supply_in_profit: Sats, + pub supply_in_loss: Sats, + pub unrealized_profit: u128, + pub unrealized_loss: u128, } impl Accumulate for WithoutCapital { diff --git a/crates/brk_computer/src/distribution/state/mod.rs b/crates/brk_computer/src/distribution/state/mod.rs index c40f646f1..43c7c24f8 100644 --- a/crates/brk_computer/src/distribution/state/mod.rs +++ b/crates/brk_computer/src/distribution/state/mod.rs @@ -6,10 +6,13 @@ mod pending; mod transacted; mod utxo; -pub use addr::*; -pub use block::*; -pub use cohort::*; -pub use cost_basis::*; -pub use pending::*; -pub use transacted::*; -pub use utxo::*; +pub use addr::{AddrCohortState, AddrStates}; +pub use block::BlockState; +pub use cohort::CohortState; +pub use cost_basis::{ + CoreRealizedState, CostBasisData, CostBasisOps, CostBasisRaw, MinimalRealizedState, + RealizedOps, RealizedState, UnrealizedState, WithCapital, WithoutCapital, +}; +pub use pending::PendingDelta; +pub use transacted::Transacted; +pub use utxo::{PercentileResult, SendPrecomputed, UTXOStates}; diff --git a/crates/brk_computer/src/distribution/state/pending/cap.rs b/crates/brk_computer/src/distribution/state/pending/cap.rs index 221499fc6..da3207aae 100644 --- a/crates/brk_computer/src/distribution/state/pending/cap.rs +++ b/crates/brk_computer/src/distribution/state/pending/cap.rs @@ -1,13 +1,13 @@ use brk_types::CentsSats; #[derive(Clone, Debug, Default)] -pub(crate) struct PendingCapDelta { +pub struct PendingCapDelta { pub inc: CentsSats, pub dec: CentsSats, } impl PendingCapDelta { - pub(crate) fn is_zero(&self) -> bool { + pub fn is_zero(&self) -> bool { self.inc == CentsSats::ZERO && self.dec == CentsSats::ZERO } } diff --git a/crates/brk_computer/src/distribution/state/pending/capitalized_cap.rs b/crates/brk_computer/src/distribution/state/pending/capitalized_cap.rs index 3454fd132..90f1e56ae 100644 --- a/crates/brk_computer/src/distribution/state/pending/capitalized_cap.rs +++ b/crates/brk_computer/src/distribution/state/pending/capitalized_cap.rs @@ -1,7 +1,7 @@ use brk_types::CentsSquaredSats; #[derive(Clone, Debug, Default)] -pub(crate) struct PendingCapitalizedCapRawDelta { +pub struct PendingCapitalizedCapRawDelta { pub inc: CentsSquaredSats, pub dec: CentsSquaredSats, } diff --git a/crates/brk_computer/src/distribution/state/pending/mod.rs b/crates/brk_computer/src/distribution/state/pending/mod.rs index ca1fef802..ddcdd2dbf 100644 --- a/crates/brk_computer/src/distribution/state/pending/mod.rs +++ b/crates/brk_computer/src/distribution/state/pending/mod.rs @@ -2,6 +2,6 @@ mod cap; mod capitalized_cap; mod delta; -pub(crate) use cap::PendingCapDelta; -pub(crate) use capitalized_cap::PendingCapitalizedCapRawDelta; +pub use cap::PendingCapDelta; +pub use capitalized_cap::PendingCapitalizedCapRawDelta; pub use delta::PendingDelta; diff --git a/crates/brk_computer/src/distribution/state/transacted.rs b/crates/brk_computer/src/distribution/state/transacted.rs index d9f1e6048..1114eaf3a 100644 --- a/crates/brk_computer/src/distribution/state/transacted.rs +++ b/crates/brk_computer/src/distribution/state/transacted.rs @@ -13,7 +13,7 @@ pub struct Transacted { impl Transacted { #[allow(clippy::inconsistent_digit_grouping)] - pub(crate) fn iterate(&mut self, value: Sats, _type: OutputType) { + pub fn iterate(&mut self, value: Sats, _type: OutputType) { let supply = SupplyState { utxo_count: 1, value, diff --git a/crates/brk_computer/src/distribution/state/utxo/cohort.rs b/crates/brk_computer/src/distribution/state/utxo/cohort.rs index 419dc8904..883408033 100644 --- a/crates/brk_computer/src/distribution/state/utxo/cohort.rs +++ b/crates/brk_computer/src/distribution/state/utxo/cohort.rs @@ -9,19 +9,19 @@ use super::super::cost_basis::{CostBasisOps, RealizedOps}; use crate::distribution::metrics::RealizedBlockData; #[derive(Deref, DerefMut)] -pub struct UTXOCohortState(pub(crate) CohortState); +pub struct UTXOCohortState(pub CohortState); impl UTXOCohortState { - pub(crate) fn new(path: &Path, name: &str) -> Self { + pub fn new(path: &Path, name: &str) -> Self { Self(CohortState::new(path, name)) } - pub(crate) fn reset_cost_basis_data_if_needed(&mut self) -> Result<()> { + pub fn reset_cost_basis_data_if_needed(&mut self) -> Result<()> { self.0.reset_cost_basis_data_if_needed() } /// Reset state for fresh start. - pub(crate) fn reset(&mut self) { + pub fn reset(&mut self) { self.0.supply = SupplyState::default(); self.0.sent = Sats::ZERO; self.0.spent_utxo_count = 0; @@ -30,12 +30,12 @@ impl UTXOCohortState { } #[inline(always)] - pub(crate) fn supply_value(&self) -> Sats { + pub fn supply_value(&self) -> Sats { self.supply.value } #[inline(always)] - pub(crate) fn output_counts(&self) -> (StoredU64, StoredU64) { + pub fn output_counts(&self) -> (StoredU64, StoredU64) { ( StoredU64::from(self.supply.utxo_count), StoredU64::from(self.spent_utxo_count), @@ -43,12 +43,12 @@ impl UTXOCohortState { } #[inline(always)] - pub(crate) fn transfer_volume(&self) -> Sats { + pub fn transfer_volume(&self) -> Sats { self.sent } #[inline(always)] - pub(crate) fn core_activity(&self) -> (StoredF64, Sats, Sats) { + pub fn core_activity(&self) -> (StoredF64, Sats, Sats) { ( StoredF64::from(Bitcoin::from(self.satdays_destroyed)), self.realized.sent_in_profit(), @@ -57,7 +57,7 @@ impl UTXOCohortState { } #[inline(always)] - pub(crate) fn realized_block_data(&self) -> RealizedBlockData { + pub fn realized_block_data(&self) -> RealizedBlockData { let cap_raw = self.realized.cap_raw(); let supply = self.supply.value; let cap = self.realized.cap(); diff --git a/crates/brk_computer/src/distribution/state/utxo/collection.rs b/crates/brk_computer/src/distribution/state/utxo/collection.rs index 41c2b806c..c99b64a17 100644 --- a/crates/brk_computer/src/distribution/state/utxo/collection.rs +++ b/crates/brk_computer/src/distribution/state/utxo/collection.rs @@ -23,11 +23,11 @@ pub struct UTXOStates { pub entry: ByEntry>>, pub amount_range: AmountRange>, pub type_: SpendableType>>, - pub(super) transient: UTXOTransientState, + pub transient: UTXOTransientState, } impl UTXOStates { - pub(crate) fn new(path: &Path) -> Self { + pub fn new(path: &Path) -> Self { let name = |filter: &Filter, cohort: &str| CohortContext::Utxo.full_name(filter, cohort); Self { @@ -51,7 +51,7 @@ impl UTXOStates { } } - pub(crate) fn reset(&mut self) -> Result<()> { + pub fn reset(&mut self) -> Result<()> { for state in self.age_range.iter_mut() { state.reset(); state.reset_cost_basis_data_if_needed()?; @@ -80,7 +80,7 @@ impl UTXOStates { Ok(()) } - pub(crate) fn import(&mut self, metrics: &CohortMetrics, height: Height) -> Result { + pub fn import(&mut self, metrics: &CohortMetrics, height: Height) -> Result { for ((state, supply), unspent_count) in self .age_range .iter_mut() @@ -185,7 +185,7 @@ impl UTXOStates { Ok(previous_height.incremented()) } - pub(crate) fn apply_pending(&mut self) { + pub fn apply_pending(&mut self) { self.age_range .iter_mut() .for_each(|state| state.apply_pending()); @@ -203,7 +203,7 @@ impl UTXOStates { .for_each(|state| state.apply_pending()); } - pub(crate) fn reset_block(&mut self) { + pub fn reset_block(&mut self) { self.age_range .iter_mut() .for_each(|state| state.reset_single_iteration_values()); @@ -224,7 +224,7 @@ impl UTXOStates { .for_each(|state| state.reset_single_iteration_values()); } - pub(crate) fn write(&mut self, height: Height, cleanup: bool) -> Result<()> { + pub fn write(&mut self, height: Height, cleanup: bool) -> Result<()> { self.age_range .par_iter_mut() .try_for_each(|state| state.write(height, cleanup))?; @@ -246,7 +246,7 @@ impl UTXOStates { Ok(()) } - pub(crate) fn init_fenwick_if_needed(&mut self, sth_filter: &Filter) { + pub fn init_fenwick_if_needed(&mut self, sth_filter: &Filter) { if self.transient.fenwick.is_initialized() { return; } @@ -262,7 +262,7 @@ impl UTXOStates { self.transient.fenwick.bulk_init(maps.into_iter()); } - pub(crate) fn update_fenwick_from_pending(&mut self) { + pub fn update_fenwick_from_pending(&mut self) { if !self.transient.fenwick.is_initialized() { return; } @@ -281,7 +281,7 @@ impl UTXOStates { } } - pub(crate) fn fenwick(&self) -> &CostBasisFenwick { + pub fn fenwick(&self) -> &CostBasisFenwick { &self.transient.fenwick } } diff --git a/crates/brk_computer/src/distribution/state/utxo/fenwick.rs b/crates/brk_computer/src/distribution/state/utxo/fenwick.rs index f5ef676fc..a4d0729dc 100644 --- a/crates/brk_computer/src/distribution/state/utxo/fenwick.rs +++ b/crates/brk_computer/src/distribution/state/utxo/fenwick.rs @@ -61,7 +61,7 @@ impl FenwickNode for CostBasisNode { /// Combined Fenwick tree for per-block accurate percentile and profitability queries. #[derive(Clone)] -pub(crate) struct CostBasisFenwick { +pub struct CostBasisFenwick { tree: FenwickTree, /// Running totals (sum of all underlying frequencies). totals: CostBasisNode, @@ -122,28 +122,23 @@ impl Default for CostBasisFenwick { } impl CostBasisFenwick { - pub(crate) fn is_initialized(&self) -> bool { + pub fn is_initialized(&self) -> bool { self.initialized } /// Pre-compute `is_sth` lookup from the STH filter and age-range filters. - pub(super) fn compute_is_sth(&mut self, sth_filter: &Filter) { + pub fn compute_is_sth(&mut self, sth_filter: &Filter) { for id in AgeRangeId::ALL { self.is_sth[id.index()] = sth_filter.includes(id.filter()); } } - pub(super) fn is_sth(&self, id: AgeRangeId) -> bool { + pub fn is_sth(&self, id: AgeRangeId) -> bool { self.is_sth[id.index()] } /// Apply a net delta from a pending map entry. - pub(super) fn apply_delta( - &mut self, - price: CentsCompact, - pending: &PendingDelta, - is_sth: bool, - ) { + pub fn apply_delta(&mut self, price: CentsCompact, pending: &PendingDelta, is_sth: bool) { let net_sats = u64::from(pending.inc) as i64 - u64::from(pending.dec) as i64; if net_sats == 0 { return; @@ -156,7 +151,7 @@ impl CostBasisFenwick { } /// Bulk-initialize from age-range maps. - pub(super) fn bulk_init<'a>( + pub fn bulk_init<'a>( &mut self, maps: impl Iterator, bool)>, ) { @@ -183,7 +178,7 @@ impl CostBasisFenwick { // ----------------------------------------------------------------------- /// Compute sat-weighted and usd-weighted percentile prices for ALL cohort. - pub(crate) fn percentiles_all(&self) -> PercentileResult { + pub fn percentiles_all(&self) -> PercentileResult { self.compute_percentiles( self.totals.all_sats, self.totals.all_usd, @@ -193,7 +188,7 @@ impl CostBasisFenwick { } /// Compute percentile prices for STH cohort. - pub(crate) fn percentiles_sth(&self) -> PercentileResult { + pub fn percentiles_sth(&self) -> PercentileResult { self.compute_percentiles( self.totals.sth_sats, self.totals.sth_usd, @@ -203,7 +198,7 @@ impl CostBasisFenwick { } /// Compute percentile prices for LTH cohort (all - sth per node). - pub(crate) fn percentiles_lth(&self) -> PercentileResult { + pub fn percentiles_lth(&self) -> PercentileResult { self.compute_percentiles( self.totals.all_sats - self.totals.sth_sats, self.totals.all_usd - self.totals.sth_usd, @@ -265,7 +260,7 @@ impl CostBasisFenwick { // ----------------------------------------------------------------------- /// Compute supply density: % of supply with cost basis within ±5% of spot. - pub(crate) fn density( + pub fn density( &self, spot_price: Cents, ) -> (PartsPerMillion32, PartsPerMillion32, PartsPerMillion32) { @@ -328,10 +323,7 @@ impl CostBasisFenwick { /// Compute profitability range buckets from current spot price. /// Returns exact STH/LTH values for every profitability range. - pub(crate) fn profitability( - &self, - spot_price: Cents, - ) -> ProfitabilityRange { + pub fn profitability(&self, spot_price: Cents) -> ProfitabilityRange { let mut result = ProfitabilityRange::default(); if self.totals.all_sats <= 0 { diff --git a/crates/brk_computer/src/distribution/state/utxo/mod.rs b/crates/brk_computer/src/distribution/state/utxo/mod.rs index 093033c02..222422450 100644 --- a/crates/brk_computer/src/distribution/state/utxo/mod.rs +++ b/crates/brk_computer/src/distribution/state/utxo/mod.rs @@ -11,12 +11,12 @@ mod transient; mod urpd; /// Rounding precision for UTXO cost basis prices (5 significant digits in dollars). -pub(crate) const COST_BASIS_PRICE_DIGITS: i32 = 5; +pub const COST_BASIS_PRICE_DIGITS: i32 = 5; -pub use cohort::*; -pub use collection::*; -pub(crate) use fenwick::CostBasisFenwick; -pub(crate) use percentile_result::PercentileResult; -pub(crate) use profitability_range_result::ProfitabilityRangeResult; -pub(crate) use send_precomputed::SendPrecomputed; -pub(super) use transient::UTXOTransientState; +pub use cohort::UTXOCohortState; +pub use collection::UTXOStates; +pub use fenwick::CostBasisFenwick; +pub use percentile_result::PercentileResult; +pub use profitability_range_result::ProfitabilityRangeResult; +pub use send_precomputed::SendPrecomputed; +pub use transient::UTXOTransientState; diff --git a/crates/brk_computer/src/distribution/state/utxo/percentile_result.rs b/crates/brk_computer/src/distribution/state/utxo/percentile_result.rs index d25d96e31..c2ac84cc8 100644 --- a/crates/brk_computer/src/distribution/state/utxo/percentile_result.rs +++ b/crates/brk_computer/src/distribution/state/utxo/percentile_result.rs @@ -3,7 +3,7 @@ use brk_types::Cents; use crate::internal::PERCENTILES_LEN; #[derive(Default)] -pub(crate) struct PercentileResult { +pub struct PercentileResult { pub sat_prices: [Cents; PERCENTILES_LEN], pub usd_prices: [Cents; PERCENTILES_LEN], pub min_price: Cents, diff --git a/crates/brk_computer/src/distribution/state/utxo/profitability_range_result.rs b/crates/brk_computer/src/distribution/state/utxo/profitability_range_result.rs index 60fd1473d..9e745b149 100644 --- a/crates/brk_computer/src/distribution/state/utxo/profitability_range_result.rs +++ b/crates/brk_computer/src/distribution/state/utxo/profitability_range_result.rs @@ -2,18 +2,13 @@ use brk_cohort::ByTerm; use brk_types::{Dollars, Sats}; #[derive(Debug, Clone, Copy, Default)] -pub(crate) struct ProfitabilityRangeResult { +pub struct ProfitabilityRangeResult { pub supply: ByTerm, pub realized_cap: ByTerm, } impl ProfitabilityRangeResult { - pub(super) fn from_all_and_sth( - all_sats: u64, - all_usd: u128, - sth_sats: u64, - sth_usd: u128, - ) -> Self { + pub fn from_all_and_sth(all_sats: u64, all_usd: u128, sth_sats: u64, sth_usd: u128) -> Self { let all_realized_cap = Self::dollars(all_usd); let short_realized_cap = Self::dollars(sth_usd); Self { diff --git a/crates/brk_computer/src/distribution/state/utxo/receive.rs b/crates/brk_computer/src/distribution/state/utxo/receive.rs index 3408bbed0..f7812b5d3 100644 --- a/crates/brk_computer/src/distribution/state/utxo/receive.rs +++ b/crates/brk_computer/src/distribution/state/utxo/receive.rs @@ -15,7 +15,7 @@ impl UTXOStates { /// - The immutable entry valuation cohort based on creation price versus anchor /// - The appropriate output type cohort (P2PKH, P2SH, etc.) /// - The appropriate amount range cohort based on value - pub(crate) fn receive( + pub fn receive( &mut self, received: Transacted, height: Height, diff --git a/crates/brk_computer/src/distribution/state/utxo/send.rs b/crates/brk_computer/src/distribution/state/utxo/send.rs index 7a6531e15..761b7743a 100644 --- a/crates/brk_computer/src/distribution/state/utxo/send.rs +++ b/crates/brk_computer/src/distribution/state/utxo/send.rs @@ -18,7 +18,7 @@ impl UTXOStates { /// `price_range_max` is used to compute the peak price during each UTXO's holding period /// for accurate peak regret calculation. /// Returns the minimum receive_height that was modified, if any. - pub(crate) fn send( + pub fn send( &mut self, height_to_sent: FxHashMap, chain_state: &mut [BlockState], diff --git a/crates/brk_computer/src/distribution/state/utxo/send_precomputed.rs b/crates/brk_computer/src/distribution/state/utxo/send_precomputed.rs index a909c0c9a..f9cc0ba8e 100644 --- a/crates/brk_computer/src/distribution/state/utxo/send_precomputed.rs +++ b/crates/brk_computer/src/distribution/state/utxo/send_precomputed.rs @@ -1,6 +1,6 @@ use brk_types::{Age, Cents, CentsSats, CentsSquaredSats, Sats, SupplyState}; -pub(crate) struct SendPrecomputed { +pub struct SendPrecomputed { pub sats: Sats, pub prev_price: Cents, pub age: Age, @@ -11,7 +11,7 @@ pub(crate) struct SendPrecomputed { } impl SendPrecomputed { - pub(crate) fn new( + pub fn new( supply: &SupplyState, current_price: Cents, prev_price: Cents, diff --git a/crates/brk_computer/src/distribution/state/utxo/tick_tock.rs b/crates/brk_computer/src/distribution/state/utxo/tick_tock.rs index 38814aab5..71c0aa338 100644 --- a/crates/brk_computer/src/distribution/state/utxo/tick_tock.rs +++ b/crates/brk_computer/src/distribution/state/utxo/tick_tock.rs @@ -18,7 +18,7 @@ impl UTXOStates { /// /// Returns how many sats matured OUT OF each cohort into the older adjacent one. /// `over_15y` is always zero since nothing ages out of the oldest cohort. - pub(crate) fn tick_tock_next_block( + pub fn tick_tock_next_block( &mut self, chain_state: &[BlockState], timestamp: Timestamp, diff --git a/crates/brk_computer/src/distribution/state/utxo/transient.rs b/crates/brk_computer/src/distribution/state/utxo/transient.rs index 5172227b6..ca321a982 100644 --- a/crates/brk_computer/src/distribution/state/utxo/transient.rs +++ b/crates/brk_computer/src/distribution/state/utxo/transient.rs @@ -4,8 +4,8 @@ use super::fenwick::CostBasisFenwick; /// In-memory state that does not survive rollback. #[derive(Clone, Default)] -pub(crate) struct UTXOTransientState { - pub(super) fenwick: CostBasisFenwick, +pub struct UTXOTransientState { + pub fenwick: CostBasisFenwick, /// Cached positions for tick-tock boundary searches. - pub(super) tick_tock_cached_positions: [usize; AGE_RANGE_COUNT - 1], + pub tick_tock_cached_positions: [usize; AGE_RANGE_COUNT - 1], } diff --git a/crates/brk_computer/src/distribution/state/utxo/urpd.rs b/crates/brk_computer/src/distribution/state/utxo/urpd.rs index 5ab2bbf57..8ccb3045f 100644 --- a/crates/brk_computer/src/distribution/state/utxo/urpd.rs +++ b/crates/brk_computer/src/distribution/state/utxo/urpd.rs @@ -13,12 +13,7 @@ use vecdb::ColumnId; use super::{COST_BASIS_PRICE_DIGITS, UTXOStates}; impl UTXOStates { - pub(crate) fn write_urpds( - &self, - date: Date, - states_path: &Path, - sth_filter: &Filter, - ) -> Result<()> { + pub fn write_urpds(&self, date: Date, states_path: &Path, sth_filter: &Filter) -> Result<()> { AgeRangeId::ALL .iter() .map(|&id| (id, id.select(&self.age_range))) @@ -68,7 +63,7 @@ impl UTXOStates { .try_for_each(|(name, merged)| UrpdRaw::write(states_path, name, date, merged.into_iter())) } - pub(crate) fn age_range_urpd_entries( + pub fn age_range_urpd_entries( &self, ) -> impl Iterator + '_ { AgeRangeId::ALL.iter().copied().flat_map(move |id| { diff --git a/crates/brk_computer/src/distribution/vecs.rs b/crates/brk_computer/src/distribution/vecs.rs index 574347514..0b3022436 100644 --- a/crates/brk_computer/src/distribution/vecs.rs +++ b/crates/brk_computer/src/distribution/vecs.rs @@ -7,17 +7,17 @@ use brk_cohort::{AddrTypeId, EntryPrice}; use brk_error::Result; use brk_indexer::Indexer; use brk_traversable::Traversable; -use brk_types::{Cents, Height, StoredF64, SupplyState, Timestamp, TxIndex, Version}; +use brk_types::{Cents, Height, StoredF64, SupplyState, Version}; use tracing::{debug, info}; use vecdb::{ - AnyVec, BytesVec, Database, Exit, ImportOptions, ImportableVec, LazyVec, ReadableCloneableVec, + AnyVec, BytesVec, Exit, ImportOptions, ImportableVec, LazyVec, ReadableCloneableVec, ReadableVec, Rw, Stamp, StorageMode, WritableVec, }; use crate::{ distribution::{ - compute::{PriceRangeMax, StartMode, determine_start_mode, process_blocks, reset_state}, - state::BlockState, + compute::{StartMode, determine_start_mode, process_blocks, reset_state}, + state::{AddrStates, BlockState}, }, indexes, inputs, internal::{ @@ -27,9 +27,9 @@ use crate::{ outputs, price, transactions, }; +use super::inner::Inner; use super::{ - AddrStates, AddrsDataVecs, AllChainCache, AnyAddrIndexesVecs, CohortMetrics, DB_NAME, RangeMap, - UTXOStates, + AddrsDataVecs, AllChainSources, AnyAddrIndexesVecs, CohortMetrics, DB_NAME, UTXOStates, addr::{ AddrActivityVecs, AddrCountsVecs, AddrVecs, AvgAmountVecs, DeltaVecs, ExposedAddrVecs, FundedAddrCountsVecs, NewAddrCountVecs, ReusedAddrVecs, TotalAddrCountVecs, @@ -41,7 +41,7 @@ const VERSION: Version = Version::new(30 + brk_oracle::VERSION); #[derive(Traversable)] pub struct Vecs { #[traversable(skip)] - db: Database, + inner: Inner, #[traversable(skip)] pub states_path: PathBuf, @@ -56,27 +56,6 @@ pub struct Vecs { #[traversable(wrap = "cointime/activity")] pub coinblocks_destroyed: PerBlockCumulativeRolling, pub addrs: AddrVecs, - - /// In-memory state that does NOT survive rollback. - /// Grouped so that adding a new field automatically gets it reset. - #[traversable(skip)] - caches: DistributionTransientState, -} - -/// In-memory state that does NOT survive rollback. -/// On rollback, the entire struct is replaced with `Default::default()`. -#[derive(Clone, Default)] -struct DistributionTransientState { - /// Block state for UTXO processing. Persisted via supply_state. - chain_state: Vec, - /// tx_index→height reverse lookup. - tx_index_to_height: RangeMap, - /// Height→price mapping. Incrementally extended. - prices: Vec, - /// Height→timestamp mapping. Incrementally extended. - timestamps: Vec, - /// Sparse table for O(1) range-max price queries. Incrementally extended. - price_range_max: PriceRangeMax, } const SAVED_STAMPED_CHANGES: u16 = 10; @@ -84,14 +63,14 @@ const SAVED_STAMPED_CHANGES: u16 = 10; const FUNDED_ADDR_DATA_VERSION: Version = Version::ONE; impl Vecs { - pub(crate) fn all_chain_cache(&self, prices: &price::Vecs) -> AllChainCache { - AllChainCache::new( - self.cohorts.all_supply_cache(), + pub fn all_chain_sources(&self, prices: &price::Vecs) -> AllChainSources { + AllChainSources::new( + self.cohorts.all_supply(), &prices.spot.cents.height.read_only_cached_boxed_clone(), ) } - pub(crate) fn forced_import( + pub fn forced_import( parent: &Path, parent_version: Version, indexes: &indexes::Vecs, @@ -163,7 +142,7 @@ impl Vecs { &spot_price, outputs_by_type, inputs_by_type, - cohorts.all_supply_cache(), + cohorts.all_supply(), )?; let respent_addr_count = ReusedAddrVecs::forced_import( &db, @@ -174,7 +153,7 @@ impl Vecs { &spot_price, outputs_by_type, inputs_by_type, - cohorts.all_supply_cache(), + cohorts.all_supply(), )?; // Exposed address tracking (counts + supply) - quantum / pubkey-exposure sense @@ -183,14 +162,14 @@ impl Vecs { version, indexes, &spot_price, - cohorts.all_supply_cache(), + cohorts.all_supply(), )?; // Growth rate: delta change + rate (global + per-type) let delta = DeltaVecs::new(version, &funded_addr_count.counts, cached_starts, indexes); // Average amount (supply / utxo_count, supply / funded_addr_count) for `all` and per addr type. - let all_chain = AllChainCache::new(cohorts.all_supply_cache(), &spot_price); + let all_chain = AllChainSources::new(cohorts.all_supply(), &spot_price); let avg_amount = AvgAmountVecs::forced_import( &db, version, @@ -237,20 +216,18 @@ impl Vecs { funded: funded_addr_index_to_funded_addr_data, empty: empty_addr_index_to_empty_addr_data, }, - caches: DistributionTransientState::default(), - - db, + inner: Inner::new(db), states_path, }; - finalize_db(&this.db, &this)?; + finalize_db(&this.inner.db, &this)?; Ok(this) } /// Reset in-memory caches that become stale after rollback. fn reset_in_memory_caches(&mut self) { self.cohorts.reset_caches(); - self.caches = DistributionTransientState::default(); + self.inner.reset(); } /// Main computation loop. @@ -262,7 +239,7 @@ impl Vecs { /// 4. Computes aggregate cohorts from separate cohorts /// 5. Computes derived metrics #[allow(clippy::too_many_arguments)] - pub(crate) fn compute( + pub fn compute( &mut self, indexer: &Indexer, indexes: &indexes::Vecs, @@ -272,7 +249,7 @@ impl Vecs { prices: &price::Vecs, exit: &Exit, ) -> Result { - self.db.sync_bg_tasks()?; + self.inner.db.sync_bg_tasks()?; let mut utxo_states = UTXOStates::new(&self.states_path); let mut addr_states = AddrStates::new(&self.states_path); @@ -386,11 +363,11 @@ impl Vecs { .height .len() .min(indexes.timestamp.monotonic.len()); - let cache_current_len = self.caches.prices.len(); + let cache_current_len = self.inner.prices.len(); if cache_target_len < cache_current_len { - self.caches.prices.truncate(cache_target_len); - self.caches.timestamps.truncate(cache_target_len); - self.caches.price_range_max.truncate(cache_target_len); + self.inner.prices.truncate(cache_target_len); + self.inner.timestamps.truncate(cache_target_len); + self.inner.price_range_max.truncate(cache_target_len); } else if cache_target_len > cache_current_len { let new_prices = prices .spot @@ -401,14 +378,14 @@ impl Vecs { .timestamp .monotonic .collect_range_at(cache_current_len, cache_target_len); - self.caches.prices.extend(new_prices); - self.caches.timestamps.extend(new_timestamps); + self.inner.prices.extend(new_prices); + self.inner.timestamps.extend(new_timestamps); } - self.caches.price_range_max.extend(&self.caches.prices); + self.inner.price_range_max.extend(&self.inner.prices); // Take chain_state and tx_index_to_height out of self to avoid borrow conflicts - let mut chain_state = mem::take(&mut self.caches.chain_state); - let mut tx_index_to_height = mem::take(&mut self.caches.tx_index_to_height); + let mut chain_state = mem::take(&mut self.inner.chain_state); + let mut tx_index_to_height = mem::take(&mut self.inner.tx_index_to_height); // Recover or reuse chain_state let starting_height = if recovered_height.is_zero() { @@ -441,7 +418,7 @@ impl Vecs { .into_iter() .enumerate() .map(|(h, supply)| { - let price = self.caches.prices[h]; + let price = self.inner.prices[h]; let entry = EntryPrice::from_is_discount( entry_anchor == Cents::ZERO || price <= entry_anchor, ); @@ -451,7 +428,7 @@ impl Vecs { supply, entry, price, - timestamp: self.caches.timestamps[h], + timestamp: self.inner.timestamps[h], } }) .collect(); @@ -474,9 +451,9 @@ impl Vecs { if starting_height <= last_height { debug!("calling process_blocks"); - let prices = mem::take(&mut self.caches.prices); - let timestamps = mem::take(&mut self.caches.timestamps); - let price_range_max = mem::take(&mut self.caches.price_range_max); + let prices = mem::take(&mut self.inner.prices); + let timestamps = mem::take(&mut self.inner.timestamps); + let price_range_max = mem::take(&mut self.inner.price_range_max); let entry_anchor = starting_height .decremented() .and_then(|height| { @@ -511,14 +488,14 @@ impl Vecs { exit, )?; - self.caches.prices = prices; - self.caches.timestamps = timestamps; - self.caches.price_range_max = price_range_max; + self.inner.prices = prices; + self.inner.timestamps = timestamps; + self.inner.price_range_max = price_range_max; } // Put chain_state and tx_index_to_height back - self.caches.chain_state = chain_state; - self.caches.tx_index_to_height = tx_index_to_height; + self.inner.chain_state = chain_state; + self.inner.tx_index_to_height = tx_index_to_height; // 5. Compute rest part1 (day1 mappings) info!("Computing rest part 1..."); @@ -565,15 +542,15 @@ impl Vecs { self.cohorts.compute_rest_part2(&starting_lengths, exit)?; let exit = exit.clone(); - self.db.run_bg(move |db| { + self.inner.db.run_bg(move |db| { let _lock = exit.lock(); db.compact_deferred_default() }); Ok(utxo_states) } - pub(crate) fn flush(&self) -> Result<()> { - self.db.flush()?; + pub fn flush(&self) -> Result<()> { + self.inner.db.flush()?; Ok(()) } diff --git a/crates/brk_computer/src/frameworks/coinflow/import.rs b/crates/brk_computer/src/frameworks/coinflow/import.rs index 76c2361e5..d254cdf5b 100644 --- a/crates/brk_computer/src/frameworks/coinflow/import.rs +++ b/crates/brk_computer/src/frameworks/coinflow/import.rs @@ -18,6 +18,7 @@ use crate::{ internal::{ ColumnarPerBlock, Identity, LazyColumnPerBlock, LazyColumnSpotValuePerBlock, LazyFiatPerBlock, LazyPerBlock, LazyPriceWithRatioPerBlock, LazySpotValuePerBlock, + cache_wrap, }, }; @@ -105,8 +106,7 @@ impl AggregateSources { { match aggregate.term() { Some(term) => source.column(name, version, term).read_only_boxed_clone(), - None => source - .sum_columns(name, version, TermId::ALL.iter().copied()) + None => cache_wrap(source.sum_columns(name, version, TermId::ALL.iter().copied())) .read_only_boxed_clone(), } } diff --git a/crates/brk_computer/src/frameworks/cointime/aggregate/import.rs b/crates/brk_computer/src/frameworks/cointime/aggregate/import.rs index 8a9788186..e71f804e0 100644 --- a/crates/brk_computer/src/frameworks/cointime/aggregate/import.rs +++ b/crates/brk_computer/src/frameworks/cointime/aggregate/import.rs @@ -13,7 +13,7 @@ use crate::{ indexes, internal::{ Identity, LazyFiatPerBlock, LazyPerBlock, LazyPriceWithRatioPerBlock, - LazySpotValuePerBlock, PerBlock, + LazySpotValuePerBlock, PerBlock, cache_wrap, }, }; @@ -59,8 +59,7 @@ impl Sources { { match aggregate.term() { Some(term) => source.column(name, version, term).read_only_boxed_clone(), - None => source - .sum_columns(name, version, TermId::ALL.iter().copied()) + None => cache_wrap(source.sum_columns(name, version, TermId::ALL.iter().copied())) .read_only_boxed_clone(), } } diff --git a/crates/brk_computer/src/frameworks/cointime/import.rs b/crates/brk_computer/src/frameworks/cointime/import.rs index eaa05eee4..ebd88e33e 100644 --- a/crates/brk_computer/src/frameworks/cointime/import.rs +++ b/crates/brk_computer/src/frameworks/cointime/import.rs @@ -2,7 +2,7 @@ use brk_error::Result; use brk_types::{Cents, Version}; use vecdb::Database; -use crate::{distribution::AllChainCache, indexes, internal::PerBlock, price}; +use crate::{distribution::AllChainSources, indexes, internal::PerBlock, price}; use super::{ ActivityVecs, AdjustedVecs, AgeRangeVecs, AggregateVecs, CapVecs, PricesVecs, ReserveRiskVecs, @@ -19,7 +19,7 @@ impl Vecs { cached_starts: &Windows<&CachedWindowStartVec>, prices: &price::Vecs, subsidy_cents: &PerBlock, - all_chain: &AllChainCache, + all_chain: &AllChainSources, ) -> Result { let version = parent_version; let v1 = version + Version::ONE; diff --git a/crates/brk_computer/src/frameworks/cointime/prices/import.rs b/crates/brk_computer/src/frameworks/cointime/prices/import.rs index 43a4d0043..908ae3ef3 100644 --- a/crates/brk_computer/src/frameworks/cointime/prices/import.rs +++ b/crates/brk_computer/src/frameworks/cointime/prices/import.rs @@ -4,7 +4,7 @@ use vecdb::{CachedBoxedVec, Database, ReadableCloneableVec}; use super::Vecs; use crate::{ - distribution::AllChainCache, + distribution::AllChainSources, indexes, internal::{LazyPriceWithRatioPerBlock, PriceWithRatioPerBlock}, }; @@ -15,7 +15,7 @@ impl Vecs { version: Version, indexes: &indexes::Vecs, spot_price: &CachedBoxedVec, - all_chain: &AllChainCache, + all_chain: &AllChainSources, cointime_cap: &(impl ReadableCloneableVec + 'static), ) -> Result { macro_rules! import { diff --git a/crates/brk_computer/src/frameworks/cointime/supply/import.rs b/crates/brk_computer/src/frameworks/cointime/supply/import.rs index 0557f2382..f36b0f735 100644 --- a/crates/brk_computer/src/frameworks/cointime/supply/import.rs +++ b/crates/brk_computer/src/frameworks/cointime/supply/import.rs @@ -4,7 +4,7 @@ use vecdb::{CachedBoxedVec, Database}; use super::{LazyBaseVecs, Vecs}; use crate::{ - distribution::AllChainCache, + distribution::AllChainSources, indexes, internal::{LazySpotValuePerBlock, PerBlock}, }; @@ -17,7 +17,7 @@ impl LazyBaseVecs { indexes: &indexes::Vecs, spot_price: &CachedBoxedVec, activity: &activity::Vecs, - all_chain: &AllChainCache, + all_chain: &AllChainSources, ) -> Self { let vaulted = all_chain.with_supply( "vaulted_supply_sats_source", @@ -58,7 +58,7 @@ impl Vecs { indexes: &indexes::Vecs, spot_price: &CachedBoxedVec, activity: &activity::Vecs, - all_chain: &AllChainCache, + all_chain: &AllChainSources, ) -> Result { Ok(Self { base: LazyBaseVecs::new(version, indexes, spot_price, activity, all_chain), diff --git a/crates/brk_computer/src/frameworks/import.rs b/crates/brk_computer/src/frameworks/import.rs index 10db648f1..af60b1bce 100644 --- a/crates/brk_computer/src/frameworks/import.rs +++ b/crates/brk_computer/src/frameworks/import.rs @@ -5,7 +5,7 @@ use brk_types::{Cents, Version}; use super::{DB_NAME, Vecs, coinflow, cointime}; use crate::{ - distribution::AllChainCache, + distribution::AllChainSources, indexes, internal::{ CachedWindowStartVec, PerBlock, Windows, @@ -22,7 +22,7 @@ impl Vecs { cached_starts: &Windows<&CachedWindowStartVec>, prices: &price::Vecs, subsidy_cents: &PerBlock, - all_chain: &AllChainCache, + all_chain: &AllChainSources, ) -> Result { let db = open_db(parent_path, DB_NAME, 250_000)?; let cointime = cointime::Vecs::forced_import( diff --git a/crates/brk_computer/src/indicators/import.rs b/crates/brk_computer/src/indicators/import.rs index 80fc1d819..60bd37be2 100644 --- a/crates/brk_computer/src/indicators/import.rs +++ b/crates/brk_computer/src/indicators/import.rs @@ -5,7 +5,7 @@ use brk_types::{Bitcoin, Cents, PartsPerMillion64, Sats, StoredF32, Version}; use super::Vecs; use crate::{ - distribution::{self, AllChainCache}, + distribution::{self, AllChainSources}, indexes, internal::{ Identity, LazyPerBlock, LazyRatioPerBlock, PerBlock, PercentPerBlock, RatioPerBlock, @@ -21,7 +21,7 @@ impl Vecs { parent_path: &Path, parent_version: Version, indexes: &indexes::Vecs, - all_chain: &AllChainCache, + all_chain: &AllChainSources, mining: &mining::Vecs, distribution: &distribution::Vecs, transactions: &transactions::Vecs, diff --git a/crates/brk_computer/src/internal/per_block/value/columnar_cumulative_rolling.rs b/crates/brk_computer/src/internal/per_block/value/columnar_cumulative_rolling.rs index 3826b22fc..86ddf2101 100644 --- a/crates/brk_computer/src/internal/per_block/value/columnar_cumulative_rolling.rs +++ b/crates/brk_computer/src/internal/per_block/value/columnar_cumulative_rolling.rs @@ -8,7 +8,9 @@ use vecdb::{ VecValue, }; -use crate::internal::{ColumnarPerBlockCumulativeRolling, StoredU64ToCents, StoredU64ToSats}; +use crate::internal::{ + ColumnarPerBlockCumulativeRolling, StoredU64ToCents, StoredU64ToSats, cache_wrap, +}; #[derive(Deref, DerefMut, Traversable)] pub struct ColumnarValuePerBlockCumulativeRolling @@ -78,6 +80,25 @@ where ) } + pub fn budgeted_sources( + &self, + name: &str, + version: Version, + columns: impl IntoIterator, + ) -> ( + ReadableBoxedVec, + ReadableBoxedVec, + ) { + Self::sources_from_inner( + &self.sats.cumulative.read_only_clone(), + &self.cents.cumulative.read_only_clone(), + name, + version, + columns, + true, + ) + } + pub(crate) fn sources_from( sats: &ReadOnlyColumnarVec, C>, cents: &ReadOnlyColumnarVec, C>, @@ -87,6 +108,20 @@ where ) -> ( ReadableBoxedVec, ReadableBoxedVec, + ) { + Self::sources_from_inner(sats, cents, name, version, columns, false) + } + + fn sources_from_inner( + sats: &ReadOnlyColumnarVec, C>, + cents: &ReadOnlyColumnarVec, C>, + name: &str, + version: Version, + columns: impl IntoIterator, + budgeted: bool, + ) -> ( + ReadableBoxedVec, + ReadableBoxedVec, ) { let columns: Box<[_]> = columns.into_iter().collect(); let sats = Self::typed_source::( @@ -94,12 +129,14 @@ where &format!("{name}_sats"), version, &columns, + budgeted, ); let cents = Self::typed_source::( cents, &format!("{name}_cents"), version, &columns, + budgeted, ); (sats, cents) } @@ -109,6 +146,7 @@ where name: &str, version: Version, columns: &[C], + budgeted: bool, ) -> ReadableBoxedVec where F: UnaryTransform, @@ -123,7 +161,12 @@ where .sum_columns(name, version, columns.iter().copied()) .read_only_boxed_clone() }; - LazyVec::transformed::(name, version, raw).read_only_boxed_clone() + let source = LazyVec::transformed::(name, version, raw); + if budgeted { + cache_wrap(source).read_only_boxed_clone() + } else { + source.read_only_boxed_clone() + } } #[inline(always)] diff --git a/crates/brk_computer/src/internal/per_block/value/lazy_spot.rs b/crates/brk_computer/src/internal/per_block/value/lazy_spot.rs index bb8712bab..daa4abe98 100644 --- a/crates/brk_computer/src/internal/per_block/value/lazy_spot.rs +++ b/crates/brk_computer/src/internal/per_block/value/lazy_spot.rs @@ -1,7 +1,8 @@ use brk_traversable::Traversable; use brk_types::{Bitcoin, Cents, Dollars, Height, Sats, Version}; use vecdb::{ - BinaryTransform, CachedBoxedVec, ReadableBoxedVec, ReadableCloneableVec, ReadableVec, TypedVec, + BinaryTransform, CachedBoxedVec, CachedReadableVec, CachedVec, LazyVec, ReadableBoxedVec, + ReadableCloneableVec, ReadableVec, TypedVec, }; use crate::{ @@ -107,32 +108,35 @@ impl LazySpotValuePerBlock { source, indexes, ); - let btc = LazyPerBlock::from_lazy::(name, version, &sats); - let cents_source = LazyIndexedVec::new( - &format!("{name}_cents_source"), - version, - sats.height.read_only_boxed_clone(), - spot_price.clone(), - |_, sats, spot| SatsToCents::apply(sats, spot), + Self::from_sats(name, version, sats, indexes, spot_price) + } + + pub fn from_sats_source_with_pinned_height( + name: &str, + version: Version, + source: V, + indexes: &indexes::Vecs, + spot_price: &CachedBoxedVec, + ) -> (Self, CachedBoxedVec) + where + V: TypedVec + ReadableVec + Clone + 'static, + { + let sats_name = format!("{name}_sats"); + let height = LazyVec::transformed::>( + &sats_name, + Version::ZERO, + source.read_only_boxed_clone(), ); - let cents = LazyPerBlock::from_uncached_height_source::, _>( - &format!("{name}_cents"), - version, - cents_source, - indexes, - ); - let usd = LazyPerBlock::from_lazy::( - &format!("{name}_usd"), - version, - ¢s, + let height = CachedVec::wrap(height); + let cache = height.cached_boxed_clone(); + let sats = LazyPerBlock::from_uncached_height_source::, _>( + &sats_name, version, height, indexes, ); - Self { - btc, - sats, - usd, - cents, - } + ( + Self::from_sats(name, version, sats, indexes, spot_price), + cache, + ) } pub(crate) fn from_boxed_sats_source( @@ -148,6 +152,16 @@ impl LazySpotValuePerBlock { source, indexes, ); + Self::from_sats(name, version, sats, indexes, spot_price) + } + + fn from_sats( + name: &str, + version: Version, + sats: LazyPerBlock, + indexes: &indexes::Vecs, + spot_price: &CachedBoxedVec, + ) -> Self { let btc = LazyPerBlock::from_lazy::(name, version, &sats); let cents_source = LazyIndexedVec::new( &format!("{name}_cents_source"), diff --git a/crates/brk_computer/src/lib.rs b/crates/brk_computer/src/lib.rs index 18c8c4b03..ee71225ff 100644 --- a/crates/brk_computer/src/lib.rs +++ b/crates/brk_computer/src/lib.rs @@ -203,7 +203,7 @@ impl Computer { }) })?; - let all_chain = distribution.all_chain_cache(&price); + let all_chain = distribution.all_chain_sources(&price); let (frameworks, indicators) = timed("Imported frameworks/indicators", || { thread::scope(|s| -> Result<_> { diff --git a/crates/brk_computer/src/supply/import.rs b/crates/brk_computer/src/supply/import.rs index e767681a9..ec6122264 100644 --- a/crates/brk_computer/src/supply/import.rs +++ b/crates/brk_computer/src/supply/import.rs @@ -1,10 +1,11 @@ use std::path::Path; use brk_error::Result; -use brk_types::{Height, PartsPerMillionSigned64, Sats, Version}; -use vecdb::ReadableCloneableVec; +use brk_types::{Cents, Height, PartsPerMillionSigned64, Sats, Version}; +use vecdb::{CachedBoxedVec, ReadableCloneableVec, ReadableVec, TypedVec}; use crate::{ + distribution::AllChainSources, indexes, internal::{ CachedWindowStartVec, Identity, LazyFiatPerBlock, LazyPerBlock, LazyPercentPerBlock, @@ -92,7 +93,8 @@ impl Vecs { let market_minus_realized_cap_growth_rate = cached_starts.map_with_suffix(|suffix, starts| { let name = format!("market_minus_realized_cap_growth_rate_{suffix}"); - let source = sources.all_chain().market_minus_realized_cap_growth( + let source = Self::market_minus_realized_cap_growth( + sources.all_chain(), &format!("{name}_source"), growth_version, realized_cap, @@ -126,4 +128,42 @@ impl Vecs { finalize_db(&this.db, &this)?; Ok(this) } + + fn market_minus_realized_cap_growth( + all_chain: &AllChainSources, + name: &str, + version: Version, + realized_cap: &(impl ReadableCloneableVec + 'static), + window_starts: CachedBoxedVec, + ) -> impl TypedVec + + ReadableVec + + Clone + + 'static { + let caps = all_chain.with_market_cap( + &format!("{name}_caps"), + Version::ZERO, + realized_cap, + |_, realized, market| (realized, market), + ); + + LazyWindowVec::new( + name, + version, + caps.read_only_boxed_clone(), + window_starts, + false, + |current, previous, _| { + let growth = |current: Cents, previous: Cents| { + if previous == Cents::ZERO { + 0.0 + } else { + (f64::from(current) - f64::from(previous)) / f64::from(previous) + } + }; + PartsPerMillionSigned64::from( + growth(current.1, previous.1) - growth(current.0, previous.0), + ) + }, + ) + } } diff --git a/crates/brk_computer/src/supply/import_sources.rs b/crates/brk_computer/src/supply/import_sources.rs index da93776ce..b25e4dd4f 100644 --- a/crates/brk_computer/src/supply/import_sources.rs +++ b/crates/brk_computer/src/supply/import_sources.rs @@ -1,5 +1,5 @@ use crate::{ - distribution::{self, AllChainCache}, + distribution::{self, AllChainSources}, frameworks::cointime, transactions, }; @@ -7,7 +7,7 @@ use crate::{ pub(crate) struct ImportSources<'a> { distribution: &'a distribution::Vecs, cointime: &'a cointime::Vecs, - all_chain: &'a AllChainCache, + all_chain: &'a AllChainSources, transactions: &'a transactions::Vecs, } @@ -15,7 +15,7 @@ impl<'a> ImportSources<'a> { pub(crate) fn new( distribution: &'a distribution::Vecs, cointime: &'a cointime::Vecs, - all_chain: &'a AllChainCache, + all_chain: &'a AllChainSources, transactions: &'a transactions::Vecs, ) -> Self { Self { @@ -34,7 +34,7 @@ impl<'a> ImportSources<'a> { self.cointime } - pub(super) fn all_chain(&self) -> &AllChainCache { + pub(super) fn all_chain(&self) -> &AllChainSources { self.all_chain } diff --git a/crates/brk_computer/src/supply/velocity/import.rs b/crates/brk_computer/src/supply/velocity/import.rs index 7cb5c97d7..6799b9485 100644 --- a/crates/brk_computer/src/supply/velocity/import.rs +++ b/crates/brk_computer/src/supply/velocity/import.rs @@ -3,7 +3,7 @@ use brk_types::{Cents, StoredF64, Version}; use super::Vecs; use crate::{ - distribution::AllChainCache, + distribution::AllChainSources, indexes, internal::{Identity, LazyPerBlock}, transactions, @@ -13,7 +13,7 @@ impl Vecs { pub(crate) fn forced_import( version: Version, indexes: &indexes::Vecs, - all_chain: &AllChainCache, + all_chain: &AllChainSources, transactions: &transactions::Vecs, ) -> Result { let volume = &transactions.volume.transfer_volume.sum._1y; diff --git a/experiments/floor/index.html b/experiments/floor/index.html new file mode 100644 index 000000000..82843192d --- /dev/null +++ b/experiments/floor/index.html @@ -0,0 +1,361 @@ + + + + + + + Finding the Floor — Bitcoin Research Kit + + + + + +
+
+ + 1 / 1 + +
+ + + +