From 0c7d3734f9c4d52f39f03f2e81dcbe1d74abe65a Mon Sep 17 00:00:00 2001 From: Tadeo Hepperle <62739623+tadeohepperle@users.noreply.github.com> Date: Thu, 30 Nov 2023 14:54:41 +0100 Subject: [PATCH] Update substrate- and signer-related dependencies (#1297) * update crypto dependencies, adjust keypair * add scale_info::TypeInfo derive in some places * add multi signature derive --- Cargo.lock | 421 ++++++++++++++++++++--------- Cargo.toml | 24 +- signer/src/ecdsa.rs | 8 +- subxt/src/utils/account_id.rs | 1 + subxt/src/utils/era.rs | 1 + subxt/src/utils/multi_address.rs | 1 + subxt/src/utils/multi_signature.rs | 2 +- 7 files changed, 321 insertions(+), 137 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e0e3b31be9..337eca4cf8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -159,11 +159,140 @@ version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +[[package]] +name = "ark-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bls12-381" +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", +] + +[[package]] +name = "ark-ec" +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", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +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", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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 = "array-bytes" -version = "4.2.0" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" +checksum = "de17a919934ad8c5cc99a1a74de4e2dab95d6121a8f27f94755ff525b630382c" [[package]] name = "arrayref" @@ -432,6 +561,12 @@ version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "basic-toml" version = "0.1.7" @@ -466,6 +601,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ "bitcoin_hashes", + "rand 0.8.5", + "rand_core 0.6.4", "serde", "unicode-normalization", ] @@ -597,12 +734,6 @@ dependencies = [ "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.0" @@ -835,6 +966,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-oid" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -847,6 +984,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +[[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" @@ -1012,9 +1155,9 @@ dependencies = [ [[package]] name = "crypto-mac" -version = "0.11.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" dependencies = [ "generic-array 0.14.7", "subtle", @@ -1157,6 +1300,16 @@ dependencies = [ "syn 2.0.39", ] +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "derivative" version = "2.2.0" @@ -1243,33 +1396,27 @@ version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" -[[package]] -name = "ed25519" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" -dependencies = [ - "signature 1.6.4", -] - [[package]] name = "ed25519" version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "signature 2.2.0", + "pkcs8", + "signature", ] [[package]] name = "ed25519-dalek" -version = "1.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" dependencies = [ - "curve25519-dalek 3.2.0", - "ed25519 1.5.3", - "sha2 0.9.9", + "curve25519-dalek 4.1.1", + "ed25519", + "serde", + "sha2 0.10.8", + "subtle", "zeroize", ] @@ -1294,8 +1441,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ "curve25519-dalek 4.1.1", - "ed25519 2.2.3", - "hashbrown 0.14.3", + "ed25519", + "hashbrown 0.14.1", "hex", "rand_core 0.6.4", "sha2 0.10.8", @@ -1836,7 +1983,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "crypto-mac 0.11.1", + "crypto-mac 0.11.0", "digest 0.9.0", ] @@ -2697,16 +2844,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" dependencies = [ - "crypto-mac 0.11.1", -] - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", + "crypto-mac 0.11.0", ] [[package]] @@ -2767,6 +2905,16 @@ dependencies = [ "futures-io", ] +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "platforms" version = "3.2.0" @@ -3424,12 +3572,29 @@ dependencies = [ "curve25519-dalek-ng", "merlin 3.0.0", "rand_core 0.6.4", - "serde_bytes", "sha2 0.9.9", "subtle-ng", "zeroize", ] +[[package]] +name = "schnorrkel" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da18ffd9f2f5d01bc0b3050b37ce7728665f926b4dd1157fe3221b05737d924f" +dependencies = [ + "arrayref", + "arrayvec 0.7.4", + "curve25519-dalek 4.1.1", + "merlin 3.0.0", + "rand 0.8.5", + "rand_core 0.6.4", + "serde_bytes", + "sha2 0.10.8", + "subtle", + "zeroize", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -3457,11 +3622,11 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +checksum = "2acea373acb8c21ecb5a23741452acd2593ed44ee3d343e72baaa143bc89d0d5" dependencies = [ - "secp256k1-sys 0.8.1", + "secp256k1-sys 0.9.0", ] [[package]] @@ -3475,9 +3640,9 @@ dependencies = [ [[package]] name = "secp256k1-sys" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +checksum = "09e67c467c38fd24bd5499dc9a18183b31575c12ee549197e3e20d57aa4fe3b7" dependencies = [ "cc", ] @@ -3651,13 +3816,7 @@ dependencies = [ [[package]] name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" - -[[package]] -name = "signature" -version = "2.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" @@ -3711,7 +3870,7 @@ dependencies = [ "base64 0.21.5", "bip39", "blake2-rfc", - "bs58 0.5.0", + "bs58", "chacha20", "crossbeam-queue", "derive_more", @@ -3826,9 +3985,9 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "23.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899492ea547816d5dfe9a5a2ecc32f65a7110805af6da3380aa4902371b31dc2" +checksum = "23030de8eae0272c705cf3e2ce0523a64708a6b53aa23f3cf9053ca63abd08d7" dependencies = [ "parity-scale-codec", "scale-info", @@ -3840,9 +3999,9 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "16.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6020576e544c6824a51d651bc8df8e6ab67cd59f1c9ac09868bb81a5199ded" +checksum = "b9cf6e5c0c7c2e7be3a4a10af5316d2d40182915509a70f632a66c238a05c37b" dependencies = [ "integer-sqrt", "num-traits", @@ -3855,21 +4014,23 @@ dependencies = [ [[package]] name = "sp-core" -version = "21.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f18d9e2f67d8661f9729f35347069ac29d92758b59135176799db966947a7336" +checksum = "d0db34a19be2efa0398a9506a365392d93a85220856d55e0eb78165ad2e1bedc" dependencies = [ "array-bytes", + "bip39", "bitflags 1.3.2", "blake2", "bounded-collections", - "bs58 0.4.0", + "bs58", "dyn-clonable", "ed25519-zebra 3.1.0", "futures", "hash-db", "hash256-std-hasher", "impl-serde", + "itertools 0.10.5", "lazy_static", "libsecp256k1", "log", @@ -3894,30 +4055,30 @@ dependencies = [ "ss58-registry", "substrate-bip39", "thiserror", - "tiny-bip39", + "tracing", + "w3f-bls", "zeroize", ] [[package]] name = "sp-core-hashing" -version = "9.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee599a8399448e65197f9a6cee338ad192e9023e35e31f22382964c3c174c68" +checksum = "cb8524f01591ee58b46cd83c9dbc0fcffd2fd730dabec4f59326cd58a00f17e2" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", "sha2 0.10.8", "sha3", - "sp-std", "twox-hash", ] [[package]] name = "sp-debug-derive" -version = "8.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f531814d2f16995144c74428830ccf7d94ff4a7749632b83ad8199b181140c" +checksum = "50535e1a5708d3ba5c1195b59ebefac61cc8679c2c24716b87a86e8b7ed2e4a1" dependencies = [ "proc-macro2", "quote", @@ -3926,9 +4087,9 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.19.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0f71c671e01a8ca60da925d43a1b351b69626e268b8837f8371e320cf1dd100" +checksum = "884d05160bc89d0943d1c9fb8006c3d44b80f37f8af607aeff8d4d9cc82e279a" dependencies = [ "environmental", "parity-scale-codec", @@ -3938,14 +4099,12 @@ dependencies = [ [[package]] name = "sp-io" -version = "23.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d597e35a9628fe7454b08965b2442e3ec0f264b0a90d41328e87422cec02e99" +checksum = "301c0ce94f80b324465a6f6173183aa07b26bd71d67f94a44de1fd11dea4a7cb" dependencies = [ "bytes", - "ed25519 1.5.3", "ed25519-dalek", - "futures", "libsecp256k1", "log", "parity-scale-codec", @@ -3965,9 +4124,9 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "24.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4673405248580504a8bc4e09615ab25ccb182dfaccd27e000fda9dcb2ca1dab1" +checksum = "674ebf2c64039465e8d55d4d92cb079d2214932a4d101473e1fbded29e5488cc" dependencies = [ "lazy_static", "sp-core", @@ -3977,11 +4136,10 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.27.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be3cdd67cc1d9c1db17c5cbc4ec4924054a8437009d167f21f6590797e4aa45" +checksum = "1db18ab01b2684856904c973d2be7dbf9ab3607cf706a7bd6648812662e5e7c5" dependencies = [ - "futures", "parity-scale-codec", "parking_lot", "sp-core", @@ -3991,9 +4149,9 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "8.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd2de46003fa8212426838ca71cd42ee36a26480ba9ffea983506ce03131033" +checksum = "b00e40857ed3e0187f145b037c733545c5633859f1bd1d1b09deb52805fa696a" dependencies = [ "backtrace", "lazy_static", @@ -4002,9 +4160,9 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "24.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21c5bfc764a1a8259d7e8f7cfd22c84006275a512c958d3ff966c92151e134d5" +checksum = "082bae4a164b8b629ce9cee79ff3c6b20e66d11d8ef37398796567d616325da4" dependencies = [ "either", "hash256-std-hasher", @@ -4025,9 +4183,9 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "17.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e676128182f90015e916f806cba635c8141e341e7abbc45d25525472e1bbce8" +checksum = "695bba5d981a6fd3131b098d65f620601bd822501612bfb65897d4bb660762b1" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -4044,9 +4202,9 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "11.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d5bd5566fe5633ec48dfa35ab152fd29f8a577c21971e1c6db9f28afb9bbb9" +checksum = "9b2afcbd1bd18d323371111b66b7ac2870bdc1c86c3d7b0dae67b112ca52b4d8" dependencies = [ "Inflector", "proc-macro-crate", @@ -4057,9 +4215,9 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.28.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef45d31f9e7ac648f8899a0cd038a3608f8499028bff55b6c799702592325b6" +checksum = "df7c6680d9342c22c10d8272ebf9f0339b0e439b3e67b68f5627f9dfc6926a07" dependencies = [ "hash-db", "log", @@ -4074,19 +4232,20 @@ dependencies = [ "sp-trie", "thiserror", "tracing", + "trie-db", ] [[package]] name = "sp-std" -version = "8.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53458e3c57df53698b3401ec0934bea8e8cfce034816873c0b0abbd83d7bac0d" +checksum = "54c78c5a66682568cc7b153603c5d01a2cc8f5c221c7b1e921517a0eef18ae05" [[package]] name = "sp-storage" -version = "13.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94294be83f11d4958cfea89ed5798f0b6605f5defc3a996948848458abbcc18e" +checksum = "016f20812cc51bd479cc88d048c35d44cd3adde4accdb159d49d6050f2953595" dependencies = [ "impl-serde", "parity-scale-codec", @@ -4098,9 +4257,9 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "10.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357f7591980dd58305956d32f8f6646d0a8ea9ea0e7e868e46f53b68ddf00cec" +checksum = "0d727cb5265641ffbb7d4e42c18b63e29f6cfdbd240aae3bcf093c3d6eb29a19" dependencies = [ "parity-scale-codec", "sp-std", @@ -4111,9 +4270,9 @@ dependencies = [ [[package]] name = "sp-trie" -version = "22.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4eeb7ef23f79eba8609db79ef9cef242f994f1f87a3c0387b4b5f177fda74" +checksum = "a9c4bf89a5bd74f696cd1f23d83bb6abe6bd0abad1f3c70d4b0d7ebec4098cfe" dependencies = [ "ahash 0.8.6", "hash-db", @@ -4123,6 +4282,7 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot", + "rand 0.8.5", "scale-info", "schnellru", "sp-core", @@ -4135,9 +4295,9 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "14.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19c122609ca5d8246be6386888596320d03c7bc880959eaa2c36bcd5acd6846" +checksum = "d5d85813d46a22484cdf5e5afddbbe85442dd1b4d84d67a8c7792f92f9f93607" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -4149,9 +4309,9 @@ dependencies = [ [[package]] name = "sp-weights" -version = "20.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45d084c735544f70625b821c3acdbc7a2fc1893ca98b85f1942631284692c75b" +checksum = "1689f9594c2c4d09ede3d8a991a9eb900654e424fb00b62f2b370170af347acd" dependencies = [ "parity-scale-codec", "scale-info", @@ -4169,6 +4329,16 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "ss58-registry" version = "1.44.0" @@ -4243,9 +4413,9 @@ version = "0.32.1" [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "subtle-ng" @@ -4400,8 +4570,8 @@ dependencies = [ "parity-scale-codec", "pbkdf2 0.12.2", "regex", - "schnorrkel 0.10.2", - "secp256k1 0.27.0", + "schnorrkel 0.11.3", + "secp256k1 0.28.0", "secrecy", "sha2 0.10.8", "sp-core", @@ -4526,25 +4696,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tiny-bip39" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" -dependencies = [ - "anyhow", - "hmac 0.12.1", - "once_cell", - "pbkdf2 0.11.0", - "rand 0.8.5", - "rustc-hash", - "sha2 0.10.8", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", -] - [[package]] name = "tinytemplate" version = "1.2.1" @@ -4791,9 +4942,9 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" +checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" dependencies = [ "hash-db", "hashbrown 0.13.2", @@ -4948,6 +5099,30 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "w3f-bls" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7335e4c132c28cc43caef6adb339789e599e39adbe78da0c4d547fad48cbc331" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-serialize-derive", + "arrayref", + "constcat", + "digest 0.10.7", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "sha2 0.10.8", + "sha3", + "thiserror", + "zeroize", +] + [[package]] name = "wabt" version = "0.10.0" diff --git a/Cargo.toml b/Cargo.toml index 2740ca619a..289999fb0a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,13 @@ members = [ # We exclude any crates that would depend on non mutually # exclusive feature flags and thus can't compile with the # workspace: -exclude = ["testing/wasm-rpc-tests", "testing/wasm-lightclient-tests", "signer/wasm-tests", "examples/wasm-example", "examples/parachain-example"] +exclude = [ + "testing/wasm-rpc-tests", + "testing/wasm-lightclient-tests", + "signer/wasm-tests", + "examples/wasm-example", + "examples/parachain-example" +] resolver = "2" [workspace.package] @@ -35,7 +41,7 @@ async-trait = "0.1.74" assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } -blake2 = { version = "0.10.4", default-features = false } +blake2 = { version = "0.10.6", default-features = false } clap = { version = "4.4.8", features = ["derive", "cargo"] } criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false } @@ -95,10 +101,10 @@ instant = { version = "0.1.12", default-features = false } tokio-util = "0.7.10" # Substrate crates: -sp-core = { version = "21.0.0", default-features = false } -sp-core-hashing = { version = "9.0.0", default-features = false } -sp-runtime = "24.0.0" -sp-keyring = "24.0.0" +sp-core = { version = "26.0.0", default-features = false } +sp-core-hashing = { version = "13.0.0", default-features = false } +sp-runtime = "29.0.0" +sp-keyring = "29.0.0" # Subxt workspace crates: subxt = { version = "0.32.1", path = "subxt", default-features = false } @@ -114,8 +120,8 @@ substrate-runner = { path = "testing/substrate-runner" } bip39 = "2.0.0" hmac = "0.12.1" pbkdf2 = { version = "0.12.2", default-features = false } -schnorrkel = "0.10.2" -secp256k1 = "0.27.0" +schnorrkel = "0.11.3" +secp256k1 = "0.28.0" secrecy = "0.8.0" -sha2 = "0.10.6" +sha2 = "0.10.8" zeroize = { version = "1", default-features = false } diff --git a/signer/src/ecdsa.rs b/signer/src/ecdsa.rs index e5b0900512..a76054abf1 100644 --- a/signer/src/ecdsa.rs +++ b/signer/src/ecdsa.rs @@ -38,7 +38,7 @@ impl AsRef<[u8]> for PublicKey { /// An ecdsa keypair implementation. #[derive(Debug, Clone)] -pub struct Keypair(pub secp256k1::KeyPair); +pub struct Keypair(pub secp256k1::Keypair); impl Keypair { /// Create an ecdsa keypair from a [`SecretUri`]. See the [`SecretUri`] docs for more. @@ -108,7 +108,7 @@ impl Keypair { /// This will only be secure if the seed is secure! pub fn from_seed(seed: Seed) -> Result { let secret = SecretKey::from_slice(&seed).map_err(|_| Error::InvalidSeed)?; - Ok(Self(secp256k1::KeyPair::from_secret_key( + Ok(Self(secp256k1::Keypair::from_secret_key( SECP256K1, &secret, ))) } @@ -159,7 +159,7 @@ impl Keypair { // From sp_core::ecdsa::sign: let message_hash = sp_core_hashing::blake2_256(message); // From sp_core::ecdsa::sign_prehashed: - let wrapped = Message::from_slice(&message_hash).expect("Message is 32 bytes; qed"); + let wrapped = Message::from_digest_slice(&message_hash).expect("Message is 32 bytes; qed"); let recsig: RecoverableSignature = SECP256K1.sign_ecdsa_recoverable(&wrapped, &self.0.secret_key()); // From sp_core::ecdsa's `impl From for Signature`: @@ -191,7 +191,7 @@ pub fn verify>(sig: &Signature, message: M, pubkey: &PublicKey) - return false; }; let message_hash = sp_core_hashing::blake2_256(message.as_ref()); - let wrapped = Message::from_slice(&message_hash).expect("Message is 32 bytes; qed"); + let wrapped = Message::from_digest_slice(&message_hash).expect("Message is 32 bytes; qed"); signature.verify(&wrapped, &public).is_ok() } diff --git a/subxt/src/utils/account_id.rs b/subxt/src/utils/account_id.rs index 73a3b9e105..faa3dbbd4d 100644 --- a/subxt/src/utils/account_id.rs +++ b/subxt/src/utils/account_id.rs @@ -23,6 +23,7 @@ use serde::{Deserialize, Serialize}; Debug, scale_encode::EncodeAsType, scale_decode::DecodeAsType, + scale_info::TypeInfo, )] pub struct AccountId32(pub [u8; 32]); diff --git a/subxt/src/utils/era.rs b/subxt/src/utils/era.rs index a01950724a..c98ebe58f6 100644 --- a/subxt/src/utils/era.rs +++ b/subxt/src/utils/era.rs @@ -18,6 +18,7 @@ use scale_encode::EncodeAsType; serde::Deserialize, DecodeAsType, EncodeAsType, + scale_info::TypeInfo, )] pub enum Era { /// The transaction is valid forever. The genesis hash must be present in the signed content. diff --git a/subxt/src/utils/multi_address.rs b/subxt/src/utils/multi_address.rs index 6e557db696..9b1e556fa9 100644 --- a/subxt/src/utils/multi_address.rs +++ b/subxt/src/utils/multi_address.rs @@ -22,6 +22,7 @@ use codec::{Decode, Encode}; Debug, scale_encode::EncodeAsType, scale_decode::DecodeAsType, + scale_info::TypeInfo, )] pub enum MultiAddress { /// It's an account ID (pubkey). diff --git a/subxt/src/utils/multi_signature.rs b/subxt/src/utils/multi_signature.rs index 94bdf028d3..4ed9ea4bd5 100644 --- a/subxt/src/utils/multi_signature.rs +++ b/subxt/src/utils/multi_signature.rs @@ -10,7 +10,7 @@ use codec::{Decode, Encode}; /// Signature container that can store known signature types. This is a simplified version of /// `sp_runtime::MultiSignature`. To obtain more functionality, convert this into that type. -#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, Debug)] +#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, Debug, scale_info::TypeInfo)] pub enum MultiSignature { /// An Ed25519 signature. Ed25519([u8; 64]),