diff --git a/Cargo.lock b/Cargo.lock index 6b314cb93af..8b3cec911de 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -75,6 +75,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "alba" +version = "0.1.0" +source = "git+https://github.com/cardano-scaling/alba.git?branch=main#43c389a5169cb30760dadb208127a1735f2ece63" +dependencies = [ + "digest 0.10.7", + "rand 0.9.2", + "thiserror 2.0.16", +] + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -96,12 +106,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -169,9 +173,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "arbitrary" @@ -335,11 +339,11 @@ dependencies = [ [[package]] name = "async-io" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19634d6336019ef220f09fd31168ce5c184b295cbf80345437cc36094ef223ca" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" dependencies = [ - "async-lock", + "autocfg", "cfg-if", "concurrent-queue", "futures-io", @@ -348,7 +352,7 @@ dependencies = [ "polling", "rustix", "slab", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -373,9 +377,9 @@ dependencies = [ [[package]] name = "async-process" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65daa13722ad51e6ab1a1b9c01299142bc75135b337923cfa10e79bbbd669f00" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" dependencies = [ "async-channel 2.5.0", "async-io", @@ -402,9 +406,9 @@ dependencies = [ [[package]] name = "async-signal" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f567af260ef69e1d52c2b560ce0ea230763e6fbb9214a85d768760a920e3e3c1" +checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" dependencies = [ "async-io", "async-lock", @@ -415,7 +419,7 @@ dependencies = [ "rustix", "signal-hook-registry", "slab", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -494,12 +498,6 @@ dependencies = [ "url", ] -[[package]] -name = "auto-future" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c1e7e457ea78e524f48639f551fd79703ac3f2237f5ecccdf4708f8a75ad373" - [[package]] name = "autocfg" version = "1.5.0" @@ -534,7 +532,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper", "tokio", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", "tracing", @@ -562,12 +560,11 @@ dependencies = [ [[package]] name = "axum-test" -version = "18.0.2" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a5c86736717a01abbe75c16e46972a9d77abde7852f556d4ec5cad859997a0" +checksum = "680e88effaafbb28675074f29cda0e984c984bed5eb513085c17caf7de564225" dependencies = [ "anyhow", - "auto-future", "axum", "bytes", "bytesize", @@ -586,7 +583,7 @@ dependencies = [ "serde_urlencoded", "smallvec", "tokio", - "tower 0.5.2", + "tower", "url", ] @@ -779,9 +776,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" dependencies = [ "cc", "glob", @@ -882,9 +879,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bytesize" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c8f83209414aacf0eeae3cf730b18d6981697fba62f200fcfb92b9f082acba" +checksum = "f5c434ae3cf0089ca203e9019ebe529c47ff45cefe8af7c85ecb734ef541822f" [[package]] name = "bzip2" @@ -903,9 +900,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.35" +version = "1.2.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3" +checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" dependencies = [ "find-msvc-tools", "jobserver", @@ -951,17 +948,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.0", ] [[package]] @@ -1013,9 +1009,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.47" +version = "4.5.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" +checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" dependencies = [ "clap_builder", "clap_derive", @@ -1023,9 +1019,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.47" +version = "4.5.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" +checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" dependencies = [ "anstream", "anstyle", @@ -1176,9 +1172,9 @@ dependencies = [ [[package]] name = "config" -version = "0.15.15" +version = "0.15.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0faa974509d38b33ff89282db9c3295707ccf031727c0de9772038ec526852ba" +checksum = "cef036f0ecf99baef11555578630e2cca559909b4c50822dbba828c252d21c49" dependencies = [ "async-trait", "convert_case", @@ -1186,8 +1182,8 @@ dependencies = [ "pathdiff", "ron", "rust-ini", - "serde", "serde-untagged", + "serde_core", "serde_json", "toml", "winnow", @@ -1196,15 +1192,15 @@ dependencies = [ [[package]] name = "console" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e09ced7ebbccb63b4c65413d821f2e00ce54c5ca4514ddc6b3c892fdbcbc69d" +checksum = "b430743a6eb14e9764d4260d4c0d8123087d504eeb9c48f2b2a5e810dd369df4" dependencies = [ "encode_unicode", "libc", "once_cell", "unicode-width", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -1619,12 +1615,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" +checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] @@ -1808,22 +1804,23 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" dependencies = [ "serde", + "serde_core", "typeid", ] [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -1883,9 +1880,9 @@ dependencies = [ [[package]] name = "fancy-regex" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf04c5ec15464ace8355a7b440a33aece288993475556d461154d7a62ad9947c" +checksum = "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f" dependencies = [ "bit-set 0.8.0", "regex-automata", @@ -1918,9 +1915,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650" +checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" [[package]] name = "fixed" @@ -2168,9 +2165,9 @@ dependencies = [ [[package]] name = "gcloud-auth" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4089aeec499899f6f1309803279763c34d898ca86c1a3e4616cba3ca6bce34b7" +checksum = "ce5aa2c8f36c2be2c352fcf62b221d92fab43fbdc6e8a379eec7354d6e77e1b4" dependencies = [ "async-trait", "base64 0.22.1", @@ -2180,7 +2177,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.16", "time", "token-source", "tokio", @@ -2190,17 +2187,17 @@ dependencies = [ [[package]] name = "gcloud-gax" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ac1090d3eb1887bf7d4e78cd58a7f50c78811b1c3d0924665c023849d297d1" +checksum = "b7caaa7dbca6c00943a1e5d7816cc526a77f4a9895e4730d8759fd87aebe379c" dependencies = [ "http 1.3.1", - "thiserror 1.0.69", + "thiserror 2.0.16", "token-source", "tokio", "tokio-retry2", "tonic", - "tower 0.4.13", + "tower", "tracing", ] @@ -2218,9 +2215,9 @@ dependencies = [ [[package]] name = "gcloud-kms" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c71dc00df2f93fdd667588f8d86bf694733649689eb9dff12b9c55ff531b1da" +checksum = "57e74cb85664db233da9a2010afc16065a956653e3b9c73b7106740b5193f60a" dependencies = [ "gcloud-auth", "gcloud-gax", @@ -2231,23 +2228,23 @@ dependencies = [ [[package]] name = "gcloud-metadata" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d575310b4546530f6b21ee000c20155f11f9291fa0b67ea0949fd48aa49ed70" +checksum = "61f706788c1b58712c513e4d403234707fd255f49caa89d1c930197418b5fb2c" dependencies = [ "reqwest", - "thiserror 1.0.69", + "thiserror 2.0.16", "tokio", ] [[package]] name = "gcloud-storage" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e392c675b5ad1b707ff16b6c3be4df8605691e9a4ba03b0580bf32e26b0dc180" +checksum = "e3515c85ca8d12aaf1104c9765f46d91a9ddd2a62b853fe12db109a40cde06e1" dependencies = [ "anyhow", - "base64 0.21.7", + "base64 0.22.1", "bytes", "futures-util", "gcloud-auth", @@ -2263,7 +2260,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "thiserror 1.0.69", + "thiserror 2.0.16", "time", "token-source", "tokio", @@ -2271,20 +2268,6 @@ dependencies = [ "url", ] -[[package]] -name = "generator" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" -dependencies = [ - "cc", - "cfg-if", - "libc", - "log", - "rustversion", - "windows 0.61.3", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -2318,7 +2301,7 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.3+wasi-0.2.4", + "wasi 0.14.7+wasi-0.2.4", "wasm-bindgen", ] @@ -2378,7 +2361,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.11.0", + "indexmap 2.11.4", "slab", "tokio", "tokio-util", @@ -2421,6 +2404,12 @@ dependencies = [ "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" + [[package]] name = "hashlink" version = "0.9.1" @@ -2778,9 +2767,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ "base64 0.22.1", "bytes", @@ -2804,9 +2793,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2814,7 +2803,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.2", + "windows-core 0.62.0", ] [[package]] @@ -2969,7 +2958,7 @@ dependencies = [ "rtnetlink", "system-configuration", "tokio", - "windows 0.53.0", + "windows", ] [[package]] @@ -3006,13 +2995,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.0" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.16.0", "serde", + "serde_core", ] [[package]] @@ -3157,9 +3147,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e" dependencies = [ "once_cell", "wasm-bindgen", @@ -3301,9 +3291,9 @@ checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" [[package]] name = "libc" -version = "0.2.175" +version = "0.2.176" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" [[package]] name = "liblzma" @@ -3779,9 +3769,9 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ "bitflags 2.9.4", "libc", @@ -3809,9 +3799,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -3831,26 +3821,13 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" dependencies = [ "value-bag", ] -[[package]] -name = "loom" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "tracing", - "tracing-subscriber", -] - [[package]] name = "lru" version = "0.12.5" @@ -3872,15 +3849,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" -[[package]] -name = "matchers" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" -dependencies = [ - "regex-automata", -] - [[package]] name = "matchit" version = "0.8.4" @@ -4289,7 +4257,7 @@ dependencies = [ "serde", "serde_bytes", "serde_json", - "serde_with 3.14.0", + "serde_with 3.14.1", "sha2", "slog", "slog-async", @@ -4524,6 +4492,7 @@ dependencies = [ name = "mithril-stm" version = "0.5.1" dependencies = [ + "alba", "bincode", "blake2 0.10.6", "blst", @@ -4539,6 +4508,7 @@ dependencies = [ "rayon", "rug", "serde", + "sha2", "thiserror 2.0.16", ] @@ -4609,20 +4579,19 @@ dependencies = [ [[package]] name = "moka" -version = "0.12.10" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" dependencies = [ "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", - "loom", + "equivalent", "parking_lot", "portable-atomic", "rustc_version", "smallvec", "tagptr", - "thiserror 1.0.69", "uuid", ] @@ -5254,9 +5223,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8" dependencies = [ "memchr", "thiserror 2.0.16", @@ -5265,9 +5234,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" +checksum = "bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663" dependencies = [ "pest", "pest_generator", @@ -5275,9 +5244,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" +checksum = "6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f" dependencies = [ "pest", "pest_meta", @@ -5288,9 +5257,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" +checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420" dependencies = [ "pest", "sha2", @@ -5303,7 +5272,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.11.0", + "indexmap 2.11.4", ] [[package]] @@ -5410,16 +5379,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.10.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi", "pin-project-lite", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -5594,9 +5563,9 @@ dependencies = [ [[package]] name = "proptest" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +checksum = "2bb0be07becd10686a0bb407298fb425360a5c44a663774406340c59a22de4ce" dependencies = [ "bit-set 0.8.0", "bit-vec 0.8.0", @@ -5993,7 +5962,7 @@ dependencies = [ "tokio-native-tls", "tokio-rustls", "tokio-util", - "tower 0.5.2", + "tower", "tower-http", "tower-service", "url", @@ -6030,9 +5999,9 @@ dependencies = [ [[package]] name = "resolv-conf" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" +checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" [[package]] name = "ring" @@ -6147,22 +6116,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ "bitflags 2.9.4", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" dependencies = [ "log", "once_cell", @@ -6182,7 +6151,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", + "security-framework 3.5.0", ] [[package]] @@ -6197,9 +6166,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb" dependencies = [ "ring", "rustls-pki-types", @@ -6261,11 +6230,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -6319,9 +6288,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "cc198e42d9b7510827939c9a15f5062a0c913f3371d765977e586d2fe6c16f4a" dependencies = [ "bitflags 2.9.4", "core-foundation 0.10.1", @@ -6332,9 +6301,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -6342,9 +6311,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "send_wrapper" @@ -6354,21 +6323,23 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" dependencies = [ + "serde_core", "serde_derive", ] [[package]] name = "serde-untagged" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" dependencies = [ "erased-serde", "serde", + "serde_core", "typeid", ] @@ -6385,18 +6356,28 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.17" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" dependencies = [ "serde", + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +dependencies = [ + "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", @@ -6405,24 +6386,26 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_path_to_error" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" dependencies = [ "itoa", "serde", + "serde_core", ] [[package]] @@ -6437,11 +6420,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +checksum = "5417783452c2be558477e104686f7de5dae53dba813c28435e0e70f82d9b04ee" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -6474,21 +6457,21 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.14.0" +version = "3.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" +checksum = "c522100790450cf78eeac1507263d0a350d4d5b30df0c8e1fe051a10c22b376e" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.0", + "indexmap 2.11.4", "schemars 0.9.0", "schemars 1.0.4", "serde", "serde_derive", "serde_json", - "serde_with_macros 3.14.0", + "serde_with_macros 3.14.1", "time", ] @@ -6506,11 +6489,11 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.14.0" +version = "3.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" +checksum = "327ada00f7d64abaac1e55a6911e90cf665aa051b9a561c7006c157f4633135e" dependencies = [ - "darling 0.20.11", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.106", @@ -6522,7 +6505,7 @@ version = "0.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59e2dd588bf1597a252c3b920e0143eb99b0f76e4e082f4c92ce34fbc9e71ddd" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.11.4", "itoa", "libyml", "memchr", @@ -6716,7 +6699,7 @@ dependencies = [ "chrono", "is-terminal", "slog", - "term 1.1.0", + "term 1.2.0", "thread_local", "time", ] @@ -6971,15 +6954,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.21.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -6995,11 +6978,11 @@ dependencies = [ [[package]] name = "term" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a43bddab41f8626c7bdaab872bbba75f8df5847b516d77c569c746e2ae5eb746" +checksum = "2111ef44dae28680ae9752bb89409e7310ca33a8c621ebe7b106cf5c928b3ac0" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -7097,11 +7080,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.43" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", + "itoa", "libc", "num-conv", "num_threads", @@ -7223,9 +7207,9 @@ dependencies = [ [[package]] name = "tokio-retry2" -version = "0.5.8" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a0a122635e32bd827df297f311ca5e0292636bbd82f67ff84a4bedeab06dbeb" +checksum = "7de2537bbad4f8b2d4237cdab9e7c4948a1f74744e45f54144eeccd05d3ad955" dependencies = [ "pin-project", "tokio", @@ -7233,9 +7217,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "05f63835928ca123f1bef57abbcd23bb2ba0ac9ae1235f1e65bda0d06e7786bd" dependencies = [ "rustls", "tokio", @@ -7279,11 +7263,11 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.5" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" +checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0" dependencies = [ - "serde", + "serde_core", "serde_spanned", "toml_datetime", "toml_parser", @@ -7292,18 +7276,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "toml_parser" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" dependencies = [ "winnow", ] @@ -7330,7 +7314,7 @@ dependencies = [ "tokio", "tokio-rustls", "tokio-stream", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", "tracing", @@ -7348,21 +7332,6 @@ dependencies = [ "tonic", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "tower" version = "0.5.2" @@ -7371,7 +7340,7 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "indexmap 2.11.0", + "indexmap 2.11.4", "pin-project-lite", "slab", "sync_wrapper", @@ -7404,7 +7373,7 @@ dependencies = [ "pin-project-lite", "tokio", "tokio-util", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", "tracing", @@ -7472,14 +7441,10 @@ version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ - "matchers", "nu-ansi-term", - "once_cell", - "regex-automata", "sharded-slab", "smallvec", "thread_local", - "tracing", "tracing-core", "tracing-log", ] @@ -7575,9 +7540,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-segmentation" @@ -7811,30 +7776,40 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.3+wasi-0.2.4" +version = "0.14.7+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c" dependencies = [ "bumpalo", "log", @@ -7846,9 +7821,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "a0b221ff421256839509adbb55998214a70d829d3a28c69b4a6672e9d2a42f67" dependencies = [ "cfg-if", "js-sys", @@ -7859,9 +7834,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7869,9 +7844,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32" dependencies = [ "proc-macro2", "quote", @@ -7882,18 +7857,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf" dependencies = [ "unicode-ident", ] [[package]] name = "wasm-bindgen-test" -version = "0.3.50" +version = "0.3.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c8d5e33ca3b6d9fa3b4676d774c5778031d27a578c2b007f905acf816152c3" +checksum = "aee0a0f5343de9221a0d233b04520ed8dc2e6728dce180b1dcd9288ec9d9fa3c" dependencies = [ "js-sys", "minicov", @@ -7904,9 +7879,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.50" +version = "0.3.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d5042cc5fa009658f9a7333ef24291b1291a25b6382dd68862a7f3b969f69b" +checksum = "a369369e4360c2884c3168d22bded735c43cccae97bbc147586d4b480edd138d" dependencies = [ "proc-macro2", "quote", @@ -7928,9 +7903,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc" dependencies = [ "js-sys", "wasm-bindgen", @@ -7988,11 +7963,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -8011,28 +7986,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows" -version = "0.61.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" -dependencies = [ - "windows-collections", - "windows-core 0.61.2", - "windows-future", - "windows-link", - "windows-numerics", -] - -[[package]] -name = "windows-collections" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" -dependencies = [ - "windows-core 0.61.2", -] - [[package]] name = "windows-core" version = "0.53.0" @@ -8045,26 +7998,15 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c" dependencies = [ "windows-implement", "windows-interface", - "windows-link", - "windows-result 0.3.4", - "windows-strings", -] - -[[package]] -name = "windows-future" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" -dependencies = [ - "windows-core 0.61.2", - "windows-link", - "windows-threading", + "windows-link 0.2.0", + "windows-result 0.4.0", + "windows-strings 0.5.0", ] [[package]] @@ -8096,14 +8038,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] -name = "windows-numerics" +name = "windows-link" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" -dependencies = [ - "windows-core 0.61.2", - "windows-link", -] +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" [[package]] name = "windows-registry" @@ -8111,9 +8049,9 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows-result 0.3.4", - "windows-strings", + "windows-strings 0.4.2", ] [[package]] @@ -8131,7 +8069,16 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" +dependencies = [ + "windows-link 0.2.0", ] [[package]] @@ -8140,7 +8087,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" +dependencies = [ + "windows-link 0.2.0", ] [[package]] @@ -8179,6 +8135,15 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -8216,7 +8181,7 @@ version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -8227,15 +8192,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] -[[package]] -name = "windows-threading" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" -dependencies = [ - "windows-link", -] - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -8395,9 +8351,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.45.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" @@ -8436,9 +8392,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", "rustix", @@ -8461,9 +8417,9 @@ dependencies = [ [[package]] name = "yaml-rust2" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ce2a4ff45552406d02501cea6c18d8a7e50228e7736a872951fe2fe75c91be7" +checksum = "2462ea039c445496d8793d052e13787f2b90e750b833afee748e601c17621ed9" dependencies = [ "arraydeque", "encoding_rs", @@ -8542,18 +8498,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", @@ -8649,7 +8605,7 @@ dependencies = [ "flate2", "getrandom 0.3.3", "hmac", - "indexmap 2.11.0", + "indexmap 2.11.4", "liblzma", "memchr", "pbkdf2", @@ -8699,9 +8655,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/mithril-stm/Cargo.toml b/mithril-stm/Cargo.toml index 7d3f23e3d2e..d0bb2c27bb1 100644 --- a/mithril-stm/Cargo.toml +++ b/mithril-stm/Cargo.toml @@ -20,6 +20,7 @@ num-integer-backend = ["num-bigint", "num-rational", "num-traits"] benchmark-internals = [] # For benchmarking multi_sig [dependencies] +alba = { git = "https://github.com/cardano-scaling/alba.git", branch = "main" } blake2 = "0.10.6" # Enforce blst portable feature for runtime detection of Intel ADX instruction set. blst = { version = "0.3.15", features = ["portable"] } @@ -28,6 +29,7 @@ rand_core = { workspace = true } rayon = { workspace = true } serde = { workspace = true } thiserror = { workspace = true } +sha2 = "0.10.6" [target.'cfg(any(target_family = "wasm", windows))'.dependencies] # WASM and Windows don't support rug backend, fallback to num-integer only diff --git a/mithril-stm/src/aggregate_signature/mod.rs b/mithril-stm/src/aggregate_signature/mod.rs index f9742b3b2cc..98f7b6a9af3 100644 --- a/mithril-stm/src/aggregate_signature/mod.rs +++ b/mithril-stm/src/aggregate_signature/mod.rs @@ -2,6 +2,7 @@ mod aggregate_key; mod basic_verifier; mod clerk; mod signature; +mod telescope_stm; pub use aggregate_key::*; pub use basic_verifier::*; diff --git a/mithril-stm/src/aggregate_signature/telescope_stm/mod.rs b/mithril-stm/src/aggregate_signature/telescope_stm/mod.rs new file mode 100644 index 00000000000..03761baefd5 --- /dev/null +++ b/mithril-stm/src/aggregate_signature/telescope_stm/mod.rs @@ -0,0 +1,87 @@ +mod telescope_clerk; +mod telescope_proof; + +// pub use telescope_clerk::*; +// pub use telescope_proof::*; + +#[cfg(test)] +mod tests { + use crate::{ + ClosedKeyRegistration, Initializer, KeyRegistration, Parameters, Signer, SingleSignature, + }; + use alba::centralized_telescope::{Telescope, params::Params}; + use blake2::{Blake2b, digest::consts::U32}; + use rand_chacha::ChaCha20Rng; + use rand_core::{CryptoRng, RngCore, SeedableRng}; + use rayon::prelude::*; + const NPARTIES: usize = 1000; + type D = Blake2b; + + fn generate_signatures( + stm: Parameters, + msg: &[u8], + rng: &mut (impl RngCore + CryptoRng), + ) -> (SingleSignature, ClosedKeyRegistration) { + let stakes = (0..NPARTIES) + .into_iter() + .map(|_| 1 + (rng.next_u64() % 9999)) + .collect::>(); + + let mut key_reg = KeyRegistration::init(); + + let mut ps: Vec = Vec::with_capacity(NPARTIES); + for stake in stakes { + let p = Initializer::new(stm, stake, rng); + key_reg + .register(p.stake, p.get_verification_key_proof_of_possession()) + .unwrap(); + ps.push(p); + } + + let closed_reg = key_reg.close(); + println!("Key registration done"); + + let ps = ps + .into_par_iter() + .map(|p| p.create_signer(closed_reg.clone()).unwrap()) + .collect::>>(); + + println!("Signers created"); + + let sig = ps[0].sign(&msg).unwrap(); + // let sigs = ps + // .par_iter() + // .filter_map(|p| { + // return p.sign(&msg); + // }) + // .collect::>(); + (sig, closed_reg) + } + + #[test] + fn test_telescope_stm_proof() { + let stm = Parameters { + m: 457263, + k: 50001, + phi_f: 0.2, + }; + + let telescope_params = Params { + proof_size: 405, + max_retries: 129, + search_width: 32400, + valid_proof_probability: 0.0001543, + dfs_bound: 15316634230, + }; + let _telescope = Telescope::setup_unsafe(50001, &telescope_params); + + // println!("{}", telescope.get_params().proof_size); + + let mut rng = ChaCha20Rng::from_seed([0u8; 32]); + let mut msg = [0u8; 16]; + rng.fill_bytes(&mut msg); + + let (sig, _closed_key_registration) = generate_signatures(stm, &msg, &mut rng); + println!("{}", sig.indexes.len()); + } +} diff --git a/mithril-stm/src/aggregate_signature/telescope_stm/telescope_clerk.rs b/mithril-stm/src/aggregate_signature/telescope_stm/telescope_clerk.rs new file mode 100644 index 00000000000..399327d17c4 --- /dev/null +++ b/mithril-stm/src/aggregate_signature/telescope_stm/telescope_clerk.rs @@ -0,0 +1,282 @@ +#![allow(dead_code)] +#![allow(clippy::extra_unused_type_parameters)] + +use alba::centralized_telescope::Telescope; +use alba::centralized_telescope::proof::Proof; +use alba::utils::types::Element; +use blake2::Blake2bVar; +use blake2::digest::{Digest, FixedOutput, Update, VariableOutput}; +use sha2::Sha256; +use std::collections::{BTreeMap, HashMap, HashSet}; + +const DATA_LENGTH: usize = 48; +pub(crate) type Data = [u8; DATA_LENGTH]; +pub(crate) type P = Proof; + +use crate::aggregate_signature::telescope_stm::telescope_proof::TelescopeProof; +use crate::{ + AggregateVerificationKey, AggregationError, ClosedKeyReg, Index, Parameters, SingleSignature, + SingleSignatureWithRegisteredParty, Stake, +}; + +#[derive(Debug, Clone)] +struct TelescopeClerk { + /// Closed key registration + pub closed_reg: ClosedKeyReg, + /// Mithril STM parameters + pub stm_parameters: Parameters, + /// The main centralized Telescope struct + pub telescope: Telescope, +} + +impl TelescopeClerk { + /// Create a new `Clerk` + pub fn new( + stm_parameters: &Parameters, + closed_reg: &ClosedKeyReg, + telescope: &Telescope, + ) -> Self { + Self { + closed_reg: closed_reg.clone(), + stm_parameters: *stm_parameters, + telescope: *telescope, + } + } + + /// Create Sterling Proof + pub(crate) fn aggregate(&self, sigs: &[SingleSignature], msg: &[u8]) -> TelescopeProof + where + E: AsRef<[u8]> + Clone, + { + let (unique_signatures, index_count) = self.collect_prover_signatures(sigs, msg); + let (clerk_handler, prover_set) = + ClerkHandler::new(&unique_signatures, index_count as usize); + + let telescope_proof: P = self.telescope.prove(&prover_set).unwrap(); + + let (proof_index_sequence, proof_signatures) = + clerk_handler.decode_proof(&telescope_proof.element_sequence); + + let mt_index_list: Vec = proof_signatures.keys().map(|&key| key as usize).collect(); + + let batch_proof = self + .closed_reg + .merkle_tree + .compute_merkle_tree_batch_path(mt_index_list); + + TelescopeProof { + signatures: proof_signatures.values().cloned().collect(), + batch_proof, + retry_counter: telescope_proof.retry_counter, + search_counter: telescope_proof.search_counter, + index_sequence: proof_index_sequence, + } + } + /// Collect unique signatures + fn collect_prover_signatures( + &self, + sigs: &[SingleSignature], + msg: &[u8], + ) -> (Vec, u64) { + // Collect signatures and their reg party + let sig_reg_list = sigs + .iter() + .map(|sig| SingleSignatureWithRegisteredParty { + sig: sig.clone(), + reg_party: self.closed_reg.reg_parties[sig.signer_index as usize], + }) + .collect::>(); + + let avk = AggregateVerificationKey::from(&self.closed_reg); + let msgp = avk.get_merkle_tree_batch_commitment().concatenate_with_message(msg); + + // Get unique signatures + ClerkHandler::dedup_sigs_for_indices( + &self.closed_reg.total_stake, + &self.stm_parameters, + &msgp, + &sig_reg_list, + ) + .unwrap() + } +} + +/// Helper struct for Sterling aggregation +pub struct ClerkHandler { + /// Signer index mapped to its StmSigRegParty + signer_sigreg_map: BTreeMap, + /// Map of the hash of the lottery index to itself + lottery_hash_index_map: BTreeMap, +} + +impl ClerkHandler { + /// create a new handler + fn new( + unique_signatures: &[SingleSignatureWithRegisteredParty], + size: usize, + ) -> (Self, Vec>) + where + E: AsRef<[u8]> + Clone + for<'a> TryFrom<&'a [u8]>, + { + let mut signer_sigreg_map: BTreeMap = + BTreeMap::new(); + let mut lottery_hash_index_map: BTreeMap = BTreeMap::new(); + let mut prover_set = Vec::with_capacity(size); + + for sr in unique_signatures { + let signer_index = sr.sig.signer_index; + signer_sigreg_map.insert(signer_index, sr.clone()); + + for i in &sr.sig.indexes { + let raw_data = Self::generate_raw_data(i); + lottery_hash_index_map.insert(raw_data, *i); + + // Convert raw_data from &[u8] to E safely + if let Ok(data) = raw_data.as_slice().try_into() { + prover_set.push(Element::new(data, Some(sr.sig.signer_index))) + }; + } + } + + ( + Self { + signer_sigreg_map, + lottery_hash_index_map, + }, + prover_set, + ) + } + + /// Decode proof elements + fn decode_proof( + &self, + proof_element_sequence: &[Element], + ) -> ( + Vec<(Index, Index)>, + BTreeMap, + ) + where + E: AsRef<[u8]> + Clone, + { + let mut proof_index_sequence: Vec<(Index, Index)> = Vec::new(); + let mut valid_signer_indexes: HashSet = HashSet::new(); + let mut valid_indices: HashSet = HashSet::new(); + + for e in proof_element_sequence { + if let Some(unique_index) = self.lottery_hash_index_map.get(e.as_ref()) { + if let Some(signer_index) = e.index { + proof_index_sequence.push((*unique_index, signer_index)); + valid_signer_indexes.insert(signer_index); + valid_indices.insert(*unique_index); + } + } + } + + let mut proof_signatures = self.signer_sigreg_map.clone(); + proof_signatures.retain(|index, sig| { + if valid_signer_indexes.contains(index) { + sig.sig.indexes.retain(|idx| valid_indices.contains(idx)); + !sig.sig.indexes.is_empty() + } else { + false + } + }); + + (proof_index_sequence, proof_signatures) + } + + /// create element data by hashing the index + pub(crate) fn generate_raw_data(input: &Index) -> Data { + let mut digest_buf = [0u8; 48]; + let data_buf = input.to_be_bytes(); + let mut hasher = Blake2bVar::new(48).expect("Failed to construct hasher"); + hasher.update(&data_buf); + hasher.finalize_variable(&mut digest_buf).expect("Hashing failed"); + digest_buf + } + + /// Filter unique indices + fn dedup_sigs_for_indices( + total_stake: &Stake, + params: &Parameters, + msg: &[u8], + sigs: &[SingleSignatureWithRegisteredParty], + ) -> Result<(Vec, u64), AggregationError> { + let mut sig_by_index: BTreeMap = + BTreeMap::new(); + let mut removal_idx_by_vk: HashMap<&SingleSignatureWithRegisteredParty, Vec> = + HashMap::new(); + + for sig_reg in sigs.iter() { + if sig_reg + .sig + .basic_verify( + params, + &sig_reg.reg_party.0, + &sig_reg.reg_party.1, + msg, + total_stake, + ) + .is_err() + { + continue; + } + for index in sig_reg.sig.indexes.iter() { + let mut insert_this_sig = false; + if let Some(&previous_sig) = sig_by_index.get(index) { + let sig_to_remove_index = if sig_reg.sig.sigma < previous_sig.sig.sigma { + insert_this_sig = true; + previous_sig + } else { + sig_reg + }; + + if let Some(indexes) = removal_idx_by_vk.get_mut(sig_to_remove_index) { + indexes.push(*index); + } else { + removal_idx_by_vk.insert(sig_to_remove_index, vec![*index]); + } + } else { + insert_this_sig = true; + } + + if insert_this_sig { + sig_by_index.insert(*index, sig_reg); + } + } + } + + let mut dedup_sigs: HashSet = HashSet::new(); + let mut count: u64 = 0; + + for (_, &sig_reg) in sig_by_index.iter() { + if dedup_sigs.contains(sig_reg) { + continue; + } + let mut deduped_sig = sig_reg.clone(); + if let Some(indexes) = removal_idx_by_vk.get(sig_reg) { + deduped_sig.sig.indexes = deduped_sig + .sig + .indexes + .clone() + .into_iter() + .filter(|i| !indexes.contains(i)) + .collect(); + } + + let size: Result = deduped_sig.sig.indexes.len().try_into(); + if let Ok(size) = size { + if dedup_sigs.contains(&deduped_sig) { + panic!("Should not reach!"); + } + dedup_sigs.insert(deduped_sig); + count += size; + } + } + + if count < params.k { + return Err(AggregationError::NotEnoughSignatures(count, params.k)); + } + Ok((dedup_sigs.into_iter().collect(), count)) + } +} diff --git a/mithril-stm/src/aggregate_signature/telescope_stm/telescope_proof.rs b/mithril-stm/src/aggregate_signature/telescope_stm/telescope_proof.rs new file mode 100644 index 00000000000..ec7845fe275 --- /dev/null +++ b/mithril-stm/src/aggregate_signature/telescope_stm/telescope_proof.rs @@ -0,0 +1,156 @@ +#![allow(dead_code)] +#![allow(clippy::extra_unused_type_parameters)] + +use crate::aggregate_signature::telescope_stm::telescope_clerk::{ClerkHandler, Data, P}; +use crate::bls_multi_signature::{BlsSignature, BlsVerificationKey}; +use crate::key_registration::RegisteredParty; +use crate::merkle_tree::MerkleBatchPath; +use crate::{AggregateVerificationKey, Index, Parameters, SingleSignatureWithRegisteredParty}; +use alba::centralized_telescope::Telescope; +use alba::centralized_telescope::proof::Proof; +use alba::utils::types::Element; +use blake2::digest::{Digest, FixedOutput}; +use std::collections::{BTreeMap, HashSet}; + +/// STM-Telescope proof. +pub struct TelescopeProof { + /// StmSignatures of alba proof + pub(crate) signatures: Vec, + /// The list of unique merkle tree nodes that covers path for all signatures. + pub(crate) batch_proof: MerkleBatchPath, + /// Numbers of retries done to find the proof + pub(crate) retry_counter: u64, + /// Index of the searched subtree to find the proof + pub(crate) search_counter: u64, + /// Sequence of elements from prover's set + pub(crate) index_sequence: Vec<(Index, Index)>, +} + +impl TelescopeProof { + /// Verify indices + fn verify_indices( + &self, + msgp: &[u8], + avk: &AggregateVerificationKey, + stm_parameters: &Parameters, + ) -> bool { + let mut unique_indices: HashSet = HashSet::new(); + let mut nr_indices = 0; + + // Check winning lotteries, collect unique indices and map signer index with its lottery index list. + let signer_indices_map: BTreeMap<&Index, &Vec> = self + .signatures + .iter() + .filter_map(|sig_reg| { + if sig_reg + .sig + .check_indices( + stm_parameters, + &sig_reg.reg_party.1, + msgp, + &avk.get_total_stake(), + ) + .is_ok() + { + unique_indices.extend(&sig_reg.sig.indexes); + nr_indices += sig_reg.sig.indexes.len(); + Some((&sig_reg.sig.signer_index, &sig_reg.sig.indexes)) + } else { + None + } + }) + .collect(); + + // Check uniqueness + if nr_indices != unique_indices.len() { + return false; + } + + // Verify proof index sequence against signer index lists + if self + .index_sequence + .iter() + .any(|(proof_element_as_index, signer_index)| { + signer_indices_map + .get(signer_index) + .is_none_or(|index_list| !index_list.contains(proof_element_as_index)) + }) + { + return false; + } + true + } + + /// Batch proof and multi sig verification + fn verify_multi_sig(&self, avk: &AggregateVerificationKey, msgp: &[u8]) -> bool { + let leaves: Vec = self.signatures.iter().map(|r| r.reg_party).collect(); + + // Verify batch proof + if avk + .get_merkle_tree_batch_commitment() + .verify_leaves_membership_from_batch_path(&leaves, &self.batch_proof) + .is_err() + { + return false; + } + + // Verify aggregated signatures + let (sigs, vks) = Self::collect_sigs_vks(&self.signatures); + if BlsSignature::verify_aggregate(msgp, &vks, &sigs).is_err() { + return false; + } + true + } + + /// Verify + fn verify( + &self, + telescope: &Telescope, + msg: &[u8], + avk: &AggregateVerificationKey, + stm_parameters: &Parameters, + ) { + let msgp = avk.get_merkle_tree_batch_commitment().concatenate_with_message(msg); + + if !self.verify_indices(&msgp, avk, stm_parameters) { + println!("Indices check failed!"); + } + if !self.verify_multi_sig(avk, &msgp) { + println!("Multi signature check failed!"); + } + + // Construct telescope proof element sequence + let element_sequence: Vec> = self + .index_sequence + .iter() + .map(|(proof_element, element_index)| { + let element_data = ClerkHandler::generate_raw_data(proof_element); + Element { + data: element_data, + index: Some(*element_index), + } + }) + .collect(); + + let proof: P = Proof::from(self.retry_counter, self.search_counter, element_sequence); + + println!("{:?}", telescope.verify(&proof).unwrap()); + } + + /// Collect and return `Vec, Vec` which will be used + /// by the aggregate verification. + fn collect_sigs_vks( + sig_reg_list: &[SingleSignatureWithRegisteredParty], + ) -> (Vec, Vec) { + let sigs = sig_reg_list + .iter() + .map(|sig_reg| sig_reg.sig.sigma) + .collect::>(); + let vks = sig_reg_list + .iter() + .map(|sig_reg| sig_reg.reg_party.0) + .collect::>(); + + (sigs, vks) + } +}