diff --git a/Cargo.lock b/Cargo.lock index ab6adffb9..d175c3bc8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -25,27 +25,27 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.19.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.27.3", + "gimli 0.31.1", ] [[package]] name = "addr2line" -version = "0.24.2" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" dependencies = [ - "gimli 0.31.1", + "gimli 0.32.3", ] [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" @@ -82,37 +82,25 @@ dependencies = [ "subtle 2.6.1", ] -[[package]] -name = "afl" -version = "0.15.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b784d6332a6978dd29861676de9df37aa37ed8852341db6340bd75eb82bc7a69" -dependencies = [ - "home", - "libc", - "rustc_version 0.4.1", - "xdg", -] - [[package]] name = "ahash" version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.2.15", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -120,9 +108,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -135,14 +123,30 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-primitives" -version = "0.8.19" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec878088ec6283ce1e90d280316aadd3d6ce3de06ff63d68953c855e7e447e92" +checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more 1.0.0", + "derive_more 2.0.1", + "itoa", + "paste", + "ruint", + "tiny-keccak", +] + +[[package]] +name = "alloy-primitives" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" +dependencies = [ + "bytes", + "cfg-if", + "const-hex", + "derive_more 2.0.1", "itoa", "paste", "ruint", @@ -151,67 +155,120 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.19" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e68b32b6fa0d09bb74b4cefe35ccc8269d711c26629bc7cd98a47eeb12fe353f" +dependencies = [ + "alloy-sol-macro-expander 0.8.26", + "alloy-sol-macro-input 0.8.26", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "alloy-sol-macro" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" +dependencies = [ + "alloy-sol-macro-expander 1.4.1", + "alloy-sol-macro-input 1.4.1", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d039d267aa5cbb7732fa6ce1fd9b5e9e29368f580f80ba9d7a8450c794de4b2" +checksum = "2afe6879ac373e58fd53581636f2cce843998ae0b058ebe1e4f649195e2bd23c" dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", + "alloy-sol-macro-input 0.8.26", + "const-hex", + "heck 0.5.0", + "indexmap 2.12.1", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", + "syn-solidity 0.8.26", + "tiny-keccak", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.19" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620ae5eee30ee7216a38027dec34e0585c55099f827f92f50d11e3d2d3a4a954" +checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" dependencies = [ - "alloy-sol-macro-input", + "alloy-sol-macro-input 1.4.1", "const-hex", "heck 0.5.0", - "indexmap 2.7.0", + "indexmap 2.12.1", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.96", - "syn-solidity", + "syn 2.0.111", + "syn-solidity 1.4.1", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.19" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ba01aee235a8c699d07e5be97ba215607564e71be72f433665329bec307d28" +dependencies = [ + "const-hex", + "dunce", + "heck 0.5.0", + "macro-string", + "proc-macro2", + "quote", + "syn 2.0.111", + "syn-solidity 0.8.26", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad9f7d057e00f8c5994e4ff4492b76532c51ead39353aa2ed63f8c50c0f4d52e" +checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" dependencies = [ "const-hex", "dunce", "heck 0.5.0", + "macro-string", "proc-macro2", "quote", - "syn 2.0.96", - "syn-solidity", + "syn 2.0.111", + "syn-solidity 1.4.1", ] [[package]] name = "alloy-sol-types" -version = "0.8.19" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1382302752cd751efd275f4d6ef65877ddf61e0e6f5ac84ef4302b79a33a31a" +checksum = "6e960c4b52508ef2ae1e37cae5058e905e9ae099b107900067a503f8c454036f" dependencies = [ - "alloy-primitives", - "alloy-sol-macro", + "alloy-primitives 0.8.26", + "alloy-sol-macro 0.8.26", "const-hex", ] [[package]] -name = "android-tzdata" -version = "0.1.1" +name = "alloy-sol-types" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" +checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" +dependencies = [ + "alloy-primitives 1.4.1", + "alloy-sol-macro 1.4.1", +] [[package]] name = "android_system_properties" @@ -239,9 +296,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -254,44 +311,44 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", - "once_cell", - "windows-sys 0.59.0", + "once_cell_polyfill", + "windows-sys 0.61.2", ] [[package]] name = "anyhow" -version = "1.0.95" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "approx" @@ -313,17 +370,14 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" -dependencies = [ - "derive_arbitrary", -] +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" [[package]] name = "ark-bls12-377" @@ -336,18 +390,6 @@ dependencies = [ "ark-std 0.4.0", ] -[[package]] -name = "ark-bls12-377-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" -dependencies = [ - "ark-bls12-377", - "ark-ec 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", -] - [[package]] name = "ark-bls12-381" version = "0.4.0" @@ -361,17 +403,15 @@ dependencies = [ ] [[package]] -name = "ark-bls12-381-ext" -version = "0.4.1" +name = "ark-bls12-381" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" dependencies = [ - "ark-bls12-381", - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -385,31 +425,6 @@ dependencies = [ "ark-std 0.3.0", ] -[[package]] -name = "ark-bw6-761" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" -dependencies = [ - "ark-bls12-377", - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-bw6-761-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" -dependencies = [ - "ark-bw6-761", - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", -] - [[package]] name = "ark-crypto-primitives" version = "0.3.0" @@ -455,58 +470,40 @@ dependencies = [ "hashbrown 0.13.2", "itertools 0.10.5", "num-traits", - "rayon", "zeroize", ] [[package]] -name = "ark-ed-on-bls12-377" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" -dependencies = [ - "ark-bls12-377", - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-ed-on-bls12-377-ext" -version = "0.4.1" +name = "ark-ec" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" dependencies = [ - "ark-ec 0.4.2", - "ark-ed-on-bls12-377", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "zeroize", ] [[package]] name = "ark-ed-on-bls12-381-bandersnatch" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" -dependencies = [ - "ark-bls12-381", - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-std 0.4.0", -] - -[[package]] -name = "ark-ed-on-bls12-381-bandersnatch-ext" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346" +checksum = "1786b2e3832f6f0f7c8d62d5d5a282f6952a1ab99981c54cd52b6ac1d8f02df5" dependencies = [ - "ark-ec 0.4.2", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff 0.4.2", - "ark-models-ext", - "ark-std 0.4.0", + "ark-bls12-381 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -547,6 +544,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec 0.7.6", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint 0.4.6", + "num-traits", + "paste", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.3.0" @@ -567,6 +584,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.111", +] + [[package]] name = "ark-ff-macros" version = "0.3.0" @@ -592,6 +619,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "ark-groth16" version = "0.3.0" @@ -607,19 +647,6 @@ dependencies = [ "ark-std 0.3.0", ] -[[package]] -name = "ark-models-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", -] - [[package]] name = "ark-poly" version = "0.3.0" @@ -646,6 +673,21 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + [[package]] name = "ark-relations" version = "0.3.0" @@ -657,35 +699,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "ark-scale" -version = "0.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "ark-secret-scalar" -version = "0.0.2" -source = "git+https://github.com/availproject/ring-vrf?tag=locked#b91a9635bacc4fb542296caeef5f801ccf9c1dd1" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "ark-transcript 0.0.2 (git+https://github.com/availproject/ring-vrf?tag=locked)", - "digest 0.10.7", - "getrandom_or_panic", - "zeroize", -] - [[package]] name = "ark-serialize" version = "0.3.0" @@ -709,6 +722,19 @@ dependencies = [ "num-bigint 0.4.6", ] +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec 0.7.6", + "digest 0.10.7", + "num-bigint 0.4.6", +] + [[package]] name = "ark-serialize-derive" version = "0.3.0" @@ -731,6 +757,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "ark-snark" version = "0.3.0" @@ -749,7 +786,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -759,42 +796,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", - "rayon", + "rand 0.8.5", ] [[package]] -name = "ark-transcript" -version = "0.0.2" +name = "ark-std" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "563084372d89271122bd743ef0a608179726f5fad0566008ba55bd0f756489b8" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "digest 0.10.7", - "rand_core 0.6.4", - "sha3", + "num-traits", + "rand 0.8.5", ] [[package]] name = "ark-transcript" -version = "0.0.2" -source = "git+https://github.com/availproject/ring-vrf?tag=locked#b91a9635bacc4fb542296caeef5f801ccf9c1dd1" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47c1c928edb9d8ff24cb5dcb7651d3a98494fff3099eee95c2404cd813a9139f" dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", "digest 0.10.7", "rand_core 0.6.4", "sha3", ] [[package]] -name = "array-bytes" -version = "4.2.0" +name = "ark-vrf" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" +checksum = "9501da18569b2afe0eb934fb7afd5a247d238b94116155af4dd068f319adfe6d" +dependencies = [ + "ark-bls12-381 0.5.0", + "ark-ec 0.5.0", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "digest 0.10.7", + "rand_chacha 0.3.1", + "sha2 0.10.9", + "w3f-ring-proof", + "zeroize", +] [[package]] name = "array-bytes" @@ -825,11 +871,11 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "asn1-rs" -version = "0.5.2" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" dependencies = [ - "asn1-rs-derive", + "asn1-rs-derive 0.5.1", "asn1-rs-impl", "displaydoc", "nom", @@ -839,27 +885,55 @@ dependencies = [ "time", ] +[[package]] +name = "asn1-rs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" +dependencies = [ + "asn1-rs-derive 0.6.0", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 2.0.17", + "time", +] + [[package]] name = "asn1-rs-derive" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", - "synstructure 0.12.6", + "syn 2.0.111", + "synstructure 0.13.2", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", + "synstructure 0.13.2", ] [[package]] name = "asn1-rs-impl" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.111", ] [[package]] @@ -875,14 +949,14 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", "futures-core", - "pin-project-lite 0.2.16", + "pin-project-lite", ] [[package]] @@ -895,7 +969,7 @@ dependencies = [ "concurrent-queue", "fastrand", "futures-lite", - "pin-project-lite 0.2.16", + "pin-project-lite", "slab", ] @@ -912,32 +986,31 @@ dependencies = [ [[package]] name = "async-io" -version = "2.4.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" dependencies = [ - "async-lock", + "autocfg", "cfg-if", "concurrent-queue", "futures-io", "futures-lite", "parking", "polling", - "rustix 0.38.43", + "rustix 1.1.2", "slab", - "tracing", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "async-lock" -version = "3.4.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ - "event-listener 5.4.0", + "event-listener 5.4.1", "event-listener-strategy", - "pin-project-lite 0.2.16", + "pin-project-lite", ] [[package]] @@ -957,16 +1030,16 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" dependencies = [ - "async-channel 2.3.1", + "async-channel 2.5.0", "async-io", "async-lock", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.4.0", + "event-listener 5.4.1", "futures-lite", - "rustix 1.0.8", + "rustix 1.1.2", ] [[package]] @@ -981,10 +1054,10 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 1.0.8", + "rustix 1.1.2", "signal-hook-registry", "slab", - "windows-sys 0.61.1", + "windows-sys 0.61.2", ] [[package]] @@ -995,13 +1068,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.85" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -1014,7 +1087,20 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.16", + "pin-project-lite", +] + +[[package]] +name = "asynchronous-codec" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233" +dependencies = [ + "bytes", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite", ] [[package]] @@ -1029,6 +1115,17 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "attohttpc" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" +dependencies = [ + "http 0.2.12", + "log", + "url", +] + [[package]] name = "atty" version = "0.2.14" @@ -1042,9 +1139,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "avail-base" @@ -1052,12 +1149,13 @@ version = "0.1.0" dependencies = [ "avail-core", "binary-merkle-tree", - "derive_more 0.99.18", + "derive_more 0.99.20", "frame-support", "hex-literal", "itertools 0.10.5", "log", "parity-scale-codec", + "parking_lot 0.12.5", "scale-info", "sp-api", "sp-authority-discovery", @@ -1079,8 +1177,8 @@ dependencies = [ "avail-core", "avail-observability", "avail-rust-client", - "base64 0.22.1", - "clap 4.5.26", + "base64", + "clap 4.5.53", "da-commitment", "da-control", "da-runtime", @@ -1089,7 +1187,7 @@ dependencies = [ "frame-support", "frame-system", "futures", - "jsonrpsee 0.22.5", + "jsonrpsee", "kate", "kate-recovery", "kvdb", @@ -1099,8 +1197,8 @@ dependencies = [ "pallet-balances", "pallet-staking", "parity-scale-codec", - "parking_lot 0.12.3", - "rand", + "parking_lot 0.12.5", + "rand 0.8.5", "rand_chacha 0.3.1", "rayon", "sc-authority-discovery", @@ -1119,6 +1217,7 @@ dependencies = [ "sp-authority-discovery", "sp-consensus-babe", "sp-core", + "sp-io", "sp-runtime", "sp-std", "sp-transaction-pool", @@ -1131,25 +1230,25 @@ dependencies = [ [[package]] name = "avail-core" version = "0.6.2" -source = "git+https://github.com/availproject/avail-core.git?branch=ghali%2Finfinity-da#4a9aebba058228df8a67fa6a7e992b78161f72b1" +source = "git+https://github.com/availproject/avail-core.git?rev=371efd7ce93a9636d23dee9649b01687568c9e95#371efd7ce93a9636d23dee9649b01687568c9e95" dependencies = [ "binary-merkle-tree", "blake2b_simd", "bounded-collections", - "derive_more 0.99.18", + "derive_more 0.99.20", "ethabi-decode", "frame-support", "hash-db 0.16.0", "hash256-std-hasher", "hex", - "impl-serde 0.5.0", + "impl-serde", "log", "num-traits", "parity-scale-codec", - "primitive-types 0.12.2", + "primitive-types 0.13.1", "scale-info", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "sp-debug-derive", "sp-runtime", @@ -1171,7 +1270,7 @@ dependencies = [ "avail-blob", "avail-core", "avail-observability", - "clap 4.5.26", + "clap 4.5.53", "clap-num", "clap_complete", "da-control", @@ -1181,7 +1280,7 @@ dependencies = [ "frame-system", "frame-system-rpc-runtime-api", "futures", - "jsonrpsee 0.22.5", + "jsonrpsee", "kate", "kate-rpc", "log", @@ -1228,6 +1327,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-grandpa", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", @@ -1244,7 +1344,6 @@ dependencies = [ "tempfile", "testing-rpc", "tokio", - "try-runtime-cli", ] [[package]] @@ -1270,13 +1369,13 @@ dependencies = [ "const-hex", "frame-metadata 20.0.0", "futures", - "impl-serde 0.5.0", + "impl-serde", "parity-scale-codec", "reqwest", "scale-info", "serde", "serde_json", - "thiserror 2.0.11", + "thiserror 2.0.17", "tokio", ] @@ -1286,9 +1385,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cce092908f0beb9f570b20d150dc1ab5cc2f56ffe552642312b063bf4af1d5" dependencies = [ - "base64 0.22.1", + "base64", "const-hex", - "impl-serde 0.5.0", + "impl-serde", "parity-scale-codec", "primitive-types 0.13.1", "scale-decode", @@ -1296,11 +1395,11 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-crypto-hashing 0.1.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core", "subxt-rpcs", "subxt-signer", - "thiserror 2.0.11", + "thiserror 2.0.17", ] [[package]] @@ -1313,17 +1412,17 @@ dependencies = [ "axum-core", "bytes", "futures-util", - "http 1.2.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.5.2", + "hyper 1.8.1", "hyper-util", "itoa", "matchit", "memchr", "mime", "percent-encoding", - "pin-project-lite 0.2.16", + "pin-project-lite", "rustversion", "serde", "serde_json", @@ -1346,11 +1445,11 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.2.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "mime", - "pin-project-lite 0.2.16", + "pin-project-lite", "rustversion", "sync_wrapper", "tower-layer", @@ -1360,39 +1459,18 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" dependencies = [ - "addr2line 0.24.2", + "addr2line 0.25.1", "cfg-if", "libc", "miniz_oxide", - "object 0.36.7", + "object 0.37.3", "rustc-demangle", "serde", - "windows-targets 0.52.6", -] - -[[package]] -name = "bandersnatch_vrfs" -version = "0.0.4" -source = "git+https://github.com/availproject/ring-vrf?tag=locked#b91a9635bacc4fb542296caeef5f801ccf9c1dd1" -dependencies = [ - "ark-bls12-381", - "ark-ec 0.4.2", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "dleq_vrf", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "ring 0.1.0", - "sha2 0.10.8", - "sp-ark-bls12-381", - "sp-ark-ed-on-bls12-381-bandersnatch", - "zeroize", + "windows-link", ] [[package]] @@ -1408,22 +1486,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] -name = "base58" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" - -[[package]] -name = "base64" -version = "0.13.1" +name = "base256emoji" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "b5e9430d9a245a77c92176e649af6e275f20839a48389859d1661e9a128d077c" +dependencies = [ + "const-str", + "match-lookup", +] [[package]] -name = "base64" -version = "0.21.7" +name = "base58" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" [[package]] name = "base64" @@ -1433,26 +1509,18 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "beef" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" -dependencies = [ - "serde", -] +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" [[package]] name = "binary-merkle-tree" -version = "13.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "16.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "hash-db 0.16.0", "log", + "parity-scale-codec", ] [[package]] @@ -1476,13 +1544,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.29", + "prettyplease", "proc-macro2", "quote", "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -1491,29 +1559,44 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "cexpr", "clang-sys", "itertools 0.13.0", "log", - "prettyplease 0.2.29", + "prettyplease", "proc-macro2", "quote", "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.96", + "syn 2.0.111", +] + +[[package]] +name = "bip32" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db40d3dfbeab4e031d78c844642fa0caa0b0db11ce1607ac9d2986dff1405c69" +dependencies = [ + "bs58", + "hmac 0.12.1", + "k256", + "rand_core 0.6.4", + "ripemd", + "secp256k1 0.27.0", + "sha2 0.10.9", + "subtle 2.6.1", + "zeroize", ] [[package]] name = "bip39" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" +checksum = "43d193de1f7487df1914d3a568b772458861d33f9c54249612cc2893d6915054" dependencies = [ "bitcoin_hashes 0.13.0", - "rand", - "rand_core 0.6.4", "serde", "unicode-normalization", ] @@ -1558,9 +1641,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bitvec" @@ -1618,9 +1701,9 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" dependencies = [ "arrayref", "arrayvec 0.7.6", @@ -1629,9 +1712,9 @@ dependencies = [ [[package]] name = "blake2s_simd" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" dependencies = [ "arrayref", "arrayvec 0.7.6", @@ -1669,13 +1752,22 @@ dependencies = [ "generic-array 0.14.7", ] +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2", +] + [[package]] name = "blocking" version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ - "async-channel 2.3.1", + "async-channel 2.5.0", "async-task", "futures-io", "futures-lite", @@ -1697,9 +1789,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" dependencies = [ "cc", "glob", @@ -1709,28 +1801,24 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.2.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d077619e9c237a5d1875166f5e8033e8f6bff0c96f8caf81e1c2d7738c431bf" +checksum = "dee8eddd066a8825ec5570528e6880471210fd5d88cb6abbe1cfdd51ca249c33" dependencies = [ + "jam-codec", "log", "parity-scale-codec", "scale-info", "serde", ] -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" - [[package]] name = "bs58" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ + "sha2 0.10.9", "tinyvec", ] @@ -1745,15 +1833,18 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +dependencies = [ + "allocator-api2", +] [[package]] name = "byte-slice-cast" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "byte-tools" @@ -1763,22 +1854,22 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.21.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.8.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -1789,18 +1880,17 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.9.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "bzip2-sys" -version = "0.1.11+1.0.8" +version = "0.1.13+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" dependencies = [ "cc", - "libc", "pkg-config", ] @@ -1816,11 +1906,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.9" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1840,7 +1930,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.24", + "semver 1.0.27", "serde", "serde_json", "thiserror 1.0.69", @@ -1854,7 +1944,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.24", + "semver 1.0.27", "serde", "serde_json", "thiserror 1.0.69", @@ -1872,25 +1962,26 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fce8dd7fcfcbf3a0a87d8f515194b49d6135acab73e18bd380d1d93bb1a15eb" dependencies = [ - "clap 4.5.26", + "clap 4.5.53", "heck 0.4.1", - "indexmap 2.7.0", + "indexmap 2.12.1", "log", "proc-macro2", "quote", "serde", "serde_json", - "syn 2.0.96", + "syn 2.0.111", "tempfile", - "toml 0.8.19", + "toml 0.8.23", ] [[package]] name = "cc" -version = "1.2.9" +version = "1.2.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" +checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -1922,9 +2013,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -1974,16 +2065,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.39" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", + "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -2026,6 +2117,18 @@ dependencies = [ "unsigned-varint 0.7.2", ] +[[package]] +name = "cid" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" +dependencies = [ + "core2", + "multibase", + "multihash 0.19.3", + "unsigned-varint 0.8.0", +] + [[package]] name = "cipher" version = "0.2.5" @@ -2046,15 +2149,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ckb-merkle-mountain-range" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ccb671c5921be8a84686e6212ca184cb1d7c51cadcdbfcbd1cc3f042f5dfb8" -dependencies = [ - "cfg-if", -] - [[package]] name = "clang-sys" version = "1.8.1" @@ -2080,9 +2174,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.26" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -2090,45 +2184,45 @@ dependencies = [ [[package]] name = "clap-num" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e063d263364859dc54fb064cedb7c122740cd4733644b14b176c097f51e8ab7" +checksum = "822c4000301ac390e65995c62207501e3ef800a1fc441df913a5e8e4dc374816" dependencies = [ "num-traits", ] [[package]] name = "clap_builder" -version = "4.5.26" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", - "clap_lex 0.7.4", + "clap_lex 0.7.6", "strsim", "terminal_size", ] [[package]] name = "clap_complete" -version = "4.5.42" +version = "4.5.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a7e468e750fa4b6be660e8b5651ad47372e8fb114030b594c2d75d48c5ffd0" +checksum = "39615915e2ece2550c0149addac32fb5bd312c657f43845bb9088cb9c8a7c992" dependencies = [ - "clap 4.5.26", + "clap 4.5.53", ] [[package]] name = "clap_derive" -version = "4.5.24" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -2142,25 +2236,35 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" + +[[package]] +name = "cobs" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" +dependencies = [ + "thiserror 2.0.17", +] [[package]] name = "codespan-reporting" -version = "0.11.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681" dependencies = [ + "serde", "termcolor", - "unicode-width 0.1.14", + "unicode-width", ] [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "combine" @@ -2174,28 +2278,12 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.3" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f165e7b643266ea80cb858aed492ad9280e3e05ce24d4a99d7d7b889b6a4d9" -dependencies = [ - "strum 0.26.3", - "strum_macros 0.26.4", - "unicode-width 0.2.0", -] - -[[package]] -name = "common" -version = "0.1.0" -source = "git+https://github.com/availproject/ring-proof?tag=locked#6e646ed5e598a1e89130ab63e650c99ab3d6d60e" +checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-poly 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "fflonk", - "getrandom_or_panic", - "rand_core 0.6.4", + "unicode-segmentation", + "unicode-width", ] [[package]] @@ -2221,22 +2309,22 @@ checksum = "baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af" [[package]] name = "console" -version = "0.15.10" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ "encode_unicode", "libc", "once_cell", - "unicode-width 0.2.0", + "unicode-width", "windows-sys 0.59.0", ] [[package]] name = "const-hex" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6407bff74dea37e0fa3dc1c1c974e5d46405f0c987bf9997a0762adce71eda6" +checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ "cfg-if", "cpufeatures", @@ -2265,11 +2353,37 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "once_cell", "tiny-keccak", ] +[[package]] +name = "const-str" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" + +[[package]] +name = "const_format" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -2282,12 +2396,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" -[[package]] -name = "constcat" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" - [[package]] name = "convert_case" version = "0.4.0" @@ -2304,6 +2412,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -2321,80 +2439,129 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.3.5" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253" dependencies = [ "cfg-if", ] [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] +[[package]] +name = "cranelift-assembler-x64" +version = "0.122.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae7b60ec3fd7162427d3b3801520a1908bef7c035b52983cd3ca11b8e7deb51" +dependencies = [ + "cranelift-assembler-x64-meta", +] + +[[package]] +name = "cranelift-assembler-x64-meta" +version = "0.122.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6511c200fed36452697b4b6b161eae57d917a2044e6333b1c1389ed63ccadeee" +dependencies = [ + "cranelift-srcgen", +] + [[package]] name = "cranelift-bforest" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" +checksum = "5f7086a645aa58bae979312f64e3029ac760ac1b577f5cd2417844842a2ca07f" dependencies = [ "cranelift-entity", ] +[[package]] +name = "cranelift-bitset" +version = "0.122.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5225b4dec45f3f3dbf383f12560fac5ce8d780f399893607e21406e12e77f491" +dependencies = [ + "serde", + "serde_derive", +] + [[package]] name = "cranelift-codegen" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" +checksum = "858fb3331e53492a95979378d6df5208dd1d0d315f19c052be8115f4efc888e0" dependencies = [ "bumpalo", + "cranelift-assembler-x64", "cranelift-bforest", + "cranelift-bitset", "cranelift-codegen-meta", "cranelift-codegen-shared", + "cranelift-control", "cranelift-entity", "cranelift-isle", - "gimli 0.27.3", - "hashbrown 0.13.2", + "gimli 0.31.1", + "hashbrown 0.15.5", "log", - "regalloc2", + "pulley-interpreter", + "regalloc2 0.12.2", + "rustc-hash 2.1.1", + "serde", "smallvec", "target-lexicon", + "wasmtime-internal-math", ] [[package]] name = "cranelift-codegen-meta" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" +checksum = "456715b9d5f12398f156d5081096e7b5d039f01b9ecc49790a011c8e43e65b5f" dependencies = [ + "cranelift-assembler-x64-meta", "cranelift-codegen-shared", + "cranelift-srcgen", + "pulley-interpreter", ] [[package]] name = "cranelift-codegen-shared" -version = "0.95.1" +version = "0.122.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0306041099499833f167a0ddb707e1e54100f1a84eab5631bc3dad249708f482" + +[[package]] +name = "cranelift-control" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" +checksum = "1672945e1f9afc2297f49c92623f5eabc64398e2cb0d824f8f72a2db2df5af23" +dependencies = [ + "arbitrary", +] [[package]] name = "cranelift-entity" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" +checksum = "aa3cd55eb5f3825b9ae5de1530887907360a6334caccdc124c52f6d75246c98a" dependencies = [ + "cranelift-bitset", "serde", + "serde_derive", ] [[package]] name = "cranelift-frontend" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" +checksum = "781f9905f8139b8de22987b66b522b416fe63eb76d823f0b3a8c02c8fd9500c7" dependencies = [ "cranelift-codegen", "log", @@ -2404,15 +2571,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" +checksum = "a05337a2b02c3df00b4dd9a263a027a07b3dff49f61f7da3b5d195c21eaa633d" [[package]] name = "cranelift-native" -version = "0.95.1" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" +checksum = "2eee7a496dd66380082c9c5b6f2d5fa149cec0ec383feec5caf079ca2b3671c2" dependencies = [ "cranelift-codegen", "libc", @@ -2420,26 +2587,16 @@ dependencies = [ ] [[package]] -name = "cranelift-wasm" -version = "0.95.1" +name = "cranelift-srcgen" +version = "0.122.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" -dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "itertools 0.10.5", - "log", - "smallvec", - "wasmparser", - "wasmtime-types", -] +checksum = "b530783809a55cb68d070e0de60cfbb3db0dc94c8850dd5725411422bedcf6bb" [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -2478,11 +2635,17 @@ dependencies = [ "itertools 0.10.5", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] @@ -2523,9 +2686,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" @@ -2541,9 +2704,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", @@ -2570,16 +2733,6 @@ dependencies = [ "subtle 2.6.1", ] -[[package]] -name = "crypto-mac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array 0.14.7", - "subtle 2.6.1", -] - [[package]] name = "crypto_secretbox" version = "0.1.1" @@ -2606,25 +2759,13 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" -dependencies = [ - "nix 0.29.0", - "windows-sys 0.59.0", -] - -[[package]] -name = "curve25519-dalek" -version = "3.2.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +checksum = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle 2.6.1", - "zeroize", + "dispatch2", + "nix 0.30.1", + "windows-sys 0.61.2", ] [[package]] @@ -2651,66 +2792,69 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "cxx" -version = "1.0.136" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad7c7515609502d316ab9a24f67dc045132d93bfd3f00713389e90d9898bf30d" +checksum = "2b788601e7e3e6944d9b37efbae0bee7ee44d9aab533838d4854f631534a1a49" dependencies = [ "cc", + "cxx-build", "cxxbridge-cmd", "cxxbridge-flags", "cxxbridge-macro", - "foldhash", + "foldhash 0.2.0", "link-cplusplus", ] [[package]] name = "cxx-build" -version = "1.0.136" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bfd16fca6fd420aebbd80d643c201ee4692114a0de208b790b9cd02ceae65fb" +checksum = "5e11d62eb0de451f6d3aa83f2cec0986af61c23bd7515f1e2d6572c6c9e53c96" dependencies = [ "cc", "codespan-reporting", + "indexmap 2.12.1", "proc-macro2", "quote", "scratch", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "cxxbridge-cmd" -version = "1.0.136" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c33fd49f5d956a1b7ee5f7a9768d58580c6752838d92e39d0d56439efdedc35" +checksum = "6a368ed4a0fd83ebd3f2808613842d942a409c41cc24cd9d83f1696a00d78afe" dependencies = [ - "clap 4.5.26", + "clap 4.5.53", "codespan-reporting", + "indexmap 2.12.1", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "cxxbridge-flags" -version = "1.0.136" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0f1077278fac36299cce8446effd19fe93a95eedb10d39265f3bf67b3036c9" +checksum = "a9571a7c69f236d7202f517553241496125ed56a86baa1ce346d02aa72357c74" [[package]] name = "cxxbridge-macro" -version = "1.0.136" +version = "1.0.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da7e4d6e74af6b79031d264b2f13c3ea70af1978083741c41ffce9308f1f24f" +checksum = "eba2aaae28ca1d721d3f364bb29d51811921e7194c08bb9eaf745c8ab8d81309" dependencies = [ + "indexmap 2.12.1", "proc-macro2", "quote", - "rustversion", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -2731,7 +2875,7 @@ dependencies = [ "avail-base", "avail-core", "da-commitment", - "derive_more 0.99.18", + "derive_more 0.99.20", "frame-benchmarking", "frame-support", "frame-system", @@ -2768,11 +2912,12 @@ dependencies = [ "avail-base", "avail-core", "binary-merkle-tree", + "bounded-collections", "criterion", "da-control", - "derive_more 0.99.18", + "derive_more 0.99.20", "divan", - "env_logger 0.9.3", + "env_logger", "frame-benchmarking", "frame-election-provider-support", "frame-executive", @@ -2852,37 +2997,23 @@ dependencies = [ ] [[package]] -name = "da-runtime-fuzz" -version = "0.1.0" +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "afl", - "anyhow", - "arbitrary", - "avail-core", - "da-control", - "da-runtime", - "frame-support", - "frame-system", - "libfuzzer-sys", - "pallet-babe", - "pallet-balances", - "pallet-transaction-payment", - "parity-scale-codec", - "rand", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", + "darling_core 0.20.11", + "darling_macro 0.20.11", ] [[package]] name = "darling" -version = "0.20.11" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.21.3", + "darling_macro 0.21.3", ] [[package]] @@ -2896,7 +3027,21 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.96", + "syn 2.0.111", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.111", ] [[package]] @@ -2905,9 +3050,20 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core", + "darling_core 0.20.11", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -2920,7 +3076,7 @@ dependencies = [ "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.10", + "parking_lot_core 0.9.12", ] [[package]] @@ -3003,15 +3159,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.7.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "data-encoding-macro" -version = "0.1.16" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b16d9d0d88a5273d830dac8b78ceb217ffc9b1d5404e5597a3542515329405b" +checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -3019,32 +3175,46 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145d32e826a7748b69ee8fc62d3e6355ff7f1051df53141e7048162fc90481b" +checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "der" -version = "0.7.9" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", + "asn1-rs 0.6.2", + "displaydoc", + "nom", + "num-bigint 0.4.6", + "num-traits", + "rusticata-macros", ] [[package]] name = "der-parser" -version = "8.2.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ - "asn1-rs", + "asn1-rs 0.7.1", "displaydoc", "nom", "num-bigint 0.4.6", @@ -3054,9 +3224,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.11" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", ] @@ -3072,17 +3242,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "derive-syn-parse" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "derive-syn-parse" version = "0.2.0" @@ -3091,7 +3250,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -3102,40 +3261,38 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] -name = "derive_arbitrary" -version = "1.4.1" +name = "derive_more" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ + "convert_case", "proc-macro2", "quote", - "syn 2.0.96", + "rustc_version 0.4.1", + "syn 2.0.111", ] [[package]] name = "derive_more" -version = "0.99.18" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.1", - "syn 2.0.96", + "derive_more-impl 1.0.0", ] [[package]] name = "derive_more" -version = "1.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" dependencies = [ - "derive_more-impl", + "derive_more-impl 2.0.1", ] [[package]] @@ -3146,15 +3303,20 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", - "unicode-xid", + "syn 2.0.111", ] [[package]] -name = "difflib" -version = "0.4.0" +name = "derive_more-impl" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", + "unicode-xid", +] [[package]] name = "digest" @@ -3237,6 +3399,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "dispatch2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +dependencies = [ + "bitflags 2.10.0", + "block2", + "libc", + "objc2", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -3245,17 +3419,17 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "divan" -version = "0.1.17" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0583193020b29b03682d8d33bb53a5b0f50df6daacece12ca99b904cfdcb8c4" +checksum = "a405457ec78b8fe08b0e32b4a3570ab5dff6dd16eb9e76a5ee0a9d9cbd898933" dependencies = [ "cfg-if", - "clap 4.5.26", + "clap 4.5.53", "condtype", "divan-macros", "libc", @@ -3264,29 +3438,13 @@ dependencies = [ [[package]] name = "divan-macros" -version = "0.1.17" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc51d98e636f5e3b0759a39257458b22619cac7e96d932da6eeb052891bb67c" +checksum = "9556bc800956545d6420a640173e5ba7dfa82f38d3ea5a167eb555bc69ac3323" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", -] - -[[package]] -name = "dleq_vrf" -version = "0.0.2" -source = "git+https://github.com/availproject/ring-vrf?tag=locked#b91a9635bacc4fb542296caeef5f801ccf9c1dd1" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-scale", - "ark-secret-scalar", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "ark-transcript 0.0.2 (git+https://github.com/availproject/ring-vrf?tag=locked)", - "arrayvec 0.7.6", - "zeroize", + "syn 2.0.111", ] [[package]] @@ -3305,14 +3463,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60e6be249b0a462a14784a99b19bf35a667bb5e09de611738bb7362fa4c95ff7" dependencies = [ "common-path", - "derive-syn-parse 0.2.0", + "derive-syn-parse", "once_cell", "proc-macro2", "quote", "regex", - "syn 2.0.96", + "syn 2.0.111", "termcolor", - "toml 0.8.19", + "toml 0.8.23", "walkdir", ] @@ -3336,7 +3494,7 @@ checksum = "9ac1e888d6830712d565b2f3a974be3200be9296bc1b03db8251a4cbf18a4a34" dependencies = [ "digest 0.10.7", "futures", - "rand", + "rand 0.8.5", "reqwest", "thiserror 1.0.69", "tokio", @@ -3344,9 +3502,9 @@ dependencies = [ [[package]] name = "dtoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" [[package]] name = "dunce" @@ -3354,32 +3512,11 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" -[[package]] -name = "dyn-clonable" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" -dependencies = [ - "dyn-clonable-impl", - "dyn-clone", -] - -[[package]] -name = "dyn-clonable-impl" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "ecdsa" @@ -3408,39 +3545,52 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "ed25519", "rand_core 0.6.4", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "subtle 2.6.1", "zeroize", ] [[package]] name = "ed25519-zebra" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +checksum = "0017d969298eec91e3db7a2985a8cab4df6341d86e6f3a6f5878b13fb7846bc9" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "ed25519", - "hashbrown 0.14.5", - "hex", + "hashbrown 0.15.5", + "pkcs8", "rand_core 0.6.4", - "sha2 0.10.8", + "sha2 0.10.9", + "subtle 2.6.1", "zeroize", ] +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elf" @@ -3457,7 +3607,7 @@ dependencies = [ "base16ct", "crypto-bigint", "digest 0.10.7", - "ff 0.13.0", + "ff 0.13.1", "generic-array 0.14.7", "group 0.13.0", "hkdf", @@ -3470,6 +3620,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "encode_unicode" version = "1.0.0" @@ -3478,14 +3640,14 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "enum-as-inner" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.111", ] [[package]] @@ -3506,50 +3668,67 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", +] + +[[package]] +name = "enum-ordinalize" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] name = "enumflags2" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] -name = "env_logger" -version = "0.9.3" +name = "env_filter" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" dependencies = [ - "atty", - "humantime", "log", "regex", - "termcolor", ] [[package]] name = "env_logger" -version = "0.10.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" dependencies = [ + "atty", "humantime", - "is-terminal", "log", "regex", "termcolor", @@ -3563,18 +3742,18 @@ checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.10" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -3639,34 +3818,23 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.16", + "pin-project-lite", ] [[package]] name = "event-listener-strategy" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" -dependencies = [ - "event-listener 5.4.0", - "pin-project-lite 0.2.16", -] - -[[package]] -name = "eventsource-stream" -version = "0.2.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74fef4569247a5f429d9156b9d0a2599914385dd189c539334c625d8099d90ab" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "futures-core", - "nom", - "pin-project-lite 0.2.16", + "event-listener 5.4.1", + "pin-project-lite", ] [[package]] @@ -3687,10 +3855,10 @@ dependencies = [ "blake2 0.10.6", "file-guard", "fs-err", - "prettyplease 0.2.29", + "prettyplease", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -3705,9 +3873,9 @@ dependencies = [ [[package]] name = "fallible-iterator" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "fastrand" @@ -3738,9 +3906,9 @@ dependencies = [ [[package]] name = "ff" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "bitvec", "byteorder", @@ -3751,12 +3919,11 @@ dependencies = [ [[package]] name = "ff_derive" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" dependencies = [ "addchain", - "cfg-if", "num-bigint 0.3.3", "num-integer", "num-traits", @@ -3765,19 +3932,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "fflonk" -version = "0.1.0" -source = "git+https://github.com/w3f/fflonk?rev=1e854f35e9a65d08b11a86291405cdc95baa0a35#1e854f35e9a65d08b11a86291405cdc95baa0a35" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-poly 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "merlin", -] - [[package]] name = "fiat-crypto" version = "0.2.9" @@ -3794,33 +3948,23 @@ dependencies = [ "winapi", ] -[[package]] -name = "file-per-thread-logger" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" -dependencies = [ - "env_logger 0.10.2", - "log", -] - [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "finality-grandpa" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" +checksum = "b4f8f43dc520133541781ec03a8cab158ae8b7f7169cdf22e9050aa6cf0fbdfc" dependencies = [ "either", "futures", @@ -3828,10 +3972,16 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "scale-info", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -3839,36 +3989,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] [[package]] name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" -dependencies = [ - "crc32fast", - "libz-sys", - "miniz_oxide", -] - -[[package]] -name = "float-cmp" -version = "0.9.0" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits", -] +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "fnv" @@ -3878,9 +4008,15 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.4" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "foreign-types" @@ -3899,31 +4035,41 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" -version = "12.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "13.0.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", ] [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] +[[package]] +name = "forwarded-header-value" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" +dependencies = [ + "nonempty", + "thiserror 1.0.69", +] + [[package]] name = "fragile" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" +checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-support", "frame-support-procedural", @@ -3940,55 +4086,67 @@ dependencies = [ "sp-io", "sp-runtime", "sp-runtime-interface", - "sp-std", "sp-storage", "static_assertions", ] [[package]] name = "frame-benchmarking-cli" -version = "32.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "51.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "Inflector", - "array-bytes 6.2.3", + "array-bytes", "chrono", - "clap 4.5.26", + "clap 4.5.53", "comfy-table", + "env_filter", "frame-benchmarking", + "frame-storage-access-test-runtime", "frame-support", "frame-system", "gethostname", "handlebars", - "itertools 0.10.5", - "lazy_static", + "itertools 0.11.0", "linked-hash-map", "log", "parity-scale-codec", - "rand", + "rand 0.8.5", "rand_pcg", "sc-block-builder", + "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "sc-runtime-utilities", "sc-service", "sc-sysinfo", "serde", "serde_json", "sp-api", + "sp-block-builder", "sp-blockchain", "sp-core", "sp-database", "sp-externalities", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keystore", "sp-runtime", + "sp-runtime-interface", "sp-state-machine", "sp-storage", + "sp-timestamp", + "sp-transaction-pool", "sp-trie", + "sp-version", "sp-wasm-interface", + "subxt", + "subxt-signer", "thiserror 1.0.69", "thousands", ] @@ -4004,24 +4162,24 @@ dependencies = [ "scale-decode", "scale-info", "scale-type-resolver", - "sp-crypto-hashing 0.1.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "frame-election-provider-solution-type" -version = "13.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "16.1.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "frame-election-provider-support" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -4037,9 +4195,10 @@ dependencies = [ [[package]] name = "frame-executive" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "aquamarine", "frame-support", "frame-system", "frame-try-runtime", @@ -4049,15 +4208,14 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", "sp-tracing", ] [[package]] name = "frame-metadata" -version = "16.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" +checksum = "26de808fa6461f2485dc51811aefed108850064994fb4a62b3ac21ffa62ac8df" dependencies = [ "cfg-if", "parity-scale-codec", @@ -4067,60 +4225,52 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "20.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26de808fa6461f2485dc51811aefed108850064994fb4a62b3ac21ffa62ac8df" +checksum = "20dfd1d7eae1d94e32e869e2fb272d81f52dd8db57820a373adb83ea24d7d862" dependencies = [ "cfg-if", "parity-scale-codec", "scale-info", - "serde", ] [[package]] name = "frame-metadata" -version = "21.0.0" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20dfd1d7eae1d94e32e869e2fb272d81f52dd8db57820a373adb83ea24d7d862" +checksum = "d8c26fcb0454397c522c05fdad5380c4e622f8a875638af33bff5a320d1fc965" dependencies = [ "cfg-if", "parity-scale-codec", "scale-info", + "serde", ] [[package]] -name = "frame-remote-externalities" -version = "0.35.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +name = "frame-storage-access-test-runtime" +version = "0.4.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "futures", - "indicatif", - "jsonrpsee 0.22.5", - "log", "parity-scale-codec", - "serde", "sp-core", - "sp-crypto-hashing 0.0.0", - "sp-io", "sp-runtime", "sp-state-machine", - "spinners", - "substrate-rpc-client", - "tokio", - "tokio-retry", + "sp-trie", + "substrate-wasm-builder", ] [[package]] name = "frame-support" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "aquamarine", - "array-bytes 6.2.3", + "array-bytes", + "binary-merkle-tree", "bitflags 1.3.2", "docify", "environmental", - "frame-metadata 16.0.0", + "frame-metadata 23.0.0", "frame-support-procedural", "impl-trait-for-tuples", "k256", @@ -4131,7 +4281,6 @@ dependencies = [ "scale-info", "serde", "serde_json", - "smallvec", "sp-api", "sp-arithmetic", "sp-core", @@ -4146,50 +4295,51 @@ dependencies = [ "sp-state-machine", "sp-std", "sp-tracing", + "sp-trie", "sp-weights", - "static_assertions", "tt-call", ] [[package]] name = "frame-support-procedural" -version = "23.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "35.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse 0.1.5", + "derive-syn-parse", + "docify", "expander", "frame-support-procedural-tools", - "itertools 0.10.5", + "itertools 0.11.0", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "sp-crypto-hashing 0.0.0", - "syn 2.0.96", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", + "syn 2.0.111", ] [[package]] name = "frame-support-procedural-tools" -version = "10.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "13.0.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "11.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "12.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -4203,7 +4353,7 @@ dependencies = [ "bounded-collections", "cfg-if", "criterion", - "derive_more 0.99.18", + "derive_more 0.99.20", "docify", "frame-support", "hex-literal", @@ -4260,14 +4410,13 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.49.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-support", "parity-scale-codec", "sp-api", "sp-runtime", - "sp-std", ] [[package]] @@ -4295,7 +4444,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.43", + "rustix 0.38.44", "windows-sys 0.48.0", ] @@ -4320,6 +4469,16 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-bounded" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91f328e7fb845fc832912fb6a34f40cf6d1888c92f974d1893a54e97b5ff542e" +dependencies = [ + "futures-timer", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.31" @@ -4356,15 +4515,15 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ "fastrand", "futures-core", "futures-io", "parking", - "pin-project-lite 0.2.16", + "pin-project-lite", ] [[package]] @@ -4375,18 +4534,18 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "futures-rustls" -version = "0.22.2" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" +checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.20.9", - "webpki", + "rustls", + "rustls-pki-types", ] [[package]] @@ -4424,20 +4583,11 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.16", + "pin-project-lite", "pin-utils", "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "gcd" version = "2.3.0" @@ -4492,25 +4642,28 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.16" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "wasi", + "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.2.15" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "r-efi", + "wasip2", "wasm-bindgen", ] @@ -4520,7 +4673,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "rand", + "rand 0.8.5", "rand_core 0.6.4", ] @@ -4536,38 +4689,38 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.3" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" dependencies = [ "fallible-iterator", - "indexmap 1.9.3", + "indexmap 2.12.1", "stable_deref_trait", ] [[package]] name = "gimli" -version = "0.31.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "gloo-net" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43aaa242d1239a8822c15c645f02166398da4f8b5c4bae795c1f5b44e9eee173" +checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" dependencies = [ "futures-channel", "futures-core", "futures-sink", "gloo-utils", - "http 0.2.12", + "http 1.3.1", "js-sys", "pin-project", "serde", @@ -4615,10 +4768,10 @@ dependencies = [ "futures-timer", "no-std-compat", "nonzero_ext", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "portable-atomic", "quanta", - "rand", + "rand 0.8.5", "smallvec", "spinning_top", ] @@ -4641,16 +4794,16 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "ff 0.13.0", + "ff 0.13.1", "rand_core 0.6.4", "subtle 2.6.1", ] [[package]] name = "h2" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" dependencies = [ "bytes", "fnv", @@ -4658,7 +4811,26 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.7.0", + "indexmap 2.12.1", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.3.1", + "indexmap 2.12.1", "slab", "tokio", "tokio-util", @@ -4667,12 +4839,13 @@ dependencies = [ [[package]] name = "half" -version = "2.4.1" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", + "zerocopy", ] [[package]] @@ -4700,9 +4873,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.5.0" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" dependencies = [ "log", "pest", @@ -4757,7 +4930,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", ] [[package]] @@ -4766,22 +4939,29 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "allocator-api2", "serde", ] [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", + "serde", ] +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + [[package]] name = "hashlink" version = "0.8.4" @@ -4814,15 +4994,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hermit-abi" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -4854,6 +5028,98 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" +[[package]] +name = "hickory-proto" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna", + "ipnet", + "once_cell", + "rand 0.8.5", + "socket2 0.5.10", + "thiserror 1.0.69", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-proto" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna", + "ipnet", + "once_cell", + "rand 0.9.2", + "ring 0.17.14", + "thiserror 2.0.17", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.24.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto 0.24.4", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot 0.12.5", + "rand 0.8.5", + "resolv-conf", + "smallvec", + "thiserror 1.0.69", + "tokio", + "tracing", +] + +[[package]] +name = "hickory-resolver" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto 0.25.2", + "ipconfig", + "moka", + "once_cell", + "parking_lot 0.12.5", + "rand 0.9.2", + "resolv-conf", + "smallvec", + "thiserror 2.0.17", + "tokio", + "tracing", +] + [[package]] name = "hkdf" version = "0.12.4" @@ -4873,16 +5139,6 @@ dependencies = [ "digest 0.9.0", ] -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.0", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.12.1" @@ -4903,26 +5159,6 @@ dependencies = [ "hmac 0.8.1", ] -[[package]] -name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "hostname" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" -dependencies = [ - "libc", - "match_cfg", - "winapi", -] - [[package]] name = "http" version = "0.2.12" @@ -4936,9 +5172,9 @@ dependencies = [ [[package]] name = "http" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -4953,7 +5189,7 @@ checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http 0.2.12", - "pin-project-lite 0.2.16", + "pin-project-lite", ] [[package]] @@ -4963,33 +5199,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.2.0", + "http 1.3.1", ] [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", - "http 1.2.0", + "futures-core", + "http 1.3.1", "http-body 1.0.1", - "pin-project-lite 0.2.16", + "pin-project-lite", ] -[[package]] -name = "http-range-header" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" - [[package]] name = "httparse" -version = "1.9.5" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -4999,9 +5229,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.1.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "hyper" @@ -5013,14 +5243,14 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", + "h2 0.3.27", "http 0.2.12", "http-body 0.4.6", "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.16", - "socket2 0.5.8", + "pin-project-lite", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -5029,19 +5259,22 @@ dependencies = [ [[package]] name = "hyper" -version = "1.5.2" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", - "http 1.2.0", + "futures-core", + "h2 0.4.12", + "http 1.3.1", "http-body 1.0.1", "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.16", + "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -5049,36 +5282,21 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.5" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", - "http 1.2.0", - "hyper 1.5.2", + "http 1.3.1", + "hyper 1.8.1", "hyper-util", - "rustls 0.23.21", + "log", + "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.1", + "tokio-rustls", "tower-service", - "webpki-roots 0.26.7", + "webpki-roots 1.0.4", ] [[package]] @@ -5089,7 +5307,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.5.2", + "hyper 1.8.1", "hyper-util", "native-tls", "tokio", @@ -5099,18 +5317,23 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56" dependencies = [ + "base64", "bytes", "futures-channel", + "futures-core", "futures-util", - "http 1.2.0", + "http 1.3.1", "http-body 1.0.1", - "hyper 1.5.2", - "pin-project-lite 0.2.16", - "socket2 0.5.8", + "hyper 1.8.1", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2 0.6.1", "tokio", "tower-service", "tracing", @@ -5142,7 +5365,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -5156,16 +5379,17 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.61" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows-core", + "windows-core 0.62.2", ] [[package]] @@ -5179,21 +5403,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -5202,99 +5427,61 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" dependencies = [ - "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", + "icu_locale_core", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -5303,20 +5490,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -5325,9 +5501,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -5350,7 +5526,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" dependencies = [ "async-io", - "core-foundation", + "core-foundation 0.9.4", "fnv", "futures", "if-addrs", @@ -5363,43 +5539,55 @@ dependencies = [ "rtnetlink", "system-configuration", "tokio", - "windows", + "windows 0.53.0", ] [[package]] -name = "impl-codec" -version = "0.6.0" +name = "igd-next" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4" dependencies = [ - "parity-scale-codec", + "async-trait", + "attohttpc", + "bytes", + "futures", + "http 0.2.12", + "hyper 0.14.32", + "log", + "rand 0.8.5", + "tokio", + "url", + "xmltree", ] [[package]] name = "impl-codec" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67aa010c1e3da95bf151bd8b4c059b2ed7e75387cdb969b4f8f2723a43f9941" +checksum = "2d40b9d5e17727407e55028eafc22b2dc68781786e6d7eb8a21103f5058e3a14" dependencies = [ "parity-scale-codec", ] [[package]] -name = "impl-rlp" -version = "0.3.0" +name = "impl-num-traits" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +checksum = "803d15461ab0dcc56706adf266158acbc44ccf719bf7d0af30705f58b90a4b8c" dependencies = [ - "rlp", + "integer-sqrt", + "num-traits", + "uint 0.10.0", ] [[package]] -name = "impl-serde" +name = "impl-rlp" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +checksum = "54ed8ad1f3877f7e775b8cbf30ed1bd3209a95401817f19a0eb4402d13f8cf90" dependencies = [ - "serde", + "rlp 0.6.1", ] [[package]] @@ -5419,7 +5607,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -5443,9 +5631,9 @@ dependencies = [ [[package]] name = "indenter" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" +checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" @@ -5455,17 +5643,18 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", - "serde", ] [[package]] name = "indexmap" -version = "2.7.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.16.1", + "serde", + "serde_core", ] [[package]] @@ -5476,22 +5665,22 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "indicatif" -version = "0.17.9" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ "console", "number_prefix", "portable-atomic", - "unicode-width 0.2.0", + "unicode-width", "web-time", ] [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array 0.14.7", ] @@ -5514,17 +5703,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", -] - [[package]] name = "ip_network" version = "0.4.1" @@ -5537,7 +5715,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.8", + "socket2 0.5.10", "widestring", "windows-sys 0.48.0", "winreg", @@ -5545,26 +5723,36 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" +dependencies = [ + "memchr", + "serde", +] [[package]] name = "is-terminal" -version = "0.4.13" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ - "hermit-abi 0.4.0", + "hermit-abi 0.5.2", "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -5575,6 +5763,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -5593,24 +5790,63 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jam-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb948eace373d99de60501a02fb17125d30ac632570de20dccc74370cdd611b9" +dependencies = [ + "arrayvec 0.7.6", + "bitvec", + "byte-slice-cast", + "const_format", + "impl-trait-for-tuples", + "jam-codec-derive", + "rustversion", + "serde", +] + +[[package]] +name = "jam-codec-derive" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "319af585c4c8a6b5552a52b7787a1ab3e4d59df7614190b1f85b9b842488789d" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2", + "quote", + "syn 2.0.111", +] [[package]] name = "jni" -version = "0.19.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", "thiserror 1.0.69", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -5621,18 +5857,19 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ "once_cell", "wasm-bindgen", @@ -5640,76 +5877,42 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.22.5" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" +checksum = "e281ae70cc3b98dac15fced3366a880949e65fc66e345ce857a5682d152f3e62" dependencies = [ - "jsonrpsee-client-transport 0.22.5", - "jsonrpsee-core 0.22.5", + "jsonrpsee-client-transport", + "jsonrpsee-core", "jsonrpsee-http-client", "jsonrpsee-proc-macros", "jsonrpsee-server", - "jsonrpsee-types 0.22.5", + "jsonrpsee-types", "jsonrpsee-wasm-client", - "jsonrpsee-ws-client 0.22.5", + "jsonrpsee-ws-client", "tokio", "tracing", ] -[[package]] -name = "jsonrpsee" -version = "0.24.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834af00800e962dee8f7bfc0f60601de215e73e78e5497d733a2919da837d3c8" -dependencies = [ - "jsonrpsee-client-transport 0.24.8", - "jsonrpsee-core 0.24.9", - "jsonrpsee-types 0.24.9", - "jsonrpsee-ws-client 0.24.8", -] - [[package]] name = "jsonrpsee-client-transport" -version = "0.22.5" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" +checksum = "cc4280b709ac3bb5e16cf3bad5056a0ec8df55fa89edfe996361219aadc2c7ea" dependencies = [ + "base64", "futures-channel", "futures-util", "gloo-net", - "http 0.2.12", - "jsonrpsee-core 0.22.5", + "http 1.3.1", + "jsonrpsee-core", "pin-project", - "rustls-native-certs 0.7.3", - "rustls-pki-types", - "soketto 0.7.1", - "thiserror 1.0.69", - "tokio", - "tokio-rustls 0.25.0", - "tokio-util", - "tracing", - "url", - "webpki-roots 0.26.7", -] - -[[package]] -name = "jsonrpsee-client-transport" -version = "0.24.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def0fd41e2f53118bd1620478d12305b2c75feef57ea1f93ef70568c98081b7e" -dependencies = [ - "base64 0.22.1", - "futures-util", - "http 1.2.0", - "jsonrpsee-core 0.24.9", - "pin-project", - "rustls 0.23.21", + "rustls", "rustls-pki-types", "rustls-platform-verifier", - "soketto 0.8.1", + "soketto", "thiserror 1.0.69", "tokio", - "tokio-rustls 0.26.1", + "tokio-rustls", "tokio-util", "tracing", "url", @@ -5717,21 +5920,22 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.22.5" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" +checksum = "348ee569eaed52926b5e740aae20863762b16596476e943c9e415a6479021622" dependencies = [ - "anyhow", "async-trait", - "beef", + "bytes", "futures-timer", "futures-util", - "hyper 0.14.32", - "jsonrpsee-types 0.22.5", - "parking_lot 0.12.3", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "jsonrpsee-types", + "parking_lot 0.12.5", "pin-project", - "rand", - "rustc-hash 1.1.0", + "rand 0.8.5", + "rustc-hash 2.1.1", "serde", "serde_json", "thiserror 1.0.69", @@ -5741,37 +5945,22 @@ dependencies = [ "wasm-bindgen-futures", ] -[[package]] -name = "jsonrpsee-core" -version = "0.24.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" -dependencies = [ - "async-trait", - "futures-timer", - "futures-util", - "jsonrpsee-types 0.24.9", - "pin-project", - "rustc-hash 2.1.0", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", -] - [[package]] name = "jsonrpsee-http-client" -version = "0.22.5" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" +checksum = "f50c389d6e6a52eb7c3548a6600c90cf74d9b71cb5912209833f00a5479e9a01" dependencies = [ "async-trait", - "hyper 0.14.32", - "hyper-rustls 0.24.2", - "jsonrpsee-core 0.22.5", - "jsonrpsee-types 0.22.5", + "base64", + "http-body 1.0.1", + "hyper 1.8.1", + "hyper-rustls", + "hyper-util", + "jsonrpsee-core", + "jsonrpsee-types", + "rustls", + "rustls-platform-verifier", "serde", "serde_json", "thiserror 1.0.69", @@ -5783,33 +5972,36 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.22.5" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" +checksum = "7398cddf5013cca4702862a2692b66c48a3bd6cf6ec681a47453c93d63cf8de5" dependencies = [ - "heck 0.4.1", - "proc-macro-crate 3.2.0", + "heck 0.5.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "jsonrpsee-server" -version = "0.22.5" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41" +checksum = "21429bcdda37dcf2d43b68621b994adede0e28061f816b038b0f18c70c143d51" dependencies = [ "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "jsonrpsee-core 0.22.5", - "jsonrpsee-types 0.22.5", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.8.1", + "hyper-util", + "jsonrpsee-core", + "jsonrpsee-types", "pin-project", "route-recognizer", "serde", "serde_json", - "soketto 0.7.1", + "soketto", "thiserror 1.0.69", "tokio", "tokio-stream", @@ -5820,24 +6012,11 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" -dependencies = [ - "anyhow", - "beef", - "serde", - "serde_json", - "thiserror 1.0.69", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.24.9" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a8e70baf945b6b5752fc8eb38c918a48f1234daf11355e07106d963f860089" +checksum = "b0f05e0028e55b15dbd2107163b3c744cd3bb4474f193f95d9708acbf5677e44" dependencies = [ - "http 1.2.0", + "http 1.3.1", "serde", "serde_json", "thiserror 1.0.69", @@ -5845,38 +6024,25 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f448d8eacd945cc17b6c0b42c361531ca36a962ee186342a97cdb8fca679cd77" -dependencies = [ - "jsonrpsee-client-transport 0.22.5", - "jsonrpsee-core 0.22.5", - "jsonrpsee-types 0.22.5", -] - -[[package]] -name = "jsonrpsee-ws-client" -version = "0.22.5" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" +checksum = "e9d745e4f543fc10fc0e2b11aa1f3be506b1e475d412167e7191a65ecd239f1c" dependencies = [ - "http 0.2.12", - "jsonrpsee-client-transport 0.22.5", - "jsonrpsee-core 0.22.5", - "jsonrpsee-types 0.22.5", - "url", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.24.8" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4f3642a292f5b76d8a16af5c88c16a0860f2ccc778104e5c848b28183d9538" +checksum = "78fc744f17e7926d57f478cf9ca6e1ee5d8332bf0514860b1a3cdf1742e614cc" dependencies = [ - "http 1.2.0", - "jsonrpsee-client-transport 0.24.8", - "jsonrpsee-core 0.24.9", - "jsonrpsee-types 0.24.9", + "http 1.3.1", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", "url", ] @@ -5905,17 +6071,17 @@ dependencies = [ "elliptic-curve", "once_cell", "serdect", - "sha2 0.10.8", + "sha2 0.10.9", "signature", ] [[package]] name = "kate" version = "0.9.2" -source = "git+https://github.com/availproject/avail-core.git?branch=ghali%2Finfinity-da#4a9aebba058228df8a67fa6a7e992b78161f72b1" +source = "git+https://github.com/availproject/avail-core.git?rev=371efd7ce93a9636d23dee9649b01687568c9e95#371efd7ce93a9636d23dee9649b01687568c9e95" dependencies = [ "avail-core", - "derive_more 0.99.18", + "derive_more 0.99.20", "hex", "hex-literal", "kate-recovery", @@ -5925,7 +6091,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "poly-multiproof", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rayon", "serde", @@ -5938,17 +6104,17 @@ dependencies = [ [[package]] name = "kate-recovery" version = "0.10.0" -source = "git+https://github.com/availproject/avail-core.git?branch=ghali%2Finfinity-da#4a9aebba058228df8a67fa6a7e992b78161f72b1" +source = "git+https://github.com/availproject/avail-core.git?rev=371efd7ce93a9636d23dee9649b01687568c9e95#371efd7ce93a9636d23dee9649b01687568c9e95" dependencies = [ "avail-core", - "derive_more 0.99.18", + "derive_more 0.99.20", "hex-literal", "log", "num-traits", "once_cell", "parity-scale-codec", "poly-multiproof", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "serde", "sp-std", @@ -5968,7 +6134,7 @@ dependencies = [ "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "jsonrpsee 0.22.5", + "jsonrpsee", "kate", "kate-recovery", "log", @@ -6025,7 +6191,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.3", + "parking_lot 0.12.5", ] [[package]] @@ -6036,7 +6202,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "regex", "rocksdb", "smallvec", @@ -6058,48 +6224,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] -name = "libc" -version = "0.2.169" +name = "leb128fmt" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] -name = "libfuzzer-sys" -version = "0.4.8" +name = "libc" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b9569d2f74e257076d8c6bfa73fb505b46b851e51ddaecc825944aa3bed17fa" -dependencies = [ - "arbitrary", - "cc", -] +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-link", ] [[package]] name = "libm" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libp2p" -version = "0.51.4" +version = "0.54.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe" +checksum = "bbbe80f9c7e00526cd6b838075b9c171919404a4732cb2fa8ece0a093223bfc4" dependencies = [ "bytes", + "either", "futures", "futures-timer", - "getrandom 0.2.15", - "instant", + "getrandom 0.2.16", "libp2p-allow-block-list", "libp2p-connection-limits", "libp2p-core", @@ -6115,18 +6277,20 @@ dependencies = [ "libp2p-request-response", "libp2p-swarm", "libp2p-tcp", - "libp2p-wasm-ext", + "libp2p-upnp", "libp2p-websocket", "libp2p-yamux", - "multiaddr", + "multiaddr 0.18.2", "pin-project", + "rw-stream-sink", + "thiserror 1.0.69", ] [[package]] name = "libp2p-allow-block-list" -version = "0.1.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" +checksum = "d1027ccf8d70320ed77e984f273bc8ce952f623762cb9bf2d126df73caef8041" dependencies = [ "libp2p-core", "libp2p-identity", @@ -6136,9 +6300,9 @@ dependencies = [ [[package]] name = "libp2p-connection-limits" -version = "0.1.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +checksum = "8d003540ee8baef0d254f7b6bfd79bac3ddf774662ca0abf69186d517ef82ad8" dependencies = [ "libp2p-core", "libp2p-identity", @@ -6148,194 +6312,206 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.39.2" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" +checksum = "a61f26c83ed111104cd820fe9bc3aaabbac5f1652a1d213ed6e900b7918a1298" dependencies = [ "either", "fnv", "futures", "futures-timer", - "instant", "libp2p-identity", - "log", - "multiaddr", - "multihash 0.17.0", + "multiaddr 0.18.2", + "multihash 0.19.3", "multistream-select", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "pin-project", "quick-protobuf", - "rand", + "rand 0.8.5", "rw-stream-sink", "smallvec", "thiserror 1.0.69", - "unsigned-varint 0.7.2", + "tracing", + "unsigned-varint 0.8.0", "void", + "web-time", ] [[package]] name = "libp2p-dns" -version = "0.39.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" +checksum = "97f37f30d5c7275db282ecd86e54f29dd2176bd3ac656f06abf43bedb21eb8bd" dependencies = [ + "async-trait", "futures", + "hickory-resolver 0.24.4", "libp2p-core", - "log", - "parking_lot 0.12.3", + "libp2p-identity", + "parking_lot 0.12.5", "smallvec", - "trust-dns-resolver", + "tracing", ] [[package]] name = "libp2p-identify" -version = "0.42.2" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" +checksum = "1711b004a273be4f30202778856368683bd9a83c4c7dcc8f848847606831a4e3" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.7.0", "either", "futures", + "futures-bounded", "futures-timer", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "log", - "lru 0.10.1", + "lru 0.12.5", "quick-protobuf", "quick-protobuf-codec", "smallvec", "thiserror 1.0.69", + "tracing", "void", ] [[package]] name = "libp2p-identity" -version = "0.1.3" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" +checksum = "3104e13b51e4711ff5738caa1fb54467c8604c2e94d607e27745bcf709068774" dependencies = [ - "bs58 0.4.0", + "bs58", "ed25519-dalek", - "log", - "multiaddr", - "multihash 0.17.0", + "hkdf", + "multihash 0.19.3", "quick-protobuf", - "rand", - "sha2 0.10.8", - "thiserror 1.0.69", + "rand 0.8.5", + "sha2 0.10.9", + "thiserror 2.0.17", + "tracing", "zeroize", ] [[package]] name = "libp2p-kad" -version = "0.43.3" +version = "0.46.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" +checksum = "ced237d0bd84bbebb7c2cad4c073160dacb4fe40534963c32ed6d4c6bb7702a3" dependencies = [ "arrayvec 0.7.6", - "asynchronous-codec", + "asynchronous-codec 0.7.0", "bytes", "either", "fnv", "futures", + "futures-bounded", "futures-timer", - "instant", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "log", "quick-protobuf", - "rand", - "sha2 0.10.8", + "quick-protobuf-codec", + "rand 0.8.5", + "sha2 0.10.9", "smallvec", "thiserror 1.0.69", + "tracing", "uint 0.9.5", - "unsigned-varint 0.7.2", "void", + "web-time", ] [[package]] name = "libp2p-mdns" -version = "0.43.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" +checksum = "14b8546b6644032565eb29046b42744aee1e9f261ed99671b2c93fb140dba417" dependencies = [ "data-encoding", "futures", + "hickory-proto 0.24.4", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "log", - "rand", + "rand 0.8.5", "smallvec", - "socket2 0.4.10", + "socket2 0.5.10", "tokio", - "trust-dns-proto", + "tracing", "void", ] [[package]] name = "libp2p-metrics" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" +checksum = "77ebafa94a717c8442d8db8d3ae5d1c6a15e30f2d347e0cd31d057ca72e42566" dependencies = [ + "futures", "libp2p-core", "libp2p-identify", + "libp2p-identity", "libp2p-kad", "libp2p-ping", "libp2p-swarm", + "pin-project", "prometheus-client", + "web-time", ] [[package]] name = "libp2p-noise" -version = "0.42.2" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" +checksum = "36b137cb1ae86ee39f8e5d6245a296518912014eaa87427d24e6ff58cfc1b28c" dependencies = [ + "asynchronous-codec 0.7.0", "bytes", - "curve25519-dalek 3.2.0", + "curve25519-dalek", "futures", "libp2p-core", "libp2p-identity", - "log", + "multiaddr 0.18.2", + "multihash 0.19.3", "once_cell", "quick-protobuf", - "rand", - "sha2 0.10.8", + "rand 0.8.5", + "sha2 0.10.9", "snow", "static_assertions", "thiserror 1.0.69", - "x25519-dalek 1.1.1", + "tracing", + "x25519-dalek", "zeroize", ] [[package]] name = "libp2p-ping" -version = "0.42.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" +checksum = "005a34420359223b974ee344457095f027e51346e992d1e0dcd35173f4cdd422" dependencies = [ "either", "futures", "futures-timer", - "instant", "libp2p-core", + "libp2p-identity", "libp2p-swarm", - "log", - "rand", + "rand 0.8.5", + "tracing", "void", + "web-time", ] [[package]] name = "libp2p-quic" -version = "0.7.0-alpha.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" +checksum = "46352ac5cd040c70e88e7ff8257a2ae2f891a4076abad2c439584a31c15fd24e" dependencies = [ "bytes", "futures", @@ -6344,153 +6520,170 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-tls", - "log", - "parking_lot 0.12.3", - "quinn-proto 0.9.6", - "rand", - "rustls 0.20.9", + "parking_lot 0.12.5", + "quinn", + "rand 0.8.5", + "ring 0.17.14", + "rustls", + "socket2 0.5.10", "thiserror 1.0.69", "tokio", + "tracing", ] [[package]] name = "libp2p-request-response" -version = "0.24.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" +checksum = "1356c9e376a94a75ae830c42cdaea3d4fe1290ba409a22c809033d1b7dcab0a6" dependencies = [ "async-trait", "futures", - "instant", + "futures-bounded", + "futures-timer", "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand", + "rand 0.8.5", "smallvec", + "tracing", + "void", + "web-time", ] [[package]] name = "libp2p-swarm" -version = "0.42.2" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" +checksum = "d7dd6741793d2c1fb2088f67f82cf07261f25272ebe3c0b0c311e0c6b50e851a" dependencies = [ "either", "fnv", "futures", "futures-timer", - "instant", "libp2p-core", "libp2p-identity", "libp2p-swarm-derive", - "log", - "rand", + "lru 0.12.5", + "multistream-select", + "once_cell", + "rand 0.8.5", "smallvec", "tokio", + "tracing", "void", + "web-time", ] [[package]] name = "libp2p-swarm-derive" -version = "0.32.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" +checksum = "206e0aa0ebe004d778d79fb0966aa0de996c19894e2c0605ba2f8524dd4443d8" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", + "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.111", ] [[package]] name = "libp2p-tcp" -version = "0.39.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" +checksum = "ad964f312c59dcfcac840acd8c555de8403e295d39edf96f5240048b5fcaa314" dependencies = [ "futures", "futures-timer", "if-watch", "libc", "libp2p-core", - "log", - "socket2 0.4.10", + "libp2p-identity", + "socket2 0.5.10", "tokio", + "tracing", ] [[package]] name = "libp2p-tls" -version = "0.1.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" +checksum = "47b23dddc2b9c355f73c1e36eb0c3ae86f7dc964a3715f0731cfad352db4d847" dependencies = [ "futures", "futures-rustls", "libp2p-core", "libp2p-identity", "rcgen", - "ring 0.16.20", - "rustls 0.20.9", + "ring 0.17.14", + "rustls", + "rustls-webpki 0.101.7", "thiserror 1.0.69", - "webpki", - "x509-parser", + "x509-parser 0.16.0", "yasna", ] [[package]] -name = "libp2p-wasm-ext" -version = "0.39.0" +name = "libp2p-upnp" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" +checksum = "01bf2d1b772bd3abca049214a3304615e6a36fa6ffc742bdd1ba774486200b8f" dependencies = [ "futures", - "js-sys", + "futures-timer", + "igd-next", "libp2p-core", - "parity-send-wrapper", - "wasm-bindgen", - "wasm-bindgen-futures", + "libp2p-swarm", + "tokio", + "tracing", + "void", ] [[package]] name = "libp2p-websocket" -version = "0.41.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" +checksum = "888b2ff2e5d8dcef97283daab35ad1043d18952b65e05279eecbe02af4c6e347" dependencies = [ "either", "futures", "futures-rustls", "libp2p-core", - "log", - "parking_lot 0.12.3", - "quicksink", + "libp2p-identity", + "parking_lot 0.12.5", + "pin-project-lite", "rw-stream-sink", - "soketto 0.7.1", + "soketto", + "thiserror 1.0.69", + "tracing", "url", - "webpki-roots 0.22.6", + "webpki-roots 0.25.4", ] [[package]] name = "libp2p-yamux" -version = "0.43.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" +checksum = "788b61c80789dba9760d8c669a5bedb642c8267555c803fabd8396e4ca5c5882" dependencies = [ + "either", "futures", "libp2p-core", - "log", "thiserror 1.0.69", - "yamux", + "tracing", + "yamux 0.12.1", + "yamux 0.13.8", ] [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "libc", - "redox_syscall 0.5.8", + "redox_syscall 0.5.18", ] [[package]] @@ -6510,18 +6703,18 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ "arrayref", - "base64 0.13.1", + "base64", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand", + "rand 0.8.5", "serde", "sha2 0.9.9", "typenum", @@ -6558,9 +6751,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.21" +version = "1.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" +checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" dependencies = [ "cc", "pkg-config", @@ -6569,9 +6762,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +checksum = "7f78c730aaa7d0b9336a299029ea49f9ee53b0ed06e9202e8cb7db9bae7b8c82" dependencies = [ "cc", ] @@ -6584,9 +6777,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linked_hash_set" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2" +checksum = "984fb35d06508d1e69fc91050cceba9c0b748f983e6739fa2c7a9237154c52c8" dependencies = [ "linked-hash-map", ] @@ -6600,12 +6793,6 @@ dependencies = [ "nalgebra 0.33.2", ] -[[package]] -name = "linux-raw-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" - [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -6614,9 +6801,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "lioness" @@ -6632,25 +6819,71 @@ dependencies = [ [[package]] name = "litemap" -version = "0.7.4" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "litep2p" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "c666ef772d123a7643323ad4979c30dd825e9c68ec1aa5b387a6c9a9871c11ea" +dependencies = [ + "async-trait", + "bs58", + "bytes", + "cid 0.11.1", + "ed25519-dalek", + "futures", + "futures-timer", + "hickory-resolver 0.25.2", + "indexmap 2.12.1", + "libc", + "mockall", + "multiaddr 0.17.1", + "multihash 0.17.0", + "network-interface", + "parking_lot 0.12.5", + "pin-project", + "prost 0.13.5", + "prost-build", + "rand 0.8.5", + "serde", + "sha2 0.10.9", + "simple-dns", + "smallvec", + "snow", + "socket2 0.5.10", + "thiserror 2.0.17", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tokio-util", + "tracing", + "uint 0.10.0", + "unsigned-varint 0.8.0", + "url", + "x25519-dalek", + "x509-parser 0.17.0", + "yamux 0.13.8", + "yasna", + "zeroize", +] [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.25" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" dependencies = [ "serde", ] @@ -6664,22 +6897,13 @@ dependencies = [ "hashbrown 0.12.3", ] -[[package]] -name = "lru" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" -dependencies = [ - "hashbrown 0.13.2", -] - [[package]] name = "lru" version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.2", + "hashbrown 0.15.5", ] [[package]] @@ -6691,6 +6915,12 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "lz4" version = "1.28.1" @@ -6711,14 +6941,25 @@ dependencies = [ ] [[package]] -name = "mach" -version = "0.3.2" +name = "mach2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" dependencies = [ "libc", ] +[[package]] +name = "macro-string" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "macro_magic" version = "0.5.1" @@ -6728,7 +6969,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -6738,11 +6979,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" dependencies = [ "const-random", - "derive-syn-parse 0.2.0", + "derive-syn-parse", "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -6753,7 +6994,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -6764,45 +7005,29 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - -[[package]] -name = "matchers" -version = "0.0.1" +name = "match-lookup" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e" dependencies = [ - "regex-automata 0.1.10", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - [[package]] name = "matchit" version = "0.7.3" @@ -6811,9 +7036,9 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "matrixmultiply" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" +checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" dependencies = [ "autocfg", "rawpointer", @@ -6821,17 +7046,17 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memfd" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" dependencies = [ - "rustix 0.38.43", + "rustix 1.1.2", ] [[package]] @@ -6845,22 +7070,13 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.5" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" -dependencies = [ - "autocfg", -] - [[package]] name = "memory-db" version = "0.30.0" @@ -6874,11 +7090,13 @@ dependencies = [ [[package]] name = "memory-db" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" +checksum = "7e300c54e3239a86f9c61cc63ab0f03862eb40b1c6e065dc6fd6ceaeff6da93d" dependencies = [ + "foldhash 0.1.5", "hash-db 0.16.0", + "hashbrown 0.15.5", ] [[package]] @@ -6913,22 +7131,22 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.3" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -6942,13 +7160,13 @@ dependencies = [ "bitflags 1.3.2", "blake2 0.10.6", "c2-chacha", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "either", "hashlink", "lioness", "log", - "parking_lot 0.12.3", - "rand", + "parking_lot 0.12.5", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", "subtle 2.6.1", @@ -6958,10 +7176,10 @@ dependencies = [ [[package]] name = "mmr-rpc" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "jsonrpsee 0.22.5", + "jsonrpsee", "parity-scale-codec", "serde", "sp-api", @@ -6973,14 +7191,13 @@ dependencies = [ [[package]] name = "mockall" -version = "0.11.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +checksum = "39a6bfcc6c8c7eed5ee98b9c3e33adc726054389233e201c95dab2d41a3839d2" dependencies = [ "cfg-if", "downcast", "fragile", - "lazy_static", "mockall_derive", "predicates", "predicates-tree", @@ -6988,14 +7205,32 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.11.4" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.111", +] + +[[package]] +name = "moka" +version = "0.12.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "equivalent", + "parking_lot 0.12.5", + "portable-atomic", + "rustc_version 0.4.1", + "smallvec", + "tagptr", + "uuid", ] [[package]] @@ -7023,13 +7258,33 @@ dependencies = [ "url", ] +[[package]] +name = "multiaddr" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "libp2p-identity", + "multibase", + "multihash 0.19.3", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint 0.8.0", + "url", +] + [[package]] name = "multibase" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77" dependencies = [ "base-x", + "base256emoji", "data-encoding", "data-encoding-macro", ] @@ -7045,25 +7300,12 @@ dependencies = [ "blake3", "core2", "digest 0.10.7", - "multihash-derive 0.8.1", - "sha2 0.10.8", + "multihash-derive", + "sha2 0.10.9", "sha3", "unsigned-varint 0.7.2", ] -[[package]] -name = "multihash" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" -dependencies = [ - "core2", - "digest 0.10.7", - "multihash-derive 0.8.1", - "sha2 0.10.8", - "unsigned-varint 0.7.2", -] - [[package]] name = "multihash" version = "0.19.3" @@ -7074,26 +7316,6 @@ dependencies = [ "unsigned-varint 0.8.0", ] -[[package]] -name = "multihash-codetable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6d815ecb3c8238d00647f8630ede7060a642c9f704761cd6082cb4028af6935" -dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive 0.9.1", - "ripemd", - "serde", - "sha1", - "sha2 0.10.8", - "sha3", - "strobe-rs", -] - [[package]] name = "multihash-derive" version = "0.8.1" @@ -7108,41 +7330,17 @@ dependencies = [ "synstructure 0.12.6", ] -[[package]] -name = "multihash-derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f1b7edab35d920890b88643a765fc9bd295cf0201f4154dda231bef9b8404eb" -dependencies = [ - "core2", - "multihash 0.19.3", - "multihash-derive-impl", -] - -[[package]] -name = "multihash-derive-impl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3dc7141bd06405929948754f0628d247f5ca1865be745099205e5086da957cb" -dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2", - "quote", - "syn 2.0.96", - "synstructure 0.13.1", -] - [[package]] name = "multimap" -version = "0.8.3" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "multistream-select" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" +checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" dependencies = [ "bytes", "futures", @@ -7178,7 +7376,7 @@ dependencies = [ "num-complex", "num-rational", "num-traits", - "simba 0.9.0", + "simba 0.9.1", "typenum", ] @@ -7188,7 +7386,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand", + "rand 0.8.5", ] [[package]] @@ -7203,7 +7401,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -7247,17 +7445,16 @@ dependencies = [ [[package]] name = "netlink-proto" -version = "0.11.3" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21" +checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" dependencies = [ "bytes", "futures", "log", "netlink-packet-core", "netlink-sys", - "thiserror 1.0.69", - "tokio", + "thiserror 2.0.17", ] [[package]] @@ -7273,6 +7470,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "network-interface" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07709a6d4eba90ab10ec170a0530b3aafc81cb8a2d380e4423ae41fc55fe5745" +dependencies = [ + "cc", + "libc", + "thiserror 2.0.17", + "winapi", +] + [[package]] name = "nix" version = "0.26.4" @@ -7286,11 +7495,11 @@ dependencies = [ [[package]] name = "nix" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "cfg-if", "cfg_aliases 0.2.1", "libc", @@ -7325,16 +7534,16 @@ dependencies = [ ] [[package]] -name = "nonzero_ext" -version = "0.3.0" +name = "nonempty" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" +checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" [[package]] -name = "normalize-line-endings" +name = "nonzero_ext" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" [[package]] name = "ntapi" @@ -7347,12 +7556,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "overload", - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -7413,7 +7621,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -7484,11 +7692,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi 0.5.2", "libc", ] @@ -7519,47 +7727,81 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +[[package]] +name = "objc2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +dependencies = [ + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "crc32fast", + "hashbrown 0.15.5", + "indexmap 2.12.1", + "memchr", +] + [[package]] name = "object" -version = "0.30.4" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ - "crc32fast", - "hashbrown 0.13.2", - "indexmap 1.9.3", "memchr", ] [[package]] -name = "object" -version = "0.36.7" +name = "oid-registry" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ - "memchr", + "asn1-rs 0.6.2", ] [[package]] name = "oid-registry" -version = "0.6.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" dependencies = [ - "asn1-rs", + "asn1-rs 0.7.1", ] [[package]] name = "once_cell" -version = "1.20.2" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +dependencies = [ + "critical-section", + "portable-atomic", +] + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "oorandom" -version = "11.1.4" +version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "opaque-debug" @@ -7575,11 +7817,11 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "cfg-if", "foreign-types", "libc", @@ -7596,20 +7838,20 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[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" -version = "0.9.109" +version = "0.9.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" dependencies = [ "cc", "libc", @@ -7629,12 +7871,6 @@ version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "p256" version = "0.13.2" @@ -7644,7 +7880,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "primeorder", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -7668,7 +7904,7 @@ dependencies = [ "p3-mds", "p3-poseidon2", "p3-symmetric", - "rand", + "rand 0.8.5", "serde", ] @@ -7678,12 +7914,12 @@ version = "0.2.3-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0dd4d095d254783098bd09fc5fdf33fd781a1be54608ab93cb3ed4bd723da54" dependencies = [ - "ff 0.13.0", + "ff 0.13.1", "num-bigint 0.4.6", "p3-field", "p3-poseidon2", "p3-symmetric", - "rand", + "rand 0.8.5", "serde", ] @@ -7738,7 +7974,7 @@ dependencies = [ "num-bigint 0.4.6", "num-traits", "p3-util", - "rand", + "rand 0.8.5", "serde", ] @@ -7796,7 +8032,7 @@ dependencies = [ "p3-field", "p3-maybe-rayon", "p3-util", - "rand", + "rand 0.8.5", "serde", "tracing", ] @@ -7822,7 +8058,7 @@ dependencies = [ "p3-matrix", "p3-symmetric", "p3-util", - "rand", + "rand 0.8.5", ] [[package]] @@ -7852,7 +8088,7 @@ dependencies = [ "p3-field", "p3-mds", "p3-symmetric", - "rand", + "rand 0.8.5", "serde", ] @@ -7906,8 +8142,8 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-support", "frame-system", @@ -7917,13 +8153,12 @@ dependencies = [ "sp-application-crypto", "sp-authority-discovery", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-authorship" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-support", "frame-system", @@ -7931,13 +8166,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-babe" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-benchmarking", "frame-support", @@ -7955,13 +8189,12 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", ] [[package]] name = "pallet-bags-list" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "aquamarine", "docify", @@ -7976,14 +8209,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", "sp-tracing", ] [[package]] name = "pallet-balances" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "44.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "docify", "frame-benchmarking", @@ -7992,15 +8224,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", + "sp-core", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-collective" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -8010,50 +8243,33 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-election-provider-multi-phase" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", "log", - "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sp-arithmetic", "sp-core", "sp-io", "sp-npos-elections", "sp-runtime", - "sp-std", - "strum 0.24.1", -] - -[[package]] -name = "pallet-election-provider-support-benchmarking" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" -dependencies = [ - "frame-benchmarking", - "frame-election-provider-support", - "frame-system", - "parity-scale-codec", - "sp-npos-elections", - "sp-runtime", - "sp-std", + "strum 0.26.3", ] [[package]] name = "pallet-grandpa" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8070,13 +8286,12 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", ] [[package]] name = "pallet-identity" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "enumflags2", "frame-benchmarking", @@ -8087,13 +8302,12 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-im-online" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8107,13 +8321,12 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std", ] [[package]] name = "pallet-indices" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8122,9 +8335,7 @@ dependencies = [ "scale-info", "sp-core", "sp-io", - "sp-keyring", "sp-runtime", - "sp-std", ] [[package]] @@ -8146,42 +8357,31 @@ dependencies = [ [[package]] name = "pallet-mmr" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", "log", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", - "sp-core", - "sp-io", "sp-mmr-primitives", - "sp-runtime", - "sp-std", ] [[package]] name = "pallet-multisig" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", "log", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", ] [[package]] name = "pallet-nomination-pools" -version = "25.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "41.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-support", "frame-system", @@ -8193,42 +8393,38 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std", "sp-tracing", ] [[package]] name = "pallet-nomination-pools-runtime-api" -version = "23.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api", - "sp-std", ] [[package]] name = "pallet-offences" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-support", "frame-system", "log", - "pallet-balances", "parity-scale-codec", "scale-info", "serde", "sp-runtime", "sp-staking", - "sp-std", ] [[package]] name = "pallet-preimage" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8239,28 +8435,22 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-proxy" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", ] [[package]] name = "pallet-scheduler" -version = "29.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "44.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "docify", "frame-benchmarking", @@ -8271,19 +8461,19 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", "sp-weights", ] [[package]] name = "pallet-session" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "log", + "pallet-balances", "pallet-timestamp", "parity-scale-codec", "scale-info", @@ -8293,14 +8483,13 @@ dependencies = [ "sp-session", "sp-staking", "sp-state-machine", - "sp-std", "sp-trie", ] [[package]] name = "pallet-staking" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8310,31 +8499,30 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", - "rand_chacha 0.2.2", + "rand_chacha 0.3.1", "scale-info", "serde", "sp-application-crypto", "sp-io", "sp-runtime", "sp-staking", - "sp-std", ] [[package]] name = "pallet-staking-reward-curve" -version = "11.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "12.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "pallet-staking-reward-fn" -version = "19.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "24.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "log", "sp-arithmetic", @@ -8342,8 +8530,8 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" -version = "14.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "29.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", "sp-api", @@ -8352,8 +8540,8 @@ dependencies = [ [[package]] name = "pallet-sudo" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "docify", "frame-benchmarking", @@ -8363,13 +8551,12 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-timestamp" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "docify", "frame-benchmarking", @@ -8379,35 +8566,32 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-inherents", - "sp-io", "sp-runtime", - "sp-std", "sp-storage", "sp-timestamp", ] [[package]] name = "pallet-transaction-payment" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-transaction-payment-rpc" -version = "30.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "46.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "jsonrpsee 0.22.5", + "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api", @@ -8420,8 +8604,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -8432,45 +8616,38 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "docify", "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", + "log", "pallet-balances", "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-tx-pause" -version = "9.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "24.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "docify", - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-balances", - "pallet-proxy", - "pallet-utility", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", - "sp-runtime", - "sp-std", ] [[package]] name = "pallet-utility" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "frame-benchmarking", "frame-support", @@ -8480,14 +8657,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-vector" version = "1.0.0" dependencies = [ - "alloy-sol-types", + "alloy-sol-types 0.8.26", "ark-bn254", "ark-ff 0.3.0", "ark-groth16", @@ -8504,8 +8680,8 @@ dependencies = [ "pallet-timestamp", "parity-scale-codec", "patricia-merkle-trie", - "primitive-types 0.12.2", - "rlp", + "primitive-types 0.13.1", + "rlp 0.5.2", "scale-info", "serde", "serde_json", @@ -8518,6 +8694,19 @@ dependencies = [ "trie-db 0.24.0", ] +[[package]] +name = "parity-bip39" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + [[package]] name = "parity-db" version = "0.4.13" @@ -8532,8 +8721,8 @@ dependencies = [ "log", "lz4", "memmap2 0.5.10", - "parking_lot 0.12.3", - "rand", + "parking_lot 0.12.5", + "rand 0.8.5", "siphasher 0.3.11", "snap", "winapi", @@ -8541,37 +8730,33 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.12" +version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ "arrayvec 0.7.6", "bitvec", "byte-slice-cast", "bytes", + "const_format", "impl-trait-for-tuples", "parity-scale-codec-derive", + "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.12" +version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.111", ] -[[package]] -name = "parity-send-wrapper" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" - [[package]] name = "parity-util-mem" version = "0.12.0" @@ -8621,12 +8806,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", - "parking_lot_core 0.9.10", + "parking_lot_core 0.9.12", ] [[package]] @@ -8645,15 +8830,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.8", + "redox_syscall 0.5.18", "smallvec", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -8683,7 +8868,7 @@ dependencies = [ "ff 0.12.1", "group 0.12.1", "lazy_static", - "rand", + "rand 0.8.5", "static_assertions", "subtle 2.6.1", ] @@ -8695,10 +8880,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" dependencies = [ "blake2b_simd", - "ff 0.13.0", + "ff 0.13.1", "group 0.13.0", "lazy_static", - "rand", + "rand 0.8.5", "static_assertions", "subtle 2.6.1", ] @@ -8725,23 +8910,14 @@ dependencies = [ "hex-literal", "memory-db 0.30.0", "parity-scale-codec", - "primitive-types 0.12.2", - "rlp", + "primitive-types 0.13.1", + "rlp 0.5.2", "rlp-derive", "sp-io", "tiny-keccak", "trie-db 0.24.0", ] -[[package]] -name = "pbkdf2" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac 0.11.0", -] - [[package]] name = "pbkdf2" version = "0.12.2" @@ -8761,11 +8937,12 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "pem" -version = "1.1.1" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ - "base64 0.13.1", + "base64", + "serde_core", ] [[package]] @@ -8779,26 +8956,25 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.7.15" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" +checksum = "cbcfd20a6d4eeba40179f05735784ad32bdaef05ce8e8af05f180d45bb3e7e22" dependencies = [ "memchr", - "thiserror 2.0.11", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.15" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" +checksum = "51f72981ade67b1ca6adc26ec221be9f463f2b5839c7508998daa17c23d94d7f" dependencies = [ "pest", "pest_generator", @@ -8806,64 +8982,57 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.15" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" +checksum = "dee9efd8cdb50d719a80088b76f81aec7c41ed6d522ee750178f83883d271625" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "pest_meta" -version = "2.7.15" +version = "2.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" +checksum = "bf1d70880e76bdc13ba52eafa6239ce793d85c8e43896507e43dd8984ff05b82" dependencies = [ - "once_cell", "pest", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] name = "petgraph" -version = "0.6.5" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.7.0", + "indexmap 2.12.1", ] [[package]] name = "pin-project" -version = "1.1.8" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.8" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] -[[package]] -name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - [[package]] name = "pin-project-lite" version = "0.2.16" @@ -8898,24 +9067,153 @@ dependencies = [ ] [[package]] -name = "pkg-config" -version = "0.3.31" +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "polkadot-ckb-merkle-mountain-range" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221c71b432b38e494a0fdedb5f720e4cb974edf03a0af09e5b2238dbac7e6947" +dependencies = [ + "cfg-if", + "itertools 0.10.5", +] + +[[package]] +name = "polkadot-sdk-frame" +version = "0.12.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" +dependencies = [ + "docify", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-arithmetic", + "sp-block-builder", + "sp-consensus-aura", + "sp-consensus-grandpa", + "sp-core", + "sp-genesis-builder", + "sp-inherents", + "sp-io", + "sp-keyring", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-storage", + "sp-transaction-pool", + "sp-version", +] + +[[package]] +name = "polkavm" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa028f713d0613f0f08b8b3367402cb859218854f6b96fcbe39a501862894d6f" +dependencies = [ + "libc", + "log", + "polkavm-assembler", + "polkavm-common", + "polkavm-linux-raw", +] + +[[package]] +name = "polkavm-assembler" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4859a29e1f4ad64610c4bc2bfc40bb9a535068a034933a5b56b5e7a0febf105a" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-common" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a5794b695626ba70d29e66e3f4f4835767452a6723f3a0bc20884b07088fe8" +dependencies = [ + "log", + "polkavm-assembler", +] + +[[package]] +name = "polkavm-derive" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95282a203ae1f6828a04ff334145c3f6dc718bba6d3959805d273358b45eab93" +dependencies = [ + "polkavm-derive-impl-macro", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6069dc7995cde6e612b868a02ce48b54397c6d2582bd1b97b63aabbe962cd779" +dependencies = [ + "polkavm-common", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581d34cafec741dc5ffafbb341933c205b6457f3d76257a9d99fb56687219c91" +dependencies = [ + "polkavm-derive-impl", + "syn 2.0.111", +] + +[[package]] +name = "polkavm-linker" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beb896023e5bd89bba40311797d8d42490fa4a1fd5256c74820753c5722d1e67" +dependencies = [ + "dirs", + "gimli 0.31.1", + "hashbrown 0.14.5", + "log", + "object 0.36.7", + "polkavm-common", + "regalloc2 0.9.3", + "rustc-demangle", +] + +[[package]] +name = "polkavm-linux-raw" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "28919f542476f4158cc71e6c072b1051f38f4b514253594ac3ad80e3c0211fc8" [[package]] name = "polling" -version = "3.7.4" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.4.0", - "pin-project-lite 0.2.16", - "rustix 0.38.43", - "tracing", - "windows-sys 0.59.0", + "hermit-abi 0.5.2", + "pin-project-lite", + "rustix 1.1.2", + "windows-sys 0.61.2", ] [[package]] @@ -8923,7 +9221,7 @@ name = "poly-multiproof" version = "0.1.1" source = "git+https://github.com/availproject/poly-multiproof?rev=c2794e32ca040e6b2544abde18b7187af3e66feb#c2794e32ca040e6b2544abde18b7187af3e66feb" dependencies = [ - "ark-bls12-381", + "ark-bls12-381 0.4.0", "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-poly 0.4.2", @@ -8931,7 +9229,7 @@ dependencies = [ "ark-std 0.4.0", "blst", "merlin", - "thiserror 2.0.11", + "thiserror 2.0.17", ] [[package]] @@ -8959,9 +9257,30 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + +[[package]] +name = "postcard" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "serde", +] + +[[package]] +name = "potential_utf" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] [[package]] name = "powerfmt" @@ -8971,25 +9290,21 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ "zerocopy", ] [[package]] name = "predicates" -version = "2.1.5" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" dependencies = [ - "difflib", - "float-cmp", - "itertools 0.10.5", - "normalize-line-endings", + "anstyle", "predicates-core", - "regex", ] [[package]] @@ -9010,22 +9325,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "prettyplease" -version = "0.2.29" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -9044,10 +9349,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", - "impl-codec 0.6.0", - "impl-rlp", - "impl-serde 0.4.0", - "scale-info", "uint 0.9.5", ] @@ -9058,8 +9359,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" dependencies = [ "fixed-hash", - "impl-codec 0.7.0", - "impl-serde 0.5.0", + "impl-codec", + "impl-num-traits", + "impl-rlp", + "impl-serde", "scale-info", "uint 0.10.0", ] @@ -9076,11 +9379,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit", + "toml_edit 0.23.7", ] [[package]] @@ -9126,25 +9429,25 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "proc-macro-warning" -version = "1.0.2" +version = "1.84.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" +checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] @@ -9159,19 +9462,19 @@ dependencies = [ "fnv", "lazy_static", "memchr", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "thiserror 1.0.69", ] [[package]] name = "prometheus-client" -version = "0.19.0" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" +checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "prometheus-client-derive-encode", ] @@ -9183,33 +9486,23 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "proptest" -version = "1.5.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", "num-traits", - "rand", - "rand_chacha 0.3.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "rand_xorshift", "unarray", ] -[[package]] -name = "prost" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" -dependencies = [ - "bytes", - "prost-derive 0.11.9", -] - [[package]] name = "prost" version = "0.12.6" @@ -9222,114 +9515,107 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ "bytes", - "prost-derive 0.13.4", + "prost-derive 0.13.5", ] [[package]] name = "prost-build" -version = "0.11.9" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "bytes", - "heck 0.4.1", - "itertools 0.10.5", - "lazy_static", + "heck 0.5.0", + "itertools 0.14.0", "log", "multimap", + "once_cell", "petgraph", - "prettyplease 0.1.25", - "prost 0.11.9", + "prettyplease", + "prost 0.13.5", "prost-types", "regex", - "syn 1.0.109", + "syn 2.0.111", "tempfile", - "which", ] [[package]] name = "prost-derive" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.111", ] [[package]] name = "prost-derive" -version = "0.12.6" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] -name = "prost-derive" -version = "0.13.4" +name = "prost-types" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ - "anyhow", - "itertools 0.13.0", - "proc-macro2", - "quote", - "syn 2.0.96", + "prost 0.13.5", ] [[package]] -name = "prost-types" -version = "0.11.9" +name = "pulley-interpreter" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +checksum = "b89c4319786b16c1a6a38ee04788d32c669b61ba4b69da2162c868c18be99c1b" dependencies = [ - "prost 0.11.9", + "cranelift-bitset", + "log", + "pulley-macros", + "wasmtime-internal-math", ] [[package]] -name = "psm" -version = "0.1.24" +name = "pulley-macros" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" +checksum = "938543690519c20c3a480d20a8efcc8e69abeb44093ab1df4e7c1f81f26c677a" dependencies = [ - "cc", + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] name = "quanta" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" +checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" dependencies = [ "crossbeam-utils", "libc", "once_cell", "raw-cpuid", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "web-sys", "winapi", ] -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quick-protobuf" version = "0.8.1" @@ -9341,79 +9627,54 @@ dependencies = [ [[package]] name = "quick-protobuf-codec" -version = "0.1.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +checksum = "15a0580ab32b169745d7a39db2ba969226ca16738931be152a3209b409de2474" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.7.0", "bytes", "quick-protobuf", "thiserror 1.0.69", - "unsigned-varint 0.7.2", -] - -[[package]] -name = "quicksink" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" -dependencies = [ - "futures-core", - "futures-sink", - "pin-project-lite 0.1.12", + "unsigned-varint 0.8.0", ] [[package]] name = "quinn" -version = "0.11.6" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", - "pin-project-lite 0.2.16", - "quinn-proto 0.11.9", + "cfg_aliases 0.2.1", + "futures-io", + "pin-project-lite", + "quinn-proto", "quinn-udp", - "rustc-hash 2.1.0", - "rustls 0.23.21", - "socket2 0.5.8", - "thiserror 2.0.11", + "rustc-hash 2.1.1", + "rustls", + "socket2 0.6.1", + "thiserror 2.0.17", "tokio", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" -dependencies = [ - "bytes", - "rand", - "ring 0.16.20", - "rustc-hash 1.1.0", - "rustls 0.20.9", - "slab", - "thiserror 1.0.69", - "tinyvec", - "tracing", - "webpki", -] - -[[package]] -name = "quinn-proto" -version = "0.11.9" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", - "getrandom 0.2.15", - "rand", - "ring 0.17.8", - "rustc-hash 2.1.0", - "rustls 0.23.21", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.2", + "ring 0.17.14", + "rustc-hash 2.1.1", + "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.11", + "thiserror 2.0.17", "tinyvec", "tracing", "web-time", @@ -9421,27 +9682,33 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.9" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases 0.2.1", "libc", "once_cell", - "socket2 0.5.8", + "socket2 0.6.1", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -9460,13 +9727,13 @@ dependencies = [ ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "rand" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha 0.9.0", + "rand_core 0.9.3", ] [[package]] @@ -9480,12 +9747,13 @@ dependencies = [ ] [[package]] -name = "rand_core" -version = "0.5.1" +name = "rand_chacha" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ - "getrandom 0.1.16", + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -9494,7 +9762,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.4", ] [[package]] @@ -9504,7 +9781,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -9518,11 +9795,11 @@ dependencies = [ [[package]] name = "rand_xorshift" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core 0.6.4", + "rand_core 0.9.3", ] [[package]] @@ -9539,11 +9816,11 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.3.0" +version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6928fa44c097620b706542d428957635951bade7143269085389d42c8a4927e" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", ] [[package]] @@ -9554,9 +9831,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -9564,9 +9841,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -9583,9 +9860,9 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" dependencies = [ "pem", "ring 0.16.20", @@ -9604,11 +9881,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.8" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", ] [[package]] @@ -9617,121 +9894,116 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "libredox", "thiserror 1.0.69", ] [[package]] name = "ref-cast" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "regalloc2" -version = "0.6.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" dependencies = [ - "fxhash", + "hashbrown 0.13.2", "log", + "rustc-hash 1.1.0", "slice-group-by", "smallvec", ] [[package]] -name = "regex" -version = "1.11.1" +name = "regalloc2" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "5216b1837de2149f8bc8e6d5f88a9326b63b8c836ed58ce4a0a29ec736a59734" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "allocator-api2", + "bumpalo", + "hashbrown 0.15.5", + "log", + "rustc-hash 2.1.1", + "smallvec", ] [[package]] -name = "regex-automata" -version = "0.1.10" +name = "regex" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ - "regex-syntax 0.6.29", + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] name = "regex-lite" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" - -[[package]] -name = "regex-syntax" -version = "0.6.29" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "8d942b98df5e658f56f20d592c7f868833fe38115e65c33003d8cd224b0155da" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.12.12" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-core", - "futures-util", - "http 1.2.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.5.2", - "hyper-rustls 0.27.5", + "hyper 1.8.1", + "hyper-rustls", "hyper-tls", "hyper-util", - "ipnet", "js-sys", "log", - "mime", "native-tls", - "once_cell", "percent-encoding", - "pin-project-lite 0.2.16", + "pin-project-lite", "quinn", - "rustls 0.23.21", - "rustls-pemfile 2.2.0", + "rustls", "rustls-pki-types", "serde", "serde_json", @@ -9739,26 +10011,22 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.1", + "tokio-rustls", "tower 0.5.2", + "tower-http 0.6.6", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.26.7", - "windows-registry", + "webpki-roots 1.0.4", ] [[package]] name = "resolv-conf" -version = "0.7.0" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" -dependencies = [ - "hostname", - "quick-error", -] +checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "rfc6979" @@ -9770,23 +10038,6 @@ dependencies = [ "subtle 2.6.1", ] -[[package]] -name = "ring" -version = "0.1.0" -source = "git+https://github.com/availproject/ring-proof?tag=locked#6e646ed5e598a1e89130ab63e650c99ab3d6d60e" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-poly 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "ark-transcript 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "arrayvec 0.7.6", - "blake2 0.10.6", - "common", - "fflonk", -] - [[package]] name = "ring" version = "0.16.20" @@ -9804,15 +10055,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "libc", - "spin 0.9.8", "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -9835,6 +10085,16 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "rlp" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" +dependencies = [ + "bytes", + "rustc-hex", +] + [[package]] name = "rlp-derive" version = "0.1.0" @@ -9864,13 +10124,13 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "rpassword" -version = "7.3.1" +version = "7.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +checksum = "66d4c8b64f049c6721ec8ccec37ddfc3d641c4a7fca57e8f2a89de509c73df39" dependencies = [ "libc", "rtoolbox", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -9904,24 +10164,25 @@ dependencies = [ [[package]] name = "rtoolbox" -version = "0.0.2" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "ruint" -version = "1.12.4" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5ef8fb1dd8de3870cb8400d51b4c2023854bbafd5431a3ac7e7317243e22d2f" +checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" dependencies = [ "proptest", - "rand", + "rand 0.8.5", + "rand 0.9.2", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -9934,9 +10195,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -9946,9 +10207,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc-hex" @@ -9961,192 +10222,110 @@ name = "rustc_version" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver 1.0.24", -] - -[[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom", -] - -[[package]] -name = "rustix" -version = "0.36.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.45.0", -] - -[[package]] -name = "rustix" -version = "0.38.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" -dependencies = [ - "bitflags 2.8.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", +dependencies = [ + "semver 0.11.0", ] [[package]] -name = "rustix" -version = "1.0.8" +name = "rustc_version" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "bitflags 2.8.0", - "errno", - "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.59.0", + "semver 1.0.27", ] [[package]] -name = "rustls" -version = "0.20.9" +name = "rusticata-macros" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" dependencies = [ - "log", - "ring 0.16.20", - "sct", - "webpki", + "nom", ] [[package]] -name = "rustls" -version = "0.21.12" +name = "rustix" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct", + "bitflags 2.10.0", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", ] [[package]] -name = "rustls" -version = "0.22.4" +name = "rustix" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "log", - "ring 0.17.8", - "rustls-pki-types", - "rustls-webpki 0.102.8", - "subtle 2.6.1", - "zeroize", + "bitflags 2.10.0", + "errno", + "libc", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.21" +version = "0.23.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" dependencies = [ "log", "once_cell", - "ring 0.17.8", + "ring 0.17.14", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki 0.103.8", "subtle 2.6.1", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" dependencies = [ "openssl-probe", - "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", + "security-framework 3.5.1", ] [[package]] name = "rustls-pki-types" -version = "1.10.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" dependencies = [ "web-time", + "zeroize", ] [[package]] name = "rustls-platform-verifier" -version = "0.3.4" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" +checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" dependencies = [ - "core-foundation", + "core-foundation 0.10.1", "core-foundation-sys", "jni", "log", "once_cell", - "rustls 0.23.21", - "rustls-native-certs 0.7.3", + "rustls", + "rustls-native-certs", "rustls-platform-verifier-android", - "rustls-webpki 0.102.8", - "security-framework", + "rustls-webpki 0.103.8", + "security-framework 3.5.1", "security-framework-sys", - "webpki-roots 0.26.7", - "winapi", + "webpki-root-certs 0.26.11", + "windows-sys 0.59.0", ] [[package]] @@ -10161,26 +10340,26 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.8", + "ring 0.17.14", "untrusted 0.9.0", ] [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ - "ring 0.17.8", + "ring 0.17.14", "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.19" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ruzstd" @@ -10189,14 +10368,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more 0.99.18", + "derive_more 0.99.20", ] [[package]] name = "rw-stream-sink" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" +checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" dependencies = [ "futures", "pin-project", @@ -10205,9 +10384,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safe_arch" @@ -10238,8 +10417,8 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "23.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "34.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "log", "sp-core", @@ -10249,23 +10428,25 @@ dependencies = [ [[package]] name = "sc-authority-discovery" -version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.53.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "futures", "futures-timer", "ip_network", - "libp2p", + "linked_hash_set", "log", - "multihash 0.18.1", - "multihash-codetable", "parity-scale-codec", "prost 0.12.6", "prost-build", - "rand", + "rand 0.8.5", "sc-client-api", "sc-network", + "sc-network-types", + "sc-service", + "serde", + "serde_json", "sp-api", "sp-authority-discovery", "sp-blockchain", @@ -10274,6 +10455,7 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror 1.0.69", + "tokio", ] [[package]] @@ -10287,7 +10469,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sc-authority-discovery", "sc-block-builder", "sc-client-api", @@ -10309,8 +10491,8 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.47.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", "sp-api", @@ -10324,13 +10506,12 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "46.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "docify", - "log", - "memmap2 0.9.5", + "memmap2 0.9.9", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", @@ -10341,41 +10522,42 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", "sp-genesis-builder", "sp-io", "sp-runtime", "sp-state-machine", + "sp-tracing", ] [[package]] name = "sc-chain-spec-derive" -version = "11.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "12.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "sc-cli" -version = "0.36.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.55.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", - "bip39", + "array-bytes", "chrono", - "clap 4.5.26", + "clap 4.5.53", "fdlimit", "futures", - "itertools 0.10.5", + "itertools 0.11.0", "libp2p-identity", "log", "names", + "parity-bip39", "parity-scale-codec", - "rand", + "rand 0.8.5", "regex", "rpassword", "sc-client-api", @@ -10386,6 +10568,7 @@ dependencies = [ "sc-service", "sc-telemetry", "sc-tracing", + "sc-transaction-pool", "sc-utils", "serde", "serde_json", @@ -10402,14 +10585,14 @@ dependencies = [ [[package]] name = "sc-client-api" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "fnv", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -10421,7 +10604,6 @@ dependencies = [ "sp-externalities", "sp-runtime", "sp-state-machine", - "sp-statement-store", "sp-storage", "sp-trie", "substrate-prometheus-endpoint", @@ -10429,18 +10611,17 @@ dependencies = [ [[package]] name = "sc-client-db" -version = "0.35.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.49.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "hash-db 0.16.0", "kvdb", "kvdb-memorydb", - "kvdb-rocksdb", "linked-hash-map", "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sc-client-api", "sc-state-db", "schnellru", @@ -10451,25 +10632,24 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-trie", + "substrate-prometheus-endpoint", + "sysinfo", ] [[package]] name = "sc-consensus" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.52.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "futures", - "futures-timer", - "libp2p-identity", "log", "mockall", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sc-client-api", - "sc-telemetry", + "sc-network-types", "sc-utils", "serde", - "sp-api", "sp-blockchain", "sp-consensus", "sp-core", @@ -10481,8 +10661,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.53.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "fork-tree", @@ -10492,7 +10672,7 @@ dependencies = [ "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sc-client-api", "sc-consensus", "sc-consensus-epochs", @@ -10507,21 +10687,22 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", "sp-inherents", "sp-keystore", "sp-runtime", + "sp-timestamp", "substrate-prometheus-endpoint", "thiserror 1.0.69", ] [[package]] name = "sc-consensus-babe-rpc" -version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.53.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "futures", - "jsonrpsee 0.22.5", + "jsonrpsee", "sc-consensus-babe", "sc-consensus-epochs", "sc-rpc-api", @@ -10539,8 +10720,8 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.52.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "fork-tree", "parity-scale-codec", @@ -10552,11 +10733,11 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.19.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.38.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "ahash 0.8.11", - "array-bytes 6.2.3", + "ahash 0.8.12", + "array-bytes", "async-trait", "dyn-clone", "finality-grandpa", @@ -10565,8 +10746,8 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.3", - "rand", + "parking_lot 0.12.5", + "rand 0.8.5", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -10575,6 +10756,7 @@ dependencies = [ "sc-network-common", "sc-network-gossip", "sc-network-sync", + "sc-network-types", "sc-telemetry", "sc-transaction-pool-api", "sc-utils", @@ -10586,7 +10768,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -10595,12 +10777,12 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.19.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.38.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "finality-grandpa", "futures", - "jsonrpsee 0.22.5", + "jsonrpsee", "log", "parity-scale-codec", "sc-client-api", @@ -10615,8 +10797,8 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.52.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "futures", @@ -10638,12 +10820,13 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.32.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.45.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sc-executor-common", + "sc-executor-polkavm", "sc-executor-wasmtime", "schnellru", "sp-api", @@ -10660,9 +10843,10 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.29.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.41.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "polkavm", "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", @@ -10670,17 +10854,26 @@ dependencies = [ "wasm-instrument", ] +[[package]] +name = "sc-executor-polkavm" +version = "0.38.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" +dependencies = [ + "log", + "polkavm", + "sc-executor-common", + "sp-wasm-interface", +] + [[package]] name = "sc-executor-wasmtime" -version = "0.29.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.41.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "anyhow", - "cfg-if", - "libc", "log", - "parking_lot 0.12.3", - "rustix 0.36.17", + "parking_lot 0.12.5", + "rustix 1.1.2", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -10690,16 +10883,15 @@ dependencies = [ [[package]] name = "sc-informant" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.52.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "ansi_term", + "console", "futures", "futures-timer", "log", "sc-client-api", "sc-network", - "sc-network-common", "sc-network-sync", "sp-blockchain", "sp-runtime", @@ -10707,11 +10899,11 @@ dependencies = [ [[package]] name = "sc-keystore" -version = "25.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "38.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", - "parking_lot 0.12.3", + "array-bytes", + "parking_lot 0.12.5", "serde_json", "sp-application-crypto", "sp-core", @@ -10721,23 +10913,22 @@ dependencies = [ [[package]] name = "sc-mixnet" -version = "0.4.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.23.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 4.2.0", + "array-bytes", "arrayvec 0.7.6", "blake2 0.10.6", "bytes", "futures", "futures-timer", - "libp2p-identity", "log", "mixnet", - "multiaddr", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sc-client-api", "sc-network", + "sc-network-types", "sc-transaction-pool-api", "sp-api", "sp-consensus", @@ -10750,14 +10941,15 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.53.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", - "asynchronous-codec", + "asynchronous-codec 0.6.2", "bytes", + "cid 0.9.0", "either", "fnv", "futures", @@ -10765,16 +10957,21 @@ dependencies = [ "ip_network", "libp2p", "linked_hash_set", + "litep2p", "log", "mockall", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "partial_sort", "pin-project", - "rand", + "prost 0.12.6", + "prost-build", + "rand 0.8.5", "sc-client-api", "sc-network-common", + "sc-network-types", "sc-utils", + "schnellru", "serde", "serde_json", "smallvec", @@ -10787,60 +10984,34 @@ dependencies = [ "tokio", "tokio-stream", "unsigned-varint 0.7.2", + "void", "wasm-timer", "zeroize", ] -[[package]] -name = "sc-network-bitswap" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" -dependencies = [ - "async-channel 1.9.0", - "cid", - "futures", - "libp2p-identity", - "log", - "prost 0.12.6", - "prost-build", - "sc-client-api", - "sc-network", - "sp-blockchain", - "sp-runtime", - "thiserror 1.0.69", - "unsigned-varint 0.7.2", -] - [[package]] name = "sc-network-common" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.51.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "async-trait", "bitflags 1.3.2", - "futures", - "libp2p-identity", "parity-scale-codec", - "prost-build", - "sc-consensus", - "sp-consensus", - "sp-consensus-grandpa", "sp-runtime", ] [[package]] name = "sc-network-gossip" -version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.53.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "futures", "futures-timer", - "libp2p", "log", "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "schnellru", "sp-runtime", "substrate-prometheus-endpoint", @@ -10849,19 +11020,19 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.52.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "futures", - "libp2p-identity", "log", "parity-scale-codec", "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", + "sc-network-types", "sp-blockchain", "sp-core", "sp-runtime", @@ -10870,16 +11041,14 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.52.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", "fork-tree", "futures", - "futures-timer", - "libp2p", "log", "mockall", "parity-scale-codec", @@ -10889,6 +11058,7 @@ dependencies = [ "sc-consensus", "sc-network", "sc-network-common", + "sc-network-types", "sc-telemetry", "sc-utils", "schnellru", @@ -10907,45 +11077,66 @@ dependencies = [ [[package]] name = "sc-network-transactions" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.52.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "futures", - "libp2p", "log", "parity-scale-codec", "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "sc-utils", "sp-consensus", "sp-runtime", "substrate-prometheus-endpoint", ] +[[package]] +name = "sc-network-types" +version = "0.19.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" +dependencies = [ + "bs58", + "bytes", + "ed25519-dalek", + "libp2p-identity", + "libp2p-kad", + "litep2p", + "log", + "multiaddr 0.18.2", + "multihash 0.19.3", + "rand 0.8.5", + "serde", + "serde_with", + "thiserror 1.0.69", + "zeroize", +] + [[package]] name = "sc-offchain" -version = "29.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "48.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", "bytes", "fnv", "futures", "futures-timer", - "hyper 0.14.32", - "hyper-rustls 0.24.2", - "libp2p", - "log", + "http-body-util", + "hyper 1.8.1", + "hyper-rustls", + "hyper-util", "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.3", - "rand", + "parking_lot 0.12.5", + "rand 0.8.5", + "rustls", "sc-client-api", "sc-network", - "sc-network-common", + "sc-network-types", "sc-transaction-pool-api", "sc-utils", "sp-api", @@ -10960,8 +11151,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.17.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.20.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10969,14 +11160,14 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "29.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "48.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "futures", - "jsonrpsee 0.22.5", + "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -11001,10 +11192,10 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.52.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "jsonrpsee 0.22.5", + "jsonrpsee", "parity-scale-codec", "sc-chain-spec", "sc-mixnet", @@ -11021,41 +11212,48 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "11.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "25.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "dyn-clone", + "forwarded-header-value", "futures", "governor", - "http 0.2.12", - "hyper 0.14.32", - "jsonrpsee 0.22.5", + "http 1.3.1", + "http-body-util", + "hyper 1.8.1", + "ip_network", + "jsonrpsee", "log", - "pin-project", + "sc-rpc-api", + "serde", "serde_json", "substrate-prometheus-endpoint", "tokio", "tower 0.4.13", - "tower-http", + "tower-http 0.5.2", ] [[package]] name = "sc-rpc-spec-v2" -version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.53.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "futures", "futures-util", "hex", - "jsonrpsee 0.22.5", + "itertools 0.11.0", + "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", + "rand 0.8.5", "sc-chain-spec", "sc-client-api", "sc-rpc", "sc-transaction-pool-api", - "sc-utils", + "schnellru", "serde", "sp-api", "sp-blockchain", @@ -11063,27 +11261,43 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-version", + "substrate-prometheus-endpoint", "thiserror 1.0.69", "tokio", "tokio-stream", ] +[[package]] +name = "sc-runtime-utilities" +version = "0.5.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" +dependencies = [ + "parity-scale-codec", + "sc-executor", + "sc-executor-common", + "sp-core", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", + "sp-state-machine", + "sp-wasm-interface", + "thiserror 1.0.69", +] + [[package]] name = "sc-service" -version = "0.35.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.54.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "directories", "exit-future", "futures", "futures-timer", - "jsonrpsee 0.22.5", + "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "pin-project", - "rand", + "rand 0.8.5", "sc-chain-spec", "sc-client-api", "sc-client-db", @@ -11092,11 +11306,11 @@ dependencies = [ "sc-informant", "sc-keystore", "sc-network", - "sc-network-bitswap", "sc-network-common", "sc-network-light", "sc-network-sync", "sc-network-transactions", + "sc-network-types", "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", @@ -11106,6 +11320,7 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "serde_json", "sp-api", @@ -11133,21 +11348,21 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.30.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.40.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sp-core", ] [[package]] name = "sc-storage-monitor" -version = "0.16.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.26.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "clap 4.5.26", + "clap 4.5.53", "fs4", "log", "sp-core", @@ -11157,10 +11372,10 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" -version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.53.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "jsonrpsee 0.22.5", + "jsonrpsee", "parity-scale-codec", "sc-chain-spec", "sc-client-api", @@ -11176,37 +11391,36 @@ dependencies = [ [[package]] name = "sc-sysinfo" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "45.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "derive_more 0.99.18", + "derive_more 0.99.20", "futures", "libc", "log", - "rand", + "rand 0.8.5", "rand_pcg", "regex", "sc-telemetry", "serde", "serde_json", "sp-core", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", "sp-io", - "sp-std", ] [[package]] name = "sc-telemetry" -version = "15.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "30.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "chrono", "futures", "libp2p", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "pin-project", - "rand", + "rand 0.8.5", "sc-utils", "serde", "serde_json", @@ -11217,18 +11431,17 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "ansi_term", "chrono", + "console", + "frame-metadata 23.0.0", "is-terminal", - "lazy_static", "libc", "log", "parity-scale-codec", - "parking_lot 0.12.3", - "regex", + "parking_lot 0.12.5", "rustc-hash 1.1.0", "sc-client-api", "sc-tracing-proc-macro", @@ -11239,35 +11452,37 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-tracing", + "sp-trie", "thiserror 1.0.69", "tracing", - "tracing-log 0.1.4", - "tracing-subscriber 0.2.25", + "tracing-log", + "tracing-subscriber", ] [[package]] name = "sc-tracing-proc-macro" -version = "11.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "11.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "sc-transaction-pool" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "futures", "futures-timer", + "indexmap 2.12.1", + "itertools 0.11.0", "linked-hash-map", - "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sc-client-api", "sc-transaction-pool-api", "sc-utils", @@ -11275,21 +11490,25 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", "sp-runtime", "sp-tracing", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", ] [[package]] name = "sc-transaction-pool-api" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "futures", + "indexmap 2.12.1", "log", "parity-scale-codec", "serde", @@ -11301,15 +11520,14 @@ dependencies = [ [[package]] name = "sc-utils" -version = "14.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "20.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-channel 1.9.0", "futures", "futures-timer", - "lazy_static", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "prometheus", "sp-arithmetic", ] @@ -11328,9 +11546,9 @@ dependencies = [ [[package]] name = "scale-decode" -version = "0.16.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d78196772d25b90a98046794ce0fe2588b39ebdfbdc1e45b4c6c85dd43bebad" +checksum = "8d6ed61699ad4d54101ab5a817169259b5b0efc08152f8632e61482d8a27ca3d" dependencies = [ "parity-scale-codec", "primitive-types 0.13.1", @@ -11338,19 +11556,19 @@ dependencies = [ "scale-decode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.11", + "thiserror 2.0.17", ] [[package]] name = "scale-decode-derive" -version = "0.16.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4b54a1211260718b92832b661025d1f1a4b6930fbadd6908e00edd265fa5f7" +checksum = "65cb245f7fdb489e7ba43a616cbd34427fe3ba6fe0edc1d0d250085e6c84f3ec" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -11365,7 +11583,7 @@ dependencies = [ "scale-encode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.11", + "thiserror 2.0.17", ] [[package]] @@ -11374,11 +11592,11 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78a3993a13b4eafa89350604672c8757b7ea84c7c5947d4b3691e3169c96379b" dependencies = [ - "darling", - "proc-macro-crate 3.2.0", + "darling 0.20.11", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -11401,10 +11619,10 @@ version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -11417,37 +11635,54 @@ dependencies = [ "smallvec", ] +[[package]] +name = "scale-typegen" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c61b6b706a3eaad63b506ab50a1d2319f817ae01cf753adcc3f055f9f0fcd6" +dependencies = [ + "proc-macro2", + "quote", + "scale-info", + "syn 2.0.111", + "thiserror 2.0.17", +] + [[package]] name = "scale-value" -version = "0.18.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca8b26b451ecb7fd7b62b259fa28add63d12ec49bbcac0e01fcb4b5ae0c09aa" +checksum = "884aab179aba344c67ddcd1d7dd8e3f8fee202f2e570d97ec34ec8688442a5b3" dependencies = [ + "base58", + "blake2 0.10.6", "either", "parity-scale-codec", "scale-bits", "scale-decode", "scale-encode", "scale-type-resolver", - "thiserror 2.0.11", + "serde", + "thiserror 2.0.17", + "yap", ] [[package]] name = "scc" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e1c91382686d21b5ac7959341fcb9780fa7c03773646995a87c950fa7be640" +checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" dependencies = [ "sdd", ] [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -11456,26 +11691,26 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "cfg-if", "hashbrown 0.13.2", ] [[package]] name = "schnorrkel" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" +checksum = "6e9fcb6c2e176e86ec703e22560d99d65a5ee9056ae45a08e13e84ebf796296f" dependencies = [ "aead", "arrayref", "arrayvec 0.7.6", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "getrandom_or_panic", "merlin", "rand_core 0.6.4", "serde_bytes", - "sha2 0.10.8", + "sha2 0.10.9", "subtle 2.6.1", "zeroize", ] @@ -11488,9 +11723,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scratch" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" +checksum = "d68f2ec51b097e4c1a75b681a8bec621909b5e91f15bb7b840c4f2f7b01148b2" [[package]] name = "scrypt" @@ -11499,26 +11734,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" dependencies = [ "password-hash", - "pbkdf2 0.12.2", + "pbkdf2", "salsa20", - "sha2 0.10.8", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", + "sha2 0.10.9", ] [[package]] name = "sdd" -version = "3.0.5" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478f121bb72bbf63c52c93011ea1791dca40140dfe13f8336c4c5ac952c33aa9" +checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" [[package]] name = "sec1" @@ -11535,6 +11760,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "secp256k1-sys 0.8.2", +] + [[package]] name = "secp256k1" version = "0.28.2" @@ -11551,10 +11785,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes 0.14.0", - "rand", + "rand 0.8.5", "secp256k1-sys 0.10.1", ] +[[package]] +name = "secp256k1-sys" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4473013577ec77b4ee3668179ef1186df3146e2cf2d927bd200974c6fe60fd99" +dependencies = [ + "cc", +] + [[package]] name = "secp256k1-sys" version = "0.9.2" @@ -11597,19 +11840,31 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.8.0", - "core-foundation", + "bitflags 2.10.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +dependencies = [ + "bitflags 2.10.0", + "core-foundation 0.10.1", "core-foundation-sys", "libc", - "num-bigint 0.4.6", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -11635,11 +11890,12 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.24" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -11675,11 +11931,12 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.15" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -11699,36 +11956,38 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "serde_json" -version = "1.0.135" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_path_to_error" -version = "0.1.16" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" dependencies = [ "itoa", "serde", + "serde_core", ] [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -11745,6 +12004,33 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_with" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1" +dependencies = [ + "base64", + "chrono", + "hex", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b" +dependencies = [ + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "serdect" version = "0.2.0" @@ -11764,7 +12050,7 @@ dependencies = [ "futures", "log", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "scc", "serial_test_derive", ] @@ -11777,20 +12063,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", -] - -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.1", + "syn 2.0.111", ] [[package]] @@ -11819,9 +12092,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -11855,9 +12128,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" dependencies = [ "libc", ] @@ -11887,9 +12160,9 @@ dependencies = [ [[package]] name = "simba" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa" +checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95" dependencies = [ "approx", "num-complex", @@ -11898,10 +12171,20 @@ dependencies = [ "wide", ] +[[package]] +name = "simple-dns" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a" +dependencies = [ + "bitflags 2.10.0", +] + [[package]] name = "simple-mermaid" -version = "0.1.0" -source = "git+https://github.com/kianenigma/simple-mermaid.git?rev=e48b187bcfd5cc75111acd9d241f1bd36604344b#e48b187bcfd5cc75111acd9d241f1bd36604344b" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" [[package]] name = "siphasher" @@ -11923,12 +12206,9 @@ checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "slice-group-by" @@ -11938,9 +12218,12 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +dependencies = [ + "serde", +] [[package]] name = "smol" @@ -11948,7 +12231,7 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f" dependencies = [ - "async-channel 2.3.1", + "async-channel 2.5.0", "async-executor", "async-fs", "async-io", @@ -11968,16 +12251,16 @@ dependencies = [ "arrayvec 0.7.6", "async-lock", "atomic-take", - "base64 0.22.1", + "base64", "bip39", "blake2-rfc", - "bs58 0.5.1", + "bs58", "chacha20", "crossbeam-queue", - "derive_more 0.99.18", + "derive_more 0.99.20", "ed25519-zebra", "either", - "event-listener 5.4.0", + "event-listener 5.4.1", "fnv", "futures-lite", "futures-util", @@ -11992,24 +12275,24 @@ dependencies = [ "num-bigint 0.4.6", "num-rational", "num-traits", - "pbkdf2 0.12.2", + "pbkdf2", "pin-project", "poly1305", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd", "schnorrkel", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "siphasher 1.0.1", "slab", "smallvec", - "soketto 0.8.1", + "soketto", "twox-hash", "wasmi", - "x25519-dalek 2.0.1", + "x25519-dalek", "zeroize", ] @@ -12019,14 +12302,14 @@ version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" dependencies = [ - "async-channel 2.3.1", + "async-channel 2.5.0", "async-lock", - "base64 0.22.1", + "base64", "blake2-rfc", - "bs58 0.5.1", - "derive_more 0.99.18", + "bs58", + "derive_more 0.99.20", "either", - "event-listener 5.4.0", + "event-listener 5.4.1", "fnv", "futures-channel", "futures-lite", @@ -12036,9 +12319,9 @@ dependencies = [ "itertools 0.13.0", "log", "lru 0.12.5", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "pin-project", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "serde", "serde_json", @@ -12064,11 +12347,11 @@ dependencies = [ "aes-gcm", "blake2 0.10.6", "chacha20poly1305", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "rand_core 0.6.4", - "ring 0.17.8", + "ring 0.17.14", "rustc_version 0.4.1", - "sha2 0.10.8", + "sha2 0.10.9", "subtle 2.6.1", ] @@ -12084,39 +12367,22 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.10" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "socket2" -version = "0.5.8" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "soketto" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" -dependencies = [ - "base64 0.13.1", - "bytes", - "flate2", - "futures", - "http 0.2.12", - "httparse", - "log", - "rand", - "sha-1", + "windows-sys 0.60.2", ] [[package]] @@ -12125,20 +12391,22 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures", + "http 1.3.1", "httparse", "log", - "rand", + "rand 0.8.5", "sha1", ] [[package]] name = "sp-api" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "docify", "hash-db 0.16.0", "log", "parity-scale-codec", @@ -12148,8 +12416,8 @@ dependencies = [ "sp-externalities", "sp-metadata-ir", "sp-runtime", + "sp-runtime-interface", "sp-state-machine", - "sp-std", "sp-trie", "sp-version", "thiserror 1.0.69", @@ -12157,114 +12425,93 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "15.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "25.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "Inflector", "blake2 0.10.6", "expander", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "sp-application-crypto" -version = "30.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", - "sp-std", ] [[package]] name = "sp-arithmetic" -version = "23.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "28.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "docify", "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std", "static_assertions", ] -[[package]] -name = "sp-ark-bls12-381" -version = "0.4.2" -source = "git+https://github.com/paritytech/arkworks-substrate#f08093a5f7c32778eae1295430ec064dccd062a6" -dependencies = [ - "ark-bls12-381-ext", - "sp-crypto-ec-utils", -] - -[[package]] -name = "sp-ark-ed-on-bls12-381-bandersnatch" -version = "0.4.2" -source = "git+https://github.com/paritytech/arkworks-substrate#f08093a5f7c32778eae1295430ec064dccd062a6" -dependencies = [ - "ark-ed-on-bls12-381-bandersnatch-ext", - "sp-crypto-ec-utils", -] - [[package]] name = "sp-authority-discovery" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", "sp-runtime", - "sp-std", ] [[package]] name = "sp-block-builder" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "sp-api", "sp-inherents", "sp-runtime", - "sp-std", ] [[package]] name = "sp-blockchain" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "futures", - "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "schnellru", "sp-api", "sp-consensus", + "sp-core", "sp-database", "sp-runtime", "sp-state-machine", "thiserror 1.0.69", + "tracing", ] [[package]] name = "sp-consensus" -version = "0.32.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.45.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "futures", "log", - "sp-core", "sp-inherents", "sp-runtime", "sp-state-machine", @@ -12273,8 +12520,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.32.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.45.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "parity-scale-codec", @@ -12284,14 +12531,13 @@ dependencies = [ "sp-consensus-slots", "sp-inherents", "sp-runtime", - "sp-std", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" -version = "0.32.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.45.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "parity-scale-codec", @@ -12303,14 +12549,13 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std", "sp-timestamp", ] [[package]] name = "sp-consensus-grandpa" -version = "13.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "26.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "finality-grandpa", "log", @@ -12322,57 +12567,56 @@ dependencies = [ "sp-core", "sp-keystore", "sp-runtime", - "sp-std", ] [[package]] name = "sp-consensus-slots" -version = "0.32.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.45.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std", "sp-timestamp", ] [[package]] name = "sp-core" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "38.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "array-bytes 6.2.3", - "bandersnatch_vrfs", - "bip39", + "ark-vrf", + "array-bytes", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", - "bs58 0.5.1", - "dyn-clonable", + "bs58", + "dyn-clone", "ed25519-zebra", "futures", "hash-db 0.16.0", "hash256-std-hasher", - "impl-serde 0.4.0", - "itertools 0.10.5", + "impl-serde", + "itertools 0.11.0", + "k256", "libsecp256k1", "log", "merlin", + "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "paste", - "primitive-types 0.12.2", - "rand", + "primitive-types 0.13.1", + "rand 0.8.5", "scale-info", "schnorrkel", "secp256k1 0.28.2", "secrecy 0.8.0", "serde", - "sp-crypto-hashing 0.0.0", + "sha2 0.10.9", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", "sp-debug-derive", "sp-externalities", - "sp-runtime-interface", "sp-std", "sp-storage", "ss58-registry", @@ -12383,36 +12627,16 @@ dependencies = [ "zeroize", ] -[[package]] -name = "sp-crypto-ec-utils" -version = "0.10.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" -dependencies = [ - "ark-bls12-377", - "ark-bls12-377-ext", - "ark-bls12-381", - "ark-bls12-381-ext", - "ark-bw6-761", - "ark-bw6-761-ext", - "ark-ec 0.4.2", - "ark-ed-on-bls12-377", - "ark-ed-on-bls12-377-ext", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ed-on-bls12-381-bandersnatch-ext", - "ark-scale", - "sp-runtime-interface", - "sp-std", -] - [[package]] name = "sp-crypto-hashing" -version = "0.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "twox-hash", ] @@ -12420,101 +12644,100 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "twox-hash", ] [[package]] name = "sp-crypto-hashing-proc-macro" -version = "0.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "quote", - "sp-crypto-hashing 0.0.0", - "syn 2.0.96", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", + "syn 2.0.111", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "kvdb", - "parking_lot 0.12.3", + "parking_lot 0.12.5", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "sp-externalities" -version = "0.25.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.30.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "environmental", "parity-scale-codec", - "sp-std", "sp-storage", ] [[package]] name = "sp-genesis-builder" -version = "0.7.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.20.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "parity-scale-codec", + "scale-info", "serde_json", "sp-api", "sp-runtime", - "sp-std", ] [[package]] name = "sp-inherents" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std", "thiserror 1.0.69", ] [[package]] name = "sp-io" -version = "30.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "bytes", + "docify", "ed25519-dalek", "libsecp256k1", "log", "parity-scale-codec", + "polkavm-derive", "rustversion", "secp256k1 0.28.2", "sp-core", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", "sp-externalities", "sp-keystore", "sp-runtime-interface", "sp-state-machine", - "sp-std", "sp-tracing", "sp-trie", "tracing", @@ -12523,30 +12746,29 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "31.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "44.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "sp-core", "sp-runtime", - "strum 0.24.1", + "strum 0.26.3", ] [[package]] name = "sp-keystore" -version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.44.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.5", "sp-core", "sp-externalities", - "thiserror 1.0.69", ] [[package]] name = "sp-maybe-compressed-blob" -version = "11.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "11.0.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -12554,49 +12776,46 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.6.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.12.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "frame-metadata 16.0.0", + "frame-metadata 23.0.0", "parity-scale-codec", "scale-info", - "sp-std", ] [[package]] name = "sp-mixnet" -version = "0.4.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.17.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", - "sp-std", ] [[package]] name = "sp-mmr-primitives" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "ckb-merkle-mountain-range", "log", "parity-scale-codec", + "polkadot-ckb-merkle-mountain-range", "scale-info", "serde", "sp-api", "sp-core", "sp-debug-derive", "sp-runtime", - "sp-std", "thiserror 1.0.69", ] [[package]] name = "sp-npos-elections" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", "scale-info", @@ -12604,13 +12823,12 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-runtime", - "sp-std", ] [[package]] name = "sp-offchain" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "sp-api", "sp-core", @@ -12619,18 +12837,17 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "13.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "13.0.2" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "backtrace", - "lazy_static", "regex", ] [[package]] name = "sp-rpc" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "36.0.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -12639,17 +12856,19 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "31.0.1" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "44.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "binary-merkle-tree", "docify", "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", + "num-traits", "parity-scale-codec", "paste", - "rand", + "rand 0.8.5", "scale-info", "serde", "simple-mermaid", @@ -12658,18 +12877,21 @@ dependencies = [ "sp-core", "sp-io", "sp-std", + "sp-trie", "sp-weights", + "tracing", + "tuplex", ] [[package]] name = "sp-runtime-interface" -version = "24.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "32.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "primitive-types 0.12.2", + "polkavm-derive", "sp-externalities", "sp-runtime-interface-proc-macro", "sp-std", @@ -12681,21 +12903,21 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "17.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "20.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "sp-session" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "41.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", "scale-info", @@ -12704,13 +12926,12 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std", ] [[package]] name = "sp-staking" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "41.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -12718,102 +12939,97 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std", ] [[package]] name = "sp-state-machine" -version = "0.35.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.48.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "hash-db 0.16.0", "log", "parity-scale-codec", - "parking_lot 0.12.3", - "rand", + "parking_lot 0.12.5", + "rand 0.8.5", "smallvec", "sp-core", "sp-externalities", "sp-panic-handler", - "sp-std", "sp-trie", "thiserror 1.0.69", "tracing", - "trie-db 0.28.0", + "trie-db 0.30.0", ] [[package]] name = "sp-statement-store" -version = "10.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "23.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "aes-gcm", - "curve25519-dalek 4.1.3", + "curve25519-dalek", "ed25519-dalek", "hkdf", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", - "sha2 0.10.8", + "sha2 0.10.9", "sp-api", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a)", "sp-externalities", "sp-runtime", "sp-runtime-interface", - "sp-std", "thiserror 1.0.69", - "x25519-dalek 2.0.1", + "x25519-dalek", ] [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" [[package]] name = "sp-storage" -version = "19.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "22.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "impl-serde 0.4.0", + "impl-serde", "parity-scale-codec", "ref-cast", "serde", "sp-debug-derive", - "sp-std", ] [[package]] name = "sp-timestamp" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents", "sp-runtime", - "sp-std", "thiserror 1.0.69", ] [[package]] name = "sp-tracing" -version = "16.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "19.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", - "sp-std", + "regex", "tracing", "tracing-core", - "tracing-subscriber 0.2.25", + "tracing-subscriber", ] [[package]] name = "sp-transaction-pool" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "sp-api", "sp-runtime", @@ -12821,8 +13037,8 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "async-trait", "parity-scale-codec", @@ -12830,40 +13046,40 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std", "sp-trie", ] [[package]] name = "sp-trie" -version = "29.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "41.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", + "foldhash 0.1.5", "hash-db 0.16.0", - "lazy_static", - "memory-db 0.32.0", + "hashbrown 0.15.5", + "memory-db 0.34.0", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.3", - "rand", + "parking_lot 0.12.5", + "rand 0.8.5", "scale-info", "schnellru", "sp-core", "sp-externalities", - "sp-std", + "substrate-prometheus-endpoint", "thiserror 1.0.69", "tracing", - "trie-db 0.28.0", + "trie-db 0.30.0", "trie-root", ] [[package]] name = "sp-version" -version = "29.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "impl-serde 0.4.0", + "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", @@ -12877,32 +13093,32 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" -version = "13.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "15.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "parity-scale-codec", + "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "sp-wasm-interface" -version = "20.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "24.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std", "wasmtime", ] [[package]] name = "sp-weights" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "33.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -12911,32 +13127,31 @@ dependencies = [ "smallvec", "sp-arithmetic", "sp-debug-derive", - "sp-std", ] [[package]] name = "sp1-build" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5563b406d74b417ce07c0d7e0d8184b423f3bc3eacd1e98b105691a167f47c8f" +checksum = "a7bcc9e463a19749f6080f69ee6410aadda0576115d60bed68d2ebc2d8af3fe4" dependencies = [ "anyhow", "cargo_metadata 0.18.1", "chrono", - "clap 4.5.26", + "clap 4.5.53", "dirs", "sp1-prover", ] [[package]] name = "sp1-core-executor" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291c086ca35f43725b33337a7a33c64418d89033d8d6e5586f82b9de2cf90dcb" +checksum = "3fb8bc70057a88164e479e367e2f83f7e7fba52d66acfbeef3b2174dc98c3627" dependencies = [ "bincode", "bytemuck", - "clap 4.5.26", + "clap 4.5.53", "elf", "enum-map", "eyre", @@ -12949,7 +13164,7 @@ dependencies = [ "p3-field", "p3-maybe-rayon", "p3-util", - "rand", + "rand 0.8.5", "range-set-blaze", "rrs-succinct", "serde", @@ -12969,9 +13184,9 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "236d063c38900e8346342af0b352a23d25b9806b624ee30fcae4c0cc7ddbed27" +checksum = "fe446bea36feb189af83cda6ea5420150e877764e2ed4ab4cb2ee5cd3e20355c" dependencies = [ "bincode", "cbindgen", @@ -12999,7 +13214,7 @@ dependencies = [ "p3-uni-stark", "p3-util", "pathdiff", - "rand", + "rand 0.8.5", "rayon", "rayon-scan", "serde", @@ -13018,20 +13233,20 @@ dependencies = [ "thiserror 1.0.69", "tracing", "tracing-forest", - "tracing-subscriber 0.3.19", + "tracing-subscriber", "typenum", "web-time", ] [[package]] name = "sp1-cuda" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c81ab46ba84d41e471351329a69ac43be7da1aa701ed29c70048c83c0fe28c" +checksum = "ae79f89725c6e21dadb62be31a1c218292f5489559a848faf533419c722a3b3b" dependencies = [ "bincode", "ctrlc", - "prost 0.13.4", + "prost 0.13.5", "serde", "sp1-core-machine", "sp1-prover", @@ -13042,9 +13257,9 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4d6faecc70f0ca84d0e1259ab2f5eb6d2d351d263c3cd00edf654f8530c0473" +checksum = "a6a7ce14c504360349f3eda564a0c9de286c35e1dfbcc979921a3384db02ae82" dependencies = [ "cfg-if", "dashu", @@ -13064,9 +13279,9 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c25a3bd262f3b0b0ab59d9bc86638ebd895ade9c16526203023c08f926d62732" +checksum = "9e1144840e0b75e988f3b8d24ffd015bc5fd76599f7864bfd994f3eaf2eb261a" dependencies = [ "quote", "syn 1.0.109", @@ -13074,9 +13289,9 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0fd8bc101e5603ccf2dc1836ea06410f25ce2298755b2dac626add9be2424b4" +checksum = "eb1a9935d58cb1dcd757a1b10d727090f5b718f1f03b512d48f0c1952e6ead00" dependencies = [ "bincode", "elliptic-curve", @@ -13086,9 +13301,9 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "699935774a5131c1a8b371108d0666c0c80c43611045fb77fae43f2f242676d5" +checksum = "a7d2a6187e394c30097ea7a975a4832f172918690dc89a979f0fad67422d3a8b" dependencies = [ "bincode", "blake3", @@ -13101,18 +13316,18 @@ dependencies = [ "p3-poseidon2", "p3-symmetric", "serde", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] name = "sp1-prover" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f9381b478115137a435d02756dae7f3da01abaa0b1b9db8c0973389bd5bfaa9" +checksum = "cfc62e3139fdb1671067987f78ca85a24ea34dbc2f61dbbe3f92b9739e7aa2b9" dependencies = [ "anyhow", "bincode", - "clap 4.5.26", + "clap 4.5.53", "dirs", "downloader", "enum-map", @@ -13134,7 +13349,7 @@ dependencies = [ "serde", "serde_json", "serial_test", - "sha2 0.10.8", + "sha2 0.10.9", "sp1-core-executor", "sp1-core-machine", "sp1-primitives", @@ -13143,17 +13358,18 @@ dependencies = [ "sp1-recursion-core", "sp1-recursion-gnark-ffi", "sp1-stark", + "sp1-verifier", "thiserror 1.0.69", "tracing", "tracing-appender", - "tracing-subscriber 0.3.19", + "tracing-subscriber", ] [[package]] name = "sp1-recursion-circuit" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56f69b0e112a7fbba23cbef61fb37f6092ba6897425859b30c4cd2786450179" +checksum = "44f16af7722bb0f7adabbfc0e60b7fe71ca546959d251c450afb79daaa589c56" dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", @@ -13170,7 +13386,7 @@ dependencies = [ "p3-symmetric", "p3-uni-stark", "p3-util", - "rand", + "rand 0.8.5", "rayon", "serde", "sp1-core-executor", @@ -13186,9 +13402,9 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6101a4c46d55206a5f0d312fd6f663248cbdb49c90f1662138f20472bef31b71" +checksum = "7c83564beb23361e0b93d64f3b8d4a503eac8ced246648f727d44b0827165014" dependencies = [ "backtrace", "itertools 0.13.0", @@ -13208,15 +13424,15 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13fa9644be4e3b9cf0b1f0976b2c3814dbd5b6d6f47dc8662d6a22828f2c3dd7" +checksum = "8c209fa6e384ff56ea7761ccc65426da08516d72ae55b6d8e4021b58bd4022f8" dependencies = [ "backtrace", "cbindgen", "cc", "cfg-if", - "ff 0.13.0", + "ff 0.13.1", "glob", "hashbrown 0.14.5", "itertools 0.13.0", @@ -13236,7 +13452,7 @@ dependencies = [ "p3-symmetric", "p3-util", "pathdiff", - "rand", + "rand 0.8.5", "serde", "sp1-core-machine", "sp1-derive", @@ -13251,9 +13467,9 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e6d5c7e2620d61956e6f75026a88ef2f714dab4abf84e870f13145e6bbec79" +checksum = "6a8ca2e82fea312a406f4ad4cba1a11812da4cea806607c56ec1670fd55b2ea6" dependencies = [ "quote", "syn 1.0.109", @@ -13261,9 +13477,9 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40fc06701180ce02d6079370d00ca74b8d86c84d85909a3684eddc8bfd8c1bf" +checksum = "5e146d24ce91c08e36b270a73de9817b9847e759a3d66923b009c67f24a3b9b2" dependencies = [ "anyhow", "bincode", @@ -13277,7 +13493,7 @@ dependencies = [ "p3-symmetric", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sp1-core-machine", "sp1-recursion-compiler", "sp1-stark", @@ -13287,22 +13503,20 @@ dependencies = [ [[package]] name = "sp1-sdk" -version = "5.0.6" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05114cab7a33f251cf8d470ed85497297dd127a4727569a1a11f759f02136357" +checksum = "f9655067dcadba91f01491729cc78a60ad3a5ffaaf9adab817502f729ddb3761" dependencies = [ + "alloy-sol-types 1.4.1", "anyhow", - "async-trait", "bincode", "cfg-if", "dirs", - "eventsource-stream", "futures", "hashbrown 0.14.5", "hex", "indicatif", "itertools 0.13.0", - "k256", "p3-baby-bear", "p3-field", "p3-fri", @@ -13317,6 +13531,7 @@ dependencies = [ "sp1-stark", "strum 0.26.3", "strum_macros 0.26.4", + "sysinfo", "tempfile", "thiserror 1.0.69", "tracing", @@ -13324,9 +13539,9 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a795a0a309949772a6f26480f5d844e9f2fad9ef82e4caef9e7b0cec98daffe" +checksum = "40477690a0bb6d7102322947407439a8f1d05aecd535f0081db05e9a31f808f2" dependencies = [ "arrayref", "hashbrown 0.14.5", @@ -13352,25 +13567,23 @@ dependencies = [ "sp1-derive", "sp1-primitives", "strum 0.26.3", - "strum_macros 0.26.4", "sysinfo", "tracing", ] [[package]] name = "sp1-verifier" -version = "5.0.5" +version = "5.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12369fb09785c94982bc24bf5097a466a15a6994421785f7f11650d060239a1b" +checksum = "5f95bd323fde5d19116873b29e5f8e20da371466d70185732bbfd3511ca0fd31" dependencies = [ "blake3", "cfg-if", "hex", "lazy_static", - "sha2 0.10.8", - "sp1-build", + "sha2 0.10.9", "substrate-bn-succinct", - "thiserror 2.0.11", + "thiserror 2.0.17", ] [[package]] @@ -13385,17 +13598,6 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -[[package]] -name = "spinners" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82" -dependencies = [ - "lazy_static", - "maplit", - "strum 0.24.1", -] - [[package]] name = "spinning_top" version = "0.3.0" @@ -13432,9 +13634,9 @@ dependencies = [ [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "static_assertions" @@ -13444,15 +13646,15 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "static_init" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" +checksum = "8bae1df58c5fea7502e8e352ec26b5579f6178e1fdb311e088580c980dee25ed" dependencies = [ "bitflags 1.3.2", - "cfg_aliases 0.1.1", + "cfg_aliases 0.2.1", "libc", - "parking_lot 0.11.2", - "parking_lot_core 0.8.6", + "parking_lot 0.12.5", + "parking_lot_core 0.9.12", "static_init_macro", "winapi", ] @@ -13480,19 +13682,6 @@ dependencies = [ "hashbrown 0.14.5", ] -[[package]] -name = "strobe-rs" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabb238a1cccccfa4c4fb703670c0d157e1256c1ba695abf1b93bd2bb14bab2d" -dependencies = [ - "bitflags 1.3.2", - "byteorder", - "keccak", - "subtle 2.6.1", - "zeroize", -] - [[package]] name = "strsim" version = "0.11.1" @@ -13504,9 +13693,6 @@ name = "strum" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros 0.24.3", -] [[package]] name = "strum" @@ -13540,31 +13726,30 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "subenum" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5d5dfb8556dd04017db5e318bbeac8ab2b0c67b76bf197bfb79e9b29f18ecf" +checksum = "ec3d08fe7078c57309d5c3d938e50eba95ba1d33b9c3a101a8465fc6861a5416" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.111", ] [[package]] name = "substrate-bip39" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" +version = "0.6.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", + "hmac 0.12.1", + "pbkdf2", "schnorrkel", - "sha2 0.9.9", + "sha2 0.10.9", "zeroize", ] @@ -13580,7 +13765,7 @@ dependencies = [ "crunchy", "lazy_static", "num-bigint 0.4.6", - "rand", + "rand 0.8.5", "rustc-hex", "sp1-lib", ] @@ -13588,16 +13773,17 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" [[package]] name = "substrate-frame-rpc-system" -version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "47.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ + "docify", "frame-system-rpc-runtime-api", "futures", - "jsonrpsee 0.22.5", + "jsonrpsee", "log", "parity-scale-codec", "sc-rpc-api", @@ -13611,35 +13797,24 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.17.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "0.17.7" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "hyper 0.14.32", + "http-body-util", + "hyper 1.8.1", + "hyper-util", "log", "prometheus", "thiserror 1.0.69", "tokio", ] -[[package]] -name = "substrate-rpc-client" -version = "0.33.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" -dependencies = [ - "async-trait", - "jsonrpsee 0.22.5", - "log", - "sc-rpc-api", - "serde", - "sp-runtime", -] - [[package]] name = "substrate-state-trie-migration-rpc" -version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "46.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ - "jsonrpsee 0.22.5", + "jsonrpsee", "parity-scale-codec", "sc-client-api", "sc-rpc-api", @@ -13648,23 +13823,26 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-trie", - "trie-db 0.28.0", + "trie-db 0.30.0", ] [[package]] name = "substrate-wasm-builder" -version = "17.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +version = "29.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" dependencies = [ "build-helper", "cargo_metadata 0.15.4", "console", "filetime", + "jobserver", "parity-wasm", + "polkavm-linker", + "shlex", "sp-maybe-compressed-blob", - "strum 0.24.1", + "strum 0.26.3", "tempfile", - "toml 0.8.19", + "toml 0.8.23", "walkdir", "wasm-opt", ] @@ -13681,6 +13859,58 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "subxt" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03459d84546def5e1d0d22b162754609f18e031522b0319b53306f5829de9c09" +dependencies = [ + "async-trait", + "derive-where", + "either", + "frame-metadata 20.0.0", + "futures", + "hex", + "parity-scale-codec", + "primitive-types 0.13.1", + "scale-bits", + "scale-decode", + "scale-encode", + "scale-info", + "scale-value", + "serde", + "serde_json", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "subxt-core", + "subxt-lightclient", + "subxt-macro", + "subxt-metadata", + "subxt-rpcs", + "thiserror 2.0.17", + "tokio", + "tokio-util", + "tracing", + "url", + "web-time", +] + +[[package]] +name = "subxt-codegen" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "324c52c09919fec8c22a4b572a466878322e99fe14a9e3d50d6c3700a226ec25" +dependencies = [ + "heck 0.5.0", + "parity-scale-codec", + "proc-macro2", + "quote", + "scale-info", + "scale-typegen", + "subxt-metadata", + "syn 2.0.111", + "thiserror 2.0.17", +] + [[package]] name = "subxt-core" version = "0.41.0" @@ -13694,7 +13924,7 @@ dependencies = [ "frame-metadata 20.0.0", "hashbrown 0.14.5", "hex", - "impl-serde 0.5.0", + "impl-serde", "keccak-hash", "parity-scale-codec", "primitive-types 0.13.1", @@ -13705,9 +13935,9 @@ dependencies = [ "scale-value", "serde", "serde_json", - "sp-crypto-hashing 0.1.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-metadata", - "thiserror 2.0.11", + "thiserror 2.0.17", "tracing", ] @@ -13722,12 +13952,28 @@ dependencies = [ "serde", "serde_json", "smoldot-light", - "thiserror 2.0.11", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", ] +[[package]] +name = "subxt-macro" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2c8da275a620dd676381d72395dfea91f0a6cd849665b4f1d0919371850701" +dependencies = [ + "darling 0.20.11", + "parity-scale-codec", + "proc-macro-error2", + "quote", + "scale-typegen", + "subxt-codegen", + "subxt-utils-fetchmetadata", + "syn 2.0.111", +] + [[package]] name = "subxt-metadata" version = "0.41.0" @@ -13739,8 +13985,8 @@ dependencies = [ "hashbrown 0.14.5", "parity-scale-codec", "scale-info", - "sp-crypto-hashing 0.1.0", - "thiserror 2.0.11", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.17", ] [[package]] @@ -13753,14 +13999,15 @@ dependencies = [ "frame-metadata 20.0.0", "futures", "hex", - "impl-serde 0.5.0", - "jsonrpsee 0.24.8", + "impl-serde", + "jsonrpsee", "parity-scale-codec", "primitive-types 0.13.1", "serde", "serde_json", + "subxt-core", "subxt-lightclient", - "thiserror 2.0.11", + "thiserror 2.0.17", "tracing", "url", ] @@ -13771,14 +14018,16 @@ version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a2370298a210ed1df26152db7209a85e0ed8cfbce035309c3b37f7b61755377" dependencies = [ - "base64 0.22.1", + "base64", + "bip32", "bip39", "cfg-if", "crypto_secretbox", "hex", "hmac 0.12.1", + "keccak-hash", "parity-scale-codec", - "pbkdf2 0.12.2", + "pbkdf2", "regex", "schnorrkel", "scrypt", @@ -13786,13 +14035,24 @@ dependencies = [ "secrecy 0.10.3", "serde", "serde_json", - "sha2 0.10.8", - "sp-crypto-hashing 0.1.0", + "sha2 0.10.9", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core", - "thiserror 2.0.11", + "thiserror 2.0.17", "zeroize", ] +[[package]] +name = "subxt-utils-fetchmetadata" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc868b55fe2303788dc7703457af390111940c3da4714b510983284501780ed5" +dependencies = [ + "hex", + "parity-scale-codec", + "thiserror 2.0.17", +] + [[package]] name = "syn" version = "1.0.109" @@ -13806,9 +14066,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.96" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", @@ -13817,14 +14077,26 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.19" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab4e6eed052a117409a1a744c8bda9c3ea6934597cf7419f791cb7d590871c4c" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "syn-solidity" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84e4d83a0a6704561302b917a932484e1cae2d8c6354c64be8b7bac1c1fe057" +checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -13850,13 +14122,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -13871,7 +14143,7 @@ dependencies = [ "ntapi", "once_cell", "rayon", - "windows", + "windows 0.52.0", ] [[package]] @@ -13880,8 +14152,8 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.8.0", - "core-foundation", + "bitflags 2.10.0", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -13895,6 +14167,12 @@ dependencies = [ "libc", ] +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + [[package]] name = "tap" version = "1.0.1" @@ -13903,22 +14181,21 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.16" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" +checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" [[package]] name = "tempfile" -version = "3.15.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ - "cfg-if", "fastrand", - "getrandom 0.2.15", + "getrandom 0.3.4", "once_cell", - "rustix 0.38.43", - "windows-sys 0.59.0", + "rustix 1.1.2", + "windows-sys 0.61.2", ] [[package]] @@ -13932,12 +14209,12 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" dependencies = [ - "rustix 0.38.43", - "windows-sys 0.59.0", + "rustix 1.1.2", + "windows-sys 0.60.2", ] [[package]] @@ -13965,16 +14242,16 @@ version = "0.3.0" dependencies = [ "avail-base", "avail-core", - "jsonrpsee 0.22.5", + "jsonrpsee", "log", "sc-client-api", ] [[package]] name = "textwrap" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" [[package]] name = "thiserror" @@ -13987,11 +14264,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.11" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.11", + "thiserror-impl 2.0.17", ] [[package]] @@ -14002,18 +14279,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "thiserror-impl" -version = "2.0.11" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -14044,12 +14321,11 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -14073,9 +14349,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.37" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", @@ -14088,15 +14364,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.19" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -14113,9 +14389,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -14133,9 +14409,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -14148,31 +14424,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", "libc", "mio", - "parking_lot 0.12.3", - "pin-project-lite 0.2.16", + "parking_lot 0.12.5", + "pin-project-lite", "signal-hook-registry", - "socket2 0.5.8", + "socket2 0.6.1", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -14185,71 +14460,55 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-retry" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" -dependencies = [ - "pin-project", - "rand", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" -version = "0.25.0" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", + "rustls", "tokio", ] [[package]] -name = "tokio-rustls" -version = "0.26.1" +name = "tokio-stream" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ - "rustls 0.23.21", + "futures-core", + "pin-project-lite", "tokio", + "tokio-util", ] [[package]] -name = "tokio-stream" -version = "0.1.17" +name = "tokio-tungstenite" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "489a59b6730eda1b0171fcfda8b121f4bee2b35cba8645ca35c5f7ba3eb736c1" dependencies = [ - "futures-core", - "pin-project-lite 0.2.16", + "futures-util", + "log", + "rustls", + "rustls-native-certs", + "rustls-pki-types", "tokio", - "tokio-util", + "tokio-rustls", + "tungstenite", ] [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.16", + "pin-project-lite", "tokio", ] @@ -14264,38 +14523,75 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime", - "toml_edit", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.12.1", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.11", + "toml_write", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.23.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +dependencies = [ + "indexmap 2.12.1", + "toml_datetime 0.7.3", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tower" version = "0.4.13" @@ -14305,7 +14601,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project", - "pin-project-lite 0.2.16", + "pin-project-lite", "tower-layer", "tower-service", "tracing", @@ -14319,7 +14615,7 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "pin-project-lite 0.2.16", + "pin-project-lite", "sync_wrapper", "tokio", "tower-layer", @@ -14329,18 +14625,34 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.10.0", + "bytes", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "pin-project-lite", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.10.0", "bytes", - "futures-core", "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "http-range-header", - "pin-project-lite 0.2.16", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower 0.5.2", "tower-layer", "tower-service", ] @@ -14364,7 +14676,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", - "pin-project-lite 0.2.16", + "pin-project-lite", "tracing-attributes", "tracing-core", ] @@ -14378,25 +14690,25 @@ dependencies = [ "crossbeam-channel", "thiserror 1.0.69", "time", - "tracing-subscriber 0.3.19", + "tracing-subscriber", ] [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -14411,91 +14723,49 @@ dependencies = [ "ansi_term", "smallvec", "thiserror 1.0.69", - "tracing", - "tracing-subscriber 0.3.19", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", + "tracing", + "tracing-subscriber", ] [[package]] -name = "tracing-serde" -version = "0.1.3" +name = "tracing-futures" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "serde", - "tracing-core", + "pin-project", + "tracing", ] [[package]] -name = "tracing-subscriber" -version = "0.2.25" +name = "tracing-log" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "ansi_term", - "chrono", - "lazy_static", - "matchers 0.0.1", - "parking_lot 0.11.2", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", + "log", + "once_cell", "tracing-core", - "tracing-log 0.1.4", - "tracing-serde", ] [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ - "matchers 0.1.0", + "matchers", "nu-ansi-term", "once_cell", - "regex", + "parking_lot 0.12.5", + "regex-automata", "sharded-slab", "smallvec", "thread_local", + "time", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", ] [[package]] @@ -14513,12 +14783,11 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.28.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" +checksum = "6c0670ab45a6b7002c7df369fee950a27cf29ae0474343fd3a15aa15f691e7a6" dependencies = [ "hash-db 0.16.0", - "hashbrown 0.13.2", "log", "rustc-hex", "smallvec", @@ -14533,113 +14802,31 @@ dependencies = [ "hash-db 0.16.0", ] -[[package]] -name = "trust-dns-proto" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.2.3", - "ipnet", - "lazy_static", - "rand", - "smallvec", - "socket2 0.4.10", - "thiserror 1.0.69", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" -dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lazy_static", - "lru-cache", - "parking_lot 0.12.3", - "resolv-conf", - "smallvec", - "thiserror 1.0.69", - "tokio", - "tracing", - "trust-dns-proto", -] - [[package]] name = "try-lock" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "try-runtime-cli" -version = "0.38.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" -dependencies = [ - "async-trait", - "clap 4.5.26", - "frame-remote-externalities", - "frame-try-runtime", - "hex", - "log", - "parity-scale-codec", - "sc-cli", - "sc-executor", - "serde", - "serde_json", - "sp-api", - "sp-consensus-aura", - "sp-consensus-babe", - "sp-core", - "sp-debug-derive", - "sp-externalities", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-rpc", - "sp-runtime", - "sp-state-machine", - "sp-timestamp", - "sp-transaction-storage-proof", - "sp-version", - "sp-weights", - "substrate-rpc-client", - "zstd 0.12.4", -] - [[package]] name = "ts-rs" -version = "11.0.1" +version = "11.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef1b7a6d914a34127ed8e1fa927eb7088903787bcded4fa3eef8f85ee1568be" +checksum = "4994acea2522cd2b3b85c1d9529a55991e3ad5e25cdcd3de9d505972c4379424" dependencies = [ - "thiserror 2.0.11", + "thiserror 2.0.17", "ts-rs-macros", ] [[package]] name = "ts-rs-macros" -version = "11.0.1" +version = "11.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d4ed7b4c18cc150a6a0a1e9ea1ecfa688791220781af6e119f9599a8502a0a" +checksum = "ee6ff59666c9cbaec3533964505d39154dc4e0a56151fdea30a09ed0301f62e2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -14657,6 +14844,32 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "tungstenite" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" +dependencies = [ + "bytes", + "data-encoding", + "http 1.3.1", + "httparse", + "log", + "rand 0.9.2", + "rustls", + "rustls-pki-types", + "sha1", + "thiserror 2.0.17", + "url", + "utf-8", +] + +[[package]] +name = "tuplex" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "676ac81d5454c4dcf37955d34fa8626ede3490f744b86ca14a7b90168d2a08aa" + [[package]] name = "twirp-rs" version = "0.13.0-succinct" @@ -14666,10 +14879,10 @@ dependencies = [ "async-trait", "axum", "futures", - "http 1.2.0", + "http 1.3.1", "http-body-util", - "hyper 1.5.2", - "prost 0.13.4", + "hyper 1.8.1", + "prost 0.13.5", "reqwest", "serde", "serde_json", @@ -14687,15 +14900,15 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand", + "rand 0.8.5", "static_assertions", ] [[package]] name = "typenum" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -14732,17 +14945,11 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-normalization" @@ -14754,16 +14961,16 @@ dependencies = [ ] [[package]] -name = "unicode-width" -version = "0.1.14" +name = "unicode-segmentation" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unicode-xid" @@ -14787,7 +14994,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.6.2", "bytes", "futures-io", "futures-util", @@ -14798,6 +15005,10 @@ name = "unsigned-varint" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" +dependencies = [ + "bytes", + "tokio-util", +] [[package]] name = "untrusted" @@ -14813,20 +15024,21 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", - "idna 1.0.3", + "idna", "percent-encoding", + "serde", ] [[package]] -name = "utf16_iter" -version = "1.0.5" +name = "utf-8" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "utf8_iter" @@ -14840,11 +15052,22 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "uuid" +version = "1.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +dependencies = [ + "getrandom 0.3.4", + "js-sys", + "wasm-bindgen", +] + [[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 = "vcpkg" @@ -14875,28 +15098,72 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "w3f-bls" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a3028804c8bbae2a97a15b71ffc0e308c4b01a520994aafa77d56e94e19024" +checksum = "e6bfb937b3d12077654a9e43e32a4e9c20177dd9fea0f3aba673e7840bb54f32" dependencies = [ "ark-bls12-377", - "ark-bls12-381", + "ark-bls12-381 0.4.0", "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-serialize 0.4.2", "ark-serialize-derive 0.4.2", "arrayref", - "constcat", "digest 0.10.7", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", - "thiserror 1.0.69", "zeroize", ] +[[package]] +name = "w3f-pcs" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbe7a8d5c914b69392ab3b267f679a2e546fe29afaddce47981772ac71bd02e1" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "merlin", +] + +[[package]] +name = "w3f-plonk-common" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aca389e494fe08c5c108b512e2328309036ee1c0bc7bdfdb743fef54d448c8c" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "getrandom_or_panic", + "rand_core 0.6.4", + "w3f-pcs", +] + +[[package]] +name = "w3f-ring-proof" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a639379402ad51504575dbd258740383291ac8147d3b15859bdf1ea48c677de" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "ark-transcript", + "w3f-pcs", + "w3f-plonk-common", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -14918,47 +15185,37 @@ dependencies = [ [[package]] name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", +] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" dependencies = [ "cfg-if", "js-sys", @@ -14969,9 +15226,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -14979,26 +15236,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.96", - "wasm-bindgen-backend", + "syn 2.0.111", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.235.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3bc393c395cb621367ff02d854179882b9a351b4e0c93d1397e6090b53a5c2a" +dependencies = [ + "leb128fmt", + "wasmparser", +] + [[package]] name = "wasm-instrument" version = "0.4.0" @@ -15086,7 +15353,7 @@ version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c128c039340ffd50d4195c3f8ce31aac357f06804cfc494c8b9508d4b30dca4" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "hashbrown 0.14.5", "string-interner", ] @@ -15105,12 +15372,15 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.102.0" +version = "0.235.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" +checksum = "161296c618fa2d63f6ed5fffd1112937e803cb9ec71b32b01a76321555660917" dependencies = [ - "indexmap 1.9.3", - "url", + "bitflags 2.10.0", + "hashbrown 0.15.5", + "indexmap 2.12.1", + "semver 1.0.27", + "serde", ] [[package]] @@ -15122,206 +15392,231 @@ dependencies = [ "indexmap-nostd", ] +[[package]] +name = "wasmprinter" +version = "0.235.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75aa8e9076de6b9544e6dab4badada518cca0bf4966d35b131bbd057aed8fa0a" +dependencies = [ + "anyhow", + "termcolor", + "wasmparser", +] + [[package]] name = "wasmtime" -version = "8.0.1" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" +checksum = "b6fe976922a16af3b0d67172c473d1fd4f1aa5d0af9c8ba6538c741f3af686f4" dependencies = [ + "addr2line 0.24.2", "anyhow", - "bincode", + "bitflags 2.10.0", + "bumpalo", + "cc", "cfg-if", - "indexmap 1.9.3", + "gimli 0.31.1", + "hashbrown 0.15.5", + "indexmap 2.12.1", "libc", "log", - "object 0.30.4", + "mach2", + "memfd", + "object 0.36.7", "once_cell", - "paste", - "psm", + "postcard", + "pulley-interpreter", "rayon", + "rustix 1.1.2", "serde", + "serde_derive", + "smallvec", "target-lexicon", "wasmparser", - "wasmtime-cache", - "wasmtime-cranelift", "wasmtime-environ", - "wasmtime-jit", - "wasmtime-runtime", - "windows-sys 0.45.0", + "wasmtime-internal-asm-macros", + "wasmtime-internal-cache", + "wasmtime-internal-cranelift", + "wasmtime-internal-fiber", + "wasmtime-internal-jit-icache-coherence", + "wasmtime-internal-math", + "wasmtime-internal-slab", + "wasmtime-internal-unwinder", + "wasmtime-internal-versioned-export-macros", + "wasmtime-internal-winch", + "windows-sys 0.59.0", +] + +[[package]] +name = "wasmtime-environ" +version = "35.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44b6264a78d806924abbc76bbc75eac24976bc83bdfb938e5074ae551242436f" +dependencies = [ + "anyhow", + "cpp_demangle", + "cranelift-bitset", + "cranelift-entity", + "gimli 0.31.1", + "indexmap 2.12.1", + "log", + "object 0.36.7", + "postcard", + "rustc-demangle", + "serde", + "serde_derive", + "smallvec", + "target-lexicon", + "wasm-encoder", + "wasmparser", + "wasmprinter", ] [[package]] -name = "wasmtime-asm-macros" -version = "8.0.1" +name = "wasmtime-internal-asm-macros" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" +checksum = "6775a9b516559716e5710e95a8014ca0adcc81e5bf4d3ad7899d89ae40094d1a" dependencies = [ "cfg-if", ] [[package]] -name = "wasmtime-cache" -version = "8.0.1" +name = "wasmtime-internal-cache" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" +checksum = "138e33ad4bd120f3b1c77d6d0dcdce0de8239555495befcda89393a40ba5e324" dependencies = [ "anyhow", - "base64 0.21.7", - "bincode", + "base64", "directories-next", - "file-per-thread-logger", "log", - "rustix 0.36.17", + "postcard", + "rustix 1.1.2", "serde", - "sha2 0.10.8", - "toml 0.5.11", - "windows-sys 0.45.0", - "zstd 0.11.2+zstd.1.5.2", + "serde_derive", + "sha2 0.10.9", + "toml 0.8.23", + "windows-sys 0.59.0", + "zstd 0.13.3", ] [[package]] -name = "wasmtime-cranelift" -version = "8.0.1" +name = "wasmtime-internal-cranelift" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" +checksum = "7ec9ad7565e6a8de7cb95484e230ff689db74a4a085219e0da0cbd637a29c01c" dependencies = [ "anyhow", + "cfg-if", "cranelift-codegen", + "cranelift-control", "cranelift-entity", "cranelift-frontend", "cranelift-native", - "cranelift-wasm", - "gimli 0.27.3", + "gimli 0.31.1", + "itertools 0.14.0", "log", - "object 0.30.4", + "object 0.36.7", + "pulley-interpreter", + "smallvec", "target-lexicon", - "thiserror 1.0.69", + "thiserror 2.0.17", "wasmparser", - "wasmtime-cranelift-shared", "wasmtime-environ", + "wasmtime-internal-math", + "wasmtime-internal-versioned-export-macros", ] [[package]] -name = "wasmtime-cranelift-shared" -version = "8.0.1" +name = "wasmtime-internal-fiber" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" +checksum = "8b636ff8b220ebaf29dfe3b23770e4b2bad317b9683e3bf7345e162387385b39" dependencies = [ "anyhow", - "cranelift-codegen", - "cranelift-native", - "gimli 0.27.3", - "object 0.30.4", - "target-lexicon", - "wasmtime-environ", + "cc", + "cfg-if", + "libc", + "rustix 1.1.2", + "wasmtime-internal-asm-macros", + "wasmtime-internal-versioned-export-macros", + "windows-sys 0.59.0", ] [[package]] -name = "wasmtime-environ" -version = "8.0.1" +name = "wasmtime-internal-jit-icache-coherence" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" +checksum = "4417e06b7f80baff87d9770852c757a39b8d7f11d78b2620ca992b8725f16f50" dependencies = [ "anyhow", - "cranelift-entity", - "gimli 0.27.3", - "indexmap 1.9.3", - "log", - "object 0.30.4", - "serde", - "target-lexicon", - "thiserror 1.0.69", - "wasmparser", - "wasmtime-types", + "cfg-if", + "libc", + "windows-sys 0.59.0", ] [[package]] -name = "wasmtime-jit" -version = "8.0.1" +name = "wasmtime-internal-math" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" +checksum = "7710d5c4ecdaa772927fd11e5dc30a9a62d1fc8fe933e11ad5576ad596ab6612" dependencies = [ - "addr2line 0.19.0", - "anyhow", - "bincode", - "cfg-if", - "cpp_demangle", - "gimli 0.27.3", - "log", - "object 0.30.4", - "rustc-demangle", - "serde", - "target-lexicon", - "wasmtime-environ", - "wasmtime-jit-debug", - "wasmtime-jit-icache-coherence", - "wasmtime-runtime", - "windows-sys 0.45.0", + "libm", ] [[package]] -name = "wasmtime-jit-debug" -version = "8.0.1" +name = "wasmtime-internal-slab" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" -dependencies = [ - "object 0.30.4", - "once_cell", - "rustix 0.36.17", -] +checksum = "e6ab22fabe1eed27ab01fd47cd89deacf43ad222ed7fd169ba6f4dd1fbddc53b" [[package]] -name = "wasmtime-jit-icache-coherence" -version = "8.0.1" +name = "wasmtime-internal-unwinder" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" +checksum = "307708f302f5dcf19c1bbbfb3d9f2cbc837dd18088a7988747b043a46ba38ecc" dependencies = [ + "anyhow", "cfg-if", - "libc", - "windows-sys 0.45.0", + "cranelift-codegen", + "log", + "object 0.36.7", ] [[package]] -name = "wasmtime-runtime" -version = "8.0.1" +name = "wasmtime-internal-versioned-export-macros" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" +checksum = "342b0466f92b7217a4de9e114175fedee1907028567d2548bcd42f71a8b5b016" dependencies = [ - "anyhow", - "cc", - "cfg-if", - "indexmap 1.9.3", - "libc", - "log", - "mach", - "memfd", - "memoffset", - "paste", - "rand", - "rustix 0.36.17", - "wasmtime-asm-macros", - "wasmtime-environ", - "wasmtime-jit-debug", - "windows-sys 0.45.0", + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] -name = "wasmtime-types" -version = "8.0.1" +name = "wasmtime-internal-winch" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" +checksum = "2012e7384c25b91aab2f1b6a1e1cbab9d0f199bbea06cc873597a3f047f05730" dependencies = [ - "cranelift-entity", - "serde", - "thiserror 1.0.69", + "anyhow", + "cranelift-codegen", + "gimli 0.31.1", + "object 0.36.7", + "target-lexicon", "wasmparser", + "wasmtime-environ", + "wasmtime-internal-cranelift", + "winch-codegen", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -15338,50 +15633,43 @@ dependencies = [ ] [[package]] -name = "webpki" -version = "0.22.4" +name = "webpki-root-certs" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", + "webpki-root-certs 1.0.4", ] [[package]] -name = "webpki-roots" -version = "0.22.6" +name = "webpki-root-certs" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +checksum = "ee3e3b5f5e80bc89f30ce8d0343bf4e5f12341c51f3e26cbeecbc7c85443e85b" dependencies = [ - "webpki", + "rustls-pki-types", ] [[package]] name = "webpki-roots" -version = "0.26.7" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" -dependencies = [ - "rustls-pki-types", -] +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] -name = "which" -version = "4.4.2" +name = "webpki-roots" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.43", + "rustls-pki-types", ] [[package]] name = "wide" -version = "0.7.32" +version = "0.7.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" +checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" dependencies = [ "bytemuck", "safe_arch", @@ -15389,9 +15677,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" +checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" [[package]] name = "winapi" @@ -15411,11 +15699,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -15424,13 +15712,43 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "winch-codegen" +version = "35.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "839a334ef7c62d8368dbd427e767a6fbb1ba08cc12ecce19cbb666c10613b585" +dependencies = [ + "anyhow", + "cranelift-assembler-x64", + "cranelift-codegen", + "gimli 0.31.1", + "regalloc2 0.12.2", + "smallvec", + "target-lexicon", + "thiserror 2.0.17", + "wasmparser", + "wasmtime-environ", + "wasmtime-internal-cranelift", + "wasmtime-internal-math", +] + [[package]] name = "windows" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core", + "windows-core 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" +dependencies = [ + "windows-core 0.53.0", "windows-targets 0.52.6", ] @@ -15444,39 +15762,81 @@ dependencies = [ ] [[package]] -name = "windows-link" -version = "0.2.0" +name = "windows-core" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" +dependencies = [ + "windows-result 0.1.2", + "windows-targets 0.52.6", +] [[package]] -name = "windows-registry" -version = "0.2.0" +name = "windows-core" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-result", + "windows-implement", + "windows-interface", + "windows-link", + "windows-result 0.4.1", "windows-strings", - "windows-targets 0.52.6", ] +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-result" -version = "0.2.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-strings" -version = "0.1.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-result", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -15517,9 +15877,18 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.61.1" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ "windows-link", ] @@ -15563,13 +15932,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -15588,6 +15974,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -15606,6 +15998,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -15624,12 +16022,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -15648,6 +16058,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -15666,6 +16082,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -15684,6 +16106,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -15702,11 +16130,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winnow" -version = "0.6.24" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -15722,16 +16156,16 @@ dependencies = [ ] [[package]] -name = "write16" -version = "1.0.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wyz" @@ -15742,24 +16176,13 @@ dependencies = [ "tap", ] -[[package]] -name = "x25519-dalek" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" -dependencies = [ - "curve25519-dalek 3.2.0", - "rand_core 0.5.1", - "zeroize", -] - [[package]] name = "x25519-dalek" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ - "curve25519-dalek 4.1.3", + "curve25519-dalek", "rand_core 0.6.4", "serde", "zeroize", @@ -15767,42 +16190,90 @@ dependencies = [ [[package]] name = "x509-parser" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ - "asn1-rs", - "base64 0.13.1", + "asn1-rs 0.6.2", "data-encoding", - "der-parser", + "der-parser 9.0.0", "lazy_static", "nom", - "oid-registry", + "oid-registry 0.7.1", "rusticata-macros", "thiserror 1.0.69", "time", ] [[package]] -name = "xdg" -version = "2.5.2" +name = "x509-parser" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569f339c0c402346d4a75a9e39cf8dad310e287eef1ff56d4c68e5067f53460" +dependencies = [ + "asn1-rs 0.7.1", + "data-encoding", + "der-parser 10.0.0", + "lazy_static", + "nom", + "oid-registry 0.8.1", + "rusticata-macros", + "thiserror 2.0.17", + "time", +] + +[[package]] +name = "xml-rs" +version = "0.8.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" + +[[package]] +name = "xmltree" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" +dependencies = [ + "xml-rs", +] + +[[package]] +name = "yamux" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546" +checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776" +dependencies = [ + "futures", + "log", + "nohash-hasher", + "parking_lot 0.12.5", + "pin-project", + "rand 0.8.5", + "static_assertions", +] [[package]] name = "yamux" -version = "0.10.2" +version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5" +checksum = "deab71f2e20691b4728b349c6cee8fc7223880fa67b6b4f92225ec32225447e5" dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.3", - "rand", + "parking_lot 0.12.5", + "pin-project", + "rand 0.9.2", "static_assertions", + "web-time", ] +[[package]] +name = "yap" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe269e7b803a5e8e20cbd97860e136529cd83bf2c9c6d37b142467e7e1f051f" + [[package]] name = "yasna" version = "0.5.2" @@ -15814,11 +16285,10 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -15826,63 +16296,62 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", - "synstructure 0.13.1", + "syn 2.0.111", + "synstructure 0.13.2", ] [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "43fa6694ed34d6e57407afbccdeecfa268c470a7d2a5b0cf49ce9fcc345afb90" dependencies = [ - "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "c640b22cd9817fae95be82f0d2f90b11f7605f6c319d16705c459b27ac2cbc26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", - "synstructure 0.13.1", + "syn 2.0.111", + "synstructure 0.13.2", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -15895,14 +16364,25 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", ] [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -15911,13 +16391,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.111", ] [[package]] @@ -15940,22 +16420,13 @@ dependencies = [ "jubjub", "lazy_static", "pasta_curves 0.5.1", - "rand", + "rand 0.8.5", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "subtle 2.6.1", ] -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", -] - [[package]] name = "zstd" version = "0.12.4" @@ -15974,16 +16445,6 @@ dependencies = [ "zstd-safe 7.2.4", ] -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - [[package]] name = "zstd-safe" version = "6.0.6" @@ -16012,3 +16473,8 @@ dependencies = [ "cc", "pkg-config", ] + +[[patch.unused]] +name = "sp-crypto-ec-utils" +version = "0.18.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a#a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" diff --git a/Cargo.toml b/Cargo.toml index afb3ee8fd..c599a4e4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,8 @@ members = [ "patricia-merkle-trie", "client/basic-authorship", "runtime", - "runtime/fuzz", + # disable temp + # "runtime/fuzz", "node", "blob", "da-commitment", @@ -31,9 +32,9 @@ homepage = "https://www.availproject.org/" [workspace.dependencies] -avail-core = { git = "https://github.com/availproject/avail-core.git", branch = "ghali/infinity-da", default-features = false, features = [ "runtime"] } -kate = { git = "https://github.com/availproject/avail-core", branch = "ghali/infinity-da", default-features = false } -kate-recovery = { git = "https://github.com/availproject/avail-core", branch = "ghali/infinity-da", default-features = false } +avail-core = { git = "https://github.com/availproject/avail-core.git", rev = "371efd7ce93a9636d23dee9649b01687568c9e95", default-features = false, features = [ "runtime"] } +kate = { git = "https://github.com/availproject/avail-core", rev = "371efd7ce93a9636d23dee9649b01687568c9e95", default-features = false } +kate-recovery = { git = "https://github.com/availproject/avail-core", rev = "371efd7ce93a9636d23dee9649b01687568c9e95", default-features = false } # avail-core = { path = "../avail-core/core", default-features = false, features = [ "runtime"] } # kate = { path = "../avail-core/kate/", default-features = false } # kate-recovery = { path = "../avail-core/kate/recovery/", default-features = false} @@ -112,9 +113,9 @@ array-bytes = "6.1" trie-db = { version = "0.24.0", default-features = false } hash-db = { version = "0.15.2", default-features = false } memory-db = { version = "0.30.0", default-features = false } -bounded-collections = { version = "0.2", default-features = false } +bounded-collections = { version = "0.3.2", default-features = false } itertools = { version = "0.10.5", default-features = false } -jsonrpsee = { version = "0.22", features = ["server", "client", "macros"] } +jsonrpsee = { version = "0.24.7", features = ["server", "client", "macros"] } moka = { version = "0.12.1", features = ["future"] } lru = "0.7.2" tempfile = "3.1.0" @@ -123,7 +124,7 @@ ts-rs = { version = "11.0.1", default-features = false } # Ethereum rlp = { git = "https://github.com/paritytech/parity-common.git", tag = "rlp-v0.5.2", default-features = false } rlp-derive = "0.1.0" -primitive-types = { version = "0.12.0", default-features = false } +primitive-types = { version = "0.13.1", default-features = false } ethabi = { version = "18.0.0", default-features = false } tiny-keccak = { version = "2.0.2", features = ["keccak"], default-features = false } @@ -133,124 +134,124 @@ clap-num = "1.1.1" clap_complete = "4.0.2" # Polkadot -frame-executive = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-std = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -frame-support = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-babe = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-balances = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-timestamp = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-core = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-io = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-keyring = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-runtime = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-arithmetic = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -frame-benchmarking = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-utility = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-api = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-client-api = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-blockchain = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -frame-try-runtime = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-tracing = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-inherents = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-version = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-weights = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -api = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-storage = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-assets = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-authorship = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-asset-conversion = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-collective = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-externalities = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-runtime-interface = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -binary-merkle-tree = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-staking = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-staking = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-staking-runtime-api = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-consensus-grandpa = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-authority-discovery = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-consensus-babe = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-genesis-builder = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-transaction-pool = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-offchain = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-session = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-block-builder = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-npos-elections = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-session = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-im-online = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-grandpa = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-staking-reward-curve = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-scheduler = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-indices = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-offences = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-treasury = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-bounties = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-sudo = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-authority-discovery = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-tips = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-bags-list = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-election-provider-multi-phase = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -frame-election-provider-support = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-democracy = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-mmr = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-multisig = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-preimage = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-nomination-pools = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-nomination-pools-runtime-api = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-identity = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-proxy = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-tx-pause = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-transaction-payment = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -pallet-staking-reward-fn = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -substrate-wasm-builder = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-cli = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-statement-store = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-executor = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-service = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-storage-monitor = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-telemetry = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-keystore = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-keystore = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-transaction-pool = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-transaction-pool-api = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-transaction-storage-proof = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-consensus-babe-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-consensus = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-consensus = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-offchain = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-consensus-grandpa-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-consensus-grandpa = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-timestamp = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-consensus-babe = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-consensus-slots = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-network = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-network-gossip = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-authority-discovery = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-chain-spec = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-client-db = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-sync-state-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-sysinfo = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-network-common = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-network-sync = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -mmr-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-rpc-api = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sc-rpc-spec-v2 = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -substrate-frame-rpc-system = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -substrate-state-trie-migration-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -try-runtime-cli = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -substrate-build-script-utils = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-trie = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } -sp-state-machine = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da", default-features = false } +frame-executive = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-std = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +frame-support = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-babe = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-balances = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-timestamp = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-core = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-io = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-keyring = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-runtime = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-arithmetic = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +frame-benchmarking = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-utility = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-api = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-client-api = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-blockchain = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +frame-try-runtime = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-tracing = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-inherents = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-version = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-weights = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +api = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-storage = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-assets = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-authorship = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-asset-conversion = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-collective = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-externalities = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-runtime-interface = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +binary-merkle-tree = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-staking = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-staking = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-staking-runtime-api = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-consensus-grandpa = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-authority-discovery = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-consensus-babe = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-genesis-builder = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-transaction-pool = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-offchain = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-session = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-block-builder = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-npos-elections = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-session = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-im-online = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-grandpa = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-staking-reward-curve = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-scheduler = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-indices = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-offences = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-treasury = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-bounties = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-sudo = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-authority-discovery = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-tips = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-bags-list = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-election-provider-multi-phase = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +frame-election-provider-support = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-democracy = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-mmr = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-multisig = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-preimage = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-nomination-pools = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-nomination-pools-runtime-api = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-identity = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-proxy = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-tx-pause = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-transaction-payment = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +pallet-staking-reward-fn = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +substrate-wasm-builder = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-cli = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-statement-store = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-executor = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-service = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-storage-monitor = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-telemetry = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-keystore = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-keystore = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-transaction-pool = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-transaction-pool-api = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-transaction-storage-proof = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-consensus-babe-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-consensus = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-consensus = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-offchain = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-consensus-grandpa-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-consensus-grandpa = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-timestamp = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-consensus-babe = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-consensus-slots = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-network = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-network-gossip = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-authority-discovery = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-chain-spec = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-client-db = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-sync-state-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-sysinfo = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-network-common = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-network-sync = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +mmr-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-rpc-api = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sc-rpc-spec-v2 = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +substrate-frame-rpc-system = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +substrate-state-trie-migration-rpc = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +# try-runtime-cli = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +substrate-build-script-utils = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-trie = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } +sp-state-machine = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a", default-features = false } -sc-block-builder = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da" } -sc-proposer-metrics = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da" } -substrate-prometheus-endpoint = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da" } -# substrate-test-runtime-client = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da" } +sc-block-builder = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" } +sc-proposer-metrics = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" } +substrate-prometheus-endpoint = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" } +# substrate-test-runtime-client = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" } # Patch from forked pallets @@ -260,7 +261,7 @@ frame-system-benchmarking = { path = "pallets/system/benchmarking" } frame-system-rpc-runtime-api = { path = "pallets/system/rpc/runtime-api" } [patch."https://github.com/paritytech/polkadot-sdk"] -sp-crypto-ec-utils = { git = "https://github.com/availproject/polkadot-sdk.git", branch = "ghali/infinity-da" } +sp-crypto-ec-utils = { git = "https://github.com/availproject/polkadot-sdk.git", rev = "a8f3ea7c7cc18844c1e27e0c9534954bb9bc6f2a" } [patch.crates-io] # Other stuff @@ -269,6 +270,9 @@ rlp = { git = "https://github.com/paritytech/parity-common.git", tag = "rlp-v0.5 [workspace.lints.rust] suspicious_double_ref_op = { level = "allow", priority = 2 } +unexpected_cfgs = { level = "warn", check-cfg = [ + 'cfg(substrate_runtime)', +] } [workspace.lints.clippy] all = { level = "allow", priority = 0 } diff --git a/base/Cargo.toml b/base/Cargo.toml index 270df1383..6017e7c70 100644 --- a/base/Cargo.toml +++ b/base/Cargo.toml @@ -14,6 +14,8 @@ avail-core = { workspace = true, default-features = false } # Substrate related codec = { package = "parity-scale-codec", version = "3", default-features = false, features = ["derive"] } +# parking_lot= { workspace = true } +parking_lot= { workspace = true, optional = true } scale-info = { workspace = true, default-features = false } sp-core = { workspace = true, default-features = false, features = ["serde"] } sp-std = { workspace = true, default-features = false } @@ -41,8 +43,9 @@ std = [ "binary-merkle-tree/std", "codec/std", "frame-support/std", - "sp-authority-discovery/std", + "parking_lot", "sp-api/std", + "sp-authority-discovery/std", "sp-core/std", "sp-runtime-interface/std", "sp-runtime/std", diff --git a/base/src/header_extension/builder_data.rs b/base/src/header_extension/builder_data.rs index 75240bf77..c06eed1f9 100644 --- a/base/src/header_extension/builder_data.rs +++ b/base/src/header_extension/builder_data.rs @@ -9,7 +9,6 @@ use codec::{Decode, Encode}; use derive_more::Constructor; use sp_core::H256; use sp_runtime::OpaqueExtrinsic; -use sp_runtime_interface::pass_by::PassByCodec; use sp_std::{iter::repeat, vec::Vec}; #[derive(Constructor, Debug, Encode, Decode, Clone, PartialEq, Eq)] @@ -38,7 +37,7 @@ pub struct ExtractedTxData { pub bridge_data: Option, } -#[derive(Debug, Default, PassByCodec, Encode, Decode)] +#[derive(Debug, Default, Encode, Decode)] pub struct HeaderExtensionBuilderData { pub data_submissions: Vec, pub bridge_messages: Vec, @@ -238,7 +237,7 @@ where T: AsRef<[u8]>, { let leaves = leaf_iter.collect::>(); - let mp = merkle_proof::(leaves, leaf_idx); + let mp = merkle_proof::(leaves, leaf_idx as u32); // NOTE: As we are using refrences for the leaves, like `&'a [u8]`, we need to // convert them to `Vec`. MerkleProof { diff --git a/base/src/mem_tmp_storage.rs b/base/src/mem_tmp_storage.rs index 6886fec9e..2fe173956 100644 --- a/base/src/mem_tmp_storage.rs +++ b/base/src/mem_tmp_storage.rs @@ -1,5 +1,8 @@ use codec::{Decode, Encode}; -use sp_runtime_interface::runtime_interface; +use sp_runtime_interface::{ + pass_by::{AllocateAndReturnByCodec, PassFatPointerAndRead}, + runtime_interface, +}; use sp_std::{collections::btree_map::BTreeMap, vec::Vec}; /// A simple key-value storage in memory. @@ -20,7 +23,7 @@ impl MemoryTemporaryStorage { /// Encodes and inserts `value` into the memory temporal storage under `key`. pub fn insert(key: Vec, value: T) -> Option { let raw_value = value.encode(); - hosted_mem_tmp_storage::insert(key, raw_value) + hosted_mem_tmp_storage::insert(&key, raw_value) .and_then(|raw| T::decode(&mut raw.as_slice()).ok()) } @@ -60,10 +63,10 @@ impl MemoryTemporaryStorage { ////// Native Code ////// -#[cfg(feature = "std")] +#[cfg(not(substrate_runtime))] pub(crate) mod native { use super::*; - use sp_std::sync::RwLock; + use parking_lot::RwLock; pub static MEM_TMP_STORAGE: RwLock = RwLock::new(StorageMap::new()); } @@ -76,58 +79,39 @@ pub(crate) mod native { /// - [ ] Improve error handling of poisoned sync: Panic? #[runtime_interface] pub trait HostedMemTmpStorage { - /// Insert auxiliary data into key-value storage. - fn insert(key: Vec, value: Vec) -> Option> { - let Ok(mut guard) = native::MEM_TMP_STORAGE.write() else { - log_poisoned_sync(); - return None; - }; - - guard.insert(key, value) + fn insert( + key: PassFatPointerAndRead<&[u8]>, + value: PassFatPointerAndRead>, + ) -> AllocateAndReturnByCodec>> { + let mut guard = native::MEM_TMP_STORAGE.write(); + guard.insert(key.to_vec(), value) } - /// Returns the value under `key` from the memory temporal storage. - fn get(key: &[u8]) -> Option> { - let Ok(guard) = native::MEM_TMP_STORAGE.read() else { - log_poisoned_sync(); - return None; - }; - - guard.get(key).cloned() + fn get(key: PassFatPointerAndRead<&[u8]>) -> AllocateAndReturnByCodec>> { + let guard = native::MEM_TMP_STORAGE.read(); + guard.get(&*key).cloned() } - fn take(key: &[u8]) -> Option> { - let Ok(mut guard) = native::MEM_TMP_STORAGE.write() else { - log_poisoned_sync(); - return None; - }; - - guard.remove(key) + fn take(key: PassFatPointerAndRead<&[u8]>) -> AllocateAndReturnByCodec>> { + let mut guard = native::MEM_TMP_STORAGE.write(); + guard.remove(&*key) } /// Clears the memory temporal storage. fn clear() { - let Ok(mut guard) = native::MEM_TMP_STORAGE.write() else { - log_poisoned_sync(); - return; - }; - + let mut guard = native::MEM_TMP_STORAGE.write(); guard.clear(); } /// Returns the content of the memory temporal storage as a list of key-value pairs. /// NOTE: Conversion to plain list is needed due to `ByPass` constraints. - fn storage() -> Vec<(Vec, Vec)> { - let Ok(guard) = native::MEM_TMP_STORAGE.read() else { - log_poisoned_sync(); - return Vec::default(); - }; - + fn storage() -> AllocateAndReturnByCodec, Vec)>> { + let guard = native::MEM_TMP_STORAGE.read(); guard.iter().map(|(k, v)| (k.clone(), v.clone())).collect() } } -#[cfg(feature = "std")] -fn log_poisoned_sync() { - log::error!("Memory Temporal Storage with a poisoned sync"); -} +// #[cfg(not(substrate_runtime))] +// fn log_poisoned_sync() { +// log::error!("Memory Temporal Storage with a poisoned sync"); +// } diff --git a/base/src/testing_env.rs b/base/src/testing_env.rs index c67633fde..0b3d17b81 100644 --- a/base/src/testing_env.rs +++ b/base/src/testing_env.rs @@ -1,7 +1,7 @@ -use avail_core::app_extrinsic::AppExtrinsic; -use sp_std::vec::Vec; +// use avail_core::app_extrinsic::AppExtrinsic; +// use sp_std::vec::Vec; pub static mut ENABLE_TEST_EXTENSION_FAILURE: bool = false; pub static mut ENABLE_TEST_GRID_FAILURE: bool = false; pub static mut ENABLE_TEST_COMMITMENT_FAILURE: bool = false; -pub static mut TEST_POPULATE_GRID: Option> = None; +// pub static mut TEST_POPULATE_GRID: Option> = None; diff --git a/blob/Cargo.toml b/blob/Cargo.toml index 2b7608c9e..8a1c4a933 100644 --- a/blob/Cargo.toml +++ b/blob/Cargo.toml @@ -36,6 +36,7 @@ da-commitment = { workspace = true, default-features = false } sp-core = { workspace = true, default-features = false } sp-runtime = { workspace = true, default-features = false } sp-api = { workspace = true, default-features = false } +sp-io = { workspace = true, default-features = false } sp-std = { workspace = true, default-features = false } sc-network = { workspace = true, default-features = false } sc-network-gossip = { workspace = true, default-features = false } @@ -67,32 +68,35 @@ divan = { version = "0.1" } avail-rust = { package = "avail-rust-client", version = "0.4.0", default-features = false, features = ["native", "reqwest", "next"] } [features] -default = ["std"] +default = [ "std" ] std = [ - "avail-core/std", - "kate/std", - "kate-recovery/std", - "frame-benchmarking/std", - "da-runtime/std", - "da-control/std", - "codec/std", - "scale-info/std", - "serde/std", - "frame-system/std", - "avail-base/std", - "da-commitment/std", - "sp-core/std", - "sp-runtime/std", - "sp-api/std", - "sp-std/std", - "sc-executor/std", - "sp-transaction-pool/std", - "sp-authority-discovery/std", - "futures/std", - "log/std", - "once_cell/std", + "avail-base/std", + "avail-core/std", + "codec/std", + "da-commitment/std", + "da-control/std", + "da-runtime/std", + "frame-benchmarking/std", + "frame-system/std", + "futures/std", + "kate-recovery/std", + "kate/std", + "log/std", + "once_cell/std", + "sc-executor/std", + "scale-info/std", + "serde/std", + "sp-api/std", + "sp-authority-discovery/std", + "sp-core/std", + "sp-io/std", + "sp-runtime/std", + "sp-std/std", + "sp-transaction-pool/std", ] +runtime-benchmarks = [] + [[bench]] name = "submit_data" harness = false diff --git a/blob/src/lib.rs b/blob/src/lib.rs index 032bbb955..09476d908 100644 --- a/blob/src/lib.rs +++ b/blob/src/lib.rs @@ -28,10 +28,10 @@ use da_control::BlobRuntimeParameters; use da_runtime::apis::BlobApi; use futures::channel::oneshot; use sc_client_api::HeaderBackend; +use sc_network::service::traits::NetworkService as NetworkServiceT; use sc_network::{ config::{IncomingRequest, OutgoingResponse}, - IfDisconnected, NetworkPeers, NetworkRequest, NetworkService, NetworkStateInfo, ObservedRole, - PeerId, + IfDisconnected, NetworkPeers, NetworkRequest, NetworkStateInfo, ObservedRole, PeerId, }; use sp_api::ProvideRuntimeApi; use sp_core::H256; @@ -543,14 +543,14 @@ where log::error!(target: LOG_TARGET, "Invalid response in send blob request, expected BlobResponse"); BlobReputationChange::MalformedResponse - .report(&blob_handle.network, &target_peer); + .report::(&blob_handle.network, &target_peer); break; }, Err(err) => { log::error!(target: LOG_TARGET, "Failed to decode Blob response ({} bytes): {:?}", data.len(), err); BlobReputationChange::MalformedResponse - .report(&blob_handle.network, &target_peer); + .report::(&blob_handle.network, &target_peer); break; }, } @@ -596,7 +596,7 @@ where pub fn handle_incoming_blob_request( request: IncomingRequest, blob_database: &dyn StorageApiT, - network: &Arc>, + network: &Arc, ) where Block: BlockT, { @@ -884,7 +884,7 @@ async fn handle_blob_stored_notification( pub async fn send_blob_query_request( hash: BlobHash, target_peer: PeerId, - network: &Arc>, + network: &Arc, ) -> Result> where Block: BlockT, diff --git a/blob/src/p2p.rs b/blob/src/p2p.rs index 60872428e..bb621024d 100644 --- a/blob/src/p2p.rs +++ b/blob/src/p2p.rs @@ -11,13 +11,15 @@ use crate::{ }; use async_channel::Receiver; use codec::Encode; +use core::marker::PhantomData; use futures::{future, FutureExt, StreamExt}; use sc_client_api::BlockchainEvents; use sc_keystore::LocalKeystore; use sc_network::{ - config::{IncomingRequest, NonDefaultSetConfig, RequestResponseConfig, Role}, - NetworkService, NotificationService, + config::{IncomingRequest, NonDefaultSetConfig, Role}, + NotificationService, }; +use sc_network::{service::traits::NetworkService as NetworkServiceT, NetworkBackend}; use sc_network_gossip::GossipEngine; use sc_network_sync::SyncingService; use sc_service::SpawnTaskHandle; @@ -27,25 +29,28 @@ use sp_runtime::{ SaturatedConversion, }; -pub fn get_blob_p2p_config() -> ( - RequestResponseConfig, +pub fn get_blob_p2p_config::Hash>>( + metrics: sc_network::service::NotificationMetrics, + peer_store_handle: Arc, +) -> ( + N::RequestResponseProtocolConfig, async_channel::Receiver, - NonDefaultSetConfig, + N::NotificationProtocolConfig, Box, ) { // Get blob Blob req/res protocol config let (blob_req_sender, blob_req_receiver) = async_channel::bounded(REQ_RES_QUEUE_SIZE as usize); - let blob_req_res_cfg = RequestResponseConfig { - name: BLOB_REQ_PROTO, - fallback_names: vec![], - max_request_size: REQUEST_MAX_SIZE, - max_response_size: RESPONSE_MAX_SIZE, - request_timeout: Duration::from_secs(REQUEST_TIMEOUT_SECONDS), - inbound_queue: Some(blob_req_sender), - }; + let blob_req_res_cfg = N::request_response_config( + BLOB_REQ_PROTO, + Vec::new(), + REQUEST_MAX_SIZE, + RESPONSE_MAX_SIZE, + Duration::from_secs(REQUEST_TIMEOUT_SECONDS), + Some(blob_req_sender), + ); // Get blob gossip protocol config - let (blob_gossip_cfg, blob_gossip_service) = NonDefaultSetConfig::new( + let (_peerset_cfg, blob_gossip_service) = NonDefaultSetConfig::new( BLOB_GOSSIP_PROTO, Vec::default(), NOTIFICATION_MAX_SIZE, @@ -53,6 +58,20 @@ pub fn get_blob_p2p_config() -> ( Default::default(), ); + let (blob_gossip_cfg, _) = N::notification_config( + BLOB_GOSSIP_PROTO, + Vec::new(), + NOTIFICATION_MAX_SIZE, + None, + sc_network::config::SetConfig { + in_peers: 0, + out_peers: 0, + reserved_nodes: Vec::new(), + non_reserved_mode: sc_network::config::NonReservedPeerMode::Deny, + }, + metrics, + peer_store_handle, + ); ( blob_req_res_cfg, blob_req_receiver, @@ -66,12 +85,13 @@ pub struct BlobHandle where Block: BlockT, { - pub network: Arc>, + pub network: Arc, pub gossip_cmd_sender: async_channel::Sender, pub keystore: Arc, pub client: Arc, pub blob_database: Arc, pub role: Role, + pub _marker: PhantomData, } impl BlobHandle @@ -83,7 +103,7 @@ where blob_database: Arc, blob_gossip_service: Box, req_receiver: async_channel::Receiver, - network: Arc>, + network: Arc, client: Arc, keystore: Arc, sync_service: Arc>, @@ -104,6 +124,7 @@ where gossip_cmd_sender, blob_database, role, + _marker: PhantomData, }; blob_handle.start_blob_req_res(spawn_handle.clone(), req_receiver); @@ -136,7 +157,11 @@ where let blob_database = blob_database.clone(); let net = network.clone(); tokio::task::spawn_blocking(move || { - handle_incoming_blob_request(request, blob_database.as_ref(), &net); + handle_incoming_blob_request::( + request, + blob_database.as_ref(), + &net, + ); }); future::ready(()) }) diff --git a/blob/src/rpc.rs b/blob/src/rpc.rs index 3b17346e8..610c5e7dd 100644 --- a/blob/src/rpc.rs +++ b/blob/src/rpc.rs @@ -317,8 +317,12 @@ where ); continue; } - match send_blob_query_request(blob_hash, peer_id, &self.blob_handle.network) - .await + match send_blob_query_request::( + blob_hash, + peer_id, + &self.blob_handle.network, + ) + .await { Ok(Some(blob)) => return Ok(blob), Ok(None) => { diff --git a/blob/src/traits.rs b/blob/src/traits.rs index 6a20969f9..34a1d29d5 100644 --- a/blob/src/traits.rs +++ b/blob/src/traits.rs @@ -2,7 +2,7 @@ use crate::utils::CommitmentQueueMessage; use crate::{BlobHandle, BlobNotification}; use da_runtime::{apis::BlobApi, AccountId, UncheckedExtrinsic}; use jsonrpsee::core::async_trait; -use sc_client_api::{BlockBackend, HeaderBackend, StateBackend}; +use sc_client_api::{BlockBackend, HeaderBackend, StateBackend, TrieCacheContext}; use sc_keystore::LocalKeystore; use sc_network::{NetworkStateInfo, PeerId}; use sc_service::Role; @@ -133,7 +133,10 @@ where C::State: StateBackend>, { fn storage(&self, at: H256, key: &[u8]) -> Result>, String> { - let state = self.0.state_at(at.into()).map_err(|e| e.to_string())?; + let state = self + .0 + .state_at(at.into(), TrieCacheContext::Untrusted) + .map_err(|e| e.to_string())?; state.storage(key).map_err(|e| e.to_string()) } } diff --git a/blob/src/types.rs b/blob/src/types.rs index 72496ac8d..bd9c3ae66 100644 --- a/blob/src/types.rs +++ b/blob/src/types.rs @@ -5,8 +5,8 @@ use crate::{ use codec::{Decode, Encode}; use da_runtime::{apis::RuntimeApi, NodeBlock as Block}; use parking_lot::Mutex; -use sc_executor::NativeElseWasmExecutor; -use sc_network::{NetworkPeers, NetworkService, PeerId, ProtocolName, ReputationChange}; +use sc_network::service::traits::NetworkService as NetworkServiceT; +use sc_network::{PeerId, ProtocolName, ReputationChange}; use sc_network_gossip::{MessageIntent, ValidationResult, Validator, ValidatorContext}; use sc_service::TFullClient; use scale_info::TypeInfo; @@ -35,30 +35,31 @@ pub const BLOB_GOSSIP_PROTO: ProtocolName = ProtocolName::Static(BLOB_GOSSIP_PRO /// ExecutorDispatch and FullClient were put here cause we need it for blob service but we cannot have a circular dependency, clean later. /// Maybe put in avail base later. -// Declare an instance of the native executor named `ExecutorDispatch`. Include the wasm binary as -// the equivalent wasm code. -pub struct ExecutorDispatch; - -impl sc_executor::NativeExecutionDispatch for ExecutorDispatch { - type ExtendHostFunctions = ( - frame_benchmarking::benchmarking::HostFunctions, - frame_system::native::hosted_header_builder::hosted_header_builder::HostFunctions, - avail_base::mem_tmp_storage::hosted_mem_tmp_storage::HostFunctions, - da_runtime::kate::native::hosted_kate::HostFunctions, - da_control::extensions::native::hosted_commitment_builder::HostFunctions, - ); - - fn dispatch(method: &str, data: &[u8]) -> Option> { - da_runtime::apis::api::dispatch(method, data) - } - - fn native_version() -> sc_executor::NativeVersion { - da_runtime::native_version() - } -} - +/// Host functions required for da-runtime and Avail node. +#[cfg(not(feature = "runtime-benchmarks"))] +pub type HostFunctions = ( + frame_system::native::hosted_header_builder::hosted_header_builder::HostFunctions, + avail_base::mem_tmp_storage::hosted_mem_tmp_storage::HostFunctions, + da_runtime::kate::native::hosted_kate::HostFunctions, + da_control::extensions::native::hosted_commitment_builder::HostFunctions, + sp_io::SubstrateHostFunctions, +); + +#[cfg(feature = "runtime-benchmarks")] +pub type HostFunctions = ( + frame_benchmarking::benchmarking::HostFunctions, + frame_system::native::hosted_header_builder::hosted_header_builder::HostFunctions, + avail_base::mem_tmp_storage::hosted_mem_tmp_storage::HostFunctions, + da_runtime::kate::native::hosted_kate::HostFunctions, + da_control::extensions::native::hosted_commitment_builder::HostFunctions, + sp_io::SubstrateHostFunctions, +); + +/// A specialized `WasmExecutor` intended to use across substrate node. It provides all required +/// HostFunctions. +pub type RuntimeExecutor = sc_executor::WasmExecutor; /// The full client type definition. -pub type FullClient = TFullClient>; +pub type FullClient = TFullClient; /// The network gossip validator for blob service pub struct BlobGossipValidator { @@ -159,11 +160,7 @@ impl BlobReputationChange { Vec::default() } - pub fn report( - self, - network: &NetworkService, - peer: &PeerId, - ) { + pub fn report(self, network: &dyn NetworkServiceT, peer: &PeerId) { network.report_peer(peer.clone(), self.reputation_change()); } } diff --git a/blob/src/utils.rs b/blob/src/utils.rs index 9efed9e87..64dd8546c 100644 --- a/blob/src/utils.rs +++ b/blob/src/utils.rs @@ -20,6 +20,7 @@ use sp_authority_discovery::AuthorityId; use sp_core::sr25519::{Public, Signature}; use sp_core::H256; use sp_core::{crypto::KeyTypeId, sr25519, twox_128}; +use sp_runtime::generic::Preamble; use sp_runtime::MultiAddress; use sp_runtime::{ key_types, @@ -769,7 +770,10 @@ pub fn zstd_decompress(data: &[u8]) -> Result, std::io::Error> { } pub fn extract_signer_and_nonce(uxt: &UncheckedExtrinsic) -> Option<(AccountId32, u32)> { - let (address, _sig, extra) = uxt.signature.as_ref()?; + let (address, extra) = match &uxt.preamble { + Preamble::Signed(address, _sig, extra) => (address, extra), + _ => return None, + }; let who: AccountId32 = match address { MultiAddress::Id(id) => id.clone(), diff --git a/client/basic-authorship/src/basic_authorship.rs b/client/basic-authorship/src/basic_authorship.rs index acc2d0c76..ac597d1d2 100644 --- a/client/basic-authorship/src/basic_authorship.rs +++ b/client/basic-authorship/src/basic_authorship.rs @@ -37,7 +37,7 @@ use log::{debug, error, info, trace, warn}; use sc_authority_discovery::AuthorityDiscovery; use sc_block_builder::{BlockBuilderApi, BlockBuilderBuilder}; use sc_telemetry::{telemetry, TelemetryHandle, CONSENSUS_INFO}; -use sc_transaction_pool_api::{InPoolTransaction, TransactionPool}; +use sc_transaction_pool_api::{InPoolTransaction, TransactionPool, TxInvalidityReportMap}; use sp_api::{ApiExt, CallApiAt, ProvideRuntimeApi}; use sp_blockchain::{ApplyExtrinsicFailed::Validity, Error::ApplyExtrinsicFailed, HeaderBackend}; use sp_consensus::{DisableProofRecording, EnableProofRecording, ProofRecording, Proposal}; @@ -520,9 +520,9 @@ where let soft_deadline = now + time::Duration::from_micros(self.soft_deadline_percent.mul_floor(left_micros)); let mut skipped = 0; - let mut unqueue_invalid = Vec::new(); + let mut unqueue_invalid = TxInvalidityReportMap::new(); - let mut t1 = self.transaction_pool.ready_at(self.parent_number).fuse(); + let mut t1 = self.transaction_pool.ready_at(self.parent_hash).fuse(); let mut t2 = futures_timer::Delay::new(deadline.saturating_duration_since((self.now)()) / 8).fuse(); @@ -571,7 +571,7 @@ where break EndProposingReason::HitDeadline; } - let pending_tx_data = pending_tx.data().clone(); + let pending_tx_data = (**pending_tx.data()).clone(); let pending_tx_hash = pending_tx.hash().clone(); let block_size = @@ -657,9 +657,13 @@ where } debug!( target: LOG_TARGET, - "[{:?}] Invalid transaction: {}", pending_tx_hash, e + "[{:?}] Invalid transaction: {} at: {}", pending_tx_hash, e, self.parent_hash ); - unqueue_invalid.push(pending_tx_hash); + let error_to_report = match e { + ApplyExtrinsicFailed(Validity(e)) => Some(e), + _ => None, + }; + unqueue_invalid.insert(pending_tx_hash, error_to_report); }, } }; @@ -679,7 +683,9 @@ where }; stop_watch.stop("Get blob txs summary"); - self.transaction_pool.remove_invalid(&unqueue_invalid); + self.transaction_pool + .report_invalid(Some(self.parent_hash), unqueue_invalid) + .await; Ok((end_reason, blob_txs_summary, total_blob_size)) } diff --git a/da-commitment/Cargo.toml b/da-commitment/Cargo.toml index 032ad90f3..627422c79 100644 --- a/da-commitment/Cargo.toml +++ b/da-commitment/Cargo.toml @@ -13,14 +13,14 @@ workspace = true kate = { workspace = true, default-features = false } thiserror-no-std.workspace = true log.workspace = true -anyhow = "1.0" +anyhow = { version = "1.0", default-features = false} + +[dev-dependencies] divan = { version = "0.1"} [features] -default = ["std"] -std = [ - "kate/std", -] +default = [ "std" ] +std = [ "anyhow/std", "kate/std" ] [[bench]] name = "commitment" diff --git a/e2e/Cargo.lock b/e2e/Cargo.lock index 4d0299478..9a5ed0bd2 100644 --- a/e2e/Cargo.lock +++ b/e2e/Cargo.lock @@ -23,18 +23,18 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.24.2" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" dependencies = [ - "gimli 0.31.1", + "gimli 0.32.3", ] [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" @@ -52,19 +52,19 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.2.15", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -72,9 +72,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -85,12 +85,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -109,17 +103,11 @@ dependencies = [ "winapi", ] -[[package]] -name = "anstyle" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" - [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "approx" @@ -141,7 +129,16 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", +] + +[[package]] +name = "ar_archive_writer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c269894b6fe5e9d7ada0cf69b5bf847ff35bc25fc271f08e1d080fce80339a" +dependencies = [ + "object 0.32.2", ] [[package]] @@ -150,21 +147,33 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" dependencies = [ - "ark-ec", - "ark-ff", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bls12-377" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfedac3173d12820a5e0d6cd4de31b49719a74f4a41dc09b6652d0276a3b2cd4" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", ] [[package]] name = "ark-bls12-377-ext" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" +checksum = "e47f3bb6e4ef3c0edb795769fc11469767ce807ed1ccdc979ab101aea2dbf4b5" dependencies = [ - "ark-bls12-377", - "ark-ec", - "ark-models-ext", - "ark-std", + "ark-bls12-377 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-models-ext 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -173,10 +182,22 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bls12-381" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -185,37 +206,51 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-models-ext", - "ark-serialize", - "ark-std", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-models-ext 0.4.1", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bls12-381-ext" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f1dbb23366825700828d373d5fc9c07b7f92253ffed47ab455003b7590d786d" +dependencies = [ + "ark-bls12-381 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-models-ext 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", ] [[package]] name = "ark-bw6-761" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" +checksum = "1cc9cae367e0c3c0b52e3ef13371122752654f45d0212ec7306fb0c1c012cd98" dependencies = [ - "ark-bls12-377", - "ark-ec", - "ark-ff", - "ark-std", + "ark-bls12-377 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", ] [[package]] name = "ark-bw6-761-ext" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" +checksum = "c6e1216f968e21c72fdaba53dbc9e547a8a60cc87b1dc74ac589727e906f9297" dependencies = [ "ark-bw6-761", - "ark-ec", - "ark-ff", - "ark-models-ext", - "ark-std", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-models-ext 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -224,41 +259,62 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", "itertools 0.10.5", "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint", + "num-integer", + "num-traits", "rayon", "zeroize", ] [[package]] name = "ark-ed-on-bls12-377" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" +checksum = "ebbf817b2db27d2787009b2ff76304a5b90b4b01bb16aa8351701fd40f5f37b2" dependencies = [ - "ark-bls12-377", - "ark-ec", - "ark-ff", - "ark-std", + "ark-bls12-377 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", ] [[package]] name = "ark-ed-on-bls12-377-ext" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" +checksum = "05093aa26f017411708e1271047852cc5f58686336f1f1a56fb2df747c3e173a" dependencies = [ - "ark-ec", + "ark-ec 0.5.0", "ark-ed-on-bls12-377", - "ark-ff", - "ark-models-ext", - "ark-std", + "ark-ff 0.5.0", + "ark-models-ext 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -267,10 +323,22 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-std", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1786b2e3832f6f0f7c8d62d5d5a282f6952a1ab99981c54cd52b6ac1d8f02df5" +dependencies = [ + "ark-bls12-381 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -279,11 +347,24 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346" dependencies = [ - "ark-ec", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff", - "ark-models-ext", - "ark-std", + "ark-ec 0.4.2", + "ark-ed-on-bls12-381-bandersnatch 0.4.0", + "ark-ff 0.4.2", + "ark-models-ext 0.4.1", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch-ext" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6dce0c47def6f25cf01022acded4f32732f577187dfcd1268510093ef16ea6" +dependencies = [ + "ark-ec 0.5.0", + "ark-ed-on-bls12-381-bandersnatch 0.5.0", + "ark-ff 0.5.0", + "ark-models-ext 0.5.0", + "ark-std 0.5.0", ] [[package]] @@ -292,10 +373,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "digest 0.10.7", "itertools 0.10.5", @@ -306,6 +387,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec 0.7.6", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint", + "num-traits", + "paste", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.4.2" @@ -316,6 +417,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.111", +] + [[package]] name = "ark-ff-macros" version = "0.4.2" @@ -329,16 +440,42 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "ark-models-ext" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", +] + +[[package]] +name = "ark-models-ext" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff772c552d00e9c092eab0608632342c553abbf6bca984008b55100a9a78a3a6" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", "derivative", ] @@ -348,23 +485,52 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", ] +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + [[package]] name = "ark-scale" version = "0.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "ark-scale" +version = "0.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985c81a9c7b23a72f62b7b20686d5326d2a9956806f37de9ee35cb1238faf0c0" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", "parity-scale-codec", "scale-info", ] @@ -374,10 +540,10 @@ name = "ark-secret-scalar" version = "0.0.2" source = "git+https://github.com/availproject/ring-vrf?tag=locked#b91a9635bacc4fb542296caeef5f801ccf9c1dd1" dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "ark-transcript 0.0.2 (git+https://github.com/availproject/ring-vrf?tag=locked)", "digest 0.10.7", "getrandom_or_panic", @@ -390,10 +556,24 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ - "ark-serialize-derive", - "ark-std", + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec 0.7.6", "digest 0.10.7", "num-bigint", + "rayon", ] [[package]] @@ -407,11 +587,32 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "ark-std" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", "rand 0.8.5", @@ -424,9 +625,9 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "563084372d89271122bd743ef0a608179726f5fad0566008ba55bd0f756489b8" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "digest 0.10.7", "rand_core 0.6.4", "sha3", @@ -437,14 +638,47 @@ name = "ark-transcript" version = "0.0.2" source = "git+https://github.com/availproject/ring-vrf?tag=locked#b91a9635bacc4fb542296caeef5f801ccf9c1dd1" dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] + +[[package]] +name = "ark-transcript" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47c1c928edb9d8ff24cb5dcb7651d3a98494fff3099eee95c2404cd813a9139f" +dependencies = [ + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", "digest 0.10.7", "rand_core 0.6.4", "sha3", ] +[[package]] +name = "ark-vrf" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9501da18569b2afe0eb934fb7afd5a247d238b94116155af4dd068f319adfe6d" +dependencies = [ + "ark-bls12-381 0.5.0", + "ark-ec 0.5.0", + "ark-ed-on-bls12-381-bandersnatch 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "digest 0.10.7", + "rand_chacha 0.3.1", + "sha2 0.10.9", + "w3f-ring-proof", + "zeroize", +] + [[package]] name = "array-bytes" version = "6.2.3" @@ -474,9 +708,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-channel" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", @@ -486,22 +720,23 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.1" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" dependencies = [ "async-task", "concurrent-queue", "fastrand", "futures-lite", + "pin-project-lite", "slab", ] [[package]] name = "async-fs" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" +checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5" dependencies = [ "async-lock", "blocking", @@ -510,28 +745,27 @@ dependencies = [ [[package]] name = "async-io" -version = "2.4.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" dependencies = [ - "async-lock", + "autocfg", "cfg-if", "concurrent-queue", "futures-io", "futures-lite", "parking", "polling", - "rustix 0.38.44", + "rustix 1.1.2", "slab", - "tracing", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "async-lock" -version = "3.4.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ "event-listener", "event-listener-strategy", @@ -551,9 +785,9 @@ dependencies = [ [[package]] name = "async-process" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" dependencies = [ "async-channel", "async-io", @@ -564,15 +798,14 @@ dependencies = [ "cfg-if", "event-listener", "futures-lite", - "rustix 0.38.44", - "tracing", + "rustix 1.1.2", ] [[package]] name = "async-signal" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" +checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" dependencies = [ "async-io", "async-lock", @@ -580,10 +813,10 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.44", + "rustix 1.1.2", "signal-hook-registry", "slab", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -594,13 +827,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.87" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -617,21 +850,21 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "avail-core" version = "0.6.2" -source = "git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da#4a9aebba058228df8a67fa6a7e992b78161f72b1" +source = "git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da#92ae6860cfefee2db8cf04206d869401c7746b30" dependencies = [ - "binary-merkle-tree", + "binary-merkle-tree 13.0.0", "blake2b_simd", - "bounded-collections", - "derive_more 0.99.19", + "bounded-collections 0.2.4", + "derive_more 0.99.20", "ethabi-decode", - "frame-support", + "frame-support 28.0.0", "hash-db", "hash256-std-hasher", "hex", @@ -642,12 +875,12 @@ dependencies = [ "primitive-types 0.12.2", "scale-info", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", - "sp-runtime", + "sp-runtime 31.0.1", "sp-runtime-interface 24.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-trie", + "sp-trie 29.0.0", "static_assertions", "thiserror-no-std", "tiny-keccak", @@ -656,14 +889,14 @@ dependencies = [ [[package]] name = "avail-core" version = "0.6.2" -source = "git+https://github.com/availproject/avail-core?rev=e4d46158444c4155eccea493373e308a5ec7b497#e4d46158444c4155eccea493373e308a5ec7b497" +source = "git+https://github.com/availproject/avail-core?rev=99b9d2a3e8302c418000da3a1b08d23333f087ab#99b9d2a3e8302c418000da3a1b08d23333f087ab" dependencies = [ - "binary-merkle-tree", + "binary-merkle-tree 16.1.0", "blake2b_simd", - "bounded-collections", - "derive_more 0.99.19", + "bounded-collections 0.2.4", + "derive_more 0.99.20", "ethabi-decode", - "frame-support", + "frame-support 43.0.0", "hash-db", "hash256-std-hasher", "hex", @@ -671,15 +904,15 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "primitive-types 0.12.2", + "primitive-types 0.13.1", "scale-info", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", - "sp-runtime", - "sp-runtime-interface 24.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-trie", + "sp-runtime 44.0.0", + "sp-runtime-interface 32.0.0", + "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-trie 41.1.0", "static_assertions", "thiserror-no-std", "tiny-keccak", @@ -700,7 +933,7 @@ dependencies = [ "scale-info", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", ] @@ -709,7 +942,7 @@ name = "avail-rust-core" version = "0.4.0" source = "git+https://github.com/availproject/avail-rust.git?rev=610db1c5bcad3e636e6c3192b80cec95f002c737#610db1c5bcad3e636e6c3192b80cec95f002c737" dependencies = [ - "base64 0.22.1", + "base64", "const-hex", "impl-serde 0.5.0", "parity-scale-codec", @@ -719,26 +952,26 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-crypto-hashing 0.1.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core", "subxt-rpcs", "subxt-signer", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" dependencies = [ - "addr2line 0.24.2", + "addr2line 0.25.1", "cfg-if", "libc", "miniz_oxide", - "object 0.36.7", + "object 0.37.3", "rustc-demangle", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -746,17 +979,17 @@ name = "bandersnatch_vrfs" version = "0.0.4" source = "git+https://github.com/availproject/ring-vrf?tag=locked#b91a9635bacc4fb542296caeef5f801ccf9c1dd1" dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ed-on-bls12-381-bandersnatch 0.4.0", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "dleq_vrf", "rand_chacha 0.3.1", "rand_core 0.6.4", "ring 0.1.0", - "sha2 0.10.8", + "sha2 0.10.9", "sp-ark-bls12-381", "sp-ark-ed-on-bls12-381-bandersnatch", "zeroize", @@ -774,12 +1007,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.22.1" @@ -788,17 +1015,27 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" [[package]] name = "binary-merkle-tree" version = "13.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" +dependencies = [ + "hash-db", + "log", +] + +[[package]] +name = "binary-merkle-tree" +version = "16.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" dependencies = [ "hash-db", "log", + "parity-scale-codec", ] [[package]] @@ -812,9 +1049,9 @@ dependencies = [ [[package]] name = "bip39" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" +checksum = "43d193de1f7487df1914d3a568b772458861d33f9c54249612cc2893d6915054" dependencies = [ "bitcoin_hashes 0.13.0", "rand 0.8.5", @@ -852,7 +1089,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" dependencies = [ "bitcoin-io", - "hex-conservative 0.2.1", + "hex-conservative 0.2.2", ] [[package]] @@ -863,9 +1100,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bitvec" @@ -929,9 +1166,9 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ "async-channel", "async-task", @@ -942,9 +1179,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" dependencies = [ "cc", "glob", @@ -954,9 +1191,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ed0a820ed50891d36358e997d27741a6142e382242df40ff01c89bcdcc7a2b" +checksum = "64ad8a0bed7827f0b07a5d23cec2e58cc02038a99e4ca81616cb2bb2025f804d" dependencies = [ "log", "parity-scale-codec", @@ -964,6 +1201,19 @@ dependencies = [ "serde", ] +[[package]] +name = "bounded-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee8eddd066a8825ec5570528e6880471210fd5d88cb6abbe1cfdd51ca249c33" +dependencies = [ + "jam-codec", + "log", + "parity-scale-codec", + "scale-info", + "serde", +] + [[package]] name = "bs58" version = "0.5.1" @@ -975,9 +1225,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byte-slice-cast" @@ -987,9 +1237,9 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytemuck" -version = "1.23.1" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" [[package]] name = "byteorder" @@ -999,16 +1249,17 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "cc" -version = "1.2.16" +version = "1.2.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a" dependencies = [ + "find-msvc-tools", "shlex", ] @@ -1029,9 +1280,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chacha20" @@ -1046,11 +1297,10 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "num-traits", "windows-link", @@ -1067,32 +1317,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "clap" -version = "4.5.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" -dependencies = [ - "clap_builder", -] - -[[package]] -name = "clap_builder" -version = "4.5.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" -dependencies = [ - "anstyle", - "clap_lex", - "terminal_size", -] - -[[package]] -name = "clap_lex" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" - [[package]] name = "combine" version = "4.6.7" @@ -1108,11 +1332,11 @@ name = "common" version = "0.1.0" source = "git+https://github.com/availproject/ring-proof?tag=locked#6e646ed5e598a1e89130ab63e650c99ab3d6d60e" dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "fflonk", "getrandom_or_panic", "rand_core 0.6.4", @@ -1133,17 +1357,11 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "condtype" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af" - [[package]] name = "const-hex" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6407bff74dea37e0fa3dc1c1c974e5d46405f0c987bf9997a0762adce71eda6" +checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ "cfg-if", "cpufeatures", @@ -1172,16 +1390,16 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", "once_cell", "tiny-keccak", ] [[package]] name = "const_format" -version = "0.2.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" dependencies = [ "const_format_proc_macros", ] @@ -1225,6 +1443,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1260,9 +1488,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -1303,9 +1531,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" @@ -1321,9 +1549,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "rand_core 0.6.4", @@ -1389,7 +1617,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -1397,17 +1625,16 @@ name = "da-commitment" version = "0.1.0" dependencies = [ "anyhow", - "divan", - "kate 0.9.2 (git+https://github.com/availproject/avail-core?rev=e4d46158444c4155eccea493373e308a5ec7b497)", + "kate 0.9.2 (git+https://github.com/availproject/avail-core?rev=99b9d2a3e8302c418000da3a1b08d23333f087ab)", "log", "thiserror-no-std", ] [[package]] name = "darling" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ "darling_core", "darling_macro", @@ -1415,27 +1642,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "darling_macro" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -1445,14 +1672,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", + "pem-rfc7468", "zeroize", ] [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", ] @@ -1487,31 +1715,31 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "derive-where" -version = "1.2.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "derive_more" -version = "0.99.19" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -1531,7 +1759,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -1563,32 +1791,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", -] - -[[package]] -name = "divan" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a405457ec78b8fe08b0e32b4a3570ab5dff6dd16eb9e76a5ee0a9d9cbd898933" -dependencies = [ - "cfg-if", - "clap", - "condtype", - "divan-macros", - "libc", - "regex-lite", -] - -[[package]] -name = "divan-macros" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9556bc800956545d6420a640173e5ba7dfa82f38d3ea5a167eb555bc69ac3323" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -1596,12 +1799,12 @@ name = "dleq_vrf" version = "0.0.2" source = "git+https://github.com/availproject/ring-vrf?tag=locked#b91a9635bacc4fb542296caeef5f801ccf9c1dd1" dependencies = [ - "ark-ec", - "ark-ff", - "ark-scale", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-scale 0.0.12", "ark-secret-scalar", - "ark-serialize", - "ark-std", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "ark-transcript 0.0.2 (git+https://github.com/availproject/ring-vrf?tag=locked)", "arrayvec 0.7.6", "zeroize", @@ -1628,7 +1831,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.99", + "syn 2.0.111", "termcolor", "toml", "walkdir", @@ -1658,14 +1861,14 @@ checksum = "7e8671d54058979a37a26f3511fbf8d198ba1aa35ffb202c42587d918d77213a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "dyn-clone" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "e2e" @@ -1677,7 +1880,7 @@ dependencies = [ "kate 0.9.2 (git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da)", "parity-scale-codec", "serde", - "sp-crypto-hashing 0.1.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "tokio", ] @@ -1692,6 +1895,7 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", + "serdect", "signature", "spki", ] @@ -1708,38 +1912,51 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", "serde", - "sha2 0.10.8", + "sha2 0.10.9", "subtle", "zeroize", ] [[package]] name = "ed25519-zebra" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +checksum = "0017d969298eec91e3db7a2985a8cab4df6341d86e6f3a6f5878b13fb7846bc9" dependencies = [ "curve25519-dalek", "ed25519", - "hashbrown 0.14.5", - "hex", + "hashbrown 0.15.5", + "pkcs8", "rand_core 0.6.4", - "sha2 0.10.8", + "sha2 0.10.9", + "subtle", "zeroize", ] +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "either" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elliptic-curve" @@ -1756,10 +1973,31 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", + "serdect", "subtle", "zeroize", ] +[[package]] +name = "enum-ordinalize" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "environmental" version = "1.1.4" @@ -1774,12 +2012,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.10" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -1816,9 +2054,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -1827,9 +2065,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ "event-listener", "pin-project-lite", @@ -1847,7 +2085,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -1877,11 +2115,11 @@ name = "fflonk" version = "0.1.0" source = "git+https://github.com/w3f/fflonk?rev=1e854f35e9a65d08b11a86291405cdc95baa0a35#1e854f35e9a65d08b11a86291405cdc95baa0a35" dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "merlin", ] @@ -1901,6 +2139,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1921,9 +2165,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foreign-types" @@ -1942,9 +2186,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -1960,7 +2204,7 @@ dependencies = [ "scale-decode", "scale-info", "scale-type-resolver", - "sp-crypto-hashing 0.1.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1998,10 +2242,22 @@ dependencies = [ "scale-info", ] +[[package]] +name = "frame-metadata" +version = "23.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8c26fcb0454397c522c05fdad5380c4e622f8a875638af33bff5a320d1fc965" +dependencies = [ + "cfg-if", + "parity-scale-codec", + "scale-info", + "serde", +] + [[package]] name = "frame-support" version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "aquamarine", "array-bytes", @@ -2009,7 +2265,7 @@ dependencies = [ "docify", "environmental", "frame-metadata 16.0.0", - "frame-support-procedural", + "frame-support-procedural 23.0.0", "impl-trait-for-tuples", "k256", "log", @@ -2020,64 +2276,147 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-crypto-hashing-proc-macro", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-crypto-hashing-proc-macro 0.0.0", "sp-debug-derive 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-metadata-ir", - "sp-runtime", - "sp-staking", - "sp-state-machine", + "sp-genesis-builder 0.7.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-metadata-ir 0.6.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-state-machine 0.35.0", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "sp-tracing 16.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-weights", + "sp-weights 27.0.0", "static_assertions", "tt-call", ] +[[package]] +name = "frame-support" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "aquamarine", + "array-bytes", + "binary-merkle-tree 16.1.0", + "bitflags 1.3.2", + "docify", + "environmental", + "frame-metadata 23.0.0", + "frame-support-procedural 35.0.0", + "impl-trait-for-tuples", + "k256", + "log", + "macro_magic", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "serde_json", + "sp-api 39.0.0", + "sp-arithmetic 28.0.0", + "sp-core 38.1.0", + "sp-crypto-hashing-proc-macro 0.1.0", + "sp-debug-derive 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-genesis-builder 0.20.0", + "sp-inherents 39.0.0", + "sp-io 43.0.0", + "sp-metadata-ir 0.12.0", + "sp-runtime 44.0.0", + "sp-staking 41.0.0", + "sp-state-machine 0.48.0", + "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-tracing 19.0.0", + "sp-trie 41.1.0", + "sp-weights 33.1.0", + "tt-call", +] + [[package]] name = "frame-support-procedural" version = "23.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse 0.1.5", "expander", - "frame-support-procedural-tools", + "frame-support-procedural-tools 10.0.0", "itertools 0.10.5", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", "sp-crypto-hashing 0.0.0", - "syn 2.0.99", + "syn 2.0.111", +] + +[[package]] +name = "frame-support-procedural" +version = "35.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "Inflector", + "cfg-expr", + "derive-syn-parse 0.2.0", + "docify", + "expander", + "frame-support-procedural-tools 13.0.1", + "itertools 0.11.0", + "macro_magic", + "proc-macro-warning", + "proc-macro2", + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "syn 2.0.111", ] [[package]] name = "frame-support-procedural-tools" version = "10.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" +dependencies = [ + "frame-support-procedural-tools-derive 11.0.0", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "13.0.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" dependencies = [ - "frame-support-procedural-tools-derive", + "frame-support-procedural-tools-derive 12.0.0", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "12.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -2146,9 +2485,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ "fastrand", "futures-core", @@ -2165,7 +2504,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -2217,25 +2556,25 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", ] [[package]] name = "getrandom" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", + "r-efi", + "wasip2", ] [[package]] @@ -2261,15 +2600,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "group" @@ -2282,6 +2621,25 @@ dependencies = [ "subtle", ] +[[package]] +name = "h2" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.12.1", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "hash-db" version = "0.16.0" @@ -2312,7 +2670,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", ] [[package]] @@ -2321,22 +2679,28 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "allocator-api2", "serde", ] [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + [[package]] name = "hermit-abi" version = "0.3.9" @@ -2345,9 +2709,9 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -2366,9 +2730,9 @@ checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" [[package]] name = "hex-conservative" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" dependencies = [ "arrayvec 0.7.6", ] @@ -2421,12 +2785,11 @@ dependencies = [ [[package]] name = "http" -version = "1.2.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -2442,12 +2805,12 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", + "futures-core", "http", "http-body", "pin-project-lite", @@ -2459,20 +2822,30 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + [[package]] name = "hyper" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", + "h2", "http", "http-body", "httparse", + "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -2496,11 +2869,11 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.14" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-channel", "futures-core", @@ -2520,9 +2893,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -2544,21 +2917,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -2567,99 +2941,61 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" dependencies = [ - "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", + "icu_locale_core", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.99", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -2668,9 +3004,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -2679,9 +3015,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -2705,6 +3041,17 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-num-traits" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "803d15461ab0dcc56706adf266158acbc44ccf719bf7d0af30705f58b90a4b8c" +dependencies = [ + "integer-sqrt", + "num-traits", + "uint 0.10.0", +] + [[package]] name = "impl-serde" version = "0.4.0" @@ -2731,7 +3078,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -2766,12 +3113,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.1" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.16.1", ] [[package]] @@ -2817,9 +3164,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ "memchr", "serde", @@ -2834,6 +3181,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.13.0" @@ -2850,18 +3206,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] -name = "jni" -version = "0.19.0" +name = "jam-codec" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "cb948eace373d99de60501a02fb17125d30ac632570de20dccc74370cdd611b9" dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror 1.0.69", - "walkdir", -] + "arrayvec 0.7.6", + "bitvec", + "byte-slice-cast", + "const_format", + "impl-trait-for-tuples", + "jam-codec-derive", + "rustversion", + "serde", +] + +[[package]] +name = "jam-codec-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319af585c4c8a6b5552a52b7787a1ab3e4d59df7614190b1f85b9b842488789d" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] [[package]] name = "jni-sys" @@ -2871,9 +3257,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -2881,9 +3267,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.24.8" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834af00800e962dee8f7bfc0f60601de215e73e78e5497d733a2919da837d3c8" +checksum = "e281ae70cc3b98dac15fced3366a880949e65fc66e345ce857a5682d152f3e62" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2893,11 +3279,11 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.24.8" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def0fd41e2f53118bd1620478d12305b2c75feef57ea1f93ef70568c98081b7e" +checksum = "cc4280b709ac3bb5e16cf3bad5056a0ec8df55fa89edfe996361219aadc2c7ea" dependencies = [ - "base64 0.22.1", + "base64", "futures-util", "http", "jsonrpsee-core", @@ -2916,9 +3302,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.24.8" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76637f6294b04e747d68e69336ef839a3493ca62b35bf488ead525f7da75c5bb" +checksum = "348ee569eaed52926b5e740aae20863762b16596476e943c9e415a6479021622" dependencies = [ "async-trait", "futures-timer", @@ -2936,9 +3322,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.24.8" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddb81adb1a5ae9182df379e374a79e24e992334e7346af4d065ae5b2acb8d4c6" +checksum = "b0f05e0028e55b15dbd2107163b3c744cd3bb4474f193f95d9708acbf5677e44" dependencies = [ "http", "serde", @@ -2948,9 +3334,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.24.8" +version = "0.24.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4f3642a292f5b76d8a16af5c88c16a0860f2ccc778104e5c848b28183d9538" +checksum = "78fc744f17e7926d57f478cf9ca6e1ee5d8332bf0514860b1a3cdf1742e614cc" dependencies = [ "http", "jsonrpsee-client-transport", @@ -2969,16 +3355,17 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.8", + "serdect", + "sha2 0.10.9", ] [[package]] name = "kate" version = "0.9.2" -source = "git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da#4a9aebba058228df8a67fa6a7e992b78161f72b1" +source = "git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da#92ae6860cfefee2db8cf04206d869401c7746b30" dependencies = [ "avail-core 0.6.2 (git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da)", - "derive_more 0.99.19", + "derive_more 0.99.20", "hex", "hex-literal", "kate-recovery 0.10.0 (git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da)", @@ -3001,13 +3388,13 @@ dependencies = [ [[package]] name = "kate" version = "0.9.2" -source = "git+https://github.com/availproject/avail-core?rev=e4d46158444c4155eccea493373e308a5ec7b497#e4d46158444c4155eccea493373e308a5ec7b497" +source = "git+https://github.com/availproject/avail-core?rev=99b9d2a3e8302c418000da3a1b08d23333f087ab#99b9d2a3e8302c418000da3a1b08d23333f087ab" dependencies = [ - "avail-core 0.6.2 (git+https://github.com/availproject/avail-core?rev=e4d46158444c4155eccea493373e308a5ec7b497)", - "derive_more 0.99.19", + "avail-core 0.6.2 (git+https://github.com/availproject/avail-core?rev=99b9d2a3e8302c418000da3a1b08d23333f087ab)", + "derive_more 0.99.20", "hex", "hex-literal", - "kate-recovery 0.10.0 (git+https://github.com/availproject/avail-core?rev=e4d46158444c4155eccea493373e308a5ec7b497)", + "kate-recovery 0.10.0 (git+https://github.com/availproject/avail-core?rev=99b9d2a3e8302c418000da3a1b08d23333f087ab)", "log", "lru 0.7.8", "nalgebra", @@ -3019,7 +3406,7 @@ dependencies = [ "rayon", "serde", "serde_json", - "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", + "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", "static_assertions", "thiserror-no-std", ] @@ -3027,10 +3414,10 @@ dependencies = [ [[package]] name = "kate-recovery" version = "0.10.0" -source = "git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da#4a9aebba058228df8a67fa6a7e992b78161f72b1" +source = "git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da#92ae6860cfefee2db8cf04206d869401c7746b30" dependencies = [ "avail-core 0.6.2 (git+https://github.com/availproject/avail-core?branch=ghali%2Finfinity-da)", - "derive_more 0.99.19", + "derive_more 0.99.20", "hex-literal", "log", "num-traits", @@ -3048,10 +3435,10 @@ dependencies = [ [[package]] name = "kate-recovery" version = "0.10.0" -source = "git+https://github.com/availproject/avail-core?rev=e4d46158444c4155eccea493373e308a5ec7b497#e4d46158444c4155eccea493373e308a5ec7b497" +source = "git+https://github.com/availproject/avail-core?rev=99b9d2a3e8302c418000da3a1b08d23333f087ab#99b9d2a3e8302c418000da3a1b08d23333f087ab" dependencies = [ - "avail-core 0.6.2 (git+https://github.com/availproject/avail-core?rev=e4d46158444c4155eccea493373e308a5ec7b497)", - "derive_more 0.99.19", + "avail-core 0.6.2 (git+https://github.com/availproject/avail-core?rev=99b9d2a3e8302c418000da3a1b08d23333f087ab)", + "derive_more 0.99.20", "hex-literal", "log", "num-traits", @@ -3061,7 +3448,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "serde", - "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", + "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", "static_assertions", "thiserror-no-std", ] @@ -3093,24 +3480,24 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.174" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libm" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libsecp256k1" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ "arrayref", - "base64 0.13.1", + "base64", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -3157,12 +3544,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - [[package]] name = "linux-raw-sys" version = "0.11.0" @@ -3171,25 +3552,24 @@ checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.26" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" dependencies = [ "serde", ] @@ -3209,7 +3589,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.2", + "hashbrown 0.15.5", ] [[package]] @@ -3230,7 +3610,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -3244,7 +3624,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -3255,7 +3635,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -3266,7 +3646,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -3280,11 +3660,11 @@ dependencies = [ [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata 0.4.13", ] [[package]] @@ -3299,17 +3679,17 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memfd" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" dependencies = [ - "rustix 0.38.44", + "rustix 1.1.2", ] [[package]] @@ -3330,6 +3710,17 @@ dependencies = [ "hash-db", ] +[[package]] +name = "memory-db" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e300c54e3239a86f9c61cc63ab0f03862eb40b1c6e065dc6fd6ceaeff6da93d" +dependencies = [ + "foldhash", + "hash-db", + "hashbrown 0.15.5", +] + [[package]] name = "merlin" version = "3.0.0" @@ -3350,22 +3741,22 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -3401,7 +3792,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -3430,12 +3821,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "overload", - "winapi", + "windows-sys 0.61.2", ] [[package]] @@ -3471,7 +3861,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -3515,11 +3905,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi 0.5.2", "libc", ] @@ -3537,18 +3927,27 @@ dependencies = [ [[package]] name = "object" -version = "0.36.7" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "opaque-debug" @@ -3558,11 +3957,11 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "cfg-if", "foreign-types", "libc", @@ -3579,7 +3978,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -3590,9 +3989,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" dependencies = [ "cc", "libc", @@ -3601,10 +4000,17 @@ dependencies = [ ] [[package]] -name = "overload" -version = "0.1.1" +name = "parity-bip39" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] [[package]] name = "parity-scale-codec" @@ -3632,7 +4038,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -3649,9 +4055,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -3659,15 +4065,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -3707,11 +4113,26 @@ dependencies = [ "password-hash", ] +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "picosimd" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "af35c838647fef3d6d052e27006ef88ea162336eee33063c50a63f163c18cdeb" [[package]] name = "pin-project" @@ -3730,7 +4151,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -3778,13 +4199,31 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49a5794b695626ba70d29e66e3f4f4835767452a6723f3a0bc20884b07088fe8" +[[package]] +name = "polkavm-common" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed1b408db93d4f49f5c651a7844682b9d7a561827b4dc6202c10356076c055c9" +dependencies = [ + "picosimd", +] + [[package]] name = "polkavm-derive" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95282a203ae1f6828a04ff334145c3f6dc718bba6d3959805d273358b45eab93" dependencies = [ - "polkavm-derive-impl-macro", + "polkavm-derive-impl-macro 0.26.0", +] + +[[package]] +name = "polkavm-derive" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acb4463fb0b9dbfafdc1d1a1183df4bf7afa3350d124f29d5700c6bee54556b5" +dependencies = [ + "polkavm-derive-impl-macro 0.30.0", ] [[package]] @@ -3793,10 +4232,22 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6069dc7995cde6e612b868a02ce48b54397c6d2582bd1b97b63aabbe962cd779" dependencies = [ - "polkavm-common", + "polkavm-common 0.26.0", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993ff45b972e09babe68adce7062c3c38a84b9f50f07b7caf393a023eaa6c74a" +dependencies = [ + "polkavm-common 0.30.0", + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] @@ -3805,23 +4256,32 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581d34cafec741dc5ffafbb341933c205b6457f3d76257a9d99fb56687219c91" dependencies = [ - "polkavm-derive-impl", - "syn 2.0.99", + "polkavm-derive-impl 0.26.0", + "syn 2.0.111", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4f5352e13c1ca5f0e4d7b4a804fbb85b0e02c45cae435d101fe71081bc8ed8" +dependencies = [ + "polkavm-derive-impl 0.30.0", + "syn 2.0.111", ] [[package]] name = "polling" -version = "3.7.4" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.4.0", + "hermit-abi 0.5.2", "pin-project-lite", - "rustix 0.38.44", - "tracing", - "windows-sys 0.59.0", + "rustix 1.1.2", + "windows-sys 0.61.2", ] [[package]] @@ -3829,15 +4289,15 @@ name = "poly-multiproof" version = "0.1.1" source = "git+https://github.com/availproject/poly-multiproof?rev=c2794e32ca040e6b2544abde18b7187af3e66feb#c2794e32ca040e6b2544abde18b7187af3e66feb" dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "blst", "merlin", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -3851,6 +4311,15 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "potential_utf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -3859,21 +4328,21 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ "zerocopy", ] [[package]] name = "prettyplease" -version = "0.2.30" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1ccf34da56fc294e7d4ccf69a85992b7dfb826b7cf57bac6a70bba3494cc08a" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -3897,6 +4366,7 @@ checksum = "d15600a7d856470b7d278b3fe0e311fe28c2526348549f8ef2ff7db3299c87f5" dependencies = [ "fixed-hash", "impl-codec 0.7.1", + "impl-num-traits", "impl-serde 0.5.0", "scale-info", "uint 0.10.0", @@ -3904,11 +4374,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit", + "toml_edit 0.23.7", ] [[package]] @@ -3943,25 +4413,39 @@ checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] +[[package]] +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot", + "thiserror 1.0.69", +] + [[package]] name = "proptest" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb0be07becd10686a0bb407298fb425360a5c44a663774406340c59a22de4ce" +checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", @@ -3971,22 +4455,29 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f" +checksum = "d11f2fedc3b7dafdc2851bc52f277377c5473d378859be234bc7ebb593144d01" dependencies = [ + "ar_archive_writer", "cc", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -4039,7 +4530,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", ] [[package]] @@ -4065,9 +4556,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -4075,9 +4566,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -4085,43 +4576,43 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.10" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", ] [[package]] name = "ref-cast" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata 0.4.13", + "regex-syntax 0.8.8", ] [[package]] @@ -4135,21 +4626,15 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax 0.8.8", ] -[[package]] -name = "regex-lite" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" - [[package]] name = "regex-syntax" version = "0.6.29" @@ -4158,17 +4643,17 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-core", "http", @@ -4213,11 +4698,11 @@ name = "ring" version = "0.1.0" source = "git+https://github.com/availproject/ring-proof?tag=locked#6e646ed5e598a1e89130ab63e650c99ab3d6d60e" dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", "ark-transcript 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.7.6", "blake2", @@ -4227,13 +4712,13 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.11" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "libc", "untrusted", "windows-sys 0.52.0", @@ -4241,9 +4726,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -4280,41 +4765,28 @@ dependencies = [ "windows-sys 0.45.0", ] -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.9.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - [[package]] name = "rustix" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.11.0", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.23" +version = "0.23.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" dependencies = [ "log", "once_cell", - "ring 0.17.11", + "ring 0.17.14", "rustls-pki-types", "rustls-webpki", "subtle", @@ -4323,39 +4795,32 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.7.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" dependencies = [ "openssl-probe", - "rustls-pemfile", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.5.1", ] [[package]] -name = "rustls-pemfile" -version = "2.2.0" +name = "rustls-pki-types" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +checksum = "708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c" dependencies = [ - "rustls-pki-types", + "zeroize", ] -[[package]] -name = "rustls-pki-types" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" - [[package]] name = "rustls-platform-verifier" -version = "0.3.4" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" +checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" dependencies = [ - "core-foundation", + "core-foundation 0.10.1", "core-foundation-sys", "jni", "log", @@ -4364,10 +4829,10 @@ dependencies = [ "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework", + "security-framework 3.5.1", "security-framework-sys", - "webpki-roots", - "winapi", + "webpki-root-certs 0.26.11", + "windows-sys 0.59.0", ] [[package]] @@ -4378,20 +4843,20 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" dependencies = [ - "ring 0.17.11", + "ring 0.17.14", "rustls-pki-types", "untrusted", ] [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ruzstd" @@ -4400,7 +4865,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more 0.99.19", + "derive_more 0.99.20", ] [[package]] @@ -4450,9 +4915,9 @@ dependencies = [ [[package]] name = "scale-decode" -version = "0.16.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d78196772d25b90a98046794ce0fe2588b39ebdfbdc1e45b4c6c85dd43bebad" +checksum = "8d6ed61699ad4d54101ab5a817169259b5b0efc08152f8632e61482d8a27ca3d" dependencies = [ "parity-scale-codec", "primitive-types 0.13.1", @@ -4460,19 +4925,19 @@ dependencies = [ "scale-decode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "scale-decode-derive" -version = "0.16.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4b54a1211260718b92832b661025d1f1a4b6930fbadd6908e00edd265fa5f7" +checksum = "65cb245f7fdb489e7ba43a616cbd34427fe3ba6fe0edc1d0d250085e6c84f3ec" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -4487,7 +4952,7 @@ dependencies = [ "scale-encode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] @@ -4500,7 +4965,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -4526,7 +4991,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -4541,9 +5006,9 @@ dependencies = [ [[package]] name = "scale-value" -version = "0.18.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca8b26b451ecb7fd7b62b259fa28add63d12ec49bbcac0e01fcb4b5ae0c09aa" +checksum = "884aab179aba344c67ddcd1d7dd8e3f8fee202f2e570d97ec34ec8688442a5b3" dependencies = [ "either", "parity-scale-codec", @@ -4551,16 +5016,16 @@ dependencies = [ "scale-decode", "scale-encode", "scale-type-resolver", - "thiserror 2.0.12", + "thiserror 2.0.17", ] [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4569,16 +5034,16 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "cfg-if", "hashbrown 0.13.2", ] [[package]] name = "schnorrkel" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" +checksum = "6e9fcb6c2e176e86ec703e22560d99d65a5ee9056ae45a08e13e84ebf796296f" dependencies = [ "aead", "arrayref", @@ -4588,7 +5053,7 @@ dependencies = [ "merlin", "rand_core 0.6.4", "serde_bytes", - "sha2 0.10.8", + "sha2 0.10.9", "subtle", "zeroize", ] @@ -4608,7 +5073,7 @@ dependencies = [ "password-hash", "pbkdf2 0.12.2", "salsa20", - "sha2 0.10.8", + "sha2 0.10.9", ] [[package]] @@ -4621,6 +5086,7 @@ dependencies = [ "der", "generic-array", "pkcs8", + "serdect", "subtle", "zeroize", ] @@ -4687,19 +5153,31 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.0", - "core-foundation", + "bitflags 2.10.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +dependencies = [ + "bitflags 2.10.0", + "core-foundation 0.10.1", "core-foundation-sys", "libc", - "num-bigint", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -4707,15 +5185,15 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "serde" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -4723,43 +5201,45 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.16" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "364fec0df39c49a083c9a8a18a23a6bcfd9af130fe9fe321d18520a0d113e09e" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" dependencies = [ "serde", + "serde_core", ] [[package]] name = "serde_core" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] @@ -4783,6 +5263,16 @@ dependencies = [ "serde", ] +[[package]] +name = "serdect" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +dependencies = [ + "base16ct", + "serde", +] + [[package]] name = "sha1" version = "0.10.6" @@ -4809,9 +5299,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -4845,9 +5335,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" dependencies = [ "libc", ] @@ -4880,6 +5370,12 @@ name = "simple-mermaid" version = "0.1.0" source = "git+https://github.com/kianenigma/simple-mermaid.git?rev=e48b187bcfd5cc75111acd9d241f1bd36604344b#e48b187bcfd5cc75111acd9d241f1bd36604344b" +[[package]] +name = "simple-mermaid" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" + [[package]] name = "siphasher" version = "1.0.1" @@ -4888,18 +5384,15 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" -version = "1.14.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smol" @@ -4927,13 +5420,13 @@ dependencies = [ "arrayvec 0.7.6", "async-lock", "atomic-take", - "base64 0.22.1", + "base64", "bip39", "blake2-rfc", "bs58", "chacha20", "crossbeam-queue", - "derive_more 0.99.19", + "derive_more 0.99.20", "ed25519-zebra", "either", "event-listener", @@ -4960,7 +5453,7 @@ dependencies = [ "schnorrkel", "serde", "serde_json", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "siphasher", "slab", @@ -4980,10 +5473,10 @@ checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" dependencies = [ "async-channel", "async-lock", - "base64 0.22.1", + "base64", "blake2-rfc", "bs58", - "derive_more 0.99.19", + "derive_more 0.99.20", "either", "event-listener", "fnv", @@ -5010,12 +5503,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.10" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -5024,7 +5517,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures", "httparse", @@ -5036,28 +5529,50 @@ dependencies = [ [[package]] name = "sp-api" version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "hash-db", "log", "parity-scale-codec", "scale-info", - "sp-api-proc-macro", - "sp-core", + "sp-api-proc-macro 15.0.0", + "sp-core 28.0.0", "sp-externalities 0.25.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-metadata-ir", - "sp-runtime", - "sp-state-machine", + "sp-metadata-ir 0.6.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-trie", - "sp-version", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-api" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "docify", + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro 25.0.0", + "sp-core 38.1.0", + "sp-externalities 0.30.0", + "sp-metadata-ir 0.12.0", + "sp-runtime 44.0.0", + "sp-runtime-interface 32.0.0", + "sp-state-machine 0.48.0", + "sp-trie 41.1.0", + "sp-version 42.0.0", "thiserror 1.0.69", ] [[package]] name = "sp-api-proc-macro" version = "15.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "Inflector", "blake2", @@ -5065,26 +5580,52 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", +] + +[[package]] +name = "sp-api-proc-macro" +version = "25.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "Inflector", + "blake2", + "expander", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] name = "sp-application-crypto" version = "30.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", + "sp-core 28.0.0", + "sp-io 30.0.0", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", ] +[[package]] +name = "sp-application-crypto" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 38.1.0", + "sp-io 43.0.0", +] + [[package]] name = "sp-arithmetic" version = "23.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "integer-sqrt", "num-traits", @@ -5095,12 +5636,26 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "sp-arithmetic" +version = "28.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "docify", + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "static_assertions", +] + [[package]] name = "sp-ark-bls12-381" version = "0.4.2" source = "git+https://github.com/paritytech/arkworks-substrate#f08093a5f7c32778eae1295430ec064dccd062a6" dependencies = [ - "ark-bls12-381-ext", + "ark-bls12-381-ext 0.4.1", "sp-crypto-ec-utils", ] @@ -5109,21 +5664,21 @@ name = "sp-ark-ed-on-bls12-381-bandersnatch" version = "0.4.2" source = "git+https://github.com/paritytech/arkworks-substrate#f08093a5f7c32778eae1295430ec064dccd062a6" dependencies = [ - "ark-ed-on-bls12-381-bandersnatch-ext", + "ark-ed-on-bls12-381-bandersnatch-ext 0.4.1", "sp-crypto-ec-utils", ] [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "array-bytes", "bandersnatch_vrfs", "bip39", "bitflags 1.3.2", "blake2", - "bounded-collections", + "bounded-collections 0.2.4", "bs58", "dyn-clonable", "ed25519-zebra", @@ -5152,7 +5707,54 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "sp-storage 19.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "ss58-registry", - "substrate-bip39", + "substrate-bip39 0.4.6", + "thiserror 1.0.69", + "tracing", + "w3f-bls", + "zeroize", +] + +[[package]] +name = "sp-core" +version = "38.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "ark-vrf", + "array-bytes", + "bitflags 1.3.2", + "blake2", + "bounded-collections 0.3.2", + "bs58", + "dyn-clone", + "ed25519-zebra", + "futures", + "hash-db", + "hash256-std-hasher", + "impl-serde 0.5.0", + "itertools 0.11.0", + "k256", + "libsecp256k1", + "log", + "merlin", + "parity-bip39", + "parity-scale-codec", + "parking_lot", + "paste", + "primitive-types 0.13.1", + "rand 0.8.5", + "scale-info", + "schnorrkel", + "secp256k1 0.28.2", + "secrecy 0.8.0", + "serde", + "sha2 0.10.9", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-debug-derive 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-externalities 0.30.0", + "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-storage 22.0.0", + "ss58-registry", + "substrate-bip39 0.6.0", "thiserror 1.0.69", "tracing", "w3f-bls", @@ -5162,32 +5764,32 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk#4331b282ecc6b6e911eadb322c600cbea2c4541a" +source = "git+https://github.com/paritytech/polkadot-sdk#cb4262e9bc59588f508c2dbee7352db9d4dac583" dependencies = [ - "ark-bls12-377", + "ark-bls12-377 0.5.0", "ark-bls12-377-ext", - "ark-bls12-381", - "ark-bls12-381-ext", + "ark-bls12-381 0.5.0", + "ark-bls12-381-ext 0.5.0", "ark-bw6-761", "ark-bw6-761-ext", - "ark-ec", + "ark-ec 0.5.0", "ark-ed-on-bls12-377", "ark-ed-on-bls12-377-ext", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ed-on-bls12-381-bandersnatch-ext", - "ark-scale", + "ark-ed-on-bls12-381-bandersnatch 0.5.0", + "ark-ed-on-bls12-381-bandersnatch-ext 0.5.0", + "ark-scale 0.0.13", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] name = "sp-crypto-hashing" version = "0.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "twox-hash", ] @@ -5201,7 +5803,20 @@ dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.8", + "sha2 0.10.9", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.9", "sha3", "twox-hash", ] @@ -5209,37 +5824,57 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "quote", "sp-crypto-hashing 0.0.0", - "syn 2.0.99", + "syn 2.0.111", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "syn 2.0.111", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#4331b282ecc6b6e911eadb322c600cbea2c4541a" +source = "git+https://github.com/paritytech/polkadot-sdk#cb4262e9bc59588f508c2dbee7352db9d4dac583" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "environmental", "parity-scale-codec", @@ -5250,42 +5885,77 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk#4331b282ecc6b6e911eadb322c600cbea2c4541a" +source = "git+https://github.com/paritytech/polkadot-sdk#cb4262e9bc59588f508c2dbee7352db9d4dac583" dependencies = [ "environmental", "parity-scale-codec", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] +[[package]] +name = "sp-externalities" +version = "0.30.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 22.0.0", +] + [[package]] name = "sp-genesis-builder" version = "0.7.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "serde_json", - "sp-api", - "sp-runtime", + "sp-api 26.0.0", + "sp-runtime 31.0.1", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", ] +[[package]] +name = "sp-genesis-builder" +version = "0.20.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde_json", + "sp-api 39.0.0", + "sp-runtime 44.0.0", +] + [[package]] name = "sp-inherents" version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime", + "sp-runtime 31.0.1", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "thiserror 1.0.69", ] +[[package]] +name = "sp-inherents" +version = "39.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime 44.0.0", + "thiserror 1.0.69", +] + [[package]] name = "sp-io" version = "30.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "bytes", "ed25519-dalek", @@ -5294,15 +5964,41 @@ dependencies = [ "parity-scale-codec", "rustversion", "secp256k1 0.28.2", - "sp-core", + "sp-core 28.0.0", "sp-crypto-hashing 0.0.0", "sp-externalities 0.25.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-keystore", + "sp-keystore 0.34.0", "sp-runtime-interface 24.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-state-machine", + "sp-state-machine 0.35.0", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "sp-tracing 16.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-trie", + "sp-trie 29.0.0", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-io" +version = "43.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "bytes", + "docify", + "ed25519-dalek", + "libsecp256k1", + "log", + "parity-scale-codec", + "polkavm-derive 0.26.0", + "rustversion", + "secp256k1 0.28.2", + "sp-core 38.1.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-externalities 0.30.0", + "sp-keystore 0.44.1", + "sp-runtime-interface 32.0.0", + "sp-state-machine 0.48.0", + "sp-tracing 19.0.0", + "sp-trie 41.1.0", "tracing", "tracing-core", ] @@ -5310,19 +6006,30 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.34.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "parity-scale-codec", "parking_lot", - "sp-core", + "sp-core 28.0.0", "sp-externalities 0.25.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "thiserror 1.0.69", ] +[[package]] +name = "sp-keystore" +version = "0.44.1" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "parity-scale-codec", + "parking_lot", + "sp-core 38.1.0", + "sp-externalities 0.30.0", +] + [[package]] name = "sp-metadata-ir" version = "0.6.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "frame-metadata 16.0.0", "parity-scale-codec", @@ -5330,20 +6037,39 @@ dependencies = [ "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", ] +[[package]] +name = "sp-metadata-ir" +version = "0.12.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "frame-metadata 23.0.0", + "parity-scale-codec", + "scale-info", +] + [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "backtrace", "lazy_static", "regex", ] +[[package]] +name = "sp-panic-handler" +version = "13.0.2" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "backtrace", + "regex", +] + [[package]] name = "sp-runtime" version = "31.0.1" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "docify", "either", @@ -5355,19 +6081,48 @@ dependencies = [ "rand 0.8.5", "scale-info", "serde", - "simple-mermaid", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-io", + "simple-mermaid 0.1.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-weights", + "sp-weights 27.0.0", +] + +[[package]] +name = "sp-runtime" +version = "44.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "binary-merkle-tree 16.1.0", + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "num-traits", + "parity-scale-codec", + "paste", + "rand 0.8.5", + "scale-info", + "serde", + "simple-mermaid 0.1.1", + "sp-application-crypto 43.0.0", + "sp-arithmetic 28.0.0", + "sp-core 38.1.0", + "sp-io 43.0.0", + "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-trie 41.1.0", + "sp-weights 33.1.0", + "tracing", + "tuplex", ] [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -5385,12 +6140,12 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#4331b282ecc6b6e911eadb322c600cbea2c4541a" +source = "git+https://github.com/paritytech/polkadot-sdk#cb4262e9bc59588f508c2dbee7352db9d4dac583" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", - "polkavm-derive", + "polkavm-derive 0.30.0", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk)", "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", @@ -5400,50 +6155,94 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "sp-runtime-interface" +version = "32.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive 0.26.0", + "sp-externalities 0.30.0", + "sp-runtime-interface-proc-macro 20.0.0", + "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-storage 22.0.0", + "sp-tracing 19.0.0", + "sp-wasm-interface 24.0.0", + "static_assertions", +] + [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "Inflector", "expander", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#4331b282ecc6b6e911eadb322c600cbea2c4541a" +source = "git+https://github.com/paritytech/polkadot-sdk#cb4262e9bc59588f508c2dbee7352db9d4dac583" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "20.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" dependencies = [ "Inflector", "expander", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "sp-staking" version = "26.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", ] +[[package]] +name = "sp-staking" +version = "41.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 38.1.0", + "sp-runtime 44.0.0", +] + [[package]] name = "sp-state-machine" version = "0.35.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "hash-db", "log", @@ -5451,30 +6250,55 @@ dependencies = [ "parking_lot", "rand 0.8.5", "smallvec", - "sp-core", + "sp-core 28.0.0", "sp-externalities 0.25.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-panic-handler", + "sp-panic-handler 13.0.0", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-trie", + "sp-trie 29.0.0", + "thiserror 1.0.69", + "tracing", + "trie-db 0.28.0", +] + +[[package]] +name = "sp-state-machine" +version = "0.48.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot", + "rand 0.8.5", + "smallvec", + "sp-core 38.1.0", + "sp-externalities 0.30.0", + "sp-panic-handler 13.0.2", + "sp-trie 41.1.0", "thiserror 1.0.69", "tracing", - "trie-db", + "trie-db 0.30.0", ] [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#4331b282ecc6b6e911eadb322c600cbea2c4541a" +source = "git+https://github.com/paritytech/polkadot-sdk#cb4262e9bc59588f508c2dbee7352db9d4dac583" [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "impl-serde 0.4.0", "parity-scale-codec", @@ -5487,7 +6311,7 @@ dependencies = [ [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#4331b282ecc6b6e911eadb322c600cbea2c4541a" +source = "git+https://github.com/paritytech/polkadot-sdk#cb4262e9bc59588f508c2dbee7352db9d4dac583" dependencies = [ "impl-serde 0.5.0", "parity-scale-codec", @@ -5496,10 +6320,22 @@ dependencies = [ "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] +[[package]] +name = "sp-storage" +version = "22.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "impl-serde 0.5.0", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", +] + [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "parity-scale-codec", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", @@ -5511,71 +6347,137 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#4331b282ecc6b6e911eadb322c600cbea2c4541a" +source = "git+https://github.com/paritytech/polkadot-sdk#cb4262e9bc59588f508c2dbee7352db9d4dac583" +dependencies = [ + "parity-scale-codec", + "regex", + "tracing", + "tracing-core", + "tracing-subscriber 0.3.22", +] + +[[package]] +name = "sp-tracing" +version = "19.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" dependencies = [ "parity-scale-codec", "regex", "tracing", "tracing-core", - "tracing-subscriber 0.3.19", + "tracing-subscriber 0.3.22", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "hash-db", "lazy_static", - "memory-db", + "memory-db 0.32.0", "nohash-hasher", "parity-scale-codec", "parking_lot", "rand 0.8.5", "scale-info", "schnellru", - "sp-core", + "sp-core 28.0.0", "sp-externalities 0.25.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "thiserror 1.0.69", "tracing", - "trie-db", + "trie-db 0.28.0", + "trie-root", +] + +[[package]] +name = "sp-trie" +version = "41.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "ahash 0.8.12", + "foldhash", + "hash-db", + "hashbrown 0.15.5", + "memory-db 0.34.0", + "nohash-hasher", + "parity-scale-codec", + "parking_lot", + "rand 0.8.5", + "scale-info", + "schnellru", + "sp-core 38.1.0", + "sp-externalities 0.30.0", + "substrate-prometheus-endpoint", + "thiserror 1.0.69", + "tracing", + "trie-db 0.30.0", "trie-root", ] [[package]] name = "sp-version" version = "29.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "impl-serde 0.4.0", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro", - "sp-runtime", + "sp-crypto-hashing-proc-macro 0.0.0", + "sp-runtime 31.0.1", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", - "sp-version-proc-macro", + "sp-version-proc-macro 13.0.0", + "thiserror 1.0.69", +] + +[[package]] +name = "sp-version" +version = "42.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "impl-serde 0.5.0", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro 0.1.0", + "sp-runtime 44.0.0", + "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", + "sp-version-proc-macro 15.0.0", "thiserror 1.0.69", ] [[package]] name = "sp-version-proc-macro" version = "13.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "sp-version-proc-macro" +version = "15.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" dependencies = [ "parity-scale-codec", + "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -5588,7 +6490,18 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#4331b282ecc6b6e911eadb322c600cbea2c4541a" +source = "git+https://github.com/paritytech/polkadot-sdk#cb4262e9bc59588f508c2dbee7352db9d4dac583" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", +] + +[[package]] +name = "sp-wasm-interface" +version = "24.0.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -5599,18 +6512,32 @@ dependencies = [ [[package]] name = "sp-weights" version = "27.0.0" -source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#a2f2b2bdf2a87fd4fbbc452fdf04779b951e5a6b" +source = "git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da#e9c5c8df8b3937e9586d14e30090f0b7aea656f8" dependencies = [ - "bounded-collections", + "bounded-collections 0.2.4", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic", + "sp-arithmetic 23.0.0", "sp-debug-derive 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", "sp-std 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?branch=ghali%2Finfinity-da)", ] +[[package]] +name = "sp-weights" +version = "33.1.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "bounded-collections 0.3.2", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 28.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8)", +] + [[package]] name = "spin" version = "0.9.8" @@ -5644,9 +6571,9 @@ dependencies = [ [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "static_assertions" @@ -5683,6 +6610,32 @@ dependencies = [ "zeroize", ] +[[package]] +name = "substrate-bip39" +version = "0.6.0" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "hmac 0.12.1", + "pbkdf2 0.12.2", + "schnorrkel", + "sha2 0.10.9", + "zeroize", +] + +[[package]] +name = "substrate-prometheus-endpoint" +version = "0.17.7" +source = "git+https://github.com/availproject/polkadot-sdk.git?rev=b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8#b15c1e4b691d2d3e8a5ba6307c0b49c1e239eba8" +dependencies = [ + "http-body-util", + "hyper", + "hyper-util", + "log", + "prometheus", + "thiserror 1.0.69", + "tokio", +] + [[package]] name = "subtle" version = "2.6.1" @@ -5713,9 +6666,9 @@ dependencies = [ "scale-value", "serde", "serde_json", - "sp-crypto-hashing 0.1.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-metadata", - "thiserror 2.0.12", + "thiserror 2.0.17", "tracing", ] @@ -5730,7 +6683,7 @@ dependencies = [ "serde", "serde_json", "smoldot-light", - "thiserror 2.0.12", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -5747,8 +6700,8 @@ dependencies = [ "hashbrown 0.14.5", "parity-scale-codec", "scale-info", - "sp-crypto-hashing 0.1.0", - "thiserror 2.0.12", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.17", ] [[package]] @@ -5768,7 +6721,7 @@ dependencies = [ "serde", "serde_json", "subxt-lightclient", - "thiserror 2.0.12", + "thiserror 2.0.17", "tracing", "url", ] @@ -5779,7 +6732,7 @@ version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a2370298a210ed1df26152db7209a85e0ed8cfbce035309c3b37f7b61755377" dependencies = [ - "base64 0.22.1", + "base64", "bip39", "cfg-if", "crypto_secretbox", @@ -5794,10 +6747,10 @@ dependencies = [ "secrecy 0.10.3", "serde", "serde_json", - "sha2 0.10.8", - "sp-crypto-hashing 0.1.0", + "sha2 0.10.9", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core", - "thiserror 2.0.12", + "thiserror 2.0.17", "zeroize", ] @@ -5814,9 +6767,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.99" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", @@ -5834,13 +6787,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -5857,16 +6810,15 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.17.1" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ - "cfg-if", "fastrand", - "getrandom 0.3.1", + "getrandom 0.3.4", "once_cell", - "rustix 0.38.44", - "windows-sys 0.59.0", + "rustix 1.1.2", + "windows-sys 0.61.2", ] [[package]] @@ -5878,16 +6830,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "terminal_size" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" -dependencies = [ - "rustix 1.1.2", - "windows-sys 0.60.2", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -5899,11 +6841,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.17", ] [[package]] @@ -5914,18 +6856,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -5950,12 +6892,11 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -5969,9 +6910,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", @@ -5984,15 +6925,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -6009,9 +6950,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -6019,9 +6960,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -6034,29 +6975,29 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", "libc", "mio", + "parking_lot", "pin-project-lite", "socket2", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -6071,9 +7012,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", @@ -6092,9 +7033,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", @@ -6106,38 +7047,75 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.20" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime", - "toml_edit", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.7.1", + "indexmap 2.12.1", "serde", "serde_spanned", - "toml_datetime", + "toml_datetime 0.6.11", + "toml_write", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.23.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" +dependencies = [ + "indexmap 2.12.1", + "toml_datetime 0.7.3", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +dependencies = [ "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tower" version = "0.5.2" @@ -6155,11 +7133,11 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "9cf146f99d442e8e68e585f5d798ccd3cad9a7835b917e09728880a862706456" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.10.0", "bytes", "futures-util", "http", @@ -6185,10 +7163,11 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -6196,20 +7175,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" dependencies = [ "once_cell", "valuable", @@ -6271,14 +7250,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ - "matchers 0.1.0", + "matchers 0.2.0", "nu-ansi-term", "once_cell", - "regex", + "regex-automata 0.4.13", "sharded-slab", "smallvec", "thread_local", @@ -6301,6 +7280,18 @@ dependencies = [ "smallvec", ] +[[package]] +name = "trie-db" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c0670ab45a6b7002c7df369fee950a27cf29ae0474343fd3a15aa15f691e7a6" +dependencies = [ + "hash-db", + "log", + "rustc-hex", + "smallvec", +] + [[package]] name = "trie-root" version = "0.18.0" @@ -6322,6 +7313,12 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" +[[package]] +name = "tuplex" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "676ac81d5454c4dcf37955d34fa8626ede3490f744b86ca14a7b90168d2a08aa" + [[package]] name = "twox-hash" version = "1.6.3" @@ -6336,9 +7333,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "uint" @@ -6372,9 +7369,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-normalization" @@ -6409,21 +7406,16 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -6454,22 +7446,68 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6bfb937b3d12077654a9e43e32a4e9c20177dd9fea0f3aba673e7840bb54f32" dependencies = [ - "ark-bls12-377", - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-serialize-derive", + "ark-bls12-377 0.4.0", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-serialize-derive 0.4.2", "arrayref", "digest 0.10.7", "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", - "sha2 0.10.8", + "sha2 0.10.9", "sha3", "zeroize", ] +[[package]] +name = "w3f-pcs" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbe7a8d5c914b69392ab3b267f679a2e546fe29afaddce47981772ac71bd02e1" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "merlin", +] + +[[package]] +name = "w3f-plonk-common" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aca389e494fe08c5c108b512e2328309036ee1c0bc7bdfdb743fef54d448c8c" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "getrandom_or_panic", + "rand_core 0.6.4", + "w3f-pcs", +] + +[[package]] +name = "w3f-ring-proof" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a639379402ad51504575dbd258740383291ac8147d3b15859bdf1ea48c677de" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "ark-transcript 0.0.3", + "w3f-pcs", + "w3f-plonk-common", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -6491,50 +7529,37 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.13.3+wasi-0.2.2" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.99", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", "js-sys", @@ -6545,9 +7570,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6555,22 +7580,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.99", - "wasm-bindgen-backend", + "syn 2.0.111", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] @@ -6598,7 +7623,7 @@ version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c128c039340ffd50d4195c3f8ce31aac357f06804cfc494c8b9508d4b30dca4" dependencies = [ - "ahash 0.8.11", + "ahash 0.8.12", "hashbrown 0.14.5", "string-interner", ] @@ -6768,19 +7793,28 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", ] [[package]] -name = "webpki-roots" -version = "0.26.8" +name = "webpki-root-certs" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" +dependencies = [ + "webpki-root-certs 1.0.4", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" +checksum = "ee3e3b5f5e80bc89f30ce8d0343bf4e5f12341c51f3e26cbeecbc7c85443e85b" dependencies = [ "rustls-pki-types", ] @@ -6813,11 +7847,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -6828,9 +7862,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", @@ -6841,46 +7875,46 @@ dependencies = [ [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] name = "windows-link" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ "windows-link", ] @@ -6927,7 +7961,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", ] [[package]] @@ -6978,19 +8021,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ "windows-link", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -7013,9 +8056,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -7037,9 +8080,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -7061,9 +8104,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -7073,9 +8116,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -7097,9 +8140,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -7121,9 +8164,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -7145,9 +8188,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -7169,39 +8212,30 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.3" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] [[package]] -name = "wit-bindgen-rt" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" -dependencies = [ - "bitflags 2.9.0", -] - -[[package]] -name = "write16" -version = "1.0.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wyz" @@ -7226,11 +8260,10 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -7238,35 +8271,34 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", "synstructure", ] [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ - "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] [[package]] @@ -7286,15 +8318,15 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -7307,14 +8339,25 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", +] + +[[package]] +name = "zerotrie" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", ] [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -7323,11 +8366,11 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.111", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index ad9435a0f..5d79908c4 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -81,6 +81,7 @@ sp-authority-discovery = { workspace = true, default-features = false } sc-authority-discovery = { workspace = true, default-features = false } sc-chain-spec = { workspace = true, default-features = false } sp-blockchain = { workspace = true, default-features = false } +sp-genesis-builder = { workspace = true, default-features = false } sp-block-builder = { workspace = true, default-features = false } sc-sync-state-rpc = { workspace = true, default-features = false } sp-api = { workspace = true, default-features = false } @@ -105,9 +106,6 @@ substrate-prometheus-endpoint.workspace = true frame-benchmarking = { workspace = true, default-features = false } frame-benchmarking-cli = { workspace = true, default-features = false } -# Try-runtime -try-runtime-cli = { workspace = true, default-features = false, optional = true } - [build-dependencies] substrate-build-script-utils = { workspace = true, default-features = false } clap = { workspace = true, optional = true } @@ -119,22 +117,13 @@ sp-tracing = { workspace = true, default-features = false } tempfile.workspace = true [features] -default = ["cli"] -header_commitment_corruption = ["da-runtime/header_commitment_corruption"] -fast-runtime = ["da-runtime/fast-runtime"] -testing-environment = ["da-runtime/testing-environment"] -cli = ["clap", "clap-num", "clap_complete", "frame-benchmarking-cli"] +default = [ "cli" ] +header_commitment_corruption = [ "da-runtime/header_commitment_corruption" ] +fast-runtime = [ "da-runtime/fast-runtime" ] +testing-environment = [ "da-runtime/testing-environment" ] +cli = [ "clap", "clap-num", "clap_complete" ] runtime-benchmarks = [ "da-control/runtime-benchmarks", "da-runtime/runtime-benchmarks", "frame-system/runtime-benchmarks", ] -# Enable features that allow the runtime to be tried and debugged. Name might be subject to change -# in the near future. -try-runtime = [ - "avail-core/try-runtime", - "da-control/try-runtime", - "da-runtime/try-runtime", - "frame-system/try-runtime", - "try-runtime-cli/try-runtime", -] diff --git a/node/src/chains/common.rs b/node/src/chains/common.rs index e930d20ec..08ade1928 100644 --- a/node/src/chains/common.rs +++ b/node/src/chains/common.rs @@ -142,7 +142,7 @@ pub fn runtime_genesis_config( "secondsPerSlot": SECONDS_PER_SLOT, "slotsPerPeriod": SLOTS_PER_PERIOD, "sourceChainId": SOURCE_CHAIN_ID, - "syncCommitteePoseidon":get_poseidon_hash_for_period(), + "syncCommitteePoseidon": format!("0x{:064x}", get_poseidon_hash_for_period()), "stepVerificationKey": STEP_VK.as_bytes().to_vec(), "rotateVerificationKey": ROTATE_VK.as_bytes().to_vec(), "whitelistedDomains": vec![2], diff --git a/node/src/chains/definitions.rs b/node/src/chains/definitions.rs index 3641b95e3..da2f7de59 100644 --- a/node/src/chains/definitions.rs +++ b/node/src/chains/definitions.rs @@ -1,4 +1,4 @@ -use da_runtime::{AccountId, Block, RuntimeGenesisConfig, SessionKeys, Signature}; +use da_runtime::{AccountId, Block, SessionKeys, Signature}; use pallet_im_online::sr25519::AuthorityId as ImOnlineId; use sc_chain_spec::ChainSpecExtension; use sc_service::Properties; @@ -23,7 +23,8 @@ pub struct Extensions { } /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; +// pub type ChainSpec = sc_service::GenericChainSpec; /// Generate a crypto pair from seed. pub fn get_from_seed(seed: &str) -> ::Public { diff --git a/node/src/chains/mod.rs b/node/src/chains/mod.rs index af8c05960..0dc31d561 100644 --- a/node/src/chains/mod.rs +++ b/node/src/chains/mod.rs @@ -19,6 +19,7 @@ pub mod dev { .with_id("avail_development_network") .with_chain_type(ChainType::Development) .with_genesis_config_patch(genesis_constructor()) + // .with_genesis_config_preset_name(sp_genesis_builder::DEV_RUNTIME_PRESET) .with_telemetry_endpoints(super::to_telemetry_endpoint(TESTNET_TELEMETRY_URL.into())) .with_protocol_id(PROTOCOL_ID) .with_properties(chain_properties()) @@ -53,7 +54,8 @@ pub mod dev_tri { let mut builder = ChainSpec::builder(wasm_binary_unwrap(), Default::default()) .with_name("Avail Tri Development Network") .with_id("avail_tri_development_network") - .with_chain_type(ChainType::Development) + .with_chain_type(ChainType::Local) + // .with_genesis_config_preset_name(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET) .with_genesis_config_patch(genesis_constructor()) .with_telemetry_endpoints(super::to_telemetry_endpoint(TESTNET_TELEMETRY_URL.into())) .with_protocol_id(PROTOCOL_ID) diff --git a/node/src/cli.rs b/node/src/cli.rs index ee51f2804..3f412f912 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -86,14 +86,6 @@ pub enum Subcommand { #[command(subcommand)] Benchmark(frame_benchmarking_cli::BenchmarkCmd), - /// Try some command against runtime state. - #[cfg(feature = "try-runtime")] - TryRuntime(try_runtime_cli::TryRuntimeCmd), - - /// Try some command against runtime state. Note: `try-runtime` feature must be enabled. - #[cfg(not(feature = "try-runtime"))] - TryRuntime, - /// Key management cli utilities #[command(subcommand)] Key(sc_cli::KeySubcommand), @@ -110,6 +102,9 @@ pub enum Subcommand { /// Build a chain specification. BuildSpec(sc_cli::BuildSpecCmd), + /// Export the chain specification. + ExportChainSpec(sc_cli::ExportChainSpecCmd), + /// Validate blocks. CheckBlock(sc_cli::CheckBlockCmd), diff --git a/node/src/command.rs b/node/src/command.rs index dafc7bcf4..15d4259de 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -24,11 +24,7 @@ use da_runtime::Block; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; use sc_cli::{Result, SubstrateCli}; use sc_service::PartialComponents; -#[cfg(feature = "try-runtime")] -use { - avail_blob::types::ExecutorDispatch, da_runtime::constants::time::SLOT_DURATION, - try_runtime_cli::block_building_info::substrate_info, -}; +use sp_runtime::traits::HashingFor; use crate::{ cli::{Cli, Subcommand}, @@ -100,6 +96,10 @@ pub fn run() -> Result<()> { runner.sync_run(|config| cmd.run::(config)) },*/ + Some(Subcommand::ExportChainSpec(cmd)) => { + let chain_spec = cli.load_spec(&cmd.chain)?; + cmd.run(chain_spec) + }, Some(Subcommand::Benchmark(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -115,12 +115,12 @@ pub fn run() -> Result<()> { .into(), ); } - cmd.run::, ( frame_system::native::hosted_header_builder::hosted_header_builder::HostFunctions, avail_base::mem_tmp_storage::hosted_mem_tmp_storage::HostFunctions, da_runtime::kate::native::hosted_kate::HostFunctions, da_control::extensions::native::hosted_commitment_builder::HostFunctions, - )>(config) + )>(Some(config.chain_spec)) }, BenchmarkCmd::Block(_cmd) => { unimplemented!(); @@ -291,31 +291,6 @@ pub fn run() -> Result<()> { Ok((cmd.run(client, backend, Some(aux_revert)), task_manager)) }) }, - #[cfg(feature = "try-runtime")] - Some(Subcommand::TryRuntime(cmd)) => { - use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; - let runner = cli.create_runner(cmd)?; - runner.async_run(|config| { - // we don't need any of the components of new_partial, just a runtime, or a task - // manager to do `async_run`. - let registry = config.prometheus_config.as_ref().map(|cfg| &cfg.registry); - let task_manager = - sc_service::TaskManager::new(config.tokio_handle.clone(), registry) - .map_err(|e| sc_cli::Error::Service(sc_service::Error::Prometheus(e)))?; - let info_provider = substrate_info(SLOT_DURATION); - Ok(( - cmd.run::::ExtendHostFunctions, - >, _>(Some(info_provider)), - task_manager, - )) - }) - }, - #[cfg(not(feature = "try-runtime"))] - Some(Subcommand::TryRuntime) => Err("TryRuntime wasn't enabled when building the node. \ - You can enable it with `--features try-runtime`." - .into()), Some(Subcommand::ChainInfo(cmd)) => { let runner = cli.create_runner(cmd)?; runner.sync_run(|config| cmd.run::(&config)) diff --git a/node/src/da_block_import.rs b/node/src/da_block_import.rs index e0d41625c..9617412a9 100644 --- a/node/src/da_block_import.rs +++ b/node/src/da_block_import.rs @@ -179,10 +179,7 @@ where type Error = ConsensusError; /// It verifies that header extension (Kate commitment & data root) is properly calculated. - async fn import_block( - &mut self, - block: BlockImportParams, - ) -> Result { + async fn import_block(&self, block: BlockImportParams) -> Result { let _metric_observer = MetricObserver::new(ObserveKind::ImportBlockTotalExecutionTime); // We only want to check for blocks that are not from "Own" @@ -311,10 +308,7 @@ where result.map_err(Into::into) } - async fn check_block( - &mut self, - block: BlockCheckParams, - ) -> Result { + async fn check_block(&self, block: BlockCheckParams) -> Result { self.inner.check_block(block).await.map_err(Into::into) } } diff --git a/node/src/rpc.rs b/node/src/rpc.rs index afdaa5851..59cd8d733 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -48,7 +48,6 @@ use sc_consensus_grandpa::{ FinalityProofProvider, GrandpaJustificationStream, SharedAuthoritySet, SharedVoterState, }; use sc_rpc::SubscriptionTaskExecutor; -pub use sc_rpc_api::DenyUnsafe; use sc_transaction_pool_api::TransactionPool; use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder; @@ -92,8 +91,6 @@ pub struct FullDeps { pub select_chain: SC, /// A copy of the chain spec. pub chain_spec: Box, - /// Whether to deny unsafe calls - pub deny_unsafe: DenyUnsafe, /// BABE specific dependencies. pub babe: BabeDeps, /// GRANDPA specific dependencies. @@ -144,7 +141,7 @@ where use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; use sc_consensus_babe_rpc::{Babe, BabeApiServer}; use sc_consensus_grandpa_rpc::{Grandpa, GrandpaApiServer}; - use sc_rpc_spec_v2::chain_spec::{ChainSpec, ChainSpecApiServer}; + // use sc_rpc_spec_v2::chain_spec::{ChainSpec, ChainSpecApiServer}; use sc_sync_state_rpc::{SyncState, SyncStateApiServer}; use substrate_frame_rpc_system::{System, SystemApiServer}; use substrate_state_trie_migration_rpc::{StateMigration, StateMigrationApiServer}; @@ -158,7 +155,6 @@ where pool, select_chain, chain_spec, - deny_unsafe, babe, grandpa, kate_rpc_deps, @@ -177,16 +173,16 @@ where } = grandpa; let is_dev_chain = chain_spec.id().ends_with("development_network"); - let chain_name = chain_spec.name().to_string(); - let genesis_hash = client - .block_hash(0) - .ok() - .flatten() - .expect("Genesis block exists; qed"); - let properties = chain_spec.properties(); - io.merge(ChainSpec::new(chain_name, genesis_hash, properties).into_rpc())?; + // let chain_name = chain_spec.name().to_string(); + // let genesis_hash = client + // .block_hash(0) + // .ok() + // .flatten() + // .expect("Genesis block exists; qed"); + // let properties = chain_spec.properties(); + // io.merge(ChainSpec::new(chain_name, genesis_hash, properties).into_rpc())?; - io.merge(System::new(client.clone(), pool.clone(), deny_unsafe).into_rpc())?; + io.merge(System::new(client.clone(), pool.clone()).into_rpc())?; // Making synchronous calls in light client freezes the browser currently, // more context: https://github.com/paritytech/substrate/pull/3480 // These RPCs should use an asynchronous caller instead. @@ -206,7 +202,6 @@ where babe_worker_handle.clone(), keystore, select_chain, - deny_unsafe, ) .into_rpc(), )?; @@ -231,7 +226,7 @@ where .into_rpc(), )?; - io.merge(StateMigration::new(client.clone(), backend.clone(), deny_unsafe).into_rpc())?; + io.merge(StateMigration::new(client.clone(), backend.clone()).into_rpc())?; if is_dev_chain || kate_rpc_deps.rpc_metrics_enabled { io.merge(KateApiMetricsServer::into_rpc(Kate::::new( diff --git a/node/src/service.rs b/node/src/service.rs index 4ac0de2b2..8f37f0f62 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -25,24 +25,26 @@ use avail_blob::p2p::{get_blob_p2p_config, BlobHandle}; use avail_blob::rpc::{BlobApiServer, BlobRpc}; use avail_blob::store::{RocksdbBlobStore, StorageApiT}; use avail_blob::types::FullClient; -use da_runtime::extensions::check_batch_transactions::CheckBatchTransactions; -use da_runtime::{apis::RuntimeApi, NodeBlock as Block, Runtime}; - use codec::Encode; +use da_runtime::extensions::check_batch_transactions::CheckBatchTransactions; +use da_runtime::{apis::RuntimeApi, BlockNumber, NodeBlock as Block, Runtime}; +use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use frame_system_rpc_runtime_api::AccountNonceApi; use futures::prelude::*; +use jsonrpsee::RpcModule; use pallet_transaction_payment::ChargeTransactionPayment; use sc_client_api::{Backend, BlockBackend}; use sc_consensus_babe::{self, SlotProportion}; -use sc_network::{Event, NetworkEventStream, NetworkService}; +use sc_network::{service::traits::NetworkService, Event, NetworkBackend, NetworkEventStream}; use sc_network_sync::SyncingService; -use sc_service::{ - error::Error as ServiceError, Configuration, RpcHandlers, TaskManager, WarpSyncParams, -}; +use sc_network_sync::WarpSyncConfig; +use sc_service::{error::Error as ServiceError, Configuration, RpcHandlers, TaskManager}; use sc_telemetry::{Telemetry, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; use sp_api::ProvideRuntimeApi; +use sp_consensus_babe::inherents::BabeCreateInherentDataProviders; use sp_core::crypto::Pair; +use sp_core::traits::SpawnNamed; use sp_runtime::{generic::Era, traits::Block as BlockT, SaturatedConversion}; use std::time::Duration; use std::{path::Path, sync::Arc}; @@ -56,12 +58,20 @@ type FullGrandpaBlockImport = sc_consensus_grandpa::GrandpaBlockImport; /// The transaction pool type definition. -pub type TransactionPool = sc_transaction_pool::FullPool; +pub type TransactionPool = sc_transaction_pool::TransactionPoolHandle; + +type Backoff = sc_consensus_slots::BackoffAuthoringOnFinalizedHeadLagging; pub type BlockImport = crate::da_block_import::BlockImport< Block, FullClient, - sc_consensus_babe::BabeBlockImport, + sc_consensus_babe::BabeBlockImport< + Block, + FullClient, + FullGrandpaBlockImport, + BabeCreateInherentDataProviders, + FullSelectChain, + >, >; /// Fetch the nonce of the given `account` from the chain state. @@ -153,10 +163,9 @@ pub fn new_partial( FullBackend, FullSelectChain, sc_consensus::DefaultImportQueue, - sc_transaction_pool::FullPool, + sc_transaction_pool::TransactionPoolHandle, ( impl Fn( - node_rpc::DenyUnsafe, sc_rpc::SubscriptionTaskExecutor, ) -> Result, sc_service::Error>, ( @@ -182,7 +191,7 @@ pub fn new_partial( }) .transpose()?; - let executor = sc_service::new_native_or_wasm_executor(config); + let executor = sc_service::new_wasm_executor(&config.executor); let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( @@ -208,12 +217,15 @@ pub fn new_partial( let select_chain = sc_consensus::LongestChain::new(backend.clone()); - let transaction_pool = sc_transaction_pool::BasicPool::new_full( - config.transaction_pool.clone(), - config.role.is_authority().into(), - config.prometheus_registry(), - task_manager.spawn_essential_handle(), - client.clone(), + let transaction_pool = Arc::from( + sc_transaction_pool::Builder::new( + task_manager.spawn_essential_handle(), + client.clone(), + config.role.is_authority().into(), + ) + .with_options(config.transaction_pool.clone()) + .with_prometheus(config.prometheus_registry()) + .build(), ); let (grandpa_block_import, grandpa_link) = sc_consensus_grandpa::block_import( @@ -224,11 +236,23 @@ pub fn new_partial( telemetry.as_ref().map(|x| x.handle()), )?; let justification_import = grandpa_block_import.clone(); - + let babe_config = sc_consensus_babe::configuration(&*client)?; + let slot_duration = babe_config.slot_duration(); let (block_import, babe_link) = sc_consensus_babe::block_import( sc_consensus_babe::configuration(&*client)?, grandpa_block_import, client.clone(), + Arc::new(move |_, _| async move { + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); + let slot = + sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( + *timestamp, + slot_duration, + ); + Ok((slot, timestamp)) + }) as BabeCreateInherentDataProviders, + select_chain.clone(), + OffchainTransactionPoolFactory::new(transaction_pool.clone()), )?; // Initialize the Blob database @@ -241,7 +265,7 @@ pub fn new_partial( let da_block_import = BlockImport::new( client.clone(), - block_import, + block_import.clone(), unsafe_da_sync, blob_database.clone(), ); @@ -250,25 +274,13 @@ pub fn new_partial( let (import_queue, babe_worker_handle) = sc_consensus_babe::import_queue(sc_consensus_babe::ImportQueueParams { link: babe_link.clone(), - block_import: da_block_import.clone(), + block_import: block_import.clone(), justification_import: Some(Box::new(justification_import)), client: client.clone(), - select_chain: select_chain.clone(), - create_inherent_data_providers: move |_, ()| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = - sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); - - Ok((slot, timestamp)) - }, + slot_duration, spawner: &task_manager.spawn_essential_handle(), registry: config.prometheus_registry(), telemetry: telemetry.as_ref().map(|x| x.handle()), - offchain_tx_pool_factory: OffchainTransactionPoolFactory::new(transaction_pool.clone()), })?; let import_setup = (da_block_import, grandpa_link, babe_link); @@ -293,13 +305,12 @@ pub fn new_partial( let chain_spec = config.chain_spec.cloned_box(); let rpc_backend = backend.clone(); - let rpc_extensions_builder = move |deny_unsafe, subscription_executor| { + let rpc_extensions_builder = move |subscription_executor| { let deps = node_rpc::FullDeps { client: client.clone(), pool: pool.clone(), select_chain: select_chain.clone(), chain_spec: chain_spec.cloned_box(), - deny_unsafe, babe: node_rpc::BabeDeps { keystore: keystore.clone(), babe_worker_handle: babe_worker_handle.clone(), @@ -344,7 +355,7 @@ pub struct NewFullBase { /// The client instance of the node. pub client: Arc, /// The networking service of the node. - pub network: Arc::Hash>>, + pub network: Arc, /// The syncing service of the node. pub sync: Arc>, /// The transaction pool of the node. @@ -355,7 +366,7 @@ pub struct NewFullBase { /// Creates a full service from the configuration. #[allow(clippy::too_many_arguments)] -pub fn new_full_base( +pub fn new_full_base::Hash>>( config: Configuration, disable_hardware_benchmarks: bool, with_startup_data: impl FnOnce(&BlockImport, &sc_consensus_babe::BabeLink), @@ -363,18 +374,22 @@ pub fn new_full_base( kate_rpc_deps: kate_rpc::Deps, grandpa_justification_period: u32, ) -> Result { - let hwbench = if !disable_hardware_benchmarks { - config.database.path().map(|database_path| { - let _ = std::fs::create_dir_all(database_path); - sc_sysinfo::gather_hwbench(Some(database_path)) - }) - } else { - None - }; + // let is_offchain_indexing_enabled = config.offchain_worker.indexing_enabled; + let role = config.role; + let force_authoring = config.force_authoring; + let name = config.network.node_name.clone(); + let enable_grandpa = !config.disable_grandpa; + let prometheus_registry = config.prometheus_registry().cloned(); + let enable_offchain_worker = config.offchain_worker.enabled; - // Blob protocols setup - let (blob_req_res_cfg, blob_req_receiver, blob_gossip_cfg, blob_gossip_service) = - get_blob_p2p_config(); + let hwbench = (!disable_hardware_benchmarks) + .then(|| { + config.database.path().map(|database_path| { + let _ = std::fs::create_dir_all(&database_path); + sc_sysinfo::gather_hwbench(Some(database_path), &SUBSTRATE_REFERENCE_HARDWARE) + }) + }) + .flatten(); let sc_service::PartialComponents { client, @@ -392,22 +407,42 @@ pub fn new_full_base( grandpa_justification_period, )?; + let metrics = N::register_notification_metrics( + config.prometheus_config.as_ref().map(|cfg| &cfg.registry), + ); let shared_voter_state = rpc_setup; let auth_disc_publish_non_global_ips = config.network.allow_non_globals_in_dht; - let mut net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); - - let grandpa_protocol_name = sc_consensus_grandpa::protocol_standard_name( - &client - .block_hash(0) - .ok() - .flatten() - .expect("Genesis block exists; qed"), - &config.chain_spec, + let auth_disc_public_addresses = config.network.public_addresses.clone(); + + let mut net_config = sc_network::config::FullNetworkConfiguration::<_, _, N>::new( + &config.network, + config + .prometheus_config + .as_ref() + .map(|cfg| cfg.registry.clone()), ); + + let genesis_hash = client + .block_hash(0) + .ok() + .flatten() + .expect("Genesis block exists; qed"); + let peer_store_handle = net_config.peer_store_handle(); + + let (blob_req_res_cfg, blob_req_receiver, blob_gossip_cfg, blob_gossip_service) = + get_blob_p2p_config::(metrics.clone(), Arc::clone(&peer_store_handle)); + + let grandpa_protocol_name = + sc_consensus_grandpa::protocol_standard_name(&genesis_hash, &config.chain_spec); let (grandpa_protocol_config, grandpa_notification_service) = - sc_consensus_grandpa::grandpa_peers_set_config(grandpa_protocol_name.clone()); + sc_consensus_grandpa::grandpa_peers_set_config::( + grandpa_protocol_name.clone(), + metrics.clone(), + Arc::clone(&peer_store_handle), + ); net_config.add_notification_protocol(grandpa_protocol_config); + // Add our blob protocols to the network config net_config.add_request_response_protocol(blob_req_res_cfg); net_config.add_notification_protocol(blob_gossip_cfg); @@ -417,7 +452,7 @@ pub fn new_full_base( Vec::default(), )); - let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) = + let (network, system_rpc_tx, tx_handler_controller, sync_service) = sc_service::build_network(sc_service::BuildNetworkParams { config: &config, net_config, @@ -426,11 +461,12 @@ pub fn new_full_base( spawn_handle: task_manager.spawn_handle(), import_queue, block_announce_validator_builder: None, - warp_sync_params: Some(WarpSyncParams::WithProvider(warp_sync)), + warp_sync_config: Some(WarpSyncConfig::WithProvider(warp_sync)), block_relay: None, + metrics, })?; - // Initialize blob module + // === Initialize blob module === let blob_handle = BlobHandle::new( config.role.clone(), blob_database.clone(), @@ -447,39 +483,33 @@ pub fn new_full_base( let basic_authorship_db = blob_handle.blob_database.clone(); let rpc_transaction_pool = transaction_pool.clone(); let rpc_backend = backend.clone(); - let overloaded_rpc_builder = move |deny_unsafe: node_rpc::DenyUnsafe, - subscription_executor: sc_rpc::SubscriptionTaskExecutor| - -> Result, sc_service::Error> { - let mut io = (rpc_builder)(deny_unsafe, subscription_executor)?; - - io.merge(BlobApiServer::into_rpc(BlobRpc::<_, Block, _>::new( - blob_handle.clone(), - rpc_transaction_pool.clone(), - rpc_backend.clone(), - ))) - .map_err(|e| sc_service::Error::Other(format!("failed to merge Blob RPC: {e}")))?; - - Ok(io) - }; - // END Initialize blob module + let blob_handle_for_rpc = blob_handle.clone(); + + let overloaded_rpc_builder = + move |spawn_handle: Arc| -> Result, sc_service::Error> { + let mut io = (rpc_builder)(spawn_handle)?; + io.merge(BlobApiServer::into_rpc(BlobRpc::<_, Block, _>::new( + blob_handle_for_rpc.clone(), + rpc_transaction_pool.clone(), + rpc_backend.clone(), + ))) + .map_err(|e| sc_service::Error::Other(format!("failed to merge Blob RPC: {e}")))?; + + Ok(io) + }; + // === END Initialize blob module === task_manager.spawn_handle().spawn( "finality_promoter", Some("blob_indexing"), finality_promoter(client.clone(), blob_database, Duration::from_secs(3)), ); - let role = config.role.clone(); - let force_authoring = config.force_authoring; - let backoff_authoring_blocks = - Some(sc_consensus_slots::BackoffAuthoringOnFinalizedHeadLagging::default()); - let name = config.network.node_name.clone(); - let enable_grandpa = !config.disable_grandpa; - let prometheus_registry = config.prometheus_registry().cloned(); - let enable_offchain_worker = config.offchain_worker.enabled; + if let Some(reg) = prometheus_registry.as_ref() { extend_metrics(reg)?; } + let net_config_path = config.network.net_config_path.clone(); let rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { config, backend: backend.clone(), @@ -500,6 +530,15 @@ pub fn new_full_base( if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); + match SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench, false) { + Err(err) if role.is_authority() => { + log::warn!( + "⚠️ The hardware does not meet the minimal requirements {} for role 'Authority'.", + err + ); + }, + _ => {}, + } if let Some(ref mut telemetry) = telemetry { let telemetry_handle = telemetry.handle(); @@ -527,6 +566,9 @@ pub fn new_full_base( let client_clone = client.clone(); let slot_duration = babe_link.config().slot_duration(); + let backoff_authoring_blocks = + Some(sc_consensus_slots::BackoffAuthoringOnFinalizedHeadLagging::default()); + let babe_config = sc_consensus_babe::BabeParams { keystore: keystore_container.keystore(), client: client.clone(), @@ -541,10 +583,10 @@ pub fn new_full_base( let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); let slot = - sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); + sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_slot_duration( + *timestamp, + slot_duration, + ); let storage_proof = sp_transaction_storage_proof::registration::new_data_provider( @@ -588,13 +630,16 @@ pub fn new_full_base( sc_authority_discovery::new_worker_and_service_with_config( sc_authority_discovery::WorkerConfig { publish_non_global_ips: auth_disc_publish_non_global_ips, + public_addresses: auth_disc_public_addresses, + persisted_cache_directory: net_config_path, ..Default::default() }, client.clone(), - network.clone(), + Arc::new(network.clone()), Box::pin(dht_event_stream), authority_discovery_role, prometheus_registry.clone(), + task_manager.spawn_handle(), ); task_manager.spawn_handle().spawn( @@ -613,8 +658,7 @@ pub fn new_full_base( }; let grandpa_config = sc_consensus_grandpa::Config { - // Considering our block_time of 20 seconds, we may consider increasing this to 2 seconds without introducing delay in finality. - gossip_duration: std::time::Duration::from_millis(1000), + gossip_duration: std::time::Duration::from_millis(333), justification_generation_period: grandpa_justification_period, name: Some(name), observer_enabled: false, @@ -625,12 +669,6 @@ pub fn new_full_base( }; if enable_grandpa { - // start the full GRANDPA voter - // NOTE: non-authorities could run the GRANDPA observer protocol, but at - // this point the full voter should provide better guarantees of block - // and vote data availability than the observer. The observer has not - // been tested extensively yet and having most nodes in a network run it - // could lead to finality stalls. let grandpa_config = sc_consensus_grandpa::GrandpaParams { config: grandpa_config, link: grandpa_link, @@ -644,8 +682,6 @@ pub fn new_full_base( offchain_tx_pool_factory: OffchainTransactionPoolFactory::new(transaction_pool.clone()), }; - // the GRANDPA voter task is considered infallible, i.e. - // if it fails we take down the service with it. task_manager.spawn_essential_handle().spawn_blocking( "grandpa-voter", None, @@ -654,9 +690,7 @@ pub fn new_full_base( } if enable_offchain_worker { - task_manager.spawn_handle().spawn( - "offchain-workers-runner", - "offchain-work", + let offchain_workers = sc_offchain::OffchainWorkers::new(sc_offchain::OffchainWorkerOptions { runtime_api_provider: client.clone(), keystore: Some(keystore_container.keystore()), @@ -664,18 +698,20 @@ pub fn new_full_base( transaction_pool: Some(OffchainTransactionPoolFactory::new( transaction_pool.clone(), )), - network_provider: network.clone(), + network_provider: Arc::new(network.clone()), is_validator: role.is_authority(), enable_http_requests: true, custom_extensions: move |_| vec![], - }) - .run(client.clone(), task_manager.spawn_handle()) - .boxed(), + })?; + task_manager.spawn_handle().spawn( + "offchain-workers-runner", + "offchain-work", + offchain_workers + .run(client.clone(), task_manager.spawn_handle()) + .boxed(), ); } - network_starter.start_network(); - Ok(NewFullBase { task_manager, client, @@ -695,15 +731,33 @@ pub fn new_full(config: Configuration, cli: Cli) -> Result { + let task_manager = new_full_base::>( + config, + cli.no_hardware_benchmarks, + |_, _| (), + cli.unsafe_da_sync, + kate_rpc_deps, + cli.grandpa_justification_period, + ) + .map(|NewFullBase { task_manager, .. }| task_manager)?; + task_manager + }, + sc_network::config::NetworkBackendType::Litep2p => { + let task_manager = new_full_base::( + config, + cli.no_hardware_benchmarks, + |_, _| (), + cli.unsafe_da_sync, + kate_rpc_deps, + cli.grandpa_justification_period, + ) + .map(|NewFullBase { task_manager, .. }| task_manager)?; + task_manager + }, + }; if let Some(database_path) = database_path { sc_storage_monitor::StorageMonitorService::try_spawn( @@ -723,295 +777,3 @@ fn extend_metrics(prometheus: &Registry) -> Result<(), PrometheusError> { AVAIL_METRICS.get_or_try_init(|| AvailMetrics::new(prometheus))?; Ok(()) } - -/* fn filter_intervals(intervals: Vec) -> Vec { - // We are working on a 7.5 second telemetry interval basis. - // If there are more than 4 blocks worth of events then the node is still syncing and we - // don't want to broadcast sync related data. - if intervals.len() > 4 { - return vec![]; - } - - intervals -} */ - -/* -#[cfg(test)] -mod tests { - use crate::service::{new_full_base, NewFullBase}; - use codec::Encode; - use da_runtime::{ - currency::CENTS, Address, BalancesCall, Block, Call, DigestItem, Signature, - UncheckedExtrinsic, SLOT_DURATION, - }; - use sc_client_api::BlockBackend; - use sc_consensus::{BlockImport, BlockImportParams, ForkChoiceStrategy}; - use sc_consensus_babe::{BabeIntermediate, CompatibleDigestItem, INTERMEDIATE_KEY}; - use sc_consensus_epochs::descendent_query; - use sc_keystore::LocalKeystore; - use sc_transaction_pool_api::{ChainEvent, MaintainedTransactionPool}; - use sp_consensus::{BlockOrigin, Environment, Proposer}; - use sp_core::{crypto::Pair as CryptoPair, Public}; - use sp_inherents::InherentDataProvider; - use sp_keyring::AccountKeyring; - use sp_keystore::{Keystore, KeystorePtr}; - use sp_runtime::{ - generic::{BlockId, Digest, Era, SignedPayload}, - key_types::BABE, - traits::{Block as BlockT, Header as HeaderT, IdentifyAccount, Verify}, - RuntimeAppPublic, - }; - use sp_timestamp; - - use crate::service::{new_full_base, NewFullBase}; - - type AccountPublic = ::Signer; - - #[test] - // It is "ignored", but the node-cli ignored tests are running on the CI. - // This can be run locally with `cargo test --release -p node-cli test_sync -- --ignored`. - #[ignore] - fn test_sync() { - sp_tracing::try_init_simple(); - - let keystore_path = tempfile::tempdir().expect("Creates keystore path"); - let keystore: KeystorePtr = - Arc::new(LocalKeystore::open(keystore_path.path(), None).expect("Creates keystore")); - let alice: sp_consensus_babe::AuthorityId = - Keystore::sr25519_generate_new(&*keystore, BABE, Some("//Alice")) - .expect("Creates authority pair") - .into(); - - let chain_spec = crate::chain_spec::tests::integration_test_config_with_single_authority(); - - // For the block factory - let mut slot = 1u64; - - // For the extrinsics factory - let bob = Arc::new(AccountKeyring::Bob.pair()); - let charlie = Arc::new(AccountKeyring::Charlie.pair()); - let mut index = 0; - - sc_service_test::sync( - chain_spec, - |config| { - let mut setup_handles = None; - let NewFullBase { - task_manager, - client, - network, - transaction_pool, - .. - } = new_full_base( - config, - |block_import: &sc_consensus_babe::BabeBlockImport, - babe_link: &sc_consensus_babe::BabeLink| { - setup_handles = Some((block_import.clone(), babe_link.clone())); - }, - false, - )?; - - let node = sc_service_test::TestNetComponents::new( - task_manager, - client, - network, - transaction_pool, - ); - Ok((node, setup_handles.unwrap())) - }, - |service, &mut (ref mut block_import, ref babe_link)| { - let parent_id = BlockId::number(service.client().chain_info().best_number); - let parent_header = service.client().header(&parent_id).unwrap().unwrap(); - let parent_hash = parent_header.hash(); - let parent_number = *parent_header.number(); - - futures::executor::block_on(service.transaction_pool().maintain( - ChainEvent::NewBestBlock { - hash: parent_header.hash(), - tree_route: None, - }, - )); - - let mut proposer_factory = sc_basic_authorship::ProposerFactory::new( - service.spawn_handle(), - service.client(), - service.transaction_pool(), - None, - None, - ); - - let mut digest = Digest::default(); - - // even though there's only one authority some slots might be empty, - // so we must keep trying the next slots until we can claim one. - let (babe_pre_digest, epoch_descriptor) = loop { - let epoch_descriptor = babe_link - .epoch_changes() - .shared_data() - .epoch_descriptor_for_child_of( - descendent_query(&*service.client()), - &parent_hash, - parent_number, - slot.into(), - ) - .unwrap() - .unwrap(); - - let epoch = babe_link - .epoch_changes() - .shared_data() - .epoch_data(&epoch_descriptor, |slot| { - sc_consensus_babe::Epoch::genesis(&babe_link.config(), slot) - }) - .unwrap(); - - if let Some(babe_pre_digest) = - sc_consensus_babe::authorship::claim_slot(slot.into(), &epoch, &keystore) - .map(|(digest, _)| digest) - { - break (babe_pre_digest, epoch_descriptor); - } - - slot += 1; - }; - - let inherent_data = ( - sp_timestamp::InherentDataProvider::new( - std::time::Duration::from_millis(SLOT_DURATION * slot).into(), - ), - sp_consensus_babe::inherents::InherentDataProvider::new(slot.into()), - ) - .create_inherent_data() - .expect("Creates inherent data"); - - digest.push(::babe_pre_digest( - babe_pre_digest, - )); - - let new_block = futures::executor::block_on(async move { - let proposer = proposer_factory.init(&parent_header).await; - proposer - .unwrap() - .propose( - inherent_data, - digest, - std::time::Duration::from_secs(1), - None, - ) - .await - }) - .expect("Error making test block") - .block; - - let (new_header, new_body) = new_block.deconstruct(); - let pre_hash = new_header.hash(); - // sign the pre-sealed hash of the block and then - // add it to a digest item. - let to_sign = pre_hash.encode(); - let signature = Keystore::sign_with( - &*keystore, - sp_consensus_babe::AuthorityId::ID, - &alice.to_public_crypto_pair(), - &to_sign, - ) - .unwrap() - .unwrap() - .try_into() - .unwrap(); - let item = ::babe_seal(signature); - slot += 1; - - let mut params = BlockImportParams::new(BlockOrigin::File, new_header); - params.post_digests.push(item); - params.body = Some(new_body); - params.intermediates.insert( - Cow::from(INTERMEDIATE_KEY), - Box::new(BabeIntermediate:: { epoch_descriptor }) as Box<_>, - ); - params.fork_choice = Some(ForkChoiceStrategy::LongestChain); - - futures::executor::block_on(block_import.import_block(params, Default::default())) - .expect("error importing test block"); - }, - |service, _| { - let amount = 5 * CENTS; - let to: Address = AccountPublic::from(bob.public()).into_account().into(); - let from: Address = AccountPublic::from(charlie.public()).into_account().into(); - let genesis_hash = service.client().block_hash(0).unwrap().unwrap(); - let best_block_id = BlockId::number(service.client().chain_info().best_number); - let (spec_version, transaction_version) = { - let version = service.client().runtime_version_at(&best_block_id).unwrap(); - (version.spec_version, version.transaction_version) - }; - let signer = charlie.clone(); - - let function = Call::Balances(BalancesCall::transfer { - dest: to.into(), - value: amount, - }); - - let check_spec_version = frame_system::CheckSpecVersion::new(); - let check_tx_version = frame_system::CheckTxVersion::new(); - let check_genesis = frame_system::CheckGenesis::new(); - let check_era = frame_system::CheckEra::from(Era::Immortal); - let check_nonce = frame_system::CheckNonce::from(index); - let check_weight = frame_system::CheckWeight::new(); - let tx_payment = pallet_asset_tx_payment::ChargeAssetTxPayment::from(0, None); - let extra = ( - check_spec_version, - check_tx_version, - check_genesis, - check_era, - check_nonce, - check_weight, - tx_payment, - ); - let raw_payload = SignedPayload::from_raw( - function, - extra, - ( - spec_version, - transaction_version, - genesis_hash, - genesis_hash, - (), - (), - (), - ), - ); - let signature = raw_payload.using_encoded(|payload| signer.sign(payload)); - let (function, extra, _) = raw_payload.deconstruct(); - index += 1; - UncheckedExtrinsic::new_signed(function, from.into(), signature.into(), extra) - .into() - }, - ); - } - - #[test] - #[ignore] - fn test_consensus() { - sp_tracing::try_init_simple(); - - sc_service_test::consensus( - crate::chain_spec::tests::integration_test_config_with_two_authorities(), - |config| { - let NewFullBase { - task_manager, - client, - network, - transaction_pool, - .. - } = new_full_base(config, |_, _| (), false)?; - Ok(sc_service_test::TestNetComponents::new( - task_manager, - client, - network, - transaction_pool, - )) - }, - vec!["//Alice".into(), "//Bob".into()], - ) - } -} -*/ diff --git a/pallets/dactr/Cargo.toml b/pallets/dactr/Cargo.toml index ec9c23bd9..4db423731 100644 --- a/pallets/dactr/Cargo.toml +++ b/pallets/dactr/Cargo.toml @@ -60,13 +60,13 @@ std = [ "frame-system/std", "kate/std", "log/std", - "pallet-transaction-payment/std", - "pallet-utility/std", - "pallet-vector/std", "pallet-multisig/std", + "pallet-preimage/std", "pallet-proxy/std", "pallet-scheduler/std", - "pallet-preimage/std", + "pallet-transaction-payment/std", + "pallet-utility/std", + "pallet-vector/std", "scale-info/std", "serde", "sp-arithmetic/std", @@ -75,6 +75,7 @@ std = [ "sp-runtime-interface/std", "sp-runtime/std", "sp-std/std", + "frame-benchmarking/std", ] runtime-benchmarks = [ "frame-benchmarking", diff --git a/pallets/dactr/src/benchmarking.rs b/pallets/dactr/src/benchmarking.rs index ba4657142..52f0572f3 100644 --- a/pallets/dactr/src/benchmarking.rs +++ b/pallets/dactr/src/benchmarking.rs @@ -3,22 +3,20 @@ use super::*; use crate::Pallet; use avail_base::HeaderExtensionBuilderData; -use avail_core::{ - asdr::AppUncheckedExtrinsic, AppExtrinsic, BlockLengthColumns, BlockLengthRows, - BLOCK_CHUNK_SIZE, -}; -use codec::{Decode, Encode}; -use frame_benchmarking::{ - impl_benchmark_test_suite, v1::BenchmarkError, v2::*, whitelisted_caller, -}; +// use avail_core::{BlockLengthColumns, BlockLengthRows, HeaderVersion, BLOCK_CHUNK_SIZE}; +use codec::{Decode, DecodeWithMemTracking, Encode}; +use frame_benchmarking::{v1::BenchmarkError, v2::*, whitelisted_caller}; use frame_support::traits::Get; use frame_system::{ - limits::BlockLength, native::hosted_header_builder::hosted_header_builder, RawOrigin, + // limits::BlockLength, native::hosted_header_builder::hosted_header_builder, + Config as SystemConfig, + RawOrigin, }; use kate::Seed; use scale_info::{StaticTypeInfo, TypeInfo}; use sp_core::H256; use sp_runtime::{ + generic::UncheckedExtrinsic, traits::{Bounded, DispatchInfoOf, Dispatchable, SignedExtension}, transaction_validity::{TransactionValidity, TransactionValidityError}, Perbill, @@ -27,13 +25,16 @@ use sp_std::{fmt::Debug, iter::repeat, vec, vec::Vec}; use crate::pallet::Call as DACall; -type RuntimeCallOf = ::RuntimeCall; +#[cfg(feature = "runtime-benchmarks")] +const MAX_DATA_B: u32 = 1024 * 1024; // 1 MiB just for weights -fn assert_last_event(generic_event: ::RuntimeEvent) { +type RuntimeCallOf = ::RuntimeCall; + +fn assert_last_event(generic_event: ::RuntimeEvent) { frame_system::Pallet::::assert_last_event(generic_event.into()); } -#[derive(PartialEq, Eq, Clone, Debug, Encode, Decode, TypeInfo)] +#[derive(PartialEq, Eq, Clone, Debug, Encode, Decode, DecodeWithMemTracking, TypeInfo)] pub struct SignedExtensionUnused< T: frame_system::Config + Send + Sync + pallet::Config + Debug + StaticTypeInfo, >( @@ -123,43 +124,43 @@ where }; let runtime_call: ::RuntimeCall = call.into(); let unchecked_extrinsic = - AppUncheckedExtrinsic::<(), RuntimeCallOf, (), SignedExtensionUnused>::new_unsigned( + UncheckedExtrinsic::<(), RuntimeCallOf, (), SignedExtensionUnused>::new_unsigned( runtime_call, ); unchecked_extrinsic.encode() } -fn commitment_parameters( - rows: u32, - cols: u32, -) -> (Vec, H256, BlockLength, u32, [u8; 32]) -where - T: frame_system::Config + pallet::Config, -{ - let seed = [0u8; 32]; - let root = H256::zero(); - let block_number: u32 = 0; - let data_length = T::MaxAppDataLength::get(); - - let rows = BlockLengthRows(prev_power_of_two(rows)); - let cols = BlockLengthColumns(cols); - - let mut nb_tx = 4; // Value set depending on MaxAppDataLength (512 kb) to reach 2 mb - let max_tx: u32 = - rows.0 * cols.0 * (BLOCK_CHUNK_SIZE.get().checked_sub(2).unwrap()) / data_length; - if nb_tx > max_tx { - nb_tx = max_tx; - } - - let block_length = - BlockLength::with_normal_ratio(rows, cols, BLOCK_CHUNK_SIZE, DA_DISPATCH_RATIO_PERBILL) - .unwrap(); - let data: Vec = generate_bounded::>(data_length).to_vec(); - let txs = vec![AppExtrinsic::from(data.to_vec()); nb_tx as usize]; - - (txs, root, block_length, block_number, seed) -} +// fn commitment_parameters( +// rows: u32, +// cols: u32, +// ) -> (Vec, H256, BlockLength, u32, [u8; 32]) +// where +// T: frame_system::Config + pallet::Config, +// { +// let seed = [0u8; 32]; +// let root = H256::zero(); +// let block_number: u32 = 0; +// let data_length = T::MaxAppDataLength::get(); + +// let rows = BlockLengthRows(prev_power_of_two(rows)); +// let cols = BlockLengthColumns(cols); + +// let mut nb_tx = 4; // Value set depending on MaxAppDataLength (512 kb) to reach 2 mb +// let max_tx: u32 = +// rows.0 * cols.0 * (BLOCK_CHUNK_SIZE.get().checked_sub(2).unwrap()) / data_length; +// if nb_tx > max_tx { +// nb_tx = max_tx; +// } + +// let block_length = +// BlockLength::with_normal_ratio(rows, cols, BLOCK_CHUNK_SIZE, DA_DISPATCH_RATIO_PERBILL) +// .unwrap(); +// let data: Vec = generate_bounded::>(data_length).to_vec(); +// let txs = vec![AppExtrinsic::from(data.to_vec()); nb_tx as usize]; + +// (txs, root, block_length, block_number, seed) +// } #[benchmarks( where ::RuntimeCall: From>, T: Send + Sync + Debug + StaticTypeInfo @@ -203,7 +204,7 @@ mod benchmarks { } #[benchmark] - fn submit_data(i: Linear<1, { T::MaxAppDataLength::get() }>) -> Result<(), BenchmarkError> { + fn submit_data(i: Linear<1, MAX_DATA_B>) -> Result<(), BenchmarkError> { let caller = whitelisted_caller::(); let origin = RawOrigin::Signed(caller.clone()); let data = generate_bounded::>(i); @@ -239,7 +240,7 @@ mod benchmarks { } #[benchmark] - fn data_root(i: Linear<0, { T::MaxAppDataLength::get() }>) -> Result<(), BenchmarkError> { + fn data_root(i: Linear<0, MAX_DATA_B>) -> Result<(), BenchmarkError> { let data = generate_bounded::>(i); let opaque = submit_data_ext::(data); @@ -502,47 +503,47 @@ mod benchmarks { Ok(()) } - #[benchmark(extra)] - fn commitment_builder_64( - i: Linear<32, { T::MaxBlockRows::get().0 }>, - ) -> Result<(), BenchmarkError> { - let (txs, root, block_length, block_number, seed) = commitment_parameters::(i, 64); - - #[block] - { - hosted_header_builder::build(txs, root, block_length, block_number, seed); - } - - Ok(()) - } - - #[benchmark(extra)] - fn commitment_builder_128( - i: Linear<32, { T::MaxBlockRows::get().0 }>, - ) -> Result<(), BenchmarkError> { - let (txs, root, block_length, block_number, seed) = commitment_parameters::(i, 128); - - #[block] - { - hosted_header_builder::build(txs, root, block_length, block_number, seed); - } - - Ok(()) - } - - #[benchmark(extra)] - fn commitment_builder_256( - i: Linear<32, { T::MaxBlockRows::get().0 }>, - ) -> Result<(), BenchmarkError> { - let (txs, root, block_length, block_number, seed) = commitment_parameters::(i, 256); - - #[block] - { - hosted_header_builder::build(txs, root, block_length, block_number, seed); - } - - Ok(()) - } + // #[benchmark(extra)] + // fn commitment_builder_64( + // i: Linear<32, { T::MaxBlockRows::get().0 }>, + // ) -> Result<(), BenchmarkError> { + // let (txs, root, block_length, header_version) = commitment_parameters::(i, 64); + + // #[block] + // { + // hosted_header_builder::build_extension(txs, root, block_length, header_version); + // } + + // Ok(()) + // } + + // #[benchmark(extra)] + // fn commitment_builder_128( + // i: Linear<32, { T::MaxBlockRows::get().0 }>, + // ) -> Result<(), BenchmarkError> { + // let (txs, root, block_length, header_version) = commitment_parameters::(i, 128); + + // #[block] + // { + // hosted_header_builder::build_extension(txs, root, block_length, header_version); + // } + + // Ok(()) + // } + + // #[benchmark(extra)] + // fn commitment_builder_256( + // i: Linear<32, { T::MaxBlockRows::get().0 }>, + // ) -> Result<(), BenchmarkError> { + // let (txs, root, block_length, header_version) = commitment_parameters::(i, 256); + + // #[block] + // { + // hosted_header_builder::build_extension(txs, root, block_length, header_version); + // } + + // Ok(()) + // } impl_benchmark_test_suite!(Pallet, crate::mock::new_benchmark_ext(), crate::mock::Test); } diff --git a/pallets/dactr/src/extensions/native.rs b/pallets/dactr/src/extensions/native.rs index d3f96bf93..6c9db052a 100644 --- a/pallets/dactr/src/extensions/native.rs +++ b/pallets/dactr/src/extensions/native.rs @@ -1,16 +1,32 @@ use kate::Seed; use sp_runtime::SaturatedConversion; -use sp_runtime_interface::runtime_interface; +use sp_runtime_interface::{ + pass_by::{AllocateAndReturnFatPointer, PassFatPointerAndDecode, PassFatPointerAndRead}, + runtime_interface, +}; use sp_std::vec::Vec; -pub type DaCommitments = Vec; +pub type DaCommitments = AllocateAndReturnFatPointer>; /// Hosted function to build the DA commitments. #[runtime_interface] pub trait HostedCommitmentBuilder { - fn build_da_commitments(data: &[u8], cols: u32, rows: u32, seed: Seed) -> DaCommitments { + fn build_da_commitments( + data: PassFatPointerAndRead<&[u8]>, + cols: u32, + rows: u32, + seed: PassFatPointerAndDecode, + ) -> DaCommitments { let cols: usize = cols.saturated_into(); let rows: usize = rows.saturated_into(); - da_commitment::build_da_commitments::build_da_commitments(data, cols, rows, seed) + #[cfg(feature = "std")] + { + da_commitment::build_da_commitments::build_da_commitments(data, cols, rows, seed) + } + #[cfg(not(feature = "std"))] + { + // one should never reach here + Vec::new() + } } } diff --git a/pallets/dactr/src/lib.rs b/pallets/dactr/src/lib.rs index 5cfb56e11..009afc100 100644 --- a/pallets/dactr/src/lib.rs +++ b/pallets/dactr/src/lib.rs @@ -16,7 +16,7 @@ use frame_support::{ weights::Weight, }; use frame_system::{limits::BlockLength, pallet::DynamicBlockLength}; -use sp_arithmetic::traits::{CheckedAdd, One, SaturatedConversion}; +use sp_arithmetic::traits::SaturatedConversion; use sp_core::H256; use sp_io::hashing::keccak_256; use sp_runtime::traits::Convert; @@ -109,17 +109,11 @@ pub mod pallet { type SessionDataProvider = (); type BlobVouchFeeReserve = BlobVouchFeeReserve; type WeightInfo = (); - #[inject_runtime_type] - type RuntimeEvent = (); } } #[pallet::config(with_default)] pub trait Config: frame_system::Config { - /// Pallet Event - #[pallet::no_default_bounds] - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - /// Currency mechanism used for deposits. #[pallet::no_default] type Currency: ReservableCurrency; diff --git a/pallets/dactr/src/mock.rs b/pallets/dactr/src/mock.rs index a05fbaed5..2a33f1f7c 100644 --- a/pallets/dactr/src/mock.rs +++ b/pallets/dactr/src/mock.rs @@ -80,7 +80,6 @@ impl frame_system::Config for Test { type BlockHashCount = BlockHashCount; type HeaderExtensionBuilder = HeaderExtensionBuilder; type PalletInfo = PalletInfo; - type Randomness = TestRandomness; type Extrinsic = Extrinsic; } diff --git a/pallets/dactr/src/types.rs b/pallets/dactr/src/types.rs index 7fa94e065..77d30076c 100644 --- a/pallets/dactr/src/types.rs +++ b/pallets/dactr/src/types.rs @@ -1,6 +1,6 @@ use crate::Config; use avail_core::AppId; -use codec::Encode; +use codec::{DecodeWithMemTracking, Encode}; use frame_support::pallet_prelude::*; use scale_info::prelude::string::String; #[cfg(feature = "std")] @@ -12,7 +12,8 @@ use sp_core::{sr25519, H256}; use sp_runtime::traits::Verify; use sp_runtime::AccountId32; use sp_runtime::Perbill; -use sp_staking::offence::{DisableStrategy, Offence}; +// use sp_staking::offence::{DisableStrategy, Offence}; +use sp_staking::offence::Offence; use sp_staking::SessionIndex; use sp_std::cmp::Ordering; use sp_std::collections::btree_map::BTreeMap; @@ -53,7 +54,7 @@ impl SessionDataProvider for () { } } -#[derive(Clone, Encode, Decode, TypeInfo, PartialEq, RuntimeDebug)] +#[derive(Clone, Encode, Decode, DecodeWithMemTracking, TypeInfo, PartialEq, RuntimeDebug)] pub struct BlobTxSummaryRuntime { pub hash: H256, pub tx_index: u32, @@ -87,7 +88,9 @@ impl BlobTxSummaryRuntime { } /// Structure for blob runtime parameters -#[derive(Debug, Clone, PartialEq, Eq, Encode, Decode, MaxEncodedLen, TypeInfo)] +#[derive( + Debug, Clone, PartialEq, Eq, Encode, Decode, DecodeWithMemTracking, MaxEncodedLen, TypeInfo, +)] pub struct BlobRuntimeParameters { /// Maximum size of a blob, need to change the rpc request and response size to handle this pub max_blob_size: u64, @@ -141,7 +144,17 @@ impl Default for BlobRuntimeParameters { /// Structure used when there is an offence reported by validators client side. /// They all need some vouching from accusing validators and it needs to reach a threshold to be considered valid. -#[derive(RuntimeDebug, Clone, PartialEq, Eq, Encode, Decode, MaxEncodedLen, TypeInfo)] +#[derive( + RuntimeDebug, + Clone, + PartialEq, + Eq, + Encode, + Decode, + DecodeWithMemTracking, + MaxEncodedLen, + TypeInfo, +)] pub enum BlobOffenceKind { SummaryNbBlobMismatch, InvalidNbOfOwnershipForBlob, @@ -152,7 +165,17 @@ pub enum BlobOffenceKind { OmittedValidatorForBlob, } -#[derive(RuntimeDebug, Clone, PartialEq, Eq, Encode, Decode, MaxEncodedLen, TypeInfo)] +#[derive( + RuntimeDebug, + Clone, + PartialEq, + Eq, + Encode, + Decode, + DecodeWithMemTracking, + MaxEncodedLen, + TypeInfo, +)] pub struct ValidatorVoucher { pub session_index: u32, pub validator: AccountId32, @@ -169,7 +192,17 @@ impl ValidatorVoucher { } } -#[derive(RuntimeDebug, Clone, PartialEq, Eq, Encode, Decode, MaxEncodedLen, TypeInfo)] +#[derive( + RuntimeDebug, + Clone, + PartialEq, + Eq, + Encode, + Decode, + DecodeWithMemTracking, + MaxEncodedLen, + TypeInfo, +)] pub struct OffenceKey { pub block_hash: H256, pub kind: BlobOffenceKind, @@ -354,7 +387,7 @@ impl Offence for BlobOffence self.validator_set_count } - fn disable_strategy(&self) -> DisableStrategy { - DisableStrategy::Never - } + // fn disable_strategy(&self) -> DisableStrategy { + // DisableStrategy::Never + // } } diff --git a/pallets/mandate/src/benchmarking.rs b/pallets/mandate/src/benchmarking.rs index 042e81377..5f6a4a895 100644 --- a/pallets/mandate/src/benchmarking.rs +++ b/pallets/mandate/src/benchmarking.rs @@ -2,7 +2,7 @@ use super::*; use crate::Pallet; -use frame_benchmarking::{impl_benchmark_test_suite, v1::BenchmarkError, v2::*}; +use frame_benchmarking::{v1::BenchmarkError, v2::*}; use frame_system::RawOrigin; #[benchmarks( diff --git a/pallets/mandate/src/lib.rs b/pallets/mandate/src/lib.rs index 6855ecb87..0217979e9 100644 --- a/pallets/mandate/src/lib.rs +++ b/pallets/mandate/src/lib.rs @@ -24,9 +24,6 @@ pub mod pallet { #[pallet::config] pub trait Config: frame_system::Config { - /// The overarching event type. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - /// A sudo-able call. type RuntimeCall: Parameter + UnfilteredDispatchable @@ -48,7 +45,7 @@ pub mod pallet { #[pallet::weight({ let dispatch_info = call.get_dispatch_info(); ( - T::WeightInfo::mandate().saturating_add(dispatch_info.weight), + T::WeightInfo::mandate().saturating_add(dispatch_info.call_weight), dispatch_info.class ) })] diff --git a/pallets/mandate/src/mock.rs b/pallets/mandate/src/mock.rs index 36a6b5e93..aad1a3def 100644 --- a/pallets/mandate/src/mock.rs +++ b/pallets/mandate/src/mock.rs @@ -35,7 +35,6 @@ impl frame_system::Config for Test { frame_system::native::hosted_header_builder::da::HeaderExtensionBuilder; type OnSetCode = (); type PalletInfo = PalletInfo; - type Randomness = frame_system::test_utils::TestRandomness; type Extrinsic = Extrinsic; } @@ -62,7 +61,6 @@ impl pallet_collective::Config for Test { impl pallet_mandate::Config for Test { type ApprovedOrigin = EitherOf, HalfOfTechnicalCommittee>; type RuntimeCall = RuntimeCall; - type RuntimeEvent = RuntimeEvent; type WeightInfo = (); } diff --git a/pallets/system/Cargo.toml b/pallets/system/Cargo.toml index 33790ed40..ed697c4ac 100644 --- a/pallets/system/Cargo.toml +++ b/pallets/system/Cargo.toml @@ -62,6 +62,7 @@ std = [ "binary-merkle-tree/std", "bounded-collections/std", "codec/std", + "dep:avail-observability", "frame-support/std", "kate/std", "log/std", @@ -75,7 +76,6 @@ std = [ "sp-std/std", "sp-version/std", "sp-weights/std", - "dep:avail-observability", ] runtime-benchmarks = [ "frame-support/runtime-benchmarks", @@ -92,7 +92,7 @@ experimental = [ "frame-support/experimental" ] # NOTE: Only for testing and development purposes. header_commitment_corruption = [] -# Enables secure seed generation using for padding fill during the matrix +# Enables secure seed generation using for padding fill during the matrix # generation for Kate commitment. # NOTE: WIP because that affects the Data Availability Protocol used during # the block import process. @@ -100,7 +100,7 @@ secure_padding_fill = [] testing-environment = [] -ts = ["ts-rs"] +ts = [ "ts-rs" ] [[bench]] name = "bench" diff --git a/pallets/system/benchmarking/src/lib.rs b/pallets/system/benchmarking/src/lib.rs index 4bb5d3f5e..aa3e17e03 100644 --- a/pallets/system/benchmarking/src/lib.rs +++ b/pallets/system/benchmarking/src/lib.rs @@ -20,6 +20,7 @@ #![cfg_attr(not(feature = "std"), no_std)] #![cfg(feature = "runtime-benchmarks")] +use avail_core::HeaderVersion; use codec::Encode; use frame_benchmarking::{impl_benchmark_test_suite, v2::*}; use frame_support::{dispatch::DispatchClass, storage, traits::Get}; @@ -31,6 +32,8 @@ use sp_runtime::traits::Hash; use sp_std::{prelude::*, vec}; mod mock; +#[cfg(feature = "runtime-benchmarks")] +const MAX_REMARK_B: u32 = 1024 * 1024; // 1 MiB just for weights pub struct Pallet(System); pub trait Config: frame_system::Config { @@ -59,9 +62,7 @@ mod benchmarks { use super::*; #[benchmark] - fn remark( - b: Linear<0, { *T::BlockLength::get().max.get(DispatchClass::Normal) as u32 }>, - ) -> Result<(), BenchmarkError> { + fn remark(b: Linear<0, MAX_REMARK_B>) -> Result<(), BenchmarkError> { let remark_message = vec![1; b as usize]; let caller = whitelisted_caller(); @@ -72,9 +73,7 @@ mod benchmarks { } #[benchmark] - fn remark_with_event( - b: Linear<0, { *T::BlockLength::get().max.get(DispatchClass::Normal) as u32 }>, - ) -> Result<(), BenchmarkError> { + fn remark_with_event(b: Linear<0, MAX_REMARK_B>) -> Result<(), BenchmarkError> { let remark_message = vec![1; b as usize]; let caller: T::AccountId = whitelisted_caller(); let hash = T::Hashing::hash(&remark_message[..]); @@ -245,8 +244,12 @@ mod benchmarks { #[block] { - let _header = - T::HeaderExtensionBuilder::build(app_extrinsics, data_root, block_length, 0); + let _header = T::HeaderExtensionBuilder::build_extension( + app_extrinsics, + data_root, + block_length, + HeaderVersion::V4, + ); } Ok(()) diff --git a/pallets/system/rpc/runtime-api/Cargo.toml b/pallets/system/rpc/runtime-api/Cargo.toml index 45849b252..9ec38379b 100644 --- a/pallets/system/rpc/runtime-api/Cargo.toml +++ b/pallets/system/rpc/runtime-api/Cargo.toml @@ -23,5 +23,5 @@ ts-rs = { workspace = true, optional = true } [features] default = [ "std" ] -std = [ "codec/std", "sp-api/std", "serde/std", "frame-system/std" ] -ts = ["ts-rs"] +std = [ "codec/std", "frame-system/std", "serde/std", "sp-api/std" ] +ts = [ "ts-rs" ] diff --git a/pallets/system/src/extensions/authorize_call.rs b/pallets/system/src/extensions/authorize_call.rs new file mode 100644 index 000000000..7dac2ef91 --- /dev/null +++ b/pallets/system/src/extensions/authorize_call.rs @@ -0,0 +1,366 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::Config; +use frame_support::{ + dispatch::DispatchInfo, + pallet_prelude::{ + Decode, DecodeWithMemTracking, DispatchResult, Encode, TransactionSource, TypeInfo, Weight, + }, + traits::Authorize, + CloneNoBound, EqNoBound, PartialEqNoBound, RuntimeDebugNoBound, +}; +use sp_runtime::{ + traits::{ + AsTransactionAuthorizedOrigin, Dispatchable, Implication, PostDispatchInfoOf, + TransactionExtension, ValidateResult, + }, + transaction_validity::TransactionValidityError, +}; + +/// A transaction extension that authorizes some calls (i.e. dispatchable functions) to be +/// included in the block. +/// +/// This transaction extension use the runtime implementation of the trait +/// [`Authorize`](frame_support::traits::Authorize) to set the validity of the transaction. +#[derive( + Encode, + Decode, + CloneNoBound, + EqNoBound, + PartialEqNoBound, + TypeInfo, + RuntimeDebugNoBound, + DecodeWithMemTracking, +)] +#[scale_info(skip_type_params(T))] +pub struct AuthorizeCall(core::marker::PhantomData); + +impl AuthorizeCall { + pub fn new() -> Self { + Self(Default::default()) + } +} + +impl TransactionExtension for AuthorizeCall +where + T::RuntimeCall: Dispatchable, +{ + const IDENTIFIER: &'static str = "AuthorizeCall"; + type Implicit = (); + type Val = Weight; + type Pre = Weight; + + fn validate( + &self, + origin: T::RuntimeOrigin, + call: &T::RuntimeCall, + _info: &DispatchInfo, + _len: usize, + _self_implicit: Self::Implicit, + _inherited_implication: &impl Implication, + source: TransactionSource, + ) -> ValidateResult { + if !origin.is_transaction_authorized() { + if let Some(authorize) = call.authorize(source) { + return authorize.map(|(validity, unspent)| { + (validity, unspent, crate::Origin::::Authorized.into()) + }); + } + } + + Ok((Default::default(), Weight::zero(), origin)) + } + + fn prepare( + self, + val: Self::Val, + _origin: &T::RuntimeOrigin, + _call: &T::RuntimeCall, + _info: &DispatchInfo, + _len: usize, + ) -> Result { + Ok(val) + } + + fn post_dispatch_details( + pre: Self::Pre, + _info: &DispatchInfo, + _post_info: &PostDispatchInfoOf, + _len: usize, + _result: &DispatchResult, + ) -> Result { + Ok(pre) + } + + fn weight(&self, call: &T::RuntimeCall) -> Weight { + call.weight_of_authorize() + } +} + +#[cfg(test)] +mod tests { + use crate::test_utils::TestRandomness; + use crate::{self as frame_system, native::hosted_header_builder::da::BlockNumber}; + use codec::Encode; + use frame_support::{ + derive_impl, dispatch::GetDispatchInfo, pallet_prelude::TransactionSource, + traits::OriginTrait, + }; + use sp_runtime::{ + testing::UintAuthorityId, + traits::{Applyable, Checkable, TransactionExtension as _, TxBaseImplication}, + transaction_validity::{ + InvalidTransaction, TransactionSource::External, TransactionValidityError, + }, + BuildStorage, DispatchError, + }; + + #[frame_support::pallet] + pub mod pallet1 { + use crate as frame_system; + use frame_support::pallet_prelude::*; + use frame_system::pallet_prelude::*; + + pub const CALL_WEIGHT: Weight = Weight::from_all(4); + pub const AUTH_WEIGHT: Weight = Weight::from_all(5); + + pub fn valid_transaction() -> ValidTransaction { + ValidTransaction { + priority: 10, + provides: vec![1u8.encode()], + requires: vec![], + longevity: 1000, + propagate: true, + } + } + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::config] + pub trait Config: frame_system::Config {} + + #[pallet::call] + impl Pallet { + #[pallet::weight(CALL_WEIGHT)] + #[pallet::call_index(0)] + #[pallet::authorize(|_source, valid| if *valid { + Ok((valid_transaction(), Weight::zero())) + } else { + Err(TransactionValidityError::Invalid(InvalidTransaction::Call)) + })] + #[pallet::weight_of_authorize(AUTH_WEIGHT)] + pub fn call1(origin: OriginFor, valid: bool) -> DispatchResult { + crate::ensure_authorized(origin)?; + let _ = valid; + Ok(()) + } + } + } + + #[frame_support::runtime] + mod runtime { + #[runtime::runtime] + #[runtime::derive( + RuntimeCall, + RuntimeEvent, + RuntimeError, + RuntimeOrigin, + RuntimeFreezeReason, + RuntimeHoldReason, + RuntimeSlashReason, + RuntimeLockId, + RuntimeTask + )] + pub struct Runtime; + + #[runtime::pallet_index(0)] + pub type System = frame_system::Pallet; + + #[runtime::pallet_index(1)] + pub type Pallet1 = pallet1::Pallet; + } + + pub type TransactionExtension = (frame_system::AuthorizeCall,); + + pub type Header = sp_runtime::generic::Header; + pub type Block = avail_core::DaBlock< + avail_core::header::Header, + UncheckedExtrinsic, + >; + pub type UncheckedExtrinsic = sp_runtime::generic::UncheckedExtrinsic< + u64, + RuntimeCall, + UintAuthorityId, + TransactionExtension, + >; + + #[derive_impl(frame_system::config_preludes::TestDefaultConfig)] + impl frame_system::Config for Runtime { + type Block = Block; + type HeaderExtensionBuilder = + frame_system::native::hosted_header_builder::da::HeaderExtensionBuilder; + type Randomness = TestRandomness; + type Extrinsic = UncheckedExtrinsic; + } + + impl pallet1::Config for Runtime {} + + pub fn new_test_ext() -> sp_io::TestExternalities { + let t = RuntimeGenesisConfig { + ..Default::default() + } + .build_storage() + .unwrap(); + t.into() + } + + #[test] + fn valid_transaction() { + let call = RuntimeCall::Pallet1(pallet1::Call::call1 { valid: true }); + + new_test_ext().execute_with(|| { + let tx_ext = (frame_system::AuthorizeCall::::new(),); + + let tx = UncheckedExtrinsic::new_transaction(call, tx_ext); + + let info = tx.get_dispatch_info(); + let len = tx.using_encoded(|e| e.len()); + + let checked = Checkable::check(tx, &frame_system::ChainContext::::default()) + .expect("Transaction is general so signature is good"); + + let valid_tx = checked + .validate::(TransactionSource::External, &info, len) + .expect("call valid"); + + let dispatch_result = checked + .apply::(&info, len) + .expect("Transaction is valid"); + + assert!(dispatch_result.is_ok()); + + let post_info = dispatch_result.unwrap_or_else(|e| e.post_info); + + assert_eq!(valid_tx, pallet1::valid_transaction()); + assert_eq!(info.call_weight, pallet1::CALL_WEIGHT); + assert_eq!(info.extension_weight, pallet1::AUTH_WEIGHT); + assert_eq!( + post_info.actual_weight, + Some(pallet1::CALL_WEIGHT + pallet1::AUTH_WEIGHT) + ); + }); + } + + #[test] + fn invalid_transaction_fail_authorization() { + let call = RuntimeCall::Pallet1(pallet1::Call::call1 { valid: false }); + + new_test_ext().execute_with(|| { + let tx_ext = (frame_system::AuthorizeCall::::new(),); + + let tx = UncheckedExtrinsic::new_transaction(call, tx_ext); + + let info = tx.get_dispatch_info(); + let len = tx.using_encoded(|e| e.len()); + + let checked = Checkable::check(tx, &frame_system::ChainContext::::default()) + .expect("Transaction is general so signature is good"); + + let validate_err = checked + .validate::(TransactionSource::External, &info, len) + .expect_err("call is invalid"); + + let apply_err = checked + .apply::(&info, len) + .expect_err("Transaction is invalid"); + + assert_eq!( + validate_err, + TransactionValidityError::Invalid(InvalidTransaction::Call) + ); + assert_eq!( + apply_err, + TransactionValidityError::Invalid(InvalidTransaction::Call) + ); + assert_eq!(info.call_weight, pallet1::CALL_WEIGHT); + assert_eq!(info.extension_weight, pallet1::AUTH_WEIGHT); + }); + } + + #[test] + fn failing_transaction_invalid_origin() { + let call = RuntimeCall::Pallet1(pallet1::Call::call1 { valid: true }); + + new_test_ext().execute_with(|| { + let tx_ext = (frame_system::AuthorizeCall::::new(),); + + let tx = UncheckedExtrinsic::new_signed(call, 42, 42.into(), tx_ext); + + let info = tx.get_dispatch_info(); + let len = tx.using_encoded(|e| e.len()); + + let checked = Checkable::check(tx, &frame_system::ChainContext::::default()) + .expect("Signature is good"); + + checked + .validate::(TransactionSource::External, &info, len) + .expect("Transaction is valid, tx ext doesn't deny none"); + + let dispatch_res = checked + .apply::(&info, len) + .expect("Transaction is valid") + .expect_err("Transaction is failing, because origin is wrong"); + + assert_eq!(dispatch_res.error, DispatchError::BadOrigin); + assert_eq!(info.call_weight, pallet1::CALL_WEIGHT); + assert_eq!(info.extension_weight, pallet1::AUTH_WEIGHT); + }); + } + + #[test] + fn call_filter_preserved() { + new_test_ext().execute_with(|| { + let ext = frame_system::AuthorizeCall::::new(); + let filtered_call = RuntimeCall::System(frame_system::Call::remark { remark: vec![] }); + + let origin = { + let mut o: RuntimeOrigin = crate::Origin::::Signed(42).into(); + let filter_clone = filtered_call.clone(); + o.add_filter(move |call| filter_clone != *call); + o + }; + + assert!(!origin.filter_call(&filtered_call)); + + let (_, _, new_origin) = ext + .validate( + origin, + &RuntimeCall::Pallet1(pallet1::Call::call1 { valid: true }), + &crate::DispatchInfo::default(), + Default::default(), + (), + &TxBaseImplication(()), + External, + ) + .expect("valid"); + + assert!(!new_origin.filter_call(&filtered_call)); + }); + } +} diff --git a/pallets/system/src/extensions/check_genesis.rs b/pallets/system/src/extensions/check_genesis.rs index c01f1f915..81131e4b7 100644 --- a/pallets/system/src/extensions/check_genesis.rs +++ b/pallets/system/src/extensions/check_genesis.rs @@ -15,64 +15,56 @@ // See the License for the specific language governing permissions and // limitations under the License. -use codec::{Decode, Encode}; +use crate::{pallet_prelude::BlockNumberFor, Config, Pallet}; +use codec::{Decode, DecodeWithMemTracking, Encode}; use scale_info::TypeInfo; use sp_runtime::{ - traits::{DispatchInfoOf, SignedExtension, Zero}, + impl_tx_ext_default, + traits::{TransactionExtension, Zero}, transaction_validity::TransactionValidityError, }; -use crate::{pallet_prelude::BlockNumberFor, Config, Pallet}; - /// Genesis hash check to provide replay protection between different networks. /// /// # Transaction Validity /// /// Note that while a transaction with invalid `genesis_hash` will fail to be decoded, /// the extension does not affect any other fields of `TransactionValidity` directly. -#[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] +#[derive(Encode, Decode, DecodeWithMemTracking, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckGenesis(sp_std::marker::PhantomData); +pub struct CheckGenesis(core::marker::PhantomData); -impl sp_std::fmt::Debug for CheckGenesis { +impl core::fmt::Debug for CheckGenesis { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckGenesis") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } impl CheckGenesis { - /// Creates new `SignedExtension` to check genesis hash. - #[allow(clippy::new_without_default)] + /// Creates new `TransactionExtension` to check genesis hash. pub fn new() -> Self { - Self(sp_std::marker::PhantomData) + Self(core::marker::PhantomData) } } -impl SignedExtension for CheckGenesis { - type AccountId = T::AccountId; - type AdditionalSigned = T::Hash; - type Call = ::RuntimeCall; - type Pre = (); - +impl TransactionExtension for CheckGenesis { const IDENTIFIER: &'static str = "CheckGenesis"; - - fn additional_signed(&self) -> Result { - Ok(>::block_hash(>::zero())) + type Implicit = T::Hash; + fn implicit(&self) -> Result { + Ok(>::block_hash(BlockNumberFor::::zero())) } - - fn pre_dispatch( - self, - who: &Self::AccountId, - call: &Self::Call, - info: &DispatchInfoOf, - len: usize, - ) -> Result { - self.validate(who, call, info, len).map(|_| ()) + type Val = (); + type Pre = (); + fn weight(&self, _: &T::RuntimeCall) -> sp_weights::Weight { + // All transactions will always read the hash of the genesis block, so to avoid + // charging this multiple times in a block we manually set the proof size to 0. + ::check_genesis().set_proof_size(0) } + impl_tx_ext_default!(T::RuntimeCall; validate prepare); } diff --git a/pallets/system/src/extensions/check_mortality.rs b/pallets/system/src/extensions/check_mortality.rs index de1abaa8b..b307160d7 100644 --- a/pallets/system/src/extensions/check_mortality.rs +++ b/pallets/system/src/extensions/check_mortality.rs @@ -15,70 +15,53 @@ // See the License for the specific language governing permissions and // limitations under the License. -use codec::{Decode, Encode}; +use crate::{pallet_prelude::BlockNumberFor, BlockHash, Config, Pallet}; +use codec::{Decode, DecodeWithMemTracking, Encode}; +use frame_support::pallet_prelude::TransactionSource; use scale_info::TypeInfo; use sp_runtime::{ generic::Era, - traits::{DispatchInfoOf, SaturatedConversion, SignedExtension}, - transaction_validity::{ - InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction, - }, + impl_tx_ext_default, + traits::{DispatchInfoOf, SaturatedConversion, TransactionExtension, ValidateResult}, + transaction_validity::{InvalidTransaction, TransactionValidityError, ValidTransaction}, }; -use crate::{pallet_prelude::BlockNumberFor, BlockHash, Config, Pallet}; - /// Check for transaction mortality. /// +/// The extension adds [`Era`] to every signed extrinsic. It also contributes to the signed data, by +/// including the hash of the block at [`Era::birth`]. +/// /// # Transaction Validity /// /// The extension affects `longevity` of the transaction according to the [`Era`] definition. -#[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] +#[derive(Encode, Decode, DecodeWithMemTracking, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckMortality(pub Era, sp_std::marker::PhantomData); +pub struct CheckMortality(pub Era, core::marker::PhantomData); impl CheckMortality { /// utility constructor. Used only in client/factory code. pub fn from(era: Era) -> Self { - Self(era, sp_std::marker::PhantomData) + Self(era, core::marker::PhantomData) } } -impl sp_std::fmt::Debug for CheckMortality { +impl core::fmt::Debug for CheckMortality { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckMortality({:?})", self.0) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } -impl SignedExtension for CheckMortality { - type AccountId = T::AccountId; - type AdditionalSigned = T::Hash; - type Call = T::RuntimeCall; - type Pre = (); - +impl TransactionExtension for CheckMortality { const IDENTIFIER: &'static str = "CheckMortality"; + type Implicit = T::Hash; - fn validate( - &self, - _who: &Self::AccountId, - _call: &Self::Call, - _info: &DispatchInfoOf, - _len: usize, - ) -> TransactionValidity { - let current_u64 = >::block_number().saturated_into::(); - let valid_till = self.0.death(current_u64); - Ok(ValidTransaction { - longevity: valid_till.saturating_sub(current_u64), - ..Default::default() - }) - } - - fn additional_signed(&self) -> Result { + fn implicit(&self) -> Result { let current_u64 = >::block_number().saturated_into::(); let n = self .0 @@ -90,28 +73,56 @@ impl SignedExtension for CheckMortality { Ok(>::block_hash(n)) } } + type Pre = (); + type Val = (); + + fn weight(&self, _: &T::RuntimeCall) -> sp_weights::Weight { + if self.0.is_immortal() { + // All immortal transactions will always read the hash of the genesis block, so to avoid + // charging this multiple times in a block we manually set the proof size to 0. + ::check_mortality_immortal_transaction() + .set_proof_size(0) + } else { + ::check_mortality_mortal_transaction() + } + } - fn pre_dispatch( - self, - who: &Self::AccountId, - call: &Self::Call, - info: &DispatchInfoOf, - len: usize, - ) -> Result { - self.validate(who, call, info, len).map(|_| ()) + fn validate( + &self, + origin: ::RuntimeOrigin, + _call: &T::RuntimeCall, + _info: &DispatchInfoOf, + _len: usize, + _self_implicit: Self::Implicit, + _inherited_implication: &impl Encode, + _source: TransactionSource, + ) -> ValidateResult { + let current_u64 = >::block_number().saturated_into::(); + let valid_till = self.0.death(current_u64); + Ok(( + ValidTransaction { + longevity: valid_till.saturating_sub(current_u64), + ..Default::default() + }, + (), + origin, + )) } + impl_tx_ext_default!(T::RuntimeCall; prepare); } #[cfg(test)] mod tests { + use super::*; + use crate::mock::{new_test_ext, System, Test, CALL}; use frame_support::{ dispatch::{DispatchClass, DispatchInfo, Pays}, weights::Weight, }; use sp_core::H256; - - use super::*; - use crate::mock::{new_test_ext, System, Test, CALL}; + use sp_runtime::{ + traits::DispatchTransaction, transaction_validity::TransactionSource::External, + }; #[test] fn signed_ext_check_era_should_work() { @@ -119,7 +130,7 @@ mod tests { // future assert_eq!( CheckMortality::::from(Era::mortal(4, 2)) - .additional_signed() + .implicit() .err() .unwrap(), InvalidTransaction::AncientBirthBlock.into(), @@ -129,7 +140,7 @@ mod tests { System::set_block_number(13); >::insert(12, H256::repeat_byte(1)); assert!(CheckMortality::::from(Era::mortal(4, 12)) - .additional_signed() + .implicit() .is_ok()); }) } @@ -138,10 +149,10 @@ mod tests { fn signed_ext_check_era_should_change_longevity() { new_test_ext().execute_with(|| { let normal = DispatchInfo { - weight: Weight::from_parts(100, 0), + call_weight: Weight::from_parts(100, 0), + extension_weight: Weight::zero(), class: DispatchClass::Normal, pays_fee: Pays::Yes, - ..Default::default() }; let len = 0_usize; let ext = ( @@ -151,7 +162,13 @@ mod tests { System::set_block_number(17); >::insert(16, H256::repeat_byte(1)); - assert_eq!(ext.validate(&1, CALL, &normal, len).unwrap().longevity, 15); + assert_eq!( + ext.validate_only(Some(1).into(), CALL, &normal, len, External, 0) + .unwrap() + .0 + .longevity, + 15 + ); }) } } diff --git a/pallets/system/src/extensions/check_non_zero_sender.rs b/pallets/system/src/extensions/check_non_zero_sender.rs index 901155e63..352c6322d 100644 --- a/pallets/system/src/extensions/check_non_zero_sender.rs +++ b/pallets/system/src/extensions/check_non_zero_sender.rs @@ -15,102 +15,120 @@ // See the License for the specific language governing permissions and // limitations under the License. -use codec::{Decode, Encode}; -use frame_support::{dispatch::DispatchInfo, DefaultNoBound}; +use crate::Config; +use codec::{Decode, DecodeWithMemTracking, Encode}; +use core::marker::PhantomData; +use frame_support::{pallet_prelude::TransactionSource, traits::OriginTrait, DefaultNoBound}; use scale_info::TypeInfo; use sp_runtime::{ - traits::{DispatchInfoOf, Dispatchable, SignedExtension}, - transaction_validity::{ - InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction, - }, + impl_tx_ext_default, + traits::{DispatchInfoOf, TransactionExtension}, + transaction_validity::InvalidTransaction, }; -use sp_std::{marker::PhantomData, prelude::*}; - -use crate::Config; /// Check to ensure that the sender is not the zero address. -#[derive(Encode, Decode, DefaultNoBound, Clone, Eq, PartialEq, TypeInfo)] +#[derive(Encode, Decode, DecodeWithMemTracking, DefaultNoBound, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] pub struct CheckNonZeroSender(PhantomData); -impl sp_std::fmt::Debug for CheckNonZeroSender { +impl core::fmt::Debug for CheckNonZeroSender { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckNonZeroSender") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } impl CheckNonZeroSender { - /// Create new `SignedExtension` to check runtime version. - #[allow(clippy::new_without_default)] + /// Create new `TransactionExtension` to check runtime version. pub fn new() -> Self { - Self(sp_std::marker::PhantomData) + Self(core::marker::PhantomData) } } -impl SignedExtension for CheckNonZeroSender -where - T::RuntimeCall: Dispatchable, -{ - type AccountId = T::AccountId; - type AdditionalSigned = (); - type Call = T::RuntimeCall; - type Pre = (); - +impl TransactionExtension for CheckNonZeroSender { const IDENTIFIER: &'static str = "CheckNonZeroSender"; + type Implicit = (); + type Val = (); + type Pre = (); - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { - Ok(()) - } - - fn pre_dispatch( - self, - who: &Self::AccountId, - call: &Self::Call, - info: &DispatchInfoOf, - len: usize, - ) -> Result { - self.validate(who, call, info, len).map(|_| ()) + fn weight(&self, _: &T::RuntimeCall) -> sp_weights::Weight { + ::check_non_zero_sender() } fn validate( &self, - who: &Self::AccountId, - _call: &Self::Call, - _info: &DispatchInfoOf, + origin: ::RuntimeOrigin, + _call: &T::RuntimeCall, + _info: &DispatchInfoOf, _len: usize, - ) -> TransactionValidity { - if who.using_encoded(|d| d.iter().all(|x| *x == 0)) { - return Err(TransactionValidityError::Invalid( - InvalidTransaction::BadSigner, - )); + _self_implicit: Self::Implicit, + _inherited_implication: &impl Encode, + _source: TransactionSource, + ) -> sp_runtime::traits::ValidateResult { + if let Some(who) = origin.as_signer() { + if who.using_encoded(|d| d.iter().all(|x| *x == 0)) { + return Err(InvalidTransaction::BadSigner.into()); + } } - Ok(ValidTransaction::default()) + Ok((Default::default(), (), origin)) } + impl_tx_ext_default!(T::RuntimeCall; prepare); } #[cfg(test)] mod tests { - use frame_support::{assert_noop, assert_ok}; - use super::*; use crate::mock::{new_test_ext, Test, CALL}; + use frame_support::{assert_ok, dispatch::DispatchInfo}; + use sp_runtime::{ + traits::{AsTransactionAuthorizedOrigin, DispatchTransaction, TxBaseImplication}, + transaction_validity::{TransactionSource::External, TransactionValidityError}, + }; #[test] fn zero_account_ban_works() { new_test_ext().execute_with(|| { let info = DispatchInfo::default(); let len = 0_usize; - assert_noop!( - CheckNonZeroSender::::new().validate(&0, CALL, &info, len), - InvalidTransaction::BadSigner + assert_eq!( + CheckNonZeroSender::::new() + .validate_only(Some(0).into(), CALL, &info, len, External, 0) + .unwrap_err(), + TransactionValidityError::from(InvalidTransaction::BadSigner) ); - assert_ok!(CheckNonZeroSender::::new().validate(&1, CALL, &info, len)); + assert_ok!(CheckNonZeroSender::::new().validate_only( + Some(1).into(), + CALL, + &info, + len, + External, + 0, + )); + }) + } + + #[test] + fn unsigned_origin_works() { + new_test_ext().execute_with(|| { + let info = DispatchInfo::default(); + let len = 0_usize; + let (_, _, origin) = CheckNonZeroSender::::new() + .validate( + None.into(), + CALL, + &info, + len, + (), + &TxBaseImplication(CALL), + External, + ) + .unwrap(); + assert!(!origin.is_transaction_authorized()); }) } } diff --git a/pallets/system/src/extensions/check_nonce.rs b/pallets/system/src/extensions/check_nonce.rs index 86f29e52f..af29a5013 100644 --- a/pallets/system/src/extensions/check_nonce.rs +++ b/pallets/system/src/extensions/check_nonce.rs @@ -15,130 +15,214 @@ // See the License for the specific language governing permissions and // limitations under the License. -use codec::{Decode, Encode}; -use frame_support::dispatch::DispatchInfo; +extern crate alloc; + +use alloc::{vec, vec::Vec}; + +use crate::Config; +use codec::{Decode, DecodeWithMemTracking, Encode}; +use frame_support::{ + dispatch::DispatchInfo, pallet_prelude::TransactionSource, RuntimeDebugNoBound, +}; use scale_info::TypeInfo; use sp_runtime::{ - traits::{DispatchInfoOf, Dispatchable, One, SignedExtension, Zero}, + traits::{ + AsSystemOriginSigner, CheckedAdd, DispatchInfoOf, Dispatchable, One, PostDispatchInfoOf, + TransactionExtension, ValidateResult, Zero, + }, transaction_validity::{ - InvalidTransaction, TransactionLongevity, TransactionValidity, TransactionValidityError, - ValidTransaction, + InvalidTransaction, TransactionLongevity, TransactionValidityError, ValidTransaction, }, + DispatchResult, Saturating, }; -use sp_std::vec; - -use crate::Config; +use sp_weights::Weight; /// Nonce check and increment to give replay protection for transactions. /// /// # Transaction Validity /// /// This extension affects `requires` and `provides` tags of validity, but DOES NOT -/// set the `priority` field. Make sure that AT LEAST one of the signed extension sets +/// set the `priority` field. Make sure that AT LEAST one of the transaction extension sets /// some kind of priority upon validating transactions. -#[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] +/// +/// The preparation step assumes that the nonce information has not changed since the validation +/// step. This means that other extensions ahead of `CheckNonce` in the pipeline must not alter the +/// nonce during their own preparation step, or else the transaction may be rejected during dispatch +/// or lead to an inconsistent account state. +#[derive(Encode, Decode, DecodeWithMemTracking, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] pub struct CheckNonce(#[codec(compact)] pub T::Nonce); +/// For a valid transaction the provides and requires information related to the nonce. +pub struct ValidNonceInfo { + /// The encoded `provides` used for this transaction. + pub provides: Vec>, + /// The encoded `requires` used for this transaction. + pub requires: Vec>, +} + impl CheckNonce { /// utility constructor. Used only in client/factory code. pub fn from(nonce: T::Nonce) -> Self { Self(nonce) } + + /// In transaction extension, validate nonce for account, on success returns provides and + /// requires. + pub fn validate_nonce_for_account( + who: &T::AccountId, + nonce: T::Nonce, + ) -> Result { + let account = crate::Account::::get(who); + if account.providers.is_zero() && account.sufficients.is_zero() { + // Nonce storage not paid for + return Err(InvalidTransaction::Payment.into()); + } + if nonce < account.nonce { + return Err(InvalidTransaction::Stale.into()); + } + + let provides = vec![Encode::encode(&(who.clone(), nonce))]; + let requires = if account.nonce < nonce { + vec![Encode::encode(&( + who.clone(), + nonce.saturating_sub(One::one()), + ))] + } else { + vec![] + }; + + Ok(ValidNonceInfo { provides, requires }) + } + + /// In transaction extension, prepare nonce for account. + pub fn prepare_nonce_for_account( + who: &T::AccountId, + mut nonce: T::Nonce, + ) -> Result<(), TransactionValidityError> { + let account = crate::Account::::get(who); + if nonce > account.nonce { + return Err(InvalidTransaction::Future.into()); + } + nonce = nonce + .checked_add(&T::Nonce::one()) + .unwrap_or(T::Nonce::zero()); + crate::Account::::mutate(who, |account| account.nonce = nonce); + Ok(()) + } } -impl sp_std::fmt::Debug for CheckNonce { +impl core::fmt::Debug for CheckNonce { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckNonce({})", self.0) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } -impl SignedExtension for CheckNonce +/// Operation to perform from `validate` to `prepare` in [`CheckNonce`] transaction extension. +#[derive(RuntimeDebugNoBound)] +pub enum Val { + /// Account and its nonce to check for. + CheckNonce(T::AccountId), + /// Weight to refund. + Refund(Weight), +} + +/// Operation to perform from `prepare` to `post_dispatch_details` in [`CheckNonce`] transaction +/// extension. +#[derive(RuntimeDebugNoBound)] +pub enum Pre { + /// The transaction extension weight should not be refunded. + NonceChecked, + /// The transaction extension weight should be refunded. + Refund(Weight), +} + +impl TransactionExtension for CheckNonce where T::RuntimeCall: Dispatchable, + ::RuntimeOrigin: AsSystemOriginSigner + Clone, { - type AccountId = T::AccountId; - type Call = T::RuntimeCall; - type AdditionalSigned = (); - type Pre = (); - const IDENTIFIER: &'static str = "CheckNonce"; + type Implicit = (); + type Val = Val; + type Pre = Pre; - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { - Ok(()) - } - - fn pre_dispatch( - self, - who: &Self::AccountId, - _call: &Self::Call, - _info: &DispatchInfoOf, - _len: usize, - ) -> Result<(), TransactionValidityError> { - let mut account = crate::Account::::get(who); - if account.providers.is_zero() && account.sufficients.is_zero() { - // Nonce storage not paid for - return Err(InvalidTransaction::Payment.into()); - } - if self.0 != account.nonce { - return Err(if self.0 < account.nonce { - InvalidTransaction::Stale - } else { - InvalidTransaction::Future - } - .into()); - } - account.nonce += T::Nonce::one(); - crate::Account::::insert(who, account); - Ok(()) + fn weight(&self, _: &T::RuntimeCall) -> sp_weights::Weight { + ::check_nonce() } fn validate( &self, - who: &Self::AccountId, - _call: &Self::Call, - _info: &DispatchInfoOf, + origin: ::RuntimeOrigin, + call: &T::RuntimeCall, + _info: &DispatchInfoOf, _len: usize, - ) -> TransactionValidity { - // check index - let account = crate::Account::::get(who); - if account.providers.is_zero() && account.sufficients.is_zero() { - // Nonce storage not paid for - return InvalidTransaction::Payment.into(); - } - if self.0 < account.nonce { - return InvalidTransaction::Stale.into(); - } - - let provides = vec![Encode::encode(&(who, self.0))]; - let requires = if account.nonce < self.0 { - vec![Encode::encode(&(who, self.0 - One::one()))] - } else { - vec![] + _self_implicit: Self::Implicit, + _inherited_implication: &impl Encode, + _source: TransactionSource, + ) -> ValidateResult { + let Some(who) = origin.as_system_origin_signer() else { + return Ok((Default::default(), Val::Refund(self.weight(call)), origin)); }; + let ValidNonceInfo { provides, requires } = Self::validate_nonce_for_account(who, self.0)?; - Ok(ValidTransaction { + let validity = ValidTransaction { priority: 0, requires, provides, longevity: TransactionLongevity::max_value(), propagate: true, - }) + }; + + Ok((validity, Val::CheckNonce(who.clone()), origin)) + } + + fn prepare( + self, + val: Self::Val, + _origin: &T::RuntimeOrigin, + _call: &T::RuntimeCall, + _info: &DispatchInfoOf, + _len: usize, + ) -> Result { + let (who, nonce) = match val { + Val::CheckNonce(who) => (who, self.0), + Val::Refund(weight) => return Ok(Pre::Refund(weight)), + }; + Self::prepare_nonce_for_account(&who, nonce).map(|_| Pre::NonceChecked) + } + + fn post_dispatch_details( + pre: Self::Pre, + _info: &DispatchInfo, + _post_info: &PostDispatchInfoOf, + _len: usize, + _result: &DispatchResult, + ) -> Result { + match pre { + Pre::NonceChecked => Ok(Weight::zero()), + Pre::Refund(weight) => Ok(weight), + } } } #[cfg(test)] mod tests { - use frame_support::{assert_noop, assert_ok}; - use super::*; - use crate::mock::{new_test_ext, Test, CALL}; + use crate::mock::{new_test_ext, RuntimeCall, Test, CALL}; + use frame_support::{ + assert_ok, assert_storage_noop, dispatch::GetDispatchInfo, traits::OriginTrait, + }; + use sp_runtime::{ + traits::{AsTransactionAuthorizedOrigin, DispatchTransaction, TxBaseImplication}, + transaction_validity::TransactionSource::External, + }; #[test] fn signed_ext_check_nonce_works() { @@ -146,7 +230,7 @@ mod tests { crate::Account::::insert( 1, crate::AccountInfo { - nonce: 1, + nonce: 1u64.into(), consumers: 0, providers: 1, sufficients: 0, @@ -156,22 +240,50 @@ mod tests { let info = DispatchInfo::default(); let len = 0_usize; // stale - assert_noop!( - CheckNonce::(0).validate(&1, CALL, &info, len), - InvalidTransaction::Stale - ); - assert_noop!( - CheckNonce::(0).pre_dispatch(&1, CALL, &info, len), - InvalidTransaction::Stale - ); + assert_storage_noop!({ + assert_eq!( + CheckNonce::(0u64.into()) + .validate_only(Some(1).into(), CALL, &info, len, External, 0) + .unwrap_err(), + TransactionValidityError::Invalid(InvalidTransaction::Stale) + ); + assert_eq!( + CheckNonce::(0u64.into()) + .validate_and_prepare(Some(1).into(), CALL, &info, len, 0) + .unwrap_err(), + TransactionValidityError::Invalid(InvalidTransaction::Stale) + ); + }); // correct - assert_ok!(CheckNonce::(1).validate(&1, CALL, &info, len)); - assert_ok!(CheckNonce::(1).pre_dispatch(&1, CALL, &info, len)); + assert_ok!(CheckNonce::(1u64.into()).validate_only( + Some(1).into(), + CALL, + &info, + len, + External, + 0, + )); + assert_ok!(CheckNonce::(1u64.into()).validate_and_prepare( + Some(1).into(), + CALL, + &info, + len, + 0, + )); // future - assert_ok!(CheckNonce::(5).validate(&1, CALL, &info, len)); - assert_noop!( - CheckNonce::(5).pre_dispatch(&1, CALL, &info, len), - InvalidTransaction::Future + assert_ok!(CheckNonce::(5u64.into()).validate_only( + Some(1).into(), + CALL, + &info, + len, + External, + 0, + )); + assert_eq!( + CheckNonce::(5u64.into()) + .validate_and_prepare(Some(1).into(), CALL, &info, len, 0) + .unwrap_err(), + TransactionValidityError::Invalid(InvalidTransaction::Future) ); }) } @@ -182,7 +294,7 @@ mod tests { crate::Account::::insert( 2, crate::AccountInfo { - nonce: 1, + nonce: 1u64.into(), consumers: 0, providers: 1, sufficients: 0, @@ -192,7 +304,7 @@ mod tests { crate::Account::::insert( 3, crate::AccountInfo { - nonce: 1, + nonce: 1u64.into(), consumers: 0, providers: 0, sufficients: 1, @@ -202,20 +314,157 @@ mod tests { let info = DispatchInfo::default(); let len = 0_usize; // Both providers and sufficients zero - assert_noop!( - CheckNonce::(1).validate(&1, CALL, &info, len), - InvalidTransaction::Payment - ); - assert_noop!( - CheckNonce::(1).pre_dispatch(&1, CALL, &info, len), - InvalidTransaction::Payment - ); + assert_storage_noop!({ + assert_eq!( + CheckNonce::(1u64.into()) + .validate_only(Some(1).into(), CALL, &info, len, External, 0) + .unwrap_err(), + TransactionValidityError::Invalid(InvalidTransaction::Payment) + ); + assert_eq!( + CheckNonce::(1u64.into()) + .validate_and_prepare(Some(1).into(), CALL, &info, len, 0) + .unwrap_err(), + TransactionValidityError::Invalid(InvalidTransaction::Payment) + ); + }); // Non-zero providers - assert_ok!(CheckNonce::(1).validate(&2, CALL, &info, len)); - assert_ok!(CheckNonce::(1).pre_dispatch(&2, CALL, &info, len)); + assert_ok!(CheckNonce::(1u64.into()).validate_only( + Some(2).into(), + CALL, + &info, + len, + External, + 0, + )); + assert_ok!(CheckNonce::(1u64.into()).validate_and_prepare( + Some(2).into(), + CALL, + &info, + len, + 0, + )); // Non-zero sufficients - assert_ok!(CheckNonce::(1).validate(&3, CALL, &info, len)); - assert_ok!(CheckNonce::(1).pre_dispatch(&3, CALL, &info, len)); + assert_ok!(CheckNonce::(1u64.into()).validate_only( + Some(3).into(), + CALL, + &info, + len, + External, + 0, + )); + assert_ok!(CheckNonce::(1u64.into()).validate_and_prepare( + Some(3).into(), + CALL, + &info, + len, + 0, + )); + }) + } + + #[test] + fn unsigned_check_nonce_works() { + new_test_ext().execute_with(|| { + let info = DispatchInfo::default(); + let len = 0_usize; + let (_, val, origin) = CheckNonce::(1u64.into()) + .validate( + None.into(), + CALL, + &info, + len, + (), + &TxBaseImplication(CALL), + External, + ) + .unwrap(); + assert!(!origin.is_transaction_authorized()); + assert_ok!(CheckNonce::(1u64.into()).prepare(val, &origin, CALL, &info, len)); + }) + } + + #[test] + fn check_nonce_preserves_account_data() { + new_test_ext().execute_with(|| { + crate::Account::::insert( + 1, + crate::AccountInfo { + nonce: 1u64.into(), + consumers: 0, + providers: 1, + sufficients: 0, + data: 0, + }, + ); + let info = DispatchInfo::default(); + let len = 0_usize; + // run the validation step + let (_, val, origin) = CheckNonce::(1u64.into()) + .validate( + Some(1).into(), + CALL, + &info, + len, + (), + &TxBaseImplication(CALL), + External, + ) + .unwrap(); + // mutate `AccountData` for the caller + crate::Account::::mutate(1, |info| { + info.data = 42; + }); + // run the preparation step + assert_ok!(CheckNonce::(1u64.into()).prepare(val, &origin, CALL, &info, len)); + // only the nonce should be altered by the preparation step + let expected_info = crate::AccountInfo { + nonce: 2u64.into(), + consumers: 0, + providers: 1, + sufficients: 0, + data: 42, + }; + assert_eq!(crate::Account::::get(1), expected_info); + }) + } + + #[test] + fn check_nonce_skipped_and_refund_for_other_origins() { + new_test_ext().execute_with(|| { + let ext = CheckNonce::(1u64.into()); + + let mut info = CALL.get_dispatch_info(); + info.extension_weight = ext.weight(CALL); + + // Ensure we test the refund. + assert!(info.extension_weight != Weight::zero()); + + let len = CALL.encoded_size(); + + let origin = crate::RawOrigin::Root.into(); + let (pre, origin) = ext + .validate_and_prepare(origin, CALL, &info, len, 0) + .unwrap(); + + assert!(origin.as_system_ref().unwrap().is_root()); + + let pd_res = Ok(()); + let mut post_info = frame_support::dispatch::PostDispatchInfo { + actual_weight: Some(info.total_weight()), + pays_fee: Default::default(), + }; + + as TransactionExtension>::post_dispatch( + pre, + &info, + &mut post_info, + len, + &pd_res, + ) + .unwrap(); + + assert_eq!(post_info.actual_weight, Some(info.call_weight)); }) } } diff --git a/pallets/system/src/extensions/check_spec_version.rs b/pallets/system/src/extensions/check_spec_version.rs index bdd0e96c9..f3f5f4438 100644 --- a/pallets/system/src/extensions/check_spec_version.rs +++ b/pallets/system/src/extensions/check_spec_version.rs @@ -15,64 +15,55 @@ // See the License for the specific language governing permissions and // limitations under the License. -use codec::{Decode, Encode}; +use crate::{Config, Pallet}; +use codec::{Decode, DecodeWithMemTracking, Encode}; use scale_info::TypeInfo; use sp_runtime::{ - traits::{DispatchInfoOf, SignedExtension}, + impl_tx_ext_default, traits::TransactionExtension, transaction_validity::TransactionValidityError, }; -use crate::{Config, Pallet}; - /// Ensure the runtime version registered in the transaction is the same as at present. /// /// # Transaction Validity /// /// The transaction with incorrect `spec_version` are considered invalid. The validity /// is not affected in any other way. -#[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] +#[derive(Encode, Decode, DecodeWithMemTracking, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckSpecVersion(sp_std::marker::PhantomData); +pub struct CheckSpecVersion(core::marker::PhantomData); -impl sp_std::fmt::Debug for CheckSpecVersion { +impl core::fmt::Debug for CheckSpecVersion { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckSpecVersion") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } impl CheckSpecVersion { - /// Create new `SignedExtension` to check runtime version. - #[allow(clippy::new_without_default)] + /// Create new `TransactionExtension` to check runtime version. pub fn new() -> Self { - Self(sp_std::marker::PhantomData) + Self(core::marker::PhantomData) } } -impl SignedExtension for CheckSpecVersion { - type AccountId = T::AccountId; - type AdditionalSigned = u32; - type Call = ::RuntimeCall; - type Pre = (); - +impl TransactionExtension<::RuntimeCall> + for CheckSpecVersion +{ const IDENTIFIER: &'static str = "CheckSpecVersion"; - - fn additional_signed(&self) -> Result { + type Implicit = u32; + fn implicit(&self) -> Result { Ok(>::runtime_version().spec_version) } - - fn pre_dispatch( - self, - who: &Self::AccountId, - call: &Self::Call, - info: &DispatchInfoOf, - len: usize, - ) -> Result { - self.validate(who, call, info, len).map(|_| ()) + type Val = (); + type Pre = (); + fn weight(&self, _: &::RuntimeCall) -> sp_weights::Weight { + ::check_spec_version() } + impl_tx_ext_default!(::RuntimeCall; validate prepare); } diff --git a/pallets/system/src/extensions/check_tx_version.rs b/pallets/system/src/extensions/check_tx_version.rs index b2155cf9c..1992bf097 100644 --- a/pallets/system/src/extensions/check_tx_version.rs +++ b/pallets/system/src/extensions/check_tx_version.rs @@ -15,64 +15,55 @@ // See the License for the specific language governing permissions and // limitations under the License. -use codec::{Decode, Encode}; +use crate::{Config, Pallet}; +use codec::{Decode, DecodeWithMemTracking, Encode}; use scale_info::TypeInfo; use sp_runtime::{ - traits::{DispatchInfoOf, SignedExtension}, + impl_tx_ext_default, traits::TransactionExtension, transaction_validity::TransactionValidityError, }; -use crate::{Config, Pallet}; - /// Ensure the transaction version registered in the transaction is the same as at present. /// /// # Transaction Validity /// /// The transaction with incorrect `transaction_version` are considered invalid. The validity /// is not affected in any other way. -#[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] +#[derive(Encode, Decode, DecodeWithMemTracking, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckTxVersion(sp_std::marker::PhantomData); +pub struct CheckTxVersion(core::marker::PhantomData); -impl sp_std::fmt::Debug for CheckTxVersion { +impl core::fmt::Debug for CheckTxVersion { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckTxVersion") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } impl CheckTxVersion { - /// Create new `SignedExtension` to check transaction version. - #[allow(clippy::new_without_default)] + /// Create new `TransactionExtension` to check transaction version. pub fn new() -> Self { - Self(sp_std::marker::PhantomData) + Self(core::marker::PhantomData) } } -impl SignedExtension for CheckTxVersion { - type AccountId = T::AccountId; - type AdditionalSigned = u32; - type Call = ::RuntimeCall; - type Pre = (); - +impl TransactionExtension<::RuntimeCall> + for CheckTxVersion +{ const IDENTIFIER: &'static str = "CheckTxVersion"; - - fn additional_signed(&self) -> Result { + type Implicit = u32; + fn implicit(&self) -> Result { Ok(>::runtime_version().transaction_version) } - - fn pre_dispatch( - self, - who: &Self::AccountId, - call: &Self::Call, - info: &DispatchInfoOf, - len: usize, - ) -> Result { - self.validate(who, call, info, len).map(|_| ()) + type Val = (); + type Pre = (); + fn weight(&self, _: &::RuntimeCall) -> sp_weights::Weight { + ::check_tx_version() } + impl_tx_ext_default!(::RuntimeCall; validate prepare); } diff --git a/pallets/system/src/extensions/check_weight.rs b/pallets/system/src/extensions/check_weight.rs index df7119234..b8a569c09 100644 --- a/pallets/system/src/extensions/check_weight.rs +++ b/pallets/system/src/extensions/check_weight.rs @@ -15,30 +15,32 @@ // See the License for the specific language governing permissions and // limitations under the License. -use codec::{Decode, Encode}; +use crate::{limits::BlockWeights, Config, Pallet, LOG_TARGET}; +use codec::{Decode, DecodeWithMemTracking, Encode}; use frame_support::{ dispatch::{DispatchInfo, PostDispatchInfo}, + pallet_prelude::TransactionSource, traits::Get, }; use scale_info::TypeInfo; use sp_runtime::{ - traits::{DispatchInfoOf, Dispatchable, PostDispatchInfoOf, SignedExtension}, - transaction_validity::{InvalidTransaction, TransactionValidity, TransactionValidityError}, + traits::{ + DispatchInfoOf, Dispatchable, PostDispatchInfoOf, TransactionExtension, ValidateResult, + }, + transaction_validity::{InvalidTransaction, TransactionValidityError, ValidTransaction}, DispatchResult, }; use sp_weights::Weight; -use crate::{limits::BlockWeights, AllExtrinsicsLen, Config, ExtrinsicLenOf, Pallet, LOG_TARGET}; - /// Block resource (weight) limit check. /// /// # Transaction Validity /// /// This extension does not influence any fields of `TransactionValidity` in case the /// transaction is valid. -#[derive(Encode, Decode, Clone, Eq, PartialEq, Default, TypeInfo)] +#[derive(Encode, Decode, DecodeWithMemTracking, Clone, Eq, PartialEq, Default, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckWeight(sp_std::marker::PhantomData); +pub struct CheckWeight(core::marker::PhantomData); impl CheckWeight where @@ -51,11 +53,11 @@ where ) -> Result<(), TransactionValidityError> { let max = T::BlockWeights::get().get(info.class).max_extrinsic; match max { - Some(max) if info.weight.any_gt(max) => { + Some(max) if info.total_weight().any_gt(max) => { log::debug!( target: LOG_TARGET, "Extrinsic {} is greater than the max extrinsic {}", - info.weight, + info.total_weight(), max, ); @@ -65,92 +67,100 @@ where } } - /// Checks if the current extrinsic can fit into the block with respect to block weight limits. - /// - /// Upon successes, it returns the new block weight as a `Result`. - fn check_block_weight( - info: &DispatchInfoOf, - ) -> Result { - let maximum_weight = T::BlockWeights::get(); - let all_weight = Pallet::::block_weight(); - calculate_consumed_weight::(maximum_weight, all_weight, info) - } - /// Checks if the current extrinsic can fit into the block with respect to block length limits. /// /// Upon successes, it returns the new block length as a `Result`. fn check_block_length( info: &DispatchInfoOf, len: usize, - ) -> Result, TransactionValidityError> { - let len = u32::try_from(len).map_err(|_| InvalidTransaction::ExhaustsResources)?; - let max_raw_len = *T::BlockLength::get().max.get(info.class); - - // Check valid raw len - let mut all_extrinsics_len = AllExtrinsicsLen::::get().unwrap_or_default(); - let new_len = all_extrinsics_len - .add_raw(len) - .ok_or(InvalidTransaction::ExhaustsResources)?; - - if new_len > max_raw_len { + ) -> Result { + let length_limit = T::BlockLength::get(); + let current_len = Pallet::::all_extrinsics_len(); + let added_len = len as u32; + let next_len = current_len.saturating_add(added_len); + if next_len > *length_limit.max.get(info.class) { log::debug!( target: LOG_TARGET, - "Exceeded block length limit: {new_len} > {max_raw_len}", + "Exceeded block length limit: {} > {}", + next_len, + length_limit.max.get(info.class), ); Err(InvalidTransaction::ExhaustsResources.into()) } else { - Ok(all_extrinsics_len) + Ok(next_len) } } - /// Creates new `SignedExtension` to check weight of the extrinsic. + /// Creates new `TransactionExtension` to check weight of the extrinsic. pub fn new() -> Self { Self(Default::default()) } + /// Do the validate checks. This can be applied to both signed and unsigned. + /// + /// It only checks that the block weight and length limit will not exceed. + /// + /// Returns the transaction validity and the next block length, to be used in `prepare`. + pub fn do_validate( + info: &DispatchInfoOf, + len: usize, + ) -> Result<(ValidTransaction, u32), TransactionValidityError> { + // If they return `Ok`, then it is below the limit. + let next_len = Self::check_block_length(info, len)?; + // during validation we skip block limit check. Since the `validate_transaction` + // call runs on an empty block anyway, by this we prevent `on_initialize` weight + // consumption from causing false negatives. + Self::check_extrinsic_weight(info)?; + + Ok((Default::default(), next_len)) + } + /// Do the pre-dispatch checks. This can be applied to both signed and unsigned. /// /// It checks and notes the new weight and length. - pub fn do_pre_dispatch( + pub fn do_prepare( info: &DispatchInfoOf, len: usize, + next_len: u32, ) -> Result<(), TransactionValidityError> { - let next_len = Self::check_block_length(info, len)?; - let next_weight = Self::check_block_weight(info)?; - Self::check_extrinsic_weight(info)?; + let all_weight = Pallet::::block_weight(); + let maximum_weight = T::BlockWeights::get(); + let next_weight = + calculate_consumed_weight::(&maximum_weight, all_weight, info, len)?; + // Extrinsic weight already checked in `validate`. crate::AllExtrinsicsLen::::put(next_len); crate::BlockWeight::::put(next_weight); Ok(()) } - /// Do the validate checks. This can be applied to both signed and unsigned. - /// - /// It only checks that the block weight and length limit will not exceed. - pub fn do_validate(info: &DispatchInfoOf, len: usize) -> TransactionValidity { - // ignore the next length. If they return `Ok`, then it is below the limit. - let _ = Self::check_block_length(info, len)?; - // during validation we skip block limit check. Since the `validate_transaction` - // call runs on an empty block anyway, by this we prevent `on_initialize` weight - // consumption from causing false negatives. - Self::check_extrinsic_weight(info)?; - - Ok(Default::default()) + #[deprecated(note = "Use `frame_system::Pallet::reclaim_weight` instead.")] + pub fn do_post_dispatch( + info: &DispatchInfoOf, + post_info: &PostDispatchInfoOf, + ) -> Result<(), TransactionValidityError> { + crate::Pallet::::reclaim_weight(info, post_info) } } +/// Checks if the current extrinsic can fit into the block with respect to block weight limits. +/// +/// Upon successes, it returns the new block weight as a `Result`. pub fn calculate_consumed_weight( - maximum_weight: BlockWeights, + maximum_weight: &BlockWeights, mut all_weight: crate::ConsumedWeight, info: &DispatchInfoOf, + len: usize, ) -> Result where Call: Dispatchable, { + // Also Consider extrinsic length as proof weight. let extrinsic_weight = info - .weight - .saturating_add(maximum_weight.get(info.class).base_extrinsic); + .total_weight() + .saturating_add(maximum_weight.get(info.class).base_extrinsic) + .saturating_add(Weight::from_parts(0, len as u64)); let limit_per_class = maximum_weight.get(info.class); // add the weight. If class is unlimited, use saturating add instead of checked one. @@ -208,112 +218,103 @@ where Ok(all_weight) } -impl SignedExtension for CheckWeight +impl TransactionExtension for CheckWeight where T::RuntimeCall: Dispatchable, { - type AccountId = T::AccountId; - type Call = T::RuntimeCall; - type AdditionalSigned = (); - type Pre = (); const IDENTIFIER: &'static str = "CheckWeight"; + type Implicit = (); + type Pre = (); + type Val = u32; /* next block length */ - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { - Ok(()) + fn weight(&self, _: &T::RuntimeCall) -> Weight { + ::check_weight() } - fn pre_dispatch( - self, - _who: &Self::AccountId, - _call: &Self::Call, - info: &DispatchInfoOf, + fn validate( + &self, + origin: T::RuntimeOrigin, + _call: &T::RuntimeCall, + info: &DispatchInfoOf, len: usize, - ) -> Result<(), TransactionValidityError> { - Self::do_pre_dispatch(info, len) + _self_implicit: Self::Implicit, + _inherited_implication: &impl Encode, + _source: TransactionSource, + ) -> ValidateResult { + let (validity, next_len) = Self::do_validate(info, len)?; + Ok((validity, next_len, origin)) } - fn validate( - &self, - _who: &Self::AccountId, - _call: &Self::Call, - info: &DispatchInfoOf, + fn prepare( + self, + val: Self::Val, + _origin: &T::RuntimeOrigin, + _call: &T::RuntimeCall, + info: &DispatchInfoOf, len: usize, - ) -> TransactionValidity { - Self::do_validate(info, len) + ) -> Result { + Self::do_prepare(info, len, val) } - fn pre_dispatch_unsigned( - _call: &Self::Call, - info: &DispatchInfoOf, + fn post_dispatch_details( + _pre: Self::Pre, + info: &DispatchInfoOf, + post_info: &PostDispatchInfoOf, + _len: usize, + _result: &DispatchResult, + ) -> Result { + crate::Pallet::::reclaim_weight(info, post_info).map(|()| Weight::zero()) + } + + fn bare_validate( + _call: &T::RuntimeCall, + info: &DispatchInfoOf, len: usize, - ) -> Result<(), TransactionValidityError> { - Self::do_pre_dispatch(info, len) + ) -> frame_support::pallet_prelude::TransactionValidity { + Ok(Self::do_validate(info, len)?.0) } - fn validate_unsigned( - _call: &Self::Call, - info: &DispatchInfoOf, + fn bare_validate_and_prepare( + _call: &T::RuntimeCall, + info: &DispatchInfoOf, len: usize, - ) -> TransactionValidity { - Self::do_validate(info, len) + ) -> Result<(), TransactionValidityError> { + let (_, next_len) = Self::do_validate(info, len)?; + Self::do_prepare(info, len, next_len) } - fn post_dispatch( - _pre: Option, - info: &DispatchInfoOf, - post_info: &PostDispatchInfoOf, + fn bare_post_dispatch( + info: &DispatchInfoOf, + post_info: &mut PostDispatchInfoOf, _len: usize, _result: &DispatchResult, ) -> Result<(), TransactionValidityError> { - let unspent = post_info.calc_unspent(info); - if unspent.any_gt(Weight::zero()) { - crate::BlockWeight::::mutate(|current_weight| { - current_weight.reduce(unspent, info.class); - }) - } - - log::trace!( - target: LOG_TARGET, - "Used block weight: {:?}", - crate::BlockWeight::::get(), - ); - - log::trace!( - target: LOG_TARGET, - "Used block length: {:?}", - Pallet::::all_extrinsics_len(), - ); - - Ok(()) + crate::Pallet::::reclaim_weight(info, post_info) } } -impl sp_std::fmt::Debug for CheckWeight { +impl core::fmt::Debug for CheckWeight { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckWeight") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } #[cfg(test)] mod tests { - use frame_support::{ - assert_err, assert_ok, - dispatch::{DispatchClass, Pays}, - weights::Weight, - }; - use sp_std::marker::PhantomData; - use super::*; use crate::{ - mock::{new_test_ext, System, Test, CALL}, - AllExtrinsicsLen, BlockWeight, + mock::{new_test_ext, RuntimeBlockWeights, System, Test, CALL}, + AllExtrinsicsLen, BlockWeight, DispatchClass, }; + use core::marker::PhantomData; + use frame_support::{assert_err, assert_ok, dispatch::Pays, weights::Weight}; + use sp_runtime::traits::DispatchTransaction; fn block_weights() -> crate::limits::BlockWeights { ::BlockWeights::get() @@ -341,7 +342,7 @@ mod tests { fn check(call: impl FnOnce(&DispatchInfo, usize)) { new_test_ext().execute_with(|| { let max = DispatchInfo { - weight: Weight::MAX, + call_weight: Weight::MAX, class: DispatchClass::Mandatory, ..Default::default() }; @@ -352,7 +353,8 @@ mod tests { } check(|max, len| { - assert_ok!(CheckWeight::::do_pre_dispatch(max, len)); + let next_len = CheckWeight::::check_block_length(max, len).unwrap(); + assert_ok!(CheckWeight::::do_prepare(max, len, next_len)); assert_eq!(System::block_weight().total(), Weight::MAX); assert!(System::block_weight().total().ref_time() > block_weight_limit().ref_time()); }); @@ -365,7 +367,7 @@ mod tests { fn normal_extrinsic_limited_by_maximum_extrinsic_weight() { new_test_ext().execute_with(|| { let max = DispatchInfo { - weight: block_weights() + call_weight: block_weights() .get(DispatchClass::Normal) .max_extrinsic .unwrap() + Weight::from_parts(1, 0), @@ -390,14 +392,14 @@ mod tests { .unwrap_or_else(|| weights.max_block); let base_weight = weights.get(DispatchClass::Operational).base_extrinsic; - let weight = operational_limit - base_weight; + let call_weight = operational_limit - base_weight; let okay = DispatchInfo { - weight, + call_weight, class: DispatchClass::Operational, ..Default::default() }; let max = DispatchInfo { - weight: weight + Weight::from_parts(1, 0), + call_weight: call_weight + Weight::from_parts(1, 0), class: DispatchClass::Operational, ..Default::default() }; @@ -432,20 +434,26 @@ mod tests { // So normal extrinsic can be 758 weight (-5 for base extrinsic weight) // And Operational can be 246 to produce a full block (-10 for base) let max_normal = DispatchInfo { - weight: Weight::from_parts(753, 0), + call_weight: Weight::from_parts(753, 0), ..Default::default() }; let rest_operational = DispatchInfo { - weight: Weight::from_parts(246, 0), + call_weight: Weight::from_parts(246, 0), class: DispatchClass::Operational, ..Default::default() }; let len = 0_usize; - assert_ok!(CheckWeight::::do_pre_dispatch(&max_normal, len)); + let next_len = CheckWeight::::check_block_length(&max_normal, len).unwrap(); + assert_ok!(CheckWeight::::do_prepare(&max_normal, len, next_len)); assert_eq!(System::block_weight().total(), Weight::from_parts(768, 0)); - assert_ok!(CheckWeight::::do_pre_dispatch(&rest_operational, len)); + let next_len = CheckWeight::::check_block_length(&rest_operational, len).unwrap(); + assert_ok!(CheckWeight::::do_prepare( + &rest_operational, + len, + next_len + )); assert_eq!(block_weight_limit(), Weight::from_parts(1024, u64::MAX)); assert_eq!( System::block_weight().total(), @@ -464,21 +472,27 @@ mod tests { new_test_ext().execute_with(|| { // We switch the order of `full_block_with_normal_and_operational` let max_normal = DispatchInfo { - weight: Weight::from_parts(753, 0), + call_weight: Weight::from_parts(753, 0), ..Default::default() }; let rest_operational = DispatchInfo { - weight: Weight::from_parts(246, 0), + call_weight: Weight::from_parts(246, 0), class: DispatchClass::Operational, ..Default::default() }; let len = 0_usize; - assert_ok!(CheckWeight::::do_pre_dispatch(&rest_operational, len)); + let next_len = CheckWeight::::check_block_length(&rest_operational, len).unwrap(); + assert_ok!(CheckWeight::::do_prepare( + &rest_operational, + len, + next_len + )); // Extra 20 here from block execution + base extrinsic weight assert_eq!(System::block_weight().total(), Weight::from_parts(266, 0)); - assert_ok!(CheckWeight::::do_pre_dispatch(&max_normal, len)); + let next_len = CheckWeight::::check_block_length(&max_normal, len).unwrap(); + assert_ok!(CheckWeight::::do_prepare(&max_normal, len, next_len)); assert_eq!(block_weight_limit(), Weight::from_parts(1024, u64::MAX)); assert_eq!( System::block_weight().total(), @@ -493,30 +507,34 @@ mod tests { // An on_initialize takes up the whole block! (Every time!) System::register_extra_weight_unchecked(Weight::MAX, DispatchClass::Mandatory); let dispatch_normal = DispatchInfo { - weight: Weight::from_parts(251, 0), + call_weight: Weight::from_parts(251, 0), class: DispatchClass::Normal, ..Default::default() }; let dispatch_operational = DispatchInfo { - weight: Weight::from_parts(246, 0), + call_weight: Weight::from_parts(246, 0), class: DispatchClass::Operational, ..Default::default() }; let len = 0_usize; + let next_len = CheckWeight::::check_block_length(&dispatch_normal, len).unwrap(); assert_err!( - CheckWeight::::do_pre_dispatch(&dispatch_normal, len), + CheckWeight::::do_prepare(&dispatch_normal, len, next_len), InvalidTransaction::ExhaustsResources ); + let next_len = + CheckWeight::::check_block_length(&dispatch_operational, len).unwrap(); // Thank goodness we can still do an operational transaction to possibly save the // blockchain. - assert_ok!(CheckWeight::::do_pre_dispatch( + assert_ok!(CheckWeight::::do_prepare( &dispatch_operational, - len + len, + next_len )); // Not too much though assert_err!( - CheckWeight::::do_pre_dispatch(&dispatch_operational, len), + CheckWeight::::do_prepare(&dispatch_operational, len, next_len), InvalidTransaction::ExhaustsResources ); // Even with full block, validity of single transaction should be correct. @@ -531,14 +549,14 @@ mod tests { fn signed_ext_check_weight_works_operational_tx() { new_test_ext().execute_with(|| { let normal = DispatchInfo { - weight: Weight::from_parts(100, 0), + call_weight: Weight::from_parts(100, 0), ..Default::default() }; let op = DispatchInfo { - weight: Weight::from_parts(100, 0), + call_weight: Weight::from_parts(100, 0), + extension_weight: Weight::zero(), class: DispatchClass::Operational, pays_fee: Pays::Yes, - ..Default::default() }; let len = 0_usize; let normal_limit = normal_weight_limit(); @@ -548,24 +566,37 @@ mod tests { current_weight.set(normal_limit, DispatchClass::Normal) }); // will not fit. - assert_err!( - CheckWeight::(PhantomData).pre_dispatch(&1, CALL, &normal, len), - InvalidTransaction::ExhaustsResources + assert_eq!( + CheckWeight::(PhantomData) + .validate_and_prepare(Some(1).into(), CALL, &normal, len, 0) + .unwrap_err(), + InvalidTransaction::ExhaustsResources.into() ); // will fit. - assert_ok!(CheckWeight::(PhantomData).pre_dispatch(&1, CALL, &op, len)); + assert_ok!(CheckWeight::(PhantomData).validate_and_prepare( + Some(1).into(), + CALL, + &op, + len, + 0, + )); // likewise for length limit. let len = 100_usize; - let raw = normal_length_limit(); - let mut extrinsic_len = ExtrinsicLenOf::::default(); - extrinsic_len.add_raw(raw).expect("should not overflow"); - AllExtrinsicsLen::::put(extrinsic_len); - assert_err!( - CheckWeight::(PhantomData).pre_dispatch(&1, CALL, &normal, len), - InvalidTransaction::ExhaustsResources + AllExtrinsicsLen::::put(normal_length_limit()); + assert_eq!( + CheckWeight::(PhantomData) + .validate_and_prepare(Some(1).into(), CALL, &normal, len, 0) + .unwrap_err(), + InvalidTransaction::ExhaustsResources.into() ); - assert_ok!(CheckWeight::(PhantomData).pre_dispatch(&1, CALL, &op, len)); + assert_ok!(CheckWeight::(PhantomData).validate_and_prepare( + Some(1).into(), + CALL, + &op, + len, + 0, + )); }) } @@ -575,9 +606,14 @@ mod tests { let normal = DispatchInfo::default(); let normal_limit = normal_weight_limit().ref_time() as usize; let reset_check_weight = |tx, s, f| { - let extrinsic_len = ExtrinsicLenOf::::default(); - AllExtrinsicsLen::::put(extrinsic_len); - let r = CheckWeight::(PhantomData).pre_dispatch(&1, CALL, tx, s); + AllExtrinsicsLen::::put(0); + let r = CheckWeight::(PhantomData).validate_and_prepare( + Some(1).into(), + CALL, + tx, + s, + 0, + ); if f { assert!(r.is_err()) } else { @@ -591,10 +627,10 @@ mod tests { // Operational ones don't have this limit. let op = DispatchInfo { - weight: Weight::zero(), + call_weight: Weight::zero(), + extension_weight: Weight::zero(), class: DispatchClass::Operational, pays_fee: Pays::Yes, - ..Default::default() }; reset_check_weight(&op, normal_limit, false); reset_check_weight(&op, normal_limit + 100, false); @@ -608,16 +644,16 @@ mod tests { new_test_ext().execute_with(|| { let normal_limit = normal_weight_limit(); let small = DispatchInfo { - weight: Weight::from_parts(100, 0), + call_weight: Weight::from_parts(100, 0), ..Default::default() }; let base_extrinsic = block_weights().get(DispatchClass::Normal).base_extrinsic; let medium = DispatchInfo { - weight: normal_limit - base_extrinsic, + call_weight: normal_limit - base_extrinsic, ..Default::default() }; let big = DispatchInfo { - weight: normal_limit - base_extrinsic + Weight::from_parts(1, 0), + call_weight: normal_limit - base_extrinsic + Weight::from_parts(1, 0), ..Default::default() }; let len = 0_usize; @@ -626,7 +662,13 @@ mod tests { BlockWeight::::mutate(|current_weight| { current_weight.set(s, DispatchClass::Normal) }); - let r = CheckWeight::(PhantomData).pre_dispatch(&1, CALL, i, len); + let r = CheckWeight::(PhantomData).validate_and_prepare( + Some(1).into(), + CALL, + i, + len, + 0, + ); if f { assert!(r.is_err()) } else { @@ -645,7 +687,7 @@ mod tests { new_test_ext().execute_with(|| { // This is half of the max block weight let info = DispatchInfo { - weight: Weight::from_parts(512, 0), + call_weight: Weight::from_parts(512, 0), ..Default::default() }; let post_info = PostDispatchInfo { @@ -665,15 +707,16 @@ mod tests { }); let pre = CheckWeight::(PhantomData) - .pre_dispatch(&1, CALL, &info, len) - .unwrap(); + .validate_and_prepare(Some(1).into(), CALL, &info, len, 0) + .unwrap() + .0; assert_eq!( BlockWeight::::get().total(), - info.weight + Weight::from_parts(256, 0) + info.total_weight() + Weight::from_parts(256, 0) ); - assert_ok!(CheckWeight::::post_dispatch( - Some(pre), + assert_ok!(CheckWeight::::post_dispatch_details( + pre, &info, &post_info, len, @@ -690,7 +733,7 @@ mod tests { fn signed_ext_check_weight_actual_weight_higher_than_max_is_capped() { new_test_ext().execute_with(|| { let info = DispatchInfo { - weight: Weight::from_parts(512, 0), + call_weight: Weight::from_parts(512, 0), ..Default::default() }; let post_info = PostDispatchInfo { @@ -705,17 +748,18 @@ mod tests { }); let pre = CheckWeight::(PhantomData) - .pre_dispatch(&1, CALL, &info, len) - .unwrap(); + .validate_and_prepare(Some(1).into(), CALL, &info, len, 0) + .unwrap() + .0; assert_eq!( BlockWeight::::get().total(), - info.weight + info.total_weight() + Weight::from_parts(128, 0) + block_weights().get(DispatchClass::Normal).base_extrinsic, ); - assert_ok!(CheckWeight::::post_dispatch( - Some(pre), + assert_ok!(CheckWeight::::post_dispatch_details( + pre, &info, &post_info, len, @@ -723,26 +767,158 @@ mod tests { )); assert_eq!( BlockWeight::::get().total(), - info.weight + info.total_weight() + Weight::from_parts(128, 0) + block_weights().get(DispatchClass::Normal).base_extrinsic, ); }) } + #[test] + fn extrinsic_already_refunded_more_precisely() { + new_test_ext().execute_with(|| { + // This is half of the max block weight + let info = DispatchInfo { + call_weight: Weight::from_parts(512, 0), + ..Default::default() + }; + let post_info = PostDispatchInfo { + actual_weight: Some(Weight::from_parts(128, 0)), + pays_fee: Default::default(), + }; + let prior_block_weight = Weight::from_parts(64, 0); + let accurate_refund = Weight::from_parts(510, 0); + let len = 0_usize; + let base_extrinsic = block_weights().get(DispatchClass::Normal).base_extrinsic; + + // Set initial info + BlockWeight::::mutate(|current_weight| { + current_weight.set(Weight::zero(), DispatchClass::Mandatory); + current_weight.set(prior_block_weight, DispatchClass::Normal); + }); + + // Validate and prepare extrinsic + let pre = CheckWeight::(PhantomData) + .validate_and_prepare(Some(1).into(), CALL, &info, len, 0) + .unwrap() + .0; + + assert_eq!( + BlockWeight::::get().total(), + info.total_weight() + prior_block_weight + base_extrinsic + ); + + // Refund more accurately than the benchmark + BlockWeight::::mutate(|current_weight| { + current_weight.reduce(accurate_refund, DispatchClass::Normal); + }); + crate::ExtrinsicWeightReclaimed::::put(accurate_refund); + + // Do the post dispatch + assert_ok!(CheckWeight::::post_dispatch_details( + pre, + &info, + &post_info, + len, + &Ok(()) + )); + + // Ensure the accurate refund is used + assert_eq!( + crate::ExtrinsicWeightReclaimed::::get(), + accurate_refund + ); + assert_eq!( + BlockWeight::::get().total(), + info.total_weight() - accurate_refund + prior_block_weight + base_extrinsic + ); + }) + } + + #[test] + fn extrinsic_already_refunded_less_precisely() { + new_test_ext().execute_with(|| { + // This is half of the max block weight + let info = DispatchInfo { + call_weight: Weight::from_parts(512, 0), + ..Default::default() + }; + let post_info = PostDispatchInfo { + actual_weight: Some(Weight::from_parts(128, 0)), + pays_fee: Default::default(), + }; + let prior_block_weight = Weight::from_parts(64, 0); + let inaccurate_refund = Weight::from_parts(110, 0); + let len = 0_usize; + let base_extrinsic = block_weights().get(DispatchClass::Normal).base_extrinsic; + + // Set initial info + BlockWeight::::mutate(|current_weight| { + current_weight.set(Weight::zero(), DispatchClass::Mandatory); + current_weight.set(prior_block_weight, DispatchClass::Normal); + }); + + // Validate and prepare extrinsic + let pre = CheckWeight::(PhantomData) + .validate_and_prepare(Some(1).into(), CALL, &info, len, 0) + .unwrap() + .0; + + let expected = info.total_weight() + prior_block_weight + base_extrinsic; + assert_eq!(expected, BlockWeight::::get().total()); + assert_eq!( + RuntimeBlockWeights::get().max_block - expected, + System::remaining_block_weight().remaining() + ); + + // Refund less accurately than the benchmark + BlockWeight::::mutate(|current_weight| { + current_weight.reduce(inaccurate_refund, DispatchClass::Normal); + }); + crate::ExtrinsicWeightReclaimed::::put(inaccurate_refund); + + // Do the post dispatch + assert_ok!(CheckWeight::::post_dispatch_details( + pre, + &info, + &post_info, + len, + &Ok(()) + )); + + // Ensure the accurate refund from benchmark is used + assert_eq!( + crate::ExtrinsicWeightReclaimed::::get(), + post_info.calc_unspent(&info) + ); + let expected = post_info.actual_weight.unwrap() + prior_block_weight + base_extrinsic; + assert_eq!(expected, BlockWeight::::get().total()); + assert_eq!( + RuntimeBlockWeights::get().max_block - expected, + System::remaining_block_weight().remaining() + ); + }) + } + #[test] fn zero_weight_extrinsic_still_has_base_weight() { new_test_ext().execute_with(|| { let weights = block_weights(); let free = DispatchInfo { - weight: Weight::zero(), + call_weight: Weight::zero(), ..Default::default() }; let len = 0_usize; // Initial weight from `weights.base_block` assert_eq!(System::block_weight().total(), weights.base_block); - assert_ok!(CheckWeight::(PhantomData).pre_dispatch(&1, CALL, &free, len)); + assert_ok!(CheckWeight::(PhantomData).validate_and_prepare( + Some(1).into(), + CALL, + &free, + len, + 0, + )); assert_eq!( System::block_weight().total(), weights.get(DispatchClass::Normal).base_extrinsic + weights.base_block @@ -757,20 +933,22 @@ mod tests { // Max normal is 768 (75%) // Max mandatory is unlimited let max_normal = DispatchInfo { - weight: Weight::from_parts(753, 0), + call_weight: Weight::from_parts(753, 0), ..Default::default() }; let mandatory = DispatchInfo { - weight: Weight::from_parts(1019, 0), + call_weight: Weight::from_parts(1019, 0), class: DispatchClass::Mandatory, ..Default::default() }; let len = 0_usize; - assert_ok!(CheckWeight::::do_pre_dispatch(&max_normal, len)); + let next_len = CheckWeight::::check_block_length(&max_normal, len).unwrap(); + assert_ok!(CheckWeight::::do_prepare(&max_normal, len, next_len)); assert_eq!(System::block_weight().total(), Weight::from_parts(768, 0)); - assert_ok!(CheckWeight::::do_pre_dispatch(&mandatory, len)); + let next_len = CheckWeight::::check_block_length(&mandatory, len).unwrap(); + assert_ok!(CheckWeight::::do_prepare(&mandatory, len, next_len)); assert_eq!(block_weight_limit(), Weight::from_parts(1024, u64::MAX)); assert_eq!( System::block_weight().total(), @@ -810,30 +988,137 @@ mod tests { // fits into reserved let mandatory1 = DispatchInfo { - weight: Weight::from_parts(5, 0), + call_weight: Weight::from_parts(5, 0), class: DispatchClass::Mandatory, ..Default::default() }; // does not fit into reserved and the block is full. let mandatory2 = DispatchInfo { - weight: Weight::from_parts(6, 0), + call_weight: Weight::from_parts(6, 0), class: DispatchClass::Mandatory, ..Default::default() }; // when assert_ok!(calculate_consumed_weight::<::RuntimeCall>( - maximum_weight.clone(), + &maximum_weight, all_weight.clone(), - &mandatory1 + &mandatory1, + 0 )); assert_err!( calculate_consumed_weight::<::RuntimeCall>( - maximum_weight, + &maximum_weight, all_weight, - &mandatory2 + &mandatory2, + 0 ), InvalidTransaction::ExhaustsResources ); } + + #[test] + fn proof_size_includes_length() { + let maximum_weight = BlockWeights::builder() + .base_block(Weight::zero()) + .for_class(DispatchClass::non_mandatory(), |w| { + w.base_extrinsic = Weight::zero(); + w.max_total = Some(Weight::from_parts(20, 1000)); + }) + .for_class(DispatchClass::Mandatory, |w| { + w.base_extrinsic = Weight::zero(); + w.max_total = Some(Weight::from_parts(20, 1000)); + }) + .build_or_panic(); + let all_weight = crate::ConsumedWeight::new(|class| match class { + DispatchClass::Normal => Weight::from_parts(5, 0), + DispatchClass::Operational => Weight::from_parts(5, 0), + DispatchClass::Mandatory => Weight::from_parts(0, 0), + }); + + let normal = DispatchInfo { + call_weight: Weight::from_parts(5, 0), + class: DispatchClass::Normal, + ..Default::default() + }; + + let mandatory = DispatchInfo { + call_weight: Weight::from_parts(5, 0), + class: DispatchClass::Mandatory, + ..Default::default() + }; + + // Using 0 length extrinsics. + let consumed = calculate_consumed_weight::<::RuntimeCall>( + &maximum_weight, + all_weight.clone(), + &normal, + 0, + ) + .unwrap(); + + assert_eq!( + consumed.total().saturating_sub(all_weight.total()), + normal.total_weight() + ); + + let consumed = calculate_consumed_weight::<::RuntimeCall>( + &maximum_weight, + all_weight.clone(), + &mandatory, + 0, + ) + .unwrap(); + assert_eq!( + consumed.total().saturating_sub(all_weight.total()), + mandatory.total_weight() + ); + + // Using non zero length extrinsics. + let consumed = calculate_consumed_weight::<::RuntimeCall>( + &maximum_weight, + all_weight.clone(), + &normal, + 100, + ) + .unwrap(); + // Must account for the len in the proof size + assert_eq!( + consumed.total().saturating_sub(all_weight.total()), + normal.total_weight().add_proof_size(100) + ); + + let consumed = calculate_consumed_weight::<::RuntimeCall>( + &maximum_weight, + all_weight.clone(), + &mandatory, + 100, + ) + .unwrap(); + // Must account for the len in the proof size + assert_eq!( + consumed.total().saturating_sub(all_weight.total()), + mandatory.total_weight().add_proof_size(100) + ); + + // Using oversized zero length extrinsics. + let consumed = calculate_consumed_weight::<::RuntimeCall>( + &maximum_weight, + all_weight.clone(), + &normal, + 2000, + ); + // errors out + assert_eq!(consumed, Err(InvalidTransaction::ExhaustsResources.into())); + + // Using oversized zero length extrinsics. + let consumed = calculate_consumed_weight::<::RuntimeCall>( + &maximum_weight, + all_weight.clone(), + &mandatory, + 2000, + ); + // errors out + assert_eq!(consumed, Err(InvalidTransaction::ExhaustsResources.into())); + } } diff --git a/pallets/system/src/extensions/mod.rs b/pallets/system/src/extensions/mod.rs index a88c9fbf9..98b67a592 100644 --- a/pallets/system/src/extensions/mod.rs +++ b/pallets/system/src/extensions/mod.rs @@ -15,6 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +pub mod authorize_call; pub mod check_genesis; pub mod check_mortality; pub mod check_non_zero_sender; @@ -22,3 +23,7 @@ pub mod check_nonce; pub mod check_spec_version; pub mod check_tx_version; pub mod check_weight; +pub mod weight_reclaim; +pub mod weights; + +pub use weights::WeightInfo; diff --git a/pallets/system/src/extensions/weight_reclaim.rs b/pallets/system/src/extensions/weight_reclaim.rs new file mode 100644 index 000000000..151d8bb83 --- /dev/null +++ b/pallets/system/src/extensions/weight_reclaim.rs @@ -0,0 +1,423 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::Config; +use codec::{Decode, DecodeWithMemTracking, Encode}; +use frame_support::dispatch::{DispatchInfo, PostDispatchInfo}; +use scale_info::TypeInfo; +use sp_runtime::{ + traits::{ + DispatchInfoOf, Dispatchable, PostDispatchInfoOf, TransactionExtension, ValidateResult, + }, + transaction_validity::{TransactionSource, TransactionValidityError, ValidTransaction}, + DispatchResult, +}; +use sp_weights::Weight; + +/// Reclaim the unused weight using the post dispatch information +/// +/// After the dispatch of the extrinsic, calculate the unused weight using the post dispatch +/// information and update the block consumed weight according to the new calculated extrinsic +/// weight. +#[derive(Encode, Decode, DecodeWithMemTracking, Clone, Eq, PartialEq, Default, TypeInfo)] +#[scale_info(skip_type_params(T))] +pub struct WeightReclaim(core::marker::PhantomData); + +impl WeightReclaim +where + T::RuntimeCall: Dispatchable, +{ + /// Creates new `TransactionExtension` to recalculate the extrinsic weight after dispatch. + pub fn new() -> Self { + Self(Default::default()) + } +} + +impl TransactionExtension for WeightReclaim +where + T::RuntimeCall: Dispatchable, +{ + const IDENTIFIER: &'static str = "WeightReclaim"; + type Implicit = (); + type Pre = (); + type Val = (); + + fn weight(&self, _: &T::RuntimeCall) -> Weight { + ::weight_reclaim() + } + + fn validate( + &self, + origin: T::RuntimeOrigin, + _call: &T::RuntimeCall, + _info: &DispatchInfoOf, + _len: usize, + _self_implicit: Self::Implicit, + _inherited_implication: &impl Encode, + _source: TransactionSource, + ) -> ValidateResult { + Ok((ValidTransaction::default(), (), origin)) + } + + fn prepare( + self, + _val: Self::Val, + _origin: &T::RuntimeOrigin, + _call: &T::RuntimeCall, + _info: &DispatchInfoOf, + _len: usize, + ) -> Result { + Ok(()) + } + + fn post_dispatch_details( + _pre: Self::Pre, + info: &DispatchInfoOf, + post_info: &PostDispatchInfoOf, + _len: usize, + _result: &DispatchResult, + ) -> Result { + crate::Pallet::::reclaim_weight(info, post_info).map(|()| Weight::zero()) + } + + fn bare_validate( + _call: &T::RuntimeCall, + _info: &DispatchInfoOf, + _len: usize, + ) -> frame_support::pallet_prelude::TransactionValidity { + Ok(ValidTransaction::default()) + } + + fn bare_validate_and_prepare( + _call: &T::RuntimeCall, + _info: &DispatchInfoOf, + _len: usize, + ) -> Result<(), TransactionValidityError> { + Ok(()) + } + + fn bare_post_dispatch( + info: &DispatchInfoOf, + post_info: &mut PostDispatchInfoOf, + _len: usize, + _result: &DispatchResult, + ) -> Result<(), TransactionValidityError> { + crate::Pallet::::reclaim_weight(info, post_info) + } +} + +impl core::fmt::Debug for WeightReclaim +where + T::RuntimeCall: Dispatchable, +{ + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { + write!(f, "{}", Self::IDENTIFIER) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{ + mock::{new_test_ext, Test}, + BlockWeight, DispatchClass, + }; + use frame_support::{assert_ok, weights::Weight}; + + fn block_weights() -> crate::limits::BlockWeights { + ::BlockWeights::get() + } + + #[test] + fn extrinsic_already_refunded_more_precisely() { + new_test_ext().execute_with(|| { + // This is half of the max block weight + let info = DispatchInfo { + call_weight: Weight::from_parts(512, 0), + ..Default::default() + }; + let post_info = PostDispatchInfo { + actual_weight: Some(Weight::from_parts(128, 0)), + pays_fee: Default::default(), + }; + let prior_block_weight = Weight::from_parts(64, 0); + let accurate_refund = Weight::from_parts(510, 0); + let len = 0_usize; + let base_extrinsic = block_weights().get(DispatchClass::Normal).base_extrinsic; + + // Set initial info + BlockWeight::::mutate(|current_weight| { + current_weight.set(prior_block_weight, DispatchClass::Normal); + current_weight.accrue( + base_extrinsic + info.total_weight() - accurate_refund, + DispatchClass::Normal, + ); + }); + crate::ExtrinsicWeightReclaimed::::put(accurate_refund); + + // Do the post dispatch + assert_ok!(WeightReclaim::::post_dispatch_details( + (), + &info, + &post_info, + len, + &Ok(()) + )); + + // Ensure the accurate refund is used + assert_eq!( + crate::ExtrinsicWeightReclaimed::::get(), + accurate_refund + ); + assert_eq!( + *BlockWeight::::get().get(DispatchClass::Normal), + info.total_weight() - accurate_refund + prior_block_weight + base_extrinsic + ); + }) + } + + #[test] + fn extrinsic_already_refunded_less_precisely() { + new_test_ext().execute_with(|| { + // This is half of the max block weight + let info = DispatchInfo { + call_weight: Weight::from_parts(512, 0), + ..Default::default() + }; + let post_info = PostDispatchInfo { + actual_weight: Some(Weight::from_parts(128, 0)), + pays_fee: Default::default(), + }; + let prior_block_weight = Weight::from_parts(64, 0); + let inaccurate_refund = Weight::from_parts(110, 0); + let len = 0_usize; + let base_extrinsic = block_weights().get(DispatchClass::Normal).base_extrinsic; + + // Set initial info + BlockWeight::::mutate(|current_weight| { + current_weight.set(prior_block_weight, DispatchClass::Normal); + current_weight.accrue( + base_extrinsic + info.total_weight() - inaccurate_refund, + DispatchClass::Normal, + ); + }); + crate::ExtrinsicWeightReclaimed::::put(inaccurate_refund); + + // Do the post dispatch + assert_ok!(WeightReclaim::::post_dispatch_details( + (), + &info, + &post_info, + len, + &Ok(()) + )); + + // Ensure the accurate refund from benchmark is used + assert_eq!( + crate::ExtrinsicWeightReclaimed::::get(), + post_info.calc_unspent(&info) + ); + assert_eq!( + *BlockWeight::::get().get(DispatchClass::Normal), + post_info.actual_weight.unwrap() + prior_block_weight + base_extrinsic + ); + }) + } + + #[test] + fn extrinsic_not_refunded_before() { + new_test_ext().execute_with(|| { + // This is half of the max block weight + let info = DispatchInfo { + call_weight: Weight::from_parts(512, 0), + ..Default::default() + }; + let post_info = PostDispatchInfo { + actual_weight: Some(Weight::from_parts(128, 0)), + pays_fee: Default::default(), + }; + let prior_block_weight = Weight::from_parts(64, 0); + let len = 0_usize; + let base_extrinsic = block_weights().get(DispatchClass::Normal).base_extrinsic; + + // Set initial info + BlockWeight::::mutate(|current_weight| { + current_weight.set(prior_block_weight, DispatchClass::Normal); + current_weight.accrue(base_extrinsic + info.total_weight(), DispatchClass::Normal); + }); + + // Do the post dispatch + assert_ok!(WeightReclaim::::post_dispatch_details( + (), + &info, + &post_info, + len, + &Ok(()) + )); + + // Ensure the accurate refund from benchmark is used + assert_eq!( + crate::ExtrinsicWeightReclaimed::::get(), + post_info.calc_unspent(&info) + ); + assert_eq!( + *BlockWeight::::get().get(DispatchClass::Normal), + post_info.actual_weight.unwrap() + prior_block_weight + base_extrinsic + ); + }) + } + + #[test] + fn no_actual_post_dispatch_weight() { + new_test_ext().execute_with(|| { + // This is half of the max block weight + let info = DispatchInfo { + call_weight: Weight::from_parts(512, 0), + ..Default::default() + }; + let post_info = PostDispatchInfo { + actual_weight: None, + pays_fee: Default::default(), + }; + let prior_block_weight = Weight::from_parts(64, 0); + let len = 0_usize; + let base_extrinsic = block_weights().get(DispatchClass::Normal).base_extrinsic; + + // Set initial info + BlockWeight::::mutate(|current_weight| { + current_weight.set(prior_block_weight, DispatchClass::Normal); + current_weight.accrue(base_extrinsic + info.total_weight(), DispatchClass::Normal); + }); + + // Do the post dispatch + assert_ok!(WeightReclaim::::post_dispatch_details( + (), + &info, + &post_info, + len, + &Ok(()) + )); + + // Ensure the accurate refund from benchmark is used + assert_eq!( + crate::ExtrinsicWeightReclaimed::::get(), + post_info.calc_unspent(&info) + ); + assert_eq!( + *BlockWeight::::get().get(DispatchClass::Normal), + info.total_weight() + prior_block_weight + base_extrinsic + ); + }) + } + + #[test] + fn different_dispatch_class() { + new_test_ext().execute_with(|| { + // This is half of the max block weight + let info = DispatchInfo { + call_weight: Weight::from_parts(512, 0), + class: DispatchClass::Operational, + ..Default::default() + }; + let post_info = PostDispatchInfo { + actual_weight: Some(Weight::from_parts(128, 0)), + pays_fee: Default::default(), + }; + let prior_block_weight = Weight::from_parts(64, 0); + let len = 0_usize; + let base_extrinsic = block_weights() + .get(DispatchClass::Operational) + .base_extrinsic; + + // Set initial info + BlockWeight::::mutate(|current_weight| { + current_weight.set(prior_block_weight, DispatchClass::Operational); + current_weight.accrue( + base_extrinsic + info.total_weight(), + DispatchClass::Operational, + ); + }); + + // Do the post dispatch + assert_ok!(WeightReclaim::::post_dispatch_details( + (), + &info, + &post_info, + len, + &Ok(()) + )); + + // Ensure the accurate refund from benchmark is used + assert_eq!( + crate::ExtrinsicWeightReclaimed::::get(), + post_info.calc_unspent(&info) + ); + assert_eq!( + *BlockWeight::::get().get(DispatchClass::Operational), + post_info.actual_weight.unwrap() + prior_block_weight + base_extrinsic + ); + }) + } + + #[test] + fn bare_also_works() { + new_test_ext().execute_with(|| { + // This is half of the max block weight + let info = DispatchInfo { + call_weight: Weight::from_parts(512, 0), + class: DispatchClass::Operational, + ..Default::default() + }; + let post_info = PostDispatchInfo { + actual_weight: Some(Weight::from_parts(128, 0)), + pays_fee: Default::default(), + }; + let prior_block_weight = Weight::from_parts(64, 0); + let len = 0_usize; + let base_extrinsic = block_weights() + .get(DispatchClass::Operational) + .base_extrinsic; + + // Set initial info + BlockWeight::::mutate(|current_weight| { + current_weight.set(prior_block_weight, DispatchClass::Operational); + current_weight.accrue( + base_extrinsic + info.total_weight(), + DispatchClass::Operational, + ); + }); + + // Do the bare post dispatch + assert_ok!(WeightReclaim::::bare_post_dispatch( + &info, + &mut post_info.clone(), + len, + &Ok(()) + )); + + // Ensure the accurate refund from benchmark is used + assert_eq!( + crate::ExtrinsicWeightReclaimed::::get(), + post_info.calc_unspent(&info) + ); + assert_eq!( + *BlockWeight::::get().get(DispatchClass::Operational), + post_info.actual_weight.unwrap() + prior_block_weight + base_extrinsic + ); + }) + } +} diff --git a/pallets/system/src/extensions/weights.rs b/pallets/system/src/extensions/weights.rs new file mode 100644 index 000000000..a9c21e7b1 --- /dev/null +++ b/pallets/system/src/extensions/weights.rs @@ -0,0 +1,232 @@ +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Autogenerated weights for `frame_system_extensions` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-11-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-wiukf8gn-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` + +// Executed Command: +// ./target/production/substrate-node +// benchmark +// pallet +// --chain=dev +// --steps=50 +// --repeat=20 +// --pallet=frame_system_extensions +// --no-storage-info +// --no-median-slopes +// --no-min-squares +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --output=./substrate/frame/system/src/extensions/weights.rs +// --header=./substrate/HEADER-APACHE2 +// --template=./substrate/.maintain/frame-weight-template.hbs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use core::marker::PhantomData; + +/// Weight functions needed for `frame_system_extensions`. +pub trait WeightInfo { + fn check_genesis() -> Weight; + fn check_mortality_mortal_transaction() -> Weight; + fn check_mortality_immortal_transaction() -> Weight; + fn check_non_zero_sender() -> Weight; + fn check_nonce() -> Weight; + fn check_spec_version() -> Weight; + fn check_tx_version() -> Weight; + fn check_weight() -> Weight; + fn weight_reclaim() -> Weight; +} + +/// Weights for `frame_system_extensions` using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl WeightInfo for SubstrateWeight { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `30` + // Estimated: `3509` + // Minimum execution time: 3_388_000 picoseconds. + Weight::from_parts(3_577_000, 3509) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `68` + // Estimated: `3509` + // Minimum execution time: 6_442_000 picoseconds. + Weight::from_parts(6_703_000, 3509) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `68` + // Estimated: `3509` + // Minimum execution time: 6_357_000 picoseconds. + Weight::from_parts(6_605_000, 3509) + .saturating_add(T::DbWeight::get().reads(1_u64)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 457_000 picoseconds. + Weight::from_parts(570_000, 0) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 6_936_000 picoseconds. + Weight::from_parts(7_261_000, 3593) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 336_000 picoseconds. + Weight::from_parts(430_000, 0) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 348_000 picoseconds. + Weight::from_parts(455_000, 0) + } + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_887_000 picoseconds. + Weight::from_parts(3_006_000, 0) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn weight_reclaim() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 4_375_000 picoseconds. + Weight::from_parts(4_747_000, 1489) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } +} + +// For backwards compatibility and tests. +impl WeightInfo for () { + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_genesis() -> Weight { + // Proof Size summary in bytes: + // Measured: `30` + // Estimated: `3509` + // Minimum execution time: 3_388_000 picoseconds. + Weight::from_parts(3_577_000, 3509) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_mortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `68` + // Estimated: `3509` + // Minimum execution time: 6_442_000 picoseconds. + Weight::from_parts(6_703_000, 3509) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + } + /// Storage: `System::BlockHash` (r:1 w:0) + /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `MaxEncodedLen`) + fn check_mortality_immortal_transaction() -> Weight { + // Proof Size summary in bytes: + // Measured: `68` + // Estimated: `3509` + // Minimum execution time: 6_357_000 picoseconds. + Weight::from_parts(6_605_000, 3509) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + } + fn check_non_zero_sender() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 457_000 picoseconds. + Weight::from_parts(570_000, 0) + } + /// Storage: `System::Account` (r:1 w:1) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) + fn check_nonce() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 6_936_000 picoseconds. + Weight::from_parts(7_261_000, 3593) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } + fn check_spec_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 336_000 picoseconds. + Weight::from_parts(430_000, 0) + } + fn check_tx_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 348_000 picoseconds. + Weight::from_parts(455_000, 0) + } + fn check_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_887_000 picoseconds. + Weight::from_parts(3_006_000, 0) + } + /// Storage: `System::AllExtrinsicsLen` (r:1 w:1) + /// Proof: `System::AllExtrinsicsLen` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn weight_reclaim() -> Weight { + // Proof Size summary in bytes: + // Measured: `24` + // Estimated: `1489` + // Minimum execution time: 4_375_000 picoseconds. + Weight::from_parts(4_747_000, 1489) + .saturating_add(RocksDbWeight::get().reads(1_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) + } +} diff --git a/pallets/system/src/extrinsic_len.rs b/pallets/system/src/extrinsic_len.rs index bf0500082..28069e1d8 100644 --- a/pallets/system/src/extrinsic_len.rs +++ b/pallets/system/src/extrinsic_len.rs @@ -1,10 +1,10 @@ use avail_core::kate::DATA_CHUNK_SIZE; use avail_core::AppId; -use bounded_collections::{BoundedBTreeMap, BoundedVec}; use codec::{Compact, CompactLen as _, Decode, Encode, MaxEncodedLen}; use core::mem::swap; use frame_support::traits::Get; +use frame_support::{BoundedBTreeMap, BoundedVec}; use scale_info::TypeInfo; use sp_std::iter::once; diff --git a/pallets/system/src/lib.rs b/pallets/system/src/lib.rs index aa7210046..142e45665 100644 --- a/pallets/system/src/lib.rs +++ b/pallets/system/src/lib.rs @@ -106,18 +106,23 @@ use avail_core::{ HeaderVersion, }; -use codec::{Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen}; +extern crate alloc; +use alloc::{borrow::Cow, boxed::Box, vec, vec::Vec}; + +use codec::{Decode, DecodeWithMemTracking, Encode, EncodeLike, FullCodec, MaxEncodedLen}; +use frame_support::migrations::MultiStepMigrator; use frame_support::{ dispatch::{ extract_actual_pays_fee, extract_actual_weight, DispatchClass, DispatchInfo, - DispatchResult, DispatchResultWithPostInfo, Pays, PerDispatchClass, PostDispatchInfo, + DispatchResult, DispatchResultWithPostInfo, GetDispatchInfo, Pays, PerDispatchClass, + PostDispatchInfo, }, impl_ensure_origin_with_arg_ignoring_arg, storage::{self, StorageStreamIter}, traits::{ - ConstU32, Contains, EnsureOrigin, EnsureOriginWithArg, Get, HandleLifetime, - OnKilledAccount, OnNewAccount, OriginTrait, PalletInfo, Randomness, SortedMembers, - StoredMap, TypedGet, + Authorize, ConstU32, Contains, EnsureOrigin, EnsureOriginWithArg, Get, HandleLifetime, + OnKilledAccount, OnNewAccount, OnRuntimeUpgrade, OriginTrait, PalletInfo, PostInherents, + PostTransactions, PreInherents, SortedMembers, StoredMap, TypedGet, }, Parameter, }; @@ -135,17 +140,19 @@ use sp_runtime::traits::TrailingZeroInput; use sp_runtime::{ generic, traits::{ - AtLeast32Bit, BadOrigin, BlakeTwo256, BlockNumberProvider, Bounded, CheckEqual, - Dispatchable, Hash, Lookup, LookupError, MaybeDisplay, Member, One, Saturating, - SimpleBitOps, StaticLookup, Zero, + AsTransactionAuthorizedOrigin, AtLeast32Bit, BadOrigin, BlakeTwo256, BlockNumberProvider, + Bounded, CheckEqual, DispatchInfoOf, Dispatchable, ExtrinsicCall, Hash, Lookup, + LookupError, MaybeDisplay, Member, One, PostDispatchInfoOf, Saturating, SimpleBitOps, + StaticLookup, Zero, }, + transaction_validity::TransactionValidityError, DispatchError, RuntimeDebug, }; #[cfg(any(feature = "std", test))] use sp_std::map; use sp_std::{fmt::Debug, marker::PhantomData, prelude::*}; use sp_version::RuntimeVersion; -use sp_weights::{RuntimeDbWeight, Weight}; +use sp_weights::{RuntimeDbWeight, Weight, WeightMeter}; pub mod native; pub use native::hosted_header_builder::HeaderExtensionBuilder; @@ -163,20 +170,19 @@ pub mod test_utils; pub mod tests; pub mod weights; -pub mod extrinsic_len; -pub use extrinsic_len::{ExtrinsicLen, PaddedExtrinsicLen}; +// pub mod extrinsic_len; +// pub use extrinsic_len::{ExtrinsicLen, PaddedExtrinsicLen}; // Backward compatible re-export. pub use extensions::{ - check_genesis::CheckGenesis, - check_mortality::{CheckMortality as CheckEra, CheckMortality}, - check_non_zero_sender::CheckNonZeroSender, - check_nonce::CheckNonce, - check_spec_version::CheckSpecVersion, - check_tx_version::CheckTxVersion, - check_weight::CheckWeight, + authorize_call::AuthorizeCall, check_genesis::CheckGenesis, check_mortality::CheckMortality, + check_non_zero_sender::CheckNonZeroSender, check_nonce::CheckNonce, + check_spec_version::CheckSpecVersion, check_tx_version::CheckTxVersion, + check_weight::CheckWeight, weight_reclaim::WeightReclaim, + weights::SubstrateWeight as SubstrateExtensionsWeight, WeightInfo as ExtensionsWeightInfo, }; // Backward compatible re-export. +pub use extensions::check_mortality::CheckMortality as CheckEra; pub use frame_support::dispatch::RawOrigin; pub use weights::WeightInfo; @@ -261,14 +267,48 @@ where check_version: bool, } -pub type ExtrinsicLenOf = - ExtrinsicLen<::MaxDiffAppIdPerBlock, ::MaxTxPerAppIdPerBlock>; +#[cfg(any(feature = "std", feature = "runtime-benchmarks", test))] +impl CodeUpgradeAuthorization +where + T: Config, +{ + pub fn code_hash(&self) -> &T::Hash { + &self.code_hash + } +} + +// pub type ExtrinsicLenOf = +// ExtrinsicLen<::MaxDiffAppIdPerBlock, ::MaxTxPerAppIdPerBlock>; + +/// Information about the dispatch of a call, to be displayed in the +/// [`ExtrinsicSuccess`](Event::ExtrinsicSuccess) and [`ExtrinsicFailed`](Event::ExtrinsicFailed) +/// events. +#[derive( + Clone, + Copy, + Eq, + PartialEq, + Default, + RuntimeDebug, + Encode, + Decode, + DecodeWithMemTracking, + TypeInfo, +)] +pub struct DispatchEventInfo { + /// Weight of this transaction. + pub weight: Weight, + /// Class of this transaction. + pub class: DispatchClass, + /// Does this transaction pay fees. + pub pays_fee: Pays, +} #[frame_support::pallet] pub mod pallet { - use frame_support::{pallet_prelude::*, traits::ExtrinsicCall, DefaultNoBound}; - use crate::{self as frame_system, pallet_prelude::*, *}; + use codec::HasCompact; + use frame_support::{pallet_prelude::*, DefaultNoBound}; /// Default implementations of [`DefaultConfig`], which can be used to implement [`Config`]. pub mod config_preludes { @@ -295,6 +335,7 @@ pub mod pallet { type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = (); + type ExtensionsWeightInfo = (); type SS58Prefix = (); type Version = (); type BlockWeights = (); @@ -317,6 +358,11 @@ pub mod pallet { type MaxDiffAppIdPerBlock = ConstU32<1_024>; type MaxTxPerAppIdPerBlock = ConstU32<8_192>; type HeaderExtensionDataFilter = (); + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } /// Default configurations of this pallet in a solo-chain environment. @@ -366,6 +412,9 @@ pub mod pallet { /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = (); + /// Weight information for the extensions of this pallet. + type ExtensionsWeightInfo = (); + /// This is used as an identifier of the chain. type SS58Prefix = (); @@ -416,6 +465,11 @@ pub mod pallet { type MaxDiffAppIdPerBlock = ConstU32<1_024>; type MaxTxPerAppIdPerBlock = ConstU32<8_192>; type HeaderExtensionDataFilter = (); + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } /// Default configurations of this pallet in a relay-chain environment. @@ -436,7 +490,7 @@ pub mod pallet { } /// System configuration trait. Implemented by runtime. - #[pallet::config(with_default)] + #[pallet::config(with_default, frame_system_config)] #[pallet::disable_frame_system_supertrait_check] pub trait Config: 'static + Eq + Clone { /// The basic call filter to use in Origin. All origins are built with this filter as base, @@ -465,14 +519,17 @@ pub mod pallet { type RuntimeOrigin: Into, Self::RuntimeOrigin>> + From> + Clone - + OriginTrait; + + OriginTrait + + AsTransactionAuthorizedOrigin; /// The aggregated `RuntimeCall` type. #[pallet::no_default_bounds] type RuntimeCall: Parameter + Dispatchable + Debug - + From>; + + GetDispatchInfo + + From> + + Authorize; /// The aggregated `RuntimeTask` type. #[pallet::no_default_bounds] @@ -480,6 +537,7 @@ pub mod pallet { /// This stores the number of previous transactions associated with a sender account. type Nonce: Parameter + + HasCompact + Member + MaybeSerializeDeserialize + Debug @@ -530,9 +588,9 @@ pub mod pallet { #[pallet::no_default] type HeaderExtensionBuilder: native::hosted_header_builder::HeaderExtensionBuilder; - /// Source of random seeds. - #[pallet::no_default] - type Randomness: Randomness>; + // /// Source of random seeds. + // #[pallet::no_default] + // type Randomness: Randomness>; /// The aggregated event type of the runtime. #[pallet::no_default_bounds] @@ -589,6 +647,9 @@ pub mod pallet { type SystemWeightInfo: WeightInfo; + /// Weight information for the transaction extensions of this pallet. + type ExtensionsWeightInfo: extensions::WeightInfo; + /// The designated SS58 prefix of this chain. /// /// This replaces the "ss58Format" property declared in the chain spec. Reason is @@ -616,14 +677,45 @@ pub mod pallet { /// Maximum different `AppId` allowed per block. /// This is used during the calculation of padded length of the block when /// a transaction is validated (see `CheckAppId` signed extension). + /// TODO: remove this #[pallet::constant] type MaxDiffAppIdPerBlock: Get; /// Maximum number of Tx per AppId allowed per block. /// This is used during the calculation of padded length of the block when /// a transaction is validated (see `CheckAppId` signed extension). + /// TODO: remove this #[pallet::constant] type MaxTxPerAppIdPerBlock: Get; + + /// All migrations that should run in the next runtime upgrade. + /// + /// These used to be formerly configured in `Executive`. Parachains need to ensure that + /// running all these migrations in one block will not overflow the weight limit of a block. + /// The migrations are run *before* the pallet `on_runtime_upgrade` hooks, just like the + /// `OnRuntimeUpgrade` migrations. + type SingleBlockMigrations: OnRuntimeUpgrade; + + /// The migrator that is used to run Multi-Block-Migrations. + /// + /// Can be set to [`pallet-migrations`] or an alternative implementation of the interface. + /// The diagram in `frame_executive::block_flowchart` explains when it runs. + type MultiBlockMigrator: MultiStepMigrator; + + /// A callback that executes in *every block* directly before all inherents were applied. + /// + /// See `frame_executive::block_flowchart` for a in-depth explanation when it runs. + type PreInherents: PreInherents; + + /// A callback that executes in *every block* directly after all inherents were applied. + /// + /// See `frame_executive::block_flowchart` for a in-depth explanation when it runs. + type PostInherents: PostInherents; + + /// A callback that executes in *every block* directly after all transactions were applied. + /// + /// See `frame_executive::block_flowchart` for a in-depth explanation when it runs. + type PostTransactions: PostTransactions; } const STORAGE_VERSION: StorageVersion = StorageVersion::new(3); @@ -669,13 +761,16 @@ pub mod pallet { #[pallet::weight((T::SystemWeightInfo::set_code(), DispatchClass::Operational))] pub fn set_code(origin: OriginFor, code: Vec) -> DispatchResultWithPostInfo { ensure_root(origin)?; - Self::can_set_code(&code)?; + Self::can_set_code(&code, true).into_result()?; T::OnSetCode::set_code(code)?; // consume the rest of the block to prevent further transactions Ok(Some(T::BlockWeights::get().max_block).into()) } /// Set the new runtime code without doing any checks of the given `code`. + /// + /// Note that runtime upgrades will not run if this is called with a not-increasing spec + /// version! #[pallet::call_index(3)] #[pallet::weight((T::SystemWeightInfo::set_code(), DispatchClass::Operational))] pub fn set_code_without_checks( @@ -683,6 +778,7 @@ pub mod pallet { code: Vec, ) -> DispatchResultWithPostInfo { ensure_root(origin)?; + Self::can_set_code(&code, false).into_result()?; T::OnSetCode::set_code(code)?; Ok(Some(T::BlockWeights::get().max_block).into()) } @@ -812,8 +908,33 @@ pub mod pallet { _: OriginFor, code: Vec, ) -> DispatchResultWithPostInfo { - let post = Self::do_apply_authorize_upgrade(code)?; - Ok(post) + let res = Self::validate_code_is_authorized(&code)?; + AuthorizedUpgrade::::kill(); + + match Self::can_set_code(&code, res.check_version) { + CanSetCodeResult::Ok => {}, + CanSetCodeResult::MultiBlockMigrationsOngoing => { + return Err(Error::::MultiBlockMigrationsOngoing.into()) + }, + CanSetCodeResult::InvalidVersion(error) => { + // The upgrade is invalid and there is no benefit in trying to apply this again. + Self::deposit_event(Event::RejectedInvalidAuthorizedUpgrade { + code_hash: res.code_hash, + error: error.into(), + }); + + // Not the fault of the caller of call. + return Ok(Pays::No.into()); + }, + }; + T::OnSetCode::set_code(code)?; + + Ok(PostDispatchInfo { + // consume the rest of the block to prevent further transactions + actual_weight: Some(T::BlockWeights::get().max_block), + // no fee for valid upgrade + pays_fee: Pays::No, + }) } } @@ -821,11 +942,11 @@ pub mod pallet { #[pallet::event] pub enum Event { /// An extrinsic completed successfully. - ExtrinsicSuccess { dispatch_info: DispatchInfo }, + ExtrinsicSuccess { dispatch_info: DispatchEventInfo }, /// An extrinsic failed. ExtrinsicFailed { dispatch_error: DispatchError, - dispatch_info: DispatchInfo, + dispatch_info: DispatchEventInfo, }, /// `:code` was updated. CodeUpdated, @@ -852,6 +973,11 @@ pub mod pallet { code_hash: T::Hash, check_version: bool, }, + /// An invalid authorized upgrade was rejected while trying to apply it. + RejectedInvalidAuthorizedUpgrade { + code_hash: T::Hash, + error: DispatchError, + }, } /// Error for the System pallet @@ -873,6 +999,8 @@ pub mod pallet { NonZeroRefCount, /// The origin filter prevent the call to be dispatched. CallFiltered, + /// A multi-block migration is ongoing and prevents the current code from being replaced. + MultiBlockMigrationsOngoing, #[cfg(feature = "experimental")] /// The specified [`Task`] is not valid. InvalidTask, @@ -904,6 +1032,11 @@ pub mod pallet { #[pallet::storage] pub(super) type ExtrinsicCount = StorageValue<_, u32>; + // Whether all inherents have been applied. + #[pallet::storage] + #[pallet::whitelist_storage] + pub type InherentsApplied = StorageValue<_, bool, ValueQuery>; + /// The current weight for the block. #[pallet::storage] #[pallet::whitelist_storage] @@ -911,9 +1044,10 @@ pub mod pallet { pub(super) type BlockWeight = StorageValue<_, ConsumedWeight, ValueQuery>; /// Total length (in bytes) for all extrinsics put together, for the current block. + // we no longer need MaxDiffAppIdPerBlock & MaxTxPerAppIdPerBlock #[pallet::storage] - pub type AllExtrinsicsLen = - StorageValue<_, ExtrinsicLen>; + #[pallet::whitelist_storage] + pub type AllExtrinsicsLen = StorageValue<_, u32>; /// Map of block numbers to block hashes. #[pallet::storage] @@ -1010,6 +1144,17 @@ pub mod pallet { #[pallet::getter(fn block_length)] pub type DynamicBlockLength = StorageValue<_, limits::BlockLength, ValueQuery>; + /// The weight reclaimed for the extrinsic. + /// + /// This information is available until the end of the extrinsic execution. + /// More precisely this information is removed in `note_applied_extrinsic`. + /// + /// Logic doing some post dispatch weight reduction must update this storage to avoid duplicate + /// reduction. + #[pallet::storage] + #[pallet::whitelist_storage] + pub type ExtrinsicWeightReclaimed = StorageValue<_, Weight, ValueQuery>; + #[derive(DefaultNoBound)] #[pallet::genesis_config] pub struct GenesisConfig { @@ -1038,16 +1183,32 @@ pub mod pallet { type Call = Call; fn validate_unsigned(_source: TransactionSource, call: &Self::Call) -> TransactionValidity { if let Call::apply_authorized_upgrade { ref code } = call { - if let Ok(hash) = Self::validate_authorized_upgrade(&code[..]) { + if let Ok(res) = Self::validate_code_is_authorized(&code[..]) { + if Self::can_set_code(&code, false).is_ok() { + return Ok(ValidTransaction { + priority: u64::max_value(), + requires: Vec::new(), + provides: vec![res.code_hash.encode()], + longevity: TransactionLongevity::max_value(), + propagate: true, + }); + } + } + } + + #[cfg(feature = "experimental")] + if let Call::do_task { ref task } = call { + if task.is_valid() { return Ok(ValidTransaction { - priority: 100, + priority: u64::max_value(), requires: Vec::new(), - provides: vec![hash.as_ref().to_vec()], + provides: vec![T::Hashing::hash_of(&task.encode()).as_ref().to_vec()], longevity: TransactionLongevity::max_value(), propagate: true, }); } } + Err(InvalidTransaction::Call.into()) } } @@ -1126,24 +1287,24 @@ pub struct AccountInfo { /// Stores the `spec_version` and `spec_name` of when the last runtime upgrade /// happened. -#[derive(sp_runtime::RuntimeDebug, Encode, Decode, TypeInfo)] +#[derive(RuntimeDebug, Encode, Decode, TypeInfo)] #[cfg_attr(feature = "std", derive(PartialEq))] pub struct LastRuntimeUpgradeInfo { pub spec_version: codec::Compact, - pub spec_name: sp_runtime::RuntimeString, + pub spec_name: Cow<'static, str>, } impl LastRuntimeUpgradeInfo { /// Returns if the runtime was upgraded in comparison of `self` and `current`. /// /// Checks if either the `spec_version` increased or the `spec_name` changed. - pub fn was_upgraded(&self, current: &sp_version::RuntimeVersion) -> bool { + pub fn was_upgraded(&self, current: &RuntimeVersion) -> bool { current.spec_version > self.spec_version.0 || current.spec_name != self.spec_name } } -impl From for LastRuntimeUpgradeInfo { - fn from(version: sp_version::RuntimeVersion) -> Self { +impl From for LastRuntimeUpgradeInfo { + fn from(version: RuntimeVersion) -> Self { Self { spec_version: version.spec_version.into(), spec_name: version.spec_name, @@ -1153,20 +1314,18 @@ impl From for LastRuntimeUpgradeInfo { /// Ensure the origin is Root. pub struct EnsureRoot(sp_std::marker::PhantomData); -impl, O>> + From>, AccountId> - EnsureOrigin for EnsureRoot -{ +impl EnsureOrigin for EnsureRoot { type Success = (); fn try_origin(o: O) -> Result { - o.into().and_then(|o| match o { - RawOrigin::Root => Ok(()), - r => Err(O::from(r)), - }) + match o.as_system_ref() { + Some(RawOrigin::Root) => Ok(()), + _ => Err(o), + } } #[cfg(feature = "runtime-benchmarks")] fn try_successful_origin() -> Result { - Ok(O::from(RawOrigin::Root)) + Ok(O::root()) } } @@ -1180,23 +1339,20 @@ impl_ensure_origin_with_arg_ignoring_arg! { pub struct EnsureRootWithSuccess( sp_std::marker::PhantomData<(AccountId, Success)>, ); -impl< - O: Into, O>> + From>, - AccountId, - Success: TypedGet, - > EnsureOrigin for EnsureRootWithSuccess +impl EnsureOrigin + for EnsureRootWithSuccess { type Success = Success::Type; fn try_origin(o: O) -> Result { - o.into().and_then(|o| match o { - RawOrigin::Root => Ok(Success::get()), - r => Err(O::from(r)), - }) + match o.as_system_ref() { + Some(RawOrigin::Root) => Ok(Success::get()), + _ => Err(o), + } } #[cfg(feature = "runtime-benchmarks")] fn try_successful_origin() -> Result { - Ok(O::from(RawOrigin::Root)) + Ok(O::root()) } } @@ -1254,17 +1410,17 @@ impl, O>> + From>, Acco /// Ensure the origin is `Signed` origin from the given `AccountId`. pub struct EnsureSignedBy(sp_std::marker::PhantomData<(Who, AccountId)>); impl< - O: Into, O>> + From>, + O: OriginTrait, Who: SortedMembers, AccountId: PartialEq + Clone + Ord + Decode, > EnsureOrigin for EnsureSignedBy { type Success = AccountId; fn try_origin(o: O) -> Result { - o.into().and_then(|o| match o { - RawOrigin::Signed(ref who) if Who::contains(who) => Ok(who.clone()), - r => Err(O::from(r)), - }) + match o.as_system_ref() { + Some(RawOrigin::Signed(ref who)) if Who::contains(who) => Ok(who.clone()), + _ => Err(o), + } } #[cfg(feature = "runtime-benchmarks")] @@ -1273,37 +1429,47 @@ impl< Some(account) => account.clone(), None => AccountId::decode(&mut TrailingZeroInput::zeroes()).map_err(|_| ())?, }; - Ok(O::from(RawOrigin::Signed(first_member))) + Ok(O::signed(first_member)) } } impl_ensure_origin_with_arg_ignoring_arg! { - impl< { O: .., Who: SortedMembers, AccountId: PartialEq + Clone + Ord + Decode, T } > + impl< { O: OriginTrait, Who: SortedMembers, AccountId: PartialEq + Clone + Ord + Decode, T } > EnsureOriginWithArg for EnsureSignedBy {} } /// Ensure the origin is `None`. i.e. unsigned transaction. pub struct EnsureNone(sp_std::marker::PhantomData); -impl, O>> + From>, AccountId> - EnsureOrigin for EnsureNone -{ +impl, AccountId> EnsureOrigin for EnsureNone { type Success = (); fn try_origin(o: O) -> Result { - o.into().and_then(|o| match o { - RawOrigin::None => Ok(()), - r => Err(O::from(r)), - }) + match o.as_system_ref() { + Some(RawOrigin::None) => Ok(()), + _ => Err(o), + } } #[cfg(feature = "runtime-benchmarks")] fn try_successful_origin() -> Result { - Ok(O::from(RawOrigin::None)) + Ok(O::none()) + } +} + +/// Ensure that the origin `o` represents an extrinsic with authorized call. Returns `Ok` or an +/// `Err` otherwise. +pub fn ensure_authorized(o: OuterOrigin) -> Result<(), BadOrigin> +where + OuterOrigin: Into, OuterOrigin>>, +{ + match o.into() { + Ok(RawOrigin::Authorized) => Ok(()), + _ => Err(BadOrigin), } } impl_ensure_origin_with_arg_ignoring_arg! { - impl< { O: .., AccountId, T } > + impl< { O: OriginTrait, AccountId, T } > EnsureOriginWithArg for EnsureNone {} } @@ -1404,6 +1570,34 @@ pub enum DecRefStatus { Exists, } +/// Result of [`Pallet::can_set_code`]. +pub enum CanSetCodeResult { + /// Everything is fine. + Ok, + /// Multi-block migrations are on-going. + MultiBlockMigrationsOngoing, + /// The runtime version is invalid or could not be fetched. + InvalidVersion(Error), +} + +impl CanSetCodeResult { + /// Convert `Self` into a result. + pub fn into_result(self) -> Result<(), DispatchError> { + match self { + Self::Ok => Ok(()), + Self::MultiBlockMigrationsOngoing => { + Err(Error::::MultiBlockMigrationsOngoing.into()) + }, + Self::InvalidVersion(err) => Err(err.into()), + } + } + + /// Is this `Ok`? + pub fn is_ok(&self) -> bool { + matches!(self, Self::Ok) + } +} + impl Pallet { /// Returns the `spec_version` of the last runtime upgrade. /// @@ -1436,6 +1630,19 @@ impl Pallet { Self::deposit_event(Event::CodeUpdated); } + /// Whether all inherents have been applied. + pub fn inherents_applied() -> bool { + InherentsApplied::::get() + } + + /// Note that all inherents have been applied. + /// + /// Should be called immediately after all inherents have been applied. Must be called at least + /// once per block. + pub fn note_inherents_applied() { + InherentsApplied::::put(true); + } + /// Increment the reference counter on an account. #[deprecated = "Use `inc_consumers` instead"] pub fn inc_ref(who: &T::AccountId) { @@ -1725,13 +1932,13 @@ impl Pallet { /// Returns all extrinsics len in raw. pub fn all_extrinsics_len() -> u32 { - AllExtrinsicsLen::::get().unwrap_or_default().raw() + AllExtrinsicsLen::::get().unwrap_or_default() } - /// Returns all extrinsics len with padding. - pub fn all_padded_extrinsics_len() -> u32 { - AllExtrinsicsLen::::get().unwrap_or_default().padded() - } + // /// Returns all extrinsics len with padding. + // pub fn all_padded_extrinsics_len() -> u32 { + // AllExtrinsicsLen::::get().unwrap_or_default().padded() + // } /// Inform the system pallet of some additional weight that should be accounted for, in the /// current block. @@ -1759,8 +1966,7 @@ impl Pallet { // populate environment ExecutionPhase::::put(Phase::Initialization); storage::unhashed::put(well_known_keys::EXTRINSIC_INDEX, &0u32); - let entropy = (b"frame_system::initialize", parent_hash).using_encoded(blake2_256); - storage::unhashed::put_raw(well_known_keys::INTRABLOCK_ENTROPY, &entropy[..]); + Self::initialize_intra_block_entropy(parent_hash); >::put(number); >::put(digest); >::put(parent_hash); @@ -1771,15 +1977,25 @@ impl Pallet { AllExtrinsicsLen::::kill(); } - /// Remove temporary "environment" entries in storage, compute the storage root and return the - /// resulting header for this block. - pub fn finalize() -> HeaderFor { + /// Initialize [`INTRABLOCK_ENTROPY`](well_known_keys::INTRABLOCK_ENTROPY). + /// + /// Normally this is called internally [`initialize`](Self::initialize) at block initiation. + pub fn initialize_intra_block_entropy(parent_hash: &T::Hash) { + let entropy = (b"frame_system::initialize", parent_hash).using_encoded(blake2_256); + storage::unhashed::put_raw(well_known_keys::INTRABLOCK_ENTROPY, &entropy[..]); + } + + /// Log the entire resouce usage report up until this point. + /// + /// Uses `crate::LOG_TARGET`, level `debug` and prints the weight and block length usage. + pub fn resource_usage_report() { log::debug!( target: LOG_TARGET, "[{:?}] {} extrinsics, length: {} (normal {}%, op: {}%, mandatory {}%) / normal weight:\ - {} ({}%) op weight {} ({}%) / mandatory weight {} ({}%)", + {} (ref_time: {}%, proof_size: {}%) op weight {} (ref_time {}%, proof_size {}%) / \ + mandatory weight {} (ref_time: {}%, proof_size: {}%)", Self::block_number(), - Self::extrinsic_index().unwrap_or_default(), + Self::extrinsic_count(), Self::all_extrinsics_len(), sp_runtime::Percent::from_rational( Self::all_extrinsics_len(), @@ -1798,17 +2014,35 @@ impl Pallet { Self::block_weight().get(DispatchClass::Normal).ref_time(), T::BlockWeights::get().get(DispatchClass::Normal).max_total.unwrap_or(Bounded::max_value()).ref_time() ).deconstruct(), + sp_runtime::Percent::from_rational( + Self::block_weight().get(DispatchClass::Normal).proof_size(), + T::BlockWeights::get().get(DispatchClass::Normal).max_total.unwrap_or(Bounded::max_value()).proof_size() + ).deconstruct(), Self::block_weight().get(DispatchClass::Operational), sp_runtime::Percent::from_rational( Self::block_weight().get(DispatchClass::Operational).ref_time(), T::BlockWeights::get().get(DispatchClass::Operational).max_total.unwrap_or(Bounded::max_value()).ref_time() ).deconstruct(), + sp_runtime::Percent::from_rational( + Self::block_weight().get(DispatchClass::Operational).proof_size(), + T::BlockWeights::get().get(DispatchClass::Operational).max_total.unwrap_or(Bounded::max_value()).proof_size() + ).deconstruct(), Self::block_weight().get(DispatchClass::Mandatory), sp_runtime::Percent::from_rational( Self::block_weight().get(DispatchClass::Mandatory).ref_time(), T::BlockWeights::get().get(DispatchClass::Mandatory).max_total.unwrap_or(Bounded::max_value()).ref_time() ).deconstruct(), + sp_runtime::Percent::from_rational( + Self::block_weight().get(DispatchClass::Mandatory).proof_size(), + T::BlockWeights::get().get(DispatchClass::Mandatory).max_total.unwrap_or(Bounded::max_value()).proof_size() + ).deconstruct(), ); + } + + /// Remove temporary "environment" entries in storage, compute the storage root and return the + /// resulting header for this block. + pub fn finalize() -> HeaderFor { + Self::resource_usage_report(); ExecutionPhase::::kill(); // This will be cleared in on_initialise of next block // AllExtrinsicsLen::::kill(); @@ -1959,6 +2193,51 @@ impl Pallet { .collect::<_>() } + /// Simulate the execution of a block sequence up to a specified height, injecting the + /// provided hooks at each block. + /// + /// `on_finalize` is always called before `on_initialize` with the current block number. + /// `on_initalize` is always called with the next block number. + /// + /// These hooks allows custom logic to be executed at each block at specific location. + /// For example, you might use one of them to set a timestamp for each block. + #[cfg(any(feature = "std", feature = "runtime-benchmarks", test))] + pub fn run_to_block_with( + n: BlockNumberFor, + mut hooks: RunToBlockHooks, + ) where + AllPalletsWithSystem: frame_support::traits::OnInitialize> + + frame_support::traits::OnFinalize>, + { + let mut bn = Self::block_number(); + + while bn < n { + // Skip block 0. + if !bn.is_zero() { + (hooks.before_finalize)(bn); + AllPalletsWithSystem::on_finalize(bn); + (hooks.after_finalize)(bn); + } + + bn += One::one(); + + Self::set_block_number(bn); + (hooks.before_initialize)(bn); + AllPalletsWithSystem::on_initialize(bn); + (hooks.after_initialize)(bn); + } + } + + /// Simulate the execution of a block sequence up to a specified height. + #[cfg(any(feature = "std", feature = "runtime-benchmarks", test))] + pub fn run_to_block(n: BlockNumberFor) + where + AllPalletsWithSystem: frame_support::traits::OnInitialize> + + frame_support::traits::OnFinalize>, + { + Self::run_to_block_with::(n, Default::default()); + } + /// Set the block number to something in particular. Can be used as an alternative to /// `initialize` for tests that don't need to bother with the other environment entries. #[cfg(any(feature = "std", feature = "runtime-benchmarks", test))] @@ -1982,12 +2261,10 @@ impl Pallet { /// Set the current block weight. This should only be used in some integration tests. #[cfg(any(feature = "std", test))] pub fn set_block_consumed_resources(weight: Weight, len: usize) { - use sp_runtime::SaturatedConversion as _; - BlockWeight::::mutate(|current_weight| { current_weight.set(weight, DispatchClass::Normal) }); - AllExtrinsicsLen::::put(ExtrinsicLen::new(len.saturated_into())); + AllExtrinsicsLen::::put(len as u32); } /// Reset events. @@ -2056,14 +2333,20 @@ impl Pallet { /// Emits an `ExtrinsicSuccess` or `ExtrinsicFailed` event depending on the outcome. /// The emitted event contains the post-dispatch corrected weight including /// the base-weight for its dispatch class. - pub fn note_applied_extrinsic(r: &DispatchResultWithPostInfo, mut info: DispatchInfo) { - info.weight = extract_actual_weight(r, &info) + pub fn note_applied_extrinsic(r: &DispatchResultWithPostInfo, info: DispatchInfo) { + let weight = extract_actual_weight(r, &info) .saturating_add(T::BlockWeights::get().get(info.class).base_extrinsic); - info.pays_fee = extract_actual_pays_fee(r, &info); + let class = info.class; + let pays_fee = extract_actual_pays_fee(r, &info); + let dispatch_event_info = DispatchEventInfo { + weight, + class, + pays_fee, + }; Self::deposit_event(match r { Ok(_) => Event::ExtrinsicSuccess { - dispatch_info: info, + dispatch_info: dispatch_event_info, }, Err(err) => { log::trace!( @@ -2074,15 +2357,28 @@ impl Pallet { ); Event::ExtrinsicFailed { dispatch_error: err.error, - dispatch_info: info, + dispatch_info: dispatch_event_info, } }, }); + log::trace!( + target: LOG_TARGET, + "Used block weight: {:?}", + BlockWeight::::get(), + ); + + log::trace!( + target: LOG_TARGET, + "Used block length: {:?}", + Pallet::::all_extrinsics_len(), + ); + let next_extrinsic_index = Self::extrinsic_index().unwrap_or_default() + 1u32; storage::unhashed::put(well_known_keys::EXTRINSIC_INDEX, &next_extrinsic_index); ExecutionPhase::::put(Phase::ApplyExtrinsic(next_extrinsic_index)); + ExtrinsicWeightReclaimed::::kill(); } /// To be called immediately after `note_applied_extrinsic` of the last extrinsic of the block @@ -2114,36 +2410,40 @@ impl Pallet { /// Determine whether or not it is possible to update the code. /// - /// Checks the given code if it is a valid runtime wasm blob by instantianting - /// it and extracting the runtime version of it. It checks that the runtime version - /// of the old and new runtime has the same spec name and that the spec version is increasing. - pub fn can_set_code(code: &[u8]) -> Result<(), sp_runtime::DispatchError> { - let current_version = T::Version::get(); - let new_version = sp_io::misc::runtime_version(code) - .and_then(|v| RuntimeVersion::decode(&mut &v[..]).ok()) - .ok_or(Error::::FailedToExtractRuntimeVersion)?; - - cfg_if::cfg_if! { - if #[cfg(all(feature = "runtime-benchmarks", not(test)))] { + /// - `check_version`: Should the runtime version be checked? + pub fn can_set_code(code: &[u8], check_version: bool) -> CanSetCodeResult { + if T::MultiBlockMigrator::ongoing() { + return CanSetCodeResult::MultiBlockMigrationsOngoing; + } + + if check_version { + let current_version = T::Version::get(); + let Some(new_version) = sp_io::misc::runtime_version(code) + .and_then(|v| RuntimeVersion::decode(&mut &v[..]).ok()) + else { + return CanSetCodeResult::InvalidVersion(Error::::FailedToExtractRuntimeVersion); + }; + + cfg_if::cfg_if! { + if #[cfg(all(feature = "runtime-benchmarks", not(test)))] { // Let's ensure the compiler doesn't optimize our fetching of the runtime version away. core::hint::black_box((new_version, current_version)); - Ok(()) - } else { - if new_version.spec_name != current_version.spec_name { - return Err(Error::::InvalidSpecName.into()) - } + } else { + if new_version.spec_name != current_version.spec_name { + return CanSetCodeResult::InvalidVersion( Error::::InvalidSpecName) + } - if new_version.spec_version <= current_version.spec_version { - return Err(Error::::SpecVersionNeedsToIncrease.into()) + if new_version.spec_version <= current_version.spec_version { + return CanSetCodeResult::InvalidVersion(Error::::SpecVersionNeedsToIncrease) + } } - - Ok(()) } } + + CanSetCodeResult::Ok } - /// To be called after any origin/privilege checks. Put the code upgrade authorization into - /// storage and emit an event. Infallible. + /// Authorize the given `code_hash` as upgrade. pub fn do_authorize_upgrade(code_hash: T::Hash, check_version: bool) { AuthorizedUpgrade::::put(CodeUpgradeAuthorization { code_hash, @@ -2155,35 +2455,19 @@ impl Pallet { }); } - /// Apply an authorized upgrade, performing any validation checks, and remove the authorization. - /// Whether or not the code is set directly depends on the `OnSetCode` configuration of the - /// runtime. - pub fn do_apply_authorize_upgrade(code: Vec) -> Result { - Self::validate_authorized_upgrade(&code[..])?; - T::OnSetCode::set_code(code)?; - AuthorizedUpgrade::::kill(); - let post = PostDispatchInfo { - // consume the rest of the block to prevent further transactions - actual_weight: Some(T::BlockWeights::get().max_block), - // no fee for valid upgrade - pays_fee: Pays::No, - }; - Ok(post) - } - - /// Check that provided `code` can be upgraded to. Namely, check that its hash matches an - /// existing authorization and that it meets the specification requirements of `can_set_code`. - pub fn validate_authorized_upgrade(code: &[u8]) -> Result { + /// Check that provided `code` is authorized as an upgrade. + /// + /// Returns the [`CodeUpgradeAuthorization`]. + fn validate_code_is_authorized( + code: &[u8], + ) -> Result, DispatchError> { let authorization = AuthorizedUpgrade::::get().ok_or(Error::::NothingAuthorized)?; let actual_hash = T::Hashing::hash(code); ensure!( actual_hash == authorization.code_hash, Error::::Unauthorized ); - if authorization.check_version { - Self::can_set_code(code)? - } - Ok(actual_hash) + Ok(authorization) } /// Creates a `ExtrinsicLen` based on `len` as raw length. @@ -2192,6 +2476,40 @@ impl Pallet { let chunk_size = Self::block_length().chunk_size(); kate::padded_len(len, chunk_size) } + + /// Reclaim the weight for the extrinsic given info and post info. + /// + /// This function will check the already reclaimed weight, and reclaim more if the + /// difference between pre dispatch and post dispatch weight is higher. + pub fn reclaim_weight( + info: &DispatchInfoOf, + post_info: &PostDispatchInfoOf, + ) -> Result<(), TransactionValidityError> + where + T::RuntimeCall: Dispatchable, + { + let already_reclaimed = crate::ExtrinsicWeightReclaimed::::get(); + let unspent = post_info.calc_unspent(info); + let accurate_reclaim = already_reclaimed.max(unspent); + // Saturation never happens, we took the maximum above. + let to_reclaim_more = accurate_reclaim.saturating_sub(already_reclaimed); + if to_reclaim_more != Weight::zero() { + crate::BlockWeight::::mutate(|current_weight| { + current_weight.reduce(to_reclaim_more, info.class); + }); + crate::ExtrinsicWeightReclaimed::::put(accurate_reclaim); + } + + Ok(()) + } + + /// Returns the remaining weight of the block. + pub fn remaining_block_weight() -> WeightMeter { + let limit = T::BlockWeights::get().max_block; + let consumed = BlockWeight::::get().total(); + + WeightMeter::with_consumed_and_limit(consumed, limit) + } } /// Returns a 32 byte datum which is guaranteed to be universally unique. `entropy` is provided @@ -2311,6 +2629,72 @@ impl Lookup for ChainContext { } } +/// Hooks for the [`Pallet::run_to_block_with`] function. +#[cfg(any(feature = "std", feature = "runtime-benchmarks", test))] +pub struct RunToBlockHooks<'a, T> +where + T: 'a + Config, +{ + before_initialize: Box)>, + after_initialize: Box)>, + before_finalize: Box)>, + after_finalize: Box)>, +} + +#[cfg(any(feature = "std", feature = "runtime-benchmarks", test))] +impl<'a, T> RunToBlockHooks<'a, T> +where + T: 'a + Config, +{ + /// Set the hook function logic before the initialization of the block. + pub fn before_initialize(mut self, f: F) -> Self + where + F: 'a + FnMut(BlockNumberFor), + { + self.before_initialize = Box::new(f); + self + } + /// Set the hook function logic after the initialization of the block. + pub fn after_initialize(mut self, f: F) -> Self + where + F: 'a + FnMut(BlockNumberFor), + { + self.after_initialize = Box::new(f); + self + } + /// Set the hook function logic before the finalization of the block. + pub fn before_finalize(mut self, f: F) -> Self + where + F: 'a + FnMut(BlockNumberFor), + { + self.before_finalize = Box::new(f); + self + } + /// Set the hook function logic after the finalization of the block. + pub fn after_finalize(mut self, f: F) -> Self + where + F: 'a + FnMut(BlockNumberFor), + { + self.after_finalize = Box::new(f); + self + } +} + +#[cfg(any(feature = "std", feature = "runtime-benchmarks", test))] +impl<'a, T> Default for RunToBlockHooks<'a, T> +where + T: Config, +{ + fn default() -> Self { + Self { + before_initialize: Box::new(|_| {}), + after_initialize: Box::new(|_| {}), + before_finalize: Box::new(|_| {}), + after_finalize: Box::new(|_| {}), + } + } +} + /// Prelude to be used alongside pallet macro, for ease of use. pub mod pallet_prelude { pub use crate::{ensure_none, ensure_root, ensure_signed, ensure_signed_or_root}; @@ -2330,4 +2714,7 @@ pub mod pallet_prelude { /// Type alias for the `RuntimeCall` associated type of system config. pub type RuntimeCallFor = ::RuntimeCall; + + /// Type alias for the `AccountId` associated type of system config. + pub type AccountIdFor = ::AccountId; } diff --git a/pallets/system/src/limits.rs b/pallets/system/src/limits.rs index e0a3d1bc0..75bf69e73 100644 --- a/pallets/system/src/limits.rs +++ b/pallets/system/src/limits.rs @@ -37,7 +37,6 @@ use frame_support::{ use scale_info::{build::Fields, Path, Type, TypeInfo}; use serde::{Deserialize, Serialize}; use sp_runtime::{traits::Bounded, Perbill, RuntimeDebug}; -use sp_runtime_interface::pass_by::PassByCodec; use sp_std::vec::Vec; use static_assertions::const_assert; @@ -45,7 +44,7 @@ pub const MAX_BLOCK_ROWS: BlockLengthRows = BlockLengthRows(4096); pub const MAX_BLOCK_COLUMNS: BlockLengthColumns = BlockLengthColumns(1024); /// Block length limit configuration. -#[derive(RuntimeDebug, PartialEq, Clone, PassByCodec, MaxEncodedLen, Serialize, Deserialize)] +#[derive(RuntimeDebug, PartialEq, Clone, MaxEncodedLen, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct BlockLength { /// Maximal total length in bytes for each extrinsic class. diff --git a/pallets/system/src/mock.rs b/pallets/system/src/mock.rs index a91392def..78a350108 100644 --- a/pallets/system/src/mock.rs +++ b/pallets/system/src/mock.rs @@ -23,7 +23,7 @@ use sp_runtime::{ BuildStorage, Perbill, }; -use crate::{self as frame_system, test_utils::TestRandomness, *}; +use crate::{self as frame_system, *}; type Extrinsic = mocking::MockUncheckedExtrinsic; type BlockNumber = u32; @@ -42,14 +42,14 @@ const MAX_BLOCK_WEIGHT: Weight = Weight::from_parts(1024, u64::MAX); parameter_types! { pub Version: RuntimeVersion = RuntimeVersion { - spec_name: sp_version::create_runtime_str!("test"), - impl_name: sp_version::create_runtime_str!("system-test"), + spec_name: sp_version::Cow::Borrowed("test"), + impl_name: sp_version::Cow::Borrowed("system-test"), authoring_version: 1, spec_version: 1, impl_version: 1, apis: sp_version::create_apis_vec!([]), transaction_version: 1, - state_version: 1, + system_version: 1, }; pub const DbWeight: RuntimeDbWeight = RuntimeDbWeight { read: 10, @@ -114,7 +114,7 @@ impl Config for Test { type AccountData = u32; type HeaderExtensionBuilder = frame_system::native::hosted_header_builder::da::HeaderExtensionBuilder; - type Randomness = TestRandomness; + // type Randomness = TestRandomness; type Header = Header; type HeaderExtensionDataFilter = (); type Extrinsic = Extrinsic; diff --git a/pallets/system/src/mocking.rs b/pallets/system/src/mocking.rs index 8e802222d..11f43bce0 100644 --- a/pallets/system/src/mocking.rs +++ b/pallets/system/src/mocking.rs @@ -1,6 +1,6 @@ // This file is part of Substrate. -// Copyright (C) 2021-2022 Parity Technologies (UK) Ltd. +// Copyright (C) Parity Technologies (UK) Ltd. // SPDX-License-Identifier: Apache-2.0 // Licensed under the Apache License, Version 2.0 (the "License"); @@ -17,137 +17,36 @@ //! Provide types to help defining a mock environment when testing pallets. -use avail_core::{ - traits::{GetAppId, MaybeCaller}, - AppId, OpaqueExtrinsic, -}; -use codec::{Decode, Encode}; -use frame_support::traits::ExtrinsicCall; -use scale_info::TypeInfo; -use sp_runtime::{ - generic, - traits::{DispatchInfoOf, Extrinsic, ExtrinsicMetadata, SignedExtension}, - transaction_validity::TransactionValidityError, -}; +use crate::native::hosted_header_builder::da::BlockNumber; +use sp_runtime::generic; -use crate::{native::hosted_header_builder::da::BlockNumber, Config}; - -#[derive(Clone, Copy, Default, Debug, Encode, Decode, PartialEq, Eq, TypeInfo)] -pub struct DefaultGetAppId {} - -impl GetAppId for DefaultGetAppId {} -impl SignedExtension for DefaultGetAppId { - type AccountId = u32; - type AdditionalSigned = (); - type Call = (); - type Pre = (); - - const IDENTIFIER: &'static str = "DefaultGetAppId"; - - fn additional_signed(&self) -> Result { - Ok(()) - } - - fn pre_dispatch( - self, - _who: &Self::AccountId, - _call: &Self::Call, - _info: &DispatchInfoOf, - _len: usize, - ) -> Result { - Ok(()) - } -} - -#[derive(Clone, Debug, Decode, Encode, PartialEq, Eq, TypeInfo)] /// An unchecked extrinsic type to be used in tests. -pub struct MockUncheckedExtrinsic( - pub generic::UncheckedExtrinsic< - ::AccountId, - ::RuntimeCall, - (), - DefaultGetAppId, - >, -); - -impl Extrinsic for MockUncheckedExtrinsic { - type Call = ::RuntimeCall; - type SignaturePayload = (::AccountId, (), DefaultGetAppId); -} - -impl ExtrinsicMetadata for MockUncheckedExtrinsic { - type SignedExtensions = DefaultGetAppId; - - const VERSION: u8 = avail_core::asdr::EXTRINSIC_FORMAT_VERSION; -} - -impl ExtrinsicCall for MockUncheckedExtrinsic { - fn call(&self) -> &Self::Call { - &self.0.function - } -} - -impl MaybeCaller for MockUncheckedExtrinsic { - fn caller(&self) -> Option<&T::AccountId> { - self.0.signature.as_ref().map(|s| &s.0) - } -} - -impl GetAppId for MockUncheckedExtrinsic { - fn app_id(&self) -> AppId { - AppId::default() - } -} - -#[cfg(feature = "std")] -impl serde::Serialize for MockUncheckedExtrinsic { - fn serialize(&self, s: S) -> Result - where - S: ::serde::Serializer, - { - let encoded = self.encode(); - sp_core::bytes::serialize(&encoded, s) - } -} - -#[cfg(feature = "std")] -impl<'a, T: Config> serde::Deserialize<'a> for MockUncheckedExtrinsic { - fn deserialize(de: D) -> Result - where - D: serde::Deserializer<'a>, - { - let r = sp_core::bytes::deserialize(de)?; - Decode::decode(&mut &r[..]) - .map_err(|e| serde::de::Error::custom(format!("Decode error: {}", e))) - } -} - -impl TryFrom<&[u8]> for MockUncheckedExtrinsic { - type Error = codec::Error; - - fn try_from(raw: &[u8]) -> Result { - let encoded = raw.encode(); - let ut = Self::decode(&mut encoded.as_slice())?; - - Ok(ut) - } -} - -impl TryFrom<&OpaqueExtrinsic> for MockUncheckedExtrinsic { - type Error = codec::Error; - - fn try_from(opaque: &OpaqueExtrinsic) -> Result { - let encoded = opaque.encode(); - Self::decode(&mut encoded.as_slice()) - } -} +pub type MockUncheckedExtrinsic = generic::UncheckedExtrinsic< + ::AccountId, + ::RuntimeCall, + Signature, + Extra, +>; /// An implementation of `sp_runtime::traits::Block` to be used in tests. pub type MockBlock = generic::Block< + generic::Header, + MockUncheckedExtrinsic, +>; + +/// An implementation of `sp_runtime::traits::Block` to be used in tests with u32 BlockNumber type. +pub type MockBlockU32 = generic::Block< generic::Header, MockUncheckedExtrinsic, >; +/// An implementation of `sp_runtime::traits::Block` to be used in tests with u128 BlockNumber +/// type. +pub type MockBlockU128 = generic::Block< + generic::Header, + MockUncheckedExtrinsic, +>; + /// An implementation of `sp_runtime::traits::Block` with DA header to be used in tests pub type MockDaBlock = avail_core::DaBlock< avail_core::header::Header, diff --git a/pallets/system/src/native/hosted_header_builder.rs b/pallets/system/src/native/hosted_header_builder.rs index a8d3b3330..77a30ba0d 100644 --- a/pallets/system/src/native/hosted_header_builder.rs +++ b/pallets/system/src/native/hosted_header_builder.rs @@ -2,7 +2,7 @@ // More info about how runtime interfaces work: (https://docs.rs/sp-runtime-interface/latest/sp_runtime_interface/attr.runtime_interface.html // !!!! -use crate::{limits::BlockLength, Config, LOG_TARGET}; +use crate::{limits::BlockLength, Config}; use avail_base::header_extension::SubmittedData; use avail_core::HeaderVersion; use avail_core::{header::HeaderExtension, traits::ExtendedHeader}; @@ -11,10 +11,11 @@ pub use kate::{ Seed, }; -use frame_support::traits::Randomness; use sp_core::H256; -use sp_runtime::traits::Hash; -use sp_runtime_interface::runtime_interface; +use sp_runtime_interface::{ + pass_by::{AllocateAndReturnByCodec, PassFatPointerAndDecode}, + runtime_interface, +}; use sp_std::vec::Vec; pub const MIN_WIDTH: usize = 4; @@ -65,39 +66,30 @@ pub trait HeaderExtensionBuilder { block_length: BlockLength, version: HeaderVersion, ) -> HeaderExtension; - - /// Generates a random seed using the _epoch seed_ and the _current block_ returned by - /// `T::Randomness` type. - fn random_seed() -> Seed { - let seed = if cfg!(feature = "secure_padding_fill") { - let (epoch_seed, block_number) = ::Randomness::random_seed(); - let seed = ::Hashing::hash_of(&(&epoch_seed, &block_number)); - log::trace!( - target: LOG_TARGET, - "Header builder seed {seed:?} from epoch seed {epoch_seed:?} and block {block_number:?}"); - seed - } else { - ::Hash::default() - }; - - seed.into() - } } /// Hosted function to build the header using `kate` commitments. #[runtime_interface] pub trait HostedHeaderBuilder { fn build_extension( - submitted: Vec, - data_root: H256, - block_length: BlockLength, - version: HeaderVersion, - ) -> HeaderExtension { - crate::native::build_extension_v2::build_extension_v4( - submitted, - data_root, - block_length, - version, - ) + submitted: PassFatPointerAndDecode>, + data_root: PassFatPointerAndDecode, + block_length: PassFatPointerAndDecode, + version: PassFatPointerAndDecode, + ) -> AllocateAndReturnByCodec { + #[cfg(feature = "std")] + { + return crate::native::build_extension_v2::build_extension_v4( + submitted.to_vec(), + data_root, + block_length, + version, + ); + } + + #[cfg(not(feature = "std"))] + { + return HeaderExtension::get_faulty_header(data_root, version); + } } } diff --git a/pallets/system/src/offchain.rs b/pallets/system/src/offchain.rs index 42629dca4..94d1eafbc 100644 --- a/pallets/system/src/offchain.rs +++ b/pallets/system/src/offchain.rs @@ -22,7 +22,7 @@ //! This module provides transaction related helpers to: //! - Submit a raw unsigned transaction //! - Submit an unsigned transaction with a signed payload -//! - Submit a signed transction. +//! - Submit a signed transaction. //! //! ## Usage //! @@ -56,13 +56,14 @@ #![warn(missing_docs)] +use alloc::{boxed::Box, collections::btree_set::BTreeSet, vec::Vec}; use codec::Encode; +use scale_info::TypeInfo; use sp_runtime::{ app_crypto::RuntimeAppPublic, - traits::{Extrinsic as ExtrinsicT, IdentifyAccount, One}, + traits::{ExtrinsicLike, IdentifyAccount, One}, RuntimeDebug, }; -use sp_std::{collections::btree_set::BTreeSet, prelude::*}; /// Marker struct used to flag using all supported keys to sign a payload. pub struct ForAll {} @@ -75,31 +76,18 @@ pub struct ForAny {} /// For submitting unsigned transactions, `submit_unsigned_transaction` /// utility function can be used. However, this struct is used by `Signer` /// to submit a signed transactions providing the signature along with the call. -pub struct SubmitTransaction, OverarchingCall> { - _phantom: sp_std::marker::PhantomData<(T, OverarchingCall)>, +pub struct SubmitTransaction, RuntimeCall> { + _phantom: core::marker::PhantomData<(T, RuntimeCall)>, } impl SubmitTransaction where - T: SendTransactionTypes, + T: CreateTransactionBase, { - /// Submit transaction onchain by providing the call and an optional signature - #[allow(clippy::result_unit_err)] - pub fn submit_transaction( - call: >::OverarchingCall, - signature: Option<::SignaturePayload>, - ) -> Result<(), ()> { - let xt = T::Extrinsic::new(call, signature).ok_or(())?; + /// A convenience method to submit an extrinsic onchain. + pub fn submit_transaction(xt: T::Extrinsic) -> Result<(), ()> { sp_io::offchain::submit_transaction(xt.encode()) } - - /// A convenience method to submit an unsigned transaction onchain. - #[allow(clippy::result_unit_err)] - pub fn submit_unsigned_transaction( - call: >::OverarchingCall, - ) -> Result<(), ()> { - SubmitTransaction::::submit_transaction(call, None) - } } /// Provides an implementation for signing transaction payloads. @@ -117,7 +105,7 @@ where #[derive(RuntimeDebug)] pub struct Signer, X = ForAny> { accounts: Option>, - _phantom: sp_std::marker::PhantomData<(X, C)>, + _phantom: core::marker::PhantomData<(X, C)>, } impl, X> Default for Signer { @@ -291,11 +279,8 @@ impl< } } -impl< - T: SigningTypes + SendTransactionTypes, - C: AppCrypto, - LocalCall, - > SendUnsignedTransaction for Signer +impl, C: AppCrypto, LocalCall> + SendUnsignedTransaction for Signer { type Result = Option<(Account, Result<(), ()>)>; @@ -317,11 +302,8 @@ impl< } } -impl< - T: SigningTypes + SendTransactionTypes, - C: AppCrypto, - LocalCall, - > SendUnsignedTransaction for Signer +impl, C: AppCrypto, LocalCall> + SendUnsignedTransaction for Signer { type Result = Vec<(Account, Result<(), ()>)>; @@ -396,7 +378,7 @@ where /// /// // runtime-specific public key /// type Public = MultiSigner: From; -/// type Signature = MulitSignature: From; +/// type Signature = MultiSignature: From; /// ``` // TODO [#5662] Potentially use `IsWrappedBy` types, or find some other way to make it easy to // obtain unwrapped crypto (and wrap it back). @@ -456,7 +438,7 @@ pub trait SigningTypes: crate::Config { /// A public key that is capable of identifying `AccountId`s. /// /// Usually that's either a raw crypto public key (e.g. `sr25519::Public`) or - /// an aggregate type for multiple crypto public keys, like `MulitSigner`. + /// an aggregate type for multiple crypto public keys, like `MultiSigner`. type Public: Clone + PartialEq + IdentifyAccount @@ -469,25 +451,32 @@ pub trait SigningTypes: crate::Config { type Signature: Clone + PartialEq + core::fmt::Debug + codec::Codec + scale_info::TypeInfo; } -/// A definition of types required to submit transactions from within the runtime. -pub trait SendTransactionTypes { - /// The extrinsic type expected by the runtime. - type Extrinsic: ExtrinsicT + codec::Encode; +/// Common interface for the `CreateTransaction` trait family to unify the `Call` type. +pub trait CreateTransactionBase { + /// The extrinsic. + type Extrinsic: ExtrinsicLike + Encode; + /// The runtime's call type. /// /// This has additional bound to be able to be created from pallet-local `Call` types. - type OverarchingCall: From + codec::Encode; + type RuntimeCall: From + Encode; } -/// Create signed transaction. -/// -/// This trait is meant to be implemented by the runtime and is responsible for constructing -/// a payload to be signed and contained within the extrinsic. -/// This will most likely include creation of `SignedExtra` (a set of `SignedExtensions`). -/// Note that the result can be altered by inspecting the `Call` (for instance adjusting -/// fees, or mortality depending on the `pallet` being called). +/// Interface for creating a transaction. +pub trait CreateTransaction: CreateTransactionBase { + /// The extension. + type Extension: TypeInfo; + + /// Create a transaction using the call and the desired transaction extension. + fn create_transaction( + call: >::RuntimeCall, + extension: Self::Extension, + ) -> Self::Extrinsic; +} + +/// Interface for creating an old-school signed transaction. pub trait CreateSignedTransaction: - SendTransactionTypes + SigningTypes + CreateTransactionBase + SigningTypes { /// Attempt to create signed extrinsic data that encodes call from given account. /// @@ -495,15 +484,37 @@ pub trait CreateSignedTransaction: /// in any way it wants. /// Returns `None` if signed extrinsic could not be created (either because signing failed /// or because of any other runtime-specific reason). - fn create_transaction>( - call: Self::OverarchingCall, + fn create_signed_transaction>( + call: >::RuntimeCall, public: Self::Public, account: Self::AccountId, nonce: Self::Nonce, - ) -> Option<( - Self::OverarchingCall, - <>::Extrinsic as ExtrinsicT>::SignaturePayload, - )>; + ) -> Option<>::Extrinsic>; +} + +/// Interface for creating an inherent; ⚠️ **Deprecated use [`CreateBare`]**. +/// +/// This is a deprecated type alias for [`CreateBare`]. +/// +/// Doc for [`CreateBare`]: +#[deprecated(note = "Use `CreateBare` instead")] +#[doc(inline)] +pub use CreateBare as CreateInherent; + +/// Interface for creating a bare extrinsic. +/// +/// Bare extrinsic are used for inherent extrinsic and unsigned transaction. +pub trait CreateBare: CreateTransactionBase { + /// Create a bare extrinsic. + /// + /// Bare extrinsic are used for inherent extrinsic and unsigned transaction. + fn create_bare(call: Self::RuntimeCall) -> Self::Extrinsic; + + /// Create an inherent. + #[deprecated(note = "Use `create_bare` instead")] + fn create_inherent(call: Self::RuntimeCall) -> Self::Extrinsic { + Self::create_bare(call) + } } /// A message signer. @@ -529,9 +540,32 @@ pub trait SignMessage { TPayload: SignedPayload; } +/// Interface for creating a transaction for a call that will be authorized. +/// +/// Authorized calls are calls that has some specific validation logic execute in the transaction +/// extension: [`crate::AuthorizeCall`]. +/// The authorization logic is defined on the call with the attribute: +/// [`frame_support::pallet_macros::authorize`]. +/// +/// This trait allows the runtime to define the extension to be used when creating an authorized +/// transaction. It can be used in the offchain worker to create a transaction from a call. +pub trait CreateAuthorizedTransaction: CreateTransaction { + /// Create the transaction extension to be used alongside an authorized call. + /// + /// For more information about authorized call see [`frame_support::pallet_prelude::authorize`]. + fn create_extension() -> Self::Extension; + + /// Create a new transaction for an authorized call. + /// + /// For more information about authorized call see [`frame_support::pallet_prelude::authorize`]. + fn create_authorized_transaction(call: Self::RuntimeCall) -> Self::Extrinsic { + Self::create_transaction(call, Self::create_extension()) + } +} + /// Submit a signed transaction to the transaction pool. pub trait SendSignedTransaction< - T: SigningTypes + CreateSignedTransaction, + T: CreateSignedTransaction, C: AppCrypto, LocalCall, > @@ -562,13 +596,14 @@ pub trait SendSignedTransaction< account.id, account_data.nonce, ); - let (call, signature) = T::create_transaction::( + let transaction = T::create_signed_transaction::( call.into(), account.public.clone(), account.id.clone(), account_data.nonce, )?; - let res = SubmitTransaction::::submit_transaction(call, Some(signature)); + + let res = SubmitTransaction::::submit_transaction(transaction); if res.is_ok() { // increment the nonce. This is fine, since the code should always @@ -582,7 +617,7 @@ pub trait SendSignedTransaction< } /// Submit an unsigned transaction onchain with a signed payload -pub trait SendUnsignedTransaction, LocalCall> { +pub trait SendUnsignedTransaction, LocalCall> { /// A submission result. /// /// Should contain the submission result and the account(s) that signed the payload. @@ -605,7 +640,8 @@ pub trait SendUnsignedTransaction Option> { - Some(SubmitTransaction::::submit_unsigned_transaction(call.into())) + let xt = T::create_bare(call.into()); + Some(SubmitTransaction::::submit_transaction(xt)) } } @@ -632,13 +668,12 @@ pub trait SignedPayload: Encode { #[cfg(test)] mod tests { + use super::*; + use crate::mock::{RuntimeCall, Test as TestRuntime, CALL}; use codec::Decode; use sp_core::offchain::{testing, TransactionPoolExt}; use sp_runtime::testing::{TestSignature, TestXt, UintAuthorityId}; - use super::*; - use crate::mock::{RuntimeCall, Test as TestRuntime, CALL}; - impl SigningTypes for TestRuntime { type Public = UintAuthorityId; type Signature = TestSignature; @@ -646,9 +681,15 @@ mod tests { type Extrinsic = TestXt; - impl SendTransactionTypes for TestRuntime { + impl CreateTransactionBase for TestRuntime { type Extrinsic = Extrinsic; - type OverarchingCall = RuntimeCall; + type RuntimeCall = RuntimeCall; + } + + impl CreateBare for TestRuntime { + fn create_bare(call: Self::RuntimeCall) -> Self::Extrinsic { + Extrinsic::new_bare(call) + } } #[derive(codec::Encode, codec::Decode)] @@ -669,9 +710,9 @@ mod tests { // both application-specific crypto and the runtime crypto, but in real-life // runtimes it's going to use different types everywhere. impl AppCrypto for DummyAppCrypto { + type RuntimeAppPublic = UintAuthorityId; type GenericPublic = UintAuthorityId; type GenericSignature = TestSignature; - type RuntimeAppPublic = UintAuthorityId; } fn assert_account(next: Option<(Account, Result<(), ()>)>, index: usize, id: u64) { @@ -722,7 +763,7 @@ mod tests { let _tx3 = pool_state.write().transactions.pop().unwrap(); assert!(pool_state.read().transactions.is_empty()); let tx1 = Extrinsic::decode(&mut &*tx1).unwrap(); - assert_eq!(tx1.signature, None); + assert!(tx1.is_inherent()); }); } @@ -756,7 +797,7 @@ mod tests { let tx1 = pool_state.write().transactions.pop().unwrap(); assert!(pool_state.read().transactions.is_empty()); let tx1 = Extrinsic::decode(&mut &*tx1).unwrap(); - assert_eq!(tx1.signature, None); + assert!(tx1.is_inherent()); }); } @@ -793,7 +834,7 @@ mod tests { let _tx2 = pool_state.write().transactions.pop().unwrap(); assert!(pool_state.read().transactions.is_empty()); let tx1 = Extrinsic::decode(&mut &*tx1).unwrap(); - assert_eq!(tx1.signature, None); + assert!(tx1.is_inherent()); }); } @@ -828,7 +869,7 @@ mod tests { let tx1 = pool_state.write().transactions.pop().unwrap(); assert!(pool_state.read().transactions.is_empty()); let tx1 = Extrinsic::decode(&mut &*tx1).unwrap(); - assert_eq!(tx1.signature, None); + assert!(tx1.is_inherent()); }); } } diff --git a/pallets/system/src/weights.rs b/pallets/system/src/weights.rs index d57db507b..7667ca5ef 100644 --- a/pallets/system/src/weights.rs +++ b/pallets/system/src/weights.rs @@ -15,35 +15,57 @@ // See the License for the specific language governing permissions and // limitations under the License. +// This file is part of Substrate. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-03-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2025-02-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `ip-172-31-12-189`, CPU: `Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` +//! HOSTNAME: `4563561839a5`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` // Executed Command: -// ./target/release/avail-node +// frame-omni-bencher +// v1 // benchmark // pallet -// --chain=dev +// --extrinsic=* +// --runtime=target/production/wbuild/kitchensink-runtime/kitchensink_runtime.wasm +// --pallet=frame_system +// --header=/__w/polkadot-sdk/polkadot-sdk/substrate/HEADER-APACHE2 +// --output=/__w/polkadot-sdk/polkadot-sdk/substrate/frame/system/src/weights.rs +// --wasm-execution=compiled // --steps=50 // --repeat=20 -// --pallet=frame_system -// --extrinsic=* // --heap-pages=4096 -// --header=./HEADER-APACHE2 -// --log=warn -// --output -// ./output/frame_system_weights.rs -// --template -// ./.maintain/frame-weight-template.hbs +// --template=substrate/.maintain/frame-weight-template.hbs +// --no-storage-info +// --no-min-squares +// --no-median-slopes +// --genesis-builder-policy=none +// --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic,pallet_nomination_pools,pallet_remark,pallet_transaction_storage,pallet_election_provider_multi_block,pallet_election_provider_multi_block::signed,pallet_election_provider_multi_block::unsigned,pallet_election_provider_multi_block::verifier #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] #![allow(unused_imports)] #![allow(missing_docs)] +#![allow(dead_code)] use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use core::marker::PhantomData; @@ -59,57 +81,53 @@ pub trait WeightInfo { fn kill_prefix(p: u32, ) -> Weight; fn authorize_upgrade() -> Weight; fn apply_authorized_upgrade() -> Weight; - fn header_extension_builder() -> Weight; } -/// Weights for `frame_system` using the Avail node and recommended hardware. +/// Weights for `frame_system` using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - /// The range of component `b` is `[0, 4456448]`. + /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_526_000 picoseconds. - Weight::from_parts(4_788_000, 0) - // Standard Error: 0 - .saturating_add(Weight::from_parts(649, 0).saturating_mul(b.into())) + // Minimum execution time: 1_518_000 picoseconds. + Weight::from_parts(1_586_000, 0) + // Standard Error: 122 + .saturating_add(Weight::from_parts(10_920, 0).saturating_mul(b.into())) } - /// The range of component `b` is `[0, 4456448]`. + /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_584_000 picoseconds. - Weight::from_parts(11_927_000, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_949, 0).saturating_mul(b.into())) + // Minimum execution time: 4_558_000 picoseconds. + Weight::from_parts(4_725_000, 0) + // Standard Error: 120 + .saturating_add(Weight::from_parts(12_386, 0).saturating_mul(b.into())) } - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 8_460_000 picoseconds. - Weight::from_parts(9_012_000, 1485) - .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + // Estimated: `0` + // Minimum execution time: 2_639_000 picoseconds. + Weight::from_parts(2_836_000, 0) + .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) fn set_code() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 116_009_253_000 picoseconds. - Weight::from_parts(116_450_226_000, 1485) + // Estimated: `67035` + // Minimum execution time: 161_314_402_000 picoseconds. + Weight::from_parts(164_247_810_000, 67035) .saturating_add(T::DbWeight::get().reads(1_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -118,10 +136,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_805_000 picoseconds. - Weight::from_parts(4_935_000, 0) - // Standard Error: 1_942 - .saturating_add(Weight::from_parts(1_479_944, 0).saturating_mul(i.into())) + // Minimum execution time: 1_518_000 picoseconds. + Weight::from_parts(1_565_000, 0) + // Standard Error: 2_255 + .saturating_add(Weight::from_parts(733_648, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -131,10 +149,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_837_000 picoseconds. - Weight::from_parts(5_032_000, 0) - // Standard Error: 2_185 - .saturating_add(Weight::from_parts(1_081_986, 0).saturating_mul(i.into())) + // Minimum execution time: 1_583_000 picoseconds. + Weight::from_parts(1_624_000, 0) + // Standard Error: 1_360 + .saturating_add(Weight::from_parts(566_903, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -142,12 +160,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `96 + p * (69 ±0)` - // Estimated: `80 + p * (70 ±0)` - // Minimum execution time: 8_629_000 picoseconds. - Weight::from_parts(9_044_000, 80) - // Standard Error: 4_685 - .saturating_add(Weight::from_parts(2_076_553, 0).saturating_mul(p.into())) + // Measured: `12 + p * (69 ±0)` + // Estimated: `0 + p * (70 ±0)` + // Minimum execution time: 2_884_000 picoseconds. + Weight::from_parts(2_964_000, 0) + // Standard Error: 1_896 + .saturating_add(Weight::from_parts(1_340_742, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) @@ -158,81 +176,71 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 33_396_000 picoseconds. - Weight::from_parts(36_271_000, 0) + // Minimum execution time: 12_466_000 picoseconds. + Weight::from_parts(15_570_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `System::AuthorizedUpgrade` (r:1 w:1) /// Proof: `System::AuthorizedUpgrade` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`) - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) fn apply_authorized_upgrade() -> Weight { // Proof Size summary in bytes: - // Measured: `22` - // Estimated: `1518` - // Minimum execution time: 119_894_165_000 picoseconds. - Weight::from_parts(120_689_687_000, 1518) + // Measured: `21` + // Estimated: `67035` + // Minimum execution time: 163_673_542_000 picoseconds. + Weight::from_parts(166_858_158_000, 67035) .saturating_add(T::DbWeight::get().reads(2_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) - } - fn header_extension_builder() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 455_367_000 picoseconds. - Weight::from_parts(457_439_000, 0) + .saturating_add(T::DbWeight::get().writes(2_u64)) } } // For backwards compatibility and tests. impl WeightInfo for () { - /// The range of component `b` is `[0, 4456448]`. + /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_526_000 picoseconds. - Weight::from_parts(4_788_000, 0) - // Standard Error: 0 - .saturating_add(Weight::from_parts(649, 0).saturating_mul(b.into())) + // Minimum execution time: 1_518_000 picoseconds. + Weight::from_parts(1_586_000, 0) + // Standard Error: 122 + .saturating_add(Weight::from_parts(10_920, 0).saturating_mul(b.into())) } - /// The range of component `b` is `[0, 4456448]`. + /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 11_584_000 picoseconds. - Weight::from_parts(11_927_000, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(1_949, 0).saturating_mul(b.into())) + // Minimum execution time: 4_558_000 picoseconds. + Weight::from_parts(4_725_000, 0) + // Standard Error: 120 + .saturating_add(Weight::from_parts(12_386, 0).saturating_mul(b.into())) } - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) /// Proof: UNKNOWN KEY `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 8_460_000 picoseconds. - Weight::from_parts(9_012_000, 1485) - .saturating_add(RocksDbWeight::get().reads(1_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + // Estimated: `0` + // Minimum execution time: 2_639_000 picoseconds. + Weight::from_parts(2_836_000, 0) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) fn set_code() -> Weight { // Proof Size summary in bytes: // Measured: `0` - // Estimated: `1485` - // Minimum execution time: 116_009_253_000 picoseconds. - Weight::from_parts(116_450_226_000, 1485) + // Estimated: `67035` + // Minimum execution time: 161_314_402_000 picoseconds. + Weight::from_parts(164_247_810_000, 67035) .saturating_add(RocksDbWeight::get().reads(1_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -241,10 +249,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_805_000 picoseconds. - Weight::from_parts(4_935_000, 0) - // Standard Error: 1_942 - .saturating_add(Weight::from_parts(1_479_944, 0).saturating_mul(i.into())) + // Minimum execution time: 1_518_000 picoseconds. + Weight::from_parts(1_565_000, 0) + // Standard Error: 2_255 + .saturating_add(Weight::from_parts(733_648, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -254,10 +262,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_837_000 picoseconds. - Weight::from_parts(5_032_000, 0) - // Standard Error: 2_185 - .saturating_add(Weight::from_parts(1_081_986, 0).saturating_mul(i.into())) + // Minimum execution time: 1_583_000 picoseconds. + Weight::from_parts(1_624_000, 0) + // Standard Error: 1_360 + .saturating_add(Weight::from_parts(566_903, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(i.into()))) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -265,12 +273,12 @@ impl WeightInfo for () { /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `96 + p * (69 ±0)` - // Estimated: `80 + p * (70 ±0)` - // Minimum execution time: 8_629_000 picoseconds. - Weight::from_parts(9_044_000, 80) - // Standard Error: 4_685 - .saturating_add(Weight::from_parts(2_076_553, 0).saturating_mul(p.into())) + // Measured: `12 + p * (69 ±0)` + // Estimated: `0 + p * (70 ±0)` + // Minimum execution time: 2_884_000 picoseconds. + Weight::from_parts(2_964_000, 0) + // Standard Error: 1_896 + .saturating_add(Weight::from_parts(1_340_742, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(p.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) @@ -281,30 +289,23 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 33_396_000 picoseconds. - Weight::from_parts(36_271_000, 0) + // Minimum execution time: 12_466_000 picoseconds. + Weight::from_parts(15_570_000, 0) .saturating_add(RocksDbWeight::get().writes(1_u64)) } /// Storage: `System::AuthorizedUpgrade` (r:1 w:1) /// Proof: `System::AuthorizedUpgrade` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`) - /// Storage: `System::Digest` (r:1 w:1) - /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0) + /// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) /// Proof: UNKNOWN KEY `0x3a636f6465` (r:0 w:1) fn apply_authorized_upgrade() -> Weight { // Proof Size summary in bytes: - // Measured: `22` - // Estimated: `1518` - // Minimum execution time: 119_894_165_000 picoseconds. - Weight::from_parts(120_689_687_000, 1518) + // Measured: `21` + // Estimated: `67035` + // Minimum execution time: 163_673_542_000 picoseconds. + Weight::from_parts(166_858_158_000, 67035) .saturating_add(RocksDbWeight::get().reads(2_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) - } - fn header_extension_builder() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 455_367_000 picoseconds. - Weight::from_parts(457_439_000, 0) + .saturating_add(RocksDbWeight::get().writes(2_u64)) } -} \ No newline at end of file +} diff --git a/pallets/vector/src/benchmarking.rs b/pallets/vector/src/benchmarking.rs index fde298f23..e3627423a 100644 --- a/pallets/vector/src/benchmarking.rs +++ b/pallets/vector/src/benchmarking.rs @@ -1,15 +1,14 @@ use crate::{ - state::Configuration, BalanceOf, Call, Config, ConfigurationStorage, ExecutionStateRoots, - FunctionIds, FunctionInput, FunctionOutput, FunctionProof, Headers, Pallet, ProofInput, - PublicValuesInput, RotateVerificationKey, StepVerificationKey, Updater, ValidProof, + state::Configuration, BalanceOf, BoundedVec, Call, Config, ConfigurationStorage, + ExecutionStateRoots, FunctionIds, FunctionInput, FunctionOutput, FunctionProof, Headers, + Pallet, ProofInput, PublicValuesInput, RotateVerificationKey, StepVerificationKey, Updater, + ValidProof, }; use avail_core::data_proof::BOUNDED_DATA_MAX_LENGTH; use avail_core::data_proof::{AddressedMessage, Message}; -use frame_benchmarking::{ - impl_benchmark_test_suite, v2::benchmarks, whitelisted_caller, BenchmarkError, -}; +use frame_benchmarking::{v2::*, whitelisted_caller, BenchmarkError}; +use frame_support::traits::Currency; use frame_support::traits::DefensiveTruncateFrom; -use frame_support::{traits::Currency, BoundedVec}; use frame_system::RawOrigin; use hex_literal::hex; use sp_core::{Get, H256}; diff --git a/pallets/vector/src/constants.rs b/pallets/vector/src/constants.rs index ad554cbc9..a553855ac 100644 --- a/pallets/vector/src/constants.rs +++ b/pallets/vector/src/constants.rs @@ -1,5 +1,6 @@ use hex_literal::hex; -use primitive_types::U256; +// use primitive_types::U256; +use ethabi::ethereum_types::U256; use sp_core::H256; // { // "genesisTime": 1606824023, diff --git a/pallets/vector/src/lib.rs b/pallets/vector/src/lib.rs index dcd0e9419..2a24cfe67 100644 --- a/pallets/vector/src/lib.rs +++ b/pallets/vector/src/lib.rs @@ -66,6 +66,7 @@ pub type BalanceOf = #[frame_support::pallet] pub mod pallet { + use ethabi::ethereum_types::U256 as EthU256; use ethabi::Token; use ethabi::Token::Uint; use frame_support::dispatch::GetDispatchInfo; @@ -330,8 +331,6 @@ pub mod pallet { type MessageMappingStorageIndex = ConstU64<1>; type AvailDomain = ConstU32<1>; #[inject_runtime_type] - type RuntimeEvent = (); - #[inject_runtime_type] type RuntimeCall = (); type PalletId = BridgePalletId; } @@ -339,9 +338,6 @@ pub mod pallet { #[pallet::config(with_default)] pub trait Config: frame_system::Config { - /// Because this pallet emits events, it depends on the runtime's definition of an event. - #[pallet::no_default_bounds] - type RuntimeEvent: From> + IsType<::RuntimeEvent>; /// Because this pallet has dispatchables, it depends on the runtime's definition of a call. #[pallet::no_default_bounds] type RuntimeCall: Parameter @@ -556,8 +552,20 @@ pub mod pallet { get_storage_root(account_proof_vec, contract_broadcaster_address, root) .map_err(|_| Error::::CannotGetStorageRoot)?; - let message_id = Uint(U256::from(addr_message.id)); - let mm_idx = Uint(U256::from(T::MessageMappingStorageIndex::get())); + let message_id = { + // addr_message.id: H256 + let mut bytes = [0u8; 32]; + bytes[24..32].copy_from_slice(&addr_message.id.to_be_bytes()); + let id_u256 = EthU256::from(bytes); + Uint(id_u256) + }; + + let mm_idx = { + // assume index is some integer type (u32/u64/u128/etc) + let idx = T::MessageMappingStorageIndex::get(); + let idx_u256 = EthU256::from(idx as u64); // or as u128 etc, depending on the type + Uint(idx_u256) + }; let slot_key = H256(keccak_256(ethabi::encode(&[message_id, mm_idx]).as_slice())); let storage_proof_vec = storage_proof @@ -680,7 +688,11 @@ pub mod pallet { Error::::CannotParseOutputData ); - let hash = U256::from(poseidon_hash.to_vec().as_slice()); + // let hash = U256::from(poseidon_hash.to_vec().as_slice()); + let hash = { + assert_eq!(poseidon_hash.len(), 32); + U256::from_big_endian(&poseidon_hash) + }; SyncCommitteePoseidons::::insert(period, hash); Self::deposit_event(Event::SyncCommitteeUpdated { period, root: hash }); diff --git a/pallets/vector/src/mock.rs b/pallets/vector/src/mock.rs index 6afaa4e99..df729b88f 100644 --- a/pallets/vector/src/mock.rs +++ b/pallets/vector/src/mock.rs @@ -1,5 +1,5 @@ use frame_support::{derive_impl, parameter_types, traits::ConstU64, PalletId}; -use frame_system::{native::hosted_header_builder::da, test_utils::TestRandomness}; +use frame_system::native::hosted_header_builder::da; use hex_literal::hex; use primitive_types::H256; use sp_runtime::{ @@ -184,7 +184,6 @@ impl frame_system::Config for Test { type HeaderExtensionBuilder = da::HeaderExtensionBuilder; type Lookup = IdentityLookup; type PalletInfo = PalletInfo; - type Randomness = TestRandomness; type Header = Header; type Extrinsic = Extrinsic; } @@ -227,6 +226,7 @@ pub fn new_test_ext() -> sp_io::TestExternalities { pallet_balances::GenesisConfig:: { balances: vec![(Bridge::account_id(), 2_000 * 1000000000000000000)], + ..Default::default() } .assimilate_storage(&mut t) .unwrap(); diff --git a/pallets/vector/src/state.rs b/pallets/vector/src/state.rs index 472c267e7..b1d6c4d95 100644 --- a/pallets/vector/src/state.rs +++ b/pallets/vector/src/state.rs @@ -6,7 +6,7 @@ use ark_groth16::Proof; use ark_std::str::FromStr; use ark_std::string::String; use ark_std::string::ToString; -use codec::{Decode, Encode, MaxEncodedLen}; +use codec::{Decode, DecodeWithMemTracking, Encode, MaxEncodedLen}; use frame_support::{Deserialize, Serialize}; use scale_info::TypeInfo; use sp_core::{H256, U256}; @@ -82,7 +82,18 @@ impl PublicSignals { } /// Configuration struct that holds basic pallet configuration. -#[derive(Clone, Copy, Encode, Decode, Debug, PartialEq, Eq, TypeInfo, MaxEncodedLen)] +#[derive( + Clone, + Copy, + Encode, + Decode, + DecodeWithMemTracking, + Debug, + PartialEq, + Eq, + TypeInfo, + MaxEncodedLen, +)] #[cfg_attr(feature = "std", derive(Serialize, Deserialize))] #[derive(Default)] pub struct Configuration { diff --git a/pallets/vector/src/verifier.rs b/pallets/vector/src/verifier.rs index 2e5a2f6ef..9aaba609e 100644 --- a/pallets/vector/src/verifier.rs +++ b/pallets/vector/src/verifier.rs @@ -263,8 +263,7 @@ pub fn decode_proof( /// encode_packed implements abi.encodePacked function for poseidon hash. pub fn encode_packed(poseidon: U256, slot: u64) -> Vec { - let bytes: &mut [u8; 32] = &mut [0u8; 32]; - poseidon.to_big_endian(bytes); + let bytes: [u8; 32] = poseidon.to_big_endian(); let slot_bytes = slot.to_be_bytes(); let mut result = bytes.to_vec(); result.extend_from_slice(slot_bytes.as_slice()); diff --git a/rpc/kate-rpc/Cargo.toml b/rpc/kate-rpc/Cargo.toml index 7df27a17a..765ba6839 100644 --- a/rpc/kate-rpc/Cargo.toml +++ b/rpc/kate-rpc/Cargo.toml @@ -39,14 +39,14 @@ std = [ "avail-base/std", "avail-core/std", "da-runtime/std", + "dep:avail-observability", "frame-support/std", "frame-system/std", "kate/std", - "sp-api/std", - "sp-runtime/std", "serde/std", + "sp-api/std", "sp-core/std", - "dep:avail-observability", + "sp-runtime/std", ] # Enables secure seed generation using for padding fill during the matrix @@ -54,4 +54,4 @@ std = [ # NOTE: WIP because that affects the Data Availability Protocol used during # the block import process. secure_padding_fill = [] -ts = ["ts-rs"] +ts = [ "ts-rs" ] diff --git a/rpc/kate-rpc/src/system.rs b/rpc/kate-rpc/src/system.rs index 2e66d2e02..10f9cefe1 100644 --- a/rpc/kate-rpc/src/system.rs +++ b/rpc/kate-rpc/src/system.rs @@ -457,7 +457,9 @@ pub mod fetch_events_v1 { pub mod fetch_extrinsics_v1 { use super::*; - use avail_core::asdr::EXTRINSIC_FORMAT_VERSION; + // use avail_core::asdr::EXTRINSIC_FORMAT_VERSION; + // TODO: move this to appropriate place + const EXTRINSIC_FORMAT_VERSION: u8 = 4; use codec::{Decode, Input}; use da_runtime::{Address, Signature, SignedExtra}; use serde::{Deserialize, Serialize}; diff --git a/rpc/testing-rpc/src/lib.rs b/rpc/testing-rpc/src/lib.rs index 558d13416..349f93740 100644 --- a/rpc/testing-rpc/src/lib.rs +++ b/rpc/testing-rpc/src/lib.rs @@ -1,54 +1,54 @@ -use avail_base::testing_env::*; -use avail_core::app_extrinsic::AppExtrinsic; -use jsonrpsee::{ - core::{async_trait, RpcResult}, - proc_macros::rpc, -}; -use std::marker::Sync; +// use avail_base::testing_env::*; +// // use avail_core::app_extrinsic::AppExtrinsic; +// use jsonrpsee::{ +// core::{async_trait, RpcResult}, +// proc_macros::rpc, +// }; +// use std::marker::Sync; -/// # TODO -#[rpc(client, server)] -pub trait TestingApi { - #[method(name = "testing_toggleExtensionFailure")] - async fn toggle_extension_failure(&self, value: bool) -> RpcResult<()>; - #[method(name = "testing_toggleGridFailure")] - async fn toggle_grid_failure(&self, value: bool) -> RpcResult<()>; - #[method(name = "testing_toggleCommitmentFailure")] - async fn toggle_commitment_failure(&self, value: bool) -> RpcResult<()>; - #[method(name = "testing_populateGrid")] - async fn populate_grid(&self, value: Option>) -> RpcResult<()>; -} +// /// # TODO +// #[rpc(client, server)] +// pub trait TestingApi { +// #[method(name = "testing_toggleExtensionFailure")] +// async fn toggle_extension_failure(&self, value: bool) -> RpcResult<()>; +// #[method(name = "testing_toggleGridFailure")] +// async fn toggle_grid_failure(&self, value: bool) -> RpcResult<()>; +// #[method(name = "testing_toggleCommitmentFailure")] +// async fn toggle_commitment_failure(&self, value: bool) -> RpcResult<()>; +// #[method(name = "testing_populateGrid")] +// async fn populate_grid(&self, value: Option>) -> RpcResult<()>; +// } -pub struct TestingEnv; +// pub struct TestingEnv; -#[async_trait] -impl TestingApiServer for TestingEnv { - async fn toggle_extension_failure(&self, value: bool) -> RpcResult<()> { - unsafe { - ENABLE_TEST_EXTENSION_FAILURE = value; - } +// #[async_trait] +// impl TestingApiServer for TestingEnv { +// async fn toggle_extension_failure(&self, value: bool) -> RpcResult<()> { +// unsafe { +// ENABLE_TEST_EXTENSION_FAILURE = value; +// } - Ok(()) - } - async fn toggle_grid_failure(&self, value: bool) -> RpcResult<()> { - unsafe { - ENABLE_TEST_GRID_FAILURE = value; - } +// Ok(()) +// } +// async fn toggle_grid_failure(&self, value: bool) -> RpcResult<()> { +// unsafe { +// ENABLE_TEST_GRID_FAILURE = value; +// } - Ok(()) - } - async fn toggle_commitment_failure(&self, value: bool) -> RpcResult<()> { - unsafe { - ENABLE_TEST_COMMITMENT_FAILURE = value; - } +// Ok(()) +// } +// async fn toggle_commitment_failure(&self, value: bool) -> RpcResult<()> { +// unsafe { +// ENABLE_TEST_COMMITMENT_FAILURE = value; +// } - Ok(()) - } - async fn populate_grid(&self, value: Option>) -> RpcResult<()> { - unsafe { - TEST_POPULATE_GRID = value; - } +// Ok(()) +// } +// async fn populate_grid(&self, value: Option>) -> RpcResult<()> { +// unsafe { +// TEST_POPULATE_GRID = value; +// } - Ok(()) - } -} +// Ok(()) +// } +// } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 719ea7443..8bd09f055 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -23,12 +23,13 @@ da-control = { workspace = true, default-features = false } pallet-mandate = { workspace = true, default-features = false } pallet-vector = { workspace = true, default-features = false } -# External +# External static_assertions.workspace = true log.workspace = true hex-literal.workspace = true -rayon.workspace = true +rayon = { workspace = true, optional = true } serde = { workspace = true, optional = true, features = ["derive"] } +serde_json = { workspace = true, features = ["alloc", "arbitrary_precision"] } thiserror-no-std.workspace = true derive_more.workspace = true @@ -106,6 +107,7 @@ frame-system-benchmarking = { workspace = true, default-features = false, option substrate-wasm-builder = { workspace = true, default-features = false } [dev-dependencies] +bounded-collections.workspace = true test-case.workspace = true hex.workspace = true hex-literal.workspace = true @@ -187,6 +189,7 @@ std = [ "pallet-tx-pause/std", "pallet-utility/std", "pallet-vector/std", + "rayon", "scale-info/std", "serde", "sp-api/std", @@ -206,6 +209,7 @@ std = [ "sp-std/std", "sp-transaction-pool/std", "sp-version/std", + "serde_json/std", ] runtime-benchmarks = [ diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index 42572ae5e..9746d6359 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -35,13 +35,10 @@ use avail_core::{ }; use sp_runtime::OpaqueExtrinsic; +use frame_support::genesis_builder_helper::{build_state, get_preset}; +use frame_support::{traits::KeyOwnerProofSystem, weights::Weight}; use frame_system::limits::BlockLength; - -use frame_support::{ - genesis_builder_helper::{build_config, create_default_config}, - traits::KeyOwnerProofSystem, - weights::Weight, -}; +use pallet_nomination_pools::PoolId; use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo}; use scale_info::prelude::string::String; use sp_api::{decl_runtime_apis, impl_runtime_apis}; @@ -49,12 +46,13 @@ use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_consensus_grandpa::AuthorityId as GrandpaId; use sp_core::{crypto::KeyTypeId, H256, U256}; use sp_inherents::{CheckInherentsResult, InherentData}; +use sp_runtime::traits::ExtrinsicCall; use sp_runtime::{ - traits::{Block as BlockT, Extrinsic as ExtrinsicT, NumberFor}, + traits::{Block as BlockT, NumberFor}, transaction_validity::{TransactionSource, TransactionValidity}, AccountId32, ApplyExtrinsicResult, SaturatedConversion, }; -use sp_std::{borrow::Cow, vec::Vec}; +use sp_std::vec::Vec; use sp_version::RuntimeVersion; type RTExtractor = ::HeaderExtensionDataFilter; @@ -113,10 +111,6 @@ decl_runtime_apis! { } } -pub(crate) const fn runtime_api_versions() -> Cow<'static, [([u8; 8], u32)]> { - RUNTIME_API_VERSIONS -} - pub static NATIVE_VERSION: &RuntimeVersion = &VERSION; impl_runtime_apis! { @@ -129,7 +123,7 @@ impl_runtime_apis! { Executive::execute_block(block); } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> sp_runtime::ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -367,17 +361,17 @@ impl_runtime_apis! { BlockNumber, > for Runtime { fn mmr_root() -> Result { - Ok(Mmr::mmr_root()) + Ok(pallet_mmr::RootHash::::get()) } fn mmr_leaf_count() -> Result { - Ok(Mmr::mmr_leaves()) + Ok(pallet_mmr::NumberOfLeaves::::get()) } fn generate_proof( block_numbers: Vec, best_known_block_number: Option, - ) -> Result<(Vec, mmr::Proof), mmr::Error> { + ) -> Result<(Vec, mmr::LeafProof), mmr::Error> { Mmr::generate_proof(block_numbers, best_known_block_number).map( |(leaves, proof)| { ( @@ -391,7 +385,7 @@ impl_runtime_apis! { ) } - fn verify_proof(leaves: Vec, proof: mmr::Proof) + fn verify_proof(leaves: Vec, proof: mmr::LeafProof) -> Result<(), mmr::Error> { let leaves = leaves.into_iter().map(|leaf| @@ -404,7 +398,7 @@ impl_runtime_apis! { fn verify_proof_stateless( root: mmr::Hash, leaves: Vec, - proof: mmr::Proof + proof: mmr::LeafProof ) -> Result<(), mmr::Error> { let nodes = leaves.into_iter().map(|leaf|mmr::DataOrHash::Data(leaf.into_opaque_leaf())).collect(); pallet_mmr::verify_leaves_proof::(root, nodes, proof) @@ -427,6 +421,34 @@ impl_runtime_apis! { fn balance_to_points(pool_id: pallet_nomination_pools::PoolId, new_funds: Balance) -> Balance { NominationPools::api_balance_to_points(pool_id, new_funds) } + + fn pool_pending_slash(pool_id: PoolId) -> Balance { + NominationPools::api_pool_pending_slash(pool_id) + } + + fn member_pending_slash(member: AccountId) -> Balance { + NominationPools::api_member_pending_slash(member) + } + + fn pool_needs_delegate_migration(pool_id: PoolId) -> bool { + NominationPools::api_pool_needs_delegate_migration(pool_id) + } + + fn member_needs_delegate_migration(member: AccountId) -> bool { + NominationPools::api_member_needs_delegate_migration(member) + } + + fn member_total_balance(member: AccountId) -> Balance { + NominationPools::api_member_total_balance(member) + } + + fn pool_balance(pool_id: PoolId) -> Balance { + NominationPools::api_pool_balance(pool_id) + } + + fn pool_accounts(pool_id: PoolId) -> (AccountId, AccountId) { + NominationPools::api_pool_accounts(pool_id) + } } impl crate::apis::DataAvailApi for Runtime { @@ -463,8 +485,6 @@ impl_runtime_apis! { } fn check_if_extrinsic_is_vector_post_inherent(uxt: &::Extrinsic) -> bool { - use frame_support::traits::ExtrinsicCall; - let Ok(xt) = TryInto::<&RTExtrinsic>::try_into(uxt); let vector_pallet_call = match xt.call() { @@ -477,7 +497,6 @@ impl_runtime_apis! { } fn check_if_extrinsic_is_da_post_inherent(uxt: &::Extrinsic) -> bool { - use frame_support::traits::ExtrinsicCall; let Ok(xt) = TryInto::<&RTExtrinsic>::try_into(uxt); @@ -491,8 +510,6 @@ impl_runtime_apis! { } fn extract_post_inherent_summaries(uxt: &::Extrinsic) -> Option> { - use frame_support::traits::ExtrinsicCall; - let Ok(xt) = TryInto::<&RTExtrinsic>::try_into(uxt); let da_pallet_call = match xt.call() { @@ -618,30 +635,46 @@ impl_runtime_apis! { } impl avail_base::PostInherentsProvider for Runtime { - fn create_post_inherent_extrinsics(data: avail_base::StorageMap, blob_txs_summary: Vec<( + fn create_post_inherent_extrinsics( + data: avail_base::StorageMap, + blob_txs_summary: Vec<( H256, u32, bool, Option, Vec<(AccountId32, AuthorityDiscoveryId, String, Vec)>, - )>, total_blob_size: u64) -> Vec<::Extrinsic> { - let mut post_inherent_extrinsics: Vec<::Extrinsic> = pallet_vector::Pallet::::create_inherent(&data) + )>, + total_blob_size: u64, + ) -> Vec<::Extrinsic> { + // 1. Vector pallet post-inherent extrinsics (unsigned, bare) + let mut post_inherent_extrinsics: Vec<::Extrinsic> = + pallet_vector::Pallet::::create_inherent(&data) .into_iter() - .filter_map(|inherent| { - ::Extrinsic::new(inherent.into(), None) + .map(|inherent_call| { + // unsigned, no nonce/fee/etc + ::Extrinsic::new_bare_legacy(inherent_call.into()) }) .collect(); - let blob_txs_summary = da_control::BlobTxSummaryRuntime::convert_into(blob_txs_summary); - let da_inherent_call: da_control::Call = da_control::Call::submit_blob_txs_summary { total_blob_size, nb_blobs:blob_txs_summary.len().saturated_into(), blob_txs_summary }; - if let Some(da_inherent_extrinsic) = ::Extrinsic::new(da_inherent_call.into(), None) { - post_inherent_extrinsics.insert(0, da_inherent_extrinsic); + // 2. DA blob summary post-inherent (also unsigned) + let blob_txs_summary = + da_control::BlobTxSummaryRuntime::convert_into(blob_txs_summary); + + let da_inherent_call: da_control::Call = + da_control::Call::submit_blob_txs_summary { + total_blob_size, + nb_blobs: blob_txs_summary.len().saturated_into(), + blob_txs_summary, }; - post_inherent_extrinsics - } - } + // push DA inherent as first post-inherent extrinsic + let da_inherent_extrinsic: ::Extrinsic = + ::Extrinsic::new_bare_legacy(da_inherent_call.into()); + post_inherent_extrinsics.insert(0, da_inherent_extrinsic); + post_inherent_extrinsics + } +} impl sp_session::SessionKeys for Runtime { fn generate_session_keys(seed: Option>) -> Vec { SessionKeys::generate(seed) @@ -662,6 +695,10 @@ impl_runtime_apis! { fn eras_stakers_page_count(era: sp_staking::EraIndex, account: AccountId) -> sp_staking::Page { Staking::api_eras_stakers_page_count(era, account) } + + fn pending_rewards(era: sp_staking::EraIndex, account: AccountId) -> bool { + Staking::api_pending_rewards(era, account) + } } #[cfg(feature = "try-runtime")] @@ -748,12 +785,19 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) + } + + fn get_preset(id: &Option) -> Option> { + get_preset::( + id, + &crate::genesis_config_presets::get_preset, + ) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn preset_names() -> Vec { + crate::genesis_config_presets::preset_names() } } } diff --git a/runtime/src/constants.rs b/runtime/src/constants.rs index 75c6f2181..9d1150449 100644 --- a/runtime/src/constants.rs +++ b/runtime/src/constants.rs @@ -254,8 +254,9 @@ pub mod staking { pub const MaxElectingVoters: u32 = 22_500; /// For onchain solutions, which are used as fallback(s), we only consider top 5K nominators as electing voters pub const MaxOnchainElectingVoters: u32 = 5000; + pub MaxElectingVotersSolution: u32 = 40_000; /// cannot have active validators higher than this count. - pub const MaxActiveValidators: u32 = 1200; + pub const MaxActiveValidators: u32 = 1000; pub const MaxNominations: u32 = ::LIMIT as u32; pub const OffendingValidatorsThreshold: Perbill = Perbill::from_percent(17); diff --git a/runtime/src/extensions/check_batch_transactions.rs b/runtime/src/extensions/check_batch_transactions.rs index 6cbed2309..b56fffcfb 100644 --- a/runtime/src/extensions/check_batch_transactions.rs +++ b/runtime/src/extensions/check_batch_transactions.rs @@ -1,7 +1,18 @@ use avail_core::AppId; use avail_core::InvalidTransactionCustomId; -use codec::{Decode, Encode}; +use codec::{Decode, DecodeWithMemTracking, Encode}; +use sp_runtime::traits::{DispatchTransaction, TransactionExtension, ValidateResult}; +use sp_runtime::{ + traits::DispatchInfoOf, + transaction_validity::{ + InvalidTransaction, TransactionSource, TransactionValidity, TransactionValidityError, + ValidTransaction, + }, +}; + use da_control::{Call as DACall, Config as DAConfig, Pallet}; +use frame_support::dispatch::DispatchResult; +use frame_support::weights::Weight; use frame_support::{ ensure, traits::{IsSubType, IsType}, @@ -13,13 +24,9 @@ use pallet_scheduler::{Call as SchedulerCall, Config as SchedulerConfig}; use pallet_utility::{Call as UtilityCall, Config as UtilityConfig}; use pallet_vector::{Call as VectorCall, Config as VectorConfig}; use scale_info::TypeInfo; +use sp_runtime::traits::{Dispatchable, PostDispatchInfoOf}; use sp_runtime::transaction_validity::InvalidTransaction as TxInvalid; -use sp_runtime::{ - traits::{DispatchInfoOf, SignedExtension}, - transaction_validity::{ - InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction, - }, -}; + use sp_std::{ default::Default, fmt::{self, Debug, Formatter}, @@ -149,7 +156,7 @@ where } } -#[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] +#[derive(Encode, Decode, DecodeWithMemTracking, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] pub struct CheckBatchTransactions< T: DAConfig + UtilityConfig + MultisigConfig + ProxyConfig + SchedulerConfig + Send + Sync, @@ -526,7 +533,7 @@ where } } -impl SignedExtension for CheckBatchTransactions +impl TransactionExtension<::RuntimeCall> for CheckBatchTransactions where T: DAConfig + UtilityConfig @@ -554,36 +561,57 @@ where + IsSubType>, [u8; 32]: From<::AccountId>, { - type AccountId = ::AccountId; - type Call = ::RuntimeCall; - type AdditionalSigned = (); - type Pre = (); const IDENTIFIER: &'static str = "CheckBatchTransactions"; + type Implicit = (); + type Val = (); + type Pre = (); - fn additional_signed(&self) -> Result<(), TransactionValidityError> { - Ok(()) + fn weight(&self, _call: &::RuntimeCall) -> Weight { + // TODO: we can update this + Weight::zero() } fn validate( &self, - _who: &Self::AccountId, - call: &Self::Call, - _info: &DispatchInfoOf, + origin: ::RuntimeOrigin, + call: &::RuntimeCall, + _info: &DispatchInfoOf<::RuntimeCall>, len: usize, - ) -> TransactionValidity { - self.do_validate(call, len) + _self_implicit: ::RuntimeCall>>::Implicit, + _inherited_implication: &impl Encode, + _source: TransactionSource, + ) -> ValidateResult::RuntimeCall> { + let validity = self.do_validate(call, len)?; + Ok((validity, (), origin)) } - fn pre_dispatch( + fn prepare( self, - _who: &Self::AccountId, - call: &Self::Call, - _info: &DispatchInfoOf, - len: usize, - ) -> Result { - self.do_validate(call, len)?; + _val: as DispatchTransaction< + ::RuntimeCall, + >>::Val, + _origin: &::RuntimeOrigin, + _call: &::RuntimeCall, + _info: &DispatchInfoOf<::RuntimeCall>, + _len: usize, + ) -> Result< + as DispatchTransaction<::RuntimeCall>>::Pre, + TransactionValidityError, + > { Ok(()) } + + fn post_dispatch_details( + _pre: as DispatchTransaction< + ::RuntimeCall, + >>::Pre, + _info: &<::RuntimeCall as Dispatchable>::Info, + _post_info: &PostDispatchInfoOf<::RuntimeCall>, + _len: usize, + _result: &DispatchResult, + ) -> Result { + Ok(Weight::zero()) + } } #[cfg(test)] diff --git a/runtime/src/extensions/extensions_mock.rs b/runtime/src/extensions/extensions_mock.rs index aae829165..849b19122 100644 --- a/runtime/src/extensions/extensions_mock.rs +++ b/runtime/src/extensions/extensions_mock.rs @@ -1,5 +1,6 @@ #![cfg(test)] +use codec::DecodeWithMemTracking; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::pallet_prelude::RuntimeDebug; use frame_support::parameter_types; @@ -86,7 +87,6 @@ impl frame_system::Config for Test { type Block = Block; type HeaderExtensionBuilder = HeaderExtensionBuilder; type PalletInfo = PalletInfo; - type Randomness = TestRandomness; type Extrinsic = Extrinsic; type AccountId = AccountId32; type Lookup = sp_runtime::traits::IdentityLookup; @@ -156,6 +156,7 @@ parameter_types! { PartialOrd, Encode, Decode, + DecodeWithMemTracking, RuntimeDebug, MaxEncodedLen, scale_info::TypeInfo, @@ -203,6 +204,7 @@ impl pallet_proxy::Config for Test { type CallHasher = BlakeTwo256; type AnnouncementDepositBase = AnnouncementDepositBase; type AnnouncementDepositFactor = AnnouncementDepositFactor; + type BlockNumberProvider = System; } parameter_types! { @@ -221,6 +223,7 @@ impl pallet_scheduler::Config for Test { type RuntimeOrigin = RuntimeOrigin; type ScheduleOrigin = EnsureRoot; type WeightInfo = (); + type BlockNumberProvider = System; } parameter_types! { @@ -258,6 +261,7 @@ impl pallet_multisig::Config for Test { type MaxSignatories = ConstU32<100>; #[doc = " Weight information for extrinsics in this pallet."] type WeightInfo = (); + type BlockNumberProvider = System; } fn u8_to_account_id(value: u8) -> AccountId32 { @@ -277,6 +281,7 @@ pub fn new_test_ext() -> sp_io::TestExternalities { pallet_balances::GenesisConfig:: { balances: vec![(alice.clone(), 1_000_000u64)], + ..Default::default() } .assimilate_storage(&mut storage) .unwrap(); diff --git a/runtime/src/genesis_config_presets.rs b/runtime/src/genesis_config_presets.rs new file mode 100644 index 000000000..7930839f1 --- /dev/null +++ b/runtime/src/genesis_config_presets.rs @@ -0,0 +1,276 @@ +//! Genesis presets for the Avail runtime, used by the new sp_genesis_builder +//! framework (e.g. for `--dev` / `--tmp`). + +#![allow(clippy::vec_init_then_push)] + +use serde_json::{json, Value}; +use sp_std::vec; +use sp_std::vec::Vec; + +use avail_core::BLOCK_CHUNK_SIZE; +use da_control::DA_DISPATCH_RATIO_PERBILL; + +use crate::{ + self as da_runtime, constants, AccountId, Balance, DataAvailabilityConfig, SessionKeys, +}; +use frame_system::limits::BlockLength; +use sp_staking::StakerStatus; + +use pallet_vector::constants::{ + get_poseidon_hash_for_period, BROADCASTER, BROADCASTER_DOMAIN, FINALITY_THRESHOLD, + GENESIS_TIME, GENESIS_VALIDATOR_ROOT, PERIOD, ROTATE_FUNCTION_ID, ROTATE_VK, SECONDS_PER_SLOT, + SLOTS_PER_PERIOD, SOURCE_CHAIN_ID, STEP_FUNCTION_ID, STEP_VK, +}; + +use pallet_im_online::sr25519::AuthorityId as ImOnlineId; +use scale_info::prelude::format; +use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; +use sp_consensus_babe::AuthorityId as BabeId; +use sp_consensus_grandpa::AuthorityId as GrandpaId; +use sp_core::{sr25519, Pair, Public}; +use sp_genesis_builder::PresetId; +use sp_runtime::traits::IdentifyAccount; + +/// Copy of `AccountPublic` from your node chainspec. +type AccountPublic = ::Signer; + +/// The staker type as supplied to the Staking config. +pub type Staker = (AccountId, AccountId, Balance, StakerStatus); + +/// Helper function to generate an account ID from a well-known seed. +pub fn get_account_id_from_seed(seed: &str) -> AccountId +where + AccountPublic: From<::Public>, +{ + AccountPublic::from(get_from_seed::(seed)).into_account() +} + +/// Generate a crypto pair from seed. +pub fn get_from_seed(seed: &str) -> ::Public { + TPublic::Pair::from_string(&format!("//{}", seed), None) + .expect("static values are valid; qed") + .public() +} + +/// Helper struct equivalent to your `AuthorityKeys` in node chainspec. +#[derive(Clone)] +pub struct AuthorityKeys { + pub controller: AccountId, + pub stash: AccountId, + pub session_keys: SessionKeys, +} + +impl AuthorityKeys { + /// Helper function to generate stash, controller and session key from seed + pub fn from_seed(seed: &str) -> Self { + let controller = get_account_id_from_seed::(seed); + let stash = get_account_id_from_seed::(&format!("{}//stash", seed)); + let session_keys = SessionKeys { + babe: get_from_seed::(seed), + grandpa: get_from_seed::(seed), + im_online: get_from_seed::(seed), + authority_discovery: get_from_seed::(seed), + }; + + Self { + controller, + stash, + session_keys, + } + } +} + +impl From for (AccountId, AccountId, SessionKeys) { + fn from(val: AuthorityKeys) -> (AccountId, AccountId, SessionKeys) { + (val.stash.clone(), val.stash, val.session_keys) + } +} + +const DEFAULT_ENDOWED_SEEDS: [&str; 12] = [ + "Alice", + "Bob", + "Charlie", + "Dave", + "Eve", + "Ferdie", + "Alice//stash", + "Bob//stash", + "Charlie//stash", + "Dave//stash", + "Eve//stash", + "Ferdie//stash", +]; + +const INIT_APP_IDS: [(u32, &str); 10] = [ + (0, "Avail"), + (1, "Reserved-1"), + (2, "Reserved-2"), + (3, "Reserved-3"), + (4, "Reserved-4"), + (5, "Reserved-5"), + (6, "Reserved-6"), + (7, "Reserved-7"), + (8, "Reserved-8"), + (9, "Reserved-9"), +]; + +/// Generates default endowed accounts +fn dev_endowed_accounts() -> Vec<(AccountId, Balance)> { + DEFAULT_ENDOWED_SEEDS + .iter() + .map(|seed| { + ( + get_account_id_from_seed::(seed), + constants::staking::MIN_VALIDATOR_BOND * 100, + ) + }) + .collect() +} + +fn make_data_avail_config(owner: AccountId) -> DataAvailabilityConfig { + let app_keys = INIT_APP_IDS + .iter() + .map(|(id, app)| (app.as_bytes().to_vec(), (owner.clone(), *id))) + .collect(); + + DataAvailabilityConfig { app_keys } +} + +pub fn runtime_genesis_config( + sudo: AccountId, + technical_committee: Vec, + treasury_committee: Vec, + session_keys: Vec, +) -> Value { + let balances = dev_endowed_accounts(); + + let stakers: Vec = session_keys + .iter() + .map(|k| { + ( + k.stash.clone(), + k.controller.clone(), + constants::staking::MIN_VALIDATOR_BOND, + StakerStatus::Validator, + ) + }) + .collect(); + + let validator_count = session_keys.len() as u32; + + let session_keys: Vec<(AccountId, AccountId, SessionKeys)> = + session_keys.into_iter().map(|k| k.into()).collect(); + + let block_length = BlockLength::with_normal_ratio( + frame_system::limits::MAX_BLOCK_ROWS, + frame_system::limits::MAX_BLOCK_COLUMNS, + BLOCK_CHUNK_SIZE, + DA_DISPATCH_RATIO_PERBILL, + ) + .expect("Valid `BlockLength` genesis definition; qed"); + + json!({ + "system": { + "blockLength": block_length, + }, + "balances": { + "balances": balances, + }, + "staking": { + "validatorCount": validator_count, + "minimumValidatorCount": 1, + "stakers": stakers, + "minNominatorBond": constants::staking::MIN_NOMINATOR_BOND, + "minValidatorBond": constants::staking::MIN_VALIDATOR_BOND, + }, + "babe": { + "epochConfig": da_runtime::constants::babe::GENESIS_EPOCH_CONFIG, + }, + "session": { + "keys": session_keys, + }, + "sudo": { + "key": Some(sudo.clone()), + }, + "technicalCommittee": { + "members": technical_committee, + }, + "treasuryCommittee": { + "members": treasury_committee, + }, + "vector": { + "broadcaster": BROADCASTER, + "broadcasterDomain": BROADCASTER_DOMAIN, + "finalityThreshold": FINALITY_THRESHOLD, + "functionIds": (STEP_FUNCTION_ID, ROTATE_FUNCTION_ID), + "genesisTime": GENESIS_TIME, + "genesisValidatorRoot": GENESIS_VALIDATOR_ROOT, + "period": PERIOD, + "secondsPerSlot": SECONDS_PER_SLOT, + "slotsPerPeriod": SLOTS_PER_PERIOD, + "sourceChainId": SOURCE_CHAIN_ID, + "syncCommitteePoseidon": format!("0x{:064x}", get_poseidon_hash_for_period()), + "stepVerificationKey": STEP_VK.as_bytes().to_vec(), + "rotateVerificationKey": ROTATE_VK.as_bytes().to_vec(), + "whitelistedDomains": vec![2], + }, + "nominationPools": { + "minCreateBond": constants::nomination_pools::MIN_CREATE_BOND, + "minJoinBond": constants::nomination_pools::MIN_JOIN_BOND, + "maxPools": Some(constants::nomination_pools::MAX_POOLS), + "maxMembersPerPool": Some(constants::nomination_pools::MAX_MEMBERS_PER_POOL), + "maxMembers": Some(constants::nomination_pools::MAX_MEMBERS), + }, + "dataAvailability": { + "appKeys": make_data_avail_config(sudo).app_keys + }, + }) +} + +/// Provides the JSON representation of predefined genesis config for given `id`. +pub fn get_preset(id: &PresetId) -> Option> { + let patch = match id.as_ref() { + sp_genesis_builder::DEV_RUNTIME_PRESET => { + let alice = AuthorityKeys::from_seed("Alice"); + let sudo = alice.controller.clone(); + + runtime_genesis_config( + sudo.clone(), + vec![sudo.clone()], // technical committee + vec![sudo.clone()], // treasury committee + vec![alice], // 1 validator + ) + }, + + // Avail local testnet: Alice, Bob, Charlie – mirrors `dev_tri::chain_spec`. + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => { + let alice = AuthorityKeys::from_seed("Alice"); + let bob = AuthorityKeys::from_seed("Bob"); + let charlie = AuthorityKeys::from_seed("Charlie"); + let sudo = alice.controller.clone(); + + runtime_genesis_config( + sudo.clone(), + vec![sudo.clone()], // technical committee + vec![sudo.clone()], // treasury committee + vec![alice, bob, charlie], // 3 validators + ) + }, + + _ => return None, + }; + + Some( + serde_json::to_string(&patch) + .expect("serialization to json is expected to work; qed") + .into_bytes(), + ) +} + +/// List of supported presets. +pub fn preset_names() -> Vec { + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] +} diff --git a/runtime/src/header_extension_builder_data_tests.rs b/runtime/src/header_extension_builder_data_tests.rs index 40242dde8..47e64f61c 100644 --- a/runtime/src/header_extension_builder_data_tests.rs +++ b/runtime/src/header_extension_builder_data_tests.rs @@ -21,7 +21,7 @@ use derive_more::Constructor; use hex_literal::hex; use pallet_transaction_payment::ChargeTransactionPayment; use sp_core::H256; -use sp_keyring::AccountKeyring::{Alice, Bob}; +use sp_keyring::Sr25519Keyring::{Alice, Bob}; use sp_runtime::traits::Keccak256; use sp_runtime::{ generic::Era, @@ -105,8 +105,8 @@ where verify_proof::( &root, proof, - number_of_submitted_data as usize, - data_index as usize, + (number_of_submitted_data as usize).try_into().unwrap(), + (data_index as usize).try_into().unwrap(), leaf, ) } @@ -124,21 +124,14 @@ fn extra() -> SignedExtra { CheckBatchTransactions::::new(), ) } -fn additional_signed() -> ::AdditionalSigned { - let spec_ver = VERSION.spec_version; - let tx_ver = VERSION.transaction_version; - let genesis = H256::default(); - let era = H256::repeat_byte(1); - - ((), spec_ver, tx_ver, genesis, era, (), (), (), ()) -} fn signed_extrinsic(function: RuntimeCall) -> Vec { let extra = extra(); - let additional = additional_signed(); let alice = Alice.to_account_id(); - let payload = SignedPayload::from_raw(function.clone(), extra.clone(), additional).encode(); + let payload = SignedPayload::new(function.clone(), extra.clone()) + .unwrap() + .encode(); let signature: MultiSignature = Alice.sign(&payload).into(); assert!(signature.verify(&*payload, &alice)); @@ -519,9 +512,9 @@ mod bridge_tests { } mod data_root { - use frame_support::traits::DefensiveTruncateFrom; + use bounded_collections::BoundedVec; + // use frame_support::traits::DefensiveTruncateFrom; use sp_core::keccak_256; - use sp_runtime::BoundedVec; use super::*; @@ -758,7 +751,7 @@ mod data_root { hex!("ad79a34ee43ea39301b1f190558ea279122328ebd66b342a49a131ee5befd3b5"); let data = hex!("0000000000000000000000000000000000000000000000000000000000002b67"); - let data = BoundedVec::defensive_truncate_from(data.to_vec()); + let data = BoundedVec::truncate_from(data.to_vec()); let message = AddressedMessage { message: Message::ArbitraryMessage(data), @@ -784,7 +777,7 @@ mod data_root { let expected_encoding = hex!("00000000000000000000000000000000000000000000000000000000000000200100000000000000000000000000000000000000000000000000000000000000681257bed628425a28b469114dc21a7c30205cfd0000000000000000000000003547517355657647456b6f7847444a5044576251694b4478714b6d675a3570470000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d48656c6c6f2c20576f726c642100000000000000000000000000000000000000"); let expected_hash = hex!("5774ba3f9618e2da3885b0e2853e4005c3e836625e8be0f69bf3d93f51fac58d"); - let data = BoundedVec::defensive_truncate_from("Hello, World!".as_bytes().to_vec()); + let data = BoundedVec::truncate_from("Hello, World!".as_bytes().to_vec()); let message = AddressedMessage { message: Message::ArbitraryMessage(data), diff --git a/runtime/src/impls.rs b/runtime/src/impls.rs index 613018663..4123939db 100644 --- a/runtime/src/impls.rs +++ b/runtime/src/impls.rs @@ -1,15 +1,16 @@ +use crate::constants::balances::ExistentialDeposit; +use crate::constants::currency::deposit; use crate::{ - constants, extensions, prod_or_fast, voter_bags, weights, AccountId, AccountIndex, Babe, - Balances, Block, BlockNumber, ElectionProviderMultiPhase, Everything, Hash, Header, Historical, - ImOnline, ImOnlineId, Index, Indices, Moment, NominationPools, Offences, OriginCaller, - PalletInfo, Preimage, ReserveIdentifier, Runtime, RuntimeCall, RuntimeEvent, - RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeVersion, Session, SessionKeys, - Signature, SignedPayload, Staking, System, Timestamp, TransactionPayment, Treasury, TxPause, - UncheckedExtrinsic, VoterList, MINUTES, SLOT_DURATION, VERSION, + constants, prod_or_fast, voter_bags, weights, AccountId, AccountIndex, Babe, Balances, Block, + BlockNumber, ElectionProviderMultiPhase, Everything, Hash, Header, Historical, ImOnline, + ImOnlineId, Index, Indices, Moment, NominationPools, Offences, OriginCaller, PalletInfo, + Preimage, ReserveIdentifier, Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, + RuntimeHoldReason, RuntimeOrigin, RuntimeVersion, Session, SessionKeys, Signature, Staking, + System, Timestamp, TransactionPayment, Treasury, TxPause, UncheckedExtrinsic, VoterList, + MINUTES, SLOT_DURATION, VERSION, }; use avail_core::currency::{Balance, AVAIL, CENTS, NANO_AVAIL, PICO_AVAIL}; - -use codec::{Decode, Encode, MaxEncodedLen}; +use codec::{Decode, DecodeWithMemTracking, Encode, MaxEncodedLen}; use constants::time::DAYS; use frame_election_provider_support::{ onchain, BalancingConfig, ElectionDataProvider, SequentialPhragmen, VoteWeight, @@ -23,15 +24,17 @@ use frame_support::{ tokens::{ imbalance::ResolveTo, pay::PayFromAccount, Imbalance, UnityAssetBalanceConversion, }, - ConstU32, Contains, Currency, EitherOf, EitherOfDiverse, EqualPrivilegeOnly, InsideBoth, - InstanceFilter, LinearStoragePrice, OnUnbalanced, + ConstBool, ConstU32, Contains, Currency, EitherOfDiverse, EqualPrivilegeOnly, InsideBoth, + InstanceFilter, LinearStoragePrice, Nothing, OnUnbalanced, }, weights::{constants::RocksDbWeight, ConstantMultiplier}, PalletId, }; -use frame_system::{limits::BlockLength, EnsureRoot, EnsureRootWithSuccess, EnsureWithSuccess}; +use frame_system::{limits::BlockLength, EnsureRoot, EnsureWithSuccess}; use pallet_election_provider_multi_phase::{GeometricDepositBase, SolutionAccuracyOf}; use pallet_identity::legacy::IdentityInfo; +#[allow(deprecated)] +use pallet_nomination_pools::adapter::TransferStake; use pallet_transaction_payment::{FungibleAdapter, Multiplier, TargetedFeeAdjustment}; use pallet_treasury::TreasuryAccountId; use pallet_tx_pause::RuntimeCallNameOf; @@ -39,7 +42,7 @@ use sp_core::crypto::KeyTypeId; use sp_core::{ConstU64, RuntimeDebug}; use sp_runtime::{ generic::Era, - traits::{self, BlakeTwo256, Bounded, Convert, IdentityLookup, OpaqueKeys}, + traits::{self, BlakeTwo256, Bounded, Convert, OpaqueKeys}, FixedPointNumber, FixedU128, Perbill, Permill, Perquintill, }; use sp_std::vec::Vec; @@ -60,7 +63,6 @@ impl pallet_mandate::Config for Runtime { pallet_collective::EnsureProportionAtLeast, >; type RuntimeCall = RuntimeCall; - type RuntimeEvent = RuntimeEvent; type WeightInfo = weights::pallet_mandate::WeightInfo; } @@ -70,7 +72,6 @@ parameter_types! { impl pallet_vector::Config for Runtime { type RuntimeCall = RuntimeCall; - type RuntimeEvent = RuntimeEvent; type WeightInfo = weights::pallet_vector::WeightInfo; type TimeProvider = pallet_timestamp::Pallet; type Currency = Balances; @@ -82,6 +83,9 @@ impl pallet_vector::Config for Runtime { parameter_types! { pub const BasicDeposit: Balance = 100 * AVAIL; pub const ByteDeposit: Balance = constants::currency::deposit(0,1); + + pub const UsernameDeposit: Balance = deposit(0, 32); + pub const SubAccountDeposit: Balance = 2 * AVAIL; pub const MaxSubAccounts: u32 = 100; pub const MaxAdditionalFields: u32 = 100; @@ -93,6 +97,8 @@ impl pallet_identity::Config for Runtime { type BasicDeposit = BasicDeposit; /// The amount held on deposit per additional bytes in additional fields for a registered identity type ByteDeposit = ByteDeposit; + type UsernameDeposit = UsernameDeposit; + type UsernameGracePeriod = ConstU32<{ 30 * DAYS }>; type Currency = Balances; type IdentityInformation = IdentityInfo; /// The origin which may forcibly set or remove a name. Root can always do this. @@ -114,6 +120,8 @@ impl pallet_identity::Config for Runtime { type SubAccountDeposit = SubAccountDeposit; type UsernameAuthorityOrigin = EnsureRoot; type WeightInfo = weights::pallet_identity::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); } impl da_control::Config for Runtime { @@ -130,7 +138,6 @@ impl da_control::Config for Runtime { type BlobVouchFeeReserve = constants::da::BlobVouchFeeReserve; type ValidatorSet = Historical; type ReportOffence = Offences; - type RuntimeEvent = RuntimeEvent; type WeightInfo = weights::pallet_dactr::WeightInfo; } impl da_control::SessionDataProvider<::AccountId> for Runtime { @@ -189,6 +196,7 @@ impl pallet_transaction_payment::Config for Runtime { type OperationalFeeMultiplier = OperationalFeeMultiplier; type RuntimeEvent = RuntimeEvent; type WeightToFee = ConstantMultiplier; // 1 weight = 10 picoAVAIL -> second_price = 10 AVAIL + type WeightInfo = pallet_transaction_payment::weights::SubstrateWeight; } parameter_types! { @@ -216,12 +224,17 @@ impl pallet_session::Config for Runtime { type SessionManager = pallet_session::historical::NoteHistoricalRoot; type ShouldEndSession = Babe; type ValidatorId = ::AccountId; - type ValidatorIdOf = pallet_staking::StashOf; + type ValidatorIdOf = sp_runtime::traits::ConvertInto; + type DisablingStrategy = pallet_session::disabling::UpToLimitWithReEnablingDisablingStrategy; + type Currency = Balances; + type KeyDeposit = (); type WeightInfo = pallet_session::weights::SubstrateWeight; } impl pallet_session::historical::Config for Runtime { + type RuntimeEvent = RuntimeEvent; type FullIdentification = pallet_staking::Exposure; + #[allow(deprecated)] type FullIdentificationOf = pallet_staking::ExposureOf; } @@ -249,7 +262,7 @@ where ::AccountId: From, ::AccountId: Into, { - fn on_unbalanceds( + fn on_unbalanceds( mut fees_then_tips: impl Iterator>>, ) { if let Some(fees) = fees_then_tips.next() { @@ -285,6 +298,7 @@ impl pallet_multisig::Config for Runtime { type MaxSignatories = ConstU32<100>; type RuntimeCall = RuntimeCall; type RuntimeEvent = RuntimeEvent; + type BlockNumberProvider = frame_system::Pallet; type WeightInfo = pallet_multisig::weights::SubstrateWeight; } @@ -304,6 +318,7 @@ impl pallet_scheduler::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeOrigin = RuntimeOrigin; type ScheduleOrigin = EnsureRoot; + type BlockNumberProvider = frame_system::Pallet; type WeightInfo = weights::pallet_scheduler::WeightInfo; } @@ -363,6 +378,7 @@ impl pallet_balances::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; + type DoneSlashHandler = (); type WeightInfo = weights::pallet_balances::WeightInfo; } @@ -413,11 +429,26 @@ impl pallet_collective::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeOrigin = RuntimeOrigin; type SetMembersOrigin = EnsureRoot; + type DisapproveOrigin = EnsureRoot; + type KillOrigin = EnsureRoot; + type Consideration = HoldConsideration< + AccountId, + Balances, + ProposalHoldReason, + pallet_collective::deposit::Delayed< + ConstU32<2>, + pallet_collective::deposit::Linear, ProposalDepositOffset>, + >, + u32, + >; type WeightInfo = weights::pallet_collective::WeightInfo; } parameter_types! { pub const TechnicalMotionDuration: BlockNumber = prod_or_fast!(5 * DAYS, 5 * MINUTES); + pub const ProposalHoldReason: RuntimeHoldReason = + RuntimeHoldReason::TechnicalCommittee(pallet_collective::HoldReason::ProposalSubmission); + pub const ProposalDepositOffset: Balance = ExistentialDeposit::get() + ExistentialDeposit::get(); } pub type TechnicalMaxMembers = ConstU32<100>; @@ -433,6 +464,18 @@ impl pallet_collective::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeOrigin = RuntimeOrigin; type SetMembersOrigin = EnsureRoot; + type DisapproveOrigin = EnsureRoot; + type KillOrigin = EnsureRoot; + type Consideration = HoldConsideration< + AccountId, + Balances, + ProposalHoldReason, + pallet_collective::deposit::Delayed< + ConstU32<2>, + pallet_collective::deposit::Linear, ProposalDepositOffset>, + >, + u32, + >; type WeightInfo = pallet_collective::weights::SubstrateWeight; } @@ -444,6 +487,7 @@ impl pallet_election_provider_multi_phase::MinerConfig for Runtime { type MaxWeight = constants::staking::MinerMaxWeight; type MaxWinners = ::MaxWinners; type Solution = constants::staking::NposSolution16; + type MaxBackersPerWinner = constants::staking::MaxElectingVotersSolution; // The unsigned submissions have to respect the weight of the submit_unsigned call, thus their // weight estimate function is wired to this call's weight. @@ -489,6 +533,7 @@ impl pallet_election_provider_multi_phase::Config for Runtime { type SlashHandler = (); type Solver = SequentialPhragmen, OffchainRandomBalancing>; type UnsignedPhase = constants::staking::UnsignedPhase; + type MaxBackersPerWinner = constants::staking::MaxElectingVotersSolution; type WeightInfo = pallet_election_provider_multi_phase::weights::SubstrateWeight; } @@ -505,6 +550,7 @@ impl pallet_staking::Config for Runtime { type AdminOrigin = EnsureRoot; type BenchmarkingConfig = StakingBenchmarkingConfig; type BondingDuration = constants::staking::BondingDuration; + type OldCurrency = Balances; type Currency = Balances; type CurrencyBalance = Balance; type CurrencyToVote = sp_staking::currency_to_vote::U128CurrencyToVote; @@ -519,20 +565,22 @@ impl pallet_staking::Config for Runtime { type NextNewSession = Session; type NominationsQuota = pallet_staking::FixedNominationsQuota<{ constants::staking::MaxNominations::get() }>; - type OffendingValidatorsThreshold = constants::staking::OffendingValidatorsThreshold; // send the slashed funds to the treasury. type Reward = (); - type RewardRemainder = Treasury; + type RewardRemainder = ResolveTo; type RuntimeEvent = RuntimeEvent; type SessionInterface = Self; // rewards are minted from the void type SessionsPerEra = constants::staking::SessionsPerEra; - type Slash = Treasury; + type Slash = ResolveTo; type SlashDeferDuration = constants::staking::SlashDeferDuration; // This a placeholder, to be introduced in the next PR as an instance of bags-list type TargetList = pallet_staking::UseValidatorsMap; type UnixTime = Timestamp; type VoterList = VoterList; + type Filter = Nothing; + type RuntimeHoldReason = RuntimeHoldReason; + type MaxValidatorSet = ConstU32<1000>; type WeightInfo = weights::pallet_staking::WeightInfo; } @@ -585,17 +633,20 @@ pub struct OnChainSeqPhragmen; impl onchain::Config for OnChainSeqPhragmen { type Bounds = constants::staking::ElectionBoundsOnChain; type DataProvider = ::DataProvider; - type MaxWinners = ::MaxWinners; type Solver = SequentialPhragmen< AccountId, pallet_election_provider_multi_phase::SolutionAccuracyOf, >; type System = Runtime; + type Sort = ConstBool; + type MaxBackersPerWinner = constants::staking::MaxElectingVotersSolution; + type MaxWinnersPerPage = constants::staking::MaxActiveValidators; type WeightInfo = frame_election_provider_support::weights::SubstrateWeight; } parameter_types! { pub const BagThresholds: &'static [u64] = &voter_bags::THRESHOLDS; + pub const AutoRebagNumber: u32 = 10; } type VoterBagsListInstance = pallet_bags_list::Instance1; @@ -607,6 +658,7 @@ impl pallet_bags_list::Config for Runtime { /// The voter bags-list is loosely kept up to date, and the real source of truth for the score /// of each node is the staking pallet. type ScoreProvider = Staking; + type MaxAutoRebagPerBlock = AutoRebagNumber; type WeightInfo = pallet_bags_list::weights::SubstrateWeight; } @@ -643,8 +695,15 @@ impl pallet_nomination_pools::Config for Runtime { type RewardCounter = FixedU128; type RuntimeEvent = RuntimeEvent; type RuntimeFreezeReason = RuntimeFreezeReason; - type Staking = Staking; type U256ToBalance = U256ToBalance; + #[allow(deprecated)] + type StakeAdapter = TransferStake; + type AdminOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionAtLeast, + >; + type BlockNumberProvider = System; + type Filter = Nothing; type WeightInfo = (); } @@ -659,31 +718,27 @@ pub type TreasurySpender = pallet_collective::EnsureProportionAtLeast; impl pallet_treasury::Config for Runtime { - type ApproveOrigin = EnsureRoot; - type Burn = Burn; - type BurnDestination = (); - type Currency = Balances; - type MaxApprovals = MaxApprovals; - type OnSlash = Treasury; type PalletId = TreasuryPalletId; - type ProposalBond = ProposalBond; - type ProposalBondMaximum = (); - type ProposalBondMinimum = ProposalBondMinimum; - type RejectOrigin = EnsureRoot; - type RuntimeEvent = RuntimeEvent; - type SpendFunds = (); - type SpendOrigin = EitherOf< - EnsureRootWithSuccess, - EnsureWithSuccess, + type Currency = Balances; + type RejectOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, >; + type RuntimeEvent = RuntimeEvent; type SpendPeriod = SpendPeriod; - type WeightInfo = weights::pallet_treasury::WeightInfo; + type Burn = Burn; + type BurnDestination = (); + type SpendFunds = (); + type WeightInfo = pallet_treasury::weights::SubstrateWeight; + type MaxApprovals = MaxApprovals; + type SpendOrigin = EnsureWithSuccess, AccountId, MaxBalance>; type AssetKind = (); type Beneficiary = AccountId; - type BeneficiaryLookup = IdentityLookup; + type BeneficiaryLookup = Indices; type Paymaster = PayFromAccount; type BalanceConverter = UnityAssetBalanceConversion; type PayoutPeriod = SpendPayoutPeriod; + type BlockNumberProvider = System; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); } @@ -693,7 +748,9 @@ impl pallet_mmr::Config for Runtime { type LeafData = pallet_mmr::ParentNumberAndHash; type OnNewRoot = (); type WeightInfo = (); - + type BlockHashProvider = pallet_mmr::DefaultBlockHashProvider; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); const INDEXING_PREFIX: &'static [u8] = b"mmr"; } @@ -707,6 +764,7 @@ impl pallet_mmr::Config for Runtime { PartialOrd, Encode, Decode, + DecodeWithMemTracking, RuntimeDebug, MaxEncodedLen, scale_info::TypeInfo, @@ -791,6 +849,7 @@ impl pallet_proxy::Config for Runtime { type CallHasher = BlakeTwo256; type AnnouncementDepositBase = AnnouncementDepositBase; type AnnouncementDepositFactor = AnnouncementDepositFactor; + type BlockNumberProvider = frame_system::Pallet; } /// Calls that cannot be paused by the tx-pause pallet. @@ -865,7 +924,7 @@ impl frame_system::Config for Runtime { /// This type is being generated by `construct_runtime!`. type PalletInfo = PalletInfo; /// Randomness - type Randomness = pallet_babe::RandomnessFromOneEpochAgo; + // type Randomness = pallet_babe::RandomnessFromOneEpochAgo; /// The aggregated dispatch type that is available for extrinsics. type RuntimeCall = RuntimeCall; /// The ubiquitous event type. @@ -888,21 +947,36 @@ impl frame_system::Config for Runtime { type MaxTxPerAppIdPerBlock = ConstU32<8_192>; } +impl frame_system::offchain::CreateTransactionBase for Runtime +where + RuntimeCall: From, +{ + type Extrinsic = UncheckedExtrinsic; + type RuntimeCall = RuntimeCall; +} + +impl frame_system::offchain::CreateBare for Runtime +where + RuntimeCall: From, +{ + fn create_bare(call: RuntimeCall) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_bare_legacy(call).into() + } +} + impl frame_system::offchain::CreateSignedTransaction for Runtime where RuntimeCall: From, { - fn create_transaction>( - call: RuntimeCall, - public: ::Signer, - account: AccountId, - nonce: Index, - ) -> Option<( - RuntimeCall, - ::SignaturePayload, - )> { + fn create_signed_transaction< + C: frame_system::offchain::AppCrypto, + >( + call: >::RuntimeCall, + public: Self::Public, + account: Self::AccountId, + nonce: Self::Nonce, + ) -> Option<>::Extrinsic> { use sp_runtime::{traits::StaticLookup, SaturatedConversion as _}; - let tip = 0; // take the biggest period possible. let period = BlockHashCount::get() @@ -915,7 +989,7 @@ where // so the actual block number is `n`. .saturating_sub(1); let era = Era::mortal(period, current_block); - let extra = ( + let signed_extra: crate::SignedExtra = ( frame_system::CheckNonZeroSender::::new(), frame_system::CheckSpecVersion::::new(), frame_system::CheckTxVersion::::new(), @@ -924,17 +998,20 @@ where frame_system::CheckNonce::::from(nonce), frame_system::CheckWeight::::new(), pallet_transaction_payment::ChargeTransactionPayment::::from(tip), - extensions::check_batch_transactions::CheckBatchTransactions::::new(), + crate::extensions::check_batch_transactions::CheckBatchTransactions::::new(), ); - let raw_payload = SignedPayload::new(call, extra) + + let raw_payload = crate::SignedPayload::new(call, signed_extra) .map_err(|e| { log::warn!("Unable to create signed payload: {:?}", e); }) .ok()?; let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?; let address = Indices::unlookup(account); - let (call, extra, _) = raw_payload.deconstruct(); - Some((call, (address, signature, extra))) + let (call, signed_extra, _) = raw_payload.deconstruct(); + let transaction = + UncheckedExtrinsic::new_signed(call, address, signature, signed_extra).into(); + Some(transaction) } } @@ -943,10 +1020,10 @@ impl frame_system::offchain::SigningTypes for Runtime { type Signature = Signature; } -impl frame_system::offchain::SendTransactionTypes for Runtime -where - RuntimeCall: From, -{ - type Extrinsic = UncheckedExtrinsic; - type OverarchingCall = RuntimeCall; -} +// impl frame_system::offchain::SendTransactionTypes for Runtime +// where +// RuntimeCall: From, +// { +// type Extrinsic = UncheckedExtrinsic; +// type OverarchingCall = RuntimeCall; +// } diff --git a/runtime/src/impls_tests.rs b/runtime/src/impls_tests.rs index b25d076e7..64750480a 100644 --- a/runtime/src/impls_tests.rs +++ b/runtime/src/impls_tests.rs @@ -245,7 +245,7 @@ mod multiplier_tests { let tx_len: usize = 512 * 1024; // 512 Kb data let da_submission_weight = da_control::weight_helper::submit_data::(tx_len); let dispatch_info = DispatchInfo { - weight: da_submission_weight, + call_weight: da_submission_weight, pays_fee: Pays::Yes, ..Default::default() }; @@ -427,7 +427,6 @@ mod tests { }; use frame_system::{ mocking::MockUncheckedExtrinsic, native::hosted_header_builder::da::HeaderExtensionBuilder, - test_utils::TestRandomness, }; use sp_runtime::{traits::IdentityLookup, BuildStorage, Perquintill}; @@ -463,12 +462,10 @@ mod tests { type HeaderExtensionBuilder = HeaderExtensionBuilder; type OnSetCode = (); type PalletInfo = PalletInfo; - type Randomness = TestRandomness; type RuntimeCall = RuntimeCall; type RuntimeEvent = RuntimeEvent; type RuntimeOrigin = RuntimeOrigin; type HeaderExtensionDataFilter = (); - type Header = Header; type Extrinsic = Extrinsic; type MaxDiffAppIdPerBlock = ConstU32<1_024>; @@ -493,6 +490,7 @@ mod tests { type RuntimeHoldReason = (); type RuntimeFreezeReason = (); type WeightInfo = (); + type DoneSlashHandler = (); } parameter_types! { @@ -503,13 +501,8 @@ mod tests { impl pallet_treasury::Config for Test { type Currency = pallet_balances::Pallet; - type ApproveOrigin = frame_system::EnsureRoot; type RejectOrigin = frame_system::EnsureRoot; type RuntimeEvent = RuntimeEvent; - type OnSlash = (); - type ProposalBond = (); - type ProposalBondMinimum = (); - type ProposalBondMaximum = (); type SpendPeriod = (); type Burn = (); type BurnDestination = (); @@ -518,7 +511,6 @@ mod tests { type MaxApprovals = MaxApprovals; type SpendOrigin = frame_support::traits::NeverEnsureOrigin; type WeightInfo = (); - type AssetKind = (); type Beneficiary = Self::AccountId; type BeneficiaryLookup = IdentityLookup; @@ -527,6 +519,7 @@ mod tests { type PayoutPeriod = ConstU32<0>; #[cfg(feature = "runtime-benchmarks")] type BenchmarkHelper = (); + type BlockNumberProvider = System; } pub struct OneAuthor; @@ -658,7 +651,7 @@ mod measure_full_block_size { .unwrap(); pallet_babe::GenesisConfig:: { - epoch_config: Some(crate::constants::babe::GENESIS_EPOCH_CONFIG), + epoch_config: crate::constants::babe::GENESIS_EPOCH_CONFIG, ..Default::default() } .assimilate_storage(&mut t) @@ -666,6 +659,7 @@ mod measure_full_block_size { pallet_balances::GenesisConfig:: { balances: vec![(alice.clone(), 100_000_000 * AVAIL)], + ..Default::default() } .assimilate_storage(&mut t) .unwrap(); diff --git a/runtime/src/kate/mod.rs b/runtime/src/kate/mod.rs index a7ff3454b..fac4051f0 100644 --- a/runtime/src/kate/mod.rs +++ b/runtime/src/kate/mod.rs @@ -7,12 +7,11 @@ use kate::gridgen::core::CellBlock; use avail_core::data_proof::DataProof; use codec::{Decode, Encode}; use core::num::TryFromIntError; -pub use runtime::{grid, multiproof, proof}; +// pub use runtime::{grid, multiproof, proof}; use scale_info::TypeInfo; #[cfg(feature = "std")] use serde::{Deserialize, Serialize}; use sp_core::{H256, U256}; -use sp_runtime_interface::pass_by::{PassByCodec, PassByInner}; use sp_std::vec::Vec; use thiserror_no_std::Error; @@ -23,7 +22,7 @@ pub type GRawScalar = U256; pub type GRow = Vec; pub type GDataProof = (GRawScalar, GProof); pub type GMultiProof = (Vec, GProof); -#[derive(Encode, Decode, TypeInfo, PassByCodec, Debug, Clone)] +#[derive(Encode, Decode, TypeInfo, Debug, Clone)] #[cfg_attr(feature = "std", derive(Deserialize, Serialize))] pub struct GCellBlock { pub start_x: u32, @@ -47,7 +46,7 @@ impl GCellBlock { /// # NOTE /// `Serde` requires a custom implementation for `GProof` due to the array size (greater than `[T;32]`). /// In this case, we transform into a `Vec` as intermediate step to serialize/deserialize. -#[derive(Encode, Decode, PartialEq, Eq, TypeInfo, PassByInner, Debug, Clone, Copy)] +#[derive(Encode, Decode, PartialEq, Eq, TypeInfo, Debug, Clone, Copy)] #[cfg_attr(feature = "std", derive(Serialize, Deserialize))] #[cfg_attr(feature = "std", serde(try_from = "Vec", into = "Vec"))] pub struct GProof([u8; 48]); @@ -71,7 +70,7 @@ impl TryFrom> for GProof { } } -#[derive(Error, Encode, Decode, TypeInfo, PassByCodec, Debug)] +#[derive(Error, Encode, Decode, TypeInfo, Debug)] pub enum Error { #[error("Invalid integer conversion")] TryFromInt, @@ -113,7 +112,7 @@ impl From for Error { } } -#[derive(Encode, Decode, TypeInfo, PassByCodec, Debug, Clone)] +#[derive(Encode, Decode, TypeInfo, Debug, Clone)] #[cfg_attr(feature = "std", derive(Deserialize, Serialize))] #[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] pub struct InclusionProof { diff --git a/runtime/src/kate/native.rs b/runtime/src/kate/native.rs index 00fbf925e..210f38a5e 100644 --- a/runtime/src/kate/native.rs +++ b/runtime/src/kate/native.rs @@ -1,175 +1,244 @@ -use super::{Error, GCellBlock, GDataProof, GMultiProof, GProof, GRawScalar, GRow}; -use avail_core::{AppExtrinsic, AppId, BlockLengthColumns, BlockLengthRows}; -use core::num::NonZeroU16; -use frame_system::{limits::BlockLength, native::hosted_header_builder::MIN_WIDTH}; -#[cfg(feature = "std")] -use kate::{ - com::Cell, - couscous::multiproof_params, - gridgen::core::{AsBytes as _, EvaluationGrid as EGrid}, - M1NoPrecomp, +// use super::{Error, GCellBlock, GDataProof, GMultiProof, GProof, GRawScalar, GRow}; +// // use avail_core::{AppId, BlockLengthColumns, BlockLengthRows}; +// use core::num::NonZeroU16; +// use frame_system::{limits::BlockLength, native::hosted_header_builder::MIN_WIDTH}; +// use kate::{ArkScalar, Seed}; +// use kate_recovery::matrix::Dimensions; +// use sp_runtime::SaturatedConversion as _; +use sp_runtime_interface::{ + // pass_by::{AllocateAndReturnByCodec, PassFatPointerAndDecode}, + runtime_interface, }; -use kate::{ArkScalar, Seed}; -use kate_recovery::matrix::Dimensions; -use sp_runtime::SaturatedConversion as _; -use sp_runtime_interface::runtime_interface; -use sp_std::vec::Vec; - -#[cfg(feature = "std")] -static SRS: std::sync::OnceLock = std::sync::OnceLock::new(); - -#[cfg(feature = "std")] -use rayon::iter::{IntoParallelIterator, ParallelIterator}; - -/// Hosted function to build the header using `kate` commitments. +// use sp_std::vec::Vec; + +// === std-only / host-only imports ========================================== + +// #[cfg(not(substrate_runtime))] +// use kate::{ +// com::Cell, +// couscous::multiproof_params, +// gridgen::core::{AsBytes as _, EvaluationGrid as EGrid}, +// M1NoPrecomp, +// }; + +// #[cfg(not(substrate_runtime))] +// static SRS: std::sync::OnceLock = std::sync::OnceLock::new(); + +// #[cfg(not(substrate_runtime))] +// use rayon::iter::{IntoParallelIterator, ParallelIterator}; + +/// Hosted functions to work with KZG / kate commitments from the node. +/// +/// NOTE: +/// - Arguments use `PassFatPointerAndDecode<...>` so they implement `RIType`. +/// - Return values use `AllocateAndReturnByCodec<...>` so they implement `IntoFFIValue`. +/// - Heavy kate/rayon logic is `#[cfg(not(substrate_runtime))]` so wasm side compiles. #[runtime_interface] pub trait HostedKate { - fn grid( - submitted: Vec, - block_length: BlockLength, - seed: Seed, - selected_rows: Vec, - ) -> Result, Error> { - let (max_width, max_height) = to_width_height(&block_length); - let selected_rows = selected_rows - .into_par_iter() - .map(usize::try_from) - .collect::, _>>()?; - - let grid = EGrid::from_extrinsics(submitted, MIN_WIDTH, max_width, max_height, seed)? - .extend_columns(NonZeroU16::new(2).expect("2>0")) - .map_err(|_| Error::ColumnExtension)?; - let rows = selected_rows - .into_par_iter() - .map(|row_idx| { - let row = grid.row(row_idx).ok_or(Error::MissingRow(row_idx as u32))?; - row.iter() - .map(|scalar| scalar.to_bytes().map(GRawScalar::from)) - .collect::, _>>() - .map_err(|_| Error::InvalidScalarAtRow(row_idx as u32)) - }) - .collect::, _>>()?; - - Ok(rows) - } - - fn proof( - extrinsics: Vec, - block_len: BlockLength, - seed: Seed, - cells: Vec<(u32, u32)>, - ) -> Result, Error> { - let srs = SRS.get_or_init(multiproof_params); - let (max_width, max_height) = to_width_height(&block_len); - let grid = EGrid::from_extrinsics(extrinsics, MIN_WIDTH, max_width, max_height, seed)? - .extend_columns(NonZeroU16::new(2).expect("2>0")) - .map_err(|_| Error::ColumnExtension)?; - - let poly = grid.make_polynomial_grid()?; - - let proofs = cells - .into_par_iter() - .map(|(row, col)| -> Result { - let data: GRawScalar = grid - .get(row as usize, col as usize) - .ok_or(Error::MissingCell { row, col })? - .to_bytes() - .map(GRawScalar::from) - .map_err(|_| Error::InvalidScalarAtRow(row))?; - - let cell = Cell::new(BlockLengthRows(row), BlockLengthColumns(col)); - let proof = poly - .proof(srs, &cell)? - .to_bytes() - .map(GProof) - .map_err(|_| Error::Proof)?; - - Ok((data, proof)) - }) - .collect::, _>>()?; - - Ok(proofs) - } - - fn multiproof( - extrinsics: Vec, - block_len: BlockLength, - seed: Seed, - cells: Vec<(u32, u32)>, - ) -> Result, Error> { - let srs = SRS.get_or_init(multiproof_params); - let (max_width, max_height) = to_width_height(&block_len); - let grid = EGrid::from_extrinsics(extrinsics, MIN_WIDTH, max_width, max_height, seed)? - .extend_columns(NonZeroU16::new(2).expect("2>0")) - .map_err(|_| Error::ColumnExtension)?; - - let poly = grid.make_polynomial_grid()?; - - let proofs = cells - .into_par_iter() - .map(|(row, col)| -> Result<(GMultiProof, GCellBlock), Error> { - let cell = Cell::new(BlockLengthRows(row), BlockLengthColumns(col)); - let target_dims = Dimensions::new(16, 64).expect("16,64>0"); - // TODO: This isn't correct, need to put in the correct mp grid dim - // TODO: safety - if cell.row.0 >= grid.dims().height() as u32 - || cell.col.0 >= grid.dims().width() as u32 - { - return Err(Error::MissingCell { row, col }); - } - let mp = poly.multiproof(srs, &cell, &grid, target_dims)?; - let data = mp - .evals - .into_iter() - .flatten() - .map(|e: ArkScalar| { - e.to_bytes() - .map(GRawScalar::from) - .map_err(|_| Error::InvalidScalarAtRow(row)) - }) - .collect::, _>>()?; - - let proof = mp.proof.to_bytes().map(GProof).map_err(|_| Error::Proof)?; - - Ok(((data, proof), GCellBlock::from(mp.block))) - }) - .collect::, _>>()?; - - Ok(proofs) - } - - fn app_data( - submitted: Vec, - block_length: BlockLength, - seed: Seed, - app_id: u32, - ) -> Result>, Error> { - let (max_width, max_height) = to_width_height(&block_length); - let grid = EGrid::from_extrinsics(submitted, MIN_WIDTH, max_width, max_height, seed)?; - - // let orig_dims = non_extended_dims(grid.dims()).ok_or(Error::InvalidDimension)?; - let dims = grid.dims(); - let Some(rows) = grid.app_rows(AppId(app_id), Some(dims))? else { - return Err(Error::AppRow); - }; - - let mut all_rows = vec![None; dims.height()]; - for (row_y, row) in rows { - let g_row = row - .into_par_iter() - .map(|s| s.to_bytes().map(GRawScalar::from)) - .collect::, _>>() - .map_err(|_| Error::InvalidScalarAtRow(row_y as u32))?; - all_rows[row_y] = Some(g_row); - } - - Ok(all_rows) - } + // fn grid( + // submitted: PassFatPointerAndDecode>, + // block_length: PassFatPointerAndDecode, + // seed: PassFatPointerAndDecode, + // selected_rows: PassFatPointerAndDecode>, + // ) -> AllocateAndReturnByCodec, Error>> { + // #[cfg(not(substrate_runtime))] + // { + // let submitted: Vec = submitted.to_vec(); + // let block_length: BlockLength = *block_length; + // let seed: Seed = *seed; + // let selected_rows: Vec = selected_rows.to_vec(); + + // let (max_width, max_height) = to_width_height(&block_length); + // let selected_rows = selected_rows + // .into_par_iter() + // .map(usize::try_from) + // .collect::, _>>()?; + + // let grid = EGrid::from_extrinsics(submitted, MIN_WIDTH, max_width, max_height, seed)? + // .extend_columns(NonZeroU16::new(2).expect("2>0")) + // .map_err(|_| Error::ColumnExtension)?; + + // let rows = selected_rows + // .into_par_iter() + // .map(|row_idx| { + // let row = grid.row(row_idx).ok_or(Error::MissingRow(row_idx as u32))?; + // row.iter() + // .map(|scalar| scalar.to_bytes().map(GRawScalar::from)) + // .collect::, _>>() + // .map_err(|_| Error::InvalidScalarAtRow(row_idx as u32)) + // }) + // .collect::, _>>()?; + + // Ok(rows) + // } + + // #[cfg(substrate_runtime)] + // { + // // Should never be called from wasm; this is only for host. + // let _ = (submitted, block_length, seed, selected_rows); + // panic!("HostedKate::grid is only available on the host (not in substrate_runtime)"); + // } + // } + + // fn proof( + // extrinsics: PassFatPointerAndDecode>, + // block_len: PassFatPointerAndDecode, + // seed: PassFatPointerAndDecode, + // cells: PassFatPointerAndDecode>, + // ) -> AllocateAndReturnByCodec, Error>> { + // #[cfg(not(substrate_runtime))] + // { + // let extrinsics: Vec = extrinsics.to_vec(); + // let block_len: BlockLength = *block_len; + // let seed: Seed = *seed; + // let cells: Vec<(u32, u32)> = cells.to_vec(); + + // let srs = SRS.get_or_init(multiproof_params); + // let (max_width, max_height) = to_width_height(&block_len); + // let grid = EGrid::from_extrinsics(extrinsics, MIN_WIDTH, max_width, max_height, seed)? + // .extend_columns(NonZeroU16::new(2).expect("2>0")) + // .map_err(|_| Error::ColumnExtension)?; + + // let poly = grid.make_polynomial_grid()?; + + // let proofs = cells + // .into_par_iter() + // .map(|(row, col)| -> Result { + // let data: GRawScalar = grid + // .get(row as usize, col as usize) + // .ok_or(Error::MissingCell { row, col })? + // .to_bytes() + // .map(GRawScalar::from) + // .map_err(|_| Error::InvalidScalarAtRow(row))?; + + // let cell = Cell::new(BlockLengthRows(row), BlockLengthColumns(col)); + // let proof = poly + // .proof(srs, &cell)? + // .to_bytes() + // .map(GProof) + // .map_err(|_| Error::Proof)?; + + // Ok((data, proof)) + // }) + // .collect::, _>>()?; + + // Ok(proofs) + // } + + // #[cfg(substrate_runtime)] + // { + // let _ = (extrinsics, block_len, seed, cells); + // panic!("HostedKate::proof is only available on the host (not in substrate_runtime)"); + // } + // } + + // fn multiproof( + // extrinsics: PassFatPointerAndDecode>, + // block_len: PassFatPointerAndDecode, + // seed: PassFatPointerAndDecode, + // cells: PassFatPointerAndDecode>, + // ) -> AllocateAndReturnByCodec, Error>> { + // #[cfg(not(substrate_runtime))] + // { + // let extrinsics: Vec = extrinsics.to_vec(); + // let block_len: BlockLength = *block_len; + // let seed: Seed = *seed; + // let cells: Vec<(u32, u32)> = cells.to_vec(); + + // let srs = SRS.get_or_init(multiproof_params); + // let (max_width, max_height) = to_width_height(&block_len); + // let grid = EGrid::from_extrinsics(extrinsics, MIN_WIDTH, max_width, max_height, seed)? + // .extend_columns(NonZeroU16::new(2).expect("2>0")) + // .map_err(|_| Error::ColumnExtension)?; + + // let poly = grid.make_polynomial_grid()?; + + // let proofs = cells + // .into_par_iter() + // .map(|(row, col)| -> Result<(GMultiProof, GCellBlock), Error> { + // let cell = Cell::new(BlockLengthRows(row), BlockLengthColumns(col)); + // let target_dims = Dimensions::new(16, 64).expect("16,64>0"); + + // if cell.row.0 >= grid.dims().height() as u32 + // || cell.col.0 >= grid.dims().width() as u32 + // { + // return Err(Error::MissingCell { row, col }); + // } + + // let mp = poly.multiproof(srs, &cell, &grid, target_dims)?; + // let data = mp + // .evals + // .into_iter() + // .flatten() + // .map(|e: ArkScalar| { + // e.to_bytes() + // .map(GRawScalar::from) + // .map_err(|_| Error::InvalidScalarAtRow(row)) + // }) + // .collect::, _>>()?; + + // let proof = mp.proof.to_bytes().map(GProof).map_err(|_| Error::Proof)?; + + // Ok(((data, proof), GCellBlock::from(mp.block))) + // }) + // .collect::, _>>()?; + + // Ok(proofs) + // } + + // #[cfg(substrate_runtime)] + // { + // let _ = (extrinsics, block_len, seed, cells); + // panic!( + // "HostedKate::multiproof is only available on the host (not in substrate_runtime)" + // ); + // } + // } + + // fn app_data( + // submitted: PassFatPointerAndDecode>, + // block_length: PassFatPointerAndDecode, + // seed: PassFatPointerAndDecode, + // app_id: u32, + // ) -> AllocateAndReturnByCodec>, Error>> { + // #[cfg(not(substrate_runtime))] + // { + // let submitted: Vec = submitted.to_vec(); + // let block_length: BlockLength = *block_length; + // let seed: Seed = *seed; + + // let (max_width, max_height) = to_width_height(&block_length); + // let grid = EGrid::from_extrinsics(submitted, MIN_WIDTH, max_width, max_height, seed)?; + + // let dims = grid.dims(); + // let Some(rows) = grid.app_rows(AppId(app_id), Some(dims))? else { + // return Err(Error::AppRow); + // }; + + // let mut all_rows: Vec> = vec![None; dims.height()]; + // for (row_y, row) in rows { + // let g_row = row + // .into_par_iter() + // .map(|s| s.to_bytes().map(GRawScalar::from)) + // .collect::, _>>() + // .map_err(|_| Error::InvalidScalarAtRow(row_y as u32))?; + // all_rows[row_y] = Some(g_row); + // } + + // Ok(all_rows) + // } + + // #[cfg(substrate_runtime)] + // { + // let _ = (submitted, block_length, seed, app_id); + // panic!("HostedKate::app_data is only available on the host (not in substrate_runtime)"); + // } + // } } -fn to_width_height(block_len: &BlockLength) -> (usize, usize) { - // even if we run on a u16 target this is fine - let width = block_len.cols.0.saturated_into(); - let height = block_len.rows.0.saturated_into(); - (width, height) -} +// fn to_width_height(block_len: &BlockLength) -> (usize, usize) { +// // even if we run on a u16 target this is fine +// let width = block_len.cols.0.saturated_into(); +// let height = block_len.rows.0.saturated_into(); +// (width, height) +// } diff --git a/runtime/src/kate/runtime.rs b/runtime/src/kate/runtime.rs index 6ca08a8d5..9dfd6579a 100644 --- a/runtime/src/kate/runtime.rs +++ b/runtime/src/kate/runtime.rs @@ -1,52 +1,41 @@ -use super::{native::hosted_kate, Error, GCellBlock, GDataProof, GMultiProof, GRow}; -use da_control::LOG_TARGET as DALOG_TARGET; +// use super::{native::hosted_kate, Error, GCellBlock, GDataProof, GMultiProof, GRow}; +// use da_control::LOG_TARGET as DALOG_TARGET; -use avail_core::AppExtrinsic; -use frame_system::{limits::BlockLength, Config as SystemConfig}; -use kate::Seed; +// use avail_core::AppExtrinsic; +// use frame_system::{limits::BlockLength, Config as SystemConfig}; +// use kate::Seed; -use frame_support::traits::Randomness; -use sp_runtime::traits::Hash; -use sp_std::vec::Vec; +// use frame_support::traits::Randomness; +// use sp_runtime::traits::Hash; +// use sp_std::vec::Vec; -fn random_seed() -> Seed { - let seed = if cfg!(feature = "secure_padding_fill") { - let (epoch_seed, block_number) = T::Randomness::random_seed(); - let seed = T::Hashing::hash_of(&(&epoch_seed, &block_number)); - log::trace!( - target: DALOG_TARGET, - "RTKate seed {seed:?} from epoch seed {epoch_seed:?} and block {block_number:?}"); - seed - } else { - T::Hash::default() - }; +// fn random_seed() -> Seed { +// T::Hash::default().into() +// } - seed.into() -} +// pub fn grid( +// app_extrinsics: Vec, +// block_length: BlockLength, +// selected_rows: Vec, +// ) -> Result, Error> { +// let seed = random_seed::(); +// hosted_kate::grid(app_extrinsics, block_length, seed, selected_rows) +// } -pub fn grid( - app_extrinsics: Vec, - block_length: BlockLength, - selected_rows: Vec, -) -> Result, Error> { - let seed = random_seed::(); - hosted_kate::grid(app_extrinsics, block_length, seed, selected_rows) -} +// pub fn proof( +// app_extrinsics: Vec, +// block_len: BlockLength, +// cells: Vec<(u32, u32)>, +// ) -> Result, Error> { +// let seed = random_seed::(); +// hosted_kate::proof(app_extrinsics, block_len, seed, cells) +// } -pub fn proof( - app_extrinsics: Vec, - block_len: BlockLength, - cells: Vec<(u32, u32)>, -) -> Result, Error> { - let seed = random_seed::(); - hosted_kate::proof(app_extrinsics, block_len, seed, cells) -} - -pub fn multiproof( - app_extrinsics: Vec, - block_len: BlockLength, - cells: Vec<(u32, u32)>, -) -> Result, Error> { - let seed = random_seed::(); - hosted_kate::multiproof(app_extrinsics, block_len, seed, cells) -} +// pub fn multiproof( +// app_extrinsics: Vec, +// block_len: BlockLength, +// cells: Vec<(u32, u32)>, +// ) -> Result, Error> { +// let seed = random_seed::(); +// hosted_kate::multiproof(app_extrinsics, block_len, seed, cells) +// } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 56924546b..8773d0959 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -27,6 +27,7 @@ pub(crate) const LOG_TARGET: &str = "da-runtime"; pub mod apis; pub mod constants; +mod genesis_config_presets; #[cfg(test)] mod header_extension_builder_data_tests; pub mod impls; @@ -48,7 +49,7 @@ pub use frame_support::{ parameter_types, traits::{ ConstU32, ContainsLengthBound, Currency, EitherOfDiverse, EqualPrivilegeOnly, Everything, - ExtrinsicCall, Imbalance, KeyOwnerProofSystem, OnUnbalanced, Randomness, SortedMembers, + Imbalance, KeyOwnerProofSystem, OnUnbalanced, Randomness, SortedMembers, }, weights::{ constants::{ @@ -208,7 +209,7 @@ mod tests { use frame_system::offchain::CreateSignedTransaction; use hex_literal::hex; use sp_core::hexdisplay::HexDisplay; - use sp_keyring::AccountKeyring::Bob; + use sp_keyring::Sr25519Keyring::Bob; use sp_runtime::{MultiAddress, UpperOf}; use test_case::test_case; diff --git a/runtime/src/primitives.rs b/runtime/src/primitives.rs index e43b480de..f3defd8d6 100644 --- a/runtime/src/primitives.rs +++ b/runtime/src/primitives.rs @@ -4,15 +4,13 @@ use codec::{Decode, Encode}; use scale_info::prelude::{format, string::String}; use sp_runtime::{ - generic, impl_opaque_keys, + generic::{self, Preamble}, + impl_opaque_keys, traits::{BlakeTwo256, IdentifyAccount, Verify}, MultiAddress, MultiSignature, OpaqueExtrinsic, }; use sp_std::vec::Vec; -// the extrinsic version which we currently support & hence decodable from opaque bytes -const EXTRINSIC_FORMAT_VERSION: u8 = 4; - /// An index to a block. pub type BlockNumber = u32; /// Alias to 512-bit hash when used in the context of a transaction signature on the chain. @@ -38,7 +36,7 @@ pub type Address = MultiAddress; pub type Header = DaHeader; /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + sp_runtime::generic::UncheckedExtrinsic; /// DA Block type as expected by this runtime. pub type Block = avail_core::DaBlock; /// Block type for the node @@ -92,120 +90,151 @@ impl_opaque_keys! { } } -/// Return inner bytes (block-body wrapper is `Compact(len) || inner_bytes`). -fn opaque_inner_bytes(opaque: &OpaqueExtrinsic) -> Result, String> { - let mut cursor: &[u8] = &opaque.encode(); - Vec::::decode(&mut cursor).map_err(|e| format!("opaque wrapper decode failed: {:?}", e)) -} - /// Decode runtime `UncheckedExtrinsic` from `OpaqueExtrinsic` following the -/// `version_byte || [signature_tuple?] || RuntimeCall` layout (no vec prefix). +/// `Compact(len) || inner_bytes` layout. pub fn opaque_to_unchecked(opaque: &OpaqueExtrinsic) -> Result { - let inner = opaque_inner_bytes(opaque)?; - if inner.is_empty() { - return Err("opaque inner empty".into()); - } + // 1) Decode the wrapper: Compact(len) + inner bytes. + let inner = opaque.encode(); - let first = inner[0]; - let is_signed = (first & 0x80) != 0; - let version = first & 0x7f; - if version != EXTRINSIC_FORMAT_VERSION { - return Err(format!( - "extrinsic version mismatch: expected {}, got {}", - EXTRINSIC_FORMAT_VERSION, version - )); + if inner.is_empty() { + return Err("opaque inner extrinsic bytes empty".into()); } - // decode from bytes AFTER version byte (matches decode_no_vec_prefix) - let mut input: &[u8] = &inner[1..]; - - let signature = if is_signed { - <(Address, Signature, SignedExtra)>::decode(&mut input) - .map(Some) - .map_err(|e| format!("signature tuple decode failed: {:?}", e))? - } else { - None - }; - - let function = RuntimeCall::decode(&mut input) - .map_err(|e| format!("RuntimeCall decode failed: {:?}", e))?; - - Ok(UncheckedExtrinsic { - signature, - function, - }) + // 2) Decode the runtime UncheckedExtrinsic from the inner bytes. + let mut inner_input: &[u8] = &inner; + UncheckedExtrinsic::decode(&mut inner_input) + .map_err(|e| format!("failed to decode UncheckedExtrinsic: {e:?}")) } /// return caller if the xt is signed with MultiAddress::Id -pub fn unchecked_get_caller(xt: &UncheckedExtrinsic) -> Option<&sp_runtime::AccountId32> { - xt.signature.as_ref().and_then(|(addr, _, _)| match addr { - Address::Id(acc) => Some(acc), +pub fn unchecked_get_caller(xt: &UncheckedExtrinsic) -> Option { + match &xt.preamble { + Preamble::Signed(address, _signature, _) => match address { + Address::Id(account) => Some(account.clone()), + _ => None, + }, _ => None, - }) + } } #[cfg(test)] mod tests { use super::*; - use codec::Compact; + use crate::extensions::check_batch_transactions::CheckBatchTransactions; + use crate::primitives::generic::Era; + use codec::Encode; use da_control::Call as DACall; - use sp_core::crypto::AccountId32; - use sp_runtime::generic::UncheckedExtrinsic as GenericUxt; + use frame_system::{ + CheckEra, CheckGenesis, CheckNonZeroSender, CheckNonce, CheckSpecVersion, CheckTxVersion, + CheckWeight, + }; + use pallet_transaction_payment::ChargeTransactionPayment; + use sp_io::TestExternalities; + use sp_keyring::Sr25519Keyring::Alice; use sp_runtime::BoundedVec; - use sp_runtime::MultiSignature; + use sp_runtime::BuildStorage; use sp_runtime::OpaqueExtrinsic; use sp_std::convert::TryInto; + fn extra() -> SignedExtra { + ( + CheckNonZeroSender::::new(), + CheckSpecVersion::::new(), + CheckTxVersion::::new(), + CheckGenesis::::new(), + // For tests we don't care about mortality; Immortal keeps Era checks simple. + CheckEra::::from(Era::Immortal), + CheckNonce::::from(0), + CheckWeight::::new(), + ChargeTransactionPayment::::from(0), + CheckBatchTransactions::::new(), + ) + } + #[test] - fn roundtrip_show_inner_bytes_and_report() { - // This test uses your runtime types and DA call to ensure the special decode path works. + fn roundtrip_unsigned_ext() { + // This test uses your runtime types and DA call to ensure the decode path works. let v = [1u8; 8].to_vec(); let data: BoundedVec = v.try_into().expect("bounded"); - // Build the UncheckedExtrinsic value (for comparison later). - let uxt: UncheckedExtrinsic = UncheckedExtrinsic { - signature: None, - function: DACall::submit_data { + // Build the call. + let call: RuntimeCall = DACall::submit_data { + app_id: avail_core::AppId(2), + data, + } + .into(); + + // Build the UncheckedExtrinsic as unsigned using the proper constructor. + let uxt: UncheckedExtrinsic = UncheckedExtrinsic::new_unsigned(call.clone()); + + // Raw bytes: SCALE encoding of UncheckedExtrinsic (no extra wrapper). + let raw_bytes: Vec = uxt.encode(); + + // OpaqueExtrinsic is assumed to hold exactly these raw bytes. + let opaque = + OpaqueExtrinsic::from_bytes(raw_bytes.as_slice()).expect("opaque from bytes ok"); + + let decoded: UncheckedExtrinsic = + opaque_to_unchecked(&opaque).expect("decode must succeed"); + + // Function (call) should match. + assert_eq!(decoded.function, call); + } + + #[test] + fn roundtrip_signed_ext() { + // Minimal storage / externalities for the Runtime so `SignedPayload::new` + // can run the TransactionExtensions (CheckGenesis, etc). + let storage = as BuildStorage>::build_storage( + &frame_system::GenesisConfig::default(), + ) + .expect("frame_system genesis storage builds"); + let mut ext = TestExternalities::new(storage); + + ext.execute_with(|| { + let v = [1u8; 8].to_vec(); + let data: BoundedVec = v.try_into().expect("bounded"); + let extra = extra(); + let alice = Alice.to_account_id(); + + // Build the call. + let call: RuntimeCall = DACall::submit_data { app_id: avail_core::AppId(2), data, } - .into(), - }; - - // Instead of relying on `uxt.encode()` to be the exact inner bytes layout, - // compose the inner bytes manually: version_byte || (signature tuple if signed) || function bytes. - let mut inner_bytes: Vec = Vec::new(); - - // version byte: signed flag (0x80) | version (lower 7 bits). Unsigned -> no sign bit. - inner_bytes.push(EXTRINSIC_FORMAT_VERSION); - - // signature: we have none (unsigned), so nothing to append here. - // append the function encoding (RuntimeCall) - inner_bytes.extend_from_slice(&uxt.function.encode()); - - // Build the wrapper that block-body stores: Compact(len) || inner_bytes - let mut wrapper: Vec = Vec::with_capacity(inner_bytes.len() + 8); - Compact::(inner_bytes.len() as u32).encode_to(&mut wrapper); - wrapper.extend_from_slice(&inner_bytes); - - // Create `OpaqueExtrinsic` from the wrapper bytes - let opaque = OpaqueExtrinsic::from_bytes(wrapper.as_slice()).expect("opaque from bytes ok"); - - // Diagnostic: show inner length and first byte - let mut wrapper_input: &[u8] = &opaque.encode(); - let inner: Vec = - Vec::::decode(&mut wrapper_input).expect("decode wrapper -> inner Vec"); - println!( - "inner_len={}, first_byte={}", - inner.len(), - inner.get(0).copied().unwrap_or(0) - ); - - // Use your helper (which consumes the version byte and decodes function) - let decoded: UncheckedExtrinsic = - opaque_to_unchecked(&opaque).expect("decode must succeed"); + .into(); + + // NOTE: requires externalities (CheckGenesis, etc.). + let payload = SignedPayload::new(call.clone(), extra.clone()) + .expect("SignedPayload::new should work with ext") + .encode(); + + let signature: MultiSignature = Alice.sign(&payload).into(); + assert!(signature.verify(&*payload, &alice)); + + let uxt: UncheckedExtrinsic = UncheckedExtrinsic::new_signed( + call.clone(), + alice.clone().into(), + signature, + extra, + ); + + // Raw bytes: SCALE encoding of UncheckedExtrinsic. + let raw_bytes: Vec = uxt.encode(); + + // OpaqueExtrinsic holds exactly these bytes. + let opaque = + OpaqueExtrinsic::from_bytes(raw_bytes.as_slice()).expect("opaque from bytes ok"); + + let decoded: UncheckedExtrinsic = + opaque_to_unchecked(&opaque).expect("decode must succeed"); + + // Function (call) should match. + assert_eq!(decoded.function, call); - // Function (call) should match - assert_eq!(decoded.function, uxt.function); + // And caller should be recoverable as Alice. + let caller = unchecked_get_caller(&decoded).expect("must be signed with Id"); + assert_eq!(caller, alice); + }); } } diff --git a/runtime/src/transaction_filter.rs b/runtime/src/transaction_filter.rs index dd9c8fe6e..7d84a9fbe 100644 --- a/runtime/src/transaction_filter.rs +++ b/runtime/src/transaction_filter.rs @@ -38,7 +38,7 @@ impl HeaderExtensionDataFilter for Runtime { match final_call { Call::Vector(call) => filter_vector_call( failed_transactions, - maybe_caller, + maybe_caller.as_ref(), call, block, tx_index, @@ -49,7 +49,7 @@ impl HeaderExtensionDataFilter for Runtime { match final_call { Call::Vector(call) => filter_vector_call( failed_transactions, - maybe_caller, + maybe_caller.as_ref(), call, block, tx_index, @@ -61,9 +61,10 @@ impl HeaderExtensionDataFilter for Runtime { } } }, - Err(_e) => { + Err(e) => { // ideally we should not reach heer // TODO: add logs + log::error!("failed to convert opaque to uxt: {:?}", e); None }, } diff --git a/runtime/src/version.rs b/runtime/src/version.rs index d47dcc5dd..c8ce33c2e 100644 --- a/runtime/src/version.rs +++ b/runtime/src/version.rs @@ -1,16 +1,15 @@ -use sp_runtime::create_runtime_str; +use crate::apis::RUNTIME_API_VERSIONS; +use sp_version::Cow; use sp_version::RuntimeVersion; -use crate::apis; - #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { // The identifier for the different Substrate runtimes. - spec_name: create_runtime_str!("avail"), + spec_name: Cow::Borrowed("avail"), // The name of the implementation of the spec. This is of little // consequence for the node and serves only to differentiate code of // different implementation teams. - impl_name: create_runtime_str!("avail"), + impl_name: Cow::Borrowed("avail"), // The version of the authorship interface. An authoring node will not // attempt to author blocks unless this is equal to its native runtime. authoring_version: 12, @@ -33,6 +32,6 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // parameters or parameter types. If this number is updated, then the spec_version must also // be updated. transaction_version: 1, - apis: apis::runtime_api_versions(), - state_version: 1, + apis: RUNTIME_API_VERSIONS, + system_version: 1, }; diff --git a/runtime/src/weights/frame_system.rs b/runtime/src/weights/frame_system.rs index 44e564772..189fbf13b 100644 --- a/runtime/src/weights/frame_system.rs +++ b/runtime/src/weights/frame_system.rs @@ -170,11 +170,4 @@ impl frame_system::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) } - fn header_extension_builder() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 455_367_000 picoseconds. - Weight::from_parts(457_439_000, 0) - } } diff --git a/runtime/src/weights/pallet_balances.rs b/runtime/src/weights/pallet_balances.rs index 460b4dd5b..684fbdc26 100644 --- a/runtime/src/weights/pallet_balances.rs +++ b/runtime/src/weights/pallet_balances.rs @@ -157,4 +157,12 @@ impl pallet_balances::WeightInfo for WeightInfo { Weight::from_parts(13_275_000, 0) .saturating_add(Weight::from_parts(0, 0)) } + + fn burn_allow_death() -> Weight { + todo!() + } + + fn burn_keep_alive() -> Weight { + todo!() + } } diff --git a/runtime/src/weights/pallet_collective.rs b/runtime/src/weights/pallet_collective.rs index e9c1ee917..c76578fab 100644 --- a/runtime/src/weights/pallet_collective.rs +++ b/runtime/src/weights/pallet_collective.rs @@ -331,4 +331,12 @@ impl pallet_collective::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().writes(3)) .saturating_add(Weight::from_parts(0, 32).saturating_mul(p.into())) } + + fn kill(d: u32, p: u32, ) -> Weight { + todo!() + } + + fn release_proposal_cost() -> Weight { + todo!() + } } diff --git a/runtime/src/weights/pallet_identity.rs b/runtime/src/weights/pallet_identity.rs index 3ddc3d511..5fdb59422 100644 --- a/runtime/src/weights/pallet_identity.rs +++ b/runtime/src/weights/pallet_identity.rs @@ -360,24 +360,6 @@ impl pallet_identity::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Identity::UsernameAuthorities` (r:1 w:1) - /// Proof: `Identity::UsernameAuthorities` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `MaxEncodedLen`) - /// Storage: `Identity::AccountOfUsername` (r:1 w:1) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) - /// Storage: `Identity::PendingUsernames` (r:1 w:0) - /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) - /// Storage: `Identity::IdentityOf` (r:1 w:1) - /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) - fn set_username_for() -> Weight { - // Proof Size summary in bytes: - // Measured: `80` - // Estimated: `11037` - // Minimum execution time: 128_910_000 picoseconds. - Weight::from_parts(134_339_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(3)) - } /// Storage: `Identity::PendingUsernames` (r:1 w:1) /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) @@ -394,18 +376,6 @@ impl pallet_identity::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(3)) } - /// Storage: `Identity::PendingUsernames` (r:1 w:1) - /// Proof: `Identity::PendingUsernames` (`max_values`: None, `max_size`: Some(85), added: 2560, mode: `MaxEncodedLen`) - fn remove_expired_approval() -> Weight { - // Proof Size summary in bytes: - // Measured: `115` - // Estimated: `3550` - // Minimum execution time: 41_977_000 picoseconds. - Weight::from_parts(44_456_000, 0) - .saturating_add(Weight::from_parts(0, 3550)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(1)) - } /// Storage: `Identity::AccountOfUsername` (r:1 w:0) /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) /// Storage: `Identity::IdentityOf` (r:1 w:1) @@ -420,18 +390,48 @@ impl pallet_identity::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `Identity::AccountOfUsername` (r:1 w:1) - /// Proof: `Identity::AccountOfUsername` (`max_values`: None, `max_size`: Some(81), added: 2556, mode: `MaxEncodedLen`) - /// Storage: `Identity::IdentityOf` (r:1 w:0) - /// Proof: `Identity::IdentityOf` (`max_values`: None, `max_size`: Some(7572), added: 10047, mode: `MaxEncodedLen`) - fn remove_dangling_username() -> Weight { - // Proof Size summary in bytes: - // Measured: `98` - // Estimated: `11037` - // Minimum execution time: 22_602_000 picoseconds. - Weight::from_parts(23_560_000, 0) - .saturating_add(Weight::from_parts(0, 11037)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } + + fn unbind_username() -> Weight { + todo!() + } + + fn remove_username() -> Weight { + todo!() + } + + fn kill_username(p: u32, ) -> Weight { + todo!() + } + + fn migration_v2_authority_step() -> Weight { + todo!() + } + + fn migration_v2_username_step() -> Weight { + todo!() + } + + fn migration_v2_identity_step() -> Weight { + todo!() + } + + fn migration_v2_pending_username_step() -> Weight { + todo!() + } + + fn migration_v2_cleanup_authority_step() -> Weight { + todo!() + } + + fn migration_v2_cleanup_username_step() -> Weight { + todo!() + } + + fn set_username_for(p: u32, ) -> Weight { + todo!() + } + + fn remove_expired_approval(p: u32, ) -> Weight { + todo!() + } } diff --git a/runtime/src/weights/pallet_indices.rs b/runtime/src/weights/pallet_indices.rs index 636833419..c9319f81c 100644 --- a/runtime/src/weights/pallet_indices.rs +++ b/runtime/src/weights/pallet_indices.rs @@ -113,4 +113,8 @@ impl pallet_indices::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } + + fn poke_deposit() -> Weight { + todo!() + } } diff --git a/runtime/src/weights/pallet_proxy.rs b/runtime/src/weights/pallet_proxy.rs index 7ab3862fd..f45ab0aeb 100644 --- a/runtime/src/weights/pallet_proxy.rs +++ b/runtime/src/weights/pallet_proxy.rs @@ -224,4 +224,8 @@ impl pallet_proxy::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } + + fn poke_deposit() -> Weight { + todo!() + } } diff --git a/runtime/src/weights/pallet_scheduler.rs b/runtime/src/weights/pallet_scheduler.rs index f818398a3..a2a312b91 100644 --- a/runtime/src/weights/pallet_scheduler.rs +++ b/runtime/src/weights/pallet_scheduler.rs @@ -208,4 +208,24 @@ impl pallet_scheduler::WeightInfo for WeightInfo { .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } + + fn schedule_retry(s: u32, ) -> Weight { + todo!() + } + + fn set_retry() -> Weight { + todo!() + } + + fn set_retry_named() -> Weight { + todo!() + } + + fn cancel_retry() -> Weight { + todo!() + } + + fn cancel_retry_named() -> Weight { + todo!() + } } diff --git a/runtime/src/weights/pallet_staking.rs b/runtime/src/weights/pallet_staking.rs index 551b0afc1..83d697a27 100644 --- a/runtime/src/weights/pallet_staking.rs +++ b/runtime/src/weights/pallet_staking.rs @@ -797,4 +797,16 @@ impl pallet_staking::WeightInfo for WeightInfo { .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } + + fn restore_ledger() -> Weight { + todo!() + } + + fn migrate_currency() -> Weight { + todo!() + } + + fn manual_slash() -> Weight { + todo!() + } } diff --git a/runtime/src/weights/pallet_treasury.rs b/runtime/src/weights/pallet_treasury.rs index 892c0c3fd..fccb5cc64 100644 --- a/runtime/src/weights/pallet_treasury.rs +++ b/runtime/src/weights/pallet_treasury.rs @@ -58,51 +58,6 @@ impl pallet_treasury::WeightInfo for WeightInfo { Weight::from_parts(562_000, 0) .saturating_add(Weight::from_parts(0, 0)) } - /// Storage: `Treasury::ProposalCount` (r:1 w:1) - /// Proof: `Treasury::ProposalCount` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - /// Storage: `Treasury::Proposals` (r:0 w:1) - /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) - fn propose_spend() -> Weight { - // Proof Size summary in bytes: - // Measured: `107` - // Estimated: `1489` - // Minimum execution time: 53_767_000 picoseconds. - Weight::from_parts(57_525_000, 0) - .saturating_add(Weight::from_parts(0, 1489)) - .saturating_add(T::DbWeight::get().reads(1)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Treasury::Proposals` (r:1 w:1) - /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) - /// Storage: `System::Account` (r:1 w:1) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`) - fn reject_proposal() -> Weight { - // Proof Size summary in bytes: - // Measured: `265` - // Estimated: `3593` - // Minimum execution time: 77_894_000 picoseconds. - Weight::from_parts(81_487_000, 0) - .saturating_add(Weight::from_parts(0, 3593)) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(2)) - } - /// Storage: `Treasury::Proposals` (r:1 w:0) - /// Proof: `Treasury::Proposals` (`max_values`: None, `max_size`: Some(108), added: 2583, mode: `MaxEncodedLen`) - /// Storage: `Treasury::Approvals` (r:1 w:1) - /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) - /// The range of component `p` is `[0, 99]`. - fn approve_proposal(p: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `433 + p * (8 ±0)` - // Estimated: `3573` - // Minimum execution time: 18_082_000 picoseconds. - Weight::from_parts(25_950_503, 0) - .saturating_add(Weight::from_parts(0, 3573)) - // Standard Error: 3_438 - .saturating_add(Weight::from_parts(121_481, 0).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(2)) - .saturating_add(T::DbWeight::get().writes(1)) - } /// Storage: `Treasury::Approvals` (r:1 w:1) /// Proof: `Treasury::Approvals` (`max_values`: Some(1), `max_size`: Some(402), added: 897, mode: `MaxEncodedLen`) fn remove_approval() -> Weight { diff --git a/runtime/src/weights/pallet_utility.rs b/runtime/src/weights/pallet_utility.rs index dfdac3800..87c794dc2 100644 --- a/runtime/src/weights/pallet_utility.rs +++ b/runtime/src/weights/pallet_utility.rs @@ -110,4 +110,12 @@ impl pallet_utility::WeightInfo for WeightInfo { .saturating_add(Weight::from_parts(7_638_485, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) } + + fn dispatch_as_fallible() -> Weight { + todo!() + } + + fn if_else() -> Weight { + todo!() + } }