From 51b51f0aa69202b6005e34d1ef56d74453b421ef Mon Sep 17 00:00:00 2001 From: tomasarrachea Date: Thu, 21 May 2026 19:06:10 -0300 Subject: [PATCH 1/7] feat: update miden-client --- Cargo.lock | 435 +++++++++++++++++++++++---------------- Cargo.toml | 7 +- bin/faucet/src/main.rs | 32 ++- crates/faucet/src/lib.rs | 77 ++++--- 4 files changed, 336 insertions(+), 215 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c98337e..b2d6429 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -449,6 +449,31 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bon" +version = "3.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f47dbe92550676ee653353c310dfb9cf6ba17ee70396e1f7cf0a2020ad49b2fe" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "3.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "519bd3116aeeb42d5372c29d982d16d0170d3d4a5ed85fc7dd91642ffff3c67c" +dependencies = [ + "darling", + "ident_case", + "prettyplease", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.117", +] + [[package]] name = "build-rs" version = "0.3.3" @@ -482,6 +507,15 @@ version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +[[package]] +name = "castaway" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" +dependencies = [ + "rustversion", +] + [[package]] name = "cc" version = "1.2.59" @@ -609,6 +643,15 @@ dependencies = [ "cc", ] +[[package]] +name = "codegen" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "573800db6c3319bc125ddbf9b9cb001ad1602957f53642ba8d09ff3ddd4da7f1" +dependencies = [ + "indexmap", +] + [[package]] name = "colorchoice" version = "1.0.5" @@ -636,6 +679,20 @@ dependencies = [ "unicode-width 0.2.2", ] +[[package]] +name = "compact_str" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" +dependencies = [ + "castaway", + "cfg-if", + "itoa", + "rustversion", + "ryu", + "static_assertions", +] + [[package]] name = "compression-codecs" version = "0.4.37" @@ -863,6 +920,40 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.117", +] + [[package]] name = "dashmap" version = "6.1.0" @@ -1774,7 +1865,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.3", + "socket2", "tokio", "tower-service", "tracing", @@ -1966,6 +2057,12 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "1.1.0" @@ -2392,8 +2489,8 @@ dependencies = [ "miden-core", "miden-core-lib", "miden-crypto", - "miden-protocol", - "miden-standards", + "miden-protocol 0.14.3", + "miden-standards 0.14.3", "miden-utils-sync", "primitive-types", "regex", @@ -2462,15 +2559,23 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "334340b0b2e6993f6b71af359a77cf8730c4a19ac366f77aee734a5faa993897" dependencies = [ - "miden-protocol", + "miden-protocol 0.14.3", + "thiserror 2.0.18", +] + +[[package]] +name = "miden-block-prover" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +dependencies = [ + "miden-protocol 0.15.0", "thiserror 2.0.18", ] [[package]] name = "miden-client" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15007f2cf4e80316a8141665b43f454e77ce0dfd2ac0307ce6cdf7a5d552d58b" +version = "0.15.0" +source = "git+https://github.com/0xMiden/miden-client?rev=a73c5bb61583cf480b5dcd28fc494ac63032d2c5#a73c5bb61583cf480b5dcd28fc494ac63032d2c5" dependencies = [ "anyhow", "async-trait", @@ -2480,13 +2585,15 @@ dependencies = [ "gloo-timers", "hex", "miden-debug", - "miden-node-proto-build", + "miden-node-proto-build 0.15.0", "miden-note-transport-proto-build", - "miden-protocol", + "miden-processor", + "miden-protocol 0.15.0", "miden-remote-prover-client", - "miden-standards", - "miden-testing", - "miden-tx", + "miden-standards 0.15.0", + "miden-testing 0.15.0", + "miden-tx 0.15.0", + "miden-tx-batch-prover 0.15.0", "miette", "prost", "prost-types", @@ -2503,14 +2610,12 @@ dependencies = [ "tonic-web-wasm-client", "tracing", "uuid", - "web-sys", ] [[package]] name = "miden-client-cli" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576f6921b75d49223b9e759d1115402f0fc8106f1be19b9c17c5b307811ee17" +version = "0.15.0" +source = "git+https://github.com/0xMiden/miden-client?rev=a73c5bb61583cf480b5dcd28fc494ac63032d2c5#a73c5bb61583cf480b5dcd28fc494ac63032d2c5" dependencies = [ "clap", "comfy-table", @@ -2531,9 +2636,8 @@ dependencies = [ [[package]] name = "miden-client-sqlite-store" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a6d9c9bf443b9df440c010eeab6916ab6bc529faed5eb19f84ab7bc21aad59" +version = "0.15.0" +source = "git+https://github.com/0xMiden/miden-client?rev=a73c5bb61583cf480b5dcd28fc494ac63032d2c5#a73c5bb61583cf480b5dcd28fc494ac63032d2c5" dependencies = [ "anyhow", "async-trait", @@ -2541,7 +2645,7 @@ dependencies = [ "deadpool", "deadpool-sync", "miden-client", - "miden-protocol", + "miden-protocol 0.15.0", "rusqlite", "rusqlite_migration", "thiserror 2.0.18", @@ -2550,9 +2654,9 @@ dependencies = [ [[package]] name = "miden-core" -version = "0.22.1" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdec54a321cdf3d23e9ef615e91cb858038c6b4d4202507bdec048fc6d7763e4" +checksum = "778063e712a9000e177ac3f3ac5f9cd7cfc15f4670124127c182495ef8667dd3" dependencies = [ "derive_more", "itertools", @@ -2642,53 +2746,42 @@ dependencies = [ [[package]] name = "miden-debug" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df04a684eeb96efabc63e2800a01945f7f6e19ffd00d3b49064e85f7e1fac444" +checksum = "d80d7ddedcde678eaaf8ef1f77b2a4e019cb991e7906ddbc618497c2b741eb3e" dependencies = [ "clap", + "compact_str", "futures", - "glob", "log", "miden-assembly", "miden-assembly-syntax", "miden-core", - "miden-crypto", - "miden-debug-dap", "miden-debug-engine", "miden-debug-types", "miden-mast-package", "miden-processor", - "miden-protocol", - "miden-thiserror", - "miden-tx", - "num-traits", - "rustc-demangle", - "serde", - "serde_json", - "smallvec", - "socket2 0.5.10", + "thiserror 2.0.18", "tokio", "tokio-util", - "toml 0.8.23", ] [[package]] name = "miden-debug-dap" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38cd41176322df12836bb4deecd4b619f7cf8239ed7b2c4ac1da7b2830e5199c" +checksum = "c8279a25a0a199f3ddbc8054193f3a80e193b94d1c308704062602adafe76de7" dependencies = [ "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] name = "miden-debug-engine" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e03dd00bd4dab99dbfdec9fd07009811a7e3b3a988e74a28c6ccb735ac34e138" +checksum = "a10c9e9e718b92d3fb1f3dfc28059d733778f58e09080c3ed721bf94058420f4" dependencies = [ "clap", "glob", @@ -2700,22 +2793,21 @@ dependencies = [ "miden-debug-types", "miden-mast-package", "miden-processor", - "miden-thiserror", - "miden-tx", "num-traits", "rustc-demangle", "serde", "serde_json", "smallvec", - "socket2 0.5.10", - "toml 0.8.23", + "socket2", + "thiserror 2.0.18", + "toml 1.1.2+spec-1.1.0", ] [[package]] name = "miden-debug-types" -version = "0.22.1" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6e50274d11c80b901cf6c90362de8c98c8c8ad6030c80624d683b63d899a0fb" +checksum = "7be29c7988811012c28526550af39f98f5b5a26aca5c8629906fef4fc49c8180" dependencies = [ "memchr", "miden-crypto", @@ -2747,7 +2839,7 @@ dependencies = [ "miden-faucet-lib", "miden-node-proto", "miden-pow-rate-limiter", - "miden-testing", + "miden-testing 0.14.3", "opentelemetry", "opentelemetry-otlp", "opentelemetry_sdk", @@ -2907,10 +2999,10 @@ dependencies = [ "hex", "http 1.4.0", "miden-node-grpc-error-macro", - "miden-node-proto-build", + "miden-node-proto-build 0.14.7", "miden-node-utils", - "miden-protocol", - "miden-standards", + "miden-protocol 0.14.3", + "miden-standards 0.14.3", "miette", "prost", "thiserror 2.0.18", @@ -2933,6 +3025,19 @@ dependencies = [ "tonic-prost-build", ] +[[package]] +name = "miden-node-proto-build" +version = "0.15.0" +source = "git+https://github.com/0xMiden/node.git?branch=next#143cf7fe8511b55f28b32038b72dbf903f975663" +dependencies = [ + "build-rs", + "codegen", + "fs-err", + "miette", + "protox", + "tonic-prost-build", +] + [[package]] name = "miden-node-utils" version = "0.14.7" @@ -2949,7 +3054,7 @@ dependencies = [ "humantime", "itertools", "lru", - "miden-protocol", + "miden-protocol 0.14.3", "opentelemetry", "opentelemetry-otlp", "opentelemetry_sdk", @@ -3068,6 +3173,35 @@ dependencies = [ "walkdir", ] +[[package]] +name = "miden-protocol" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +dependencies = [ + "bech32", + "fs-err", + "getrandom 0.3.4", + "miden-assembly", + "miden-assembly-syntax", + "miden-core", + "miden-core-lib", + "miden-crypto", + "miden-crypto-derive", + "miden-mast-package", + "miden-processor", + "miden-utils-sync", + "miden-verifier", + "rand 0.9.2", + "rand_chacha", + "rand_xoshiro", + "regex", + "semver 1.0.28", + "serde", + "thiserror 2.0.18", + "toml 1.1.2+spec-1.1.0", + "walkdir", +] + [[package]] name = "miden-protocol-macros" version = "0.14.3" @@ -3099,16 +3233,15 @@ dependencies = [ [[package]] name = "miden-remote-prover-client" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b640de68276a5680f8c6b1a5e0b920df905a8d6b25759adbe3dd3bf4cd56a1bc" +version = "0.15.0" +source = "git+https://github.com/0xMiden/node.git?branch=next#143cf7fe8511b55f28b32038b72dbf903f975663" dependencies = [ "build-rs", "fs-err", "getrandom 0.4.2", - "miden-node-proto-build", - "miden-protocol", - "miden-tx", + "miden-node-proto-build 0.15.0", + "miden-protocol 0.15.0", + "miden-tx 0.15.0", "miette", "prost", "thiserror 2.0.18", @@ -3140,7 +3273,24 @@ dependencies = [ "miden-core", "miden-core-lib", "miden-processor", - "miden-protocol", + "miden-protocol 0.14.3", + "rand 0.9.2", + "regex", + "thiserror 2.0.18", + "walkdir", +] + +[[package]] +name = "miden-standards" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +dependencies = [ + "bon", + "fs-err", + "miden-assembly", + "miden-core-lib", + "miden-processor", + "miden-protocol 0.15.0", "rand 0.9.2", "regex", "thiserror 2.0.18", @@ -3157,49 +3307,62 @@ dependencies = [ "itertools", "miden-agglayer", "miden-assembly", - "miden-block-prover", + "miden-block-prover 0.14.3", "miden-core-lib", "miden-crypto", "miden-processor", - "miden-protocol", - "miden-standards", - "miden-tx", - "miden-tx-batch-prover", + "miden-protocol 0.14.3", + "miden-standards 0.14.3", + "miden-tx 0.14.3", + "miden-tx-batch-prover 0.14.3", "rand 0.9.2", "rand_chacha", "thiserror 2.0.18", ] [[package]] -name = "miden-thiserror" -version = "1.0.59" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183ff8de338956ecfde3a38573241eb7a6f3d44d73866c210e5629c07fa00253" +name = "miden-testing" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" dependencies = [ - "miden-thiserror-impl", + "anyhow", + "itertools", + "miden-block-prover 0.15.0", + "miden-core-lib", + "miden-crypto", + "miden-processor", + "miden-protocol 0.15.0", + "miden-standards 0.15.0", + "miden-tx 0.15.0", + "miden-tx-batch-prover 0.15.0", + "rand 0.9.2", + "rand_chacha", + "thiserror 2.0.18", ] [[package]] -name = "miden-thiserror-impl" -version = "1.0.59" +name = "miden-tx" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee4176a0f2e7d29d2a8ee7e60b6deb14ce67a20e94c3e2c7275cdb8804e1862" +checksum = "e894e952e2819545e9351f7427779f82538e51553dfaca3294301ff308086497" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", + "miden-processor", + "miden-protocol 0.14.3", + "miden-prover", + "miden-standards 0.14.3", + "miden-verifier", + "thiserror 2.0.18", ] [[package]] name = "miden-tx" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e894e952e2819545e9351f7427779f82538e51553dfaca3294301ff308086497" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" dependencies = [ "miden-processor", - "miden-protocol", + "miden-protocol 0.15.0", "miden-prover", - "miden-standards", + "miden-standards 0.15.0", "miden-verifier", "thiserror 2.0.18", ] @@ -3210,8 +3373,17 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1e7aac0d511aa412138ea7dfa4a6d8c76340c6028fa91313727b7ad3614711b" dependencies = [ - "miden-protocol", - "miden-tx", + "miden-protocol 0.14.3", + "miden-tx 0.14.3", +] + +[[package]] +name = "miden-tx-batch-prover" +version = "0.15.0" +source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +dependencies = [ + "miden-protocol 0.15.0", + "miden-tx 0.15.0", ] [[package]] @@ -4406,7 +4578,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.6.3", + "socket2", "thiserror 2.0.18", "tokio", "tracing", @@ -4444,9 +4616,9 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.3", + "socket2", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -5164,16 +5336,6 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.3" @@ -5539,7 +5701,7 @@ dependencies = [ "mio", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.3", + "socket2", "tokio-macros", "windows-sys 0.61.2", ] @@ -5606,7 +5768,6 @@ version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ - "indexmap", "serde", "serde_spanned 0.6.9", "toml_datetime 0.6.11", @@ -5725,7 +5886,7 @@ dependencies = [ "percent-encoding", "pin-project", "rustls-native-certs", - "socket2 0.6.3", + "socket2", "sync_wrapper", "tokio", "tokio-rustls", @@ -6498,15 +6659,6 @@ dependencies = [ "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.5", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -6540,30 +6692,13 @@ dependencies = [ "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_gnullvm", "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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -6576,12 +6711,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -6594,12 +6723,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -6612,24 +6735,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - [[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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -6642,12 +6753,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -6660,12 +6765,6 @@ 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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -6678,12 +6777,6 @@ 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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -6696,12 +6789,6 @@ 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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" version = "0.7.15" diff --git a/Cargo.toml b/Cargo.toml index dc7909d..c8d0f1d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,9 +23,9 @@ miden-faucet-lib = { path = "crates/faucet", version = "0.15.0" } miden-pow-rate-limiter = { path = "crates/pow", version = "0.15.0" } # Miden dependencies. -miden-client = { version = "0.14" } -miden-client-cli = { version = "0.14" } -miden-client-sqlite-store = { version = "0.14" } +miden-client = { git = "https://github.com/0xMiden/miden-client", rev = "a73c5bb61583cf480b5dcd28fc494ac63032d2c5" } +miden-client-cli = { git = "https://github.com/0xMiden/miden-client", rev = "a73c5bb61583cf480b5dcd28fc494ac63032d2c5" } +miden-client-sqlite-store = { git = "https://github.com/0xMiden/miden-client", rev = "a73c5bb61583cf480b5dcd28fc494ac63032d2c5" } # External dependencies anyhow = { version = "1.0" } @@ -65,3 +65,4 @@ module_name_repetitions = "allow" # Many triggers, and is a stylistic choice must_use_candidate = "allow" # This marks many fn's which isn't helpful. should_panic_without_expect = "allow" # We don't care about the specific panic message. # End of pedantic lints. + diff --git a/bin/faucet/src/main.rs b/bin/faucet/src/main.rs index 14f1497..3ff4cc5 100644 --- a/bin/faucet/src/main.rs +++ b/bin/faucet/src/main.rs @@ -13,7 +13,15 @@ use std::time::Duration; use anyhow::Context; use clap::{Parser, Subcommand}; -use miden_client::account::component::{AuthControlled, BasicFungibleFaucet}; +use miden_client::account::component::{ + BasicFungibleFaucet, + BurnPolicyConfig, + FungibleTokenMetadata, + MintPolicyConfig, + PolicyAuthority, + TokenName, + TokenPolicyManager, +}; use miden_client::account::{ Account, AccountBuilder, @@ -436,9 +444,9 @@ async fn run_faucet_command(cli: Cli) -> anyhow::Result<()> { baseline: pow_baseline, }; let faucet_account = faucet.faucet_account().await?; - let faucet_component = BasicFungibleFaucet::try_from(&faucet_account)?; - let max_supply = AssetAmount::new(faucet_component.max_supply().as_canonical_u64())?; - let decimals = faucet_component.decimals(); + let token_metadata = FungibleTokenMetadata::try_from(faucet_account.storage())?; + let max_supply = AssetAmount::new(token_metadata.max_supply().as_canonical_u64())?; + let decimals = token_metadata.decimals(); let note_transport_client = note_transport_url.as_ref().map(|url| { Arc::new(GrpcNoteTransportClient::new( @@ -576,9 +584,10 @@ fn create_faucet_account( }; let symbol = TokenSymbol::try_from(token_symbol).context("failed to parse token symbol")?; - let max_supply = Felt::try_from(max_supply) - .map_err(anyhow::Error::msg) - .context("max supply value is greater than or equal to the field modulus")?; + let name = TokenName::new(&symbol.to_string()).context("failed to derive token name")?; + let token_metadata = FungibleTokenMetadata::builder(name, symbol, decimals, max_supply) + .build() + .context("failed to build token metadata")?; let auth_component = AuthSingleSig::new( secret.public_key().to_commitment().into(), AuthSchemeId::Falcon512Poseidon2, @@ -587,8 +596,13 @@ fn create_faucet_account( let account = AccountBuilder::new(rng.random()) .account_type(AccountType::FungibleFaucet) .storage_mode(AccountStorageMode::Public) - .with_component(BasicFungibleFaucet::new(symbol, decimals, max_supply)?) - .with_component(AuthControlled::allow_all()) + .with_component(token_metadata) + .with_component(BasicFungibleFaucet) + .with_components(TokenPolicyManager::new( + PolicyAuthority::AuthControlled, + MintPolicyConfig::AllowAll, + BurnPolicyConfig::AllowAll, + )) .with_auth_component(auth_component) .build() .context("failed to create basic fungible faucet account")?; diff --git a/crates/faucet/src/lib.rs b/crates/faucet/src/lib.rs index b967783..d177196 100644 --- a/crates/faucet/src/lib.rs +++ b/crates/faucet/src/lib.rs @@ -4,7 +4,7 @@ use std::sync::Arc; use std::time::Duration; use anyhow::Context; -use miden_client::account::component::BasicFungibleFaucet; +use miden_client::account::component::FungibleTokenMetadata; use miden_client::account::{Account, AccountId, Address, NetworkId}; use miden_client::asset::FungibleAsset; use miden_client::auth::AuthSecretKey; @@ -13,8 +13,8 @@ use miden_client::crypto::{RandomCoin, Rpo256}; use miden_client::keystore::{FilesystemKeyStore, Keystore}; use miden_client::note::{Note, NoteAttachment, NoteError, NoteId, P2idNote}; use miden_client::rpc::{Endpoint, GrpcClient, GrpcError, RpcError}; -use miden_client::store::{NoteFilter, TransactionFilter}; -use miden_client::sync::{StateSync, StateSyncInput, SyncSummary}; +use miden_client::store::{NoteFilter, Store, TransactionFilter}; +use miden_client::sync::{AccountSyncHint, StateSync, StateSyncInput, SyncSummary}; use miden_client::transaction::{ LocalTransactionProver, TransactionId, @@ -74,6 +74,7 @@ impl FaucetId { pub struct Faucet { id: FaucetId, client: Client, + store: Arc, state_sync_component: StateSync, tx_prover: Arc, issuance: watch::Sender, @@ -125,13 +126,10 @@ impl Faucet { let note_screener = NoteScreener::new(sqlite_store.clone()); let grpc_client = Arc::new(GrpcClient::new(&config.node_endpoint, config.timeout.as_millis() as u64)); - let state_sync_component = StateSync::new( - grpc_client.clone(), - Some(sqlite_store.clone()), - Arc::new(note_screener), - None, - ); - Self::sync_state(account.id(), &mut client, &state_sync_component).await?; + let state_sync_component = + StateSync::new(grpc_client.clone(), Arc::new(note_screener), None); + Self::sync_state(account.id(), &mut client, sqlite_store.as_ref(), &state_sync_component) + .await?; let add_result = client.add_account(&account, false).await; match add_result { @@ -181,13 +179,13 @@ impl Faucet { let account = client.get_account(account_id).await?.context("no account found")?; - let faucet = BasicFungibleFaucet::try_from(account.clone())?; + let token_metadata = FungibleTokenMetadata::try_from(account.storage())?; let tx_prover: Arc = match config.remote_tx_prover_url.clone() { Some(url) => Arc::new(RemoteTransactionProver::new(url)), None => Arc::new(LocalTransactionProver::default()), }; let id = FaucetId::new(account.id(), config.network_id.clone()); - let max_supply = AssetAmount::new(faucet.max_supply().as_canonical_u64())?; + let max_supply = AssetAmount::new(token_metadata.max_supply().as_canonical_u64())?; let issuance_value = Self::read_issuance_from_store(&client, account.id()).await?; let (issuance, _) = watch::channel(issuance_value); @@ -196,12 +194,12 @@ impl Faucet { let note_screener = NoteScreener::new(sqlite_store.clone()); let grpc_client = Arc::new(GrpcClient::new(&config.node_endpoint, config.timeout.as_millis() as u64)); - let state_sync_component = - StateSync::new(grpc_client, Some(sqlite_store.clone()), Arc::new(note_screener), None); + let state_sync_component = StateSync::new(grpc_client, Arc::new(note_screener), None); Ok(Self { id, client, + store: sqlite_store, state_sync_component, tx_prover, issuance, @@ -215,16 +213,21 @@ impl Faucet { async fn sync_state( account_id: AccountId, client: &mut Client, + store: &dyn Store, state_sync: &StateSync, ) -> anyhow::Result { - // Get current state of the client - let accounts = client - .account_reader(account_id) - .header() - .await - .ok() - .map(|(header, _)| vec![header]) - .unwrap_or_default(); + // Provide the local storage layout so `StateSync` can fetch all map slots in a single + // `get_account_proof` call instead of issuing an extra RPC to discover the layout. + let accounts = match ( + client.account_reader(account_id).header().await.ok(), + store.get_account_storage_header(account_id).await.ok(), + ) { + (Some((header, _)), Some(storage_header)) => vec![AccountSyncHint { + header, + storage_header, + }], + _ => Vec::new(), + }; let output_notes = client.get_output_notes(NoteFilter::Expected).await?; let uncommitted_transactions = client.get_transactions(TransactionFilter::Uncommitted).await?; @@ -558,10 +561,12 @@ impl Faucet { client: &Client, account_id: AccountId, ) -> anyhow::Result { + // TODO: we should be able to only load the storage slot with the token metadata. Anyway the + // faucet storage is light since stores only that. let account = client.get_account(account_id).await?.context("account not found in store")?; - let faucet = BasicFungibleFaucet::try_from(account)?; - Ok(AssetAmount::new(faucet.token_supply().as_canonical_u64())?) + let token_metadata = FungibleTokenMetadata::try_from(account.storage())?; + Ok(AssetAmount::new(token_metadata.token_supply().as_canonical_u64())?) } } @@ -655,7 +660,14 @@ fn build_p2id_notes( mod tests { use std::env::temp_dir; - use miden_client::account::component::AuthControlled; + use miden_client::account::component::{ + BasicFungibleFaucet, + BurnPolicyConfig, + MintPolicyConfig, + PolicyAuthority, + TokenName, + TokenPolicyManager, + }; use miden_client::account::{AccountBuilder, AccountStorageMode, AccountType}; use miden_client::asset::TokenSymbol; use miden_client::auth::{AuthSchemeId, AuthSecretKey, AuthSingleSig}; @@ -714,12 +726,20 @@ mod tests { async fn build_faucet(store: Arc) -> Faucet { let secret = SecretKey::new(); let symbol = TokenSymbol::new("TEST").unwrap(); - let max_supply = Felt::try_from(1_000_000_000_000_u64).unwrap(); + let name = TokenName::new(&symbol.to_string()).unwrap(); + let token_metadata = FungibleTokenMetadata::builder(name, symbol, 6, 1_000_000_000_000_u64) + .build() + .unwrap(); let account = AccountBuilder::new(rand::random()) .account_type(AccountType::FungibleFaucet) .storage_mode(AccountStorageMode::Public) - .with_component(BasicFungibleFaucet::new(symbol, 6, max_supply).unwrap()) - .with_component(AuthControlled::allow_all()) + .with_component(token_metadata) + .with_component(BasicFungibleFaucet) + .with_components(TokenPolicyManager::new( + PolicyAuthority::AuthControlled, + MintPolicyConfig::AllowAll, + BurnPolicyConfig::AllowAll, + )) .with_auth_component(AuthSingleSig::new( secret.public_key().to_commitment().into(), AuthSchemeId::Falcon512Poseidon2, @@ -750,7 +770,6 @@ mod tests { client, state_sync_component: StateSync::new( mock_rpc, - Some(store.clone()), Arc::new(NoteScreener::new(store.clone())), None, ), From cf67b0ee43c454e709318403167b07d4adff4ba4 Mon Sep 17 00:00:00 2001 From: tomasarrachea Date: Thu, 21 May 2026 19:27:32 -0300 Subject: [PATCH 2/7] chore: clippy --- bin/faucet/src/main.rs | 2 +- crates/faucet/src/lib.rs | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/bin/faucet/src/main.rs b/bin/faucet/src/main.rs index 3ff4cc5..f7c75ba 100644 --- a/bin/faucet/src/main.rs +++ b/bin/faucet/src/main.rs @@ -917,7 +917,7 @@ mod tests { async fn run_faucet_server(stub_node_url: Url) -> String { let config = ClientConfig { node_url: Some(stub_node_url.clone()), - timeout: Duration::from_millis(5000), + timeout: Duration::from_secs(5), network: FaucetNetwork::Localhost, store_path: temp_dir().join(format!("{}.sqlite3", Uuid::new_v4())), remote_tx_prover_url: None, diff --git a/crates/faucet/src/lib.rs b/crates/faucet/src/lib.rs index d177196..74f7db5 100644 --- a/crates/faucet/src/lib.rs +++ b/crates/faucet/src/lib.rs @@ -222,10 +222,9 @@ impl Faucet { client.account_reader(account_id).header().await.ok(), store.get_account_storage_header(account_id).await.ok(), ) { - (Some((header, _)), Some(storage_header)) => vec![AccountSyncHint { - header, - storage_header, - }], + (Some((header, _)), Some(storage_header)) => { + vec![AccountSyncHint { header, storage_header }] + }, _ => Vec::new(), }; let output_notes = client.get_output_notes(NoteFilter::Expected).await?; @@ -307,7 +306,13 @@ impl Faucet { // We sync before creating the transaction to ensure the state is up to date. If the // previous transaction somehow failed to be included in the block, our state would // be out of sync. - Self::sync_state(self.id.account_id, &mut self.client, &self.state_sync_component).await?; + Self::sync_state( + self.id.account_id, + &mut self.client, + self.store.as_ref(), + &self.state_sync_component, + ) + .await?; let span = tracing::Span::current(); @@ -768,9 +773,10 @@ mod tests { Faucet { id: FaucetId::new(account.id(), NetworkId::Testnet), client, + store: store.clone(), state_sync_component: StateSync::new( mock_rpc, - Arc::new(NoteScreener::new(store.clone())), + Arc::new(NoteScreener::new(store)), None, ), tx_prover: Arc::new(LocalTransactionProver::default()), From aa4fd754785a0a894fca08e43ea62c0c11d8c853 Mon Sep 17 00:00:00 2001 From: tomasarrachea Date: Fri, 22 May 2026 01:30:45 -0300 Subject: [PATCH 3/7] fix: tests --- Cargo.lock | 423 ++----------------------- Cargo.toml | 1 - bin/faucet/Cargo.toml | 4 +- bin/faucet/src/main.rs | 5 +- bin/faucet/src/testing/stub_rpc_api.rs | 13 +- crates/faucet/src/lib.rs | 17 +- 6 files changed, 53 insertions(+), 410 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b2d6429..14ad21c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,81 +42,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "alloy-primitives" -version = "1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" -dependencies = [ - "bytes", - "cfg-if", - "const-hex", - "derive_more", - "itoa", - "paste", - "ruint", - "rustc-hash", - "sha3", -] - -[[package]] -name = "alloy-sol-macro" -version = "1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab81bab693da9bb79f7a95b64b394718259fdd7e41dceeced4cad57cb71c4f6a" -dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489f1620bb7e2483fb5819ed01ab6edc1d2f93939dce35a5695085a1afd1d699" -dependencies = [ - "alloy-sol-macro-input", - "const-hex", - "heck", - "indexmap", - "proc-macro-error2", - "proc-macro2", - "quote", - "sha3", - "syn 2.0.117", - "syn-solidity", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56cef806ad22d4392c5fc83cf8f2089f988eb99c7067b4e0c6f1971fc1cca318" -dependencies = [ - "const-hex", - "dunce", - "heck", - "macro-string", - "proc-macro2", - "quote", - "syn 2.0.117", - "syn-solidity", -] - -[[package]] -name = "alloy-sol-types" -version = "1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64612d29379782a5dde6f4b6570d9c756d734d760c0c94c254d361e678a6591f" -dependencies = [ - "alloy-primitives", - "alloy-sol-macro", -] - [[package]] name = "android_system_properties" version = "0.1.5" @@ -710,18 +635,6 @@ version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" -[[package]] -name = "const-hex" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531185e432bb31db1ecda541e9e7ab21468d4d844ad7505e0546a49b4945d49b" -dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", - "proptest", - "serde_core", -] - [[package]] name = "const-oid" version = "0.9.6" @@ -734,15 +647,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" -[[package]] -name = "convert_case" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "cookie" version = "0.16.2" @@ -1032,12 +936,10 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ - "convert_case", "proc-macro2", "quote", "rustc_version 0.4.1", "syn 2.0.117", - "unicode-xid", ] [[package]] @@ -1305,15 +1207,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "static_assertions", -] - [[package]] name = "fixedbitset" version = "0.5.7" @@ -2445,17 +2338,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" -[[package]] -name = "macro-string" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "matchers" version = "0.2.0" @@ -2477,27 +2359,6 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" -[[package]] -name = "miden-agglayer" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73a12734b3bf5e8c88580c4c173368865d1efd6f51f48365df76b59f12d8dc53" -dependencies = [ - "alloy-sol-types", - "fs-err", - "miden-assembly", - "miden-core", - "miden-core-lib", - "miden-crypto", - "miden-protocol 0.14.3", - "miden-standards 0.14.3", - "miden-utils-sync", - "primitive-types", - "regex", - "thiserror 2.0.18", - "walkdir", -] - [[package]] name = "miden-air" version = "0.22.1" @@ -2553,22 +2414,12 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "miden-block-prover" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "334340b0b2e6993f6b71af359a77cf8730c4a19ac366f77aee734a5faa993897" -dependencies = [ - "miden-protocol 0.14.3", - "thiserror 2.0.18", -] - [[package]] name = "miden-block-prover" version = "0.15.0" source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" dependencies = [ - "miden-protocol 0.15.0", + "miden-protocol", "thiserror 2.0.18", ] @@ -2585,15 +2436,15 @@ dependencies = [ "gloo-timers", "hex", "miden-debug", - "miden-node-proto-build 0.15.0", + "miden-node-proto-build", "miden-note-transport-proto-build", "miden-processor", - "miden-protocol 0.15.0", + "miden-protocol", "miden-remote-prover-client", - "miden-standards 0.15.0", - "miden-testing 0.15.0", - "miden-tx 0.15.0", - "miden-tx-batch-prover 0.15.0", + "miden-standards", + "miden-testing", + "miden-tx", + "miden-tx-batch-prover", "miette", "prost", "prost-types", @@ -2645,7 +2496,7 @@ dependencies = [ "deadpool", "deadpool-sync", "miden-client", - "miden-protocol 0.15.0", + "miden-protocol", "rusqlite", "rusqlite_migration", "thiserror 2.0.18", @@ -2839,7 +2690,7 @@ dependencies = [ "miden-faucet-lib", "miden-node-proto", "miden-pow-rate-limiter", - "miden-testing 0.14.3", + "miden-testing", "opentelemetry", "opentelemetry-otlp", "opentelemetry_sdk", @@ -2979,9 +2830,8 @@ dependencies = [ [[package]] name = "miden-node-grpc-error-macro" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15923381dd3ee06db6524ffe8e020b62a732c639e913da464b02c1ce123b500e" +version = "0.15.0" +source = "git+https://github.com/0xMiden/node.git?branch=next#4abe27eea849db79c9b242e4a41d2876c4f28bcc" dependencies = [ "quote", "syn 2.0.117", @@ -2989,22 +2839,23 @@ dependencies = [ [[package]] name = "miden-node-proto" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033c53b7b25b9594c933582ecaadfd54c7ff748454b74c1a445949bdda969404" +version = "0.15.0" +source = "git+https://github.com/0xMiden/node.git?branch=next#4abe27eea849db79c9b242e4a41d2876c4f28bcc" dependencies = [ "anyhow", "build-rs", + "codegen", "fs-err", "hex", "http 1.4.0", "miden-node-grpc-error-macro", - "miden-node-proto-build 0.14.7", + "miden-node-proto-build", "miden-node-utils", - "miden-protocol 0.14.3", - "miden-standards 0.14.3", + "miden-protocol", + "miden-standards", "miette", "prost", + "prost-types", "thiserror 2.0.18", "tonic", "tonic-prost", @@ -3012,19 +2863,6 @@ dependencies = [ "url", ] -[[package]] -name = "miden-node-proto-build" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62689db1e47abeb3118b7c253fa3e6a01b74ba51b5cdcb552f9f3750b9919ecb" -dependencies = [ - "build-rs", - "fs-err", - "miette", - "protox", - "tonic-prost-build", -] - [[package]] name = "miden-node-proto-build" version = "0.15.0" @@ -3040,9 +2878,8 @@ dependencies = [ [[package]] name = "miden-node-utils" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6722832579490ed0b88f8182488ad378f7e9679bd2aa0f3f35f1ca2940545cb2" +version = "0.15.0" +source = "git+https://github.com/0xMiden/node.git?branch=next#4abe27eea849db79c9b242e4a41d2876c4f28bcc" dependencies = [ "anyhow", "bytes", @@ -3054,7 +2891,7 @@ dependencies = [ "humantime", "itertools", "lru", - "miden-protocol 0.14.3", + "miden-protocol", "opentelemetry", "opentelemetry-otlp", "opentelemetry_sdk", @@ -3143,36 +2980,6 @@ dependencies = [ "toml 1.1.2+spec-1.1.0", ] -[[package]] -name = "miden-protocol" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595b3d43ceb562d05e248a6c52bdc2992dc270b60d6d0e8c0a6480aa30672b8e" -dependencies = [ - "bech32", - "fs-err", - "getrandom 0.3.4", - "miden-assembly", - "miden-assembly-syntax", - "miden-core", - "miden-core-lib", - "miden-crypto", - "miden-mast-package", - "miden-processor", - "miden-protocol-macros", - "miden-utils-sync", - "miden-verifier", - "rand 0.9.2", - "rand_chacha", - "rand_xoshiro", - "regex", - "semver 1.0.28", - "serde", - "thiserror 2.0.18", - "toml 1.1.2+spec-1.1.0", - "walkdir", -] - [[package]] name = "miden-protocol" version = "0.15.0" @@ -3202,17 +3009,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "miden-protocol-macros" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c287782953c94452c2f7431feff137e4fe8b8d1eb5aa9112eab83a6f11c8f2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "miden-prover" version = "0.22.1" @@ -3239,9 +3035,9 @@ dependencies = [ "build-rs", "fs-err", "getrandom 0.4.2", - "miden-node-proto-build 0.15.0", - "miden-protocol 0.15.0", - "miden-tx 0.15.0", + "miden-node-proto-build", + "miden-protocol", + "miden-tx", "miette", "prost", "thiserror 2.0.18", @@ -3262,24 +3058,6 @@ dependencies = [ "p3-goldilocks", ] -[[package]] -name = "miden-standards" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27f63cd9264dc1f9f124fe644ee631828cc9bfd71022a75cd5bc1678f3ba7b56" -dependencies = [ - "fs-err", - "miden-assembly", - "miden-core", - "miden-core-lib", - "miden-processor", - "miden-protocol 0.14.3", - "rand 0.9.2", - "regex", - "thiserror 2.0.18", - "walkdir", -] - [[package]] name = "miden-standards" version = "0.15.0" @@ -3290,36 +3068,13 @@ dependencies = [ "miden-assembly", "miden-core-lib", "miden-processor", - "miden-protocol 0.15.0", + "miden-protocol", "rand 0.9.2", "regex", "thiserror 2.0.18", "walkdir", ] -[[package]] -name = "miden-testing" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2761dd1f8baa744c91d1ff143d954c623d5fb1d2dfec8c8ab1dac2254343d7cd" -dependencies = [ - "anyhow", - "itertools", - "miden-agglayer", - "miden-assembly", - "miden-block-prover 0.14.3", - "miden-core-lib", - "miden-crypto", - "miden-processor", - "miden-protocol 0.14.3", - "miden-standards 0.14.3", - "miden-tx 0.14.3", - "miden-tx-batch-prover 0.14.3", - "rand 0.9.2", - "rand_chacha", - "thiserror 2.0.18", -] - [[package]] name = "miden-testing" version = "0.15.0" @@ -3327,63 +3082,39 @@ source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bc dependencies = [ "anyhow", "itertools", - "miden-block-prover 0.15.0", + "miden-block-prover", "miden-core-lib", "miden-crypto", "miden-processor", - "miden-protocol 0.15.0", - "miden-standards 0.15.0", - "miden-tx 0.15.0", - "miden-tx-batch-prover 0.15.0", + "miden-protocol", + "miden-standards", + "miden-tx", + "miden-tx-batch-prover", "rand 0.9.2", "rand_chacha", "thiserror 2.0.18", ] -[[package]] -name = "miden-tx" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e894e952e2819545e9351f7427779f82538e51553dfaca3294301ff308086497" -dependencies = [ - "miden-processor", - "miden-protocol 0.14.3", - "miden-prover", - "miden-standards 0.14.3", - "miden-verifier", - "thiserror 2.0.18", -] - [[package]] name = "miden-tx" version = "0.15.0" source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" dependencies = [ "miden-processor", - "miden-protocol 0.15.0", + "miden-protocol", "miden-prover", - "miden-standards 0.15.0", + "miden-standards", "miden-verifier", "thiserror 2.0.18", ] -[[package]] -name = "miden-tx-batch-prover" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e7aac0d511aa412138ea7dfa4a6d8c76340c6028fa91313727b7ad3614711b" -dependencies = [ - "miden-protocol 0.14.3", - "miden-tx 0.14.3", -] - [[package]] name = "miden-tx-batch-prover" version = "0.15.0" source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" dependencies = [ - "miden-protocol 0.15.0", - "miden-tx 0.15.0", + "miden-protocol", + "miden-tx", ] [[package]] @@ -4333,16 +4064,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "primitive-types" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721a1da530b5a2633218dc9f75713394c983c352be88d2d7c9ee85e2c4c21794" -dependencies = [ - "fixed-hash", - "uint", -] - [[package]] name = "priority-queue" version = "2.7.0" @@ -4354,28 +4075,6 @@ dependencies = [ "serde", ] -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "proc-macro2" version = "1.0.106" @@ -4642,15 +4341,6 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.2" @@ -4871,27 +4561,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ruint" -version = "1.17.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c141e807189ad38a07276942c6623032d3753c8859c146104ac2e4d68865945a" -dependencies = [ - "proptest", - "rand 0.8.5", - "rand 0.9.2", - "ruint-macro", - "serde_core", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" - [[package]] name = "rusqlite" version = "0.37.0" @@ -5477,18 +5146,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "syn-solidity" -version = "1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53f425ae0b12e2f5ae65542e00898d500d4d318b4baf09f40fd0d410454e9947" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -6199,18 +5856,6 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" -[[package]] -name = "uint" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - [[package]] name = "unarray" version = "0.1.4" diff --git a/Cargo.toml b/Cargo.toml index c8d0f1d..0838c41 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,4 +65,3 @@ module_name_repetitions = "allow" # Many triggers, and is a stylistic choice must_use_candidate = "allow" # This marks many fn's which isn't helpful. should_panic_without_expect = "allow" # We don't care about the specific panic message. # End of pedantic lints. - diff --git a/bin/faucet/Cargo.toml b/bin/faucet/Cargo.toml index e5a1cdd..97d24c6 100644 --- a/bin/faucet/Cargo.toml +++ b/bin/faucet/Cargo.toml @@ -52,8 +52,8 @@ url = { workspace = true } [dev-dependencies] fantoccini = { version = "0.22" } -miden-node-proto = { version = "0.14" } -miden-testing = { version = "0.14" } +miden-node-proto = { branch = "next", git = "https://github.com/0xMiden/node.git" } +miden-testing = { branch = "next", default-features = false, git = "https://github.com/0xMiden/protocol.git" } reqwest = { features = ["json"], workspace = true } serde_json = { workspace = true } tokio = { features = ["macros", "process"], workspace = true } diff --git a/bin/faucet/src/main.rs b/bin/faucet/src/main.rs index f7c75ba..84f6e70 100644 --- a/bin/faucet/src/main.rs +++ b/bin/faucet/src/main.rs @@ -25,6 +25,7 @@ use miden_client::account::component::{ use miden_client::account::{ Account, AccountBuilder, + AccountBuilderSchemaCommitmentExt, AccountFile, AccountStorageMode, AccountType, @@ -596,6 +597,7 @@ fn create_faucet_account( let account = AccountBuilder::new(rng.random()) .account_type(AccountType::FungibleFaucet) .storage_mode(AccountStorageMode::Public) + .with_auth_component(auth_component) .with_component(token_metadata) .with_component(BasicFungibleFaucet) .with_components(TokenPolicyManager::new( @@ -603,8 +605,7 @@ fn create_faucet_account( MintPolicyConfig::AllowAll, BurnPolicyConfig::AllowAll, )) - .with_auth_component(auth_component) - .build() + .build_with_schema_commitment() .context("failed to create basic fungible faucet account")?; Ok((account, AuthSecretKey::Falcon512Poseidon2(secret))) diff --git a/bin/faucet/src/testing/stub_rpc_api.rs b/bin/faucet/src/testing/stub_rpc_api.rs index ed5c349..3689584 100644 --- a/bin/faucet/src/testing/stub_rpc_api.rs +++ b/bin/faucet/src/testing/stub_rpc_api.rs @@ -12,13 +12,6 @@ pub struct StubRpcApi; #[tonic::async_trait] impl api_server::Api for StubRpcApi { - async fn check_nullifiers( - &self, - _request: Request, - ) -> Result, Status> { - unimplemented!() - } - async fn get_block_header_by_number( &self, _request: Request, @@ -72,7 +65,7 @@ impl api_server::Api for StubRpcApi { async fn get_block_by_number( &self, - _request: Request, + _request: Request, ) -> Result, Status> { unimplemented!() } @@ -156,10 +149,10 @@ impl api_server::Api for StubRpcApi { })) } - async fn get_note_error( + async fn get_network_note_status( &self, _request: Request, - ) -> Result, Status> { + ) -> Result, Status> { unimplemented!() } } diff --git a/crates/faucet/src/lib.rs b/crates/faucet/src/lib.rs index 74f7db5..ceef8b4 100644 --- a/crates/faucet/src/lib.rs +++ b/crates/faucet/src/lib.rs @@ -673,7 +673,12 @@ mod tests { TokenName, TokenPolicyManager, }; - use miden_client::account::{AccountBuilder, AccountStorageMode, AccountType}; + use miden_client::account::{ + AccountBuilder, + AccountBuilderSchemaCommitmentExt, + AccountStorageMode, + AccountType, + }; use miden_client::asset::TokenSymbol; use miden_client::auth::{AuthSchemeId, AuthSecretKey, AuthSingleSig}; use miden_client::crypto::rpo_falcon512::SecretKey; @@ -738,6 +743,10 @@ mod tests { let account = AccountBuilder::new(rand::random()) .account_type(AccountType::FungibleFaucet) .storage_mode(AccountStorageMode::Public) + .with_auth_component(AuthSingleSig::new( + secret.public_key().to_commitment().into(), + AuthSchemeId::Falcon512Poseidon2, + )) .with_component(token_metadata) .with_component(BasicFungibleFaucet) .with_components(TokenPolicyManager::new( @@ -745,11 +754,7 @@ mod tests { MintPolicyConfig::AllowAll, BurnPolicyConfig::AllowAll, )) - .with_auth_component(AuthSingleSig::new( - secret.public_key().to_commitment().into(), - AuthSchemeId::Falcon512Poseidon2, - )) - .build() + .build_with_schema_commitment() .unwrap(); let key = AuthSecretKey::Falcon512Poseidon2(secret); From 584e8d5cee6d459a82a0b2d2740e0b364e4358fd Mon Sep 17 00:00:00 2001 From: tomasarrachea Date: Fri, 29 May 2026 17:50:03 -0300 Subject: [PATCH 4/7] feat: update miden-client --- Cargo.lock | 1130 ++++++++++++------------ Cargo.toml | 9 +- bin/faucet-client/Cargo.toml | 7 +- bin/faucet-client/tests/mint.rs | 4 +- bin/faucet/Cargo.toml | 7 +- bin/faucet/src/api/send_note.rs | 2 +- bin/faucet/src/main.rs | 86 +- bin/faucet/src/testing/stub_rpc_api.rs | 35 +- crates/faucet/Cargo.toml | 5 +- crates/faucet/asm/tx_scripts/mint.masm | 42 +- crates/faucet/src/lib.rs | 118 ++- crates/faucet/src/types.rs | 2 +- 12 files changed, 757 insertions(+), 690 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 14ad21c..ea728f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -130,9 +130,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1" +checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac" dependencies = [ "compression-codecs", "compression-core", @@ -168,15 +168,15 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "aws-lc-rs" -version = "1.16.2" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" +checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" dependencies = [ "aws-lc-sys", "zeroize", @@ -184,9 +184,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.39.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399" +checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" dependencies = [ "cc", "cmake", @@ -196,15 +196,15 @@ dependencies = [ [[package]] name = "axum" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" +checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" dependencies = [ "axum-core", "bytes", "form_urlencoded", "futures-util", - "http 1.4.0", + "http 1.4.1", "http-body", "http-body-util", "hyper", @@ -235,7 +235,7 @@ checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" dependencies = [ "bytes", "futures-core", - "http 1.4.0", + "http 1.4.1", "http-body", "http-body-util", "mime", @@ -248,16 +248,16 @@ dependencies = [ [[package]] name = "axum-extra" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fef252edff26ddba56bbcdf2ee3307b8129acb86f5749b68990c168a6fcc9c76" +checksum = "be44683b41ccb9ab2d23a5230015c9c3c55be97a25e4428366de8873103f7970" dependencies = [ "axum", "axum-core", "bytes", "futures-core", "futures-util", - "http 1.4.0", + "http 1.4.1", "http-body", "http-body-util", "mime", @@ -347,15 +347,15 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" [[package]] name = "blake3" -version = "1.8.4" +version = "1.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e" +checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" dependencies = [ "arrayref", "arrayvec", @@ -401,18 +401,18 @@ dependencies = [ [[package]] name = "build-rs" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc87f52297187fb5d25bde3d368f0480f88ac1d8f3cf4c80ac5575435511114" +checksum = "fe808acca98fccf920154ee7833e791bfb683299be4aae7ec222ddffad8cd4f8" dependencies = [ "unicode-ident", ] [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytemuck" @@ -432,20 +432,11 @@ version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" -[[package]] -name = "castaway" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" -dependencies = [ - "rustversion", -] - [[package]] name = "cc" -version = "1.2.59" +version = "1.2.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7a4d3ec6524d28a329fc53654bbadc9bdd7b0431f5d65f1a56ffb28a1ee5283" +checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f" dependencies = [ "find-msvc-tools", "jobserver", @@ -453,12 +444,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - [[package]] name = "cfg-if" version = "1.0.4" @@ -521,9 +506,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.0" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" dependencies = [ "clap_builder", "clap_derive", @@ -543,9 +528,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.0" +version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ "heck", "proc-macro2", @@ -604,25 +589,11 @@ dependencies = [ "unicode-width 0.2.2", ] -[[package]] -name = "compact_str" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" -dependencies = [ - "castaway", - "cfg-if", - "itoa", - "rustversion", - "ryu", - "static_assertions", -] - [[package]] name = "compression-codecs" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" +checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf" dependencies = [ "compression-core", "flate2", @@ -631,9 +602,9 @@ dependencies = [ [[package]] name = "compression-core" -version = "0.4.31" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" +checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789" [[package]] name = "const-oid" @@ -720,6 +691,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -860,9 +837,9 @@ dependencies = [ [[package]] name = "dashmap" -version = "6.1.0" +version = "6.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +checksum = "e6361d5c062261c78a176addb82d4c821ae42bed6089de0e12603cd25de2059c" dependencies = [ "cfg-if", "crossbeam-utils", @@ -977,9 +954,9 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" dependencies = [ "proc-macro2", "quote", @@ -1047,9 +1024,9 @@ dependencies = [ [[package]] name = "either" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" [[package]] name = "elliptic-curve" @@ -1150,7 +1127,7 @@ checksum = "7737298823a6f9ca743e372e8cb03658d55354fbab843424f575706ba9563046" dependencies = [ "base64", "cookie 0.18.1", - "http 1.4.0", + "http 1.4.1", "http-body-util", "hyper", "hyper-tls", @@ -1375,9 +1352,9 @@ checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +checksum = "af43fadb8a98512d547e37b4e92e0ced13e205c061b87b4623eff01d918d6968" [[package]] name = "futures-util" @@ -1505,7 +1482,7 @@ dependencies = [ "parking_lot", "portable-atomic", "quanta", - "rand 0.9.2", + "rand 0.9.4", "smallvec", "spinning_top", "web-time", @@ -1524,16 +1501,16 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" +checksum = "171fefbc92fe4a4de27e0698d6a5b392d6a0e333506bc49133760b3bcf948733" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.4.0", + "http 1.4.1", "indexmap", "slab", "tokio", @@ -1567,6 +1544,12 @@ dependencies = [ "foldhash 0.2.0", ] +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + [[package]] name = "hashlink" version = "0.10.0" @@ -1625,9 +1608,9 @@ dependencies = [ [[package]] name = "http" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +checksum = "8be7462df143984c4598a256ef469b251d7d7f9e271135073e78fc535414f3d0" dependencies = [ "bytes", "itoa", @@ -1640,7 +1623,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.4.0", + "http 1.4.1", ] [[package]] @@ -1651,7 +1634,7 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http 1.4.0", + "http 1.4.1", "http-body", "pin-project-lite", ] @@ -1676,16 +1659,16 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "hyper" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" +checksum = "eb92f162bf56536459fc83c79b974bb12837acfed43d6bc370a7916d0ae15ecc" dependencies = [ "atomic-waker", "bytes", "futures-channel", "futures-core", "h2", - "http 1.4.0", + "http 1.4.1", "http-body", "httparse", "httpdate", @@ -1698,15 +1681,14 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ - "http 1.4.0", + "http 1.4.1", "hyper", "hyper-util", "rustls", - "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", @@ -1751,7 +1733,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.4.0", + "http 1.4.1", "http-body", "hyper", "ipnet", @@ -1969,9 +1951,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" dependencies = [ "icu_normalizer", "icu_properties", @@ -1985,12 +1967,12 @@ checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" -version = "2.13.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "serde", "serde_core", ] @@ -2016,16 +1998,6 @@ version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" -[[package]] -name = "iri-string" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "is_ci" version = "1.2.0" @@ -2055,9 +2027,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.23" +version = "0.2.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" +checksum = "4603d3033e49e2b0e31229fcab20a5d40089c607d975cd9c80551dc69eed9102" dependencies = [ "jiff-static", "log", @@ -2068,9 +2040,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.23" +version = "0.2.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" +checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47" dependencies = [ "proc-macro2", "quote", @@ -2079,27 +2051,32 @@ dependencies = [ [[package]] name = "jni" -version = "0.21.1" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" dependencies = [ - "cesu8", "cfg-if", "combine", - "jni-sys 0.3.1", + "jni-macros", + "jni-sys", "log", - "thiserror 1.0.69", + "simd_cesu8", + "thiserror 2.0.18", "walkdir", - "windows-sys 0.45.0", + "windows-link", ] [[package]] -name = "jni-sys" -version = "0.3.1" +name = "jni-macros" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" dependencies = [ - "jni-sys 0.4.1", + "proc-macro2", + "quote", + "rustc_version 0.4.1", + "simd_cesu8", + "syn 2.0.117", ] [[package]] @@ -2133,9 +2110,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.94" +version = "0.3.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" +checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11" dependencies = [ "cfg-if", "futures-util", @@ -2210,9 +2187,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.184" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libm" @@ -2222,9 +2199,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" +checksum = "f02ab6bace2054fb888a3c16f990117b579d14a3088e472d63c6011fa185c9d3" dependencies = [ "libc", ] @@ -2275,9 +2252,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5" [[package]] name = "logos" @@ -2285,7 +2262,16 @@ version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff472f899b4ec2d99161c51f60ff7075eeb3097069a36050d8037a6325eb8154" dependencies = [ - "logos-derive", + "logos-derive 0.15.1", +] + +[[package]] +name = "logos" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2c55a318a87600ea870ff8c2012148b44bf18b74fad48d0f835c38c7d07c5f" +dependencies = [ + "logos-derive 0.16.1", ] [[package]] @@ -2304,13 +2290,36 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "logos-codegen" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b3ffaa284e1350d017a57d04ada118c4583cf260c8fb01e0fe28a2e9cf8970" +dependencies = [ + "fnv", + "proc-macro2", + "quote", + "regex-automata", + "regex-syntax", + "syn 2.0.117", +] + [[package]] name = "logos-derive" version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "605d9697bcd5ef3a42d38efc51541aa3d6a4a25f7ab6d1ed0da5ac632a26b470" dependencies = [ - "logos-codegen", + "logos-codegen 0.15.1", +] + +[[package]] +name = "logos-derive" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52d3a9855747c17eaf4383823f135220716ab49bea5fbea7dd42cc9a92f8aa31" +dependencies = [ + "logos-codegen 0.16.1", ] [[package]] @@ -2328,9 +2337,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" [[package]] name = "lru-slab" @@ -2355,28 +2364,42 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8" + +[[package]] +name = "miden-ace-codegen" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5ca2274961cd9d366f39a18043a8e652d5f330a2b6c2081be242d483cbfa79" +dependencies = [ + "miden-core", + "miden-crypto", + "thiserror 2.0.18", +] [[package]] name = "miden-air" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15646ebc95906b2a7cb66711d1e184f53fd6edc2605730bbcf0c2a129f792cf" +checksum = "4c3e5695f4c72322fc7ef57d4d7ccec0eb5c21ef6aa28fe1f4f4712966981377" dependencies = [ + "miden-ace-codegen", "miden-core", "miden-crypto", + "miden-lifted-stark", "miden-utils-indexing", + "proptest", "thiserror 2.0.18", "tracing", ] [[package]] name = "miden-assembly" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6013b3a390e0dcb29242f4480a7727965887bbf0903466c88f362b4cb20c0e" +checksum = "562f777b4432663c83a110f3f5248e76f3ee837ee166bb4ffb1236e7881e0c4a" dependencies = [ "env_logger", "log", @@ -2385,15 +2408,16 @@ dependencies = [ "miden-mast-package", "miden-package-registry", "miden-project", + "proptest", "smallvec", "thiserror 2.0.18", ] [[package]] name = "miden-assembly-syntax" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "996156b8f7c5fe6be17dea71089c6d7985c2dec1e3a4fec068b1dfc690e25df5" +checksum = "4a037e7c88430d53a9411764985a7cf26dc5121c7b76c5fa1d9bb465db1c5248" dependencies = [ "aho-corasick", "env_logger", @@ -2417,7 +2441,8 @@ dependencies = [ [[package]] name = "miden-block-prover" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1829e10ccf220c6052cdcc4181c820307f177612e070623213c8670766de64" dependencies = [ "miden-protocol", "thiserror 2.0.18", @@ -2426,7 +2451,7 @@ dependencies = [ [[package]] name = "miden-client" version = "0.15.0" -source = "git+https://github.com/0xMiden/miden-client?rev=a73c5bb61583cf480b5dcd28fc494ac63032d2c5#a73c5bb61583cf480b5dcd28fc494ac63032d2c5" +source = "git+https://github.com/0xMiden/miden-client?rev=991ad0ef23708770139a9588c79c783a082ddacc#991ad0ef23708770139a9588c79c783a082ddacc" dependencies = [ "anyhow", "async-trait", @@ -2435,10 +2460,8 @@ dependencies = [ "getrandom 0.3.4", "gloo-timers", "hex", - "miden-debug", - "miden-node-proto-build", + "miden-node-proto-build 0.15.0 (git+https://github.com/0xMiden/node.git?branch=igamigo-export-ntxauth)", "miden-note-transport-proto-build", - "miden-processor", "miden-protocol", "miden-remote-prover-client", "miden-standards", @@ -2448,7 +2471,7 @@ dependencies = [ "miette", "prost", "prost-types", - "rand 0.9.2", + "rand 0.9.4", "serde", "serde_json", "tempfile", @@ -2466,7 +2489,7 @@ dependencies = [ [[package]] name = "miden-client-cli" version = "0.15.0" -source = "git+https://github.com/0xMiden/miden-client?rev=a73c5bb61583cf480b5dcd28fc494ac63032d2c5#a73c5bb61583cf480b5dcd28fc494ac63032d2c5" +source = "git+https://github.com/0xMiden/miden-client?rev=991ad0ef23708770139a9588c79c783a082ddacc#991ad0ef23708770139a9588c79c783a082ddacc" dependencies = [ "clap", "comfy-table", @@ -2474,9 +2497,8 @@ dependencies = [ "figment", "miden-client", "miden-client-sqlite-store", - "miden-debug", "miette", - "rand 0.9.2", + "rand 0.9.4", "serde", "thiserror 2.0.18", "tokio", @@ -2488,7 +2510,7 @@ dependencies = [ [[package]] name = "miden-client-sqlite-store" version = "0.15.0" -source = "git+https://github.com/0xMiden/miden-client?rev=a73c5bb61583cf480b5dcd28fc494ac63032d2c5#a73c5bb61583cf480b5dcd28fc494ac63032d2c5" +source = "git+https://github.com/0xMiden/miden-client?rev=991ad0ef23708770139a9588c79c783a082ddacc#991ad0ef23708770139a9588c79c783a082ddacc" dependencies = [ "anyhow", "async-trait", @@ -2505,12 +2527,12 @@ dependencies = [ [[package]] name = "miden-core" -version = "0.22.3" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778063e712a9000e177ac3f3ac5f9cd7cfc15f4670124127c182495ef8667dd3" +checksum = "90b5ef72b3b09aeffe6738c7105bc9ce5dd4517f64063c9af6f16aececce0174" dependencies = [ "derive_more", - "itertools", + "log", "miden-crypto", "miden-debug-types", "miden-formatting", @@ -2527,9 +2549,9 @@ dependencies = [ [[package]] name = "miden-core-lib" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "621e8fa911a790bcf3cd3aedce80bc10922a19d6181f08ff3ca078f955cff70b" +checksum = "b01f5fe14742432014d7dcd5410f6984b9dbd4697b2efbebcdfbc29a032eb720" dependencies = [ "env_logger", "fs-err", @@ -2544,24 +2566,26 @@ dependencies = [ [[package]] name = "miden-crypto" -version = "0.23.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0a034a460e27723dcfdf25effffab84331c3b46b13e7a1bd674197cc71bfe" +checksum = "35198bebd353cddc25ad4aafb5f4ef9e71b283d71c787b8938c575c16974135d" dependencies = [ "blake3", "cc", "chacha20poly1305", "curve25519-dalek", + "der", "ed25519-dalek", "flume", - "glob", "hkdf", "k256", "miden-crypto-derive", "miden-field", + "miden-lifted-stark", "miden-serde-utils", "num", "num-complex", + "once_cell", "p3-blake3", "p3-challenger", "p3-dft", @@ -2569,10 +2593,9 @@ dependencies = [ "p3-keccak", "p3-matrix", "p3-maybe-rayon", - "p3-miden-lifted-stark", "p3-symmetric", "p3-util", - "rand 0.9.2", + "rand 0.9.4", "rand_chacha", "rand_core 0.9.5", "rand_hc", @@ -2587,78 +2610,19 @@ dependencies = [ [[package]] name = "miden-crypto-derive" -version = "0.23.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8bf6ebde028e79bcc61a3632d2f375a5cc64caa17d014459f75015238cb1e08" +checksum = "9068c6554db0e051f62913575de9949841a46b96ae92d4b7d28e1fed5d8f052b" dependencies = [ "quote", "syn 2.0.117", ] -[[package]] -name = "miden-debug" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d80d7ddedcde678eaaf8ef1f77b2a4e019cb991e7906ddbc618497c2b741eb3e" -dependencies = [ - "clap", - "compact_str", - "futures", - "log", - "miden-assembly", - "miden-assembly-syntax", - "miden-core", - "miden-debug-engine", - "miden-debug-types", - "miden-mast-package", - "miden-processor", - "thiserror 2.0.18", - "tokio", - "tokio-util", -] - -[[package]] -name = "miden-debug-dap" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8279a25a0a199f3ddbc8054193f3a80e193b94d1c308704062602adafe76de7" -dependencies = [ - "serde", - "serde_json", - "thiserror 2.0.18", -] - -[[package]] -name = "miden-debug-engine" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a10c9e9e718b92d3fb1f3dfc28059d733778f58e09080c3ed721bf94058420f4" -dependencies = [ - "clap", - "glob", - "log", - "miden-assembly", - "miden-assembly-syntax", - "miden-core", - "miden-debug-dap", - "miden-debug-types", - "miden-mast-package", - "miden-processor", - "num-traits", - "rustc-demangle", - "serde", - "serde_json", - "smallvec", - "socket2", - "thiserror 2.0.18", - "toml 1.1.2+spec-1.1.0", -] - [[package]] name = "miden-debug-types" -version = "0.22.3" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7be29c7988811012c28526550af39f98f5b5a26aca5c8629906fef4fc49c8180" +checksum = "40ca69684c7885ed3e3e1f2021aab20a35eb088f300272f42da4d93ce87007e3" dependencies = [ "memchr", "miden-crypto", @@ -2667,6 +2631,7 @@ dependencies = [ "miden-utils-indexing", "miden-utils-sync", "paste", + "proptest", "serde", "serde_spanned 1.1.1", "thiserror 2.0.18", @@ -2683,18 +2648,19 @@ dependencies = [ "base64", "clap", "fantoccini", - "http 1.4.0", + "http 1.4.1", "humantime", "miden-client", "miden-client-sqlite-store", "miden-faucet-lib", "miden-node-proto", "miden-pow-rate-limiter", + "miden-standards", "miden-testing", "opentelemetry", "opentelemetry-otlp", "opentelemetry_sdk", - "rand 0.9.2", + "rand 0.9.4", "rand_chacha", "reqwest", "serde", @@ -2726,7 +2692,7 @@ dependencies = [ "miden-client-cli", "miden-faucet-lib", "miden-pow-rate-limiter", - "rand 0.9.2", + "rand 0.9.4", "reqwest", "serde", "serde_json", @@ -2742,7 +2708,8 @@ dependencies = [ "anyhow", "miden-client", "miden-client-sqlite-store", - "rand 0.9.2", + "miden-standards", + "rand 0.9.4", "serde", "thiserror 2.0.18", "tokio", @@ -2753,17 +2720,18 @@ dependencies = [ [[package]] name = "miden-field" -version = "0.23.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38011348f4fb4c9e5ce1f471203d024721c00e3b60a91aa91aaefe6738d8b5ea" +checksum = "379a39db52cd932a95d4017a18b712ee53ed0f86cfedf8c63ed72d687a18a191" dependencies = [ "miden-serde-utils", "num-bigint", "p3-challenger", "p3-field", "p3-goldilocks", + "p3-util", "paste", - "rand 0.10.0", + "rand 0.10.1", "serde", "subtle", "thiserror 2.0.18", @@ -2778,13 +2746,48 @@ dependencies = [ "unicode-width 0.1.14", ] +[[package]] +name = "miden-lifted-air" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "789e0e469d1731012d8a018057317f31580611535c20d2a47c022213228cb733" +dependencies = [ + "p3-air", + "p3-field", + "p3-matrix", + "p3-util", + "thiserror 2.0.18", +] + +[[package]] +name = "miden-lifted-stark" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f62cca91182917b22a47e150028b7c785df620a15b2974a39c64e2b1b7a889d3" +dependencies = [ + "miden-lifted-air", + "miden-stark-transcript", + "miden-stateful-hasher", + "p3-challenger", + "p3-dft", + "p3-field", + "p3-goldilocks", + "p3-matrix", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "rand 0.10.1", + "serde", + "thiserror 2.0.18", + "tracing", +] + [[package]] name = "miden-mast-package" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc8b2e3447fcde1f0e6b76e5219f129517639772cb02ca543177f0584e315288" +checksum = "cbdd7b91f6ab27dba6b6c0a8b9e715610403152d5662f83a569f8da92278a8b6" dependencies = [ - "derive_more", "miden-assembly-syntax", "miden-core", "miden-debug-types", @@ -2831,7 +2834,7 @@ dependencies = [ [[package]] name = "miden-node-grpc-error-macro" version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?branch=next#4abe27eea849db79c9b242e4a41d2876c4f28bcc" +source = "git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524#4bdb7853a0e91fb45ccf25352dd0cd3552732524" dependencies = [ "quote", "syn 2.0.117", @@ -2840,16 +2843,16 @@ dependencies = [ [[package]] name = "miden-node-proto" version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?branch=next#4abe27eea849db79c9b242e4a41d2876c4f28bcc" +source = "git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524#4bdb7853a0e91fb45ccf25352dd0cd3552732524" dependencies = [ "anyhow", "build-rs", "codegen", "fs-err", "hex", - "http 1.4.0", + "http 1.4.1", "miden-node-grpc-error-macro", - "miden-node-proto-build", + "miden-node-proto-build 0.15.0 (git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524)", "miden-node-utils", "miden-protocol", "miden-standards", @@ -2866,7 +2869,20 @@ dependencies = [ [[package]] name = "miden-node-proto-build" version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?branch=next#143cf7fe8511b55f28b32038b72dbf903f975663" +source = "git+https://github.com/0xMiden/node.git?branch=igamigo-export-ntxauth#4bdb7853a0e91fb45ccf25352dd0cd3552732524" +dependencies = [ + "build-rs", + "codegen", + "fs-err", + "miette", + "protox", + "tonic-prost-build", +] + +[[package]] +name = "miden-node-proto-build" +version = "0.15.0" +source = "git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524#4bdb7853a0e91fb45ccf25352dd0cd3552732524" dependencies = [ "build-rs", "codegen", @@ -2879,14 +2895,14 @@ dependencies = [ [[package]] name = "miden-node-utils" version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?branch=next#4abe27eea849db79c9b242e4a41d2876c4f28bcc" +source = "git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524#4bdb7853a0e91fb45ccf25352dd0cd3552732524" dependencies = [ "anyhow", "bytes", "clap", "fs-err", "governor", - "http 1.4.0", + "http 1.4.1", "http-body-util", "humantime", "itertools", @@ -2895,7 +2911,7 @@ dependencies = [ "opentelemetry", "opentelemetry-otlp", "opentelemetry_sdk", - "rand 0.9.2", + "rand 0.9.4", "thiserror 2.0.18", "tokio", "tonic", @@ -2922,13 +2938,14 @@ dependencies = [ [[package]] name = "miden-package-registry" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969ba3942052e52b3968e34dbd1c52c707e75777ee42ebdae2c8f57af56cf6cf" +checksum = "8b27f25b62ae15b22f7990dff37aa58e927f3c219d53aefa618636825b083c86" dependencies = [ "miden-assembly-syntax", "miden-core", "miden-mast-package", + "proptest", "pubgrub", "serde", "smallvec", @@ -2947,9 +2964,9 @@ dependencies = [ [[package]] name = "miden-processor" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ec6cecbf22bd92b73a931ee80b424e46b8b7cdf4f2f3c364c25c5c15d2840da" +checksum = "dde1a42df6d58960389a34a0b4334f0bb6e241fa0727a7889d13ae19a68b6ce9" dependencies = [ "itertools", "miden-air", @@ -2960,20 +2977,20 @@ dependencies = [ "paste", "rayon", "thiserror 2.0.18", - "tokio", "tracing", ] [[package]] name = "miden-project" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3840520c01881534fbbceb6b3687ec1c407fbaf310a35ce415fd3510abc52fdb" +checksum = "138ca59f6d557f13feb9efb46e19e6f76ba148fecb7f51c289ff960b7973ec9c" dependencies = [ "miden-assembly-syntax", "miden-core", "miden-mast-package", "miden-package-registry", + "proptest", "serde", "serde-untagged", "thiserror 2.0.18", @@ -2983,7 +3000,8 @@ dependencies = [ [[package]] name = "miden-protocol" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b70acd2c57f7f9185c5174966dd47080389271410f25f6a3539970a4474fd440" dependencies = [ "bech32", "fs-err", @@ -2998,7 +3016,7 @@ dependencies = [ "miden-processor", "miden-utils-sync", "miden-verifier", - "rand 0.9.2", + "rand 0.9.4", "rand_chacha", "rand_xoshiro", "regex", @@ -3011,31 +3029,28 @@ dependencies = [ [[package]] name = "miden-prover" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb2c94e36f57684d7fa0cd382adeedc1728d502dbbe69ad1c12f4a931f45511" +checksum = "2ea0da172763e89e04e33f904314a4788ff3b685d3c0b723190df522edd648af" dependencies = [ "bincode", "miden-air", "miden-core", "miden-crypto", - "miden-debug-types", "miden-processor", "serde", - "thiserror 2.0.18", - "tokio", "tracing", ] [[package]] name = "miden-remote-prover-client" version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?branch=next#143cf7fe8511b55f28b32038b72dbf903f975663" +source = "git+https://github.com/0xMiden/node.git?branch=igamigo-export-ntxauth#4bdb7853a0e91fb45ccf25352dd0cd3552732524" dependencies = [ "build-rs", "fs-err", "getrandom 0.4.2", - "miden-node-proto-build", + "miden-node-proto-build 0.15.0 (git+https://github.com/0xMiden/node.git?branch=igamigo-export-ntxauth)", "miden-protocol", "miden-tx", "miette", @@ -3050,9 +3065,9 @@ dependencies = [ [[package]] name = "miden-serde-utils" -version = "0.23.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff78082e9b4ca89863e68da01b35f8a4029ee6fd912e39fa41fde4273a7debab" +checksum = "d78cd1d4fcad937312e544f7d53423485e453598aa4fb989d2b6374027a8c136" dependencies = [ "p3-field", "p3-goldilocks", @@ -3061,24 +3076,47 @@ dependencies = [ [[package]] name = "miden-standards" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc788da5d0dc43f93d6489a302d453cc6c67a12923208c9c8963e43073db0b3b" dependencies = [ "bon", "fs-err", "miden-assembly", "miden-core-lib", - "miden-processor", "miden-protocol", - "rand 0.9.2", + "rand 0.9.4", "regex", "thiserror 2.0.18", "walkdir", ] +[[package]] +name = "miden-stark-transcript" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05901db2e30d3954243960fe21cea7fbec39f97c27774b56fd5031c28c4881ba" +dependencies = [ + "p3-challenger", + "p3-field", + "serde", + "thiserror 2.0.18", +] + +[[package]] +name = "miden-stateful-hasher" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faeb47a90c55c5d45051d23cf691588804dd531995b4582c79108b64e445a905" +dependencies = [ + "p3-field", + "p3-symmetric", +] + [[package]] name = "miden-testing" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f8cdaa93307907537ae95f3c30efbba94ed9d393bbc75c057c763cceff8599" dependencies = [ "anyhow", "itertools", @@ -3090,7 +3128,7 @@ dependencies = [ "miden-standards", "miden-tx", "miden-tx-batch-prover", - "rand 0.9.2", + "rand 0.9.4", "rand_chacha", "thiserror 2.0.18", ] @@ -3098,7 +3136,8 @@ dependencies = [ [[package]] name = "miden-tx" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3cfee228a8b02efa9130bbe6ea086d1c8ffc1b4c93df10f880c9a9a3dfe634" dependencies = [ "miden-processor", "miden-protocol", @@ -3111,7 +3150,8 @@ dependencies = [ [[package]] name = "miden-tx-batch-prover" version = "0.15.0" -source = "git+https://github.com/0xMiden/protocol.git?branch=next#c6f1ecf9fa49bcebb77deada74e443f07b45c0ba" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ff829d060dc0cf38816fbe179fe22f0916d2a141974b2518606d58fe0bd1b37" dependencies = [ "miden-protocol", "miden-tx", @@ -3119,9 +3159,9 @@ dependencies = [ [[package]] name = "miden-utils-core-derive" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3846c8674ccec0c37005f99c1a599a24790ba2a5e5f4e1c7aec5f456821df835" +checksum = "dd67bb8353ddd887582932e0e27f98c7f8023b75d0ba1a627fa8e52929fa4413" dependencies = [ "proc-macro2", "quote", @@ -3130,33 +3170,33 @@ dependencies = [ [[package]] name = "miden-utils-diagnostics" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397f5d1e8679cf17cf7713ffd9654840791a6ed5818b025bbc2fbfdce846579a" +checksum = "b89c4ead5b59d4072af3c4f66123f89195916280e7d1abfa374369f2fb684cb8" dependencies = [ "miden-crypto", "miden-debug-types", "miden-miette", - "paste", "tracing", ] [[package]] name = "miden-utils-indexing" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8834e76299686bcce3de1685158aa4cff49b7fa5e0e00a6cc811e8f2cf5775f" +checksum = "efe6a82dead13b953510f0118b757ddc5c63a6c47a664651533bc4e38eaf9862" dependencies = [ "miden-crypto", + "proptest", "serde", "thiserror 2.0.18", ] [[package]] name = "miden-utils-sync" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9e9747e9664c1a0997bb040ae291306ea0a1c74a572141ec66cec855c1b0e8" +checksum = "9c61acb01578993fffbd56fdd24673266350fc5183dbb41bb78b278f1da77668" dependencies = [ "lock_api", "loom", @@ -3166,9 +3206,9 @@ dependencies = [ [[package]] name = "miden-verifier" -version = "0.22.1" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4580df640d889c9f3c349cd2268968e44a99a8cf0df6c36ae5b1fb273712b00" +checksum = "c941890d3e5ef1ce1c4e3801489b5defea2a7d2f4631c2fecd2b30d5850ec4df" dependencies = [ "bincode", "miden-air", @@ -3181,9 +3221,9 @@ dependencies = [ [[package]] name = "midenc-hir-type" -version = "0.5.3" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb29d7c049fb69373c7e775e3d4411e63e4ee608bc43826282ba62c6ec9f891" +checksum = "1ff0511aa2201f7098995e38a3c97a319d379c3b2d26fb83677b21b71f61a7b4" dependencies = [ "miden-formatting", "miden-serde-utils", @@ -3241,9 +3281,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" dependencies = [ "libc", "wasi", @@ -3344,9 +3384,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-derive" @@ -3424,6 +3464,10 @@ name = "once_cell" version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" +dependencies = [ + "critical-section", + "portable-atomic", +] [[package]] name = "once_cell_polyfill" @@ -3439,15 +3483,14 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.76" +version = "0.10.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf" +checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967" dependencies = [ "bitflags", "cfg-if", "foreign-types", "libc", - "once_cell", "openssl-macros", "openssl-sys", ] @@ -3471,9 +3514,9 @@ checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "openssl-sys" -version = "0.9.112" +version = "0.9.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" +checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4" dependencies = [ "cc", "libc", @@ -3501,7 +3544,7 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f69cd6acbb9af919df949cd1ec9e5e7fdc2ef15d234b6b795aaa525cc02f71f" dependencies = [ - "http 1.4.0", + "http 1.4.1", "opentelemetry", "opentelemetry-proto", "opentelemetry_sdk", @@ -3535,7 +3578,7 @@ dependencies = [ "futures-util", "opentelemetry", "percent-encoding", - "rand 0.9.2", + "rand 0.9.4", "thiserror 2.0.18", "tokio", "tokio-stream", @@ -3555,9 +3598,9 @@ checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" [[package]] name = "p3-air" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f2ec9cbfc642fc5173817287c3f8b789d07743b5f7e812d058b7a03e344f9ab" +checksum = "c824e8d7c7ddf208b742eac8d48e0b2d52d22fa013578a7762bf6931dbab1f46" dependencies = [ "p3-field", "p3-matrix", @@ -3566,9 +3609,9 @@ dependencies = [ [[package]] name = "p3-blake3" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b667f43b19499dd939c9e2553aa95688936a88360d50117dae3c8848d07dbc70" +checksum = "2733229a713bd83ccf5eb749e8f8e7380c1052674394a25c0422a772204a20af" dependencies = [ "blake3", "p3-symmetric", @@ -3577,9 +3620,9 @@ dependencies = [ [[package]] name = "p3-challenger" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0b490c745a7d2adeeafff06411814c8078c432740162332b3cd71be0158a76" +checksum = "8972ccd1d5dc90e46cdb1f2ab4ee2bae49b3917e5e98aa533f0c2b779c010445" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -3589,24 +3632,11 @@ dependencies = [ "tracing", ] -[[package]] -name = "p3-commit" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916ae7989d5c3b49f887f5c55b2f9826bdbb81aaebf834503c4145d8b267c829" -dependencies = [ - "itertools", - "p3-field", - "p3-matrix", - "p3-util", - "serde", -] - [[package]] name = "p3-dft" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55301e91544440254977108b85c32c09d7ea05f2f0dd61092a2825339906a4a7" +checksum = "17771aca44632f9cc11f2718d7ea7ec06794946c4190ef3a985bfc893f14c18a" dependencies = [ "itertools", "p3-field", @@ -3619,25 +3649,25 @@ dependencies = [ [[package]] name = "p3-field" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85affca7fc983889f260655c4cf74163eebb94605f702e4b6809ead707cba54f" +checksum = "6f3eb24d0591fd4d282d89cbe4e4efba5571c699375006f80b2cbf53ce83461c" dependencies = [ "itertools", "num-bigint", "p3-maybe-rayon", "p3-util", "paste", - "rand 0.10.0", + "rand 0.10.1", "serde", "tracing", ] [[package]] name = "p3-goldilocks" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca1081f5c47b940f2d75a11c04f62ea1cc58a5d480dd465fef3861c045c63cd" +checksum = "5751c6591a0d2397d726620c2c29a7436ec6c5e19d2ed74ca5d078d4fbb18eb5" dependencies = [ "num-bigint", "p3-challenger", @@ -3649,15 +3679,15 @@ dependencies = [ "p3-symmetric", "p3-util", "paste", - "rand 0.10.0", + "rand 0.10.1", "serde", ] [[package]] name = "p3-keccak" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcf27615ece1995e4fcf4c69740f1cf515d1481367a20b4b3ce7f4f1b8d70f7" +checksum = "77a7df174ff0c19a8742eb4698eaa1667c5f858d018e2faf09c55f1f24a6f9c3" dependencies = [ "p3-symmetric", "p3-util", @@ -3666,142 +3696,46 @@ dependencies = [ [[package]] name = "p3-matrix" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53428126b009071563d1d07305a9de8be0d21de00b57d2475289ee32ffca6577" +checksum = "ea9c94c0714944e7b8a9a62e6340b1e3e1d3f8ecfd3e35c08798360200e73eff" dependencies = [ "itertools", "p3-field", "p3-maybe-rayon", "p3-util", - "rand 0.10.0", + "rand 0.10.1", "serde", "tracing", ] [[package]] name = "p3-maybe-rayon" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "082bf467011c06c768c579ec6eb9accb5e1e62108891634cc770396e917f978a" +checksum = "eebc233a34b1ab0273f35b4052fa2eeb3114b22ba4575bd7da00716e878ffb77" dependencies = [ "rayon", ] [[package]] name = "p3-mds" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35209e6214102ea6ec6b8cb1b9c15a9b8e597a39f9173597c957f123bced81b3" -dependencies = [ - "p3-dft", - "p3-field", - "p3-symmetric", - "p3-util", - "rand 0.10.0", -] - -[[package]] -name = "p3-miden-lifted-air" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5c31c65fdc88952d7b301546add9670676e5b878aa0066dd929f107c203b006" -dependencies = [ - "p3-air", - "p3-field", - "p3-matrix", - "p3-util", - "thiserror 2.0.18", -] - -[[package]] -name = "p3-miden-lifted-fri" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9932f1b0a16609a45cd4ee10a4d35412728bc4b38837c7979d7c85d8dcc9fc" -dependencies = [ - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-miden-lmcs", - "p3-miden-transcript", - "p3-util", - "rand 0.10.0", - "thiserror 2.0.18", - "tracing", -] - -[[package]] -name = "p3-miden-lifted-stark" -version = "0.5.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3956ab7270c3cdd53ca9796d39ae1821984eb977415b0672110f9666bff5d8" +checksum = "6b5441fa8116246ec9e6c835f15273cb27777ca572960ec87476b67fef13e01e" dependencies = [ - "p3-challenger", "p3-dft", "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-miden-lifted-air", - "p3-miden-lifted-fri", - "p3-miden-lmcs", - "p3-miden-stateful-hasher", - "p3-miden-transcript", - "p3-util", - "thiserror 2.0.18", - "tracing", -] - -[[package]] -name = "p3-miden-lmcs" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c46791c983e772136db3d48f102431457451447abb9087deb6c8ce3c1efc86" -dependencies = [ - "p3-commit", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-miden-stateful-hasher", - "p3-miden-transcript", "p3-symmetric", "p3-util", - "rand 0.10.0", - "serde", - "thiserror 2.0.18", - "tracing", -] - -[[package]] -name = "p3-miden-stateful-hasher" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec47a9d9615eb3d9d2a59b00d19751d9ad85384b55886827913d680d912eac6a" -dependencies = [ - "p3-field", - "p3-symmetric", -] - -[[package]] -name = "p3-miden-transcript" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c565647487e4a949f67e6f115b0391d6cb82ac8e561165789939bab23d0ae7" -dependencies = [ - "p3-challenger", - "p3-field", - "serde", - "thiserror 2.0.18", + "rand 0.10.1", ] [[package]] name = "p3-monty-31" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa8c99ec50c035020bbf5457c6a729ba6a975719c1a8dd3f16421081e4f650c" +checksum = "8724f330ea6d19dd4f2436aa0f88b5fcbf88f0f55ca7fccd3fea8b736dbcddad" dependencies = [ "itertools", "num-bigint", @@ -3815,7 +3749,7 @@ dependencies = [ "p3-symmetric", "p3-util", "paste", - "rand 0.10.0", + "rand 0.10.1", "serde", "spin 0.10.0", "tracing", @@ -3823,33 +3757,33 @@ dependencies = [ [[package]] name = "p3-poseidon1" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a018b618e3fa0aec8be933b1d8e404edd23f46991f6bf3f5c2f3f95e9413fe9" +checksum = "04e2a562fea210baae390a32f9ecf0dd8724ae3f4352d1c8e413077b6f00a162" dependencies = [ "p3-field", "p3-symmetric", - "rand 0.10.0", + "rand 0.10.1", ] [[package]] name = "p3-poseidon2" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256a668a9ba916f8767552f13d0ba50d18968bc74a623bfdafa41e2970c944d0" +checksum = "06394851c161d17e4aa4ad2aad5557d32f14cadd1dc838f965d8e1821a63b8c5" dependencies = [ "p3-field", "p3-mds", "p3-symmetric", "p3-util", - "rand 0.10.0", + "rand 0.10.1", ] [[package]] name = "p3-symmetric" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c60a71a1507c13611b0f2b0b6e83669fd5b76f8e3115bcbced5ccfdf3ca7807" +checksum = "9ac1a276d421f8ef3361bb7d8c39a02c93c6b3f10eeaa559cc4c50222f9a5b82" dependencies = [ "itertools", "p3-field", @@ -3859,9 +3793,9 @@ dependencies = [ [[package]] name = "p3-util" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8b766b9e9254bf3fa98d76e42cf8a5b30628c182dfd5272d270076ee12f0fc0" +checksum = "d08a58162a4c264269ef454f0b28dcda89939490eecacb2b2cf5b00f719b80f6" dependencies = [ "rayon", "serde", @@ -3958,18 +3892,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", @@ -3994,9 +3928,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" [[package]] name = "poly1305" @@ -4017,9 +3951,9 @@ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" dependencies = [ "portable-atomic", ] @@ -4105,7 +4039,7 @@ checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ "bitflags", "num-traits", - "rand 0.9.2", + "rand 0.9.4", "rand_chacha", "rand_xorshift", "regex-syntax", @@ -4169,11 +4103,11 @@ dependencies = [ [[package]] name = "prost-reflect" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b89455ef41ed200cafc47c76c552ee7792370ac420497e551f16123a9135f76e" +checksum = "590aa145fee8f7a26b5a6055365e7c5e89a5c1caae9869de76ec0ee73181a2f9" dependencies = [ - "logos", + "logos 0.16.1", "miette", "prost", "prost-types", @@ -4209,7 +4143,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "072eee358134396a4643dff81cfff1c255c9fbd3fb296be14bdb6a26f9156366" dependencies = [ - "logos", + "logos 0.15.1", "miette", "prost-types", "thiserror 2.0.18", @@ -4231,9 +4165,9 @@ dependencies = [ [[package]] name = "pulldown-cmark" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3a14896dfa883796f1cb410461aef38810ea05f2b2c33c5aded3649095fdad" +checksum = "e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e" dependencies = [ "bitflags", "memchr", @@ -4294,7 +4228,7 @@ dependencies = [ "bytes", "getrandom 0.3.4", "lru-slab", - "rand 0.9.2", + "rand 0.9.4", "ring", "rustc-hash", "rustls", @@ -4317,7 +4251,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -4343,9 +4277,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha", "rand_core 0.9.5", @@ -4353,11 +4287,11 @@ dependencies = [ [[package]] name = "rand" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" dependencies = [ - "rand_core 0.10.0", + "rand_core 0.10.1", ] [[package]] @@ -4390,9 +4324,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rand_hc" @@ -4432,9 +4366,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -4501,14 +4435,14 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "reqwest" -version = "0.13.2" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ "base64", "bytes", "futures-core", - "http 1.4.0", + "http 1.4.1", "http-body", "http-body-util", "hyper", @@ -4630,9 +4564,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.37" +version = "0.23.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" dependencies = [ "aws-lc-rs", "log", @@ -4658,9 +4592,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ "web-time", "zeroize", @@ -4668,9 +4602,9 @@ dependencies = [ [[package]] name = "rustls-platform-verifier" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" dependencies = [ "core-foundation", "core-foundation-sys", @@ -4695,9 +4629,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.10" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "aws-lc-rs", "ring", @@ -4853,9 +4787,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa", "memchr", @@ -4929,9 +4863,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +checksum = "77fd7028345d415a4034cf8777cd4f8ab1851274233b45f84e3d955502d93874" dependencies = [ "digest", "keccak", @@ -4948,9 +4882,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signal-hook-registry" @@ -4978,11 +4912,27 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" +[[package]] +name = "simd_cesu8" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +dependencies = [ + "rustc_version 0.4.1", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "siphasher" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" [[package]] name = "slab" @@ -5007,9 +4957,9 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" [[package]] name = "socket2" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" dependencies = [ "libc", "windows-sys 0.61.2", @@ -5058,12 +5008,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "strength_reduce" version = "0.2.4" @@ -5349,9 +5293,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.51.0" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd1c4c0fc4a7ab90fc15ef6daaa3ec3b893f004f915f2392557ed23237820cd" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", @@ -5458,7 +5402,7 @@ dependencies = [ "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", "toml_writer", - "winnow 1.0.1", + "winnow 1.0.3", ] [[package]] @@ -5508,7 +5452,7 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.1", + "winnow 1.0.3", ] [[package]] @@ -5525,16 +5469,16 @@ checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "tonic" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec" +checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" dependencies = [ "async-trait", "axum", "base64", "bytes", "h2", - "http 1.4.0", + "http 1.4.1", "http-body", "http-body-util", "hyper", @@ -5556,9 +5500,9 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1882ac3bf5ef12877d7ed57aad87e75154c11931c2ba7e6cde5e22d63522c734" +checksum = "c68f61875ac5293cf72e6c8cf0158086428c82c37229e98c840878f1706b0322" dependencies = [ "prettyplease", "proc-macro2", @@ -5568,9 +5512,9 @@ dependencies = [ [[package]] name = "tonic-health" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ff0636fef47afb3ec02818f5bceb4377b8abb9d6a386aeade18bd6212f8eb7" +checksum = "fcfab99db777fba2802f0dfa861d1628d1ae916fb199d29819941f139ae85082" dependencies = [ "prost", "tokio", @@ -5581,9 +5525,9 @@ dependencies = [ [[package]] name = "tonic-prost" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" +checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" dependencies = [ "bytes", "prost", @@ -5592,9 +5536,9 @@ dependencies = [ [[package]] name = "tonic-prost-build" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3144df636917574672e93d0f56d7edec49f90305749c668df5101751bb8f95a" +checksum = "654e5643eff75d7f8c99197ce1440ed19a3474eada74c12bbac488b2cafdae27" dependencies = [ "prettyplease", "proc-macro2", @@ -5608,13 +5552,13 @@ dependencies = [ [[package]] name = "tonic-web" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29453d84de05f4f1b573db22e6f9f6c95c189a6089a440c9a098aa9dea009299" +checksum = "b5e6a1b6319ca4b61a4c0f0c94d439c8f3ed344cca56fe0df40e1fe4be11380b" dependencies = [ "base64", "bytes", - "http 1.4.0", + "http 1.4.1", "http-body", "pin-project", "tokio-stream", @@ -5626,15 +5570,15 @@ dependencies = [ [[package]] name = "tonic-web-wasm-client" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e21e20b94f808d6f2244a5d960d02c28dd82066abddd2f27019bac0535f310" +checksum = "3c0469c353de5f665c95f898074b5b004b500c6722214c3249f1dc79c0a2a3f6" dependencies = [ "base64", "byteorder", "bytes", "futures-util", - "http 1.4.0", + "http 1.4.1", "http-body", "http-body-util", "httparse", @@ -5670,19 +5614,18 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ "async-compression", "bitflags", "bytes", "futures-core", "futures-util", - "http 1.4.0", + "http 1.4.1", "http-body", "http-body-util", - "iri-string", "pin-project-lite", "tokio", "tokio-util", @@ -5690,6 +5633,7 @@ dependencies = [ "tower-layer", "tower-service", "tracing", + "url", ] [[package]] @@ -5713,7 +5657,7 @@ dependencies = [ "axum", "forwarded-header-value", "governor", - "http 1.4.0", + "http 1.4.1", "pin-project", "thiserror 2.0.18", "tonic", @@ -5852,9 +5796,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "unarray" @@ -5956,9 +5900,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.23.0" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +checksum = "d258b83ceec21034727ecee8c382cfa6c3e133699b0742c64571814fb420c9f7" dependencies = [ "getrandom 0.4.2", "js-sys", @@ -5980,9 +5924,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version-ranges" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3595ffe225639f1e0fd8d7269dcc05d2fbfea93cfac2fea367daf1adb60aae91" +checksum = "31e9bd4e9c9ff6a2a9b5969462ba26216af3e010df0377dad8320ab515262ef8" dependencies = [ "smallvec", ] @@ -6029,11 +5973,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -6042,14 +5986,14 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.117" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" +checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409" dependencies = [ "cfg-if", "once_cell", @@ -6060,9 +6004,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.67" +version = "0.4.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" +checksum = "9473dbd2991ae90b6291c3c32c30c6187ac49aa32f9905d1cce280ec1e110b0f" dependencies = [ "js-sys", "wasm-bindgen", @@ -6070,9 +6014,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.117" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" +checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6080,9 +6024,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.117" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" +checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e" dependencies = [ "bumpalo", "proc-macro2", @@ -6093,9 +6037,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.117" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" +checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437" dependencies = [ "unicode-ident", ] @@ -6149,9 +6093,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.94" +version = "0.3.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" +checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436" dependencies = [ "js-sys", "wasm-bindgen", @@ -6189,9 +6133,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" dependencies = [ "rustls-pki-types", ] @@ -6288,20 +6232,20 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.45.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.42.2", + "windows-targets 0.52.6", ] [[package]] name = "windows-sys" -version = "0.52.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.52.6", + "windows-targets 0.53.5", ] [[package]] @@ -6313,21 +6257,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -6337,7 +6266,7 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "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", @@ -6345,10 +6274,21 @@ dependencies = [ ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" +name = "windows-targets" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] [[package]] name = "windows_aarch64_gnullvm" @@ -6357,10 +6297,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" +name = "windows_aarch64_gnullvm" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -6369,10 +6309,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] -name = "windows_i686_gnu" -version = "0.42.2" +name = "windows_aarch64_msvc" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -6380,6 +6320,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" @@ -6387,10 +6333,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] -name = "windows_i686_msvc" -version = "0.42.2" +name = "windows_i686_gnullvm" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -6399,10 +6345,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" +name = "windows_i686_msvc" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -6411,10 +6357,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" +name = "windows_x86_64_gnu" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -6423,10 +6369,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" +name = "windows_x86_64_gnullvm" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -6434,6 +6380,12 @@ 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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winnow" version = "0.7.15" @@ -6445,9 +6397,9 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" [[package]] name = "wit-bindgen" @@ -6458,6 +6410,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -6614,18 +6572,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "bce33a6288fa3f072a8c2c7d0f2fdbb90e28298f0135c1f99b96c3db2efcc60b" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "8fd425244944f4ab65ccff928e7323354c5a018c75838362fdce749dfad2ee1e" dependencies = [ "proc-macro2", "quote", @@ -6634,9 +6592,9 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] diff --git a/Cargo.toml b/Cargo.toml index 0838c41..09f6e95 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,9 +23,12 @@ miden-faucet-lib = { path = "crates/faucet", version = "0.15.0" } miden-pow-rate-limiter = { path = "crates/pow", version = "0.15.0" } # Miden dependencies. -miden-client = { git = "https://github.com/0xMiden/miden-client", rev = "a73c5bb61583cf480b5dcd28fc494ac63032d2c5" } -miden-client-cli = { git = "https://github.com/0xMiden/miden-client", rev = "a73c5bb61583cf480b5dcd28fc494ac63032d2c5" } -miden-client-sqlite-store = { git = "https://github.com/0xMiden/miden-client", rev = "a73c5bb61583cf480b5dcd28fc494ac63032d2c5" } +miden-client = { git = "https://github.com/0xMiden/miden-client", rev = "991ad0ef23708770139a9588c79c783a082ddacc" } +miden-client-cli = { git = "https://github.com/0xMiden/miden-client", rev = "991ad0ef23708770139a9588c79c783a082ddacc" } +miden-client-sqlite-store = { git = "https://github.com/0xMiden/miden-client", rev = "991ad0ef23708770139a9588c79c783a082ddacc" } +# `AuthMethod` (required by `create_fungible_faucet`) is not re-exported by miden-client, so we +# depend on miden-standards directly. Must match the version miden-client resolves (0.15.0). +miden-standards = { version = "0.15" } # External dependencies anyhow = { version = "1.0" } diff --git a/bin/faucet-client/Cargo.toml b/bin/faucet-client/Cargo.toml index da0ae5d..2f4cd26 100644 --- a/bin/faucet-client/Cargo.toml +++ b/bin/faucet-client/Cargo.toml @@ -29,6 +29,7 @@ tokio = { features = ["macros", "net", "rt-multi-thread", "sync url = { workspace = true } [dev-dependencies] -axum = { features = ["tokio"], version = "0.8" } -serde = { workspace = true } -tokio = { features = ["macros", "net", "rt-multi-thread", "time"], workspace = true } +axum = { features = ["tokio"], version = "0.8" } +miden-client = { features = ["testing"], workspace = true } +serde = { workspace = true } +tokio = { features = ["macros", "net", "rt-multi-thread", "time"], workspace = true } diff --git a/bin/faucet-client/tests/mint.rs b/bin/faucet-client/tests/mint.rs index 56d15f8..6fcf1cf 100644 --- a/bin/faucet-client/tests/mint.rs +++ b/bin/faucet-client/tests/mint.rs @@ -6,6 +6,7 @@ use axum::{Json, Router}; use clap::Parser; use miden_client::account::AccountId; use miden_client::note::NoteId; +use miden_client::testing::account_id::ACCOUNT_ID_REGULAR_PUBLIC_ACCOUNT_IMMUTABLE_CODE; use miden_client::utils::ToHex; use miden_faucet_client::mint::MintCmd; use miden_faucet_lib::requests::{ @@ -35,8 +36,7 @@ struct AppState { #[tokio::test] async fn mint_command_requests_public_note() { - let account_hex = "0xca8203e8e58cf72049b061afca78ce"; - let account_id = AccountId::from_hex(account_hex).unwrap(); + let account_id = AccountId::try_from(ACCOUNT_ID_REGULAR_PUBLIC_ACCOUNT_IMMUTABLE_CODE).unwrap(); let expected_amount = 123_000; // Create a valid Challenge with target = u64::MAX so any nonce will solve it diff --git a/bin/faucet/Cargo.toml b/bin/faucet/Cargo.toml index 97d24c6..58e77bf 100644 --- a/bin/faucet/Cargo.toml +++ b/bin/faucet/Cargo.toml @@ -21,6 +21,7 @@ miden-pow-rate-limiter = { features = ["tokio"], workspace = true } # Miden dependencies. miden-client = { features = ["tonic"], workspace = true } miden-client-sqlite-store = { workspace = true } +miden-standards = { workspace = true } # External dependencies. anyhow = { workspace = true } @@ -52,8 +53,10 @@ url = { workspace = true } [dev-dependencies] fantoccini = { version = "0.22" } -miden-node-proto = { branch = "next", git = "https://github.com/0xMiden/node.git" } -miden-testing = { branch = "next", default-features = false, git = "https://github.com/0xMiden/protocol.git" } +# Pinned to the same node commit miden-client resolves so the gRPC stub's proto types match the +# client's (the `igamigo-export-ntxauth` branch tip). +miden-node-proto = { git = "https://github.com/0xMiden/node.git", rev = "4bdb7853a0e91fb45ccf25352dd0cd3552732524" } +miden-testing = { default-features = false, version = "0.15" } reqwest = { features = ["json"], workspace = true } serde_json = { workspace = true } tokio = { features = ["macros", "process"], workspace = true } diff --git a/bin/faucet/src/api/send_note.rs b/bin/faucet/src/api/send_note.rs index 68c6183..e280cb6 100644 --- a/bin/faucet/src/api/send_note.rs +++ b/bin/faucet/src/api/send_note.rs @@ -42,7 +42,7 @@ pub async fn send_note( .ok_or(SendNoteError::NoteNotFound)?; let note = Note::try_from(note_record).unwrap(); - let header = note.header().clone(); + let header = *note.header(); let details: NoteDetails = note.into(); note_transport_client.send_note(header, details.to_bytes()).await?; diff --git a/bin/faucet/src/main.rs b/bin/faucet/src/main.rs index 84f6e70..e9bf3a0 100644 --- a/bin/faucet/src/main.rs +++ b/bin/faucet/src/main.rs @@ -14,24 +14,20 @@ use std::time::Duration; use anyhow::Context; use clap::{Parser, Subcommand}; use miden_client::account::component::{ - BasicFungibleFaucet, + AccessControl, + AuthScheme, BurnPolicyConfig, - FungibleTokenMetadata, + FungibleFaucet, MintPolicyConfig, - PolicyAuthority, + PolicyRegistration, TokenName, TokenPolicyManager, + TransferPolicy, + create_fungible_faucet, }; -use miden_client::account::{ - Account, - AccountBuilder, - AccountBuilderSchemaCommitmentExt, - AccountFile, - AccountStorageMode, - AccountType, -}; +use miden_client::account::{Account, AccountFile, AccountType}; use miden_client::asset::TokenSymbol; -use miden_client::auth::{AuthSchemeId, AuthSecretKey, AuthSingleSig}; +use miden_client::auth::AuthSecretKey; use miden_client::crypto::RandomCoin; use miden_client::crypto::rpo_falcon512::SecretKey; use miden_client::note_transport::grpc::GrpcNoteTransportClient; @@ -42,6 +38,7 @@ use miden_client_sqlite_store::SqliteStore; use miden_faucet_lib::types::AssetAmount; use miden_faucet_lib::{Faucet, FaucetConfig}; use miden_pow_rate_limiter::PoWRateLimiterConfig; +use miden_standards::AuthMethod; use rand::{Rng, SeedableRng}; use rand_chacha::ChaCha20Rng; use tokio::sync::mpsc; @@ -445,8 +442,8 @@ async fn run_faucet_command(cli: Cli) -> anyhow::Result<()> { baseline: pow_baseline, }; let faucet_account = faucet.faucet_account().await?; - let token_metadata = FungibleTokenMetadata::try_from(faucet_account.storage())?; - let max_supply = AssetAmount::new(token_metadata.max_supply().as_canonical_u64())?; + let token_metadata = FungibleFaucet::try_from(faucet_account.storage())?; + let max_supply = AssetAmount::new(token_metadata.max_supply().as_u64())?; let decimals = token_metadata.decimals(); let note_transport_client = note_transport_url.as_ref().map(|url| { @@ -580,33 +577,52 @@ fn create_faucet_account( let mut rng = ChaCha20Rng::from_seed(rand::random()); let secret = { let auth_seed: [u64; 4] = rng.random(); - let rng_seed = Word::from(auth_seed.map(Felt::new)); + // Mask to 63 bits so each value is always a valid field element (< Goldilocks modulus), + // since `Felt::new` is now fallible for out-of-range inputs. + let rng_seed = Word::new( + auth_seed.map(|v| Felt::new(v >> 1).expect("63-bit value is a valid field element")), + ); SecretKey::with_rng(&mut RandomCoin::new(rng_seed)) }; let symbol = TokenSymbol::try_from(token_symbol).context("failed to parse token symbol")?; let name = TokenName::new(&symbol.to_string()).context("failed to derive token name")?; - let token_metadata = FungibleTokenMetadata::builder(name, symbol, decimals, max_supply) + + let faucet = FungibleFaucet::builder() + .name(name) + .symbol(symbol) + .decimals(decimals) + .max_supply( + miden_client::asset::AssetAmount::new(max_supply) + .context("max supply exceeds the maximum asset amount")?, + ) .build() - .context("failed to build token metadata")?; - let auth_component = AuthSingleSig::new( - secret.public_key().to_commitment().into(), - AuthSchemeId::Falcon512Poseidon2, - ); - - let account = AccountBuilder::new(rng.random()) - .account_type(AccountType::FungibleFaucet) - .storage_mode(AccountStorageMode::Public) - .with_auth_component(auth_component) - .with_component(token_metadata) - .with_component(BasicFungibleFaucet) - .with_components(TokenPolicyManager::new( - PolicyAuthority::AuthControlled, - MintPolicyConfig::AllowAll, - BurnPolicyConfig::AllowAll, - )) - .build_with_schema_commitment() - .context("failed to create basic fungible faucet account")?; + .context("failed to build fungible faucet component")?; + + let auth_method = AuthMethod::SingleSig { + approver: (secret.public_key().to_commitment().into(), AuthScheme::Falcon512Poseidon2), + }; + + // Permissionless mint/burn/transfer policies, matching the previous AllowAll configuration. + let token_policy_manager = TokenPolicyManager::new() + .with_mint_policy(MintPolicyConfig::AllowAll, PolicyRegistration::Active) + .context("failed to set mint policy")? + .with_burn_policy(BurnPolicyConfig::AllowAll, PolicyRegistration::Active) + .context("failed to set burn policy")? + .with_send_policy(TransferPolicy::AllowAll, PolicyRegistration::Active) + .context("failed to set send policy")? + .with_receive_policy(TransferPolicy::AllowAll, PolicyRegistration::Active) + .context("failed to set receive policy")?; + + let account = create_fungible_faucet( + rng.random(), + faucet, + AccountType::Public, + auth_method, + AccessControl::AuthControlled, + token_policy_manager, + ) + .context("failed to create basic fungible faucet account")?; Ok((account, AuthSecretKey::Falcon512Poseidon2(secret))) } diff --git a/bin/faucet/src/testing/stub_rpc_api.rs b/bin/faucet/src/testing/stub_rpc_api.rs index 3689584..5d78879 100644 --- a/bin/faucet/src/testing/stub_rpc_api.rs +++ b/bin/faucet/src/testing/stub_rpc_api.rs @@ -42,20 +42,48 @@ impl api_server::Api for StubRpcApi { unimplemented!() } - async fn submit_proven_transaction( + async fn submit_proven_tx( &self, _request: Request, ) -> Result, Status> { Ok(Response::new(proto::blockchain::BlockNumber { block_num: 0 })) } - async fn submit_proven_batch( + async fn submit_proven_tx_batch( &self, _request: Request, ) -> Result, Status> { unimplemented!() } + type BlockSubscriptionStream = std::pin::Pin< + Box< + dyn tokio_stream::Stream> + + Send, + >, + >; + + async fn block_subscription( + &self, + _request: Request, + ) -> Result, Status> { + unimplemented!() + } + + type ProofSubscriptionStream = std::pin::Pin< + Box< + dyn tokio_stream::Stream> + + Send, + >, + >; + + async fn proof_subscription( + &self, + _request: Request, + ) -> Result, Status> { + unimplemented!() + } + async fn get_account( &self, _request: Request, @@ -143,9 +171,10 @@ impl api_server::Api for StubRpcApi { let mock_chain = MockChain::new(); Ok(Response::new(proto::rpc::SyncChainMmrResponse { - block_range: Some(proto::rpc::BlockRange { block_from: 0, block_to: Some(0) }), + block_range: Some(proto::rpc::BlockRange { block_from: 0, block_to: 0 }), mmr_delta: Some(proto::primitives::MmrDelta { forest: 0, data: vec![] }), block_header: Some(mock_chain.latest_block_header().into()), + block_signature: None, })) } diff --git a/crates/faucet/Cargo.toml b/crates/faucet/Cargo.toml index 2ca3884..18b00f5 100644 --- a/crates/faucet/Cargo.toml +++ b/crates/faucet/Cargo.toml @@ -32,5 +32,6 @@ url = { workspace = true } miden-client = { workspace = true } [dev-dependencies] -miden-client = { features = ["testing", "tonic"], workspace = true } -uuid = { workspace = true } +miden-client = { features = ["testing", "tonic"], workspace = true } +miden-standards = { workspace = true } +uuid = { workspace = true } diff --git a/crates/faucet/asm/tx_scripts/mint.masm b/crates/faucet/asm/tx_scripts/mint.masm index 2984b76..17fe1a7 100644 --- a/crates/faucet/asm/tx_scripts/mint.masm +++ b/crates/faucet/asm/tx_scripts/mint.masm @@ -17,7 +17,9 @@ end #! Inputs: #! Operand stack: [COMMITMENT] #! Advice map: { -#! COMMITMENT: [n, RECIPIENT_1, note_type_1, tag_1, amount_1, RECIPIENT_2, note_type_2, tag_2, amount_2, ...] +#! COMMITMENT: [n, +#! RECIPIENT_1, note_type_1, tag_1, amount_1, ASSET_KEY_1, +#! RECIPIENT_2, note_type_2, tag_2, amount_2, ASSET_KEY_2, ...] #! } #! Outputs: #! Operant stack: [] @@ -28,7 +30,8 @@ end #! - tag is the tag to be included in the note. #! - note_type is the type of the note that holds the asset. #! - RECIPIENT is the recipient of the asset, i.e., -#! hash(hash(hash(serial_num, [0; 4]), script_root), input_commitment). +#! hash(hash(hash(serial_num, [0; 4]), script_root), storage_commitment). +#! - ASSET_KEY is the vault key of the fungible asset to mint (constant per faucet). begin # Set the transaction expiration delta (10 blocks) push.EXPIRATION_DELTA @@ -37,26 +40,43 @@ begin adv.push_mapval dropw # OS => [] - # AS => [n, RECIPIENT_1, note_type_1, tag_1, amount_1, ...] + # AS => [n, RECIPIENT_1, note_type_1, tag_1, amount_1, ASSET_KEY_1, ...] - adv_push.1 push.0 + adv_push push.0 # OS => [0, n] - # AS => [RECIPIENT_1, note_type_1, tag_1, amount_1, ...] + # AS => [RECIPIENT_1, note_type_1, tag_1, amount_1, ASSET_KEY_1, ...] exec.check_continue_neq # OS => [0, 0, n] while.true # OS => [i, n] - # AS => [RECIPIENT_i, note_type_i, tag_i, amount_i, ...] + # AS => [RECIPIENT_i, note_type_i, tag_i, amount_i, ASSET_KEY_i, ...] - # set the params for the distribute call by getting values from the advice stack - # We need stack: [amount, tag, note_type, RECIPIENT(4), pad(9), i, n] - push.0.0.0.0.0.0.0.0.0 adv_push.4 adv_push.3 - # OS => [amount_i, tag_i, note_type_i, RECIPIENT_i(4), pad(9), i, n] + # Build the operand stack expected by mint_and_send: + # [ASSET_KEY, ASSET_VALUE, tag, note_type, RECIPIENT, pad(2)] + # where ASSET_VALUE = [amount, 0, 0, 0]. We construct it from the deepest element up, + # reading the per-recipient values from the advice stack in order. + push.0.0 + # OS => [pad(2), i, n] + + repeat.4 adv_push end + # OS => [RECIPIENT_i(4), pad(2), i, n] + + adv_push + # OS => [note_type_i, RECIPIENT_i(4), pad(2), i, n] + + adv_push + # OS => [tag_i, note_type_i, RECIPIENT_i(4), pad(2), i, n] + + push.0.0.0 adv_push + # OS => [ASSET_VALUE_i(4)=[amount_i,0,0,0], tag_i, note_type_i, RECIPIENT_i(4), pad(2), i, n] + + repeat.4 adv_push end + # OS => [ASSET_KEY_i(4), ASSET_VALUE_i(4), tag_i, note_type_i, RECIPIENT_i(4), pad(2), i, n] # AS => [...] - call.::miden::standards::faucets::basic_fungible::mint_and_send + call.::miden::standards::faucets::fungible::mint_and_send # OS => [note_idx, pad(15), i, n] dropw dropw dropw dropw diff --git a/crates/faucet/src/lib.rs b/crates/faucet/src/lib.rs index ceef8b4..86b7426 100644 --- a/crates/faucet/src/lib.rs +++ b/crates/faucet/src/lib.rs @@ -4,14 +4,14 @@ use std::sync::Arc; use std::time::Duration; use anyhow::Context; -use miden_client::account::component::FungibleTokenMetadata; +use miden_client::account::component::FungibleFaucet; use miden_client::account::{Account, AccountId, Address, NetworkId}; -use miden_client::asset::FungibleAsset; +use miden_client::asset::{AssetCallbackFlag, FungibleAsset}; use miden_client::auth::AuthSecretKey; use miden_client::builder::ClientBuilder; use miden_client::crypto::{RandomCoin, Rpo256}; use miden_client::keystore::{FilesystemKeyStore, Keystore}; -use miden_client::note::{Note, NoteAttachment, NoteError, NoteId, P2idNote}; +use miden_client::note::{Note, NoteAttachments, NoteError, NoteId, P2idNote}; use miden_client::rpc::{Endpoint, GrpcClient, GrpcError, RpcError}; use miden_client::store::{NoteFilter, Store, TransactionFilter}; use miden_client::sync::{AccountSyncHint, StateSync, StateSyncInput, SyncSummary}; @@ -179,13 +179,13 @@ impl Faucet { let account = client.get_account(account_id).await?.context("no account found")?; - let token_metadata = FungibleTokenMetadata::try_from(account.storage())?; + let token_metadata = FungibleFaucet::try_from(account.storage())?; let tx_prover: Arc = match config.remote_tx_prover_url.clone() { Some(url) => Arc::new(RemoteTransactionProver::new(url)), None => Arc::new(LocalTransactionProver::default()), }; let id = FaucetId::new(account.id(), config.network_id.clone()); - let max_supply = AssetAmount::new(token_metadata.max_supply().as_canonical_u64())?; + let max_supply = AssetAmount::new(token_metadata.max_supply().as_u64())?; let issuance_value = Self::read_issuance_from_store(&client, account.id()).await?; let (issuance, _) = watch::channel(issuance_value); @@ -326,7 +326,12 @@ impl Faucet { // Build notes let mut rng = { let auth_seed: [u64; 4] = rng().random(); - let rng_seed = Word::from(auth_seed.map(Felt::new)); + // Mask to 63 bits so each value is always a valid field element (< Goldilocks + // modulus), since `Felt::new` is now fallible for out-of-range inputs. + let rng_seed = Word::new( + auth_seed + .map(|v| Felt::new(v >> 1).expect("63-bit value is a valid field element")), + ); RandomCoin::new(rng_seed) }; let notes = build_p2id_notes(&self.faucet_id(), &valid_requests, &mut rng)?; @@ -408,15 +413,26 @@ impl Faucet { let expected_output_recipients: Vec<_> = notes.iter().map(Note::recipient).cloned().collect(); let n = notes.len() as u64; - let mut note_data = vec![Felt::new(n)]; + let mut note_data = vec![Felt::new_unchecked(n)]; for note in notes { // SAFETY: these are p2id notes with only one fungible asset - let amount = note.assets().iter().next().unwrap().unwrap_fungible().amount(); + let asset = note.assets().iter().next().unwrap().unwrap_fungible(); + let amount = asset.amount().as_u64(); + // The fungible asset's vault key is constant per faucet, but `mint_and_send` now + // expects it on the operand stack, so we pass it alongside every recipient. The + // ordering here must match the `adv_push` sequence in `mint.masm`. + // + // The faucet registers transfer policies, which enable asset callbacks. The kernel + // bakes the callbacks flag into the asset key it derives for the active faucet, so the + // ASSET_KEY we supply must carry the same `Enabled` flag or the asset-binding check in + // `mint_and_send` fails. + let asset_key = asset.with_callbacks(AssetCallbackFlag::Enabled).to_key_word(); note_data.extend(note.recipient().digest().iter().rev()); note_data.push(Felt::from(note.metadata().note_type())); note_data.push(Felt::from(note.metadata().tag())); - note_data.push(Felt::new(amount)); + note_data.push(Felt::new_unchecked(amount)); + note_data.extend(asset_key.iter().rev()); } let note_data_commitment = Rpo256::hash_elements(¬e_data); let advice_map = [(note_data_commitment, note_data)]; @@ -570,8 +586,8 @@ impl Faucet { // faucet storage is light since stores only that. let account = client.get_account(account_id).await?.context("account not found in store")?; - let token_metadata = FungibleTokenMetadata::try_from(account.storage())?; - Ok(AssetAmount::new(token_metadata.token_supply().as_canonical_u64())?) + let token_metadata = FungibleFaucet::try_from(account.storage())?; + Ok(AssetAmount::new(token_metadata.token_supply().as_u64())?) } } @@ -643,14 +659,19 @@ fn build_p2id_notes( let mut notes = Vec::new(); for request in requests { // SAFETY: source is definitely a faucet account, and the amount is valid. - let asset = - FungibleAsset::new(source.account_id, request.asset_amount.base_units()).unwrap(); + // + // The faucet enables asset callbacks (it registers transfer policies), so the asset it + // mints carries the `Enabled` callbacks flag. We build the note with the same flag so its + // `NoteId` matches the note actually created on-chain by `mint_and_send`. + let asset = FungibleAsset::new(source.account_id, request.asset_amount.base_units()) + .unwrap() + .with_callbacks(AssetCallbackFlag::Enabled); let note = P2idNote::create( source.account_id, request.account_id, vec![asset.into()], request.note_type.into(), - NoteAttachment::default(), + NoteAttachments::default(), rng, ) .inspect_err( @@ -665,26 +686,27 @@ fn build_p2id_notes( mod tests { use std::env::temp_dir; + use miden_client::account::AccountType; use miden_client::account::component::{ - BasicFungibleFaucet, + AccessControl, + AuthScheme, BurnPolicyConfig, + FungibleFaucet, MintPolicyConfig, - PolicyAuthority, + PolicyRegistration, TokenName, TokenPolicyManager, - }; - use miden_client::account::{ - AccountBuilder, - AccountBuilderSchemaCommitmentExt, - AccountStorageMode, - AccountType, + TransferPolicy, + create_fungible_faucet, }; use miden_client::asset::TokenSymbol; - use miden_client::auth::{AuthSchemeId, AuthSecretKey, AuthSingleSig}; + use miden_client::auth::AuthSecretKey; use miden_client::crypto::rpo_falcon512::SecretKey; use miden_client::store::{NoteFilter, Store}; use miden_client::testing::MockChain; + use miden_client::testing::account_id::ACCOUNT_ID_REGULAR_PUBLIC_ACCOUNT_IMMUTABLE_CODE; use miden_client::testing::mock::MockRpcApi; + use miden_standards::AuthMethod; use tokio::sync::{mpsc, oneshot}; use uuid::Uuid; @@ -700,7 +722,8 @@ mod tests { for i in 0..batch_size { let (sender, receiver) = oneshot::channel(); let mint_request = MintRequest { - account_id: AccountId::try_from(1).unwrap(), + account_id: AccountId::try_from(ACCOUNT_ID_REGULAR_PUBLIC_ACCOUNT_IMMUTABLE_CODE) + .unwrap(), note_type: if i % 2 == 0 { NoteType::Public } else { @@ -735,27 +758,40 @@ mod tests { /// Builds a faucet using a mock client. async fn build_faucet(store: Arc) -> Faucet { let secret = SecretKey::new(); - let symbol = TokenSymbol::new("TEST").unwrap(); + let symbol = TokenSymbol::try_from("TEST").unwrap(); let name = TokenName::new(&symbol.to_string()).unwrap(); - let token_metadata = FungibleTokenMetadata::builder(name, symbol, 6, 1_000_000_000_000_u64) + + let faucet = FungibleFaucet::builder() + .name(name) + .symbol(symbol) + .decimals(6) + .max_supply(miden_client::asset::AssetAmount::new(1_000_000_000_000).unwrap()) .build() .unwrap(); - let account = AccountBuilder::new(rand::random()) - .account_type(AccountType::FungibleFaucet) - .storage_mode(AccountStorageMode::Public) - .with_auth_component(AuthSingleSig::new( - secret.public_key().to_commitment().into(), - AuthSchemeId::Falcon512Poseidon2, - )) - .with_component(token_metadata) - .with_component(BasicFungibleFaucet) - .with_components(TokenPolicyManager::new( - PolicyAuthority::AuthControlled, - MintPolicyConfig::AllowAll, - BurnPolicyConfig::AllowAll, - )) - .build_with_schema_commitment() + + let auth_method = AuthMethod::SingleSig { + approver: (secret.public_key().to_commitment().into(), AuthScheme::Falcon512Poseidon2), + }; + + let token_policy_manager = TokenPolicyManager::new() + .with_mint_policy(MintPolicyConfig::AllowAll, PolicyRegistration::Active) + .unwrap() + .with_burn_policy(BurnPolicyConfig::AllowAll, PolicyRegistration::Active) + .unwrap() + .with_send_policy(TransferPolicy::AllowAll, PolicyRegistration::Active) + .unwrap() + .with_receive_policy(TransferPolicy::AllowAll, PolicyRegistration::Active) .unwrap(); + + let account = create_fungible_faucet( + rand::random(), + faucet, + AccountType::Public, + auth_method, + AccessControl::AuthControlled, + token_policy_manager, + ) + .unwrap(); let key = AuthSecretKey::Falcon512Poseidon2(secret); let keystore_path = temp_dir().join(format!("keystore-{}", Uuid::new_v4())); diff --git a/crates/faucet/src/types.rs b/crates/faucet/src/types.rs index 31e2dd2..e15375a 100644 --- a/crates/faucet/src/types.rs +++ b/crates/faucet/src/types.rs @@ -17,7 +17,7 @@ impl std::fmt::Display for AssetAmount { impl AssetAmount { /// The absolute maximum asset amount allowed by the network. - pub const MAX: u64 = FungibleAsset::MAX_AMOUNT; + pub const MAX: u64 = FungibleAsset::MAX_AMOUNT.as_u64(); /// Creates an [`AssetAmount`] from a base unit amount. /// From ba5dfb698fe8b4deaa365293b5bad99f1cf9928c Mon Sep 17 00:00:00 2001 From: tomasarrachea Date: Fri, 29 May 2026 18:11:32 -0300 Subject: [PATCH 5/7] fix: test --- Cargo.toml | 2 +- bin/faucet/Cargo.toml | 3 ++- bin/faucet/src/main.rs | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 09f6e95..a327c6d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ miden-client-cli = { git = "https://github.com/0xMiden/miden-client", r miden-client-sqlite-store = { git = "https://github.com/0xMiden/miden-client", rev = "991ad0ef23708770139a9588c79c783a082ddacc" } # `AuthMethod` (required by `create_fungible_faucet`) is not re-exported by miden-client, so we # depend on miden-standards directly. Must match the version miden-client resolves (0.15.0). -miden-standards = { version = "0.15" } +miden-standards = { version = "0.15" } # External dependencies anyhow = { version = "1.0" } diff --git a/bin/faucet/Cargo.toml b/bin/faucet/Cargo.toml index 58e77bf..261ea58 100644 --- a/bin/faucet/Cargo.toml +++ b/bin/faucet/Cargo.toml @@ -52,7 +52,8 @@ tracing-subscriber = { workspace = true } url = { workspace = true } [dev-dependencies] -fantoccini = { version = "0.22" } +fantoccini = { version = "0.22" } +miden-client = { features = ["testing"], workspace = true } # Pinned to the same node commit miden-client resolves so the gRPC stub's proto types match the # client's (the `igamigo-export-ntxauth` branch tip). miden-node-proto = { git = "https://github.com/0xMiden/node.git", rev = "4bdb7853a0e91fb45ccf25352dd0cd3552732524" } diff --git a/bin/faucet/src/main.rs b/bin/faucet/src/main.rs index e9bf3a0..a9b4c4e 100644 --- a/bin/faucet/src/main.rs +++ b/bin/faucet/src/main.rs @@ -640,6 +640,7 @@ mod tests { use clap::Parser; use fantoccini::ClientBuilder; use miden_client::account::{AccountFile, AccountId, Address, NetworkId}; + use miden_client::testing::account_id::ACCOUNT_ID_REGULAR_PUBLIC_ACCOUNT_IMMUTABLE_CODE; use miden_client_sqlite_store::SqliteStore; use rand::SeedableRng; use serde_json::{Map, json}; @@ -853,7 +854,8 @@ mod tests { assert_eq!(title, "Miden Faucet"); let network_id = NetworkId::Testnet; - let account_id = AccountId::try_from(0).unwrap(); + let account_id = + AccountId::try_from(ACCOUNT_ID_REGULAR_PUBLIC_ACCOUNT_IMMUTABLE_CODE).unwrap(); let address = Address::new(account_id); let address_bech32 = address.encode(network_id); From 4e8e2a56d3ef46fa2f06bbeca08de103566b5b91 Mon Sep 17 00:00:00 2001 From: tomasarrachea Date: Thu, 4 Jun 2026 20:40:02 -0300 Subject: [PATCH 6/7] chore: update miden-client --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 6 +++--- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea728f0..df8f05d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2451,7 +2451,7 @@ dependencies = [ [[package]] name = "miden-client" version = "0.15.0" -source = "git+https://github.com/0xMiden/miden-client?rev=991ad0ef23708770139a9588c79c783a082ddacc#991ad0ef23708770139a9588c79c783a082ddacc" +source = "git+https://github.com/0xMiden/miden-client?rev=4adc065b3cd3c83a12e99f7cd8c9776a160a5db4#4adc065b3cd3c83a12e99f7cd8c9776a160a5db4" dependencies = [ "anyhow", "async-trait", @@ -2460,7 +2460,7 @@ dependencies = [ "getrandom 0.3.4", "gloo-timers", "hex", - "miden-node-proto-build 0.15.0 (git+https://github.com/0xMiden/node.git?branch=igamigo-export-ntxauth)", + "miden-node-proto-build 0.15.0-rc.0", "miden-note-transport-proto-build", "miden-protocol", "miden-remote-prover-client", @@ -2489,7 +2489,7 @@ dependencies = [ [[package]] name = "miden-client-cli" version = "0.15.0" -source = "git+https://github.com/0xMiden/miden-client?rev=991ad0ef23708770139a9588c79c783a082ddacc#991ad0ef23708770139a9588c79c783a082ddacc" +source = "git+https://github.com/0xMiden/miden-client?rev=4adc065b3cd3c83a12e99f7cd8c9776a160a5db4#4adc065b3cd3c83a12e99f7cd8c9776a160a5db4" dependencies = [ "clap", "comfy-table", @@ -2510,7 +2510,7 @@ dependencies = [ [[package]] name = "miden-client-sqlite-store" version = "0.15.0" -source = "git+https://github.com/0xMiden/miden-client?rev=991ad0ef23708770139a9588c79c783a082ddacc#991ad0ef23708770139a9588c79c783a082ddacc" +source = "git+https://github.com/0xMiden/miden-client?rev=4adc065b3cd3c83a12e99f7cd8c9776a160a5db4#4adc065b3cd3c83a12e99f7cd8c9776a160a5db4" dependencies = [ "anyhow", "async-trait", @@ -2852,7 +2852,7 @@ dependencies = [ "hex", "http 1.4.1", "miden-node-grpc-error-macro", - "miden-node-proto-build 0.15.0 (git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524)", + "miden-node-proto-build 0.15.0", "miden-node-utils", "miden-protocol", "miden-standards", @@ -2868,8 +2868,8 @@ dependencies = [ [[package]] name = "miden-node-proto-build" -version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?branch=igamigo-export-ntxauth#4bdb7853a0e91fb45ccf25352dd0cd3552732524" +version = "0.15.0-rc.0" +source = "git+https://github.com/0xMiden/node.git?branch=igamigo-reexport-ntxauth#1b8bd2910c873ed02bf9ebb86c6f1d6a3bad4bf2" dependencies = [ "build-rs", "codegen", @@ -3044,13 +3044,13 @@ dependencies = [ [[package]] name = "miden-remote-prover-client" -version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?branch=igamigo-export-ntxauth#4bdb7853a0e91fb45ccf25352dd0cd3552732524" +version = "0.15.0-rc.0" +source = "git+https://github.com/0xMiden/node.git?branch=igamigo-reexport-ntxauth#1b8bd2910c873ed02bf9ebb86c6f1d6a3bad4bf2" dependencies = [ "build-rs", "fs-err", "getrandom 0.4.2", - "miden-node-proto-build 0.15.0 (git+https://github.com/0xMiden/node.git?branch=igamigo-export-ntxauth)", + "miden-node-proto-build 0.15.0-rc.0", "miden-protocol", "miden-tx", "miette", diff --git a/Cargo.toml b/Cargo.toml index a327c6d..232cc8f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,9 +23,9 @@ miden-faucet-lib = { path = "crates/faucet", version = "0.15.0" } miden-pow-rate-limiter = { path = "crates/pow", version = "0.15.0" } # Miden dependencies. -miden-client = { git = "https://github.com/0xMiden/miden-client", rev = "991ad0ef23708770139a9588c79c783a082ddacc" } -miden-client-cli = { git = "https://github.com/0xMiden/miden-client", rev = "991ad0ef23708770139a9588c79c783a082ddacc" } -miden-client-sqlite-store = { git = "https://github.com/0xMiden/miden-client", rev = "991ad0ef23708770139a9588c79c783a082ddacc" } +miden-client = { git = "https://github.com/0xMiden/miden-client", rev = "4adc065b3cd3c83a12e99f7cd8c9776a160a5db4" } +miden-client-cli = { git = "https://github.com/0xMiden/miden-client", rev = "4adc065b3cd3c83a12e99f7cd8c9776a160a5db4" } +miden-client-sqlite-store = { git = "https://github.com/0xMiden/miden-client", rev = "4adc065b3cd3c83a12e99f7cd8c9776a160a5db4" } # `AuthMethod` (required by `create_fungible_faucet`) is not re-exported by miden-client, so we # depend on miden-standards directly. Must match the version miden-client resolves (0.15.0). miden-standards = { version = "0.15" } From 6b0a5ce0ac0c976e093fa61f7886f4bd66fe97aa Mon Sep 17 00:00:00 2001 From: tomasarrachea Date: Fri, 5 Jun 2026 11:32:41 -0300 Subject: [PATCH 7/7] feat: update details --- Cargo.lock | 101 +++++++++++++++++++++++++++++++++------ bin/faucet/Cargo.toml | 4 +- bin/faucet/src/main.rs | 10 ++-- crates/faucet/src/lib.rs | 35 +++++--------- 4 files changed, 103 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index df8f05d..219d648 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -267,6 +267,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "backon" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef" +dependencies = [ + "fastrand", + "gloo-timers", + "tokio", +] + [[package]] name = "backtrace" version = "0.3.76" @@ -639,6 +650,16 @@ dependencies = [ "version_check", ] +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation" version = "0.10.1" @@ -1057,6 +1078,15 @@ dependencies = [ "log", ] +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "env_filter" version = "1.0.1" @@ -1741,9 +1771,11 @@ dependencies = [ "percent-encoding", "pin-project-lite", "socket2", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] @@ -2460,7 +2492,7 @@ dependencies = [ "getrandom 0.3.4", "gloo-timers", "hex", - "miden-node-proto-build 0.15.0-rc.0", + "miden-node-proto-build 0.15.0-rc.0 (git+https://github.com/0xMiden/node.git?branch=igamigo-reexport-ntxauth)", "miden-note-transport-proto-build", "miden-protocol", "miden-remote-prover-client", @@ -2833,8 +2865,9 @@ dependencies = [ [[package]] name = "miden-node-grpc-error-macro" -version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524#4bdb7853a0e91fb45ccf25352dd0cd3552732524" +version = "0.15.0-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7c3891fc7d8d42e364075d2915df1b1f3a333f0f787cbe814cd440e53177495" dependencies = [ "quote", "syn 2.0.117", @@ -2842,8 +2875,9 @@ dependencies = [ [[package]] name = "miden-node-proto" -version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524#4bdb7853a0e91fb45ccf25352dd0cd3552732524" +version = "0.15.0-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce95eb1087cad78167fdcf3ef510fa83c7b0b38b9dcff5b22ba1a7c6f45844" dependencies = [ "anyhow", "build-rs", @@ -2852,7 +2886,7 @@ dependencies = [ "hex", "http 1.4.1", "miden-node-grpc-error-macro", - "miden-node-proto-build 0.15.0", + "miden-node-proto-build 0.15.0-rc.0 (registry+https://github.com/rust-lang/crates.io-index)", "miden-node-utils", "miden-protocol", "miden-standards", @@ -2869,7 +2903,8 @@ dependencies = [ [[package]] name = "miden-node-proto-build" version = "0.15.0-rc.0" -source = "git+https://github.com/0xMiden/node.git?branch=igamigo-reexport-ntxauth#1b8bd2910c873ed02bf9ebb86c6f1d6a3bad4bf2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2944381c6017ef98e1a840d736bffbfb1053ef420f152be47e9a5cdea62278e" dependencies = [ "build-rs", "codegen", @@ -2881,8 +2916,8 @@ dependencies = [ [[package]] name = "miden-node-proto-build" -version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524#4bdb7853a0e91fb45ccf25352dd0cd3552732524" +version = "0.15.0-rc.0" +source = "git+https://github.com/0xMiden/node.git?branch=igamigo-reexport-ntxauth#1b8bd2910c873ed02bf9ebb86c6f1d6a3bad4bf2" dependencies = [ "build-rs", "codegen", @@ -2894,10 +2929,12 @@ dependencies = [ [[package]] name = "miden-node-utils" -version = "0.15.0" -source = "git+https://github.com/0xMiden/node.git?rev=4bdb7853a0e91fb45ccf25352dd0cd3552732524#4bdb7853a0e91fb45ccf25352dd0cd3552732524" +version = "0.15.0-rc.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96efd0754a0d664fc727a59efbfbe177699d0bc7b4d6da78c59ddbda3e0ca6c5" dependencies = [ "anyhow", + "backon", "bytes", "clap", "fs-err", @@ -2912,6 +2949,7 @@ dependencies = [ "opentelemetry-otlp", "opentelemetry_sdk", "rand 0.9.4", + "reqwest", "thiserror 2.0.18", "tokio", "tonic", @@ -3050,7 +3088,7 @@ dependencies = [ "build-rs", "fs-err", "getrandom 0.4.2", - "miden-node-proto-build 0.15.0-rc.0", + "miden-node-proto-build 0.15.0-rc.0 (git+https://github.com/0xMiden/node.git?branch=igamigo-reexport-ntxauth)", "miden-protocol", "miden-tx", "miette", @@ -4441,7 +4479,9 @@ checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ "base64", "bytes", + "encoding_rs", "futures-core", + "h2", "http 1.4.1", "http-body", "http-body-util", @@ -4450,6 +4490,7 @@ dependencies = [ "hyper-util", "js-sys", "log", + "mime", "percent-encoding", "pin-project-lite", "quinn", @@ -4606,7 +4647,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" dependencies = [ - "core-foundation", + "core-foundation 0.10.1", "core-foundation-sys", "jni", "log", @@ -4702,7 +4743,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ "bitflags", - "core-foundation", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -5110,6 +5151,27 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "system-configuration" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" +dependencies = [ + "bitflags", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "target-triple" version = "1.0.0" @@ -6212,6 +6274,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link", + "windows-result", + "windows-strings", +] + [[package]] name = "windows-result" version = "0.4.1" diff --git a/bin/faucet/Cargo.toml b/bin/faucet/Cargo.toml index 261ea58..1024ed9 100644 --- a/bin/faucet/Cargo.toml +++ b/bin/faucet/Cargo.toml @@ -53,10 +53,10 @@ url = { workspace = true } [dev-dependencies] fantoccini = { version = "0.22" } -miden-client = { features = ["testing"], workspace = true } +miden-client = { workspace = true } # Pinned to the same node commit miden-client resolves so the gRPC stub's proto types match the # client's (the `igamigo-export-ntxauth` branch tip). -miden-node-proto = { git = "https://github.com/0xMiden/node.git", rev = "4bdb7853a0e91fb45ccf25352dd0cd3552732524" } +miden-node-proto = { version = "0.15.0-rc.0" } miden-testing = { default-features = false, version = "0.15" } reqwest = { features = ["json"], workspace = true } serde_json = { workspace = true } diff --git a/bin/faucet/src/main.rs b/bin/faucet/src/main.rs index a9b4c4e..94dcdc3 100644 --- a/bin/faucet/src/main.rs +++ b/bin/faucet/src/main.rs @@ -107,7 +107,7 @@ pub enum Command { short, long, value_name = "STRING", - required_unless_present = "import_account_path", + required_unless_present = "import_account_path", env = ENV_TOKEN_SYMBOL )] token_symbol: Option, @@ -577,11 +577,7 @@ fn create_faucet_account( let mut rng = ChaCha20Rng::from_seed(rand::random()); let secret = { let auth_seed: [u64; 4] = rng.random(); - // Mask to 63 bits so each value is always a valid field element (< Goldilocks modulus), - // since `Felt::new` is now fallible for out-of-range inputs. - let rng_seed = Word::new( - auth_seed.map(|v| Felt::new(v >> 1).expect("63-bit value is a valid field element")), - ); + let rng_seed = Word::from(auth_seed.map(Felt::new_unchecked)); SecretKey::with_rng(&mut RandomCoin::new(rng_seed)) }; @@ -603,7 +599,7 @@ fn create_faucet_account( approver: (secret.public_key().to_commitment().into(), AuthScheme::Falcon512Poseidon2), }; - // Permissionless mint/burn/transfer policies, matching the previous AllowAll configuration. + // Permissionless mint/burn/send/receive policies. let token_policy_manager = TokenPolicyManager::new() .with_mint_policy(MintPolicyConfig::AllowAll, PolicyRegistration::Active) .context("failed to set mint policy")? diff --git a/crates/faucet/src/lib.rs b/crates/faucet/src/lib.rs index 86b7426..02caa53 100644 --- a/crates/faucet/src/lib.rs +++ b/crates/faucet/src/lib.rs @@ -326,12 +326,7 @@ impl Faucet { // Build notes let mut rng = { let auth_seed: [u64; 4] = rng().random(); - // Mask to 63 bits so each value is always a valid field element (< Goldilocks - // modulus), since `Felt::new` is now fallible for out-of-range inputs. - let rng_seed = Word::new( - auth_seed - .map(|v| Felt::new(v >> 1).expect("63-bit value is a valid field element")), - ); + let rng_seed = Word::new(auth_seed.map(Felt::new_unchecked)); RandomCoin::new(rng_seed) }; let notes = build_p2id_notes(&self.faucet_id(), &valid_requests, &mut rng)?; @@ -418,14 +413,7 @@ impl Faucet { // SAFETY: these are p2id notes with only one fungible asset let asset = note.assets().iter().next().unwrap().unwrap_fungible(); let amount = asset.amount().as_u64(); - // The fungible asset's vault key is constant per faucet, but `mint_and_send` now - // expects it on the operand stack, so we pass it alongside every recipient. The - // ordering here must match the `adv_push` sequence in `mint.masm`. - // - // The faucet registers transfer policies, which enable asset callbacks. The kernel - // bakes the callbacks flag into the asset key it derives for the active faucet, so the - // ASSET_KEY we supply must carry the same `Enabled` flag or the asset-binding check in - // `mint_and_send` fails. + // The faucet registers transfer policies, which enable asset callbacks. let asset_key = asset.with_callbacks(AssetCallbackFlag::Enabled).to_key_word(); note_data.extend(note.recipient().digest().iter().rev()); @@ -582,12 +570,13 @@ impl Faucet { client: &Client, account_id: AccountId, ) -> anyhow::Result { - // TODO: we should be able to only load the storage slot with the token metadata. Anyway the - // faucet storage is light since stores only that. - let account = - client.get_account(account_id).await?.context("account not found in store")?; - let token_metadata = FungibleFaucet::try_from(account.storage())?; - Ok(AssetAmount::new(token_metadata.token_supply().as_u64())?) + let token_config_word = client + .account_reader(account_id) + .get_storage_item(FungibleFaucet::token_config_slot().clone()) + .await?; + // The token config layout is `[token_supply, max_supply, decimals, token_symbol]` + let token_supply = token_config_word[0].as_canonical_u64(); + Ok(AssetAmount::new(token_supply)?) } } @@ -658,11 +647,9 @@ fn build_p2id_notes( // ids are validated on the request level. let mut notes = Vec::new(); for request in requests { - // SAFETY: source is definitely a faucet account, and the amount is valid. - // // The faucet enables asset callbacks (it registers transfer policies), so the asset it - // mints carries the `Enabled` callbacks flag. We build the note with the same flag so its - // `NoteId` matches the note actually created on-chain by `mint_and_send`. + // mints carries the `Enabled` callbacks flag + // SAFETY: source is definitely a faucet account, and the amount is valid. let asset = FungibleAsset::new(source.account_id, request.asset_amount.base_units()) .unwrap() .with_callbacks(AssetCallbackFlag::Enabled);