diff --git a/.github/workflows/outdated.yml b/.github/workflows/outdated.yml deleted file mode 100644 index fc33fc9ad..000000000 --- a/.github/workflows/outdated.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Check outdated dependencies - -on: - schedule: - - cron: "0 9 * * 1" - workflow_dispatch: - -jobs: - outdated: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - run: cargo install cargo-outdated - - run: cargo outdated --exit-code 1 --depth 1 diff --git a/Cargo.lock b/Cargo.lock index 00e9679c5..3e9b4c782 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1534,9 +1534,9 @@ checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" [[package]] name = "http" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +checksum = "8be7462df143984c4598a256ef469b251d7d7f9e271135073e78fc535414f3d0" dependencies = [ "bytes", "itoa", @@ -1850,23 +1850,23 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.24" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d" +checksum = "30457d51cb0e68ee18184b30cd9eb8e1602a20837c321f6ea9706b94f1c681c3" dependencies = [ "jiff-static", "log", "portable-atomic", "portable-atomic-util", "serde_core", - "windows-sys 0.61.2", + "windows-link", ] [[package]] name = "jiff-static" -version = "0.2.24" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7" +checksum = "05f86e4f0326c61ae6c00b04d9009aaeda644d0b5bdfbf6c67247f492f42b3f3" dependencies = [ "proc-macro2", "quote", @@ -2005,9 +2005,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5" [[package]] name = "lsm-tree" diff --git a/Cargo.toml b/Cargo.toml index 737ccaa1f..6df48929c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -66,7 +66,7 @@ corepc-types = { version = "0.13.0", features = ["std"], default-features = fals derive_more = { version = "2.1.1", features = ["deref", "deref_mut"] } fjall = "3.1.4" indexmap = { version = "2.14.0", features = ["serde"] } -jiff = { version = "0.2.24", features = ["perf-inline", "tz-system"], default-features = false } +jiff = { version = "0.2.26", features = ["perf-inline", "tz-system"], default-features = false } owo-colors = "4.3.0" parking_lot = "0.12.5" pco = "1.0.2" diff --git a/crates/brk_query/src/impl/oracle.rs b/crates/brk_query/src/impl/oracle.rs index 535e5eeb6..3c83d172d 100644 --- a/crates/brk_query/src/impl/oracle.rs +++ b/crates/brk_query/src/impl/oracle.rs @@ -4,7 +4,7 @@ use brk_computer::prices::Vecs as PricesVecs; use brk_error::{Error, Result}; use brk_indexer::Lengths; use brk_oracle::{ - Config, HistogramEma, HistogramEmaCompact, HistogramRaw, Oracle, START_HEIGHT_SLOW, + Config, HistogramEma, HistogramEmaCompact, HistogramRaw, Oracle, cents_to_bin, sats_to_bin, }; use brk_types::{Day1, Dollars, Sats, TxOutIndex}; @@ -157,7 +157,7 @@ impl Query { Ok(cents_to_bin(cents.inner() as f64)) } - /// `START_HEIGHT_SLOW <= height < min(spot price len, safe height)` or 404. + /// `height < min(spot price len, safe height)` or 404. /// Returns the safe lengths so callers cap reads at the same bound. fn check_histogram_height(&self, height: usize) -> Result { let safe = self.safe_lengths(); @@ -169,7 +169,7 @@ impl Query { .height .len() .min(safe.height.to_usize()); - if height < START_HEIGHT_SLOW || height >= bound { + if height >= bound { return Err(Error::NotFound(format!( "oracle histogram unavailable for height {height}" ))); @@ -192,8 +192,7 @@ impl Query { .min(safe.height.to_usize()); let start = first_height .collect_one(day) - .map_or(usize::MAX, |h| h.to_usize()) - .max(START_HEIGHT_SLOW); + .map_or(usize::MAX, |h| h.to_usize()); let end = first_height .collect_one(day + 1) .map_or(bound, |h| h.to_usize()) diff --git a/crates/brk_types/src/urpd_aggregation.rs b/crates/brk_types/src/urpd_aggregation.rs index 167faca2c..802c53b29 100644 --- a/crates/brk_types/src/urpd_aggregation.rs +++ b/crates/brk_types/src/urpd_aggregation.rs @@ -6,7 +6,7 @@ use crate::Cents; /// Aggregation strategy for URPD buckets. /// Options: raw (no aggregation), lin200/lin500/lin1000 (linear $200/$500/$1000), -/// log10/log50/log100/log200 (logarithmic with 10/50/100/200 buckets per decade). +/// log10/log50/log100/log200/log500/log1000 (logarithmic with 10/50/100/200/500/1000 buckets per decade). #[derive( Debug, Display, Clone, Copy, Default, PartialEq, Eq, Deserialize, Serialize, JsonSchema, )] @@ -22,6 +22,8 @@ pub enum UrpdAggregation { Log50, Log100, Log200, + Log500, + Log1000, } impl UrpdAggregation { @@ -42,6 +44,8 @@ impl UrpdAggregation { Self::Log50 => Some(50), Self::Log100 => Some(100), Self::Log200 => Some(200), + Self::Log500 => Some(500), + Self::Log1000 => Some(1000), _ => None, } } @@ -55,7 +59,7 @@ impl UrpdAggregation { let size = self.linear_size_cents().unwrap(); (price_cents / size) * size } - Self::Log10 | Self::Log50 | Self::Log100 | Self::Log200 => { + Self::Log10 | Self::Log50 | Self::Log100 | Self::Log200 | Self::Log500 | Self::Log1000 => { if price_cents == Cents::ZERO { return Cents::ZERO; } diff --git a/modules/brk-client/index.js b/modules/brk-client/index.js index 459daa3ef..5f3a0b660 100644 --- a/modules/brk-client/index.js +++ b/modules/brk-client/index.js @@ -1357,9 +1357,9 @@ on serialization otherwise. /** * Aggregation strategy for URPD buckets. * Options: raw (no aggregation), lin200/lin500/lin1000 (linear $200/$500/$1000), - * log10/log50/log100/log200 (logarithmic with 10/50/100/200 buckets per decade). + * log10/log50/log100/log200/log500/log1000 (logarithmic with 10/50/100/200/500/1000 buckets per decade). * - * @typedef {("raw"|"lin200"|"lin500"|"lin1000"|"log10"|"log50"|"log100"|"log200")} UrpdAggregation + * @typedef {("raw"|"lin200"|"lin500"|"lin1000"|"log10"|"log50"|"log100"|"log200"|"log500"|"log1000")} UrpdAggregation */ /** * A single bucket in a URPD snapshot. diff --git a/packages/brk_client/brk_client/__init__.py b/packages/brk_client/brk_client/__init__.py index 3a00a5fcd..7a0e0c102 100644 --- a/packages/brk_client/brk_client/__init__.py +++ b/packages/brk_client/brk_client/__init__.py @@ -144,8 +144,8 @@ CoinbaseTag = str CostBasisValue = Literal["supply", "realized", "unrealized"] # Aggregation strategy for URPD buckets. # Options: raw (no aggregation), lin200/lin500/lin1000 (linear $200/$500/$1000), -# log10/log50/log100/log200 (logarithmic with 10/50/100/200 buckets per decade). -UrpdAggregation = Literal["raw", "lin200", "lin500", "lin1000", "log10", "log50", "log100", "log200"] +# log10/log50/log100/log200/log500/log1000 (logarithmic with 10/50/100/200/500/1000 buckets per decade). +UrpdAggregation = Literal["raw", "lin200", "lin500", "lin1000", "log10", "log50", "log100", "log200", "log500", "log1000"] # Position of a transaction inside a `CpfpCluster.txs` array. Cluster-local, # has no meaning outside the enclosing cluster. CpfpClusterTxIndex = int