Compare commits

...

10 Commits

Author SHA1 Message Date
nym21 18fb2e7d4d release: v0.0.106 2025-09-09 17:53:09 +02:00
nym21 a610fd53e2 global: add min max choppiness datasets + fixes 2025-09-09 17:52:45 +02:00
nym21 16abce1f2d release: v0.0.105 2025-09-08 20:16:38 +02:00
nym21 f3b42f34a6 dist: add config back to config.toml 2025-09-08 20:16:21 +02:00
nym21 6483d324de release: v0.0.104 2025-09-08 20:02:18 +02:00
nym21 5ab97050dd ci: udpate dist + release.yml 2025-09-08 20:01:51 +02:00
nym21 17eed70903 release: v0.0.103 2025-09-08 19:24:00 +02:00
nym21 88067c03b7 release: v0.0.102 2025-09-08 19:21:43 +02:00
nym21 7c1e5b913f cargo: update 2025-09-08 19:20:53 +02:00
nym21 0014235e91 global: add price volatility datasets 2025-09-08 18:24:22 +02:00
16 changed files with 1746 additions and 948 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ jobs:
# we specify bash to get pipefail; it guards against the `curl` command
# failing. otherwise `sh` won't catch that `curl` returned non-0
shell: bash
run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.29.0/cargo-dist-installer.sh | sh"
run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.30.0/cargo-dist-installer.sh | sh"
- name: Cache dist
uses: actions/upload-artifact@v4
with:
Generated
+181 -144
View File
@@ -82,12 +82,6 @@ version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
[[package]]
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]]
name = "android_system_properties"
version = "0.1.5"
@@ -504,7 +498,7 @@ dependencies = [
[[package]]
name = "brk"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"brk_bundler",
"brk_cli",
@@ -523,7 +517,7 @@ dependencies = [
[[package]]
name = "brk_bundler"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"brk_rolldown",
"log",
@@ -534,7 +528,7 @@ dependencies = [
[[package]]
name = "brk_cli"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"bitcoincore-rpc",
"brk_bundler",
@@ -559,7 +553,7 @@ dependencies = [
[[package]]
name = "brk_computer"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"allocative",
"allocative_derive",
@@ -588,7 +582,7 @@ dependencies = [
[[package]]
name = "brk_error"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"bitcoincore-rpc",
"fjall",
@@ -601,7 +595,7 @@ dependencies = [
[[package]]
name = "brk_fetcher"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"brk_error",
"brk_logger",
@@ -613,7 +607,7 @@ dependencies = [
[[package]]
name = "brk_indexer"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"bitcoin",
"bitcoincore-rpc",
@@ -630,7 +624,7 @@ dependencies = [
[[package]]
name = "brk_interface"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"brk_computer",
"brk_error",
@@ -649,7 +643,7 @@ dependencies = [
[[package]]
name = "brk_logger"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"env_logger",
"jiff",
@@ -659,7 +653,7 @@ dependencies = [
[[package]]
name = "brk_mcp"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"axum",
"brk_interface",
@@ -669,7 +663,7 @@ dependencies = [
[[package]]
name = "brk_parser"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"bitcoin",
"bitcoincore-rpc",
@@ -727,9 +721,9 @@ dependencies = [
[[package]]
name = "brk_rolldown"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "010960c65a7c74c19d5f4436b8f87702951d2d48d4a28a2c0dd013945bcc113d"
checksum = "c0dfb4767a625199016aa5be14edc12e63e7a3b22e9b7d5cc37582f76d1d7d24"
dependencies = [
"anyhow",
"append-only-vec",
@@ -750,21 +744,24 @@ dependencies = [
"brk_rolldown_std_utils",
"brk_rolldown_tracing",
"brk_rolldown_utils",
"brk_rolldown_watcher",
"brk_string_wizard",
"commondir",
"css-module-lexer",
"dunce",
"futures",
"indexmap 2.11.0",
"indexmap 2.11.1",
"itertools",
"itoa",
"memchr",
"notify",
"oxc",
"oxc_allocator",
"oxc_ecmascript",
"oxc_index",
"oxc_traverse",
"petgraph",
"rayon",
"rustc-hash",
"serde",
"serde_json",
@@ -777,16 +774,15 @@ dependencies = [
[[package]]
name = "brk_rolldown_common"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23cd66173b33436aaec126f64e8f1d0938539d2eb934e88c633cf6181f7e4c53"
checksum = "e3412bb06f9eef1d34ad8d8decd55f7625db7852d440e3fececafdaddac367b0"
dependencies = [
"anyhow",
"arcstr",
"bitflags 2.9.4",
"brk_rolldown_ecmascript",
"brk_rolldown_error",
"brk_rolldown_fs",
"brk_rolldown_sourcemap",
"brk_rolldown_std_utils",
"brk_rolldown_utils",
@@ -809,9 +805,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_debug"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "247e0e91e73e0cee560046f0c9ac926659fb8dd7d868bf8a2121779d3066e78c"
checksum = "0e28020dcca285e50003eab2faed661a3f147e5c3b7b103ac7fa46f3d9811656"
dependencies = [
"blake3",
"brk_rolldown_debug_action",
@@ -825,9 +821,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_debug_action"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1080c5563e49c04bf6fe91cdcaa46b2edc3cfa40e2a4acc3378a6bf8fdb0adda"
checksum = "b55010d6b5a8dcf3524ca8b504680a9387dd5709c555fe6e1c87fca3f77b5b89"
dependencies = [
"serde",
"ts-rs",
@@ -835,9 +831,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_ecmascript"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee5a1a1f6c8b655b6dd3303c7076163af9345f0b212f4e7420d20cba7f5dc4f0"
checksum = "9e5f4324e457d930dc61bc2fa1ec6ca006ab8f1b25b3a7d4e89e64b009a92244"
dependencies = [
"arcstr",
"brk_rolldown_error",
@@ -848,9 +844,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_ecmascript_utils"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71b0bb857b1475a1d0f962a841f9e6844964815181d221a66a75a0f638a87e89"
checksum = "d4e67014dd9afcc8982f3e03d0f6f0389e8f8e38aed8130368678f2599d18630"
dependencies = [
"brk_rolldown_common",
"oxc",
@@ -859,9 +855,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_error"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fd007c612609bcf46e3dca4f9f3c79d16dc1f0bdf7cd0047bfe752fbc6fbecc"
checksum = "d7b1666952fcfc93fb494638c26be72aae73cca2267834fa3fd9657e32fdbb8f"
dependencies = [
"anyhow",
"arcstr",
@@ -879,9 +875,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_fs"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8c0ad1920283907b092236ac53f214fc013ce0cc18b7e2ba448ee459043189f"
checksum = "364160f3619b61db2dba73539ca9df72326bcf6516eedb84479f9aec7ff916a3"
dependencies = [
"oxc_resolver",
"vfs",
@@ -889,9 +885,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_plugin"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b0adf5b4b4e50e6e7abb838fd8490b1b9282fc7a1b0a8e97575a95b692be31d"
checksum = "57211c1b798955a934c68c3d5288df64c5215f9bf8117371aa229eb8284048d8"
dependencies = [
"anyhow",
"arcstr",
@@ -919,9 +915,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_plugin_chunk_import_map"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e71203616a1bbc27f366a9187dcd99303ddd269ff1ee33c60b1878ff492c0dce"
checksum = "e312f5953e7dcfb1d7bdb02cf996e0c83fc0bb27601681836b53973755bad18e"
dependencies = [
"arcstr",
"brk_rolldown_common",
@@ -934,9 +930,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_plugin_data_uri"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bedaadb22c7c0975604b57b7862ec6e220764330156f54e339ac70b16641f53"
checksum = "75d9bfa5cda344f58deff64c9da579edfa51d78f340b92faac08c201cc642ee9"
dependencies = [
"arcstr",
"base64-simd",
@@ -948,9 +944,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_plugin_hmr"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca831a54b5a83b554063960648f0f540fdb101033ac83a23883648c43482ab5d"
checksum = "ed08c47846e429ffe87a047206ac3a2251659d01e28b4fecb0a5fc1881624a7b"
dependencies = [
"arcstr",
"brk_rolldown_common",
@@ -960,9 +956,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_resolver"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4dda2ee25ea4a0bca25025a919092add30c06e920671103b8ab1dafd07ebc804"
checksum = "d99246fc977891718c909a99330f58d80ea4fa079cab4acf37bf58055e0bbeb4"
dependencies = [
"arcstr",
"brk_rolldown_common",
@@ -976,9 +972,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_sourcemap"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fa747f34a65f2b4605bf116a596807a130aa96a0aff6a6e7c69c23bcc77a71d"
checksum = "a0e238138ca5395313ca4376d3b412450653cf701935e6c05ad32e1c317598ca"
dependencies = [
"brk_rolldown_utils",
"memchr",
@@ -989,18 +985,18 @@ dependencies = [
[[package]]
name = "brk_rolldown_std_utils"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bb452af6b4553d11a0648cafaf96a718b8726d9430f5be7608d154c17cff34c"
checksum = "9672fb5d256a9c944b4050cbf69f06f68274264aaa97d45d25b2f226a05ed269"
dependencies = [
"regex",
]
[[package]]
name = "brk_rolldown_tracing"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c8c62d0a76d9cbe90d711aa79af5e4b8148a65004539bb0655a09030cd90dc"
checksum = "b33f1e5d84a5f6a065dc35db551ebedb20501d95955c76b110439965d2e1c14d"
dependencies = [
"tracing",
"tracing-chrome",
@@ -1009,9 +1005,9 @@ dependencies = [
[[package]]
name = "brk_rolldown_utils"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e438af059be459547cbb9a9977dfac6bcf91103c7180be92a2590fb1e1051fab"
checksum = "f39314bf9875e0b461aadc293b3156063ecc2e4fcdb76decb5d051b1c32f0449"
dependencies = [
"anyhow",
"arcstr",
@@ -1024,7 +1020,7 @@ dependencies = [
"fast-glob",
"form_urlencoded",
"futures",
"indexmap 2.11.0",
"indexmap 2.11.1",
"infer",
"itoa",
"memchr",
@@ -1045,9 +1041,20 @@ dependencies = [
"xxhash-rust",
]
[[package]]
name = "brk_rolldown_watcher"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53159dd01ed61374892e101ea5afe34862fade82ae8aedc17a36c1664923a2ac"
dependencies = [
"brk_rolldown_error",
"notify",
"notify-debouncer-full",
]
[[package]]
name = "brk_server"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"axum",
"bitcoincore-rpc",
@@ -1071,7 +1078,7 @@ dependencies = [
[[package]]
name = "brk_store"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"brk_error",
"brk_structs",
@@ -1082,9 +1089,9 @@ dependencies = [
[[package]]
name = "brk_string_wizard"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "054f2739a8615fcfc6823021ae0cfb8189714f01d586de08a7eaa7d3a9f2b7ef"
checksum = "c40057b36de33ed24a8b78e81e190e134f4cb6f85e25d5a133536c40ab4ddb6d"
dependencies = [
"oxc_index",
"oxc_sourcemap",
@@ -1094,7 +1101,7 @@ dependencies = [
[[package]]
name = "brk_structs"
version = "0.0.101"
version = "0.0.106"
dependencies = [
"allocative",
"allocative_derive",
@@ -1218,17 +1225,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]]
name = "chrono"
version = "0.4.41"
version = "0.4.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
dependencies = [
"android-tzdata",
"iana-time-zone",
"js-sys",
"num-traits",
"serde",
"wasm-bindgen",
"windows-link 0.1.3",
"windows-link 0.2.0",
]
[[package]]
@@ -1766,12 +1772,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
name = "errno"
version = "0.3.13"
version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.60.2",
"windows-sys 0.61.0",
]
[[package]]
@@ -1810,6 +1816,15 @@ version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "file-id"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1fc6a637b6dc58414714eddd9170ff187ecb0933d4c7024d1abbd23a3cc26e9"
dependencies = [
"windows-sys 0.60.2",
]
[[package]]
name = "filetime"
version = "0.2.26"
@@ -2059,6 +2074,15 @@ dependencies = [
"foldhash",
]
[[package]]
name = "hashbrown"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
dependencies = [
"allocator-api2",
]
[[package]]
name = "heck"
version = "0.5.0"
@@ -2325,9 +2349,9 @@ dependencies = [
[[package]]
name = "indexmap"
version = "2.11.0"
version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9"
checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921"
dependencies = [
"equivalent",
"hashbrown 0.15.5",
@@ -2355,7 +2379,7 @@ dependencies = [
"crossbeam-utils",
"dashmap",
"env_logger",
"indexmap 2.11.0",
"indexmap 2.11.1",
"itoa",
"log",
"num-format",
@@ -2571,9 +2595,9 @@ dependencies = [
[[package]]
name = "linux-raw-sys"
version = "0.9.4"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12"
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
[[package]]
name = "litemap"
@@ -2742,6 +2766,19 @@ dependencies = [
"windows-sys 0.60.2",
]
[[package]]
name = "notify-debouncer-full"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "375bd3a138be7bfeff3480e4a623df4cbfb55b79df617c055cd810ba466fa078"
dependencies = [
"file-id",
"log",
"notify",
"notify-types",
"walkdir",
]
[[package]]
name = "notify-types"
version = "2.0.0"
@@ -2868,9 +2905,9 @@ checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e"
[[package]]
name = "oxc"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7420dea2e5dd2a6415f445acaa1f9192e62756bb26bb20b21c9730341f034d4f"
checksum = "1273a1f856d670d49d62ac0e362a6989ea3be208f6846aab85f34383a04b0fae"
dependencies = [
"oxc_allocator",
"oxc_ast",
@@ -2933,13 +2970,13 @@ dependencies = [
[[package]]
name = "oxc_allocator"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c67f2b817263a72b6cc5b46e32467bc4077496f88315ce08c1796647fed84d4"
checksum = "90237f36cf0cd3ea2dcf9682b48fa0c1762a4b407fdcc630f60a72c277877c9f"
dependencies = [
"allocator-api2",
"bumpalo",
"hashbrown 0.15.5",
"hashbrown 0.16.0",
"oxc_data_structures",
"oxc_estree",
"rustc-hash",
@@ -2948,14 +2985,15 @@ dependencies = [
[[package]]
name = "oxc_ast"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "989b81258ce151e23adee6f1393f7c0fb7e10e3a6c6c001f71bbaff4081c72a4"
checksum = "a73ff824d44e51ac6c20381b644d48db4326935e811eeab29d52ca45e4d19670"
dependencies = [
"bitflags 2.9.4",
"oxc_allocator",
"oxc_ast_macros",
"oxc_data_structures",
"oxc_diagnostics",
"oxc_estree",
"oxc_regular_expression",
"oxc_span",
@@ -2964,9 +3002,9 @@ dependencies = [
[[package]]
name = "oxc_ast_macros"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff7e8e42eea621e6fa7072a480fa04ae4dfe73f9a958822c066cc7f1eba57e82"
checksum = "4f6af164ffae11248f32c449dad6a15f85d2154fe398bfec75502e0e2af5767a"
dependencies = [
"phf",
"proc-macro2",
@@ -2976,22 +3014,21 @@ dependencies = [
[[package]]
name = "oxc_ast_visit"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0a968790ef8968de08d813a2fe1a15739930fb1c171fddeebf3545d802ea216"
checksum = "a0ff52052e2cfb72fff062d4b7a393f9e9bded601dc16df796e3e460e17a9031"
dependencies = [
"oxc_allocator",
"oxc_ast",
"oxc_data_structures",
"oxc_span",
"oxc_syntax",
]
[[package]]
name = "oxc_cfg"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5361ef66f38635d9671596d83abf44bcdbc3e39dbff303f3517828b86ad60e8f"
checksum = "859f43d20760f159a0b94264bd4d1d0b3c062b69c074d894e80e65295117719b"
dependencies = [
"bitflags 2.9.4",
"itertools",
@@ -3004,13 +3041,14 @@ dependencies = [
[[package]]
name = "oxc_codegen"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fde8fc6f7337632fce3e9e51c150f57fb0ef234524c6947f63e8009e1ea613cf"
checksum = "08e84ab41c9f848471f206674c94781bdc0364699fb14574a3d26dd2a2985844"
dependencies = [
"bitflags 2.9.4",
"cow-utils",
"dragonbox_ecma",
"itoa",
"nonmax",
"oxc_allocator",
"oxc_ast",
@@ -3025,19 +3063,18 @@ dependencies = [
[[package]]
name = "oxc_data_structures"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16c58a40be09dbb289150046a39da2fb130eb5b8ff1f013f2963e880e1af261c"
checksum = "7f048c4ae3569bcc9dbbed29730b5c5f6dd3a35e9f5c3750cd4b3ed72381fbd0"
dependencies = [
"ropey",
"rustversion",
]
[[package]]
name = "oxc_diagnostics"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "702bde62d95587518aec86247457830f189242f814fba8389beb6e8c1585c444"
checksum = "7d96c95294deec2f038e8c7749a751f929c263da34cc68a621472c57c916c14e"
dependencies = [
"cow-utils",
"oxc-miette",
@@ -3046,9 +3083,9 @@ dependencies = [
[[package]]
name = "oxc_ecmascript"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf4dab5abe97e790fe1b631a7eacb9a1cbecbe2dad5b984ef11fcb9115b376ab"
checksum = "aa7b86782020722b3190c083dfc3de59cb73425d1fa275ff6f91b5b4ee509550"
dependencies = [
"cow-utils",
"num-bigint",
@@ -3061,9 +3098,9 @@ dependencies = [
[[package]]
name = "oxc_estree"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa9a453daacd90f168554015dd49467038ab6894045805f861950c1d0a8e6a5e"
checksum = "97f7078ef0c6da21657f5dcade4540c65a460d2a26a42e4418d12ecac860143a"
dependencies = [
"dragonbox_ecma",
"itoa",
@@ -3082,9 +3119,9 @@ dependencies = [
[[package]]
name = "oxc_isolated_declarations"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83d8c311d64fa0bf8cab1bde3f7760cd828e71ed483ca0878799f1f72542cb4d"
checksum = "75e6efdb4f6d09772773cc254caed257270b2b32ee4df21dac196dfb0d966c1e"
dependencies = [
"bitflags 2.9.4",
"oxc_allocator",
@@ -3099,11 +3136,10 @@ dependencies = [
[[package]]
name = "oxc_mangler"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a19a662666a6a150e91a5aee2e99287800c561682841f68736170312b1275d10"
checksum = "401c8ff0fc5e60c94a5821b768bf019a42a0d058469dd26e604dda57723bc404"
dependencies = [
"fixedbitset",
"itertools",
"oxc_allocator",
"oxc_ast",
@@ -3116,9 +3152,9 @@ dependencies = [
[[package]]
name = "oxc_minifier"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5e4723cd29a83305e953270e0aaaf2c6d8994ab2472e9132719ffa5fabaa78c"
checksum = "cd50617ac26b8cd1e6788dbb527ce16704f47fd5e8e6d87fee4a5e63224a71e8"
dependencies = [
"cow-utils",
"oxc_allocator",
@@ -3128,6 +3164,7 @@ dependencies = [
"oxc_ecmascript",
"oxc_mangler",
"oxc_parser",
"oxc_regular_expression",
"oxc_semantic",
"oxc_span",
"oxc_syntax",
@@ -3137,9 +3174,9 @@ dependencies = [
[[package]]
name = "oxc_parser"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70253728183a5a92d1ba964d9952201e0269ebd07c4917c4553283d564225bab"
checksum = "ef71ea1e9bde8ff15f89b60874363359fc7e9796de7bf6cdff69fa54f6869bba"
dependencies = [
"bitflags 2.9.4",
"cow-utils",
@@ -3160,9 +3197,9 @@ dependencies = [
[[package]]
name = "oxc_regular_expression"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de5bb2ed6646bb7815126e0f36787c349e13561fed2c05f95b27a1f82dd066c4"
checksum = "60a4df17b1c47c7fe749208f3a32158dfe90dca5ce630ce86cb9415521f87eb3"
dependencies = [
"bitflags 2.9.4",
"oxc_allocator",
@@ -3181,7 +3218,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0784392356fa78dd4c9047fce7c9046c141f8990736792d00310bf40935b1870"
dependencies = [
"cfg-if",
"indexmap 2.11.0",
"indexmap 2.11.1",
"json-strip-comments",
"once_cell",
"papaya",
@@ -3197,9 +3234,9 @@ dependencies = [
[[package]]
name = "oxc_semantic"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06858ccc5976a5303ac903bef13d03b7f8860e837b7399e4899c05f5c729d30b"
checksum = "8239fa4e6eaee7a16039a3292a3adbaa645ba3013bf2f801517d8fadc4396557"
dependencies = [
"itertools",
"oxc_allocator",
@@ -3231,9 +3268,9 @@ dependencies = [
[[package]]
name = "oxc_span"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b315080fee7613168e0e08d3280efccdc12fea1efe5c0285e3a2d6265660f02"
checksum = "7d88265af3fb8fc2a2317144dfc40b5e120e0ebe21693cfbf7508d4d3ec6d74f"
dependencies = [
"compact_str",
"oxc-miette",
@@ -3245,9 +3282,9 @@ dependencies = [
[[package]]
name = "oxc_syntax"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72d9d80d47d2eee5c1e6dbcdf1841b42afc4f1cd1f63701fc346162616dac52f"
checksum = "b2596e7891b08899f7b74a1fb87b5f5c14153918bb2966648c84581f0a7e6795"
dependencies = [
"bitflags 2.9.4",
"cow-utils",
@@ -3267,14 +3304,14 @@ dependencies = [
[[package]]
name = "oxc_transformer"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89f15659109f115788d7750f31f970d500085e9544c250aa3b20ad23a3901c46"
checksum = "bd3cadde4466d8b059bd5032e248a172dfd1dfdcdf82388d3d87bc36b023e895"
dependencies = [
"base64 0.22.1",
"compact_str",
"cow-utils",
"indexmap 2.11.0",
"indexmap 2.11.1",
"itoa",
"memchr",
"oxc-browserslist",
@@ -3298,9 +3335,9 @@ dependencies = [
[[package]]
name = "oxc_transformer_plugins"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb02ec9eb07a34df8adf2559439ef731c7668feff54b7b80a733284055ddce79"
checksum = "633645296d62b4550dcf3a28ef08a21055b09b6966feae36043c367b1f511345"
dependencies = [
"cow-utils",
"itoa",
@@ -3320,9 +3357,9 @@ dependencies = [
[[package]]
name = "oxc_traverse"
version = "0.81.0"
version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adef9483d1b5132a82e05e7f6a4a0b72138bf3c6459d0a5ef40f1fe33e9f77d1"
checksum = "6d4dfe9de6b462cb2b2e8e1040b912233781dbb4032c8266f30297a9e2cf4155"
dependencies = [
"itoa",
"oxc_allocator",
@@ -3467,15 +3504,15 @@ checksum = "54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca"
dependencies = [
"fixedbitset",
"hashbrown 0.15.5",
"indexmap 2.11.0",
"indexmap 2.11.1",
"serde",
]
[[package]]
name = "phf"
version = "0.12.1"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7"
checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
dependencies = [
"phf_macros",
"phf_shared",
@@ -3484,9 +3521,9 @@ dependencies = [
[[package]]
name = "phf_generator"
version = "0.12.1"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cbb1126afed61dd6368748dae63b1ee7dc480191c6262a3b4ff1e29d86a6c5b"
checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
dependencies = [
"fastrand",
"phf_shared",
@@ -3494,9 +3531,9 @@ dependencies = [
[[package]]
name = "phf_macros"
version = "0.12.1"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d713258393a82f091ead52047ca779d37e5766226d009de21696c4e667044368"
checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef"
dependencies = [
"phf_generator",
"phf_shared",
@@ -3507,9 +3544,9 @@ dependencies = [
[[package]]
name = "phf_shared"
version = "0.12.1"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981"
checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
dependencies = [
"siphasher",
]
@@ -3928,15 +3965,15 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
[[package]]
name = "rustix"
version = "1.0.8"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
dependencies = [
"bitflags 2.9.4",
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.60.2",
"windows-sys 0.61.0",
]
[[package]]
@@ -4081,9 +4118,9 @@ checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
[[package]]
name = "seqdb"
version = "0.2.11"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3078349d3b0b862848f518737b1228fdbaa725819688036db54363aa6c960ead"
checksum = "c97f1528725c4bb77e7f804440e353ef2c55dd73dceffc0ef856873b01a5216b"
dependencies = [
"allocative",
"allocative_derive",
@@ -4142,7 +4179,7 @@ version = "1.0.143"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a"
dependencies = [
"indexmap 2.11.0",
"indexmap 2.11.1",
"itoa",
"memchr",
"ryu",
@@ -4190,7 +4227,7 @@ dependencies = [
"chrono",
"hex",
"indexmap 1.9.3",
"indexmap 2.11.0",
"indexmap 2.11.1",
"schemars 0.9.0",
"schemars 1.0.4",
"serde",
@@ -4592,7 +4629,7 @@ version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8"
dependencies = [
"indexmap 2.11.0",
"indexmap 2.11.1",
"serde",
"serde_spanned",
"toml_datetime 0.7.0",
@@ -4622,7 +4659,7 @@ version = "0.22.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
dependencies = [
"indexmap 2.11.0",
"indexmap 2.11.1",
"toml_datetime 0.6.11",
"winnow",
]
@@ -4939,9 +4976,9 @@ checksum = "8f54a172d0620933a27a4360d3db3e2ae0dd6cceae9730751a036bbf182c4b23"
[[package]]
name = "vecdb"
version = "0.2.11"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f3b3745eeee3b56f0db302a3ccaa2b400b5c881adf7319afde753b2fed83aae"
checksum = "f0f9d0664d3ddb92e67ecc155b748ba16bb2d0c04a92276a33be6eac1a38d533"
dependencies = [
"allocative",
"allocative_derive",
@@ -4961,9 +4998,9 @@ dependencies = [
[[package]]
name = "vecdb_derive"
version = "0.2.11"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb14e5900ae8ba26112c438311b274de59e566a180d7795a584a83e3faa5cb9f"
checksum = "d263723d1fbfeed0a279d8983e6b7f58ece72a6fa2bf4772d630b72d1ba2b298"
dependencies = [
"quote",
"syn 2.0.106",
@@ -5487,7 +5524,7 @@ dependencies = [
"arbitrary",
"crc32fast",
"flate2",
"indexmap 2.11.0",
"indexmap 2.11.1",
"memchr",
"zopfli",
]
+16 -16
View File
@@ -4,7 +4,7 @@ members = ["crates/*"]
package.description = "The Bitcoin Research Kit is a suite of tools designed to extract, compute and display data stored on a Bitcoin Core node"
package.license = "MIT"
package.edition = "2024"
package.version = "0.0.101"
package.version = "0.0.106"
package.homepage = "https://bitcoinresearchkit.org"
package.repository = "https://github.com/bitcoinresearchkit/brk"
package.readme = "README.md"
@@ -28,19 +28,19 @@ allocative_derive = "0.3.3"
axum = "0.8.4"
bitcoin = { version = "0.32.7", features = ["serde"] }
bitcoincore-rpc = "0.19.0"
brk_bundler = { version = "0.0.101", path = "crates/brk_bundler" }
brk_cli = { version = "0.0.101", path = "crates/brk_cli" }
brk_computer = { version = "0.0.101", path = "crates/brk_computer" }
brk_error = { version = "0.0.101", path = "crates/brk_error" }
brk_fetcher = { version = "0.0.101", path = "crates/brk_fetcher" }
brk_indexer = { version = "0.0.101", path = "crates/brk_indexer" }
brk_interface = { version = "0.0.101", path = "crates/brk_interface" }
brk_logger = { version = "0.0.101", path = "crates/brk_logger" }
brk_mcp = { version = "0.0.101", path = "crates/brk_mcp" }
brk_parser = { version = "0.0.101", path = "crates/brk_parser" }
brk_server = { version = "0.0.101", path = "crates/brk_server" }
brk_store = { version = "0.0.101", path = "crates/brk_store" }
brk_structs = { version = "0.0.101", path = "crates/brk_structs" }
brk_bundler = { version = "0.0.106", path = "crates/brk_bundler" }
brk_cli = { version = "0.0.106", path = "crates/brk_cli" }
brk_computer = { version = "0.0.106", path = "crates/brk_computer" }
brk_error = { version = "0.0.106", path = "crates/brk_error" }
brk_fetcher = { version = "0.0.106", path = "crates/brk_fetcher" }
brk_indexer = { version = "0.0.106", path = "crates/brk_indexer" }
brk_interface = { version = "0.0.106", path = "crates/brk_interface" }
brk_logger = { version = "0.0.106", path = "crates/brk_logger" }
brk_mcp = { version = "0.0.106", path = "crates/brk_mcp" }
brk_parser = { version = "0.0.106", path = "crates/brk_parser" }
brk_server = { version = "0.0.106", path = "crates/brk_server" }
brk_store = { version = "0.0.106", path = "crates/brk_store" }
brk_structs = { version = "0.0.106", path = "crates/brk_structs" }
byteview = "=0.6.1"
derive_deref = "1.1.1"
fjall = "2.11.2"
@@ -56,7 +56,7 @@ serde_derive = "1.0.219"
serde_json = { version = "1.0.143", features = ["float_roundtrip"] }
tokio = { version = "1.47.1", features = ["rt-multi-thread"] }
# vecdb = { path = "../seqdb/crates/vecdb", features = ["derive"]}
vecdb = { version = "0.2.11", features = ["derive"]}
vecdb = { version = "0.2.12", features = ["derive"]}
zerocopy = "0.8.27"
zerocopy-derive = "0.8.27"
@@ -67,7 +67,7 @@ pre-release-commit-message = "release: v{{version}}"
tag-message = "release: v{{version}}"
[workspace.metadata.dist]
cargo-dist-version = "0.29.0"
cargo-dist-version = "0.30.0"
ci = "github"
allow-dirty = ["ci"]
installers = []
+1 -1
View File
@@ -12,7 +12,7 @@ build = "build.rs"
[dependencies]
log = { workspace = true }
notify = "8.2.0"
brk_rolldown = "0.1.4"
brk_rolldown = "0.1.5"
# brk_rolldown = { path = "../../../rolldown/crates/rolldown"}
sugar_path = "1.2.0"
tokio = { workspace = true }
+45 -1
View File
@@ -2,7 +2,7 @@ use std::path::Path;
use brk_error::Result;
use brk_indexer::Indexer;
use brk_structs::{StoredI16, StoredU16, Version};
use brk_structs::{StoredF32, StoredI16, StoredU16, Version};
use vecdb::{AnyCollectableVec, AnyVec, Database, Exit};
use crate::grouped::Source;
@@ -24,7 +24,9 @@ pub struct Vecs {
pub constant_2: ComputedVecsFromHeight<StoredU16>,
pub constant_3: ComputedVecsFromHeight<StoredU16>,
pub constant_4: ComputedVecsFromHeight<StoredU16>,
pub constant_38_2: ComputedVecsFromHeight<StoredF32>,
pub constant_50: ComputedVecsFromHeight<StoredU16>,
pub constant_61_8: ComputedVecsFromHeight<StoredF32>,
pub constant_100: ComputedVecsFromHeight<StoredU16>,
pub constant_600: ComputedVecsFromHeight<StoredU16>,
pub constant_minus_1: ComputedVecsFromHeight<StoredI16>,
@@ -78,6 +80,14 @@ impl Vecs {
indexes,
VecBuilderOptions::default().add_last(),
)?,
constant_38_2: ComputedVecsFromHeight::forced_import(
&db,
"constant_38_2",
Source::Compute,
version + VERSION + Version::ZERO,
indexes,
VecBuilderOptions::default().add_last(),
)?,
constant_50: ComputedVecsFromHeight::forced_import(
&db,
"constant_50",
@@ -86,6 +96,14 @@ impl Vecs {
indexes,
VecBuilderOptions::default().add_last(),
)?,
constant_61_8: ComputedVecsFromHeight::forced_import(
&db,
"constant_61_8",
Source::Compute,
version + VERSION + Version::ZERO,
indexes,
VecBuilderOptions::default().add_last(),
)?,
constant_100: ComputedVecsFromHeight::forced_import(
&db,
"constant_100",
@@ -223,6 +241,30 @@ impl Vecs {
)
})?;
[
(&mut self.constant_38_2, 38.2),
(&mut self.constant_61_8, 61.8),
]
.into_iter()
.try_for_each(|(vec, value)| {
vec.compute_all(
indexer,
indexes,
starting_indexes,
exit,
|vec, _, indexes, starting_indexes, exit| {
vec.compute_to(
starting_indexes.height,
indexes.height_to_date.len(),
indexes.height_to_date.version(),
|i| (i, StoredF32::from(value)),
exit,
)?;
Ok(())
},
)
})?;
Ok(())
}
@@ -233,7 +275,9 @@ impl Vecs {
self.constant_2.vecs(),
self.constant_3.vecs(),
self.constant_4.vecs(),
self.constant_38_2.vecs(),
self.constant_50.vecs(),
self.constant_61_8.vecs(),
self.constant_100.vecs(),
self.constant_600.vecs(),
self.constant_minus_1.vecs(),
+100 -100
View File
@@ -20,11 +20,11 @@ where
pub average: Option<Box<EagerVec<I, T>>>,
pub sum: Option<Box<EagerVec<I, T>>>,
pub max: Option<Box<EagerVec<I, T>>>,
pub p90: Option<Box<EagerVec<I, T>>>,
pub p75: Option<Box<EagerVec<I, T>>>,
pub pct90: Option<Box<EagerVec<I, T>>>,
pub pct75: Option<Box<EagerVec<I, T>>>,
pub median: Option<Box<EagerVec<I, T>>>,
pub p25: Option<Box<EagerVec<I, T>>>,
pub p10: Option<Box<EagerVec<I, T>>>,
pub pct25: Option<Box<EagerVec<I, T>>>,
pub pct10: Option<Box<EagerVec<I, T>>>,
pub min: Option<Box<EagerVec<I, T>>>,
pub last: Option<Box<EagerVec<I, T>>>,
pub cumulative: Option<Box<EagerVec<I, T>>>,
@@ -152,44 +152,44 @@ where
.unwrap(),
)
}),
p90: options.p90.then(|| {
pct90: options.pct90.then(|| {
Box::new(
EagerVec::forced_import(
db,
&maybe_suffix("p90"),
&maybe_suffix("pct90"),
version + VERSION + Version::ZERO,
format,
)
.unwrap(),
)
}),
p75: options.p75.then(|| {
pct75: options.pct75.then(|| {
Box::new(
EagerVec::forced_import(
db,
&maybe_suffix("p75"),
&maybe_suffix("pct75"),
version + VERSION + Version::ZERO,
format,
)
.unwrap(),
)
}),
p25: options.p25.then(|| {
pct25: options.pct25.then(|| {
Box::new(
EagerVec::forced_import(
db,
&maybe_suffix("p25"),
&maybe_suffix("pct25"),
version + VERSION + Version::ZERO,
format,
)
.unwrap(),
)
}),
p10: options.p10.then(|| {
pct10: options.pct10.then(|| {
Box::new(
EagerVec::forced_import(
db,
&maybe_suffix("p10"),
&maybe_suffix("pct10"),
version + VERSION + Version::ZERO,
format,
)
@@ -293,11 +293,11 @@ where
let needs_average_sum_or_cumulative =
needs_sum_or_cumulative || self.average.is_some();
let needs_sorted = self.max.is_some()
|| self.p90.is_some()
|| self.p75.is_some()
|| self.pct90.is_some()
|| self.pct75.is_some()
|| self.median.is_some()
|| self.p25.is_some()
|| self.p10.is_some()
|| self.pct25.is_some()
|| self.pct10.is_some()
|| self.min.is_some();
let needs_values = needs_sorted || needs_average_sum_or_cumulative;
@@ -334,24 +334,24 @@ where
)?;
}
if let Some(p90) = self.p90.as_mut() {
p90.forced_push_at(index, get_percentile(&values, 0.90), exit)?;
if let Some(pct90) = self.pct90.as_mut() {
pct90.forced_push_at(index, get_percentile(&values, 0.90), exit)?;
}
if let Some(p75) = self.p75.as_mut() {
p75.forced_push_at(index, get_percentile(&values, 0.75), exit)?;
if let Some(pct75) = self.pct75.as_mut() {
pct75.forced_push_at(index, get_percentile(&values, 0.75), exit)?;
}
if let Some(median) = self.median.as_mut() {
median.forced_push_at(index, get_percentile(&values, 0.50), exit)?;
}
if let Some(p25) = self.p25.as_mut() {
p25.forced_push_at(index, get_percentile(&values, 0.25), exit)?;
if let Some(pct25) = self.pct25.as_mut() {
pct25.forced_push_at(index, get_percentile(&values, 0.25), exit)?;
}
if let Some(p10) = self.p10.as_mut() {
p10.forced_push_at(index, get_percentile(&values, 0.10), exit)?;
if let Some(pct10) = self.pct10.as_mut() {
pct10.forced_push_at(index, get_percentile(&values, 0.10), exit)?;
}
if let Some(min) = self.min.as_mut() {
@@ -402,11 +402,11 @@ where
where
I2: StoredIndex + StoredRaw + CheckedSub<I2>,
{
if self.p90.is_some()
|| self.p75.is_some()
if self.pct90.is_some()
|| self.pct75.is_some()
|| self.median.is_some()
|| self.p25.is_some()
|| self.p10.is_some()
|| self.pct25.is_some()
|| self.pct10.is_some()
{
panic!("unsupported");
}
@@ -559,24 +559,24 @@ where
self.max.as_ref().unwrap()
}
#[allow(unused)]
pub fn unwrap_p90(&self) -> &EagerVec<I, T> {
self.p90.as_ref().unwrap()
pub fn unwrap_pct90(&self) -> &EagerVec<I, T> {
self.pct90.as_ref().unwrap()
}
#[allow(unused)]
pub fn unwrap_p75(&self) -> &EagerVec<I, T> {
self.p75.as_ref().unwrap()
pub fn unwrap_pct75(&self) -> &EagerVec<I, T> {
self.pct75.as_ref().unwrap()
}
#[allow(unused)]
pub fn unwrap_median(&self) -> &EagerVec<I, T> {
self.median.as_ref().unwrap()
}
#[allow(unused)]
pub fn unwrap_p25(&self) -> &EagerVec<I, T> {
self.p25.as_ref().unwrap()
pub fn unwrap_pct25(&self) -> &EagerVec<I, T> {
self.pct25.as_ref().unwrap()
}
#[allow(unused)]
pub fn unwrap_p10(&self) -> &EagerVec<I, T> {
self.p10.as_ref().unwrap()
pub fn unwrap_pct10(&self) -> &EagerVec<I, T> {
self.pct10.as_ref().unwrap()
}
pub fn unwrap_min(&self) -> &EagerVec<I, T> {
self.min.as_ref().unwrap()
@@ -616,17 +616,17 @@ where
if let Some(cumulative) = self.cumulative.as_ref() {
v.push(cumulative.as_ref());
}
if let Some(p90) = self.p90.as_ref() {
v.push(p90.as_ref());
if let Some(pct90) = self.pct90.as_ref() {
v.push(pct90.as_ref());
}
if let Some(p75) = self.p75.as_ref() {
v.push(p75.as_ref());
if let Some(pct75) = self.pct75.as_ref() {
v.push(pct75.as_ref());
}
if let Some(p25) = self.p25.as_ref() {
v.push(p25.as_ref());
if let Some(pct25) = self.pct25.as_ref() {
v.push(pct25.as_ref());
}
if let Some(p10) = self.p10.as_ref() {
v.push(p10.as_ref());
if let Some(pct10) = self.pct10.as_ref() {
v.push(pct10.as_ref());
}
v
@@ -657,17 +657,17 @@ where
if let Some(cumulative) = self.cumulative.as_mut() {
cumulative.safe_flush(exit)?;
}
if let Some(p90) = self.p90.as_mut() {
p90.safe_flush(exit)?;
if let Some(pct90) = self.pct90.as_mut() {
pct90.safe_flush(exit)?;
}
if let Some(p75) = self.p75.as_mut() {
p75.safe_flush(exit)?;
if let Some(pct75) = self.pct75.as_mut() {
pct75.safe_flush(exit)?;
}
if let Some(p25) = self.p25.as_mut() {
p25.safe_flush(exit)?;
if let Some(pct25) = self.pct25.as_mut() {
pct25.safe_flush(exit)?;
}
if let Some(p10) = self.p10.as_mut() {
p10.safe_flush(exit)?;
if let Some(pct10) = self.pct10.as_mut() {
pct10.safe_flush(exit)?;
}
Ok(())
@@ -698,17 +698,17 @@ where
if let Some(cumulative) = self.cumulative.as_mut() {
cumulative.validate_computed_version_or_reset(Version::ZERO + version)?;
}
if let Some(p90) = self.p90.as_mut() {
p90.validate_computed_version_or_reset(Version::ZERO + version)?;
if let Some(pct90) = self.pct90.as_mut() {
pct90.validate_computed_version_or_reset(Version::ZERO + version)?;
}
if let Some(p75) = self.p75.as_mut() {
p75.validate_computed_version_or_reset(Version::ZERO + version)?;
if let Some(pct75) = self.pct75.as_mut() {
pct75.validate_computed_version_or_reset(Version::ZERO + version)?;
}
if let Some(p25) = self.p25.as_mut() {
p25.validate_computed_version_or_reset(Version::ZERO + version)?;
if let Some(pct25) = self.pct25.as_mut() {
pct25.validate_computed_version_or_reset(Version::ZERO + version)?;
}
if let Some(p10) = self.p10.as_mut() {
p10.validate_computed_version_or_reset(Version::ZERO + version)?;
if let Some(pct10) = self.pct10.as_mut() {
pct10.validate_computed_version_or_reset(Version::ZERO + version)?;
}
Ok(())
@@ -720,11 +720,11 @@ pub struct VecBuilderOptions {
average: bool,
sum: bool,
max: bool,
p90: bool,
p75: bool,
pct90: bool,
pct75: bool,
median: bool,
p25: bool,
p10: bool,
pct25: bool,
pct10: bool,
min: bool,
first: bool,
last: bool,
@@ -744,24 +744,24 @@ impl VecBuilderOptions {
self.max
}
pub fn p90(&self) -> bool {
self.p90
pub fn pct90(&self) -> bool {
self.pct90
}
pub fn p75(&self) -> bool {
self.p75
pub fn pct75(&self) -> bool {
self.pct75
}
pub fn median(&self) -> bool {
self.median
}
pub fn p25(&self) -> bool {
self.p25
pub fn pct25(&self) -> bool {
self.pct25
}
pub fn p10(&self) -> bool {
self.p10
pub fn pct10(&self) -> bool {
self.pct10
}
pub fn min(&self) -> bool {
@@ -817,26 +817,26 @@ impl VecBuilderOptions {
}
#[allow(unused)]
pub fn add_p90(mut self) -> Self {
self.p90 = true;
pub fn add_pct90(mut self) -> Self {
self.pct90 = true;
self
}
#[allow(unused)]
pub fn add_p75(mut self) -> Self {
self.p75 = true;
pub fn add_pct75(mut self) -> Self {
self.pct75 = true;
self
}
#[allow(unused)]
pub fn add_p25(mut self) -> Self {
self.p25 = true;
pub fn add_pct25(mut self) -> Self {
self.pct25 = true;
self
}
#[allow(unused)]
pub fn add_p10(mut self) -> Self {
self.p10 = true;
pub fn add_pct10(mut self) -> Self {
self.pct10 = true;
self
}
@@ -876,26 +876,26 @@ impl VecBuilderOptions {
}
#[allow(unused)]
pub fn rm_p90(mut self) -> Self {
self.p90 = false;
pub fn rm_pct90(mut self) -> Self {
self.pct90 = false;
self
}
#[allow(unused)]
pub fn rm_p75(mut self) -> Self {
self.p75 = false;
pub fn rm_pct75(mut self) -> Self {
self.pct75 = false;
self
}
#[allow(unused)]
pub fn rm_p25(mut self) -> Self {
self.p25 = false;
pub fn rm_pct25(mut self) -> Self {
self.pct25 = false;
self
}
#[allow(unused)]
pub fn rm_p10(mut self) -> Self {
self.p10 = false;
pub fn rm_pct10(mut self) -> Self {
self.pct10 = false;
self
}
@@ -912,20 +912,20 @@ impl VecBuilderOptions {
}
pub fn add_percentiles(mut self) -> Self {
self.p90 = true;
self.p75 = true;
self.pct90 = true;
self.pct75 = true;
self.median = true;
self.p25 = true;
self.p10 = true;
self.pct25 = true;
self.pct10 = true;
self
}
pub fn remove_percentiles(mut self) -> Self {
self.p90 = false;
self.p75 = false;
self.pct90 = false;
self.pct75 = false;
self.median = false;
self.p25 = false;
self.p10 = false;
self.pct25 = false;
self.pct10 = false;
self
}
@@ -934,11 +934,11 @@ impl VecBuilderOptions {
self.average,
self.sum,
self.max,
self.p90,
self.p75,
self.pct90,
self.pct75,
self.median,
self.p25,
self.p10,
self.pct25,
self.pct10,
self.min,
self.first,
self.last,
+24 -24
View File
@@ -320,24 +320,24 @@ impl ComputedVecsFromTxindex<Bitcoin> {
exit,
)?;
}
if let Some(_90p) = self.height.p90.as_mut() {
_90p.forced_push_at(
if let Some(pct90) = self.height.pct90.as_mut() {
pct90.forced_push_at(
height,
Bitcoin::from(
sats.height
.unwrap_p90()
.unwrap_pct90()
.into_iter()
.unwrap_get_inner(height),
),
exit,
)?;
}
if let Some(_75p) = self.height.p75.as_mut() {
_75p.forced_push_at(
if let Some(pct75) = self.height.pct75.as_mut() {
pct75.forced_push_at(
height,
Bitcoin::from(
sats.height
.unwrap_p75()
.unwrap_pct75()
.into_iter()
.unwrap_get_inner(height),
),
@@ -356,24 +356,24 @@ impl ComputedVecsFromTxindex<Bitcoin> {
exit,
)?;
}
if let Some(_25p) = self.height.p25.as_mut() {
_25p.forced_push_at(
if let Some(pct25) = self.height.pct25.as_mut() {
pct25.forced_push_at(
height,
Bitcoin::from(
sats.height
.unwrap_p25()
.unwrap_pct25()
.into_iter()
.unwrap_get_inner(height),
),
exit,
)?;
}
if let Some(_10p) = self.height.p10.as_mut() {
_10p.forced_push_at(
if let Some(pct10) = self.height.pct10.as_mut() {
pct10.forced_push_at(
height,
Bitcoin::from(
sats.height
.unwrap_p10()
.unwrap_pct10()
.into_iter()
.unwrap_get_inner(height),
),
@@ -503,25 +503,25 @@ impl ComputedVecsFromTxindex<Dollars> {
exit,
)?;
}
if let Some(_90p) = self.height.p90.as_mut() {
_90p.forced_push_at(
if let Some(pct90) = self.height.pct90.as_mut() {
pct90.forced_push_at(
height,
price
* bitcoin
.height
.unwrap_p90()
.unwrap_pct90()
.into_iter()
.unwrap_get_inner(height),
exit,
)?;
}
if let Some(_75p) = self.height.p75.as_mut() {
_75p.forced_push_at(
if let Some(pct75) = self.height.pct75.as_mut() {
pct75.forced_push_at(
height,
price
* bitcoin
.height
.unwrap_p75()
.unwrap_pct75()
.into_iter()
.unwrap_get_inner(height),
exit,
@@ -539,25 +539,25 @@ impl ComputedVecsFromTxindex<Dollars> {
exit,
)?;
}
if let Some(_25p) = self.height.p25.as_mut() {
_25p.forced_push_at(
if let Some(pct25) = self.height.pct25.as_mut() {
pct25.forced_push_at(
height,
price
* bitcoin
.height
.unwrap_p25()
.unwrap_pct25()
.into_iter()
.unwrap_get_inner(height),
exit,
)?;
}
if let Some(_10p) = self.height.p10.as_mut() {
_10p.forced_push_at(
if let Some(pct10) = self.height.pct10.as_mut() {
pct10.forced_push_at(
height,
price
* bitcoin
.height
.unwrap_p10()
.unwrap_pct10()
.into_iter()
.unwrap_get_inner(height),
exit,
@@ -8,7 +8,9 @@ use vecdb::{
use crate::{
Indexes,
grouped::{ComputedStandardDeviationVecsFromDateIndex, source::Source},
grouped::{
ComputedStandardDeviationVecsFromDateIndex, StandardDeviationVecsOptions, source::Source,
},
indexes, price,
utils::get_percentile,
};
@@ -105,6 +107,7 @@ impl ComputedRatioVecsFromDateIndex {
Source::Compute,
version + VERSION + Version::ZERO,
indexes,
StandardDeviationVecsOptions::default().add_all(),
)
.unwrap()
}),
@@ -116,6 +119,7 @@ impl ComputedRatioVecsFromDateIndex {
Source::Compute,
version + VERSION + Version::ZERO,
indexes,
StandardDeviationVecsOptions::default().add_all(),
)
.unwrap()
}),
@@ -127,6 +131,7 @@ impl ComputedRatioVecsFromDateIndex {
Source::Compute,
version + VERSION + Version::ZERO,
indexes,
StandardDeviationVecsOptions::default().add_all(),
)
.unwrap()
}),
@@ -138,6 +143,7 @@ impl ComputedRatioVecsFromDateIndex {
Source::Compute,
version + VERSION + Version::ZERO,
indexes,
StandardDeviationVecsOptions::default().add_all(),
)
.unwrap()
}),
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+16 -2
View File
@@ -10,6 +10,8 @@ use serde::{Deserialize, Serialize};
use vecdb::{CheckedSub, StoredCompressed};
use zerocopy_derive::{FromBytes, Immutable, IntoBytes, KnownLayout};
use crate::{Low, Open};
use super::{Bitcoin, Cents, Close, High, Sats, StoredF32, StoredF64};
#[derive(
@@ -80,8 +82,8 @@ impl From<Dollars> for f64 {
}
}
impl From<Close<Dollars>> for Dollars {
fn from(value: Close<Dollars>) -> Self {
impl From<Open<Dollars>> for Dollars {
fn from(value: Open<Dollars>) -> Self {
Self(value.0)
}
}
@@ -92,6 +94,18 @@ impl From<High<Dollars>> for Dollars {
}
}
impl From<Low<Dollars>> for Dollars {
fn from(value: Low<Dollars>) -> Self {
Self(value.0)
}
}
impl From<Close<Dollars>> for Dollars {
fn from(value: Close<Dollars>) -> Self {
Self(value.0)
}
}
impl From<usize> for Dollars {
fn from(value: usize) -> Self {
Self(value as f64)
+2
View File
@@ -0,0 +1,2 @@
[toolchain]
channel = "1.89.0"
+2 -2
View File
@@ -367,7 +367,7 @@ export function init({
case null:
case CANDLE: {
series = chart.addCandlestickSeries({
vecId: "ohlc_in_sats",
vecId: "price_ohlc_in_sats",
name: "Price",
unit: topUnit,
inverse: true,
@@ -378,7 +378,7 @@ export function init({
}
case LINE: {
series = chart.addLineSeries({
vecId: "close_in_sats",
vecId: "price_close_in_sats",
name: "Price",
unit: topUnit,
color: colors.default,
+4
View File
@@ -783,11 +783,14 @@ function createUtils() {
id === "price_open" ||
id === "price_ath" ||
id === "market_cap" ||
id.startsWith("price_true_range") ||
id.includes("_usd") ||
id.includes("cointime_value") ||
id.endsWith("_ago") ||
id.endsWith("price_paid") ||
id.endsWith("_price") ||
(id.startsWith("price") &&
(id.endsWith("min") || id.endsWith("max"))) ||
(id.endsWith("_cap") && !id.includes("rel_to")) ||
id.endsWith("value_created") ||
id.endsWith("value_destroyed") ||
@@ -835,6 +838,7 @@ function createUtils() {
id.endsWith("oscillator") ||
id.endsWith("dominance") ||
id.endsWith("returns") ||
id.endsWith("volatility") ||
id.endsWith("cagr"))
) {
setUnit("percentage");
+115 -25
View File
@@ -163,18 +163,18 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
* @typedef {"_median"} MedianSuffix
* @typedef {EndsWith<MedianSuffix>} VecIdMedian
* @typedef {WithoutSuffix<VecIdMedian, MedianSuffix>} VecIdMedianBase
* @typedef {"_p90"} _p90Suffix
* @typedef {EndsWith<_p90Suffix>} VecIdp90
* @typedef {WithoutSuffix<VecIdp90, _p90Suffix>} VecIdp90Base
* @typedef {"_p75"} _p75Suffix
* @typedef {EndsWith<_p75Suffix>} VecIdp75
* @typedef {WithoutSuffix<VecIdp75, _p75Suffix>} VecIdp75Base
* @typedef {"_p25"} _p25Suffix
* @typedef {EndsWith<_p25Suffix>} VecIdp25
* @typedef {WithoutSuffix<VecIdp25, _p25Suffix>} VecIdp25Base
* @typedef {"_p10"} _p10Suffix
* @typedef {EndsWith<_p10Suffix>} VecIdp10
* @typedef {WithoutSuffix<VecIdp10, _p10Suffix>} VecIdp10Base
* @typedef {"_pct90"} _pct90Suffix
* @typedef {EndsWith<_pct90Suffix>} VecIdpct90
* @typedef {WithoutSuffix<VecIdpct90, _pct90Suffix>} VecIdpct90Base
* @typedef {"_pct75"} _pct75Suffix
* @typedef {EndsWith<_pct75Suffix>} VecIdpct75
* @typedef {WithoutSuffix<VecIdpct75, _pct75Suffix>} VecIdpct75Base
* @typedef {"_pct25"} _pct25Suffix
* @typedef {EndsWith<_pct25Suffix>} VecIdpct25
* @typedef {WithoutSuffix<VecIdpct25, _pct25Suffix>} VecIdpct25Base
* @typedef {"_pct10"} _pct10Suffix
* @typedef {EndsWith<_pct10Suffix>} VecIdpct10
* @typedef {WithoutSuffix<VecIdpct10, _pct10Suffix>} VecIdpct10Base
* @typedef {"_max"} MaxSuffix
* @typedef {EndsWith<MaxSuffix>} VecIdMax
* @typedef {WithoutSuffix<VecIdMax, MaxSuffix>} VecIdMaxBase
@@ -1094,7 +1094,10 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
lineStyle,
}) {
return /** @satisfies {FetchedLineSeriesBlueprint} */ ({
key: `constant_${number >= 0 ? number : `minus_${Math.abs(number)}`}`,
key: `constant_${number >= 0 ? number : `minus_${Math.abs(number)}`}`.replace(
".",
"_",
),
title: name ?? `${number}`,
unit,
defaultActive,
@@ -1229,7 +1232,7 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
/**
* @param {Object} args
* @param {VecIdMinBase & VecIdMaxBase & VecIdp90Base & VecIdp75Base & VecIdMedianBase & VecIdp25Base & VecIdp10Base} args.concat
* @param {VecIdMinBase & VecIdMaxBase & VecIdpct90Base & VecIdpct75Base & VecIdMedianBase & VecIdpct25Base & VecIdpct10Base} args.concat
* @param {string} [args.title]
*/
function createMinMaxPercentilesSeries({ concat, title = "" }) {
@@ -1253,26 +1256,26 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
defaultActive: false,
},
{
key: `${concat}_p75`,
title: `p75 ${title}`,
key: `${concat}_pct75`,
title: `pct75 ${title}`,
color: colors.red,
defaultActive: false,
},
{
key: `${concat}_p25`,
title: `p25 ${title}`,
key: `${concat}_pct25`,
title: `pct25 ${title}`,
color: colors.yellow,
defaultActive: false,
},
{
key: `${concat}_p90`,
title: `p90 ${title}`,
key: `${concat}_pct90`,
title: `pct90 ${title}`,
color: colors.rose,
defaultActive: false,
},
{
key: `${concat}_p10`,
title: `p10 ${title}`,
key: `${concat}_pct10`,
title: `pct10 ${title}`,
color: colors.lime,
defaultActive: false,
},
@@ -1280,7 +1283,7 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
}
/**
* @param {VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdp90Base & VecIdp75Base & VecIdMedianBase & VecIdp25Base & VecIdp10Base} key
* @param {VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdpct90Base & VecIdpct75Base & VecIdMedianBase & VecIdpct25Base & VecIdpct10Base} key
*/
function createSumCumulativeMinMaxPercentilesSeries(key) {
return [
@@ -1290,7 +1293,7 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
}
/**
* @param {VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdp90Base & VecIdp75Base & VecIdMedianBase & VecIdp25Base & VecIdp10Base} key
* @param {VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdpct90Base & VecIdpct75Base & VecIdMedianBase & VecIdpct25Base & VecIdpct10Base} key
*/
function createAverageSumCumulativeMinMaxPercentilesSeries(key) {
return [
@@ -1301,7 +1304,7 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
/**
* @param {Object} args
* @param {VecId & VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdp90Base & VecIdp75Base & VecIdMedianBase & VecIdp25Base & VecIdp10Base} args.key
* @param {VecId & VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdpct90Base & VecIdpct75Base & VecIdMedianBase & VecIdpct25Base & VecIdpct10Base} args.key
* @param {string} args.name
*/
function createBaseAverageSumCumulativeMinMaxPercentilesSeries({
@@ -3149,6 +3152,93 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
{
name: "Indicators",
tree: [
{
name: "Volatility",
title: "Bitcoin Price Volatility Index",
bottom: [
createBaseSeries({
key: "price_1w_volatility",
name: "1w",
color: colors.red,
}),
createBaseSeries({
key: "price_1m_volatility",
name: "1m",
color: colors.orange,
}),
createBaseSeries({
key: "price_1y_volatility",
name: "1y",
color: colors.lime,
}),
],
},
{
name: "MinMax",
tree: [
{
key: "1w",
title: "1 Week",
},
{
key: "2w",
title: "2 Week",
},
{
key: "1m",
title: "1 Month",
},
{
key: "1y",
title: "1 Year",
},
].map(({ key, title }) => ({
name: key,
title: `Bitcoin Price ${title} MinMax Bands`,
top: [
createBaseSeries({
key: `price_${key}_min`,
name: "min",
color: colors.red,
}),
createBaseSeries({
key: `price_${key}_max`,
name: "max",
color: colors.green,
}),
],
})),
},
{
name: "True range",
title: "Bitcoin Price True Range",
bottom: [
createBaseSeries({
key: "price_true_range",
name: "value",
color: colors.yellow,
}),
],
},
{
name: "Choppiness",
title: "Bitcoin Price Choppiness Index",
bottom: [
createBaseSeries({
key: "price_2w_choppiness_index",
name: "2w",
color: colors.red,
}),
createPriceLine({
unit: "Index",
number: 61.8,
}),
createPriceLine({
unit: "Index",
number: 38.2,
}),
],
},
{
name: "Mayer multiple",
title: "Mayer multiple",
+3 -1
View File
@@ -520,7 +520,9 @@ function createIndexToVecIds(vecIdToIndexes) {
*/
function serializeValue({ value, unit }) {
const t = typeof value;
if (typeof value === "string") {
if (value === null) {
return "null";
} else if (typeof value === "string") {
return value;
} else if (t !== "number") {
return JSON.stringify(value).replaceAll('"', "").slice(1, -1);