diff --git a/Cargo.lock b/Cargo.lock index a1f5e28679..e6afa68f21 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -187,11 +187,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", + "once_cell", "windows-sys 0.59.0", ] @@ -541,7 +542,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "synstructure", ] @@ -553,7 +554,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -626,7 +627,7 @@ dependencies = [ "async-task", "concurrent-queue", "fastrand 2.3.0", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "slab", ] @@ -641,7 +642,7 @@ dependencies = [ "async-io 2.4.0", "async-lock 3.4.0", "blocking", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "once_cell", "tokio", ] @@ -693,10 +694,10 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "parking", "polling 3.7.4", - "rustix 0.38.43", + "rustix 0.38.44", "slab", "tracing", "windows-sys 0.59.0", @@ -754,8 +755,8 @@ dependencies = [ "blocking", "cfg-if", "event-listener 5.4.0", - "futures-lite 2.5.0", - "rustix 0.38.43", + "futures-lite 2.6.0", + "rustix 0.38.44", "tracing", ] @@ -771,7 +772,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.43", + "rustix 0.38.44", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -807,7 +808,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-io", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "gloo-timers 0.3.0", "kv-log-macro", "log", @@ -838,7 +839,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -868,7 +869,7 @@ checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -961,13 +962,13 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -984,7 +985,7 @@ checksum = "edf3ee19dbc0a46d740f6f0926bde8c50f02bdbc7b536842da28f6ac56513a8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -1157,9 +1158,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" dependencies = [ "serde", ] @@ -1226,7 +1227,7 @@ dependencies = [ "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "piper", ] @@ -1337,7 +1338,7 @@ checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -1432,7 +1433,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.24", + "semver 1.0.25", "serde", "serde_json", "thiserror 1.0.69", @@ -1457,11 +1458,20 @@ dependencies = [ "serde", ] +[[package]] +name = "cbor4ii" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "189a2a2e5eec2f203b2bb8bc4c2db55c7253770d2c6bf3ae5f79ace5a15c305f" +dependencies = [ + "serde", +] + [[package]] name = "cc" -version = "1.2.7" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "jobserver", "libc", @@ -1579,7 +1589,7 @@ dependencies = [ "rcgen 0.13.2", "redis", "rkyv", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pki-types", "sqlx", "thiserror 1.0.69", @@ -1614,7 +1624,7 @@ dependencies = [ "rcgen 0.13.2", "redis", "rkyv", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pki-types", "sqlx", "thiserror 1.0.69", @@ -1679,9 +1689,9 @@ checksum = "b67261db007b5f4cf8cba393c1a5c511a5cc072339ce16e12aeba1d7b9b77946" [[package]] name = "clap" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", "clap_derive", @@ -1689,9 +1699,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -1708,7 +1718,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2117,9 +2127,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-bigint" @@ -2258,7 +2268,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2279,7 +2289,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "synstructure", ] @@ -2304,7 +2314,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2315,7 +2325,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2334,15 +2344,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" [[package]] name = "data-encoding-macro" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +checksum = "5b16d9d0d88a5273d830dac8b78ceb217ffc9b1d5404e5597a3542515329405b" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2350,23 +2360,23 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +checksum = "1145d32e826a7748b69ee8fc62d3e6355ff7f1051df53141e7048162fc90481b" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] name = "delegate" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2323e10c92e1cf4d86e11538512e6dc03ceb586842970b6332af3d4046a046" +checksum = "297806318ef30ad066b15792a8372858020ae3ca2e414ee6c2133b1eb9e9e945" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2423,7 +2433,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2444,7 +2454,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2454,7 +2464,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2467,7 +2477,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2488,7 +2498,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "unicode-xid", ] @@ -2619,7 +2629,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -2791,7 +2801,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -3048,7 +3058,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.95", + "syn 2.0.96", "toml 0.8.19", "walkdir", ] @@ -3066,7 +3076,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -3092,7 +3102,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.95", + "syn 2.0.96", "tempfile", "thiserror 1.0.69", "tiny-keccak", @@ -3109,7 +3119,7 @@ dependencies = [ "ethers-core", "ethers-solc", "reqwest 0.11.27", - "semver 1.0.24", + "semver 1.0.25", "serde", "serde_json", "thiserror 1.0.69", @@ -3219,7 +3229,7 @@ dependencies = [ "path-slash", "rayon", "regex", - "semver 1.0.24", + "semver 1.0.25", "serde", "serde_json", "solang-parser", @@ -3505,9 +3515,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ "fastrand 2.3.0", "futures-core", @@ -3534,7 +3544,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -3544,7 +3554,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pki-types", ] @@ -3726,7 +3736,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.7.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -3745,7 +3755,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.2.0", - "indexmap 2.7.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -4024,8 +4034,8 @@ dependencies = [ [[package]] name = "hotshot" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-broadcast", @@ -4063,12 +4073,13 @@ dependencies = [ "url", "utils", "vbs", + "workspace-hack", ] [[package]] name = "hotshot-builder-api" version = "0.1.7" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "async-trait", "clap", @@ -4078,16 +4089,17 @@ dependencies = [ "hotshot-types", "serde", "tagged-base64", - "thiserror 2.0.10", + "thiserror 2.0.11", "tide-disco", "toml 0.8.19", "vbs", + "workspace-hack", ] [[package]] name = "hotshot-builder-core" version = "0.1.59" -source = "git+https://github.com/EspressoSystems/marketplace-builder-core?tag=0.1.59#4647c30a3d447e65deea8cc8024c0f860fca169f" +source = "git+https://github.com/EspressoSystems/marketplace-builder-core?branch=hotshot%2Frc-0.5.84#fbf7c0a23019c7c1462ba12bf6a1eda6705ae221" dependencies = [ "anyhow", "async-broadcast", @@ -4146,7 +4158,7 @@ dependencies = [ [[package]] name = "hotshot-events-service" version = "0.1.57" -source = "git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.57#176c1f2166fa77951c3ebed404135ec8f7386010" +source = "git+https://github.com/EspressoSystems/hotshot-events-service.git?branch=hotshot%2Frc-0.5.84#613d10f3ffde5ce21ed236aa306b346255749bd1" dependencies = [ "async-broadcast", "async-lock 2.8.0", @@ -4172,8 +4184,8 @@ dependencies = [ [[package]] name = "hotshot-example-types" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4188,17 +4200,18 @@ dependencies = [ "serde", "sha2 0.10.8", "sha3", - "thiserror 2.0.10", + "thiserror 2.0.11", "time 0.3.37", "tokio", "url", "vbs", + "workspace-hack", ] [[package]] name = "hotshot-fakeapi" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4211,23 +4224,25 @@ dependencies = [ "tokio", "toml 0.8.19", "vbs", + "workspace-hack", ] [[package]] name = "hotshot-macros" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "derive_builder", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", + "workspace-hack", ] [[package]] name = "hotshot-orchestrator" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4245,12 +4260,13 @@ dependencies = [ "toml 0.8.19", "tracing", "vbs", + "workspace-hack", ] [[package]] name = "hotshot-query-service" version = "0.1.76" -source = "git+https://github.com/EspressoSystems/hotshot-query-service?tag=v0.1.76#f27507fca3d54fb80c18d952c22f39b04f7d195f" +source = "git+https://github.com/EspressoSystems/hotshot-query-service?branch=hotshot%2Frc-0.5.84#6dbb4aaded2601fb38323ac53ebbf7bbc185daf8" dependencies = [ "anyhow", "ark-serialize", @@ -4305,8 +4321,8 @@ dependencies = [ [[package]] name = "hotshot-stake-table" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "ark-bn254", "ark-ed-on-bn254", @@ -4322,6 +4338,7 @@ dependencies = [ "primitive-types", "serde", "tagged-base64", + "workspace-hack", ] [[package]] @@ -4367,8 +4384,8 @@ dependencies = [ [[package]] name = "hotshot-task" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "async-broadcast", "async-trait", @@ -4376,12 +4393,13 @@ dependencies = [ "tokio", "tracing", "utils", + "workspace-hack", ] [[package]] name = "hotshot-task-impls" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-broadcast", @@ -4402,7 +4420,7 @@ dependencies = [ "sha2 0.10.8", "surf-disco", "tagged-base64", - "thiserror 2.0.10", + "thiserror 2.0.11", "time 0.3.37", "tokio", "tracing", @@ -4410,12 +4428,13 @@ dependencies = [ "utils", "vbs", "vec1", + "workspace-hack", ] [[package]] name = "hotshot-testing" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-broadcast", @@ -4444,19 +4463,20 @@ dependencies = [ "serde", "sha2 0.10.8", "tagged-base64", - "thiserror 2.0.10", + "thiserror 2.0.11", "tide-disco", "tokio", "tracing", "url", "vbs", "vec1", + "workspace-hack", ] [[package]] name = "hotshot-types" version = "0.1.11" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "ark-bn254", @@ -4496,7 +4516,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "tagged-base64", - "thiserror 2.0.10", + "thiserror 2.0.11", "time 0.3.37", "tokio", "toml 0.8.19", @@ -4506,6 +4526,7 @@ dependencies = [ "utils", "vbs", "vec1", + "workspace-hack", ] [[package]] @@ -4686,7 +4707,7 @@ dependencies = [ "http 1.2.0", "hyper 1.5.2", "hyper-util", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pki-types", "tokio", "tokio-rustls 0.26.1", @@ -4891,7 +4912,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -5008,7 +5029,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -5049,9 +5070,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -5116,9 +5137,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is_terminal_polyfill" @@ -5475,9 +5496,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", @@ -5603,9 +5624,9 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libnghttp2-sys" -version = "0.1.10+1.61.0" +version = "0.1.11+1.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "959c25552127d2e1fa72f0e52548ec04fc386e827ba71a7bd01db46a447dc135" +checksum = "1b6c24e48a7167cffa7119da39d577fa482e66c688a4aac016bee862e1a713c4" dependencies = [ "cc", "libc", @@ -6027,15 +6048,15 @@ dependencies = [ [[package]] name = "libp2p-networking" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-lock 3.4.0", "async-trait", "bincode", "blake3", - "cbor4ii", + "cbor4ii 1.0.0", "delegate", "derive_builder", "derive_more 1.0.0", @@ -6051,6 +6072,7 @@ dependencies = [ "tokio", "tracing", "tracing-subscriber 0.3.19", + "workspace-hack", ] [[package]] @@ -6070,7 +6092,7 @@ dependencies = [ "quinn", "rand 0.8.5", "ring 0.17.8", - "rustls 0.23.20", + "rustls 0.23.21", "socket2 0.5.8", "thiserror 1.0.69", "tokio", @@ -6084,7 +6106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1356c9e376a94a75ae830c42cdaea3d4fe1290ba409a22c809033d1b7dcab0a6" dependencies = [ "async-trait", - "cbor4ii", + "cbor4ii 0.3.3", "futures", "futures-bounded", "futures-timer", @@ -6154,7 +6176,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -6186,7 +6208,7 @@ dependencies = [ "libp2p-identity", "rcgen 0.11.3", "ring 0.17.8", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-webpki 0.101.7", "thiserror 1.0.69", "x509-parser", @@ -6215,7 +6237,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "libc", ] @@ -6338,9 +6360,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" dependencies = [ "value-bag", ] @@ -6434,7 +6456,7 @@ dependencies = [ [[package]] name = "marketplace-builder-core" version = "0.1.59" -source = "git+https://github.com/EspressoSystems/marketplace-builder-core?tag=0.1.59#4647c30a3d447e65deea8cc8024c0f860fca169f" +source = "git+https://github.com/EspressoSystems/marketplace-builder-core?branch=hotshot%2Frc-0.5.84#fbf7c0a23019c7c1462ba12bf6a1eda6705ae221" dependencies = [ "anyhow", "async-broadcast", @@ -6459,7 +6481,7 @@ dependencies = [ [[package]] name = "marketplace-builder-shared" version = "0.1.59" -source = "git+https://github.com/EspressoSystems/marketplace-builder-core?tag=0.1.59#4647c30a3d447e65deea8cc8024c0f860fca169f" +source = "git+https://github.com/EspressoSystems/marketplace-builder-core?branch=hotshot%2Frc-0.5.84#fbf7c0a23019c7c1462ba12bf6a1eda6705ae221" dependencies = [ "anyhow", "async-broadcast", @@ -6487,7 +6509,7 @@ dependencies = [ "serde", "sha2 0.10.8", "surf-disco", - "thiserror 2.0.10", + "thiserror 2.0.11", "tokio", "tracing", "tracing-subscriber 0.3.19", @@ -6567,7 +6589,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -6645,9 +6667,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] @@ -6743,9 +6765,9 @@ dependencies = [ [[package]] name = "neli" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1100229e06604150b3becd61a4965d5c70f3be1759544ea7274166f4be41ef43" +checksum = "93062a0dce6da2517ea35f301dfc88184ce18d3601ec786a727a87bf535deca9" dependencies = [ "byteorder", "libc", @@ -6755,9 +6777,9 @@ dependencies = [ [[package]] name = "neli-proc-macros" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c168194d373b1e134786274020dae7fc5513d565ea2ebb9bc9ff17ffb69106d4" +checksum = "0c8034b7fbb6f9455b2a96c19e6edf8dc9fc34c70449938d8ee3b4df363f61fe" dependencies = [ "either", "proc-macro2", @@ -6805,17 +6827,16 @@ dependencies = [ [[package]] name = "netlink-proto" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21" +checksum = "b2741a6c259755922e3ed29ebce3b299cc2160c4acae94b465b5938ab02c2bbe" dependencies = [ "bytes 1.9.0", "futures", "log", "netlink-packet-core", "netlink-sys", - "thiserror 1.0.69", - "tokio", + "thiserror 2.0.11", ] [[package]] @@ -7030,7 +7051,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -7103,7 +7124,7 @@ version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "cfg-if", "foreign-types", "libc", @@ -7120,14 +7141,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" @@ -7310,7 +7331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.10", + "thiserror 2.0.11", "ucd-trie", ] @@ -7334,7 +7355,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -7355,7 +7376,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.7.0", + "indexmap 2.7.1", ] [[package]] @@ -7398,7 +7419,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -7436,7 +7457,7 @@ checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -7527,7 +7548,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite 0.2.16", - "rustix 0.38.43", + "rustix 0.38.44", "tracing", "windows-sys 0.59.0", ] @@ -7614,12 +7635,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.27" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483f8c21f64f3ea09fe0f30f5d48c3e8eefe5dac9129f0075f76593b4c1da705" +checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" dependencies = [ "proc-macro2", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -7644,7 +7665,7 @@ checksum = "714c75db297bc88a63783ffc6ab9f830698a6705aa0201416931759ef4c8183d" dependencies = [ "autocfg", "equivalent", - "indexmap 2.7.0", + "indexmap 2.7.1", ] [[package]] @@ -7687,9 +7708,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -7729,7 +7750,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -7750,7 +7771,7 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -7777,10 +7798,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -7870,9 +7891,9 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.20", + "rustls 0.23.21", "socket2 0.5.8", - "thiserror 2.0.10", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -7888,10 +7909,10 @@ dependencies = [ "rand 0.8.5", "ring 0.17.8", "rustc-hash", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pki-types", "slab", - "thiserror 2.0.10", + "thiserror 2.0.11", "tinyvec", "tracing", "web-time", @@ -8092,7 +8113,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -8148,7 +8169,7 @@ dependencies = [ "quote", "refinery-core", "regex", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -8366,7 +8387,7 @@ dependencies = [ "rkyv_derive", "seahash", "tinyvec", - "uuid 1.11.0", + "uuid 1.12.1", ] [[package]] @@ -8409,7 +8430,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ "base64 0.21.7", - "bitflags 2.6.0", + "bitflags 2.8.0", "serde", "serde_derive", ] @@ -8511,7 +8532,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.24", + "semver 1.0.25", ] [[package]] @@ -8539,11 +8560,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.43" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -8577,9 +8598,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.20" +version = "0.23.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" +checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" dependencies = [ "log", "once_cell", @@ -8700,7 +8721,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -8782,7 +8803,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation", "core-foundation-sys", "libc", @@ -8810,9 +8831,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" dependencies = [ "serde", ] @@ -8964,7 +8985,7 @@ checksum = "59fb1bedd774187d304179493b0d3c41fbe97b04b14305363f68d2bdf5e47cb9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -8984,7 +9005,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -8998,9 +9019,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.135" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ "itoa", "memchr", @@ -9050,7 +9071,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -9067,7 +9088,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -9216,13 +9237,13 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "simple_asn1" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 1.0.69", + "thiserror 2.0.11", "time 0.3.37", ] @@ -9325,10 +9346,10 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -9439,7 +9460,7 @@ dependencies = [ "futures-util", "hashbrown 0.15.2", "hashlink 0.10.0", - "indexmap 2.7.0", + "indexmap 2.7.1", "log", "memchr", "native-tls", @@ -9449,7 +9470,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "smallvec", - "thiserror 2.0.10", + "thiserror 2.0.11", "time 0.3.37", "tokio", "tokio-stream", @@ -9467,7 +9488,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -9490,7 +9511,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.95", + "syn 2.0.96", "tempfile", "tokio", "url", @@ -9504,7 +9525,7 @@ checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233" dependencies = [ "atoi", "base64 0.22.1", - "bitflags 2.6.0", + "bitflags 2.8.0", "byteorder", "bytes 1.9.0", "crc", @@ -9533,7 +9554,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.10", + "thiserror 2.0.11", "time 0.3.37", "tracing", "whoami", @@ -9548,7 +9569,7 @@ dependencies = [ "atoi", "base64 0.22.1", "bit-vec", - "bitflags 2.6.0", + "bitflags 2.8.0", "byteorder", "crc", "dotenvy", @@ -9572,7 +9593,7 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.10", + "thiserror 2.0.11", "time 0.3.37", "tracing", "whoami", @@ -9721,7 +9742,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -9774,15 +9795,15 @@ dependencies = [ [[package]] name = "sval" -version = "2.13.2" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6dc0f9830c49db20e73273ffae9b5240f63c42e515af1da1fceefb69fceafd8" +checksum = "d4c2f18f53c889ec3dfe1c08b20fd51406d09b14bf18b366416718763ccff05a" [[package]] name = "sval_buffer" -version = "2.13.2" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "429922f7ad43c0ef8fd7309e14d750e38899e32eb7e8da656ea169dd28ee212f" +checksum = "4b8cb1bb48d0bed828b908e6b99e7ab8c7244994dc27948a2e31d42e8c4d77c1" dependencies = [ "sval", "sval_ref", @@ -9790,18 +9811,18 @@ dependencies = [ [[package]] name = "sval_dynamic" -version = "2.13.2" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f16ff5d839396c11a30019b659b0976348f3803db0626f736764c473b50ff4" +checksum = "ba574872d4ad653071a9db76c49656082db83a37cd5f559874273d36b4a02b9d" dependencies = [ "sval", ] [[package]] name = "sval_fmt" -version = "2.13.2" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c01c27a80b6151b0557f9ccbe89c11db571dc5f68113690c1e028d7e974bae94" +checksum = "944450b2dbbf8aae98537776b399b23d72b19243ee42522cfd110305f3c9ba5a" dependencies = [ "itoa", "ryu", @@ -9810,9 +9831,9 @@ dependencies = [ [[package]] name = "sval_json" -version = "2.13.2" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0deef63c70da622b2a8069d8600cf4b05396459e665862e7bdb290fd6cf3f155" +checksum = "411bbd543c413796ccfbaa44f6676e20032b6c69e4996cb6c3e6ef30c79b96d1" dependencies = [ "itoa", "ryu", @@ -9821,9 +9842,9 @@ dependencies = [ [[package]] name = "sval_nested" -version = "2.13.2" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a39ce5976ae1feb814c35d290cf7cf8cd4f045782fe1548d6bc32e21f6156e9f" +checksum = "f30582d2a90869b380f8260559138c1b68ac3e0765520959f22a1a1fdca31769" dependencies = [ "sval", "sval_buffer", @@ -9832,18 +9853,18 @@ dependencies = [ [[package]] name = "sval_ref" -version = "2.13.2" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7c6ee3751795a728bc9316a092023529ffea1783499afbc5c66f5fabebb1fa" +checksum = "762d3fbf3c0869064b7c93808c67ad2ed0292dde9b060ac282817941d4707dff" dependencies = [ "sval", ] [[package]] name = "sval_serde" -version = "2.13.2" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5572d0321b68109a343634e3a5d576bf131b82180c6c442dee06349dfc652a" +checksum = "752d307438c6a6a3d095a2fecf6950cfb946d301a5bd6b57f047db4f6f8d97b9" dependencies = [ "serde", "sval", @@ -9861,7 +9882,7 @@ dependencies = [ "hex", "once_cell", "reqwest 0.11.27", - "semver 1.0.24", + "semver 1.0.25", "serde", "serde_json", "sha2 0.10.8", @@ -9883,9 +9904,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.95" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -9915,7 +9936,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -9935,7 +9956,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "core-foundation", "system-configuration-sys 0.6.0", ] @@ -10002,7 +10023,7 @@ dependencies = [ "fastrand 2.3.0", "getrandom 0.2.15", "once_cell", - "rustix 0.38.43", + "rustix 0.38.44", "windows-sys 0.59.0", ] @@ -10044,11 +10065,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.10" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ac7f54ca534db81081ef1c1e7f6ea8a3ef428d2fc069097c079443d24124d3" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl 2.0.10", + "thiserror-impl 2.0.11", ] [[package]] @@ -10059,18 +10080,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] name = "thiserror-impl" -version = "2.0.10" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9465d30713b56a37ede7185763c3492a91be2f5fa68d958c44e41ab9248beb" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -10145,7 +10166,7 @@ dependencies = [ "rand 0.8.5", "reqwest 0.12.12", "routefinder", - "semver 1.0.24", + "semver 1.0.25", "serde", "serde_json", "serde_with", @@ -10301,8 +10322,8 @@ dependencies = [ "chrono", "proc-macro2", "quote", - "semver 1.0.24", - "syn 2.0.95", + "semver 1.0.25", + "syn 2.0.96", ] [[package]] @@ -10341,7 +10362,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -10396,7 +10417,7 @@ version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ - "rustls 0.23.20", + "rustls 0.23.21", "tokio", ] @@ -10478,7 +10499,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -10491,11 +10512,11 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.22", + "winnow 0.6.24", ] [[package]] @@ -10592,7 +10613,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -10696,7 +10717,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" dependencies = [ "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -10707,7 +10728,7 @@ checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -10807,9 +10828,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" [[package]] name = "unicode-normalization" @@ -10882,7 +10903,7 @@ dependencies = [ "flate2", "log", "once_cell", - "rustls 0.23.20", + "rustls 0.23.21", "rustls-pki-types", "url", "webpki-roots 0.26.7", @@ -10926,10 +10947,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utils" -version = "0.5.79" -source = "git+https://www.github.com/EspressoSystems/HotShot.git?tag=0.5.83-patch1#99929f7d717100e174c568ac7728bbf63e43ed8b" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "tracing", + "workspace-hack", ] [[package]] @@ -10944,15 +10966,15 @@ dependencies = [ [[package]] name = "uuid" -version = "1.11.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" +checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "value-bag" @@ -11122,12 +11144,13 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "serde", "serde_json", "wasm-bindgen-macro", @@ -11135,23 +11158,23 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.49" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", @@ -11162,9 +11185,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11172,28 +11195,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "web-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -11518,9 +11544,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.22" +version = "0.6.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" dependencies = [ "memchr", ] @@ -11535,6 +11561,97 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "workspace-hack" +version = "0.1.0" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-bn254", + "ark-bw6-761", + "ark-crypto-primitives", + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", + "arrayvec", + "async-std", + "async-tungstenite", + "base64 0.13.1", + "base64 0.22.1", + "byteorder", + "bytes 1.9.0", + "concurrent-queue", + "crossbeam-utils", + "crunchy", + "crypto-common", + "data-encoding", + "derive_more 1.0.0", + "derive_more-impl", + "digest 0.10.7", + "digest 0.9.0", + "displaydoc", + "downcast-rs", + "either", + "event-listener 5.4.0", + "event-listener-strategy", + "form_urlencoded", + "futures", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", + "generic-array", + "getrandom 0.2.15", + "hashbrown 0.14.5", + "hashbrown 0.15.2", + "idna", + "itertools 0.12.1", + "jf-relation", + "jf-rescue", + "jf-signature 0.2.0", + "jf-utils", + "libp2p-identity", + "libsecp256k1-core", + "log", + "memchr", + "multihash", + "num-bigint", + "num-integer", + "num-traits", + "rand 0.8.5", + "regex", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", + "rustls-pki-types", + "serde", + "sha2 0.9.9", + "sha3", + "smallvec", + "sqlx-core", + "sqlx-sqlite", + "standback", + "subtle", + "syn 2.0.96", + "time 0.3.37", + "tokio", + "toml_datetime", + "toml_edit 0.22.22", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber 0.3.19", + "tungstenite 0.13.0", + "uint", + "url", + "zerocopy", + "zeroize", +] + [[package]] name = "write16" version = "1.0.0" @@ -11660,7 +11777,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "synstructure", ] @@ -11682,7 +11799,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -11702,7 +11819,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", "synstructure", ] @@ -11723,7 +11840,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] @@ -11745,7 +11862,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.95", + "syn 2.0.96", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index fe96f875f8..1833f2db13 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,24 +62,24 @@ tokio = { version = "1", default-features = false, features = [ "sync", ] } -hotshot = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.83" } +hotshot = { git = "https://github.com/EspressoSystems/hotshot", branch = "bump/0.5.84" } # Hotshot imports -hotshot-builder-api = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.83" } -hotshot-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core", tag = "0.1.59" } -marketplace-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core", tag = "0.1.59" } -marketplace-builder-shared = { git = "https://github.com/EspressoSystems/marketplace-builder-core", tag = "0.1.59" } -hotshot-events-service = { git = "https://github.com/EspressoSystems/hotshot-events-service.git", tag = "0.1.57" } -hotshot-orchestrator = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.83" } -hotshot-query-service = { git = "https://github.com/EspressoSystems/hotshot-query-service", tag = "v0.1.76" } -hotshot-stake-table = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.83" } +hotshot-builder-api = { git = "https://github.com/EspressoSystems/hotshot", branch = "bump/0.5.84" } +hotshot-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core", branch = "hotshot/rc-0.5.84" } +marketplace-builder-core = { git = "https://github.com/EspressoSystems/marketplace-builder-core", branch = "hotshot/rc-0.5.84" } +marketplace-builder-shared = { git = "https://github.com/EspressoSystems/marketplace-builder-core", branch = "hotshot/rc-0.5.84" } +hotshot-events-service = { git = "https://github.com/EspressoSystems/hotshot-events-service.git", branch = "hotshot/rc-0.5.84" } +hotshot-orchestrator = { git = "https://github.com/EspressoSystems/hotshot", branch = "bump/0.5.84" } +hotshot-query-service = { git = "https://github.com/EspressoSystems/hotshot-query-service", branch = "hotshot/rc-0.5.84" } +hotshot-stake-table = { git = "https://github.com/EspressoSystems/hotshot", branch = "bump/0.5.84" } hotshot-state-prover = { version = "0.1.0", path = "hotshot-state-prover" } -hotshot-task = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.83" } -hotshot-testing = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.83" } -hotshot-types = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.83" } -libp2p-networking = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.83" } +hotshot-task = { git = "https://github.com/EspressoSystems/hotshot", branch = "bump/0.5.84" } +hotshot-testing = { git = "https://github.com/EspressoSystems/hotshot", branch = "bump/0.5.84" } +hotshot-types = { git = "https://github.com/EspressoSystems/hotshot", branch = "bump/0.5.84" } +libp2p-networking = { git = "https://github.com/EspressoSystems/hotshot", branch = "bump/0.5.84" } hotshot-contract-adapter = { version = "0.1.0", path = "contracts/rust/adapter" } # Temporary, used to pull in the mock auction results provider -hotshot-example-types = { git = "https://github.com/EspressoSystems/hotshot", tag = "0.5.83" } +hotshot-example-types = { git = "https://github.com/EspressoSystems/hotshot", branch = "bump/0.5.84" } # Push CDN imports cdn-broker = { git = "https://github.com/EspressoSystems/Push-CDN", tag = "0.5.1-upgrade", package = "cdn-broker" } @@ -162,15 +162,3 @@ opt-level = 0 opt-level = 0 [profile.test.package.hotshot-state-prover] opt-level = 3 - -[patch."https://github.com/EspressoSystems/HotShot.git"] -hotshot = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } -hotshot-builder-api = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } -hotshot-orchestrator = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } -hotshot-stake-table = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } -hotshot-task = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } -hotshot-task-impls = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } -hotshot-testing = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } -hotshot-types = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } -libp2p-networking = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } -hotshot-example-types = { git = "https://www.github.com/EspressoSystems/HotShot.git", tag = "0.5.83-patch1" } diff --git a/builder/src/lib.rs b/builder/src/lib.rs index be8ece7a74..a8805a7da6 100755 --- a/builder/src/lib.rs +++ b/builder/src/lib.rs @@ -434,7 +434,7 @@ pub mod testing { let event = subscribed_events.next().await.unwrap(); tracing::warn!("Event: {:?}", event.event); if let EventType::QuorumProposal { proposal, .. } = event.event { - let parent_view_number = *proposal.data.view_number; + let parent_view_number = *proposal.data.view_number(); let parent_commitment = Leaf2::from_quorum_proposal(&proposal.data).payload_commitment(); let encoded_signature = ::SignatureKey::sign( diff --git a/sequencer-sqlite/Cargo.lock b/sequencer-sqlite/Cargo.lock index d7b35400fb..9a9d9f4f7c 100644 --- a/sequencer-sqlite/Cargo.lock +++ b/sequencer-sqlite/Cargo.lock @@ -1393,6 +1393,15 @@ dependencies = [ "serde", ] +[[package]] +name = "cbor4ii" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "189a2a2e5eec2f203b2bb8bc4c2db55c7253770d2c6bf3ae5f79ace5a15c305f" +dependencies = [ + "serde", +] + [[package]] name = "cc" version = "1.2.7" @@ -3885,8 +3894,8 @@ dependencies = [ [[package]] name = "hotshot" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-broadcast", @@ -3924,12 +3933,13 @@ dependencies = [ "url", "utils", "vbs", + "workspace-hack", ] [[package]] name = "hotshot-builder-api" version = "0.1.7" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "async-trait", "clap", @@ -3943,6 +3953,7 @@ dependencies = [ "tide-disco", "toml 0.8.19", "vbs", + "workspace-hack", ] [[package]] @@ -3974,7 +3985,7 @@ dependencies = [ [[package]] name = "hotshot-events-service" version = "0.1.57" -source = "git+https://github.com/EspressoSystems/hotshot-events-service.git?tag=0.1.57#176c1f2166fa77951c3ebed404135ec8f7386010" +source = "git+https://github.com/EspressoSystems/hotshot-events-service.git?branch=hotshot%2Frc-0.5.84#613d10f3ffde5ce21ed236aa306b346255749bd1" dependencies = [ "async-broadcast", "async-lock 2.8.0", @@ -4000,8 +4011,8 @@ dependencies = [ [[package]] name = "hotshot-example-types" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4021,12 +4032,13 @@ dependencies = [ "tokio", "url", "vbs", + "workspace-hack", ] [[package]] name = "hotshot-fakeapi" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4039,23 +4051,25 @@ dependencies = [ "tokio", "toml 0.8.19", "vbs", + "workspace-hack", ] [[package]] name = "hotshot-macros" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "derive_builder", "proc-macro2", "quote", "syn 2.0.95", + "workspace-hack", ] [[package]] name = "hotshot-orchestrator" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-lock 3.4.0", @@ -4073,12 +4087,13 @@ dependencies = [ "toml 0.8.19", "tracing", "vbs", + "workspace-hack", ] [[package]] name = "hotshot-query-service" version = "0.1.76" -source = "git+https://github.com/EspressoSystems/hotshot-query-service?tag=v0.1.76#f27507fca3d54fb80c18d952c22f39b04f7d195f" +source = "git+https://github.com/EspressoSystems/hotshot-query-service?branch=hotshot%2Frc-0.5.84#6dbb4aaded2601fb38323ac53ebbf7bbc185daf8" dependencies = [ "anyhow", "ark-serialize", @@ -4127,8 +4142,8 @@ dependencies = [ [[package]] name = "hotshot-stake-table" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "ark-bn254", "ark-ed-on-bn254", @@ -4144,6 +4159,7 @@ dependencies = [ "primitive-types", "serde", "tagged-base64", + "workspace-hack", ] [[package]] @@ -4189,8 +4205,8 @@ dependencies = [ [[package]] name = "hotshot-task" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "async-broadcast", "async-trait", @@ -4198,12 +4214,13 @@ dependencies = [ "tokio", "tracing", "utils", + "workspace-hack", ] [[package]] name = "hotshot-task-impls" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-broadcast", @@ -4232,12 +4249,13 @@ dependencies = [ "utils", "vbs", "vec1", + "workspace-hack", ] [[package]] name = "hotshot-testing" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-broadcast", @@ -4273,12 +4291,13 @@ dependencies = [ "url", "vbs", "vec1", + "workspace-hack", ] [[package]] name = "hotshot-types" version = "0.1.11" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "ark-bn254", @@ -4328,6 +4347,7 @@ dependencies = [ "utils", "vbs", "vec1", + "workspace-hack", ] [[package]] @@ -5849,15 +5869,15 @@ dependencies = [ [[package]] name = "libp2p-networking" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "anyhow", "async-lock 3.4.0", "async-trait", "bincode", "blake3", - "cbor4ii", + "cbor4ii 1.0.0", "delegate", "derive_builder", "derive_more 1.0.0", @@ -5873,6 +5893,7 @@ dependencies = [ "tokio", "tracing", "tracing-subscriber 0.3.19", + "workspace-hack", ] [[package]] @@ -5906,7 +5927,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1356c9e376a94a75ae830c42cdaea3d4fe1290ba409a22c809033d1b7dcab0a6" dependencies = [ "async-trait", - "cbor4ii", + "cbor4ii 0.3.3", "futures", "futures-bounded", "futures-timer", @@ -10555,10 +10576,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "utils" -version = "0.5.79" -source = "git+https://github.com/EspressoSystems/hotshot?tag=0.5.83#0cad9270f22138fe15f0cefd5d3b587ab495aea6" +version = "0.5.84" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" dependencies = [ "tracing", + "workspace-hack", ] [[package]] @@ -11155,6 +11177,97 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "workspace-hack" +version = "0.1.0" +source = "git+https://github.com/EspressoSystems/hotshot?branch=bump%2F0.5.84#782374b5839679afc20b9dee443fa5288e2f5bb7" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-bn254", + "ark-bw6-761", + "ark-crypto-primitives", + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", + "arrayvec", + "async-std", + "async-tungstenite", + "base64 0.13.1", + "base64 0.22.1", + "byteorder", + "bytes 1.9.0", + "concurrent-queue", + "crossbeam-utils", + "crunchy", + "crypto-common", + "data-encoding", + "derive_more 1.0.0", + "derive_more-impl", + "digest 0.10.7", + "digest 0.9.0", + "displaydoc", + "downcast-rs", + "either", + "event-listener 5.4.0", + "event-listener-strategy", + "form_urlencoded", + "futures", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", + "generic-array", + "getrandom 0.2.15", + "hashbrown 0.14.5", + "hashbrown 0.15.2", + "idna", + "itertools 0.12.1", + "jf-relation", + "jf-rescue", + "jf-signature 0.2.0", + "jf-utils", + "libp2p-identity", + "libsecp256k1-core", + "log", + "memchr", + "multihash", + "num-bigint", + "num-integer", + "num-traits", + "rand 0.8.5", + "regex", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", + "rustls-pki-types", + "serde", + "sha2 0.9.9", + "sha3", + "smallvec", + "sqlx-core", + "sqlx-sqlite", + "standback", + "subtle", + "syn 2.0.95", + "time 0.3.37", + "tokio", + "toml_datetime", + "toml_edit 0.22.22", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber 0.3.19", + "tungstenite 0.13.0", + "uint", + "url", + "zerocopy", + "zeroize", +] + [[package]] name = "write16" version = "1.0.0" diff --git a/sequencer/src/api.rs b/sequencer/src/api.rs index dee017a6fa..955b9cafba 100644 --- a/sequencer/src/api.rs +++ b/sequencer/src/api.rs @@ -163,30 +163,30 @@ impl, D: Send + Sync, V: Versions, P: SequencerPersi impl, D: Sync, V: Versions, P: SequencerPersistence> StakeTableDataSource for StorageState { - /// Get the stake table for a given epoch or the current epoch if not provided + /// Get the stake table for a given epoch async fn get_stake_table( &self, epoch: Option<::Epoch>, ) -> Vec::SignatureKey>> { self.as_ref().get_stake_table(epoch).await } + + /// Get the stake table for the current epoch if not provided + async fn get_stake_table_current( + &self, + ) -> Vec::SignatureKey>> { + self.as_ref().get_stake_table_current().await + } } impl, V: Versions, P: SequencerPersistence> StakeTableDataSource for ApiState { - /// Get the stake table for a given epoch or the current epoch if not provided + /// Get the stake table for a given epoch async fn get_stake_table( &self, epoch: Option<::Epoch>, ) -> Vec::SignatureKey>> { - // Get the epoch from the argument or the current epoch if not provided - let epoch = if let Some(epoch) = epoch { - epoch - } else { - self.consensus().await.read().await.cur_epoch().await - }; - self.consensus() .await .read() @@ -196,6 +196,15 @@ impl, V: Versions, P: SequencerPersistence> .await .stake_table(epoch) } + + /// Get the stake table for the current epoch if not provided + async fn get_stake_table_current( + &self, + ) -> Vec::SignatureKey>> { + let epoch = self.consensus().await.read().await.cur_epoch().await; + + self.get_stake_table(epoch).await + } } impl, V: Versions, P: SequencerPersistence> SubmitDataSource @@ -1054,7 +1063,6 @@ mod api_tests { use committable::Committable; use data_source::testing::TestableSequencerDataSource; use endpoints::NamespaceProofQueryData; - use espresso_types::MockSequencerVersions; use espresso_types::{ traits::{EventConsumer, PersistenceOptions}, @@ -1065,8 +1073,9 @@ mod api_tests { use hotshot_query_service::availability::{ AvailabilityDataSource, BlockQueryData, VidCommonQueryData, }; + use hotshot_types::{ - data::{DaProposal, QuorumProposal2, VidDisperseShare}, + data::{DaProposal, QuorumProposal2, QuorumProposalWrapper, VidDisperseShare}, event::LeafInfo, message::Proposal, simple_certificate::QuorumCertificate, @@ -1251,19 +1260,22 @@ mod api_tests { let payload_bytes_arc = payload.encode(); let disperse = vid_scheme(2).disperse(payload_bytes_arc.clone()).unwrap(); let payload_commitment = disperse.commit; - let mut quorum_proposal = QuorumProposal2:: { - block_header: genesis.block_header().clone(), - view_number: ViewNumber::genesis(), - justify_qc: QuorumCertificate::genesis::( - &ValidatedState::default(), - &NodeState::mock(), - ) - .await - .to_qc2(), - upgrade_certificate: None, - view_change_evidence: None, - next_drb_result: None, - next_epoch_justify_qc: None, + let mut quorum_proposal = QuorumProposalWrapper:: { + proposal: QuorumProposal2:: { + block_header: genesis.block_header().clone(), + view_number: ViewNumber::genesis(), + justify_qc: QuorumCertificate::genesis::( + &ValidatedState::default(), + &NodeState::mock(), + ) + .await + .to_qc2(), + upgrade_certificate: None, + view_change_evidence: None, + next_drb_result: None, + next_epoch_justify_qc: None, + }, + with_epoch: false, }; let mut qc = QuorumCertificate::genesis::( &ValidatedState::default(), @@ -1274,9 +1286,9 @@ mod api_tests { let mut justify_qc = qc.clone(); for i in 0..5 { - *quorum_proposal.block_header.height_mut() = i; - quorum_proposal.view_number = ViewNumber::new(i); - quorum_proposal.justify_qc = justify_qc; + *quorum_proposal.proposal.block_header.height_mut() = i; + quorum_proposal.proposal.view_number = ViewNumber::new(i); + quorum_proposal.proposal.justify_qc = justify_qc; let leaf = Leaf2::from_quorum_proposal(&quorum_proposal); qc.view_number = leaf.view_number(); qc.data.leaf_commit = Committable::commit(&leaf); @@ -1463,14 +1475,17 @@ mod api_tests { // Create another leaf, with missing data. let mut block_header = leaf.block_header().clone(); *block_header.height_mut() += 1; - let qp = QuorumProposal2 { - block_header, - view_number: leaf.view_number() + 1, - justify_qc: qc.clone(), - upgrade_certificate: None, - view_change_evidence: None, - next_drb_result: None, - next_epoch_justify_qc: None, + let qp = QuorumProposalWrapper { + proposal: QuorumProposal2 { + block_header, + view_number: leaf.view_number() + 1, + justify_qc: qc.clone(), + upgrade_certificate: None, + view_change_evidence: None, + next_drb_result: None, + next_epoch_justify_qc: None, + }, + with_epoch: false, }; let leaf = Leaf2::from_quorum_proposal(&qp); diff --git a/sequencer/src/api/data_source.rs b/sequencer/src/api/data_source.rs index d26dce301c..232323eeb4 100644 --- a/sequencer/src/api/data_source.rs +++ b/sequencer/src/api/data_source.rs @@ -117,11 +117,16 @@ pub(crate) trait NodeStateDataSource { } pub(crate) trait StakeTableDataSource { - /// Get the stake table for a given epoch or the current epoch if not provided + /// Get the stake table for a given epoch fn get_stake_table( &self, epoch: Option<::Epoch>, ) -> impl Send + Future>>; + + /// Get the stake table for the current epoch if not provided + fn get_stake_table_current( + &self, + ) -> impl Send + Future>>; } pub(crate) trait CatchupDataSource: Sync { diff --git a/sequencer/src/api/endpoints.rs b/sequencer/src/api/endpoints.rs index 40f4e752ce..c33df0196a 100644 --- a/sequencer/src/api/endpoints.rs +++ b/sequencer/src/api/endpoints.rs @@ -193,15 +193,16 @@ where async move { // Try to get the epoch from the request. If this fails, error // as it was probably a mistake - let epoch = EpochNumber::new(req.integer_param("epoch_number").map_err(|_| { - hotshot_query_service::node::Error::Custom { + let epoch = req + .opt_integer_param("epoch_number") + .map_err(|_| hotshot_query_service::node::Error::Custom { message: "Epoch number is required".to_string(), status: StatusCode::BAD_REQUEST, - } - })?); + })? + .map(EpochNumber::new); Ok(state - .read(|state| state.get_stake_table(Some(epoch)).boxed()) + .read(|state| state.get_stake_table(epoch).boxed()) .await) } .boxed() @@ -209,7 +210,7 @@ where .at("stake_table_current", |_, state| { async move { Ok(state - .read(|state| state.get_stake_table(None).boxed()) + .read(|state| state.get_stake_table_current().boxed()) .await) } .boxed() diff --git a/sequencer/src/message_compat_tests.rs b/sequencer/src/message_compat_tests.rs index a263b3a049..e16f7d5adf 100755 --- a/sequencer/src/message_compat_tests.rs +++ b/sequencer/src/message_compat_tests.rs @@ -231,8 +231,8 @@ async fn test_message_compat(_ver: Ver) { ViewNumber::genesis(), vid_scheme(1).disperse(payload.encode()).unwrap(), &membership, - EpochNumber::genesis(), - EpochNumber::new(1), + Some(EpochNumber::genesis()), + Some(EpochNumber::new(1)), Some(block_header.payload_commitment()), ) .await, diff --git a/sequencer/src/persistence.rs b/sequencer/src/persistence.rs index 725cc74fa4..73b0cd0dc7 100644 --- a/sequencer/src/persistence.rs +++ b/sequencer/src/persistence.rs @@ -55,7 +55,10 @@ mod persistence_tests { use hotshot::types::{BLSPubKey, SignatureKey}; use hotshot_example_types::node_types::TestVersions; use hotshot_types::{ - data::{DaProposal, EpochNumber, QuorumProposal2, VidDisperseShare, ViewNumber}, + data::{ + DaProposal, EpochNumber, QuorumProposal2, QuorumProposalWrapper, VidDisperseShare, + ViewNumber, + }, event::{EventType, HotShotAction, LeafInfo}, message::{Proposal, UpgradeLock}, simple_certificate::{NextEpochQuorumCertificate2, QuorumCertificate, UpgradeCertificate}, @@ -183,19 +186,22 @@ mod persistence_tests { recipient_key: pubkey, }; let mut quorum_proposal = Proposal { - data: QuorumProposal2:: { - block_header: leaf.block_header().clone(), - view_number: ViewNumber::genesis(), - justify_qc: QuorumCertificate::genesis::( - &ValidatedState::default(), - &NodeState::mock(), - ) - .await - .to_qc2(), - upgrade_certificate: None, - view_change_evidence: None, - next_drb_result: None, - next_epoch_justify_qc: None, + data: QuorumProposalWrapper:: { + proposal: QuorumProposal2:: { + block_header: leaf.block_header().clone(), + view_number: ViewNumber::genesis(), + justify_qc: QuorumCertificate::genesis::( + &ValidatedState::default(), + &NodeState::mock(), + ) + .await + .to_qc2(), + upgrade_certificate: None, + view_change_evidence: None, + next_drb_result: None, + next_epoch_justify_qc: None, + }, + with_epoch: false, }, signature, _pd: Default::default(), @@ -323,7 +329,7 @@ mod persistence_tests { BTreeMap::from_iter([(ViewNumber::genesis(), quorum_proposal1.clone())]) ); - quorum_proposal.data.view_number = ViewNumber::new(1); + quorum_proposal.data.proposal.view_number = ViewNumber::new(1); let quorum_proposal2 = quorum_proposal.clone(); storage .append_quorum_proposal(&quorum_proposal2) @@ -338,8 +344,8 @@ mod persistence_tests { ]) ); - quorum_proposal.data.view_number = ViewNumber::new(2); - quorum_proposal.data.justify_qc.view_number = ViewNumber::new(1); + quorum_proposal.data.proposal.view_number = ViewNumber::new(2); + quorum_proposal.data.proposal.justify_qc.view_number = ViewNumber::new(1); let quorum_proposal3 = quorum_proposal.clone(); storage .append_quorum_proposal(&quorum_proposal3) @@ -355,8 +361,8 @@ mod persistence_tests { ]) ); - quorum_proposal.data.view_number = ViewNumber::new(3); - quorum_proposal.data.justify_qc.view_number = ViewNumber::new(2); + quorum_proposal.data.proposal.view_number = ViewNumber::new(3); + quorum_proposal.data.proposal.justify_qc.view_number = ViewNumber::new(2); // This one should stick around after GC runs. let quorum_proposal4 = quorum_proposal.clone(); @@ -575,10 +581,13 @@ mod persistence_tests { let genesis_view = ViewNumber::genesis(); let data: NextEpochQuorumData2 = QuorumData2 { - leaf_commit: Leaf2::genesis(&ValidatedState::default(), &NodeState::default()) - .await - .commit(), - epoch: EpochNumber::new(1), + leaf_commit: Leaf2::genesis::( + &ValidatedState::default(), + &NodeState::default(), + ) + .await + .commit(), + epoch: Some(EpochNumber::new(1)), } .into(); @@ -657,19 +666,22 @@ mod persistence_tests { .to_proposal(&privkey) .unwrap() .clone(); - let mut quorum_proposal = QuorumProposal2:: { - block_header: leaf.block_header().clone(), - view_number: ViewNumber::genesis(), - justify_qc: QuorumCertificate::genesis::( - &ValidatedState::default(), - &NodeState::mock(), - ) - .await - .to_qc2(), - upgrade_certificate: None, - view_change_evidence: None, - next_drb_result: None, - next_epoch_justify_qc: None, + let mut quorum_proposal = QuorumProposalWrapper:: { + proposal: QuorumProposal2:: { + block_header: leaf.block_header().clone(), + view_number: ViewNumber::genesis(), + justify_qc: QuorumCertificate::genesis::( + &ValidatedState::default(), + &NodeState::mock(), + ) + .await + .to_qc2(), + upgrade_certificate: None, + view_change_evidence: None, + next_drb_result: None, + next_epoch_justify_qc: None, + }, + with_epoch: false, }; let mut qc = QuorumCertificate::genesis::( &ValidatedState::default(), @@ -693,7 +705,7 @@ mod persistence_tests { let vid_commitment = vid_commitment(&leaf_payload_bytes_arc, 2); for i in 0..4 { - quorum_proposal.view_number = ViewNumber::new(i); + quorum_proposal.proposal.view_number = ViewNumber::new(i); let leaf = Leaf2::from_quorum_proposal(&quorum_proposal); qc.view_number = leaf.view_number(); qc.data.leaf_commit = Committable::commit(&leaf); @@ -843,19 +855,22 @@ mod persistence_tests { .unwrap() .clone(); - let quorum_proposal = QuorumProposal2:: { - block_header: leaf.block_header().clone(), - view_number: ViewNumber::genesis(), - justify_qc: QuorumCertificate::genesis::( - &ValidatedState::default(), - &NodeState::mock(), - ) - .await - .to_qc2(), - upgrade_certificate: None, - view_change_evidence: None, - next_drb_result: None, - next_epoch_justify_qc: None, + let quorum_proposal = QuorumProposalWrapper:: { + proposal: QuorumProposal2:: { + block_header: leaf.block_header().clone(), + view_number: ViewNumber::genesis(), + justify_qc: QuorumCertificate::genesis::( + &ValidatedState::default(), + &NodeState::mock(), + ) + .await + .to_qc2(), + upgrade_certificate: None, + view_change_evidence: None, + next_drb_result: None, + next_epoch_justify_qc: None, + }, + with_epoch: false, }; let quorum_proposal_signature = BLSPubKey::sign(&privkey, &bincode::serialize(&quorum_proposal).unwrap()) diff --git a/sequencer/src/persistence/fs.rs b/sequencer/src/persistence/fs.rs index b31bf4ba32..a2e1548342 100644 --- a/sequencer/src/persistence/fs.rs +++ b/sequencer/src/persistence/fs.rs @@ -8,7 +8,7 @@ use espresso_types::{ }; use hotshot_types::{ consensus::CommitmentMap, - data::{DaProposal, QuorumProposal, QuorumProposal2, VidDisperseShare}, + data::{DaProposal, QuorumProposal, QuorumProposal2, QuorumProposalWrapper, VidDisperseShare}, event::{Event, EventType, HotShotAction, LeafInfo}, message::{convert_proposal, Proposal}, simple_certificate::{ @@ -715,7 +715,7 @@ impl SequencerPersistence for Persistence { } async fn append_quorum_proposal( &self, - proposal: &Proposal>, + proposal: &Proposal>, ) -> anyhow::Result<()> { let proposal: Proposal> = convert_proposal(proposal.clone()); @@ -742,7 +742,8 @@ impl SequencerPersistence for Persistence { } async fn load_quorum_proposals( &self, - ) -> anyhow::Result>>> { + ) -> anyhow::Result>>> + { let inner = self.inner.read().await; // First, get the proposal directory. @@ -798,14 +799,15 @@ impl SequencerPersistence for Persistence { async fn load_quorum_proposal( &self, view: ViewNumber, - ) -> anyhow::Result>> { + ) -> anyhow::Result>> { let inner = self.inner.read().await; let dir_path = inner.quorum_proposals_dir_path(); let file_path = dir_path.join(view.to_string()).with_extension("txt"); let bytes = fs::read(file_path)?; let proposal: Proposal> = bincode::deserialize(&bytes)?; - let proposal2 = convert_proposal(proposal); - Ok(proposal2) + // TODO: rather than converting, we should store the value of QuorumProposalWrapper::with_epoch + let proposal_wrapper = convert_proposal(proposal); + Ok(proposal_wrapper) } async fn load_upgrade_certificate( diff --git a/sequencer/src/persistence/no_storage.rs b/sequencer/src/persistence/no_storage.rs index 697fa8bbda..6171357f8f 100644 --- a/sequencer/src/persistence/no_storage.rs +++ b/sequencer/src/persistence/no_storage.rs @@ -9,7 +9,7 @@ use espresso_types::{ }; use hotshot_types::{ consensus::CommitmentMap, - data::{DaProposal, QuorumProposal, QuorumProposal2, VidDisperseShare}, + data::{DaProposal, QuorumProposal, QuorumProposal2, QuorumProposalWrapper, VidDisperseShare}, event::{Event, EventType, HotShotAction, LeafInfo}, message::Proposal, simple_certificate::{NextEpochQuorumCertificate2, QuorumCertificate2, UpgradeCertificate}, @@ -110,13 +110,14 @@ impl SequencerPersistence for NoStorage { async fn load_quorum_proposals( &self, - ) -> anyhow::Result>>> { + ) -> anyhow::Result>>> + { Ok(Default::default()) } async fn load_quorum_proposal( &self, view: ViewNumber, - ) -> anyhow::Result>> { + ) -> anyhow::Result>> { bail!("proposal {view:?} not available"); } async fn load_upgrade_certificate( @@ -150,7 +151,7 @@ impl SequencerPersistence for NoStorage { } async fn append_quorum_proposal( &self, - _proposal: &Proposal>, + _proposal: &Proposal>, ) -> anyhow::Result<()> { Ok(()) } diff --git a/sequencer/src/persistence/sql.rs b/sequencer/src/persistence/sql.rs index 73bd9cb7df..3a9202b05e 100644 --- a/sequencer/src/persistence/sql.rs +++ b/sequencer/src/persistence/sql.rs @@ -29,7 +29,7 @@ use hotshot_query_service::{ }; use hotshot_types::{ consensus::CommitmentMap, - data::{DaProposal, QuorumProposal, QuorumProposal2, VidDisperseShare}, + data::{DaProposal, QuorumProposal, QuorumProposal2, QuorumProposalWrapper, VidDisperseShare}, event::{Event, EventType, HotShotAction, LeafInfo}, message::{convert_proposal, Proposal}, simple_certificate::{ @@ -1110,7 +1110,8 @@ impl SequencerPersistence for Persistence { async fn load_quorum_proposals( &self, - ) -> anyhow::Result>>> { + ) -> anyhow::Result>>> + { let rows = self .db .read() @@ -1135,7 +1136,7 @@ impl SequencerPersistence for Persistence { async fn load_quorum_proposal( &self, view: ViewNumber, - ) -> anyhow::Result>> { + ) -> anyhow::Result>> { let mut tx = self.db.read().await?; let (data,) = query_as::<(Vec,)>("SELECT data FROM quorum_proposals WHERE view = $1 LIMIT 1") @@ -1227,7 +1228,7 @@ impl SequencerPersistence for Persistence { } async fn append_quorum_proposal( &self, - proposal: &Proposal>, + proposal: &Proposal>, ) -> anyhow::Result<()> { let proposal: Proposal> = convert_proposal(proposal.clone()); @@ -1664,14 +1665,17 @@ mod test { .unwrap() .clone(); - let quorum_proposal = QuorumProposal2:: { - block_header: leaf.block_header().clone(), - view_number: leaf.view_number(), - justify_qc: leaf.justify_qc().to_qc2(), - upgrade_certificate: None, - view_change_evidence: None, - next_drb_result: None, - next_epoch_justify_qc: None, + let quorum_proposal = QuorumProposalWrapper:: { + proposal: QuorumProposal2:: { + block_header: leaf.block_header().clone(), + view_number: leaf.view_number(), + justify_qc: leaf.justify_qc().to_qc2(), + upgrade_certificate: None, + view_change_evidence: None, + next_drb_result: None, + next_epoch_justify_qc: None, + }, + with_epoch: false, }; let quorum_proposal_signature = BLSPubKey::sign(&privkey, &bincode::serialize(&quorum_proposal).unwrap()) @@ -1695,11 +1699,15 @@ mod test { }; let mut next_quorum_proposal = quorum_proposal.clone(); - next_quorum_proposal.data.view_number += 1; - next_quorum_proposal.data.justify_qc.view_number += 1; - next_quorum_proposal.data.justify_qc.data.leaf_commit = - Committable::commit(&leaf.clone().into()); - let qc = &next_quorum_proposal.data.justify_qc; + next_quorum_proposal.data.proposal.view_number += 1; + next_quorum_proposal.data.proposal.justify_qc.view_number += 1; + next_quorum_proposal + .data + .proposal + .justify_qc + .data + .leaf_commit = Committable::commit(&leaf.clone().into()); + let qc = next_quorum_proposal.data.justify_qc(); // Add to database. storage @@ -1783,19 +1791,22 @@ mod test { .to_proposal(&privkey) .unwrap() .clone(); - let quorum_proposal = QuorumProposal2:: { - block_header: leaf.block_header().clone(), - view_number: data_view, - justify_qc: QuorumCertificate::genesis::( - &ValidatedState::default(), - &NodeState::mock(), - ) - .await - .to_qc2(), - upgrade_certificate: None, - view_change_evidence: None, - next_drb_result: None, - next_epoch_justify_qc: None, + let quorum_proposal = QuorumProposalWrapper:: { + proposal: QuorumProposal2:: { + block_header: leaf.block_header().clone(), + view_number: data_view, + justify_qc: QuorumCertificate::genesis::( + &ValidatedState::default(), + &NodeState::mock(), + ) + .await + .to_qc2(), + upgrade_certificate: None, + view_change_evidence: None, + next_drb_result: None, + next_epoch_justify_qc: None, + }, + with_epoch: false, }; let quorum_proposal_signature = BLSPubKey::sign(&privkey, &bincode::serialize(&quorum_proposal).unwrap()) diff --git a/sequencer/src/proposal_fetcher.rs b/sequencer/src/proposal_fetcher.rs index 48b7ba6a2d..d9232bc5cd 100644 --- a/sequencer/src/proposal_fetcher.rs +++ b/sequencer/src/proposal_fetcher.rs @@ -143,8 +143,8 @@ where }; // Whenever we see a quorum proposal, ensure we have the chain of proposals stretching back // to the anchor. This allows state replay from the decided state. - let parent_view = proposal.data.justify_qc.view_number; - let parent_leaf = proposal.data.justify_qc.data.leaf_commit; + let parent_view = proposal.data.justify_qc().view_number; + let parent_leaf = proposal.data.justify_qc().data.leaf_commit; self.request((parent_view, parent_leaf)).await; } } @@ -180,8 +180,8 @@ where Ok(proposal) => { // If we already have the proposal in storage, keep traversing the chain to its // parent. - let view = proposal.data.justify_qc.view_number; - let leaf = proposal.data.justify_qc.data.leaf_commit; + let view = proposal.data.justify_qc().view_number; + let leaf = proposal.data.justify_qc().data.leaf_commit; self.request((view, leaf)).await; return Ok(()); } diff --git a/types/src/v0/impls/stake_table.rs b/types/src/v0/impls/stake_table.rs index fc9a44c91b..d77535caca 100644 --- a/types/src/v0/impls/stake_table.rs +++ b/types/src/v0/impls/stake_table.rs @@ -90,6 +90,9 @@ impl StakeTables { #[derive(Clone, Debug)] /// Type to describe DA and Stake memberships pub struct EpochCommittees { + /// Committee used when we're in pre-epoch state + non_epoch_committee: Committee, + /// Holds Stake table and da stake state: HashMap, @@ -174,6 +177,7 @@ impl EpochCommittees { self.state.insert(epoch, committee.clone()); committee } + // We need a constructor to match our concrete type. pub fn new_stake( // TODO remove `new` from trait and rename this to `new`. @@ -225,15 +229,24 @@ impl EpochCommittees { let mut map = HashMap::new(); map.insert(Epoch::genesis(), members.clone()); // TODO: remove this, workaround for hotshot asking for stake tables from epoch 1 - map.insert(Epoch::genesis() + 1u64, members); + map.insert(Epoch::genesis() + 1u64, members.clone()); Self { + non_epoch_committee: members, state: map, _epoch_size: epoch_size, l1_client: instance_state.l1_client.clone(), contract_address: instance_state.chain_config.stake_table_contract, } } + + fn state(&self, epoch: &Option) -> Option<&Committee> { + if let Some(epoch) = epoch { + self.state.get(epoch) + } else { + Some(&self.non_epoch_committee) + } + } } #[derive(Error, Debug)] @@ -293,9 +306,10 @@ impl Membership for EpochCommittees { let mut map = HashMap::new(); map.insert(Epoch::genesis(), members.clone()); // TODO: remove this, workaround for hotshot asking for stake tables from epoch 1 - map.insert(Epoch::genesis() + 1u64, members); + map.insert(Epoch::genesis() + 1u64, members.clone()); Self { + non_epoch_committee: members, state: map, _epoch_size: 12, l1_client: L1Client::new(Url::from_str("http:://ab.b").unwrap()), @@ -304,16 +318,16 @@ impl Membership for EpochCommittees { } /// Get the stake table for the current view - fn stake_table(&self, epoch: Epoch) -> Vec> { - if let Some(st) = self.state.get(&epoch) { + fn stake_table(&self, epoch: Option) -> Vec> { + if let Some(st) = self.state(&epoch) { st.indexed_stake_table.clone().into_values().collect() } else { vec![] } } /// Get the stake table for the current view - fn da_stake_table(&self, epoch: Epoch) -> Vec> { - if let Some(sc) = self.state.get(&epoch) { + fn da_stake_table(&self, epoch: Option) -> Vec> { + if let Some(sc) = self.state(&epoch) { sc.indexed_da_members.clone().into_values().collect() } else { vec![] @@ -324,9 +338,9 @@ impl Membership for EpochCommittees { fn committee_members( &self, _view_number: ::View, - epoch: Epoch, + epoch: Option, ) -> BTreeSet { - if let Some(sc) = self.state.get(&epoch) { + if let Some(sc) = self.state(&epoch) { sc.indexed_stake_table.clone().into_keys().collect() } else { BTreeSet::new() @@ -337,9 +351,9 @@ impl Membership for EpochCommittees { fn da_committee_members( &self, _view_number: ::View, - epoch: Epoch, + epoch: Option, ) -> BTreeSet { - if let Some(sc) = self.state.get(&epoch) { + if let Some(sc) = self.state(&epoch) { sc.indexed_da_members.clone().into_keys().collect() } else { BTreeSet::new() @@ -350,10 +364,9 @@ impl Membership for EpochCommittees { fn committee_leaders( &self, _view_number: ::View, - epoch: Epoch, + epoch: Option, ) -> BTreeSet { - self.state - .get(&epoch) + self.state(&epoch) .unwrap() .eligible_leaders .iter() @@ -362,33 +375,29 @@ impl Membership for EpochCommittees { } /// Get the stake table entry for a public key - fn stake(&self, pub_key: &PubKey, epoch: Epoch) -> Option> { + fn stake(&self, pub_key: &PubKey, epoch: Option) -> Option> { // Only return the stake if it is above zero - self.state - .get(&epoch) + self.state(&epoch) .and_then(|h| h.indexed_stake_table.get(pub_key).cloned()) } /// Get the DA stake table entry for a public key - fn da_stake(&self, pub_key: &PubKey, epoch: Epoch) -> Option> { + fn da_stake(&self, pub_key: &PubKey, epoch: Option) -> Option> { // Only return the stake if it is above zero - self.state - .get(&epoch) + self.state(&epoch) .and_then(|h| h.indexed_da_members.get(pub_key).cloned()) } /// Check if a node has stake in the committee - fn has_stake(&self, pub_key: &PubKey, epoch: Epoch) -> bool { - self.state - .get(&epoch) + fn has_stake(&self, pub_key: &PubKey, epoch: Option) -> bool { + self.state(&epoch) .and_then(|h| h.indexed_stake_table.get(pub_key)) .is_some_and(|x| x.stake() > U256::zero()) } /// Check if a node has stake in the committee - fn has_da_stake(&self, pub_key: &PubKey, epoch: Epoch) -> bool { - self.state - .get(&epoch) + fn has_da_stake(&self, pub_key: &PubKey, epoch: Option) -> bool { + self.state(&epoch) .and_then(|h| h.indexed_da_members.get(pub_key)) .is_some_and(|x| x.stake() > U256::zero()) } @@ -397,11 +406,10 @@ impl Membership for EpochCommittees { fn lookup_leader( &self, view_number: ::View, - epoch: Epoch, + epoch: Option, ) -> Result { let leaders = self - .state - .get(&epoch) + .state(&epoch) .ok_or(LeaderLookupError)? .eligible_leaders .clone(); @@ -412,43 +420,41 @@ impl Membership for EpochCommittees { } /// Get the total number of nodes in the committee - fn total_nodes(&self, epoch: Epoch) -> usize { - self.state - .get(&epoch) + fn total_nodes(&self, epoch: Option) -> usize { + self.state(&epoch) .map(|sc| sc.indexed_stake_table.len()) .unwrap_or_default() } /// Get the total number of DA nodes in the committee - fn da_total_nodes(&self, epoch: Epoch) -> usize { - self.state - .get(&epoch) + fn da_total_nodes(&self, epoch: Option) -> usize { + self.state(&epoch) .map(|sc: &Committee| sc.indexed_da_members.len()) .unwrap_or_default() } /// Get the voting success threshold for the committee - fn success_threshold(&self, epoch: Epoch) -> NonZeroU64 { - let quorum = self.state.get(&epoch).unwrap().indexed_stake_table.clone(); + fn success_threshold(&self, epoch: Option) -> NonZeroU64 { + let quorum = self.state(&epoch).unwrap().indexed_stake_table.clone(); NonZeroU64::new(((quorum.len() as u64 * 2) / 3) + 1).unwrap() } /// Get the voting success threshold for the committee - fn da_success_threshold(&self, epoch: Epoch) -> NonZeroU64 { - let da = self.state.get(&epoch).unwrap().indexed_da_members.clone(); + fn da_success_threshold(&self, epoch: Option) -> NonZeroU64 { + let da = self.state(&epoch).unwrap().indexed_da_members.clone(); NonZeroU64::new(((da.len() as u64 * 2) / 3) + 1).unwrap() } /// Get the voting failure threshold for the committee - fn failure_threshold(&self, epoch: Epoch) -> NonZeroU64 { - let quorum = self.state.get(&epoch).unwrap().indexed_stake_table.clone(); + fn failure_threshold(&self, epoch: Option) -> NonZeroU64 { + let quorum = self.state(&epoch).unwrap().indexed_stake_table.clone(); NonZeroU64::new(((quorum.len() as u64) / 3) + 1).unwrap() } /// Get the voting upgrade threshold for the committee - fn upgrade_threshold(&self, epoch: Epoch) -> NonZeroU64 { - let quorum = self.state.get(&epoch).unwrap().indexed_stake_table.clone(); + fn upgrade_threshold(&self, epoch: Option) -> NonZeroU64 { + let quorum = self.state(&epoch).unwrap().indexed_stake_table.clone(); NonZeroU64::new(max( (quorum.len() as u64 * 9) / 10, diff --git a/types/src/v0/traits.rs b/types/src/v0/traits.rs index cb42bc0812..2608b83a9e 100644 --- a/types/src/v0/traits.rs +++ b/types/src/v0/traits.rs @@ -10,7 +10,8 @@ use hotshot::{types::EventType, HotShotInitializer}; use hotshot_types::{ consensus::CommitmentMap, data::{ - DaProposal, EpochNumber, QuorumProposal, QuorumProposal2, VidDisperseShare, ViewNumber, + DaProposal, QuorumProposal, QuorumProposal2, QuorumProposalWrapper, VidDisperseShare, + ViewNumber, }, event::{HotShotAction, LeafInfo}, message::{convert_proposal, Proposal}, @@ -22,7 +23,7 @@ use hotshot_types::{ storage::Storage, ValidatedState as HotShotState, }, - utils::View, + utils::{genesis_epoch_from_version, View}, vid::VidSchemeType, }; use itertools::Itertools; @@ -451,12 +452,12 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { /// Load the proposals saved by consensus async fn load_quorum_proposals( &self, - ) -> anyhow::Result>>>; + ) -> anyhow::Result>>>; async fn load_quorum_proposal( &self, view: ViewNumber, - ) -> anyhow::Result>>; + ) -> anyhow::Result>>; async fn load_vid_share( &self, @@ -547,7 +548,7 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { // unnecessary catchup from starting in a view earlier than the anchor leaf. let view = max(highest_voted_view, leaf.view_number()); // TODO: - let epoch = EpochNumber::genesis(); + let epoch = genesis_epoch_from_version::(); let (undecided_leaves, undecided_state) = self .load_undecided_state() @@ -592,6 +593,7 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { upgrade_certificate, undecided_leaves.into_values().collect(), undecided_state, + None, // TODO: implement saved_vid_shares ), anchor_view, )) @@ -678,7 +680,7 @@ pub trait SequencerPersistence: Sized + Send + Sync + Clone + 'static { ) -> anyhow::Result<()>; async fn append_quorum_proposal( &self, - proposal: &Proposal>, + proposal: &Proposal>, ) -> anyhow::Result<()>; async fn store_upgrade_certificate( &self,