diff --git a/Cargo.lock b/Cargo.lock index a144c6daf..75f74b4c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -164,9 +164,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-compression" -version = "0.4.24" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d615619615a650c571269c00dca41db04b9210037fa76ed8239f70404ab56985" +checksum = "40f6024f3f856663b45fd0c9b6f2024034a702f453549449e0d84a305900dad4" dependencies = [ "brotli", "flate2", @@ -202,9 +202,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" @@ -272,7 +272,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -452,9 +452,9 @@ dependencies = [ "brk_exit", "brk_fetcher", "brk_indexer", + "brk_interface", "brk_logger", "brk_parser", - "brk_query", "brk_server", "brk_state", "brk_store", @@ -482,9 +482,9 @@ dependencies = [ "brk_exit", "brk_fetcher", "brk_indexer", + "brk_interface", "brk_logger", "brk_parser", - "brk_query", "brk_server", "brk_vec", "clap", @@ -555,7 +555,6 @@ dependencies = [ "brk_core", "brk_logger", "color-eyre", - "jiff", "log", "minreq", "serde_json", @@ -579,6 +578,24 @@ dependencies = [ "rayon", ] +[[package]] +name = "brk_interface" +version = "0.0.66" +dependencies = [ + "brk_computer", + "brk_core", + "brk_indexer", + "brk_vec", + "color-eyre", + "derive_deref", + "rmcp", + "schemars", + "serde", + "serde_json", + "serde_with", + "tabled", +] + [[package]] name = "brk_logger" version = "0.0.66" @@ -604,24 +621,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "brk_query" -version = "0.0.66" -dependencies = [ - "brk_computer", - "brk_core", - "brk_indexer", - "brk_vec", - "clap", - "clap_derive", - "color-eyre", - "derive_deref", - "serde", - "serde_json", - "serde_with", - "tabled", -] - [[package]] name = "brk_rolldown" version = "0.0.1" @@ -939,9 +938,9 @@ dependencies = [ "brk_exit", "brk_fetcher", "brk_indexer", + "brk_interface", "brk_logger", "brk_parser", - "brk_query", "brk_vec", "clap", "clap_derive", @@ -949,7 +948,7 @@ dependencies = [ "jiff", "log", "minreq", - "oxc", + "rmcp", "serde", "tokio", "tower-http", @@ -963,9 +962,7 @@ version = "0.0.66" dependencies = [ "bincode", "brk_core", - "brk_store", "derive_deref", - "fjall", "serde", "zerocopy", "zerocopy-derive", @@ -1136,8 +1133,10 @@ checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ "android-tzdata", "iana-time-zone", + "js-sys", "num-traits", "serde", + "wasm-bindgen", "windows-link", ] @@ -1570,12 +1569,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -2191,15 +2190,15 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.173" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8cfeafaffdbc32176b64fb251369d52ea9f0a8fbc6f8759edffef7b525d64bb" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "liblzma" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66352d7a8ac12d4877b6e6ea5a9b7650ee094257dc40889955bea5bc5b08c1d0" +checksum = "0791ab7e08ccc8e0ce893f6906eb2703ed8739d8e89b57c0714e71bad09024c8" dependencies = [ "liblzma-sys", ] @@ -2283,9 +2282,9 @@ dependencies = [ [[package]] name = "lz4_flex" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c592ad9fbc1b7838633b3ae55ce69b17d01150c72fcef229fbb819d39ee51ee" +checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" [[package]] name = "matchers" @@ -2495,9 +2494,9 @@ checksum = "26995317201fa17f3656c36716aed4a7c81743a9634ac4c99c0eeda495db0cec" [[package]] name = "oxc" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0053b9142d0776d038db03b967c87ebafa5bffdc4150183b5540adbcbc00fabe" +checksum = "2e31318da7866fb30c000877ae98c30d1f76212e4bdc6c088c5cb847e5d40954" dependencies = [ "oxc_allocator", "oxc_ast", @@ -2519,9 +2518,9 @@ dependencies = [ [[package]] name = "oxc-browserslist" -version = "2.0.5" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f56cc6eaa393139eda31fc22b4638e3d3e58496122c1738026aa7c4a9631f9" +checksum = "5c7bcc31e3014fa4226346b8596cda0f5cb5797045fa2760c6b871407db5642c" dependencies = [ "nom", "rustc-hash", @@ -2558,9 +2557,9 @@ dependencies = [ [[package]] name = "oxc_allocator" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ead9af98156b7a80512e1d0db127572ee4a8de43b41eaf5b797482c8530fdad" +checksum = "f4cb225affc487a1bc867455220d5427d0f2a35ed25d896f99bb3b912d49fb9e" dependencies = [ "allocator-api2", "bumpalo", @@ -2573,9 +2572,9 @@ dependencies = [ [[package]] name = "oxc_ast" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac5f46a96dd0bc9f63b9745568471b42cb0b617716d311c34a79f68e355796a" +checksum = "9ced8dcc14d588fa32594d70ff8f194712036d02d7a96718bce38abbfec72ed6" dependencies = [ "bitflags 2.9.1", "oxc_allocator", @@ -2589,9 +2588,9 @@ dependencies = [ [[package]] name = "oxc_ast_macros" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c25817869aab36130e4d0c7cf8630582e408bff34b95fb66a03512bb3defe5" +checksum = "43494643bd6d76a62446c58ae98568bf630c0bdd90726d7956d3f8e1e17f5906" dependencies = [ "phf", "proc-macro2", @@ -2601,9 +2600,9 @@ dependencies = [ [[package]] name = "oxc_ast_visit" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e056ca12ae23492897b2d9d915581c03cd1b2d6158c52d67c67bcc3ceebdae18" +checksum = "761d7f84b87080cf337c843fa60a1c3f50eb53eba0ec1e42d8758e99cd834031" dependencies = [ "oxc_allocator", "oxc_ast", @@ -2614,9 +2613,9 @@ dependencies = [ [[package]] name = "oxc_cfg" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "424c8259dc5bbd4f38b63ca6498e3140bd0ddff9f105599cc060013c89c94160" +checksum = "4d561bbe6e05cd3be34802a22e799c3c9bd5987daee2dbb51b2561ab78d39420" dependencies = [ "bitflags 2.9.1", "itertools", @@ -2629,9 +2628,9 @@ dependencies = [ [[package]] name = "oxc_codegen" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28e1e25e206a06c8a2b40c78b51e7eadfd9f931494d72cc740bf6fba66890d1" +checksum = "d694cadd4d0d86831197d720ad245ea3c82366db778230dfa8d80475d2049c80" dependencies = [ "bitflags 2.9.1", "cow-utils", @@ -2650,9 +2649,9 @@ dependencies = [ [[package]] name = "oxc_data_structures" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7bba3e8f1e9b15d80b192f87b4e05aa6fbaa03e16fd62d6c087a2427caf8ab" +checksum = "1ebcebde288c0dbc9b8bb7ecf8d4eb3d64c6f122609fbca9f89dce356786fa19" dependencies = [ "ropey", "rustversion", @@ -2660,9 +2659,9 @@ dependencies = [ [[package]] name = "oxc_diagnostics" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "893f091e2c224765d9b156b90c9ce09d724f60144549db05f685919585cf745e" +checksum = "136bd60c8d25e6c1b879a01d5f52ad260385afa2d74b0aa81c1cbc9680b468ef" dependencies = [ "cow-utils", "oxc-miette", @@ -2670,9 +2669,9 @@ dependencies = [ [[package]] name = "oxc_ecmascript" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31554a9681ebafe20e175b0a99fdee45ddf38285a5e9ca4bdefe223779963870" +checksum = "405573ecc303a3e9852b2873aad30e8249b3e3cb668cf265f53a9072dada8d50" dependencies = [ "num-bigint", "num-traits", @@ -2683,9 +2682,9 @@ dependencies = [ [[package]] name = "oxc_estree" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19c82ec9b051aab8fbbd68366ad90de958dd32365f9f445c89395ad42cf050fe" +checksum = "bcd0073f1b212fda3c1e37728db069bf22d136a90f58da4f6214a6ada7552dde" dependencies = [ "itoa", "oxc_data_structures", @@ -2704,9 +2703,9 @@ dependencies = [ [[package]] name = "oxc_isolated_declarations" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e65c8ab6a35eae3d5f438055e6240cb014be3d2833c4c5411f7b1110d899408a" +checksum = "cc08c216028563ebe9f35e9ff661c24d5f885735775d21fc00d579f7a06db10a" dependencies = [ "bitflags 2.9.1", "oxc_allocator", @@ -2721,9 +2720,9 @@ dependencies = [ [[package]] name = "oxc_mangler" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e41bc4d7628015266d35f14e35db6e2a89d8d54235859acf56aa8146dbcef6" +checksum = "b301242a458a38572ec3ffd73d836de068019d605a49360f0c80ff9fcdbb0485" dependencies = [ "fixedbitset", "itertools", @@ -2738,9 +2737,9 @@ dependencies = [ [[package]] name = "oxc_minifier" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9e62020bc8ee278dfb29f396682a50adbe9981895bf10580133cddf50eea43" +checksum = "87d130925e189994a4695d7379f14fd427f347642741d8180baa0b8a6699607b" dependencies = [ "cow-utils", "oxc_allocator", @@ -2760,9 +2759,9 @@ dependencies = [ [[package]] name = "oxc_parser" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120aa69d4df56d66fc5f0a525c5ff02369cee5f97289ea20b533b7f76530413b" +checksum = "4c0b65b7f87759287bc7c8d394733cda9bca5e14fe7b71388932c926f8cde67b" dependencies = [ "bitflags 2.9.1", "cow-utils", @@ -2783,9 +2782,9 @@ dependencies = [ [[package]] name = "oxc_regular_expression" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f22f6568dd7bb5e84eb45a22bda827d5735f09a95ca8e3e233be56516fdc3d9b" +checksum = "0899e918e7da993922ac9d85a7cacefc5519afbab002a4e239aa0a8dc2201297" dependencies = [ "bitflags 2.9.1", "oxc_allocator", @@ -2818,9 +2817,9 @@ dependencies = [ [[package]] name = "oxc_semantic" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5345a0f4645e74bc85bfb3bdc6f0d85b0810fd49f9947c85bc4be16feb901a2" +checksum = "b916b0e8bf2045895726a5069947789226eaae47e0f27412956163e02bd20816" dependencies = [ "itertools", "oxc_allocator", @@ -2855,9 +2854,9 @@ dependencies = [ [[package]] name = "oxc_span" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a54f79470afa4c6cea26c69a0af0fe9ba61f4108b4254fe3170ae6fce04fa11" +checksum = "d51599c317d4e19c07978bde4af8a40844a2410fb7b455836c3441a41865acfa" dependencies = [ "compact_str", "oxc-miette", @@ -2869,9 +2868,9 @@ dependencies = [ [[package]] name = "oxc_syntax" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b27a8e08726b8d2db468f69110a587c1b2e01fa82e0c58f3519dbcebaaee267f" +checksum = "1ee16107642e60a1f53dac2dbaaf1a1cdc696c0f7427946f8b8906f3e09a85f0" dependencies = [ "bitflags 2.9.1", "cow-utils", @@ -2891,9 +2890,9 @@ dependencies = [ [[package]] name = "oxc_transformer" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e71275f58fd5cce88f19749c06e2b8faa6d742f886a88f985fdac65a7625b858" +checksum = "4bd95eedb44dd519dfe157334512977de744725cda45d4c9005369e3f155d6b4" dependencies = [ "base64 0.22.1", "compact_str", @@ -2922,9 +2921,9 @@ dependencies = [ [[package]] name = "oxc_transformer_plugins" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07776f86bc1bd06ec25ec14ea2616b82ec237c57c8a7683b3d0eedacac80e0c3" +checksum = "b3aa2124adf31739ae94ca9ee5ecb727b42ad7bc3e33ca072a6c9fa791d9f7b5" dependencies = [ "cow-utils", "itoa", @@ -2944,9 +2943,9 @@ dependencies = [ [[package]] name = "oxc_traverse" -version = "0.73.0" +version = "0.73.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b85b10812142ec2df01b4bedd1a76e298883ffb1fa73a4e4a16013467e9f76" +checksum = "fdd6b3996c515cf7ce1c204b3b01a5a1469462412885ea6fa7f0d236d8f2c454" dependencies = [ "itoa", "oxc_allocator", @@ -2991,9 +2990,15 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.52.6", ] +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + [[package]] name = "path-absolutize" version = "3.1.1" @@ -3057,7 +3062,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", - "rand", + "rand 0.8.5", ] [[package]] @@ -3202,9 +3207,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" @@ -3213,8 +3218,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", ] [[package]] @@ -3224,7 +3239,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -3236,6 +3261,15 @@ dependencies = [ "getrandom 0.2.16", ] +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", +] + [[package]] name = "rapidhash" version = "1.4.0" @@ -3368,6 +3402,44 @@ dependencies = [ "libc", ] +[[package]] +name = "rmcp" +version = "0.1.6" +dependencies = [ + "base64 0.22.1", + "bytes", + "chrono", + "futures", + "http", + "http-body", + "http-body-util", + "paste", + "pin-project-lite", + "rand 0.9.1", + "rmcp-macros", + "schemars", + "serde", + "serde_json", + "sse-stream", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tokio-util", + "tower-service", + "tracing", + "uuid", +] + +[[package]] +name = "rmcp-macros" +version = "0.1.6" +dependencies = [ + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.103", +] + [[package]] name = "rolldown-ariadne" version = "0.5.2" @@ -3470,10 +3542,23 @@ checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" dependencies = [ "dyn-clone", "ref-cast", + "schemars_derive", "serde", "serde_json", ] +[[package]] +name = "schemars_derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5016d94c77c6d32f0b8e08b781f7dc8a90c2007d4e77472cc2807bc10a8438fe" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.103", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -3497,7 +3582,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "bitcoin_hashes", - "rand", + "rand 0.8.5", "secp256k1-sys", "serde", ] @@ -3562,6 +3647,17 @@ dependencies = [ "syn 2.0.103", ] +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.103", +] + [[package]] name = "serde_json" version = "1.0.140" @@ -3709,6 +3805,19 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "sse-stream" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb4dc4d33c68ec1f27d386b5610a351922656e1fdf5c05bbaad930cd1519479a" +dependencies = [ + "bytes", + "futures-util", + "http-body", + "http-body-util", + "pin-project-lite", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -3926,6 +4035,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", + "bytes", "libc", "mio", "pin-project-lite", @@ -3945,6 +4055,17 @@ dependencies = [ "syn 2.0.103", ] +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.15" @@ -4061,9 +4182,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", @@ -4244,6 +4365,7 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" dependencies = [ + "getrandom 0.3.3", "js-sys", "wasm-bindgen", ] @@ -4499,7 +4621,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -4508,7 +4630,16 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", ] [[package]] @@ -4517,14 +4648,30 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -4533,48 +4680,96 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" version = "0.7.11" @@ -4607,18 +4802,18 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 578ae8fc3..c5b5e9aa6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ brk_fetcher = { version = "0.0.66", path = "crates/brk_fetcher" } brk_indexer = { version = "0.0.66", path = "crates/brk_indexer" } brk_logger = { version = "0.0.66", path = "crates/brk_logger" } brk_parser = { version = "0.0.66", path = "crates/brk_parser" } -brk_query = { version = "0.0.66", path = "crates/brk_query" } +brk_interface = { version = "0.0.66", path = "crates/brk_interface" } brk_server = { version = "0.0.66", path = "crates/brk_server" } brk_state = { version = "0.0.66", path = "crates/brk_state" } brk_store = { version = "0.0.66", path = "crates/brk_store" } @@ -46,14 +46,18 @@ jiff = "0.2.15" log = { version = "0.4.27" } minreq = { version = "2.13.4", features = ["https", "serde_json"] } rayon = "1.10.0" +rmcp = { path = "../rust-sdk/crates/rmcp", features = ["transport-streamable-http-server", "transport-worker"] } +schemars = "0.9.0" +# rmcp = { git = "https://github.com/modelcontextprotocol/rust-sdk", branch = "main" , features = ["transport-streamable-http-server", "transport-worker"] } +# schemars = "0.8.0" serde = { version = "1.0.219" } serde_bytes = "0.11.17" serde_derive = "1.0.219" serde_json = { version = "1.0.140", features = ["float_roundtrip"] } tabled = "0.20.0" tokio = { version = "1.45.1", features = ["rt-multi-thread"] } -zerocopy = { version = "0.8.25" } -zerocopy-derive = "0.8.25" +zerocopy = { version = "0.8.26" } +zerocopy-derive = "0.8.26" [workspace.metadata.release] shared-version = true diff --git a/README.md b/README.md index 8e9b234b5..70eca211a 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ The toolkit can be used in various ways to accommodate as many needs as possible It has a wide range of functionalities including charts, tables and simulations which you can visit for free and without the need for an account. \ Also available at: [kibo.money](https://kibo.money) // [satonomics.xyz](https://satonomics.xyz) - **[API](https://github.com/bitcoinresearchkit/brk/tree/main/crates/brk_server#endpoints)** \ - Researchers and developers are free to use BRK's public API with  dataset variants at your disposal. \ + Researchers and developers are free to use BRK's public API with  dataset variants at their disposal. \ Just like the website, it's entirely free, with no authentication or rate-limiting. - **[CLI](https://crates.io/crates/brk_cli)** \ Node runners are strongly encouraged to try out and self-host their own instance using BRK's command line interface. \ @@ -58,7 +58,7 @@ In contrast, existing alternatives tend to be either [very costly](https://studi ## Crates - [`brk`](https://crates.io/crates/brk): Wrapper around all other `brk-*` crates -- [`brk_cli`](https://crates.io/crates/brk_cli): A standalone command line interface to interact with the Bitcoin Research Kit +- [`brk_cli`](https://crates.io/crates/brk_cli): A command line interface to run a Bitcoin Research Kit instance - [`brk_computer`](https://crates.io/crates/brk_computer): A Bitcoin dataset computer, built on top of brk_indexer - [`brk_core`](https://crates.io/crates/brk_core): The Core (Structs and Errors) of the Bitcoin Research Kit - [`brk_exit`](https://crates.io/crates/brk_exit): An exit blocker built on top of ctrlc @@ -66,7 +66,7 @@ In contrast, existing alternatives tend to be either [very costly](https://studi - [`brk_indexer`](https://crates.io/crates/brk_indexer): A Bitcoin Core indexer built on top of brk_parser - [`brk_logger`](https://crates.io/crates/brk_logger): A clean logger used in the Bitcoin Research Kit. - [`brk_parser`](https://crates.io/crates/brk_parser): A very fast Bitcoin Core block parser and iterator built on top of bitcoin-rust -- [`brk_query`](https://crates.io/crates/brk_query): A library that finds requested datasets. +- [`brk_interface`](https://crates.io/crates/brk_interface): An interface to BRK's engine - [`brk_server`](https://crates.io/crates/brk_server): A server that serves Bitcoin data and swappable front-ends, built on top of `brk_indexer`, `brk_fetcher` and `brk_computer` - [`brk_state`](https://crates.io/crates/brk_state): Various states used mainly by the computer - [`brk_store`](https://crates.io/crates/brk_store): A thin wrapper around [`fjall`](https://crates.io/crates/fjall) @@ -92,7 +92,7 @@ Pricing: `0.01 BTC / month` *or* `0.1 BTC / year` Deepest gratitude to the [Open Sats](https://opensats.org/) public charity. Their grant — from December 2024 to the present — has been critical in sustaining this project. -Heartfelt thanks go out to every donor on [Nostr](https://primal.net/p/npub1jagmm3x39lmwfnrtvxcs9ac7g300y3dusv9lgzhk2e4x5frpxlrqa73v44) and [Geyser.fund](https://geyser.fund/project/brk) whose support has ensured the availability of the [kibo.money](https://kibo.money) public instance. +Heartfelt thanks go out to every donor on [Nostr](https://primal.net/p/npub1jagmm3x39lmwfnrtvxcs9ac7g300y3dusv9lgzhk2e4x5frpxlrqa73v44) and [Geyser.fund](https://geyser.fund/project/brk) whose support has ensured the availability of the [bitcoinresearchkit.org](https://bitcoinresearchkit.org) public instance. ## Donate diff --git a/crates/brk/Cargo.toml b/crates/brk/Cargo.toml index 5df0c0f99..502130097 100644 --- a/crates/brk/Cargo.toml +++ b/crates/brk/Cargo.toml @@ -18,7 +18,7 @@ full = [ "indexer", "logger", "parser", - "query", + "interface", "server", "state", "store", @@ -32,7 +32,7 @@ fetcher = ["brk_fetcher"] indexer = ["brk_indexer"] logger = ["brk_logger"] parser = ["brk_parser"] -query = ["brk_query"] +interface = ["brk_interface"] server = ["brk_server"] state = ["brk_state"] store = ["brk_store"] @@ -48,7 +48,7 @@ brk_fetcher = { workspace = true, optional = true } brk_indexer = { workspace = true, optional = true } brk_logger = { workspace = true, optional = true } brk_parser = { workspace = true, optional = true } -brk_query = { workspace = true, optional = true } +brk_interface = { workspace = true, optional = true } brk_server = { workspace = true, optional = true } brk_state = { workspace = true, optional = true } brk_store = { workspace = true, optional = true } diff --git a/crates/brk/src/lib.rs b/crates/brk/src/lib.rs index cdf8732eb..1cea16918 100644 --- a/crates/brk/src/lib.rs +++ b/crates/brk/src/lib.rs @@ -35,9 +35,9 @@ pub use brk_logger as logger; #[doc(inline)] pub use brk_parser as parser; -#[cfg(feature = "query")] +#[cfg(feature = "interface")] #[doc(inline)] -pub use brk_query as query; +pub use brk_interface as interface; #[cfg(feature = "server")] #[doc(inline)] diff --git a/crates/brk_cli/Cargo.toml b/crates/brk_cli/Cargo.toml index 7958a20b4..18c6f5dfe 100644 --- a/crates/brk_cli/Cargo.toml +++ b/crates/brk_cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "brk_cli" -description = "A command line interface to interact with the full Bitcoin Research Kit" +description = "A command line interface to run a Bitcoin Research Kit instance" version.workspace = true edition.workspace = true license.workspace = true @@ -16,7 +16,7 @@ brk_fetcher = { workspace = true } brk_indexer = { workspace = true } brk_logger = { workspace = true } brk_parser = { workspace = true } -brk_query = { workspace = true } +brk_interface = { workspace = true } brk_server = { workspace = true } brk_vec = { workspace = true } clap = { workspace = true } diff --git a/crates/brk_cli/README.md b/crates/brk_cli/README.md index b94d6cdc6..22752a617 100644 --- a/crates/brk_cli/README.md +++ b/crates/brk_cli/README.md @@ -1,4 +1,4 @@ -# BRK Cli +# BRK CLI
-A command line interface to interact with the full Bitcoin Research Kit. It's built on top of every other create and gives the possility to use BRK using the terminal instead of Rust. +A command line interface to run a Bitcoin Research Kit instance. -It has 2 commands (other than `help` and `version`) which are `run` and `query`. The former is used to run the processing (indexer + computer) and/or the server. The latter uses `brk_query` as its backend just like to server to be able to get datasets via the terminal instead of the API. Both commands are custumizable by supporting all the parameters of their Rust counterparts ([`run`](https://github.com/bitcoinresearchkit/brk/blob/c9c6b583338203b2b11bdf31e961b1c306f5d82b/crates/brk_cli/src/run.rs#L110-L191), and [`query`](https://github.com/bitcoinresearchkit/brk/blob/main/crates/brk_query/src/params.rs)). +It's very customizable with all parameters from the underlying tools (crates) used inside. + +Run `brk -h` for more information. ## Requirements @@ -55,10 +57,9 @@ To be determined - [Rust](https://www.rust-lang.org/tools/install) - Unix based operating system (Mac OS or Linux) -> [!IMPORTANT] +> [!IMPORTANT] > Ubuntu users need to install `open-ssl` via `sudo apt install libssl-dev pkg-config` - ## Download ### Binaries @@ -85,12 +86,11 @@ cargo run -r ## Usage -Run `brk -h` to view each available command and their respective description. +Run `brk -h` to view each available parameter and their respective description. -`-h` works also for commands, so `brk run -h` will enumerate all the parameters of `brk run`. - -> [!TIP] -> Every parameter set for `brk run` will be saved at `~/.brk/config.toml`, which allows you to simply run `brk run` next time. +> [!TIP] +> Every parameter set will be saved at `~/.brk/config.toml`, which allows you to simply run `brk` next time. +## Tunnel The easiest way to let others access your server is to use `cloudflared` which will also cache requests. For more information see [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) documentation. diff --git a/crates/brk_cli/src/config.rs b/crates/brk_cli/src/config.rs new file mode 100644 index 000000000..762cf9f09 --- /dev/null +++ b/crates/brk_cli/src/config.rs @@ -0,0 +1,362 @@ +use std::{ + fs, + path::{Path, PathBuf}, +}; + +use bitcoincore_rpc::{self, Auth, Client}; +use brk_core::{default_bitcoin_path, default_brk_path, default_on_error, dot_brk_path}; +use brk_fetcher::Fetcher; +use brk_server::Website; +use brk_vec::{Computation, Format}; +use clap::Parser; +use clap_derive::Parser; +use color_eyre::eyre::eyre; +use serde::{Deserialize, Serialize}; + +use crate::services::Services; + +#[derive(Parser, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize)] +pub struct Config { + /// Bitcoin main directory path, defaults: ~/.bitcoin, ~/Library/Application\ Support/Bitcoin, saved + #[serde(default, deserialize_with = "default_on_error")] + #[arg(long, value_name = "PATH")] + bitcoindir: Option
@@ -7,15 +7,15 @@
-
-
+
+
-
-
+
+
-
-
-
+
+
+
diff --git a/crates/brk_interface/examples/main.rs b/crates/brk_interface/examples/main.rs
new file mode 100644
index 000000000..3bf1d70d6
--- /dev/null
+++ b/crates/brk_interface/examples/main.rs
@@ -0,0 +1,33 @@
+use std::path::Path;
+
+use brk_computer::Computer;
+use brk_indexer::Indexer;
+use brk_interface::{Index, Interface, Params, ParamsOpt};
+use brk_vec::{Computation, Format};
+
+pub fn main() -> color_eyre::Result<()> {
+ color_eyre::install()?;
+
+ let outputs_dir = Path::new("../../_outputs");
+
+ let format = Format::Compressed;
+
+ let indexer = Indexer::forced_import(outputs_dir)?;
+
+ let computer = Computer::forced_import(outputs_dir, &indexer, Computation::Lazy, None, format)?;
+
+ let interface = Interface::build(&indexer, &computer);
+
+ dbg!(interface.search_and_format(Params {
+ index: Index::Height,
+ ids: vec!["date"].into(),
+ rest: ParamsOpt::default().set_from(-1),
+ })?);
+ dbg!(interface.search_and_format(Params {
+ index: Index::Height,
+ ids: vec!["date", "timestamp"].into(),
+ rest: ParamsOpt::default().set_from(-10).set_count(5),
+ })?);
+
+ Ok(())
+}
diff --git a/crates/brk_query/src/format.rs b/crates/brk_interface/src/format.rs
similarity index 88%
rename from crates/brk_query/src/format.rs
rename to crates/brk_interface/src/format.rs
index 78279d02d..6f75cb719 100644
--- a/crates/brk_query/src/format.rs
+++ b/crates/brk_interface/src/format.rs
@@ -1,9 +1,9 @@
-use clap_derive::ValueEnum;
use color_eyre::eyre::eyre;
+use rmcp::schemars::JsonSchema;
use serde::Deserialize;
#[allow(clippy::upper_case_acronyms)]
-#[derive(Debug, Clone, Copy, PartialEq, Eq, ValueEnum, Deserialize)]
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, JsonSchema)]
pub enum Format {
#[serde(alias = "json")]
JSON,
@@ -12,7 +12,6 @@ pub enum Format {
#[serde(alias = "tsv")]
TSV,
#[serde(alias = "md", alias = "markdown")]
- #[value(alias("markdown"))]
MD,
}
diff --git a/crates/brk_query/src/index.rs b/crates/brk_interface/src/index.rs
similarity index 58%
rename from crates/brk_query/src/index.rs
rename to crates/brk_interface/src/index.rs
index 5469a86a0..f62a0438d 100644
--- a/crates/brk_query/src/index.rs
+++ b/crates/brk_interface/src/index.rs
@@ -1,8 +1,16 @@
use std::fmt::{self, Debug};
+use brk_core::{
+ DateIndex, DecadeIndex, DifficultyEpoch, EmptyOutputIndex, HalvingEpoch, Height, InputIndex,
+ MonthIndex, OpReturnIndex, OutputIndex, P2AIndex, P2MSIndex, P2PK33Index, P2PK65Index,
+ P2PKHIndex, P2SHIndex, P2TRIndex, P2WPKHIndex, P2WSHIndex, Printable, QuarterIndex, TxIndex,
+ UnknownOutputIndex, WeekIndex, YearIndex,
+};
use color_eyre::eyre::eyre;
+use schemars::JsonSchema;
+use serde::{Deserialize, de::Error};
-#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
+#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, JsonSchema)]
pub enum Index {
DateIndex,
DecadeIndex,
@@ -60,53 +68,51 @@ impl Index {
]
}
- pub fn possible_values(&self) -> &[&str] {
- // Always have the "correct" id at the end
+ pub fn possible_values(&self) -> &'static [&'static str] {
match self {
- Self::DateIndex => &["d", "date", "dateindex"],
- Self::DecadeIndex => &["decade", "decadeindex"],
- Self::DifficultyEpoch => &["difficulty", "difficultyepoch"],
- Self::EmptyOutputIndex => &["empty", "emptyoutputindex"],
- Self::HalvingEpoch => &["halving", "halvingepoch"],
- Self::Height => &["h", "height"],
- Self::InputIndex => &["txin", "inputindex"],
- Self::MonthIndex => &["m", "month", "monthindex"],
- Self::OpReturnIndex => &["opreturn", "opreturnindex"],
- Self::OutputIndex => &["txout", "outputindex"],
- Self::P2AIndex => &["p2a", "p2aindex"],
- Self::P2MSIndex => &["p2ms", "p2msindex"],
- Self::P2PK33Index => &["p2pk33", "p2pk33index"],
- Self::P2PK65Index => &["p2pk65", "p2pk65index"],
- Self::P2PKHIndex => &["p2pkh", "p2pkhindex"],
- Self::P2SHIndex => &["p2sh", "p2shindex"],
- Self::P2TRIndex => &["p2tr", "p2trindex"],
- Self::P2WPKHIndex => &["p2wpkh", "p2wpkhindex"],
- Self::P2WSHIndex => &["p2wsh", "p2wshindex"],
- Self::QuarterIndex => &["q", "quarter", "quarterindex"],
- Self::TxIndex => &["tx", "txindex"],
- Self::UnknownOutputIndex => &["unknown", "unknownoutputindex"],
- Self::WeekIndex => &["w", "week", "weekindex"],
- Self::YearIndex => &["y", "year", "yearindex"],
+ Self::DateIndex => DateIndex::to_possible_strings(),
+ Self::DecadeIndex => DecadeIndex::to_possible_strings(),
+ Self::DifficultyEpoch => DifficultyEpoch::to_possible_strings(),
+ Self::EmptyOutputIndex => EmptyOutputIndex::to_possible_strings(),
+ Self::HalvingEpoch => HalvingEpoch::to_possible_strings(),
+ Self::Height => Height::to_possible_strings(),
+ Self::InputIndex => InputIndex::to_possible_strings(),
+ Self::MonthIndex => MonthIndex::to_possible_strings(),
+ Self::OpReturnIndex => OpReturnIndex::to_possible_strings(),
+ Self::OutputIndex => OutputIndex::to_possible_strings(),
+ Self::P2AIndex => P2AIndex::to_possible_strings(),
+ Self::P2MSIndex => P2MSIndex::to_possible_strings(),
+ Self::P2PK33Index => P2PK33Index::to_possible_strings(),
+ Self::P2PK65Index => P2PK65Index::to_possible_strings(),
+ Self::P2PKHIndex => P2PKHIndex::to_possible_strings(),
+ Self::P2SHIndex => P2SHIndex::to_possible_strings(),
+ Self::P2TRIndex => P2TRIndex::to_possible_strings(),
+ Self::P2WPKHIndex => P2WPKHIndex::to_possible_strings(),
+ Self::P2WSHIndex => P2WSHIndex::to_possible_strings(),
+ Self::QuarterIndex => QuarterIndex::to_possible_strings(),
+ Self::TxIndex => TxIndex::to_possible_strings(),
+ Self::UnknownOutputIndex => UnknownOutputIndex::to_possible_strings(),
+ Self::WeekIndex => WeekIndex::to_possible_strings(),
+ Self::YearIndex => YearIndex::to_possible_strings(),
}
}
- pub fn all_possible_values() -> Vec