diff --git a/.github/actions/install_toolchain/action.yml b/.github/actions/install_toolchain/action.yml index fe5b71be..af503a2c 100644 --- a/.github/actions/install_toolchain/action.yml +++ b/.github/actions/install_toolchain/action.yml @@ -9,9 +9,9 @@ runs: - name: Install latest nightly uses: actions-rs/toolchain@v1 with: - toolchain: 1.74.0 + toolchain: 1.79.0 override: true target: wasm32-unknown-unknown components: rustfmt - - run: sudo apt update && sudo apt-get install build-essential cmake pkg-config libssl-dev git llvm clang libclang-dev protobuf-compiler -y + - run: sudo apt update && sudo apt-get install build-essential cmake pkg-config libssl-dev git llvm clang libclang-dev protobuf-compiler -y && rustup component add rust-src shell: bash diff --git a/Cargo.lock b/Cargo.lock index 987445a1..574e722e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,11 +23,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ - "gimli 0.28.1", + "gimli 0.29.0", ] [[package]] @@ -53,7 +53,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] @@ -65,10 +65,10 @@ checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ "aead", "aes", - "cipher", + "cipher 0.4.4", "ctr", "ghash", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -77,38 +77,38 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.15", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.12", + "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "always-assert" @@ -142,47 +142,48 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -190,9 +191,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "approx" @@ -205,16 +206,39 @@ dependencies = [ [[package]] name = "aquamarine" -version = "0.3.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" +checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.72", +] + +[[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-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-models-ext", + "ark-std", ] [[package]] @@ -229,6 +253,45 @@ dependencies = [ "ark-std", ] +[[package]] +name = "ark-bls12-381-ext" +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", +] + +[[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", + "ark-ff", + "ark-std", +] + +[[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", + "ark-ff", + "ark-models-ext", + "ark-std", +] + [[package]] name = "ark-ec" version = "0.4.2" @@ -243,9 +306,35 @@ 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", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" +dependencies = [ + "ark-ec", + "ark-ed-on-bls12-377", + "ark-ff", + "ark-models-ext", + "ark-std", +] + [[package]] name = "ark-ed-on-bls12-381-bandersnatch" version = "0.4.0" @@ -258,6 +347,19 @@ dependencies = [ "ark-std", ] +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch-ext" +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", +] + [[package]] name = "ark-ff" version = "0.4.2" @@ -301,6 +403,19 @@ dependencies = [ "syn 1.0.109", ] +[[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", + "derivative", +] + [[package]] name = "ark-poly" version = "0.4.2" @@ -316,21 +431,22 @@ dependencies = [ [[package]] name = "ark-scale" -version = "0.0.10" +version = "0.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b08346a3e38e2be792ef53ee168623c9244d968ff00cd70fb9932f6fe36393" +checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" dependencies = [ "ark-ec", "ark-ff", "ark-serialize", "ark-std", "parity-scale-codec", + "scale-info", ] [[package]] name = "ark-secret-scalar" version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=f4fe253#f4fe2534ccc6d916cd10d9c16891e673728ec8b4" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-ec", "ark-ff", @@ -338,7 +454,7 @@ dependencies = [ "ark-std", "ark-transcript", "digest 0.10.7", - "rand_core 0.6.4", + "getrandom_or_panic", "zeroize", ] @@ -372,13 +488,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", + "rayon", ] [[package]] name = "ark-transcript" version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=f4fe253#f4fe2534ccc6d916cd10d9c16891e673728ec8b4" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-ff", "ark-serialize", @@ -390,15 +507,21 @@ dependencies = [ [[package]] name = "array-bytes" -version = "6.2.2" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" + +[[package]] +name = "array-bytes" +version = "6.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" +checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" [[package]] name = "arrayvec" @@ -409,12 +532,6 @@ dependencies = [ "nodrop", ] -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.4" @@ -446,7 +563,7 @@ dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -479,28 +596,26 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 5.0.0", - "event-listener-strategy 0.5.0", + "event-listener-strategy", "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" dependencies = [ - "async-lock 3.3.0", "async-task", "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.2.0", + "fastrand 2.1.0", + "futures-lite 2.3.0", "slab", ] @@ -538,18 +653,18 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.1" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65" +checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" dependencies = [ - "async-lock 3.3.0", + "async-lock 3.4.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.2.0", + "futures-lite 2.3.0", "parking", - "polling 3.4.0", - "rustix 0.38.31", + "polling 3.7.2", + "rustix 0.38.34", "slab", "tracing", "windows-sys 0.52.0", @@ -566,13 +681,13 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", - "pin-project-lite 0.2.13", + "event-listener 5.3.1", + "event-listener-strategy", + "pin-project-lite 0.2.14", ] [[package]] @@ -599,54 +714,43 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.31", + "rustix 0.38.34", "windows-sys 0.48.0", ] -[[package]] -name = "async-recursion" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - [[package]] name = "async-signal" -version = "0.2.5" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32" dependencies = [ - "async-io 2.3.1", - "async-lock 2.8.0", + "async-io 2.3.3", + "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.31", + "rustix 0.38.34", "signal-hook-registry", "slab", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "async-task" -version = "4.7.0" +version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -659,7 +763,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -674,22 +778,11 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "az" @@ -699,23 +792,23 @@ checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ - "addr2line 0.21.0", + "addr2line 0.22.0", "cc", "cfg-if", "libc", "miniz_oxide", - "object 0.32.2", + "object 0.36.2", "rustc-demangle", ] [[package]] name = "bandersnatch_vrfs" -version = "0.0.1" -source = "git+https://github.com/w3f/ring-vrf?rev=f4fe253#f4fe2534ccc6d916cd10d9c16891e673728ec8b4" +version = "0.0.4" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-bls12-381", "ark-ec", @@ -725,11 +818,13 @@ dependencies = [ "ark-std", "dleq_vrf", "fflonk", - "merlin 3.0.0", + "merlin", "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", ] @@ -774,8 +869,8 @@ dependencies = [ [[package]] name = "binary-merkle-tree" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "hash-db", "log", @@ -802,13 +897,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.16", + "prettyplease 0.2.20", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -818,6 +913,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ "bitcoin_hashes", + "rand", + "rand_core 0.6.4", + "serde", + "unicode-normalization", ] [[package]] @@ -834,9 +933,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitvec" @@ -846,10 +945,23 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty 2.0.0", "radium", + "serde", "tap", "wyz", ] +[[package]] +name = "blake2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" +dependencies = [ + "byte-tools", + "crypto-mac 0.7.0", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + [[package]] name = "blake2" version = "0.10.6" @@ -893,9 +1005,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.0" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" dependencies = [ "arrayref", "arrayvec 0.7.4", @@ -904,18 +1016,6 @@ dependencies = [ "constant_time_eq 0.3.0", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -934,29 +1034,17 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", -] - [[package]] name = "blocking" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel 2.2.0", - "async-lock 3.3.0", + "async-channel 2.3.1", "async-task", - "fastrand 2.0.1", "futures-io", - "futures-lite 2.2.0", + "futures-lite 2.3.0", "piper", - "tracing", ] [[package]] @@ -971,6 +1059,18 @@ dependencies = [ "serde", ] +[[package]] +name = "bounded-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "serde", +] + [[package]] name = "bounded-vec" version = "0.7.1" @@ -980,6 +1080,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bp-xcm-bridge-hub-router" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", +] + [[package]] name = "bs58" version = "0.4.0" @@ -988,23 +1099,13 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "tinyvec", ] -[[package]] -name = "bstr" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "build-helper" version = "0.1.1" @@ -1016,9 +1117,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -1034,9 +1135,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.14.3" +version = "1.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" +checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83" [[package]] name = "byteorder" @@ -1046,9 +1147,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "fca2be1d5c43812bae364ee3f30b3afcb7877cf59f4aeb94c66f313a41d2fac9" [[package]] name = "bzip2-sys" @@ -1061,20 +1162,30 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "c2-chacha" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27dae93fe7b1e0424dc57179ac396908c26b035a87234809f5c4dfd1b47dc80" +dependencies = [ + "cipher 0.2.5", + "ppv-lite86", +] + [[package]] name = "camino" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ "serde", ] @@ -1087,7 +1198,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.21", + "semver 1.0.23", "serde", "serde_json", "thiserror", @@ -1095,9 +1206,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" dependencies = [ "jobserver", "libc", @@ -1114,9 +1225,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", ] @@ -1133,6 +1244,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "chacha" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddf3c081b5fba1e5615640aae998e0fbd10c24cbd897ee39ed754a77601a4862" +dependencies = [ + "byteorder", + "keystream", +] + [[package]] name = "chacha20" version = "0.9.1" @@ -1140,7 +1261,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] @@ -1152,23 +1273,23 @@ checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20", - "cipher", + "cipher 0.4.4", "poly1305", "zeroize", ] [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.6", ] [[package]] @@ -1179,11 +1300,20 @@ checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" dependencies = [ "core2", "multibase", - "multihash", + "multihash 0.17.0", "serde", "unsigned-varint", ] +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "cipher" version = "0.4.4" @@ -1206,9 +1336,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", @@ -1217,9 +1347,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.0" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -1227,33 +1357,34 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.0" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", "clap_lex", "strsim", + "terminal_size", ] [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "coarsetime" @@ -1278,46 +1409,46 @@ dependencies = [ [[package]] name = "color-print" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a858372ff14bab9b1b30ea504f2a4bc534582aee3e42ba2d41d2a7baba63d5d" +checksum = "1ee543c60ff3888934877a5671f45494dd27ed4ba25c6670b9a7576b7ed7a8c0" dependencies = [ "color-print-proc-macro", ] [[package]] name = "color-print-proc-macro" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e37866456a721d0a404439a1adae37a31be4e0055590d053dfe6981e05003f" +checksum = "77ff1a80c5f3cb1ca7c06ffdd71b6a6dd6d8f896c42141fbd43f50ed28dcdb93" dependencies = [ "nom", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.72", ] [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "comfy-table" -version = "7.1.0" +version = "7.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686" +checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" dependencies = [ - "strum 0.25.0", - "strum_macros 0.25.3", + "strum 0.26.3", + "strum_macros 0.26.4", "unicode-width", ] [[package]] name = "common" version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof?rev=8657210#86572101f4210647984ab4efedba6b3fcc890895" +source = "git+https://github.com/w3f/ring-proof#665f5f51af5734c7b6d90b985dd6861d4c5b4752" dependencies = [ "ark-ec", "ark-ff", @@ -1325,7 +1456,8 @@ dependencies = [ "ark-serialize", "ark-std", "fflonk", - "merlin 3.0.0", + "getrandom_or_panic", + "merlin", "rand_chacha 0.3.1", ] @@ -1337,9 +1469,9 @@ checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -1365,9 +1497,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -1378,7 +1510,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.15", "once_cell", "tiny-keccak", ] @@ -1395,6 +1527,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" @@ -1554,9 +1692,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] @@ -1591,9 +1729,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -1609,7 +1747,7 @@ checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -1624,6 +1762,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.4", + "subtle 1.0.0", +] + [[package]] name = "crypto-mac" version = "0.8.0" @@ -1631,7 +1779,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1641,7 +1789,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ "generic-array 0.14.7", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1650,13 +1798,13 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] name = "cumulus-client-cli" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "clap", "parity-scale-codec", @@ -1664,6 +1812,7 @@ dependencies = [ "sc-cli", "sc-client-api", "sc-service", + "sp-blockchain", "sp-core", "sp-runtime", "url", @@ -1671,15 +1820,15 @@ dependencies = [ [[package]] name = "cumulus-client-collator" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", "futures", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", @@ -1694,16 +1843,16 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", "cumulus-primitives-aura", "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", "futures", "parity-scale-codec", @@ -1736,8 +1885,8 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1765,8 +1914,8 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "anyhow", "async-trait", @@ -1780,15 +1929,15 @@ dependencies = [ [[package]] name = "cumulus-client-network" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "cumulus-relay-chain-interface", "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-parachain-primitives", "polkadot-primitives", @@ -1802,9 +1951,33 @@ dependencies = [ ] [[package]] -name = "cumulus-client-pov-recovery" +name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "cumulus-test-relay-sproof-builder", + "parity-scale-codec", + "sc-client-api", + "scale-info", + "sp-api", + "sp-crypto-hashing", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-trie", + "tracing", +] + +[[package]] +name = "cumulus-client-pov-recovery" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1816,7 +1989,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-client-api", "sc-consensus", "sp-consensus", @@ -1827,8 +2000,8 @@ dependencies = [ [[package]] name = "cumulus-client-service" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1836,6 +2009,7 @@ dependencies = [ "cumulus-client-network", "cumulus-client-pov-recovery", "cumulus-primitives-core", + "cumulus-primitives-proof-size-hostfunction", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", @@ -1862,8 +2036,8 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -1875,15 +2049,16 @@ dependencies = [ "sp-application-crypto", "sp-consensus-aura", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "cumulus-pallet-dmp-queue" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "cumulus-primitives-core", + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -1891,34 +2066,38 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", ] [[package]] name = "cumulus-pallet-parachain-system" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", + "cumulus-primitives-proof-size-hostfunction", "environmental", + "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", "log", + "pallet-message-queue", "parity-scale-codec", "polkadot-parachain-primitives", + "polkadot-runtime-parachains", "scale-info", "sp-core", - "sp-externalities", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-inherents", "sp-io", "sp-runtime", "sp-state-machine", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", "sp-version", "staging-xcm", @@ -1927,19 +2106,19 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "cumulus-pallet-session-benchmarking" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "9.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -1947,13 +2126,13 @@ dependencies = [ "pallet-session", "parity-scale-codec", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "cumulus-pallet-xcm" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1962,35 +2141,39 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "bounded-collections 0.2.0", + "bp-xcm-bridge-hub-router", "cumulus-primitives-core", "frame-benchmarking", "frame-support", "frame-system", "log", + "pallet-message-queue", "parity-scale-codec", "polkadot-runtime-common", - "rand_chacha 0.3.1", + "polkadot-runtime-parachains", "scale-info", + "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-executor", ] [[package]] name = "cumulus-primitives-aura" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -1998,13 +2181,13 @@ dependencies = [ "sp-api", "sp-consensus-aura", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "cumulus-primitives-core" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2013,47 +2196,52 @@ dependencies = [ "scale-info", "sp-api", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", "staging-xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "sc-client-api", "scale-info", - "sp-api", "sp-core", "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-storage", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-trie", +] + +[[package]] +name = "cumulus-primitives-proof-size-hostfunction" +version = "0.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", - "tracing", ] [[package]] name = "cumulus-primitives-utility" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "cumulus-primitives-core", "frame-support", "log", + "pallet-asset-conversion", + "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-runtime-common", + "polkadot-runtime-parachains", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2061,8 +2249,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2085,8 +2273,8 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2103,43 +2291,49 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", + "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", "polkadot-core-primitives", "polkadot-network-bridge", "polkadot-node-collation-generation", + "polkadot-node-core-chain-api", + "polkadot-node-core-prospective-parachains", "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", "sc-authority-discovery", + "sc-client-api", "sc-network", "sc-network-common", "sc-service", "sc-tracing", "sc-utils", - "schnellru", "sp-api", + "sp-blockchain", "sp-consensus", "sp-consensus-babe", "sp-runtime", + "substrate-prometheus-endpoint", + "tokio", "tracing", ] [[package]] name = "cumulus-relay-chain-rpc-interface" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2151,7 +2345,7 @@ dependencies = [ "parity-scale-codec", "pin-project", "polkadot-overseer", - "rand 0.8.5", + "rand", "sc-client-api", "sc-rpc-api", "sc-service", @@ -2166,7 +2360,8 @@ dependencies = [ "sp-core", "sp-runtime", "sp-state-machine", - "sp-storage", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-version", "thiserror", "tokio", "tokio-util", @@ -2176,31 +2371,18 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", "sp-runtime", "sp-state-machine", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", ] -[[package]] -name = "curve25519-dalek" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle", - "zeroize", -] - [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -2210,24 +2392,23 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle", + "subtle 2.4.1", "zeroize", ] [[package]] name = "curve25519-dalek" -version = "4.1.2" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "platforms", "rustc_version 0.4.0", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -2239,7 +2420,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -2257,9 +2438,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.116" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aff472b83efd22bfc0176aa8ba34617dd5c17364670eb201a5f06d339b8abf7" +checksum = "273dcfd3acd4e1e276af13ed2a43eea7001318823e7a726a6b3ed39b4acc0b82" dependencies = [ "cc", "cxxbridge-flags", @@ -2269,9 +2450,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.116" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf6e7a52c19013a9a0ec421c7d9c2d1125faf333551227e0a017288d71b47c3" +checksum = "d8b2766fbd92be34e9ed143898fce6c572dc009de39506ed6903e5a05b68914e" dependencies = [ "cc", "codespan-reporting", @@ -2279,37 +2460,37 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "cxxbridge-flags" -version = "1.0.116" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589e83d02fc1d4fb78f5ad56ca08835341e23499d086d2821315869426d618dc" +checksum = "839fcd5e43464614ffaa989eaf1c139ef1f0c51672a1ed08023307fa1b909ccd" [[package]] name = "cxxbridge-macro" -version = "1.0.116" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2cb1fd8ffae4230c7cfbbaf3698dbeaf750fa8c5dadf7ed897df581b9b572a5" +checksum = "4b2c1c1776b986979be68bb2285da855f8d8a35851a769fca8740df7c3d07877" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "data-encoding-macro" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2317,9 +2498,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" dependencies = [ "data-encoding", "syn 1.0.109", @@ -2327,9 +2508,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", @@ -2380,17 +2561,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version 0.4.0", - "syn 1.0.109", + "syn 2.0.72", ] [[package]] @@ -2426,7 +2618,7 @@ dependencies = [ "block-buffer 0.10.4", "const-oid", "crypto-common", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -2473,19 +2665,19 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "dleq_vrf" version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=f4fe253#f4fe2534ccc6d916cd10d9c16891e673728ec8b4" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" dependencies = [ "ark-ec", "ark-ff", @@ -2495,34 +2687,33 @@ dependencies = [ "ark-std", "ark-transcript", "arrayvec 0.7.4", - "rand_core 0.6.4", "zeroize", ] [[package]] name = "docify" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63fa215f3a0d40fb2a221b3aa90d8e1fbb8379785a990cb60d62ac71ebdc6460" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" dependencies = [ "common-path", - "derive-syn-parse", + "derive-syn-parse 0.2.0", "once_cell", "proc-macro2", "quote", "regex", - "syn 2.0.48", + "syn 2.0.72", "termcolor", - "toml 0.8.2", + "toml 0.8.19", "walkdir", ] @@ -2534,9 +2725,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dtoa" @@ -2567,9 +2758,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" @@ -2601,12 +2792,12 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "curve25519-dalek 4.1.2", + "curve25519-dalek 4.1.3", "ed25519", "rand_core 0.6.4", "serde", "sha2 0.10.8", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -2630,9 +2821,9 @@ version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ - "curve25519-dalek 4.1.2", + "curve25519-dalek 4.1.3", "ed25519", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "rand_core 0.6.4", "sha2 0.10.8", @@ -2641,9 +2832,9 @@ dependencies = [ [[package]] name = "either" -version = "1.10.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "elliptic-curve" @@ -2660,7 +2851,7 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -2676,7 +2867,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "syn 1.0.109", @@ -2684,46 +2875,33 @@ dependencies = [ [[package]] name = "enumflags2" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "enumn" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", -] - -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", + "syn 2.0.72", ] [[package]] @@ -2753,9 +2931,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2812,49 +2990,28 @@ checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", -] - -[[package]] -name = "event-listener" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "event-listener" -version = "5.0.0" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", -] - -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "event-listener-strategy" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.0.0", - "pin-project-lite 0.2.13", + "event-listener 5.3.1", + "pin-project-lite 0.2.14", ] [[package]] @@ -2880,23 +3037,19 @@ dependencies = [ [[package]] name = "expander" -version = "2.0.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" dependencies = [ - "blake2", + "blake2 0.10.6", + "file-guard", "fs-err", + "prettyplease 0.2.20", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -2914,9 +3067,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "fatality" @@ -2936,7 +3089,7 @@ checksum = "f5aa1e3ae159e592ad222dc90c5acbad632b527779ba88486abe92782ab268bd" dependencies = [ "expander 0.0.4", "indexmap 1.9.3", - "proc-macro-crate 1.3.1", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn 1.0.109", @@ -2945,11 +3098,12 @@ dependencies = [ [[package]] name = "fdlimit" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", + "thiserror", ] [[package]] @@ -2959,7 +3113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -2972,14 +3126,24 @@ dependencies = [ "ark-poly", "ark-serialize", "ark-std", - "merlin 3.0.0", + "merlin", ] [[package]] name = "fiat-crypto" -version = "0.2.6" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "file-guard" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" +dependencies = [ + "libc", + "winapi", +] [[package]] name = "file-per-thread-logger" @@ -2987,7 +3151,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" dependencies = [ - "env_logger 0.10.2", + "env_logger", "log", ] @@ -3015,15 +3179,15 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "scale-info", ] [[package]] name = "fixed" -version = "1.25.1" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e29e5681dc8556fb9df1409e95eae050e12e8776394313da3546dcb8cf390c73" +checksum = "85c6e0b89bf864acd20590dbdbad56f69aeb898abfc9443008fd7bd48b2cc85a" dependencies = [ "az", "bytemuck", @@ -3038,7 +3202,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -3051,9 +3215,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "libz-sys", @@ -3077,8 +3241,8 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "12.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", ] @@ -3100,8 +3264,8 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-support-procedural", @@ -3117,19 +3281,19 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-runtime-interface", - "sp-std", - "sp-storage", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "static_assertions", ] [[package]] name = "frame-benchmarking-cli" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "32.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "Inflector", - "array-bytes", + "array-bytes 6.2.3", "chrono", "clap", "comfy-table", @@ -3143,7 +3307,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "rand 0.8.5", + "rand", "rand_pcg", "sc-block-builder", "sc-cli", @@ -3158,34 +3322,34 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-database", - "sp-externalities", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-inherents", "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", - "sp-storage", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", - "sp-wasm-interface", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", "thousands", ] [[package]] name = "frame-election-provider-solution-type" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "frame-election-provider-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3196,13 +3360,13 @@ dependencies = [ "sp-core", "sp-npos-elections", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "frame-executive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-system", @@ -3213,8 +3377,8 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", - "sp-tracing", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -3229,12 +3393,26 @@ dependencies = [ "serde", ] +[[package]] +name = "frame-metadata-hash-extension" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "array-bytes 6.2.3", + "docify", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", +] + [[package]] name = "frame-remote-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "async-recursion", "futures", "indicatif", "jsonrpsee", @@ -3242,6 +3420,7 @@ dependencies = [ "parity-scale-codec", "serde", "sp-core", + "sp-crypto-hashing", "sp-io", "sp-runtime", "sp-state-machine", @@ -3253,10 +3432,11 @@ dependencies = [ [[package]] name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "aquamarine", + "array-bytes 6.2.3", "bitflags 1.3.2", "docify", "environmental", @@ -3275,8 +3455,8 @@ dependencies = [ "sp-api", "sp-arithmetic", "sp-core", - "sp-core-hashing-proc-macro", - "sp-debug-derive", + "sp-crypto-hashing-proc-macro", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-genesis-builder", "sp-inherents", "sp-io", @@ -3284,8 +3464,8 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-state-machine", - "sp-std", - "sp-tracing", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-weights", "static_assertions", "tt-call", @@ -3293,50 +3473,52 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse", - "expander 2.0.0", + "derive-syn-parse 0.1.5", + "expander 2.2.1", "frame-support-procedural-tools", "itertools 0.10.5", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.48", + "sp-crypto-hashing", + "syn 2.0.72", ] [[package]] name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "cfg-if", + "docify", "frame-support", "log", "parity-scale-codec", @@ -3345,15 +3527,15 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-version", "sp-weights", ] [[package]] name = "frame-system-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -3362,13 +3544,13 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "frame-system-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "sp-api", @@ -3376,14 +3558,14 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "parity-scale-codec", "sp-api", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -3407,11 +3589,11 @@ dependencies = [ [[package]] name = "fs4" -version = "0.6.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" +checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.34", "windows-sys 0.48.0", ] @@ -3487,21 +3669,21 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "waker-fn", ] [[package]] name = "futures-lite" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.0.1", + "fastrand 2.1.0", "futures-core", "futures-io", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -3512,7 +3694,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -3540,9 +3722,9 @@ checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" @@ -3557,7 +3739,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "pin-utils", "slab", ] @@ -3614,22 +3796,32 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] +[[package]] +name = "getrandom_or_panic" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" +dependencies = [ + "rand", + "rand_core 0.6.4", +] + [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "polyval", ] @@ -3646,9 +3838,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "glob" @@ -3656,19 +3848,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "globset" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", -] - [[package]] name = "group" version = "0.13.0" @@ -3677,14 +3856,14 @@ checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", "rand_core 0.6.4", - "subtle", + "subtle 2.4.1", ] [[package]] name = "h2" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -3692,7 +3871,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.3", + "indexmap 2.3.0", "slab", "tokio", "tokio-util", @@ -3701,9 +3880,9 @@ dependencies = [ [[package]] name = "half" -version = "2.3.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" dependencies = [ "cfg-if", "crunchy", @@ -3753,20 +3932,29 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.11", ] [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.11", "allocator-api2", "serde", ] +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown 0.14.5", +] + [[package]] name = "heck" version = "0.4.1" @@ -3774,19 +3962,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hex" @@ -3877,9 +4068,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -3894,7 +4085,7 @@ checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -3905,9 +4096,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -3923,9 +4114,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.28" +version = "0.14.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" dependencies = [ "bytes", "futures-channel", @@ -3937,8 +4128,8 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.13", - "socket2 0.5.5", + "pin-project-lite 0.2.14", + "socket2 0.5.7", "tokio", "tower-service", "tracing", @@ -3955,11 +4146,10 @@ dependencies = [ "http", "hyper", "log", - "rustls 0.21.10", + "rustls 0.21.12", "rustls-native-certs", "tokio", "tokio-rustls", - "webpki-roots 0.25.4", ] [[package]] @@ -4022,7 +4212,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io 2.3.1", + "async-io 2.3.3", "core-foundation", "fnv", "futures", @@ -4066,18 +4256,18 @@ dependencies = [ [[package]] name = "include_dir" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" dependencies = [ "include_dir_macros", ] [[package]] name = "include_dir_macros" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" dependencies = [ "proc-macro2", "quote", @@ -4096,12 +4286,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.3" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -4134,9 +4324,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -4162,7 +4352,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.6", + "hermit-abi 0.3.9", "libc", "windows-sys 0.48.0", ] @@ -4179,7 +4369,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.5", + "socket2 0.5.7", "widestring", "windows-sys 0.48.0", "winreg", @@ -4197,7 +4387,7 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi 0.3.6", + "hermit-abi 0.3.9", "libc", "windows-sys 0.52.0", ] @@ -4211,6 +4401,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.10.5" @@ -4229,35 +4425,44 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.28" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpsee" -version = "0.16.3" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367a292944c07385839818bb71c8d76611138e2dedb0677d035b8da21d29c78b" +checksum = "affdc52f7596ccb2d7645231fc6163bb314630c989b64998f3699a28b4d5d4dc" dependencies = [ "jsonrpsee-core", "jsonrpsee-http-client", @@ -4265,19 +4470,19 @@ dependencies = [ "jsonrpsee-server", "jsonrpsee-types", "jsonrpsee-ws-client", + "tokio", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.16.3" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8b3815d9f5d5de348e5f162b316dc9cdf4548305ebb15b4eb9328e66cf27d7a" +checksum = "b5b005c793122d03217da09af68ba9383363caa950b90d3436106df8cabce935" dependencies = [ "futures-util", "http", "jsonrpsee-core", - "jsonrpsee-types", "pin-project", "rustls-native-certs", "soketto", @@ -4286,28 +4491,25 @@ dependencies = [ "tokio-rustls", "tokio-util", "tracing", - "webpki-roots 0.25.4", + "url", ] [[package]] name = "jsonrpsee-core" -version = "0.16.3" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5dde66c53d6dcdc8caea1874a45632ec0fcf5b437789f1e45766a1512ce803" +checksum = "da2327ba8df2fdbd5e897e2b5ed25ce7f299d345b9736b6828814c3dbd1fd47b" dependencies = [ "anyhow", - "arrayvec 0.7.4", "async-lock 2.8.0", "async-trait", "beef", - "futures-channel", "futures-timer", "futures-util", - "globset", "hyper", "jsonrpsee-types", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "rustc-hash", "serde", "serde_json", @@ -4319,31 +4521,32 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.16.3" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5f9fabdd5d79344728521bb65e3106b49ec405a78b66fbff073b72b389fa43" +checksum = "5f80c17f62c7653ce767e3d7288b793dfec920f97067ceb189ebdd3570f2bc20" dependencies = [ "async-trait", "hyper", "hyper-rustls", "jsonrpsee-core", "jsonrpsee-types", - "rustc-hash", "serde", "serde_json", "thiserror", "tokio", + "tower", "tracing", + "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.16.3" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a" +checksum = "29110019693a4fa2dbda04876499d098fa16d70eba06b1e6e2b3f1b251419515" dependencies = [ - "heck", - "proc-macro-crate 1.3.1", + "heck 0.4.1", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn 1.0.109", @@ -4351,19 +4554,20 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.16.3" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4d945a6008c9b03db3354fb3c83ee02d2faa9f2e755ec1dfb69c3551b8f4ba" +checksum = "82c39a00449c9ef3f50b84fc00fc4acba20ef8f559f07902244abf4c15c5ab9c" dependencies = [ - "futures-channel", "futures-util", "http", "hyper", "jsonrpsee-core", "jsonrpsee-types", + "route-recognizer", "serde", "serde_json", "soketto", + "thiserror", "tokio", "tokio-stream", "tokio-util", @@ -4373,9 +4577,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.16.3" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245ba8e5aa633dd1c1e4fae72bce06e71f42d34c14a2767c6b4d173b57bee5e5" +checksum = "5be0be325642e850ed0bdff426674d2e66b2b7117c9be23a7caef68a2902b7d9" dependencies = [ "anyhow", "beef", @@ -4387,14 +4591,15 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.16.3" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1b3975ed5d73f456478681a417128597acd6a2487855fdb7b4a3d4d195bf5e" +checksum = "bca9cb3933ccae417eb6b08c3448eb1cb46e39834e5b503e395e5e5bd08546c0" dependencies = [ "http", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", + "url", ] [[package]] @@ -4420,18 +4625,10 @@ dependencies = [ ] [[package]] -name = "kusama-runtime-constants" +name = "keystream" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" -dependencies = [ - "frame-support", - "polkadot-primitives", - "polkadot-runtime-common", - "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", -] +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" [[package]] name = "kvdb" @@ -4449,7 +4646,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] @@ -4460,7 +4657,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "regex", "rocksdb", "smallvec", @@ -4468,9 +4665,9 @@ dependencies = [ [[package]] name = "landlock" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520baa32708c4e957d2fc3a186bc5bd8d26637c33137f399ddfc202adb240068" +checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" dependencies = [ "enumflags2", "libc", @@ -4479,9 +4676,9 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "lazycell" @@ -4491,18 +4688,18 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.52.6", ] [[package]] @@ -4520,7 +4717,7 @@ dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.12", + "getrandom 0.2.15", "instant", "libp2p-allow-block-list", "libp2p-connection-limits", @@ -4582,13 +4779,13 @@ dependencies = [ "libp2p-identity", "log", "multiaddr", - "multihash", + "multihash 0.17.0", "multistream-select", "once_cell", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", "quick-protobuf", - "rand 0.8.5", + "rand", "rw-stream-sink", "smallvec", "thiserror", @@ -4605,7 +4802,7 @@ dependencies = [ "futures", "libp2p-core", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "smallvec", "trust-dns-resolver", ] @@ -4642,9 +4839,9 @@ dependencies = [ "ed25519-dalek", "log", "multiaddr", - "multihash", + "multihash 0.17.0", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "thiserror", "zeroize", @@ -4669,7 +4866,7 @@ dependencies = [ "libp2p-swarm", "log", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "smallvec", "thiserror", @@ -4691,7 +4888,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.10", "tokio", @@ -4727,7 +4924,7 @@ dependencies = [ "log", "once_cell", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "snow", "static_assertions", @@ -4749,7 +4946,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "void", ] @@ -4767,9 +4964,9 @@ dependencies = [ "libp2p-identity", "libp2p-tls", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "quinn-proto", - "rand 0.8.5", + "rand", "rustls 0.20.9", "thiserror", "tokio", @@ -4787,7 +4984,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand 0.8.5", + "rand", "smallvec", ] @@ -4806,7 +5003,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive", "log", - "rand 0.8.5", + "rand", "smallvec", "tokio", "void", @@ -4818,7 +5015,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ - "heck", + "heck 0.4.1", "quote", "syn 1.0.109", ] @@ -4883,12 +5080,12 @@ dependencies = [ "futures-rustls", "libp2p-core", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "quicksink", "rw-stream-sink", "soketto", "url", - "webpki-roots 0.22.6", + "webpki-roots", ] [[package]] @@ -4906,13 +5103,12 @@ dependencies = [ [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "libc", - "redox_syscall 0.4.1", ] [[package]] @@ -4943,7 +5139,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand 0.8.5", + "rand", "serde", "sha2 0.9.9", "typenum", @@ -4957,7 +5153,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -4980,9 +5176,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.15" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" dependencies = [ "cc", "pkg-config", @@ -5036,15 +5232,27 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lioness" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "4ae926706ba42c425c9457121178330d75e273df2e82e28b758faf3de3a9acb9" +dependencies = [ + "arrayref", + "blake2 0.8.1", + "chacha", + "keystream", +] [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -5052,9 +5260,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lru" @@ -5082,9 +5290,9 @@ dependencies = [ [[package]] name = "lz4" -version = "1.24.0" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" +checksum = "958b4caa893816eea05507c20cfe47574a43d9a697138a7872990bba8a0ece68" dependencies = [ "libc", "lz4-sys", @@ -5092,9 +5300,9 @@ dependencies = [ [[package]] name = "lz4-sys" -version = "1.9.4" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868" dependencies = [ "cc", "libc", @@ -5111,50 +5319,50 @@ dependencies = [ [[package]] name = "macro_magic" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aee866bfee30d2d7e83835a4574aad5b45adba4cc807f2a3bbba974e5d4383c9" +checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "macro_magic_core" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e766a20fd9c72bab3e1e64ed63f36bd08410e75803813df210d1ce297d7ad00" +checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" dependencies = [ "const-random", - "derive-syn-parse", + "derive-syn-parse 0.2.0", "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "macro_magic_core_macros" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d710e1214dffbab3b5dacb21475dde7d6ed84c69ff722b3a47a782668d44fbac" +checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "macro_magic_macros" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fb85ec1620619edf2984a7693497d4ec88a9665d8b87e942856884c92dbf2a" +checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -5178,6 +5386,15 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "matches" version = "0.1.10" @@ -5186,9 +5403,9 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" dependencies = [ "autocfg", "rawpointer", @@ -5196,9 +5413,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memfd" @@ -5206,7 +5423,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.31", + "rustix 0.38.34", ] [[package]] @@ -5218,6 +5435,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.8.0" @@ -5236,18 +5462,6 @@ dependencies = [ "hash-db", ] -[[package]] -name = "merlin" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.5.1", - "zeroize", -] - [[package]] name = "merlin" version = "3.0.0" @@ -5267,7 +5481,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ "futures", - "rand 0.8.5", + "rand", "thrift", ] @@ -5279,28 +5493,54 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.10" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ + "hermit-abi 0.3.9", "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "mixnet" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa3eb39495d8e2e2947a1d862852c90cc6a4a8845f8b41c8829cb9fcc047f4a" +dependencies = [ + "arrayref", + "arrayvec 0.7.4", + "bitflags 1.3.2", + "blake2 0.10.6", + "c2-chacha", + "curve25519-dalek 4.1.3", + "either", + "hashlink", + "lioness", + "log", + "parking_lot 0.12.3", + "rand", + "rand_chacha 0.3.1", + "rand_distr", + "subtle 2.4.1", + "thiserror", + "zeroize", ] [[package]] name = "mmr-gadget" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "log", @@ -5318,10 +5558,9 @@ dependencies = [ [[package]] name = "mmr-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "anyhow", "jsonrpsee", "parity-scale-codec", "serde", @@ -5370,7 +5609,7 @@ dependencies = [ "data-encoding", "log", "multibase", - "multihash", + "multihash 0.17.0", "percent-encoding", "serde", "static_assertions", @@ -5400,24 +5639,92 @@ dependencies = [ "blake3", "core2", "digest 0.10.7", - "multihash-derive", + "multihash-derive 0.8.1", "sha2 0.10.8", "sha3", "unsigned-varint", ] +[[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", +] + +[[package]] +name = "multihash" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +dependencies = [ + "core2", + "unsigned-varint", +] + +[[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.0", + "ripemd", + "serde", + "sha1", + "sha2 0.10.8", + "sha3", + "strobe-rs", +] + [[package]] name = "multihash-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 1.1.3", "proc-macro-error", "proc-macro2", "quote", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", +] + +[[package]] +name = "multihash-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "890e72cb7396cb99ed98c1246a97b243cc16394470d94e0bc8b0c2c11d84290e" +dependencies = [ + "core2", + "multihash 0.19.1", + "multihash-derive-impl", +] + +[[package]] +name = "multihash-derive-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3958713ce794e12f7c6326fac9aa274c68d74c4881dd37b3e2662b8a2046bb19" +dependencies = [ + "proc-macro-crate 2.0.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", + "synstructure 0.13.1", ] [[package]] @@ -5442,9 +5749,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.3" +version = "0.32.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +checksum = "7b5c17de023a86f59ed79891b2e5d5a94c705dbe904a5b5c9c952ea6221b03e4" dependencies = [ "approx", "matrixmultiply", @@ -5458,22 +5765,22 @@ dependencies = [ [[package]] name = "nalgebra-macros" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.72", ] [[package]] name = "names" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146" +checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand 0.8.5", + "rand", ] [[package]] @@ -5537,9 +5844,9 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" +checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ "bytes", "futures", @@ -5559,6 +5866,17 @@ dependencies = [ "libc", ] +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "libc", +] + [[package]] name = "no-std-net" version = "0.6.0" @@ -5593,22 +5911,31 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-complex" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] @@ -5640,11 +5967,10 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -5652,11 +5978,12 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -5665,7 +5992,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.6", + "hermit-abi 0.3.9", "libc", ] @@ -5689,9 +6016,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" dependencies = [ "memchr", ] @@ -5719,9 +6046,9 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" @@ -5737,9 +6064,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orchestra" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2356622ffdfe72362a45a1e5e87bb113b8327e596e39b91f11f0ef4395c8da79" +checksum = "92829eef0328a3d1cd22a02c0e51deb92a5362df3e7d21a4e9bdc38934694e66" dependencies = [ "async-trait", "dyn-clonable", @@ -5747,22 +6074,22 @@ dependencies = [ "futures-timer", "orchestra-proc-macro", "pin-project", - "prioritized-metered-channel 0.6.1", + "prioritized-metered-channel", "thiserror", "tracing", ] [[package]] name = "orchestra-proc-macro" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eedb646674596266dc9bb2b5c7eea7c36b32ecc7777eba0d510196972d72c4fd" +checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" dependencies = [ - "expander 2.0.0", - "indexmap 2.2.3", + "expander 2.2.1", + "indexmap 2.3.0", "itertools 0.11.0", "petgraph", - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -5778,76 +6105,131 @@ dependencies = [ ] [[package]] -name = "pallet-asset-tx-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +name = "orml-xcm-mock-message-queue" +version = "0.10.0" dependencies = [ - "frame-benchmarking", + "cumulus-primitives-core", "frame-support", "frame-system", - "pallet-transaction-payment", "parity-scale-codec", + "polkadot-parachain-primitives", "scale-info", - "serde", - "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "staging-xcm", ] [[package]] -name = "pallet-assets" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pallet-asset-conversion" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", "parity-scale-codec", "scale-info", + "sp-api", + "sp-arithmetic", "sp-core", + "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] -name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +name = "pallet-asset-rate" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", - "log", - "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-consensus-aura", + "sp-core", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] -name = "pallet-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +name = "pallet-asset-tx-payment" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", - "pallet-session", + "pallet-transaction-payment", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-authority-discovery", + "serde", + "sp-core", + "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] -name = "pallet-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +name = "pallet-assets" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", +] + +[[package]] +name = "pallet-aura" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "frame-support", + "frame-system", + "log", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", +] + +[[package]] +name = "pallet-authority-discovery" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "frame-support", + "frame-system", + "pallet-session", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-authority-discovery", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", +] + +[[package]] +name = "pallet-authorship" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-system", @@ -5855,13 +6237,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-babe" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5879,13 +6261,13 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-bags-list" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "aquamarine", "docify", @@ -5900,15 +6282,16 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", - "sp-tracing", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-balances" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -5916,13 +6299,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-system", @@ -5936,15 +6319,15 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-beefy-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "binary-merkle-tree", "frame-support", "frame-system", @@ -5961,13 +6344,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-state-machine", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5979,13 +6362,30 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", +] + +[[package]] +name = "pallet-broker" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "bitvec", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-child-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5998,32 +6398,33 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-collator-selection" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "9.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "pallet-authorship", + "pallet-balances", "pallet-session", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sp-runtime", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-collective" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6034,13 +6435,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-conviction-voting" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6051,13 +6452,13 @@ dependencies = [ "serde", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-democracy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6069,13 +6470,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-election-provider-multi-phase" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6084,21 +6485,21 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sp-arithmetic", "sp-core", "sp-io", "sp-npos-elections", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "strum 0.24.1", ] [[package]] name = "pallet-election-provider-support-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6106,13 +6507,13 @@ dependencies = [ "parity-scale-codec", "sp-npos-elections", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-elections-phragmen" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6125,13 +6526,13 @@ dependencies = [ "sp-npos-elections", "sp-runtime", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-fast-unstake" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "docify", "frame-benchmarking", @@ -6144,13 +6545,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6167,29 +6568,30 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-identity" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-im-online" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6203,13 +6605,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-indices" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6220,13 +6622,13 @@ dependencies = [ "sp-io", "sp-keyring", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-insecure-randomness-collective-flip" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-system", @@ -6234,13 +6636,13 @@ dependencies = [ "safe-mix", "scale-info", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-membership" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6251,14 +6653,15 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-message-queue" -version = "7.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "environmental", "frame-benchmarking", "frame-support", "frame-system", @@ -6269,14 +6672,14 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-weights", ] [[package]] name = "pallet-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6288,13 +6691,13 @@ dependencies = [ "sp-io", "sp-mmr-primitives", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-multisig" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6304,13 +6707,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-nis" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6320,13 +6723,13 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-nomination-pools" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "25.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-system", @@ -6338,14 +6741,14 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std", - "sp-tracing", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-nomination-pools-benchmarking" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6357,26 +6760,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-runtime-interface", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-nomination-pools-runtime-api" -version = "1.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-offences" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-system", @@ -6387,13 +6790,13 @@ dependencies = [ "serde", "sp-runtime", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-offences-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6411,7 +6814,7 @@ dependencies = [ "scale-info", "sp-runtime", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -6428,8 +6831,8 @@ dependencies = [ [[package]] name = "pallet-preimage" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6440,13 +6843,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-proxy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6455,17 +6858,18 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-ranked-collective" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", @@ -6473,13 +6877,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-recovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6488,13 +6892,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-referenda" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6507,13 +6911,28 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", +] + +[[package]] +name = "pallet-root-testing" +version = "4.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-scheduler" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "docify", "frame-benchmarking", @@ -6524,14 +6943,14 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-weights", ] [[package]] name = "pallet-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-system", @@ -6546,14 +6965,14 @@ dependencies = [ "sp-session", "sp-staking", "sp-state-machine", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", ] [[package]] name = "pallet-session-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6561,16 +6980,16 @@ dependencies = [ "pallet-session", "pallet-staking", "parity-scale-codec", - "rand 0.8.5", + "rand", "sp-runtime", "sp-session", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-society" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6582,13 +7001,13 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6605,24 +7024,24 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-staking-reward-curve" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "pallet-staking-reward-fn" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "log", "sp-arithmetic", @@ -6630,17 +7049,18 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "sp-api", + "sp-staking", ] [[package]] name = "pallet-state-trie-migration" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6651,13 +7071,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-sudo" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "docify", "frame-benchmarking", @@ -6667,13 +7087,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "docify", "frame-benchmarking", @@ -6685,15 +7105,15 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std", - "sp-storage", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-timestamp", ] [[package]] name = "pallet-tips" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6706,13 +7126,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-system", @@ -6722,13 +7142,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-transaction-payment-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6743,8 +7163,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6755,9 +7175,10 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -6766,14 +7187,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", + "sp-core", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-utility" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6783,13 +7205,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-vesting" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6798,13 +7220,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-whitelist" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6813,34 +7235,36 @@ dependencies = [ "scale-info", "sp-api", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-xcm" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "bounded-collections", + "bounded-collections 0.2.0", "frame-benchmarking", "frame-support", "frame-system", "log", + "pallet-balances", "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", + "staging-xcm-builder", "staging-xcm-executor", ] [[package]] name = "pallet-xcm-benchmarks" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6850,7 +7274,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -6953,6 +7377,7 @@ dependencies = [ "pallet-balances", "pallet-collator-selection", "pallet-insecure-randomness-collective-flip", + "pallet-message-queue", "pallet-parachain-info", "pallet-session", "pallet-sudo", @@ -6960,6 +7385,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-xcm", + "parachains-common", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-runtime-common", @@ -6975,7 +7401,7 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "sp-version", "staging-xcm", @@ -6995,38 +7421,33 @@ dependencies = [ [[package]] name = "parachains-common" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", "frame-support", "frame-system", - "kusama-runtime-constants", "log", - "num-traits", "pallet-asset-tx-payment", "pallet-assets", "pallet-authorship", "pallet-balances", "pallet-collator-selection", + "pallet-message-queue", + "pallet-xcm", "parity-scale-codec", - "polkadot-core-primitives", "polkadot-primitives", - "polkadot-runtime-constants", - "rococo-runtime-constants", "scale-info", - "smallvec", "sp-consensus-aura", "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "staging-parachain-info", "staging-xcm", - "staging-xcm-builder", "staging-xcm-executor", "substrate-wasm-builder", - "westend-runtime-constants", ] [[package]] @@ -7035,16 +7456,16 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" dependencies = [ - "blake2", + "blake2 0.10.6", "crc32fast", "fs2", "hex", "libc", "log", "lz4", - "memmap2", - "parking_lot 0.12.1", - "rand 0.8.5", + "memmap2 0.5.10", + "parking_lot 0.12.3", + "rand", "siphasher", "snap", "winapi", @@ -7052,9 +7473,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ "arrayvec 0.7.4", "bitvec", @@ -7067,11 +7488,11 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 2.0.2", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -7108,12 +7529,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.9", + "parking_lot_core 0.9.10", ] [[package]] @@ -7132,15 +7553,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.3", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -7151,9 +7572,9 @@ checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -7164,15 +7585,6 @@ 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", -] - [[package]] name = "pbkdf2" version = "0.12.2" @@ -7205,9 +7617,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.7" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ "memchr", "thiserror", @@ -7216,9 +7628,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.7" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" +checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" dependencies = [ "pest", "pest_generator", @@ -7226,22 +7638,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.7" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" +checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "pest_meta" -version = "2.7.7" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" +checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" dependencies = [ "once_cell", "pest", @@ -7250,32 +7662,32 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.3", + "indexmap 2.3.0", ] [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -7286,9 +7698,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -7298,12 +7710,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand 2.1.0", "futures-io", ] @@ -7323,19 +7735,15 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" -[[package]] -name = "platforms" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" - [[package]] name = "polkadot-approval-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "bitvec", "futures", "futures-timer", + "itertools 0.10.5", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -7343,14 +7751,14 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "always-assert", "futures", @@ -7359,14 +7767,14 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "derive_more", "fatality", @@ -7378,7 +7786,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "schnellru", "sp-core", "sp-keystore", @@ -7388,8 +7796,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "fatality", @@ -7401,24 +7809,26 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-network", "schnellru", "thiserror", + "tokio", "tracing-gum", ] [[package]] name = "polkadot-cli" -version = "1.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "cfg-if", "clap", "frame-benchmarking-cli", "futures", "log", "polkadot-node-metrics", - "polkadot-performance-test", + "polkadot-node-primitives", "polkadot-service", "sc-cli", "sc-executor", @@ -7437,8 +7847,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bitvec", "fatality", @@ -7459,26 +7869,26 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "scale-info", "sp-core", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "polkadot-dispute-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "derive_more", "fatality", "futures", "futures-timer", - "indexmap 1.9.3", + "indexmap 2.3.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7496,8 +7906,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -7510,8 +7920,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "futures-timer", @@ -7519,20 +7929,21 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "sc-network", "sc-network-common", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-keystore", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "always-assert", "async-trait", @@ -7540,7 +7951,7 @@ dependencies = [ "fatality", "futures", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -7554,8 +7965,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "parity-scale-codec", @@ -7572,15 +7983,16 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", + "itertools 0.10.5", "kvdb", - "merlin 2.0.1", + "merlin", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -7588,9 +8000,12 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "rand", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "sc-keystore", "schnellru", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "sp-application-crypto", "sp-consensus", "sp-consensus-slots", @@ -7601,8 +8016,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bitvec", "futures", @@ -7623,8 +8038,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bitvec", "fatality", @@ -7642,8 +8057,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "polkadot-node-subsystem", @@ -7657,8 +8072,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", @@ -7678,23 +8093,22 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "polkadot-node-metrics", "polkadot-node-subsystem", - "polkadot-primitives", + "polkadot-node-subsystem-types", "sc-client-api", "sc-consensus-babe", - "sp-blockchain", "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-selection" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "futures-timer", @@ -7710,8 +8124,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "fatality", "futures", @@ -7729,8 +8143,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", @@ -7746,8 +8160,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "6.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bitvec", "fatality", @@ -7763,8 +8177,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bitvec", "fatality", @@ -7780,12 +8194,16 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "always-assert", + "array-bytes 6.2.3", + "blake3", + "cfg-if", "futures", "futures-timer", + "is_executable", "libc", "parity-scale-codec", "pin-project", @@ -7793,23 +8211,24 @@ dependencies = [ "polkadot-node-core-pvf-common", "polkadot-node-metrics", "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-parachain-primitives", "polkadot-primitives", - "rand 0.8.5", + "rand", "slotmap", "sp-core", "sp-maybe-compressed-blob", - "sp-wasm-interface", - "substrate-build-script-utils", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "tempfile", + "thiserror", "tokio", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "polkadot-node-primitives", @@ -7824,54 +8243,35 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "cfg-if", "cpu-time", "futures", "landlock", "libc", + "nix 0.27.1", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", "sc-executor", "sc-executor-common", "sc-executor-wasmtime", + "seccompiler", "sp-core", - "sp-externalities", - "sp-io", - "sp-tracing", - "tokio", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf-prepare-worker" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" -dependencies = [ - "futures", - "libc", - "parity-scale-codec", - "polkadot-node-core-pvf-common", - "polkadot-parachain-primitives", - "polkadot-primitives", - "rayon", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-io", - "sp-maybe-compressed-blob", - "sp-tracing", - "tikv-jemalloc-ctl", - "tokio", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "polkadot-node-metrics", @@ -7885,14 +8285,14 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "lazy_static", "log", "mick-jaeger", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-primitives", "sc-network", @@ -7903,16 +8303,16 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "bs58 0.5.0", + "bs58 0.5.1", "futures", "futures-timer", "log", "parity-scale-codec", "polkadot-primitives", - "prioritized-metered-channel 0.5.1", + "prioritized-metered-channel", "sc-cli", "sc-service", "sc-tracing", @@ -7922,8 +8322,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -7936,7 +8336,7 @@ dependencies = [ "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-authority-discovery", "sc-network", "strum 0.24.1", @@ -7946,15 +8346,16 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "bitvec", "bounded-vec", "futures", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "serde", "sp-application-crypto", "sp-consensus-babe", @@ -7968,8 +8369,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7978,10 +8379,11 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", + "bitvec", "derive_more", "futures", "orchestra", @@ -7996,15 +8398,17 @@ dependencies = [ "smallvec", "sp-api", "sp-authority-discovery", + "sp-blockchain", "sp-consensus-babe", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "polkadot-node-subsystem-util" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "derive_more", @@ -8015,7 +8419,7 @@ dependencies = [ "kvdb", "parity-db", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.3", "pin-project", "polkadot-node-jaeger", "polkadot-node-metrics", @@ -8025,8 +8429,8 @@ dependencies = [ "polkadot-node-subsystem-types", "polkadot-overseer", "polkadot-primitives", - "prioritized-metered-channel 0.5.1", - "rand 0.8.5", + "prioritized-metered-channel", + "rand", "sc-client-api", "schnellru", "sp-application-crypto", @@ -8038,21 +8442,20 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", "futures-timer", "orchestra", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem-types", "polkadot-primitives", "sc-client-api", - "schnellru", "sp-api", "sp-core", "tikv-jemalloc-ctl", @@ -8061,43 +8464,25 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "6.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "bounded-collections", + "bounded-collections 0.2.0", "derive_more", - "frame-support", "parity-scale-codec", "polkadot-core-primitives", "scale-info", "serde", "sp-core", "sp-runtime", - "sp-std", -] - -[[package]] -name = "polkadot-performance-test" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" -dependencies = [ - "env_logger 0.9.3", - "log", - "polkadot-erasure-coding", - "polkadot-node-core-pvf-prepare-worker", - "polkadot-node-primitives", - "polkadot-primitives", - "quote", - "sc-executor-common", - "sp-maybe-compressed-blob", - "staging-kusama-runtime", - "thiserror", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-weights", ] [[package]] name = "polkadot-primitives" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bitvec", "hex-literal 0.4.1", @@ -8117,13 +8502,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "polkadot-rpc" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -8139,6 +8524,7 @@ dependencies = [ "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-rpc", + "sc-rpc-spec-v2", "sc-sync-state-rpc", "sc-transaction-pool-api", "sp-api", @@ -8154,8 +8540,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bitvec", "frame-benchmarking", @@ -8165,11 +8551,14 @@ dependencies = [ "impl-trait-for-tuples", "libsecp256k1", "log", + "pallet-asset-rate", "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-election-provider-multi-phase", "pallet-fast-unstake", + "pallet-identity", "pallet-session", "pallet-staking", "pallet-staking-reward-fn", @@ -8177,6 +8566,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-treasury", "pallet-vesting", + "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-parachains", @@ -8193,42 +8583,30 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", + "staging-xcm-builder", + "staging-xcm-executor", "static_assertions", ] -[[package]] -name = "polkadot-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" -dependencies = [ - "frame-support", - "polkadot-primitives", - "polkadot-runtime-common", - "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", -] - [[package]] name = "polkadot-runtime-metrics" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "bs58 0.5.0", + "bs58 0.5.1", "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", - "sp-std", - "sp-tracing", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "polkadot-runtime-parachains" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -8242,6 +8620,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-message-queue", "pallet-session", "pallet-staking", @@ -8252,13 +8631,14 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-metrics", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "rustc-hex", "scale-info", "serde", "sp-api", "sp-application-crypto", + "sp-arithmetic", "sp-core", "sp-inherents", "sp-io", @@ -8266,7 +8646,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-executor", "static_assertions", @@ -8274,12 +8654,13 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "frame-benchmarking", "frame-benchmarking-cli", + "frame-metadata-hash-extension", "frame-support", "frame-system", "frame-system-rpc-runtime-api", @@ -8297,6 +8678,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", + "parking_lot 0.12.3", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -8378,7 +8760,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-state-machine", - "sp-storage", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-timestamp", "sp-transaction-pool", "sp-version", @@ -8391,20 +8773,19 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "arrayvec 0.7.4", "bitvec", "fatality", "futures", "futures-timer", - "indexmap 1.9.3", + "indexmap 2.3.0", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", - "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-primitives", "sp-keystore", @@ -8415,8 +8796,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -8424,31 +8805,69 @@ dependencies = [ ] [[package]] -name = "polling" -version = "2.8.0" +name = "polkavm-common" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" + +[[package]] +name = "polkavm-derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" dependencies = [ - "autocfg", - "bitflags 1.3.2", + "polkavm-derive-impl-macro", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" +dependencies = [ + "polkavm-common", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" +dependencies = [ + "polkavm-derive-impl", + "syn 2.0.72", +] + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", "cfg-if", "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "windows-sys 0.48.0", ] [[package]] name = "polling" -version = "3.4.0" +version = "3.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" +checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b" dependencies = [ "cfg-if", "concurrent-queue", - "pin-project-lite 0.2.13", - "rustix 0.38.31", + "hermit-abi 0.4.0", + "pin-project-lite 0.2.14", + "rustix 0.38.34", "tracing", "windows-sys 0.52.0", ] @@ -8460,27 +8879,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" [[package]] name = "powerfmt" @@ -8490,9 +8909,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" +dependencies = [ + "zerocopy 0.6.6", +] [[package]] name = "predicates" @@ -8510,15 +8932,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" dependencies = [ "predicates-core", "termtree", @@ -8536,12 +8958,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.16" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -8559,9 +8981,9 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e99f0c89bd88f393aab44a4ab949351f7bc7e7e1179d11ecbfe50cbe4c47e342" +checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" dependencies = [ "coarsetime", "crossbeam-queue", @@ -8574,39 +8996,31 @@ dependencies = [ ] [[package]] -name = "prioritized-metered-channel" -version = "0.6.1" +name = "proc-macro-crate" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "coarsetime", - "crossbeam-queue", - "derive_more", - "futures", - "futures-timer", - "nanorand", "thiserror", - "tracing", + "toml 0.5.11", ] [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "toml_edit 0.20.7", ] [[package]] name = "proc-macro-crate" -version = "2.0.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.21.1", ] [[package]] @@ -8635,35 +9049,35 @@ dependencies = [ [[package]] name = "proc-macro-warning" -version = "0.4.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" +checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "thiserror", ] @@ -8675,7 +9089,7 @@ checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus-client-derive-encode", ] @@ -8687,7 +9101,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -8697,7 +9111,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", ] [[package]] @@ -8707,14 +9131,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", + "heck 0.4.1", "itertools 0.10.5", "lazy_static", "log", "multimap", "petgraph", "prettyplease 0.1.25", - "prost", + "prost 0.11.9", "prost-types", "regex", "syn 1.0.109", @@ -8735,13 +9159,26 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "prost-types" version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "prost", + "prost 0.11.9", ] [[package]] @@ -8799,7 +9236,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "ring 0.16.20", "rustc-hash", "rustls 0.20.9", @@ -8812,9 +9249,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -8825,19 +9262,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -8884,16 +9308,17 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.15", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "rand_distr" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ - "rand_core 0.5.1", + "num-traits", + "rand", ] [[package]] @@ -8913,9 +9338,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -8961,48 +9386,56 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.15", "libredox", "thiserror", ] [[package]] name = "reed-solomon-novelpoly" -version = "1.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58130877ca403ab42c864fbac74bb319a0746c07a634a92a5cfc7f54af272582" +checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" dependencies = [ "derive_more", "fs-err", - "itertools 0.11.0", "static_init", "thiserror", ] [[package]] name = "ref-cast" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -9019,14 +9452,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", - "regex-syntax 0.8.2", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", ] [[package]] @@ -9040,13 +9473,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.4", ] [[package]] @@ -9057,9 +9490,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "resolv-conf" @@ -9078,23 +9511,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac 0.12.1", - "subtle", + "subtle 2.4.1", ] [[package]] name = "ring" version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof?rev=8657210#86572101f4210647984ab4efedba6b3fcc890895" +source = "git+https://github.com/w3f/ring-proof#665f5f51af5734c7b6d90b985dd6861d4c5b4752" dependencies = [ "ark-ec", "ark-ff", "ark-poly", "ark-serialize", "ark-std", - "blake2", + "arrayvec 0.7.4", + "blake2 0.10.6", "common", "fflonk", - "merlin 3.0.0", + "merlin", ] [[package]] @@ -9114,16 +9548,26 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", - "getrandom 0.2.12", + "cfg-if", + "getrandom 0.2.15", "libc", "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", ] [[package]] @@ -9138,12 +9582,13 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "binary-merkle-tree", "frame-benchmarking", "frame-executive", + "frame-metadata-hash-extension", "frame-support", "frame-system", "frame-system-benchmarking", @@ -9151,6 +9596,7 @@ dependencies = [ "frame-try-runtime", "hex-literal 0.4.1", "log", + "pallet-asset-rate", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", @@ -9160,6 +9606,7 @@ dependencies = [ "pallet-bounties", "pallet-child-bounties", "pallet-collective", + "pallet-conviction-voting", "pallet-democracy", "pallet-elections-phragmen", "pallet-grandpa", @@ -9174,7 +9621,10 @@ dependencies = [ "pallet-offences", "pallet-preimage", "pallet-proxy", + "pallet-ranked-collective", "pallet-recovery", + "pallet-referenda", + "pallet-root-testing", "pallet-scheduler", "pallet-session", "pallet-society", @@ -9188,6 +9638,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", @@ -9201,6 +9652,7 @@ dependencies = [ "serde_derive", "smallvec", "sp-api", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", @@ -9214,8 +9666,8 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", - "sp-storage", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "sp-version", "staging-xcm", @@ -9227,8 +9679,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "polkadot-primitives", @@ -9237,8 +9689,16 @@ dependencies = [ "sp-core", "sp-runtime", "sp-weights", + "staging-xcm", + "staging-xcm-builder", ] +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + [[package]] name = "rpassword" version = "7.3.1" @@ -9260,7 +9720,7 @@ dependencies = [ "log", "netlink-packet-route", "netlink-proto", - "nix", + "nix 0.24.3", "thiserror", "tokio", ] @@ -9277,9 +9737,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -9308,7 +9768,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.21", + "semver 1.0.23", ] [[package]] @@ -9350,14 +9810,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys 0.4.13", + "linux-raw-sys 0.4.14", "windows-sys 0.52.0", ] @@ -9375,12 +9835,12 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.17.7", + "ring 0.17.8", "rustls-webpki", "sct", ] @@ -9412,15 +9872,15 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ruzstd" @@ -9446,9 +9906,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "safe-mix" @@ -9461,9 +9921,9 @@ dependencies = [ [[package]] name = "safe_arch" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +checksum = "c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a" dependencies = [ "bytemuck", ] @@ -9479,19 +9939,19 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "log", "sp-core", - "sp-wasm-interface", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", ] [[package]] name = "sc-authority-discovery" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", @@ -9499,11 +9959,12 @@ dependencies = [ "ip_network", "libp2p", "log", - "multihash", + "multihash 0.18.1", + "multihash-codetable", "parity-scale-codec", - "prost", + "prost 0.12.6", "prost-build", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network", "sp-api", @@ -9518,15 +9979,14 @@ dependencies = [ [[package]] name = "sc-basic-authorship" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "futures-timer", "log", "parity-scale-codec", "sc-block-builder", - "sc-client-api", "sc-proposer-metrics", "sc-telemetry", "sc-transaction-pool-api", @@ -9541,25 +10001,29 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", - "sc-client-api", "sp-api", "sp-block-builder", "sp-blockchain", "sp-core", "sp-inherents", "sp-runtime", + "sp-trie", ] [[package]] name = "sc-chain-spec" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "memmap2", + "array-bytes 6.2.3", + "docify", + "log", + "memmap2 0.9.4", + "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", "sc-executor", @@ -9569,41 +10033,47 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", + "sp-crypto-hashing", + "sp-genesis-builder", + "sp-io", "sp-runtime", "sp-state-machine", ] [[package]] name = "sc-chain-spec-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "sc-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.36.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", + "bip39", "chrono", "clap", "fdlimit", "futures", + "itertools 0.10.5", "libp2p-identity", "log", "names", "parity-scale-codec", - "rand 0.8.5", + "rand", "regex", "rpassword", "sc-client-api", "sc-client-db", "sc-keystore", + "sc-mixnet", "sc-network", "sc-service", "sc-telemetry", @@ -9619,20 +10089,19 @@ dependencies = [ "sp-runtime", "sp-version", "thiserror", - "tiny-bip39", "tokio", ] [[package]] name = "sc-client-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "fnv", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -9641,19 +10110,19 @@ dependencies = [ "sp-consensus", "sp-core", "sp-database", - "sp-externalities", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-runtime", "sp-state-machine", "sp-statement-store", - "sp-storage", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "hash-db", "kvdb", @@ -9663,7 +10132,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-state-db", "schnellru", @@ -9678,8 +10147,8 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", @@ -9687,7 +10156,7 @@ dependencies = [ "libp2p-identity", "log", "mockall", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-utils", "serde", @@ -9703,8 +10172,8 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", @@ -9732,8 +10201,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "fork-tree", @@ -9743,7 +10212,7 @@ dependencies = [ "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sc-consensus-epochs", @@ -9758,6 +10227,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", + "sp-crypto-hashing", "sp-inherents", "sp-keystore", "sp-runtime", @@ -9767,8 +10237,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "jsonrpsee", @@ -9789,17 +10259,17 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "fnv", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sc-network", @@ -9813,24 +10283,26 @@ dependencies = [ "sp-consensus", "sp-consensus-beefy", "sp-core", + "sp-crypto-hashing", "sp-keystore", "sp-mmr-primitives", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", "wasm-timer", ] [[package]] name = "sc-consensus-beefy-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-consensus-beefy", "sc-rpc", "serde", @@ -9842,8 +10314,8 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9855,11 +10327,11 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.19.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "ahash 0.8.8", - "array-bytes", + "ahash 0.8.11", + "array-bytes 6.2.3", "async-trait", "dyn-clone", "finality-grandpa", @@ -9868,8 +10340,8 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -9877,6 +10349,7 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-gossip", + "sc-network-sync", "sc-telemetry", "sc-transaction-pool-api", "sc-utils", @@ -9888,6 +10361,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", + "sp-crypto-hashing", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -9896,8 +10370,8 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.19.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "finality-grandpa", "futures", @@ -9916,8 +10390,8 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", @@ -9939,59 +10413,60 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-executor-common", "sc-executor-wasmtime", "schnellru", "sp-api", "sp-core", - "sp-externalities", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-io", "sp-panic-handler", - "sp-runtime-interface", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", "sp-version", - "sp-wasm-interface", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "tracing", ] [[package]] name = "sc-executor-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", "wasm-instrument", ] [[package]] name = "sc-executor-wasmtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "anyhow", "cfg-if", "libc", "log", + "parking_lot 0.12.3", "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface", - "sp-wasm-interface", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "wasmtime", ] [[package]] name = "sc-informant" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "ansi_term", "futures", @@ -10000,17 +10475,18 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-common", + "sc-network-sync", "sp-blockchain", "sp-runtime", ] [[package]] name = "sc-keystore" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "25.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", - "parking_lot 0.12.1", + "array-bytes 6.2.3", + "parking_lot 0.12.3", "serde_json", "sp-application-crypto", "sp-core", @@ -10018,12 +10494,41 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-mixnet" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "array-bytes 4.2.0", + "arrayvec 0.7.4", + "blake2 0.10.6", + "bytes", + "futures", + "futures-timer", + "libp2p-identity", + "log", + "mixnet", + "multiaddr", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api", + "sc-network", + "sc-transaction-pool-api", + "sp-api", + "sp-consensus", + "sp-core", + "sp-keystore", + "sp-mixnet", + "sp-runtime", + "thiserror", +] + [[package]] name = "sc-network" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "asynchronous-codec", @@ -10038,10 +10543,10 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "partial_sort", "pin-project", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network-common", "sc-utils", @@ -10054,6 +10559,8 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", + "tokio-stream", "unsigned-varint", "wasm-timer", "zeroize", @@ -10061,15 +10568,15 @@ dependencies = [ [[package]] name = "sc-network-bitswap" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-channel 1.9.0", "cid", "futures", "libp2p-identity", "log", - "prost", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", @@ -10081,8 +10588,8 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -10098,16 +10605,17 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.11", "futures", "futures-timer", "libp2p", "log", "sc-network", "sc-network-common", + "sc-network-sync", "schnellru", "sp-runtime", "substrate-prometheus-endpoint", @@ -10116,16 +10624,16 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-channel 1.9.0", "futures", "libp2p-identity", "log", "parity-scale-codec", - "prost", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", @@ -10137,10 +10645,10 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "fork-tree", @@ -10150,7 +10658,7 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "prost", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-consensus", @@ -10167,20 +10675,23 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", + "tokio-stream", ] [[package]] name = "sc-network-transactions" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "futures", "libp2p", "log", "parity-scale-codec", "sc-network", "sc-network-common", + "sc-network-sync", "sc-utils", "sp-consensus", "sp-runtime", @@ -10189,10 +10700,10 @@ dependencies = [ [[package]] name = "sc-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "bytes", "fnv", "futures", @@ -10204,8 +10715,8 @@ dependencies = [ "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "sc-client-api", "sc-network", "sc-network-common", @@ -10213,7 +10724,7 @@ dependencies = [ "sc-utils", "sp-api", "sp-core", - "sp-externalities", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-keystore", "sp-offchain", "sp-runtime", @@ -10223,8 +10734,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10232,17 +10743,18 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-block-builder", "sc-chain-spec", "sc-client-api", + "sc-mixnet", "sc-rpc-api", "sc-tracing", "sc-transaction-pool-api", @@ -10263,12 +10775,13 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "jsonrpsee", "parity-scale-codec", "sc-chain-spec", + "sc-mixnet", "sc-transaction-pool-api", "scale-info", "serde", @@ -10282,8 +10795,8 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "http", "jsonrpsee", @@ -10297,25 +10810,27 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "futures", "futures-util", "hex", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-chain-spec", "sc-client-api", + "sc-rpc", "sc-transaction-pool-api", "sc-utils", "serde", "sp-api", "sp-blockchain", "sp-core", + "sp-rpc", "sp-runtime", "sp-version", "thiserror", @@ -10325,8 +10840,8 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "directories", @@ -10336,10 +10851,9 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", - "sc-block-builder", + "rand", "sc-chain-spec", "sc-client-api", "sc-client-db", @@ -10368,12 +10882,12 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-core", - "sp-externalities", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-keystore", "sp-runtime", "sp-session", "sp-state-machine", - "sp-storage", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", @@ -10389,23 +10903,23 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.30.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sp-core", ] [[package]] name = "sc-statement-store" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "log", "parity-db", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-keystore", "sp-api", @@ -10419,13 +10933,12 @@ dependencies = [ [[package]] name = "sc-storage-monitor" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.16.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "clap", "fs4", "log", - "sc-client-db", "sp-core", "thiserror", "tokio", @@ -10433,8 +10946,8 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10452,35 +10965,37 @@ dependencies = [ [[package]] name = "sc-sysinfo" -version = "6.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "derive_more", "futures", "libc", "log", - "rand 0.8.5", + "rand", "rand_pcg", "regex", "sc-telemetry", "serde", "serde_json", "sp-core", + "sp-crypto-hashing", "sp-io", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sc-telemetry" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "chrono", "futures", "libp2p", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", "sc-utils", "serde", "serde_json", @@ -10490,16 +11005,17 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "ansi_term", - "atty", "chrono", + "is-terminal", "lazy_static", "libc", "log", - "parking_lot 0.12.1", + "parity-scale-codec", + "parking_lot 0.12.3", "regex", "rustc-hash", "sc-client-api", @@ -10510,28 +11026,28 @@ dependencies = [ "sp-core", "sp-rpc", "sp-runtime", - "sp-tracing", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", "tracing", - "tracing-log", - "tracing-subscriber", + "tracing-log 0.1.4", + "tracing-subscriber 0.2.25", ] [[package]] name = "sc-tracing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "sc-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", @@ -10539,7 +11055,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-transaction-pool-api", "sc-utils", @@ -10547,8 +11063,9 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", + "sp-crypto-hashing", "sp-runtime", - "sp-tracing", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -10556,8 +11073,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", @@ -10572,24 +11089,24 @@ dependencies = [ [[package]] name = "sc-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-channel 1.9.0", "futures", "futures-timer", "lazy_static", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus", "sp-arithmetic", ] [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "bitvec", "cfg-if", @@ -10601,11 +11118,11 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -10622,46 +11139,47 @@ dependencies = [ [[package]] name = "schnellru" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.11", "cfg-if", "hashbrown 0.13.2", ] [[package]] name = "schnorrkel" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" +checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" dependencies = [ "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "getrandom 0.1.16", - "merlin 2.0.1", - "rand 0.7.3", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle", + "arrayvec 0.7.4", + "curve25519-dalek-ng", + "merlin", + "rand_core 0.6.4", + "sha2 0.9.9", + "subtle-ng", "zeroize", ] [[package]] name = "schnorrkel" -version = "0.10.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ + "aead", "arrayref", "arrayvec 0.7.4", - "curve25519-dalek-ng", - "merlin 3.0.0", + "curve25519-dalek 4.1.3", + "getrandom_or_panic", + "merlin", "rand_core 0.6.4", - "sha2 0.9.9", - "subtle-ng", + "serde_bytes", + "sha2 0.10.8", + "subtle 2.4.1", "zeroize", ] @@ -10683,7 +11201,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -10697,24 +11215,33 @@ dependencies = [ "der", "generic-array 0.14.7", "pkcs8", - "subtle", + "subtle 2.4.1", "zeroize", ] +[[package]] +name = "seccompiler" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a3e4dddf721a478089d4697b83c6c0a8f5bf16086f6c13397e4534eb6e2e5" +dependencies = [ + "libc", +] + [[package]] name = "secp256k1" -version = "0.24.3" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.6.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" +checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" dependencies = [ "cc", ] @@ -10730,11 +11257,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -10743,9 +11270,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -10771,9 +11298,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ "serde", ] @@ -10786,40 +11313,50 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_spanned" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] @@ -10834,19 +11371,18 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] -name = "sha2" -version = "0.8.2" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", + "cfg-if", + "cpufeatures", + "digest 0.10.7", ] [[package]] @@ -10859,7 +11395,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -10900,9 +11436,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -10930,6 +11466,11 @@ dependencies = [ "wide", ] +[[package]] +name = "simple-mermaid" +version = "0.1.0" +source = "git+https://github.com/kianenigma/simple-mermaid.git?rev=e48b187bcfd5cc75111acd9d241f1bd36604344b#e48b187bcfd5cc75111acd9d241f1bd36604344b" + [[package]] name = "siphasher" version = "0.3.11" @@ -10953,14 +11494,14 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "enumn", "parity-scale-codec", "paste", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -10974,9 +11515,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smol" @@ -11007,7 +11548,7 @@ dependencies = [ "base64 0.21.7", "bip39", "blake2-rfc", - "bs58 0.5.0", + "bs58 0.5.1", "chacha20", "crossbeam-queue", "derive_more", @@ -11017,12 +11558,12 @@ dependencies = [ "fnv", "futures-lite 1.13.0", "futures-util", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "hmac 0.12.1", "itertools 0.11.0", "libsecp256k1", - "merlin 3.0.0", + "merlin", "no-std-net", "nom", "num-bigint", @@ -11031,7 +11572,7 @@ dependencies = [ "pbkdf2 0.12.2", "pin-project", "poly1305", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "ruzstd", "schnorrkel 0.10.2", @@ -11066,15 +11607,15 @@ dependencies = [ "futures-channel", "futures-lite 1.13.0", "futures-util", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "hex", "itertools 0.11.0", "log", "lru 0.11.1", "no-std-net", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "serde", "serde_json", @@ -11098,14 +11639,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" dependencies = [ "aes-gcm", - "blake2", + "blake2 0.10.6", "chacha20poly1305", - "curve25519-dalek 4.1.2", + "curve25519-dalek 4.1.3", "rand_core 0.6.4", - "ring 0.17.7", + "ring 0.17.8", "rustc_version 0.4.0", "sha2 0.10.8", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -11120,12 +11661,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -11141,14 +11682,14 @@ dependencies = [ "http", "httparse", "log", - "rand 0.8.5", + "rand", "sha-1", ] [[package]] name = "sp-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "hash-db", "log", @@ -11156,11 +11697,11 @@ dependencies = [ "scale-info", "sp-api-proc-macro", "sp-core", - "sp-externalities", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-metadata-ir", "sp-runtime", "sp-state-machine", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", "sp-version", "thiserror", @@ -11168,78 +11709,96 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "Inflector", - "blake2", - "expander 2.0.0", - "proc-macro-crate 1.3.1", + "blake2 0.10.6", + "expander 2.2.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "sp-application-crypto" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-arithmetic" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "static_assertions", ] +[[package]] +name = "sp-ark-bls12-381" +version = "0.4.2" +source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +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#caa2eed74beb885dd07c7db5f916f2281dad818f" +dependencies = [ + "ark-ed-on-bls12-381-bandersnatch-ext", + "sp-crypto-ec-utils", +] + [[package]] name = "sp-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-block-builder" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "sp-api", "sp-inherents", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-blockchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "schnellru", "sp-api", "sp-consensus", @@ -11251,8 +11810,8 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "futures", @@ -11266,8 +11825,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "parity-scale-codec", @@ -11277,14 +11836,14 @@ dependencies = [ "sp-consensus-slots", "sp-inherents", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-timestamp", ] [[package]] name = "sp-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "parity-scale-codec", @@ -11296,14 +11855,14 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-timestamp", ] [[package]] name = "sp-consensus-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "lazy_static", "parity-scale-codec", @@ -11312,17 +11871,18 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-io", "sp-mmr-primitives", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "strum 0.24.1", ] [[package]] name = "sp-consensus-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "finality-grandpa", "log", @@ -11334,71 +11894,91 @@ dependencies = [ "sp-core", "sp-keystore", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-timestamp", ] [[package]] name = "sp-core" -version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "array-bytes", + "array-bytes 6.2.3", "bandersnatch_vrfs", + "bip39", "bitflags 1.3.2", - "blake2", - "bounded-collections", - "bs58 0.5.0", + "blake2 0.10.6", + "bounded-collections 0.2.0", + "bs58 0.5.1", "dyn-clonable", "ed25519-zebra 3.1.0", "futures", "hash-db", "hash256-std-hasher", "impl-serde", - "lazy_static", + "itertools 0.10.5", "libsecp256k1", "log", - "merlin 2.0.1", + "merlin", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "paste", "primitive-types", - "rand 0.8.5", - "regex", + "rand", "scale-info", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "secp256k1", "secrecy", "serde", - "sp-core-hashing", - "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface", - "sp-std", - "sp-storage", + "sp-crypto-hashing", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "ss58-registry", "substrate-bip39", "thiserror", - "tiny-bip39", "tracing", + "w3f-bls", "zeroize", ] [[package]] -name = "sp-core-hashing" -version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +name = "sp-crypto-ec-utils" +version = "0.10.0" +source = "git+https://github.com/paritytech/polkadot-sdk#776e95748901b50ff2833a7d27ea83fd91fbf9d1" +dependencies = [ + "ark-bls12-377", + "ark-bls12-377-ext", + "ark-bls12-381", + "ark-bls12-381-ext", + "ark-bw6-761", + "ark-bw6-761-ext", + "ark-ec", + "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 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "blake2b_simd", "byteorder", @@ -11409,74 +11989,94 @@ dependencies = [ ] [[package]] -name = "sp-core-hashing-proc-macro" -version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +name = "sp-crypto-hashing-proc-macro" +version = "0.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "quote", - "sp-core-hashing", - "syn 2.0.48", + "sp-crypto-hashing", + "syn 2.0.72", ] [[package]] name = "sp-database" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] name = "sp-debug-derive" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#776e95748901b50ff2833a7d27ea83fd91fbf9d1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", ] [[package]] name = "sp-externalities" -version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "environmental", "parity-scale-codec", - "sp-std", - "sp-storage", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", +] + +[[package]] +name = "sp-externalities" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk#776e95748901b50ff2833a7d27ea83fd91fbf9d1" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] name = "sp-genesis-builder" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "serde_json", "sp-api", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", ] [[package]] name = "sp-io" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bytes", "ed25519-dalek", @@ -11486,12 +12086,13 @@ dependencies = [ "rustversion", "secp256k1", "sp-core", - "sp-externalities", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-keystore", - "sp-runtime-interface", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-state-machine", - "sp-std", - "sp-tracing", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", "tracing", "tracing-core", @@ -11499,10 +12100,9 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "lazy_static", "sp-core", "sp-runtime", "strum 0.24.1", @@ -11510,20 +12110,20 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.27.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sp-core", - "sp-externalities", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", ] [[package]] name = "sp-maybe-compressed-blob" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "thiserror", "zstd 0.12.4", @@ -11531,19 +12131,31 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-metadata", "parity-scale-codec", "scale-info", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", +] + +[[package]] +name = "sp-mixnet" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-mmr-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11552,16 +12164,16 @@ dependencies = [ "serde", "sp-api", "sp-core", - "sp-debug-derive", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", ] [[package]] name = "sp-npos-elections" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "scale-info", @@ -11569,13 +12181,13 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "sp-api", "sp-core", @@ -11584,8 +12196,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "backtrace", "lazy_static", @@ -11594,8 +12206,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "rustc-hash", "serde", @@ -11604,60 +12216,95 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "31.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ + "docify", "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", "parity-scale-codec", "paste", - "rand 0.8.5", + "rand", "scale-info", "serde", + "simple-mermaid", "sp-application-crypto", "sp-arithmetic", "sp-core", "sp-io", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-weights", ] [[package]] name = "sp-runtime-interface" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", - "sp-externalities", - "sp-runtime-interface-proc-macro", - "sp-std", - "sp-storage", - "sp-tracing", - "sp-wasm-interface", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#776e95748901b50ff2833a7d27ea83fd91fbf9d1" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive", + "primitive-types", + "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)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "Inflector", + "expander 2.2.1", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#776e95748901b50ff2833a7d27ea83fd91fbf9d1" dependencies = [ "Inflector", - "proc-macro-crate 1.3.1", + "expander 2.2.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "sp-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "scale-info", @@ -11666,13 +12313,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -11680,24 +12327,24 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-state-machine" -version = "0.28.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "smallvec", "sp-core", - "sp-externalities", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-panic-handler", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", "thiserror", "tracing", @@ -11706,75 +12353,104 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "aes-gcm", - "curve25519-dalek 4.1.2", + "curve25519-dalek 4.1.3", "ed25519-dalek", "hkdf", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sha2 0.10.8", "sp-api", "sp-application-crypto", "sp-core", - "sp-externalities", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-runtime", - "sp-runtime-interface", - "sp-std", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", "x25519-dalek 2.0.1", ] [[package]] name = "sp-std" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#776e95748901b50ff2833a7d27ea83fd91fbf9d1" [[package]] name = "sp-storage" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", +] + +[[package]] +name = "sp-storage" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#776e95748901b50ff2833a7d27ea83fd91fbf9d1" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive", - "sp-std", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", ] [[package]] name = "sp-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", ] [[package]] name = "sp-tracing" -version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "tracing", "tracing-core", - "tracing-subscriber", + "tracing-subscriber 0.2.25", +] + +[[package]] +name = "sp-tracing" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#776e95748901b50ff2833a7d27ea83fd91fbf9d1" +dependencies = [ + "parity-scale-codec", + "tracing", + "tracing-core", + "tracing-subscriber 0.3.18", ] [[package]] name = "sp-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "sp-api", "sp-runtime", @@ -11782,8 +12458,8 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "parity-scale-codec", @@ -11791,27 +12467,28 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-trie", ] [[package]] name = "sp-trie" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "ahash 0.8.8", + "ahash 0.8.11", "hash-db", - "hashbrown 0.13.2", "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", + "rand", "scale-info", "schnellru", "sp-core", - "sp-std", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "thiserror", "tracing", "trie-db", @@ -11820,58 +12497,68 @@ dependencies = [ [[package]] name = "sp-version" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-core-hashing-proc-macro", + "sp-crypto-hashing-proc-macro", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-version-proc-macro", "thiserror", ] [[package]] name = "sp-version-proc-macro" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "sp-wasm-interface" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "wasmtime", ] [[package]] -name = "sp-weights" +name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +source = "git+https://github.com/paritytech/polkadot-sdk#776e95748901b50ff2833a7d27ea83fd91fbf9d1" dependencies = [ + "impl-trait-for-tuples", + "log", + "parity-scale-codec", +] + +[[package]] +name = "sp-weights" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "bounded-collections 0.2.0", "parity-scale-codec", "scale-info", "serde", "smallvec", "sp-arithmetic", - "sp-core", - "sp-debug-derive", - "sp-std", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -11909,9 +12596,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.46.0" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1114ee5900b8569bbc8b1a014a942f937b752af4b44f4607430b5f86cedaac0" +checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" dependencies = [ "Inflector", "num-format", @@ -11921,126 +12608,34 @@ dependencies = [ "serde_json", "unicode-xid", ] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "staging-kusama-runtime" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" -dependencies = [ - "binary-merkle-tree", - "bitvec", - "frame-benchmarking", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal 0.4.1", - "kusama-runtime-constants", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-beefy", - "pallet-beefy-mmr", - "pallet-bounties", - "pallet-child-bounties", - "pallet-collective", - "pallet-conviction-voting", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-election-provider-support-benchmarking", - "pallet-elections-phragmen", - "pallet-fast-unstake", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-message-queue", - "pallet-mmr", - "pallet-multisig", - "pallet-nis", - "pallet-nomination-pools", - "pallet-nomination-pools-benchmarking", - "pallet-nomination-pools-runtime-api", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-preimage", - "pallet-proxy", - "pallet-ranked-collective", - "pallet-recovery", - "pallet-referenda", - "pallet-scheduler", - "pallet-session", - "pallet-session-benchmarking", - "pallet-society", - "pallet-staking", - "pallet-staking-runtime-api", - "pallet-state-trie-migration", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-utility", - "pallet-vesting", - "pallet-whitelist", - "pallet-xcm", - "pallet-xcm-benchmarks", + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "staging-parachain-info" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "rustc-hex", "scale-info", - "serde", - "serde_derive", - "smallvec", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-consensus-beefy", - "sp-core", - "sp-genesis-builder", - "sp-inherents", - "sp-io", - "sp-mmr-primitives", - "sp-npos-elections", - "sp-offchain", "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-storage", - "sp-transaction-pool", - "sp-version", - "staging-xcm", - "staging-xcm-builder", - "staging-xcm-executor", - "static_assertions", - "substrate-wasm-builder", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] name = "staging-xcm" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "bounded-collections", + "array-bytes 6.2.3", + "bounded-collections 0.2.0", "derivative", "environmental", "impl-trait-for-tuples", @@ -12054,8 +12649,8 @@ dependencies = [ [[package]] name = "staging-xcm-builder" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "frame-system", @@ -12068,7 +12663,7 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-weights", "staging-xcm", "staging-xcm-executor", @@ -12076,8 +12671,8 @@ dependencies = [ [[package]] name = "staging-xcm-executor" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "environmental", "frame-benchmarking", @@ -12085,11 +12680,12 @@ dependencies = [ "impl-trait-for-tuples", "log", "parity-scale-codec", + "scale-info", "sp-arithmetic", "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-weights", "staging-xcm", ] @@ -12108,6 +12704,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc", "sc-basic-authorship", + "sc-chain-spec", "sc-cli", "sc-client-api", "sc-consensus", @@ -12124,6 +12721,8 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool", "sc-transaction-pool-api", + "serde", + "serde_json", "sp-api", "sp-block-builder", "sp-blockchain", @@ -12162,9 +12761,11 @@ dependencies = [ "pallet-assets", "pallet-aura", "pallet-balances", + "pallet-collator-selection", "pallet-grandpa", "pallet-insecure-randomness-collective-flip", "pallet-parachain-info", + "pallet-session", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -12178,11 +12779,12 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-grandpa", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-offchain", "sp-runtime", "sp-session", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "sp-version", "staging-xcm", @@ -12232,11 +12834,24 @@ dependencies = [ "syn 1.0.109", ] +[[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.4.1", + "zeroize", +] + [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" @@ -12249,9 +12864,9 @@ dependencies = [ [[package]] name = "strum" -version = "0.25.0" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" [[package]] name = "strum_macros" @@ -12259,7 +12874,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -12268,39 +12883,39 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.25.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "substrate-bip39" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" +checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" dependencies = [ "hmac 0.11.0", "pbkdf2 0.8.0", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "sha2 0.9.9", "zeroize", ] [[package]] name = "substrate-build-script-utils" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" [[package]] name = "substrate-frame-rpc-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -12318,8 +12933,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "hyper", "log", @@ -12330,8 +12945,8 @@ dependencies = [ [[package]] name = "substrate-rpc-client" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "jsonrpsee", @@ -12343,8 +12958,8 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12360,22 +12975,28 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "ansi_term", "build-helper", "cargo_metadata", + "console", "filetime", "parity-wasm", "sp-maybe-compressed-blob", "strum 0.24.1", "tempfile", - "toml 0.7.8", + "toml 0.8.19", "walkdir", "wasm-opt", ] +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + [[package]] name = "subtle" version = "2.4.1" @@ -12400,7 +13021,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -12416,7 +13037,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", "sygma-access-segregator", @@ -12429,7 +13050,7 @@ version = "0.3.0" dependencies = [ "arrayref", "assert_matches", - "bounded-collections", + "bounded-collections 0.1.9", "cumulus-pallet-xcm", "cumulus-primitives-core", "cumulus-primitives-utility", @@ -12454,7 +13075,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12486,7 +13107,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12506,7 +13127,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", "sygma-access-segregator", @@ -12528,7 +13149,7 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", "sygma-access-segregator", @@ -12569,7 +13190,7 @@ dependencies = [ "parity-scale-codec", "primitive-types", "scale-info", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", ] @@ -12583,16 +13204,18 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", "cumulus-primitives-utility", - "env_logger 0.10.2", + "env_logger", "frame-support", "frame-system", "half", "log", + "orml-xcm-mock-message-queue", "pallet-assets", "pallet-balances", "pallet-message-queue", "pallet-parachain-info", "pallet-xcm", + "parachains-common", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-runtime-common", @@ -12601,7 +13224,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -12623,9 +13246,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" dependencies = [ "proc-macro2", "quote", @@ -12644,6 +13267,17 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + [[package]] name = "system-configuration" version = "0.5.1" @@ -12673,19 +13307,19 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.13" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "rustix 0.38.31", + "fastrand 2.1.0", + "rustix 0.38.34", "windows-sys 0.52.0", ] @@ -12698,6 +13332,16 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix 0.38.34", + "windows-sys 0.48.0", +] + [[package]] name = "termtree" version = "0.4.1" @@ -12706,9 +13350,9 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] @@ -12730,18 +13374,18 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -12752,9 +13396,9 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -12805,9 +13449,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -12826,33 +13470,14 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", ] -[[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 = "tiny-keccak" version = "2.0.2" @@ -12864,9 +13489,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -12879,32 +13504,31 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite 0.2.13", + "parking_lot 0.12.3", + "pin-project-lite 0.2.14", "signal-hook-registry", - "socket2 0.5.5", + "socket2 0.5.7", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -12914,7 +13538,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ "pin-project", - "rand 0.8.5", + "rand", "tokio", ] @@ -12924,35 +13548,34 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.10", + "rustls 0.21.12", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tokio", "tokio-util", ] [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tokio", - "tracing", ] [[package]] @@ -12966,61 +13589,58 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.19.15", + "toml_edit 0.22.20", ] [[package]] -name = "toml" -version = "0.8.2" +name = "toml_datetime" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.20.2", ] [[package]] -name = "toml_datetime" -version = "0.6.3" +name = "toml_edit" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "serde", + "indexmap 2.3.0", + "toml_datetime", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.3", - "serde", - "serde_spanned", + "indexmap 2.3.0", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.3.0", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.18", ] [[package]] @@ -13029,6 +13649,10 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", "tracing", @@ -13040,14 +13664,14 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.6.0", "bytes", "futures-core", "futures-util", "http", "http-body", "http-range-header", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", ] @@ -13071,7 +13695,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tracing-attributes", "tracing-core", ] @@ -13084,7 +13708,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -13109,11 +13733,10 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "coarsetime", - "polkadot-node-jaeger", "polkadot-primitives", "tracing", "tracing-gum-proc-macro", @@ -13121,14 +13744,14 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "5.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ - "expander 2.0.0", - "proc-macro-crate 1.3.1", + "expander 2.2.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -13142,6 +13765,17 @@ dependencies = [ "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", +] + [[package]] name = "tracing-serde" version = "0.1.3" @@ -13161,7 +13795,7 @@ dependencies = [ "ansi_term", "chrono", "lazy_static", - "matchers", + "matchers 0.0.1", "parking_lot 0.11.2", "regex", "serde", @@ -13171,10 +13805,29 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log", + "tracing-log 0.1.4", "tracing-serde", ] +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers 0.1.0", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log 0.2.0", +] + [[package]] name = "trie-db" version = "0.28.0" @@ -13213,7 +13866,7 @@ dependencies = [ "idna 0.2.3", "ipnet", "lazy_static", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.10", "thiserror", @@ -13234,7 +13887,7 @@ dependencies = [ "ipconfig", "lazy_static", "lru-cache", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "resolv-conf", "smallvec", "thiserror", @@ -13251,8 +13904,8 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "try-runtime-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "0.38.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "async-trait", "clap", @@ -13269,8 +13922,8 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe", "sp-core", - "sp-debug-derive", - "sp-externalities", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-inherents", "sp-io", "sp-keystore", @@ -13299,7 +13952,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -13350,9 +14003,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "unicode-xid" @@ -13367,7 +14020,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -13396,9 +14049,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna 0.5.0", @@ -13407,9 +14060,9 @@ dependencies = [ [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" @@ -13425,9 +14078,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "void" @@ -13435,17 +14088,41 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +[[package]] +name = "w3f-bls" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-serialize-derive", + "arrayref", + "constcat", + "digest 0.10.7", + "rand", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "sha2 0.10.8", + "sha3", + "thiserror", + "zeroize", +] + [[package]] name = "waker-fn" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -13483,9 +14160,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -13493,24 +14170,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -13520,9 +14197,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13530,37 +14207,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-instrument" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" +checksum = "2a47ecb37b9734d1085eaa5ae1a81e60801fd8c28d4cabdd8aedb982021918bc" dependencies = [ "parity-wasm", ] [[package]] name = "wasm-opt" -version = "0.114.2" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "effbef3bd1dde18acb401f73e740a6f3d4a1bc651e9773bddc512fe4d8d68f67" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" dependencies = [ "anyhow", "libc", @@ -13574,9 +14251,9 @@ dependencies = [ [[package]] name = "wasm-opt-cxx-sys" -version = "0.114.2" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c09e24eb283919ace2ed5733bda4842a59ce4c8de110ef5c6d98859513d17047" +checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" dependencies = [ "anyhow", "cxx", @@ -13586,9 +14263,9 @@ dependencies = [ [[package]] name = "wasm-opt-sys" -version = "0.114.2" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f2f817bed2e8d65eb779fa37317e74de15585751f903c9118342d1970703a4" +checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" dependencies = [ "anyhow", "cc", @@ -13654,9 +14331,9 @@ dependencies = [ [[package]] name = "wasmparser-nostd" -version = "0.100.1" +version = "0.100.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa" dependencies = [ "indexmap-nostd", ] @@ -13836,7 +14513,7 @@ dependencies = [ "memfd", "memoffset", "paste", - "rand 0.8.5", + "rand", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -13858,9 +14535,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -13872,7 +14549,7 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -13885,22 +14562,17 @@ dependencies = [ "webpki", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "westend-runtime" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "binary-merkle-tree", "bitvec", "frame-benchmarking", "frame-election-provider-support", "frame-executive", + "frame-metadata-hash-extension", "frame-support", "frame-system", "frame-system-benchmarking", @@ -13908,6 +14580,7 @@ dependencies = [ "frame-try-runtime", "hex-literal 0.4.1", "log", + "pallet-asset-rate", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", @@ -13916,6 +14589,7 @@ dependencies = [ "pallet-beefy", "pallet-beefy-mmr", "pallet-collective", + "pallet-conviction-voting", "pallet-democracy", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", @@ -13937,6 +14611,8 @@ dependencies = [ "pallet-preimage", "pallet-proxy", "pallet-recovery", + "pallet-referenda", + "pallet-root-testing", "pallet-scheduler", "pallet-session", "pallet-session-benchmarking", @@ -13952,6 +14628,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", @@ -13966,6 +14643,7 @@ dependencies = [ "smallvec", "sp-api", "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", @@ -13980,8 +14658,8 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std", - "sp-storage", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "sp-version", "staging-xcm", @@ -13993,8 +14671,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "polkadot-primitives", @@ -14003,6 +14681,8 @@ dependencies = [ "sp-core", "sp-runtime", "sp-weights", + "staging-xcm", + "staging-xcm-builder", ] [[package]] @@ -14014,14 +14694,14 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.31", + "rustix 0.38.34", ] [[package]] name = "wide" -version = "0.7.15" +version = "0.7.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89beec544f246e679fc25490e3f8e08003bc4bf612068f325120dad4cea02c1c" +checksum = "901e8597c777fa042e9e245bd56c0dc4418c5db3f845b6ff94fbac732c6a0692" dependencies = [ "bytemuck", "safe_arch", @@ -14029,9 +14709,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "winapi" @@ -14051,11 +14731,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -14089,7 +14769,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.6", ] [[package]] @@ -14116,7 +14796,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.6", ] [[package]] @@ -14151,17 +14831,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -14178,9 +14859,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -14196,9 +14877,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -14214,9 +14895,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -14232,9 +14919,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -14250,9 +14937,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -14268,9 +14955,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -14286,9 +14973,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -14299,6 +14986,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -14335,7 +15031,7 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ - "curve25519-dalek 4.1.2", + "curve25519-dalek 4.1.3", "rand_core 0.6.4", "serde", "zeroize", @@ -14361,19 +15057,19 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "xcm-simulator" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.2.0#63d7f90f778ae4aba0d82326cf7bba7087d96be4" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0#851c824dc7a8e7e6db2d0c9fb29d232f2f45198a" dependencies = [ "frame-support", "parity-scale-codec", @@ -14382,7 +15078,7 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-runtime-parachains", "sp-io", - "sp-std", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.7.0)", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -14397,8 +15093,8 @@ dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "static_assertions", ] @@ -14413,29 +15109,50 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" +dependencies = [ + "byteorder", + "zerocopy-derive 0.6.6", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy-derive" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" dependencies = [ - "zerocopy-derive", + "proc-macro2", + "quote", + "syn 2.0.72", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -14448,7 +15165,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.72", ] [[package]] @@ -14491,9 +15208,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.12+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 65f62857..4cef8b2f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,8 @@ members = [ "substrate-node/standalone/runtime", "parachain-info", "bridge-forwarder", - "xcm-bridge" + "xcm-bridge", + "xcm-mock-message-queue" ] exclude = [ diff --git a/access-segregator/Cargo.toml b/access-segregator/Cargo.toml index 658b0b90..f54560b0 100644 --- a/access-segregator/Cargo.toml +++ b/access-segregator/Cargo.toml @@ -9,18 +9,18 @@ codec = { package = "parity-scale-codec", version = "3.6.1", default-features = scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde", "decode"] } # Substrate -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false, optional = true } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false, optional = true } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } [dev-dependencies] # Substrate -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } [features] default = ["std"] diff --git a/access-segregator/src/mock.rs b/access-segregator/src/mock.rs index 626dc990..ccbbfb5b 100644 --- a/access-segregator/src/mock.rs +++ b/access-segregator/src/mock.rs @@ -1,8 +1,6 @@ // The Licensed Work is (c) 2022 Sygma // SPDX-License-Identifier: LGPL-3.0-only -#![cfg(test)] - use frame_support::{ pallet_prelude::ConstU32, parameter_types, @@ -64,6 +62,7 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = ConstU32<2>; + type RuntimeTask = (); } parameter_types! { @@ -83,7 +82,7 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = (); type MaxFreezes = (); type RuntimeHoldReason = (); - type MaxHolds = (); + type RuntimeFreezeReason = (); } parameter_types! { diff --git a/basic-fee-handler/Cargo.toml b/basic-fee-handler/Cargo.toml index abc2fa6e..c7e80ac9 100644 --- a/basic-fee-handler/Cargo.toml +++ b/basic-fee-handler/Cargo.toml @@ -9,14 +9,14 @@ codec = { package = "parity-scale-codec", version = "3.6.1", default-features = scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde", "decode"] } # Substrate -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false, optional = true } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false, optional = true } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Local sygma-traits = { path = "../traits", default-features = false } @@ -24,12 +24,12 @@ sygma-access-segregator = { path = "../access-segregator", default-features = fa [dev-dependencies] # Substrate -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } [features] default = ["std"] diff --git a/basic-fee-handler/src/benchmarking.rs b/basic-fee-handler/src/benchmarking.rs index f920bc56..37324a51 100644 --- a/basic-fee-handler/src/benchmarking.rs +++ b/basic-fee-handler/src/benchmarking.rs @@ -10,7 +10,7 @@ use frame_system::RawOrigin as SystemOrigin; use sp_std::vec; use sygma_traits::DomainID; -use xcm::latest::prelude::*; +use xcm::v4::prelude::*; #[benchmarks] mod benchmarks { @@ -19,7 +19,7 @@ mod benchmarks { #[benchmark] fn set_fee() { let dest_domain_id: DomainID = 1; - let native_location: MultiLocation = MultiLocation::here(); + let native_location: Location = Location::here(); let fee = 1_000_000_000_000u128; // 1 with 12 decimals #[extrinsic_call] diff --git a/basic-fee-handler/src/lib.rs b/basic-fee-handler/src/lib.rs index 5737175e..7472ba9d 100644 --- a/basic-fee-handler/src/lib.rs +++ b/basic-fee-handler/src/lib.rs @@ -21,7 +21,8 @@ pub mod pallet { use frame_system::pallet_prelude::*; use sp_std::boxed::Box; use sygma_traits::{DomainID, FeeHandler}; - use xcm::latest::{AssetId, MultiAsset}; + use xcm::opaque::v4::Asset; + use xcm::v4::AssetId; const STORAGE_VERSION: StorageVersion = StorageVersion::new(0); @@ -96,7 +97,7 @@ pub mod pallet { } impl FeeHandler for Pallet { - fn get_fee(domain: DomainID, asset: MultiAsset) -> Option { + fn get_fee(domain: DomainID, asset: Asset) -> Option { AssetFees::::get((domain, &asset.id)) } } @@ -112,36 +113,41 @@ pub mod pallet { use frame_support::{assert_noop, assert_ok}; use sp_std::boxed::Box; use sygma_traits::DomainID; - use xcm::latest::{prelude::*, MultiLocation}; + use xcm::opaque::v4::Junctions::Here; + use xcm::opaque::v4::Location; + use xcm::v4::prelude::*; #[test] fn set_get_fee() { new_test_ext().execute_with(|| { let dest_domain_id: DomainID = 0; let another_dest_domain_id: DomainID = 1; - let asset_id_a = Concrete(MultiLocation::new(1, Here)); + let asset_id_a = AssetId(Location::new(1, Here)); let amount_a = 100u128; - let asset_id_b = Concrete(MultiLocation::new(2, Here)); + let asset_id_b = AssetId(Location::new(2, Here)); let amount_b = 101u128; // set fee 100 with assetId asset_id_a for one domain assert_ok!(BasicFeeHandler::set_fee( Origin::root(), dest_domain_id, - Box::new(asset_id_a), + Box::new(asset_id_a.clone()), amount_a )); // set fee 200 with assetId asset_id_a for another domain assert_ok!(BasicFeeHandler::set_fee( Origin::root(), another_dest_domain_id, - Box::new(asset_id_a), + Box::new(asset_id_a.clone()), amount_a * 2 )); - assert_eq!(AssetFees::::get((dest_domain_id, asset_id_a)).unwrap(), amount_a); assert_eq!( - AssetFees::::get((another_dest_domain_id, asset_id_a)).unwrap(), + AssetFees::::get((dest_domain_id, asset_id_a.clone())).unwrap(), + amount_a + ); + assert_eq!( + AssetFees::::get((another_dest_domain_id, asset_id_a.clone())).unwrap(), amount_a * 2 ); @@ -149,16 +155,25 @@ pub mod pallet { assert_ok!(BasicFeeHandler::set_fee( Origin::root(), dest_domain_id, - Box::new(asset_id_b), + Box::new(asset_id_b.clone()), amount_b )); - assert_eq!(AssetFees::::get((dest_domain_id, asset_id_b)).unwrap(), amount_b); + assert_eq!( + AssetFees::::get((dest_domain_id, asset_id_b.clone())).unwrap(), + amount_b + ); // fee of asset_id_a should not be equal to amount_b - assert_ne!(AssetFees::::get((dest_domain_id, asset_id_a)).unwrap(), amount_b); + assert_ne!( + AssetFees::::get((dest_domain_id, asset_id_a.clone())).unwrap(), + amount_b + ); // fee of asset_id_b should not be equal to amount_a - assert_ne!(AssetFees::::get((dest_domain_id, asset_id_b)).unwrap(), amount_a); + assert_ne!( + AssetFees::::get((dest_domain_id, asset_id_b.clone())).unwrap(), + amount_a + ); // permission test: unauthorized account should not be able to set fee let unauthorized_account = Origin::from(Some(ALICE)); @@ -166,7 +181,7 @@ pub mod pallet { BasicFeeHandler::set_fee( unauthorized_account, dest_domain_id, - Box::new(asset_id_a), + Box::new(asset_id_a.clone()), amount_a ), basic_fee_handler::Error::::AccessDenied @@ -175,12 +190,12 @@ pub mod pallet { assert_events(vec![ Event::BasicFeeHandler(BasicFeeHandlerEvent::FeeSet { domain: dest_domain_id, - asset: asset_id_a, + asset: asset_id_a.clone(), amount: amount_a, }), Event::BasicFeeHandler(BasicFeeHandlerEvent::FeeSet { domain: another_dest_domain_id, - asset: asset_id_a, + asset: asset_id_a.clone(), amount: amount_a * 2, }), Event::BasicFeeHandler(BasicFeeHandlerEvent::FeeSet { @@ -196,19 +211,19 @@ pub mod pallet { fn access_control() { new_test_ext().execute_with(|| { let dest_domain_id: DomainID = 0; - let asset_id = Concrete(MultiLocation::new(0, Here)); + let asset_id = AssetId(Location::new(0, Here)); assert_ok!(BasicFeeHandler::set_fee( Origin::root(), dest_domain_id, - Box::new(asset_id), + Box::new(asset_id.clone()), 100 ),); assert_noop!( BasicFeeHandler::set_fee( Some(ALICE).into(), dest_domain_id, - Box::new(asset_id), + Box::new(asset_id.clone()), 200 ), basic_fee_handler::Error::::AccessDenied @@ -234,10 +249,13 @@ pub mod pallet { assert_ok!(BasicFeeHandler::set_fee( Some(ALICE).into(), dest_domain_id, - Box::new(asset_id), + Box::new(asset_id.clone()), 200 ),); - assert_eq!(AssetFees::::get((dest_domain_id, asset_id)).unwrap(), 200); + assert_eq!( + AssetFees::::get((dest_domain_id, asset_id.clone())).unwrap(), + 200 + ); }) } } diff --git a/basic-fee-handler/src/mock.rs b/basic-fee-handler/src/mock.rs index aee6304a..c0f57e2b 100644 --- a/basic-fee-handler/src/mock.rs +++ b/basic-fee-handler/src/mock.rs @@ -1,8 +1,6 @@ // The Licensed Work is (c) 2022 Sygma // SPDX-License-Identifier: LGPL-3.0-only -#![cfg(test)] - use frame_support::{ pallet_prelude::ConstU32, parameter_types, @@ -65,6 +63,7 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = ConstU32<2>; + type RuntimeTask = (); } parameter_types! { @@ -84,7 +83,7 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = (); type MaxFreezes = (); type RuntimeHoldReason = (); - type MaxHolds = (); + type RuntimeFreezeReason = (); } parameter_types! { diff --git a/bridge-forwarder/Cargo.toml b/bridge-forwarder/Cargo.toml index c65c7a64..2fcbb2c7 100644 --- a/bridge-forwarder/Cargo.toml +++ b/bridge-forwarder/Cargo.toml @@ -10,38 +10,38 @@ scale-info = { version = "2.5.0", default-features = false, features = ["derive" hex-literal = { version = "0.3", default-features = false } # Substrate -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Cumulus -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Local sygma-traits = { path = "../traits", default-features = false } [dev-dependencies] # Substrate -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Polkadot -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Local sygma-traits = { path = "../traits" } diff --git a/bridge-forwarder/src/lib.rs b/bridge-forwarder/src/lib.rs index 52cda552..2d7bdfb8 100644 --- a/bridge-forwarder/src/lib.rs +++ b/bridge-forwarder/src/lib.rs @@ -13,7 +13,8 @@ pub mod xcm_asset_transactor; pub mod pallet { use frame_support::pallet_prelude::*; use frame_support::traits::StorageVersion; - use xcm::latest::{Junction, MultiAsset, MultiLocation}; + use xcm::opaque::v4::{Asset, Location}; + use xcm::v4::Junction; use sygma_traits::{Bridge, TransactorForwarder}; @@ -33,20 +34,20 @@ pub mod pallet { #[pallet::event] #[pallet::generate_deposit(pub (super) fn deposit_event)] pub enum Event { - XCMTransferForward { asset: MultiAsset, origin: MultiLocation, dest: MultiLocation }, - OtherWorldTransferForward { asset: MultiAsset, origin: MultiLocation, dest: MultiLocation }, + XCMTransferForward { asset: Asset, origin: Location, dest: Location }, + OtherWorldTransferForward { asset: Asset, origin: Location, dest: Location }, } impl TransactorForwarder for Pallet { fn xcm_transactor_forwarder( origin: [u8; 32], - what: MultiAsset, - dest: MultiLocation, + what: Asset, + dest: Location, ) -> DispatchResult { let cap_weight: Weight = Weight::from_all(u64::MAX); - T::XCMBridge::transfer(origin, what.clone(), dest, Some(cap_weight))?; + T::XCMBridge::transfer(origin, what.clone(), dest.clone(), Some(cap_weight))?; - let origin_location: MultiLocation = + let origin_location: Location = Junction::AccountId32 { network: None, id: origin }.into(); Pallet::::deposit_event(Event::XCMTransferForward { @@ -60,12 +61,12 @@ pub mod pallet { fn other_world_transactor_forwarder( origin: [u8; 32], - what: MultiAsset, - dest: MultiLocation, + what: Asset, + dest: Location, ) -> DispatchResult { - T::SygmaBridge::transfer(origin, what.clone(), dest, None)?; + T::SygmaBridge::transfer(origin, what.clone(), dest.clone(), None)?; - let origin_location: MultiLocation = + let origin_location: Location = Junction::AccountId32 { network: None, id: origin }.into(); Pallet::::deposit_event(Event::OtherWorldTransferForward { @@ -83,12 +84,17 @@ pub mod pallet { use codec::Encode; use frame_support::{assert_ok, traits::tokens::fungibles::Create as FungibleCerate}; use hex_literal::hex; - use xcm::latest::{Junction, XcmContext}; - use xcm::prelude::{ - AccountId32, Concrete, Fungible, GeneralKey, Here, Parachain, X1, X2, X3, X4, + use sp_std::sync::Arc; + use xcm::latest::AssetId; + use xcm::prelude::{AccountId32, Fungible, GeneralKey, Here, Parachain}; + use xcm::v4::Junction::GeneralIndex; + use xcm::v4::Junctions; + use xcm::v4::{Asset, Location}; + use xcm::v4::{ + Junction, + Junctions::{X1, X2, X3, X4}, + XcmContext, }; - use xcm::v3::Junction::GeneralIndex; - use xcm::v3::{MultiAsset, MultiLocation}; use xcm_executor::traits::TransactAsset; use sygma_traits::{AssetTypeIdentifier, TransactorForwarder}; @@ -104,15 +110,14 @@ pub mod pallet { #[test] fn test_xcm_transactor_forwarder() { new_test_ext().execute_with(|| { - let asset: MultiAsset = - (Concrete(MultiLocation::new(0, Here)), Fungible(10u128)).into(); - let dest: MultiLocation = - MultiLocation::new(1, X2(Parachain(1), GeneralIndex(1u128))); + let asset: Asset = (AssetId(Location::new(0, Here)), Fungible(10u128)).into(); + let dest: Location = + Location::new(1, Junctions::X2(Arc::new([Parachain(1), GeneralIndex(1u128)]))); assert_ok!(SygmaBridgeForwarder::xcm_transactor_forwarder( ALICE.into(), asset.clone(), - dest + dest.clone() )); assert_events(vec![RuntimeEvent::SygmaBridgeForwarder( @@ -128,15 +133,14 @@ pub mod pallet { #[test] fn test_other_world_transactor_forwarder() { new_test_ext().execute_with(|| { - let asset: MultiAsset = - (Concrete(MultiLocation::new(0, Here)), Fungible(10u128)).into(); - let dest: MultiLocation = - MultiLocation::new(1, X2(Parachain(1), GeneralIndex(1u128))); + let asset: Asset = (AssetId(Location::new(0, Here)), Fungible(10u128)).into(); + let dest: Location = + Location::new(1, Junctions::X2(Arc::new([Parachain(1), GeneralIndex(1u128)]))); assert_ok!(SygmaBridgeForwarder::other_world_transactor_forwarder( ALICE.into(), asset.clone(), - dest + dest.clone() )); assert_events(vec![RuntimeEvent::SygmaBridgeForwarder( @@ -152,21 +156,25 @@ pub mod pallet { #[test] fn test_asset_type_identifier_native_asset() { new_test_ext().execute_with(|| { - let asset_local_native: MultiAsset = - (Concrete(MultiLocation::new(0, Here)), Fungible(10u128)).into(); + let asset_local_native: Asset = + (AssetId(Location::new(0, Here)), Fungible(10u128)).into(); assert!(NativeAssetTypeIdentifier::::is_native_asset( &asset_local_native )); // ParachainInfo is given parachain ID as 100 - let asset_foreign_native: MultiAsset = - (Concrete(MultiLocation::new(1, X1(Parachain(100)))), Fungible(10u128)).into(); + let asset_foreign_native: Asset = ( + AssetId(Location::new(1, Junctions::X1(Arc::new([Parachain(100)])))), + Fungible(10u128), + ) + .into(); assert!(NativeAssetTypeIdentifier::::is_native_asset( &asset_foreign_native )); - let asset_foreign_asset: MultiAsset = - (Concrete(MultiLocation::new(0, X1(Parachain(100)))), Fungible(10u128)).into(); + let asset_foreign_asset: Asset = + (AssetId(Location::new(0, X1(Arc::new([Parachain(100)])))), Fungible(10u128)) + .into(); assert!(!NativeAssetTypeIdentifier::::is_native_asset( &asset_foreign_asset )); @@ -176,12 +184,12 @@ pub mod pallet { #[test] fn test_xcm_asset_transactor_local() { new_test_ext().execute_with(|| { - let local_recipient: MultiLocation = - MultiLocation::new(0, X1(AccountId32 { network: None, id: BOB.into() })); + let local_recipient: Location = + Location::new(0, X1(Arc::new([AccountId32 { network: None, id: BOB.into() }]))); // send native asset to local parachain - let local_native_asset: MultiAsset = - (Concrete(MultiLocation::new(0, Here)), Fungible(10u128)).into(); + let local_native_asset: Asset = + (AssetId(Location::new(0, Here)), Fungible(10u128)).into(); assert_ok!(XCMAssetTransactor::< CurrencyTransactor, FungiblesTransactor, @@ -190,7 +198,7 @@ pub mod pallet { >::deposit_asset( &local_native_asset, &local_recipient, - &XcmContext::with_message_id([0; 32]) + Some(&XcmContext::with_message_id([0; 32])) )); assert_eq!(Balances::free_balance(BOB), 10u128); @@ -200,8 +208,8 @@ pub mod pallet { >>::create(UsdtAssetId::get(), ASSET_OWNER, true, 1,)); // send foreign asset to local parachain - let local_foreign_asset: MultiAsset = - (Concrete(UsdtLocation::get()), Fungible(10u128)).into(); + let local_foreign_asset: Asset = + (AssetId(UsdtLocation::get()), Fungible(10u128)).into(); assert_ok!(XCMAssetTransactor::< CurrencyTransactor, FungiblesTransactor, @@ -210,7 +218,7 @@ pub mod pallet { >::deposit_asset( &local_foreign_asset, &local_recipient, - &XcmContext::with_message_id([0; 32]) + Some(&XcmContext::with_message_id([0; 32])) )); assert_eq!(Assets::balance(UsdtAssetId::get(), &BOB), 10u128); }) @@ -220,9 +228,9 @@ pub mod pallet { fn test_xcm_asset_transactor_outer() { new_test_ext().execute_with(|| { let dest_domain_id = 1; - let outer_recipient: MultiLocation = MultiLocation::new( + let outer_recipient: Location = Location::new( 1, - X4( + X4(Arc::new([ GeneralKey { length: 5, data: hex![ @@ -237,12 +245,12 @@ pub mod pallet { }, GeneralIndex(dest_domain_id), slice_to_generalkey(b"ethereum recipient"), - ), + ])), ); // send native asset to the outer world - let native_asset: MultiAsset = - (Concrete(MultiLocation::new(0, Here)), Fungible(10u128)).into(); + let native_asset: Asset = + (AssetId(Location::new(0, Here)), Fungible(10u128)).into(); assert_ok!(XCMAssetTransactor::< CurrencyTransactor, FungiblesTransactor, @@ -251,11 +259,12 @@ pub mod pallet { >::deposit_asset( &native_asset, &outer_recipient, - &XcmContext::with_message_id([0; 32]) + Some(&XcmContext::with_message_id([0; 32])) )); // asset tmp holder for outer world transfer let tmp_account = sp_io::hashing::blake2_256( - &MultiLocation::new(0, X1(GeneralKey { length: 8, data: [1u8; 32] })).encode(), + &Location::new(0, X1(Arc::new([GeneralKey { length: 8, data: [1u8; 32] }]))) + .encode(), ); assert_eq!( Balances::free_balance(sp_runtime::AccountId32::from(tmp_account)), @@ -268,8 +277,7 @@ pub mod pallet { >>::create(UsdtAssetId::get(), ASSET_OWNER, true, 1,)); // send foreign asset to the outer world - let foreign_asset: MultiAsset = - (Concrete(UsdtLocation::get()), Fungible(10u128)).into(); + let foreign_asset: Asset = (AssetId(UsdtLocation::get()), Fungible(10u128)).into(); assert_ok!(XCMAssetTransactor::< CurrencyTransactor, FungiblesTransactor, @@ -278,11 +286,12 @@ pub mod pallet { >::deposit_asset( &foreign_asset, &outer_recipient, - &XcmContext::with_message_id([0; 32]) + Some(&XcmContext::with_message_id([0; 32])) )); // asset tmp holder for outer world transfer let tmp_account = sp_io::hashing::blake2_256( - &MultiLocation::new(0, X1(GeneralKey { length: 8, data: [1u8; 32] })).encode(), + &Location::new(0, X1(Arc::new([GeneralKey { length: 8, data: [1u8; 32] }]))) + .encode(), ); assert_eq!( Assets::balance(UsdtAssetId::get(), sp_runtime::AccountId32::from(tmp_account)), @@ -294,14 +303,14 @@ pub mod pallet { #[test] fn test_xcm_asset_transactor_substrate() { new_test_ext().execute_with(|| { - let substrate_recipient: MultiLocation = MultiLocation::new( + let substrate_recipient: Location = Location::new( 1, - X2(Parachain(2005), slice_to_generalkey(b"substrate recipient")), + X2(Arc::new([Parachain(2005), slice_to_generalkey(b"substrate recipient")])), ); // send native asset to the substrate world - let native_asset: MultiAsset = - (Concrete(MultiLocation::new(0, Here)), Fungible(10u128)).into(); + let native_asset: Asset = + (AssetId(Location::new(0, Here)), Fungible(10u128)).into(); assert_ok!(XCMAssetTransactor::< CurrencyTransactor, FungiblesTransactor, @@ -310,11 +319,12 @@ pub mod pallet { >::deposit_asset( &native_asset, &substrate_recipient, - &XcmContext::with_message_id([0; 32]) + Some(&XcmContext::with_message_id([0; 32])) )); // asset tmp holder for substrate world transfer let tmp_account = sp_io::hashing::blake2_256( - &MultiLocation::new(0, X1(GeneralKey { length: 8, data: [2u8; 32] })).encode(), + &Location::new(0, X1(Arc::new([GeneralKey { length: 8, data: [2u8; 32] }]))) + .encode(), ); assert_eq!( Balances::free_balance(sp_runtime::AccountId32::from(tmp_account)), @@ -327,8 +337,7 @@ pub mod pallet { >>::create(UsdtAssetId::get(), ASSET_OWNER, true, 1,)); // send foreign asset to the outer world - let foreign_asset: MultiAsset = - (Concrete(UsdtLocation::get()), Fungible(10u128)).into(); + let foreign_asset: Asset = (AssetId(UsdtLocation::get()), Fungible(10u128)).into(); assert_ok!(XCMAssetTransactor::< CurrencyTransactor, FungiblesTransactor, @@ -337,11 +346,12 @@ pub mod pallet { >::deposit_asset( &foreign_asset, &substrate_recipient, - &XcmContext::with_message_id([0; 32]) + Some(&XcmContext::with_message_id([0; 32])) )); // asset tmp holder for substrate world transfer let tmp_account = sp_io::hashing::blake2_256( - &MultiLocation::new(0, X1(GeneralKey { length: 8, data: [2u8; 32] })).encode(), + &Location::new(0, X1(Arc::new([GeneralKey { length: 8, data: [2u8; 32] }]))) + .encode(), ); assert_eq!( Assets::balance(UsdtAssetId::get(), sp_runtime::AccountId32::from(tmp_account)), @@ -353,18 +363,18 @@ pub mod pallet { #[test] fn test_xcm_asset_transactor_other_dest() { new_test_ext().execute_with(|| { - let other_recipient: MultiLocation = MultiLocation::new( + let other_recipient: Location = Location::new( 2, - X3( + X3(Arc::new([ Parachain(2005), slice_to_generalkey(b"substrate recipient"), AccountId32 { network: None, id: BOB.into() }, - ), + ])), ); // send native asset to non-supported world - let native_asset: MultiAsset = - (Concrete(MultiLocation::new(0, Here)), Fungible(10u128)).into(); + let native_asset: Asset = + (AssetId(Location::new(0, Here)), Fungible(10u128)).into(); assert_ok!(XCMAssetTransactor::< CurrencyTransactor, FungiblesTransactor, @@ -373,19 +383,21 @@ pub mod pallet { >::deposit_asset( &native_asset, &other_recipient, - &XcmContext::with_message_id([0; 32]) + Some(&XcmContext::with_message_id([0; 32])) )); // asset tmp holder for substrate world and outer world transfer, should not receive any token let tmp_account_outer = sp_io::hashing::blake2_256( - &MultiLocation::new(0, X1(GeneralKey { length: 8, data: [1u8; 32] })).encode(), + &Location::new(0, X1(Arc::new([GeneralKey { length: 8, data: [1u8; 32] }]))) + .encode(), ); assert_eq!( Balances::free_balance(sp_runtime::AccountId32::from(tmp_account_outer)), 0u128 ); let tmp_account_substrate = sp_io::hashing::blake2_256( - &MultiLocation::new(0, X1(GeneralKey { length: 8, data: [2u8; 32] })).encode(), + &Location::new(0, X1(Arc::new([GeneralKey { length: 8, data: [2u8; 32] }]))) + .encode(), ); assert_eq!( Balances::free_balance(sp_runtime::AccountId32::from(tmp_account_substrate)), @@ -397,12 +409,14 @@ pub mod pallet { #[test] fn test_xcm_asset_transactor_withdraw() { new_test_ext().execute_with(|| { - let from_account: MultiLocation = - MultiLocation::new(0, X1(AccountId32 { network: None, id: ALICE.into() })); + let from_account: Location = Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: ALICE.into() }])), + ); // withdraw native asset from Alice - let native_asset: MultiAsset = - (Concrete(MultiLocation::new(0, Here)), Fungible(10u128)).into(); + let native_asset: Asset = + (AssetId(Location::new(0, Here)), Fungible(10u128)).into(); assert_ok!(XCMAssetTransactor::< CurrencyTransactor, FungiblesTransactor, @@ -425,8 +439,7 @@ pub mod pallet { assert_eq!(Assets::balance(UsdtAssetId::get(), &ALICE), ENDOWED_BALANCE); // withdraw foreign asset from Alice - let foreign_asset: MultiAsset = - (Concrete(UsdtLocation::get()), Fungible(10u128)).into(); + let foreign_asset: Asset = (AssetId(UsdtLocation::get()), Fungible(10u128)).into(); assert_ok!(XCMAssetTransactor::< CurrencyTransactor, FungiblesTransactor, diff --git a/bridge-forwarder/src/mock.rs b/bridge-forwarder/src/mock.rs index 3c36b993..71a87796 100644 --- a/bridge-forwarder/src/mock.rs +++ b/bridge-forwarder/src/mock.rs @@ -1,8 +1,6 @@ // The Licensed Work is (c) 2022 Sygma // SPDX-License-Identifier: LGPL-3.0-only -#![cfg(test)] - use cumulus_primitives_core::ParaId; use std::marker::PhantomData; @@ -22,12 +20,18 @@ use polkadot_parachain_primitives::primitives::Sibling; use sp_runtime::testing::H256; use sp_runtime::traits::{BlakeTwo256, IdentityLookup}; use sp_runtime::{AccountId32, BuildStorage}; -use xcm::latest::{BodyId, Junction, MultiAsset, MultiLocation, NetworkId}; - -use xcm::prelude::{Concrete, Fungible, GeneralKey, Parachain, X1, X3}; +use xcm::v4::{Asset, AssetId as XcmAssetId, BodyId, Junction, Location, NetworkId}; +use sp_std::sync::Arc; use sygma_traits::{AssetTypeIdentifier, Bridge, TransactorForwarder}; -use xcm::v3::Weight; +use xcm::v4::prelude::{ + Fungible, GeneralKey, + Junctions::{X1, X3}, + Parachain, +}; +use xcm::v4::Weight; +// allowing the CurrencyAdapter for now and using FungibleAdapter in the next version upgrade +#[allow(deprecated)] use xcm_builder::{ AccountId32Aliases, CurrencyAdapter, FungiblesAdapter, IsConcrete, NoChecking, ParentIsPreset, SiblingParachainConvertsVia, @@ -65,6 +69,7 @@ impl frame_system::Config for Runtime { type BlockLength = (); type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; + type RuntimeTask = (); type Nonce = u64; type Hash = H256; type Hashing = BlakeTwo256; @@ -100,8 +105,8 @@ impl pallet_balances::Config for Runtime { type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); type RuntimeHoldReason = (); - type MaxHolds = ConstU32<1>; type MaxFreezes = ConstU32<1>; + type RuntimeFreezeReason = (); } parameter_types! { @@ -158,8 +163,8 @@ pub struct BridgeImplRuntime(PhantomData); impl Bridge for BridgeImplRuntime { fn transfer( _sender: [u8; 32], - _asset: MultiAsset, - _dest: MultiLocation, + _asset: Asset, + _dest: Location, _max_weight: Option, ) -> DispatchResult { Ok(()) @@ -201,14 +206,16 @@ pub fn assert_events(mut expected: Vec) { // mock the generic types of XCMAssetTransactor parameter_types! { - pub NativeLocation: MultiLocation = MultiLocation::here(); + pub NativeLocation: Location = Location::here(); pub UsdtAssetId: AssetId = 1; - pub UsdtLocation: MultiLocation = MultiLocation::new( + pub UsdtLocation: Location = Location::new( 1, X3( - Parachain(2005), - slice_to_generalkey(b"sygma"), - slice_to_generalkey(b"usdt"), + Arc::new([ + Parachain(2005), + slice_to_generalkey(b"sygma"), + slice_to_generalkey(b"usdt") + ]) ), ); pub CheckingAccount: AccountId32 = AccountId32::new([102u8; 32]); @@ -216,12 +223,14 @@ parameter_types! { pub const RelayNetwork: NetworkId = NetworkId::Rococo; } +// allowing the CurrencyAdapter for now and using FungibleAdapter in the next version upgrade +#[allow(deprecated)] pub type CurrencyTransactor = CurrencyAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId32, @@ -234,7 +243,7 @@ pub type FungiblesTransactor = FungiblesAdapter< Assets, // Use this currency when it is a fungible asset matching the given location or name: SimpleForeignAssetConverter, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId32, @@ -252,9 +261,9 @@ pub type LocationToAccountId = ( pub struct SimpleForeignAssetConverter(PhantomData<()>); impl MatchesFungibles for SimpleForeignAssetConverter { - fn matches_fungibles(a: &MultiAsset) -> result::Result<(AssetId, Balance), ExecutionError> { + fn matches_fungibles(a: &Asset) -> result::Result<(AssetId, Balance), ExecutionError> { match (&a.fun, &a.id) { - (Fungible(ref amount), Concrete(ref id)) => { + (Fungible(ref amount), XcmAssetId(ref id)) => { if id == &UsdtLocation::get() { Ok((UsdtAssetId::get(), *amount)) } else { @@ -270,16 +279,16 @@ impl MatchesFungibles for SimpleForeignAssetConverter { /// This impl is only for local mock purpose, the integrated parachain might have their own version pub struct NativeAssetTypeIdentifier(PhantomData); impl> AssetTypeIdentifier for NativeAssetTypeIdentifier { - /// check if the given MultiAsset is a native asset - fn is_native_asset(asset: &MultiAsset) -> bool { + /// check if the given Asset is a native asset + fn is_native_asset(asset: &Asset) -> bool { // currently there are two multilocations are considered as native asset: - // 1. integrated parachain native asset(MultiLocation::here()) - // 2. other parachain native asset(MultiLocation::new(1, X1(Parachain(T::get().into())))) + // 1. integrated parachain native asset(Location::here()) + // 2. other parachain native asset(Location::new(1, X1(Parachain(T::get().into())))) let native_locations = - [MultiLocation::here(), MultiLocation::new(1, X1(Parachain(T::get().into())))]; + [Location::here(), Location::new(1, X1(Arc::new([Parachain(T::get().into())])))]; match (&asset.id, &asset.fun) { - (Concrete(ref id), Fungible(_)) => native_locations.contains(id), + (XcmAssetId(ref id), Fungible(_)) => native_locations.contains(id), _ => false, } } @@ -303,16 +312,16 @@ pub struct ForwarderImplRuntime; impl TransactorForwarder for ForwarderImplRuntime { fn xcm_transactor_forwarder( _sender: [u8; 32], - _what: MultiAsset, - _dest: MultiLocation, + _what: Asset, + _dest: Location, ) -> DispatchResult { Ok(()) } fn other_world_transactor_forwarder( _sender: [u8; 32], - _what: MultiAsset, - _dest: MultiLocation, + _what: Asset, + _dest: Location, ) -> DispatchResult { Ok(()) } diff --git a/bridge-forwarder/src/xcm_asset_transactor.rs b/bridge-forwarder/src/xcm_asset_transactor.rs index ab70bcd2..d736b719 100644 --- a/bridge-forwarder/src/xcm_asset_transactor.rs +++ b/bridge-forwarder/src/xcm_asset_transactor.rs @@ -5,10 +5,12 @@ use core::marker::PhantomData; use codec::Encode; use hex_literal::hex; +use sp_std::sync::Arc; use sygma_traits::{AssetTypeIdentifier, TransactorForwarder}; -use xcm::latest::{Junction, MultiAsset, MultiLocation, XcmContext}; -use xcm::prelude::*; -use xcm_executor::{traits::TransactAsset, Assets}; +use xcm::opaque::v4::{Asset, Location}; +use xcm::v4::prelude::*; +use xcm::v4::{Junction, XcmContext}; +use xcm_executor::{traits::TransactAsset, AssetsInHolding}; pub struct XCMAssetTransactor( PhantomData<(CurrencyTransactor, FungiblesTransactor, AssetTypeChecker, Forwarder)>, @@ -26,51 +28,80 @@ impl< // 1. recipient is on the local parachain // 2. recipient is on non-substrate chain(evm, cosmos, etc.) // 3. recipient is on the remote parachain - fn deposit_asset(what: &MultiAsset, who: &MultiLocation, context: &XcmContext) -> XcmResult { - match (who.parents, who.interior) { + fn deposit_asset(what: &Asset, who: &Location, context: Option<&XcmContext>) -> XcmResult { + match (who.parents, who.clone().interior) { // 1. recipient is on the local parachain - (0, X1(AccountId32 { .. })) | (0, X1(AccountKey20 { .. })) | (1, X1(Parachain(_))) => { - // check if the asset is native, and call the corresponding deposit_asset() - if AssetTypeChecker::is_native_asset(what) { - CurrencyTransactor::deposit_asset(what, who, context)?; - } else { - FungiblesTransactor::deposit_asset(what, who, context)? + (0, Junctions::X1(xs)) => { + let [a] = *xs; + match a { + AccountId32 { .. } | AccountKey20 { .. } | Parachain(_) => { + // check if the asset is native, and call the corresponding deposit_asset() + if AssetTypeChecker::is_native_asset(what) { + CurrencyTransactor::deposit_asset(what, who, context)?; + } else { + FungiblesTransactor::deposit_asset(what, who, context)? + } + }, + _ => { + // this route is not supported + return Err(XcmError::FailedToTransactAsset( + "Unsupported X1 local destination", + )); + }, } }, - // recipient is on the remote chain - _ => { - // 2. recipient is on non-substrate chain(evm, cosmos, etc.), will forward to sygma bridge pallet - match who.interior { + // 2. recipient is on non-substrate chain(evm, cosmos, etc.), will forward to sygma bridge pallet + (_, Junctions::X4(xs)) => { + let [a, b, c, d] = *xs; + match (a, b, c, d) { // sygma: 7379676d61000000000000000000000000000000000000000000000000000000 - // sygma-bridge: 7379676d612d6272696467650000000000000000000000000000000000000000 + // sygma-bridge: 7379676d612d6272696467650000000000000000000000000000000000000000 // outer world multilocation pattern: { Parachain(X), GeneralKey { length: 5, data: b"sygma"}, GeneralKey { length: 12, data: b"sygma-bridge"}, GeneralIndex(domainID), GeneralKey { length: length_of_recipient_address, data: recipient_address} } - X4(GeneralKey { length: 5, data: hex!["7379676d61000000000000000000000000000000000000000000000000000000"]}, GeneralKey { length: 12, data: hex!["7379676d612d6272696467650000000000000000000000000000000000000000"]}, GeneralIndex(..), GeneralKey { .. }) => { + (GeneralKey { length: 5, data: hex!["7379676d61000000000000000000000000000000000000000000000000000000"]}, GeneralKey { length: 12, data: hex!["7379676d612d6272696467650000000000000000000000000000000000000000"]}, GeneralIndex(..), GeneralKey { .. }) => { // check if the asset is native or foreign, and deposit the asset to a tmp account first - let tmp_account = sp_io::hashing::blake2_256(&MultiLocation::new(0, X1(GeneralKey { length: 8, data: [1u8; 32] })).encode()); - if AssetTypeChecker::is_native_asset(what) { - CurrencyTransactor::deposit_asset(&what.clone(), &Junction::AccountId32 { network: None, id: tmp_account }.into(), context)?; - } else { - FungiblesTransactor::deposit_asset(&what.clone(), &Junction::AccountId32 { network: None, id: tmp_account }.into(), context)? - } + let tmp_account = sp_io::hashing::blake2_256(&Location::new(0, Junctions::X1(Arc::new([GeneralKey { length: 8, data: [1u8; 32] }]))).encode()); + if AssetTypeChecker::is_native_asset(what) { + CurrencyTransactor::deposit_asset(&what.clone(), &Junction::AccountId32 { network: None, id: tmp_account }.into(), context)?; + } else { + FungiblesTransactor::deposit_asset(&what.clone(), &Junction::AccountId32 { network: None, id: tmp_account }.into(), context)? + } - Forwarder::other_world_transactor_forwarder(tmp_account, what.clone(), *who).map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; - } - // 3. recipient is on remote parachain, will forward to xcm bridge pallet - _ => { - // xcm message must have a sender(origin), so a tmp account derived from pallet would be necessary here - let tmp_account = sp_io::hashing::blake2_256(&MultiLocation::new(0, X1(GeneralKey { length: 8, data: [2u8; 32] })).encode()); + Forwarder::other_world_transactor_forwarder(tmp_account, what.clone(), who.clone()).map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; + }, + _ => { + // this route is not supported + return Err(XcmError::FailedToTransactAsset("Unsupported X4 Sygma destination")); + } + } + }, + // 3. recipient is on remote parachain, will forward to xcm bridge pallet + _ => { + let tmp_account = sp_io::hashing::blake2_256( + &Location::new( + 0, + Junctions::X1(Arc::new([GeneralKey { length: 8, data: [2u8; 32] }])), + ) + .encode(), + ); - // check if the asset is native or foreign, and call the corresponding deposit_asset(), recipient will be the derived tmp account - // xcm message execution - if AssetTypeChecker::is_native_asset(what) { - CurrencyTransactor::deposit_asset(&what.clone(), &Junction::AccountId32 { network: None, id: tmp_account }.into(), context)?; - } else { - FungiblesTransactor::deposit_asset(&what.clone(), &Junction::AccountId32 { network: None, id: tmp_account }.into(), context)? - } + // check if the asset is native or foreign, and call the corresponding deposit_asset(), recipient will be the derived tmp account + // xcm message execution + if AssetTypeChecker::is_native_asset(what) { + CurrencyTransactor::deposit_asset( + &what.clone(), + &Junction::AccountId32 { network: None, id: tmp_account }.into(), + context, + )?; + } else { + FungiblesTransactor::deposit_asset( + &what.clone(), + &Junction::AccountId32 { network: None, id: tmp_account }.into(), + context, + )? + } - Forwarder::xcm_transactor_forwarder(tmp_account, what.clone(), *who).map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; - } - } + Forwarder::xcm_transactor_forwarder(tmp_account, what.clone(), who.clone()) + .map_err(|e| XcmError::FailedToTransactAsset(e.into()))?; }, } @@ -78,10 +109,10 @@ impl< } fn withdraw_asset( - what: &MultiAsset, - who: &MultiLocation, + what: &Asset, + who: &Location, maybe_context: Option<&XcmContext>, - ) -> Result { + ) -> Result { let assets = if AssetTypeChecker::is_native_asset(what) { CurrencyTransactor::withdraw_asset(what, who, maybe_context)? } else { diff --git a/bridge/Cargo.toml b/bridge/Cargo.toml index 402b7ca0..73a1a39b 100644 --- a/bridge/Cargo.toml +++ b/bridge/Cargo.toml @@ -18,26 +18,26 @@ bounded-collections = { version = "0.1.4", default-features = false } hex-literal = { version = "0.3", default-features = false } # Substrate -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false, optional = true } -sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false, optional = true } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Cumulus -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Local sygma-traits = { path = "../traits", default-features = false } @@ -53,22 +53,22 @@ assert_matches = "1.4.0" hex-literal = "0.3" # Substrate -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0"} +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0"} -parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Local sygma-basic-feehandler = { path = "../basic-fee-handler" } diff --git a/bridge/src/benchmarking.rs b/bridge/src/benchmarking.rs index d674dbd9..d4f0f564 100644 --- a/bridge/src/benchmarking.rs +++ b/bridge/src/benchmarking.rs @@ -21,8 +21,8 @@ use sygma_basic_feehandler::Pallet as BasicFeeHandler; use sygma_fee_handler_router::Pallet as FeeHandlerRouter; use pallet_balances::Pallet as Balances; -use sp_std::{boxed::Box, vec}; -use xcm::latest::prelude::*; +use sp_std::{boxed::Box, vec, Arc}; +use xcm::v4::prelude::*; pub fn slice_to_generalkey(key: &[u8]) -> Junction { let len = key.len(); @@ -115,7 +115,7 @@ mod benchmarks { fn deposit() { let treasury_account: AccountId32 = AccountId32::new([100u8; 32]); let bridge_account: AccountId32 = AccountId32::new([101u8; 32]); - let native_location: MultiLocation = MultiLocation::here(); + let native_location: Location = Location::here(); let dest_domain_id: DomainID = 1; let dest_chain_id: ChainID = U256::from(1); @@ -151,13 +151,13 @@ mod benchmarks { #[extrinsic_call] deposit( SystemOrigin::Signed(caller.clone().into()), - Box::new((Concrete(native_location), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(native_location), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), slice_to_generalkey(&[dest_domain_id]), - ), + ])), }), ); @@ -215,9 +215,12 @@ mod benchmarks { resource_id: native_resourceid, data: SygmaBridge::::create_deposit_data( amount, - MultiLocation::new( + Location::new( 0, - X1(Junction::AccountId32 { network: None, id: caller.clone().into() }), + Arc::new([X1(Junction::AccountId32 { + network: None, + id: caller.clone().into(), + })]), ) .encode(), ), diff --git a/bridge/src/lib.rs b/bridge/src/lib.rs index ceb06a4d..9e55ff71 100644 --- a/bridge/src/lib.rs +++ b/bridge/src/lib.rs @@ -44,7 +44,7 @@ pub mod pallet { }; use sp_std::collections::btree_map::BTreeMap; use sp_std::{boxed::Box, convert::From, vec, vec::Vec}; - use xcm::latest::{prelude::*, MultiLocation}; + use xcm::v4::{prelude::*, Location}; use xcm_executor::traits::TransactAsset; use sygma_traits::{ @@ -113,12 +113,13 @@ pub mod pallet { type AssetTransactor: TransactAsset; /// AssetId and ResourceId pairs + #[pallet::constant] type ResourcePairs: Get>; /// Return true if asset reserved on current chain - type IsReserve: ContainsPair; + type IsReserve: ContainsPair; - /// Extract dest data from given MultiLocation + /// Extract dest data from given Location type ExtractDestData: ExtractDestinationData; /// Config ID for the current pallet instance @@ -198,7 +199,11 @@ pub mod pallet { /// Insufficient balance on sender account InsufficientBalance, /// Asset transactor execution failed - TransactFailed, + TransactFailedDeposit, + TransactFailedWithdraw, + TransactFailedFeeDeposit, + TransactFailedHoldInReserved, + TransactFailedReleaseFromReserved, /// The withdrawn amount can not cover the fee payment FeeTooExpensive, /// MPC address not set @@ -220,7 +225,11 @@ pub mod pallet { /// Transactor operation failed TransactorFailed, /// Deposit data not correct - InvalidDepositData, + InvalidDepositDataInvalidLength, + InvalidDepositDataInvalidAmount, + InvalidDepositDataInvalidRecipientLength, + InvalidDepositDataRecipientLengthNotMatch, + InvalidDepositDataInvalidRecipient, /// Dest domain not supported DestDomainNotSupported, /// Dest chain id not match @@ -435,14 +444,14 @@ pub mod pallet { #[pallet::weight(< T as Config >::WeightInfo::deposit())] pub fn deposit( origin: OriginFor, - asset: Box, - dest: Box, + asset: Box, + dest: Box, ) -> DispatchResult { let sender = ensure_signed(origin)?; ensure!(!MpcAddr::::get().is_clear(), Error::::MissingMpcAddress); - // Extract dest (MultiLocation) to get corresponding dest domainID and Ethereum + // Extract dest (Location) to get corresponding dest domainID and Ethereum // recipient address let (recipient, dest_domain_id) = T::ExtractDestData::extract_dest(&dest).ok_or(Error::::ExtractDestDataFailed)?; @@ -451,7 +460,7 @@ pub mod pallet { ensure!(DestDomainIds::::get(dest_domain_id), Error::::DestDomainNotSupported); - // Extract asset (MultiAsset) to get corresponding ResourceId, transfer amount and the + // Extract asset (Asset) to get corresponding ResourceId, transfer amount and the // transfer type let (resource_id, amount, transfer_type) = Self::extract_asset(&asset.clone()).ok_or(Error::::AssetNotBound)?; @@ -467,33 +476,34 @@ pub mod pallet { &Junction::AccountId32 { network: None, id: sender.clone().into() }.into(), None, ) - .map_err(|_| Error::::TransactFailed)?; + .map_err(|_| Error::::TransactFailedWithdraw)?; // Deposit `fee` of asset to treasury account T::AssetTransactor::deposit_asset( - &(asset.id, Fungible(fee)).into(), + &(asset.id.clone(), Fungible(fee)).into(), &Junction::AccountId32 { network: None, id: T::FeeReserveAccount::get().into() } .into(), // Put empty message hash here because we are not sending XCM message - &XcmContext::with_message_id([0; 32]), + Some(&XcmContext::with_message_id([0; 32])), ) - .map_err(|_| Error::::TransactFailed)?; + .map_err(|_| Error::::TransactFailedFeeDeposit)?; let bridge_amount = amount - fee; + // TODO: FIX THIS: all registered token must have a reserved_account even though it is a mint-burn token let token_reserved_account = Self::get_token_reserved_account(&asset.id) .ok_or(Error::::NoLiquidityHolderAccountBound)?; // Deposit `bridge_amount` of asset to reserve account if asset is reserved in local // chain. - if T::IsReserve::contains(&asset, &MultiLocation::here()) { + if T::IsReserve::contains(&asset, &Location::here()) { T::AssetTransactor::deposit_asset( - &(asset.id, Fungible(bridge_amount)).into(), + &(asset.id.clone(), Fungible(bridge_amount)).into(), &Junction::AccountId32 { network: None, id: token_reserved_account }.into(), // Put empty message hash here because we are not sending XCM message - &XcmContext::with_message_id([0; 32]), + Some(&XcmContext::with_message_id([0; 32])), ) - .map_err(|_| Error::::TransactFailed)?; + .map_err(|_| Error::::TransactFailedHoldInReserved)?; } // Bump deposit nonce @@ -505,7 +515,7 @@ pub mod pallet { // convert the asset decimal let decimal_converted_amount = - T::DecimalConverter::convert_to(&(asset.id, bridge_amount).into()) + T::DecimalConverter::convert_to(&(asset.id.clone(), bridge_amount).into()) .ok_or(Error::::DecimalConversionFail)?; // Emit Deposit event @@ -690,8 +700,8 @@ pub mod pallet { { fn transfer( sender: [u8; 32], - asset: MultiAsset, - dest: MultiLocation, + asset: Asset, + dest: Location, _max_weight: Option, ) -> DispatchResult { let sender_origin = OriginFor::::from(RawOrigin::Signed(sender.into())); @@ -778,7 +788,7 @@ pub mod pallet { } } - let final_keccak_data_input = &vec![SolidityDataType::Bytes(&final_keccak_data)]; + let final_keccak_data_input = &[SolidityDataType::Bytes(&final_keccak_data)]; let bytes = encode_packed(final_keccak_data_input); let hashed_keccak_data = keccak_256(bytes.as_slice()); @@ -798,7 +808,7 @@ pub mod pallet { }; let domain_separator = eip712_domain.separator(); - let typed_data_hash_input = &vec![ + let typed_data_hash_input = &[ SolidityDataType::String("\x19\x01"), SolidityDataType::Bytes(&domain_separator), SolidityDataType::Bytes(&struct_hash), @@ -807,9 +817,9 @@ pub mod pallet { keccak_256(bytes.as_slice()) } - /// Extract asset id and transfer amount from `MultiAsset`, currently only fungible asset + /// Extract asset id and transfer amount from `Asset`, currently only fungible asset /// are supported. - fn extract_asset(asset: &MultiAsset) -> Option<(ResourceId, u128, TransferType)> { + fn extract_asset(asset: &Asset) -> Option<(ResourceId, u128, TransferType)> { match (&asset.fun, &asset.id) { (Fungible(amount), _) => { T::ResourcePairs::get().iter().position(|a| a.0 == asset.id).map(|idx| { @@ -837,26 +847,26 @@ pub mod pallet { /// recipient data bytes bytes 64 - END /// /// Only fungible transfer is supported so far. - fn extract_deposit_data(data: &Vec) -> Result<(u128, MultiLocation), DispatchError> { + fn extract_deposit_data(data: &[u8]) -> Result<(u128, Location), DispatchError> { if data.len() < 64 { - return Err(Error::::InvalidDepositData.into()); + return Err(Error::::InvalidDepositDataInvalidLength.into()); } let amount: u128 = U256::from_big_endian(&data[0..32]) .try_into() - .map_err(|_| Error::::InvalidDepositData)?; + .map_err(|_| Error::::InvalidDepositDataInvalidAmount)?; let recipient_len: usize = U256::from_big_endian(&data[32..64]) .try_into() - .map_err(|_| Error::::InvalidDepositData)?; + .map_err(|_| Error::::InvalidDepositDataInvalidRecipientLength)?; if (data.len() - 64) != recipient_len { - return Err(Error::::InvalidDepositData.into()); + return Err(Error::::InvalidDepositDataRecipientLengthNotMatch.into()); } let recipient = data[64..data.len()].to_vec(); - if let Ok(location) = ::decode(&mut recipient.as_slice()) { + if let Ok(location) = ::decode(&mut recipient.as_slice()) { Ok((amount, location)) } else { - Err(Error::::InvalidDepositData.into()) + Err(Error::::InvalidDepositDataInvalidRecipient.into()) } } @@ -864,7 +874,7 @@ pub mod pallet { T::ResourcePairs::get() .iter() .position(|a| &a.1 == rid) - .map(|idx| T::ResourcePairs::get()[idx].0) + .map(|idx| T::ResourcePairs::get()[idx].0.clone()) } fn hex_zero_padding_32(i: u128) -> [u8; 32] { @@ -899,28 +909,28 @@ pub mod pallet { !Self::is_proposal_executed(proposal.deposit_nonce, proposal.origin_domain_id), Error::::ProposalAlreadyComplete ); - // Extract ResourceId from proposal data to get corresponding asset (MultiAsset) + // Extract ResourceId from proposal data to get corresponding asset (XCM V4 Asset) let asset_id = Self::rid_to_assetid(&proposal.resource_id).ok_or(Error::::AssetNotBound)?; - // Extract Receipt from proposal data to get corresponding location (MultiLocation) + // Extract Receipt from proposal data to get corresponding location (Location) let (amount, location) = Self::extract_deposit_data(&proposal.data)?; // convert the asset decimal let decimal_converted_asset = - T::DecimalConverter::convert_from(&(asset_id, amount).into()) + T::DecimalConverter::convert_from(&(asset_id.clone(), amount).into()) .ok_or(Error::::DecimalConversionFail)?; - let token_reserved_account = Self::get_token_reserved_account(&asset_id) + let token_reserved_account = Self::get_token_reserved_account(&asset_id.clone()) .ok_or(Error::::NoLiquidityHolderAccountBound)?; // Withdraw `decimal_converted_asset` of asset from reserve account - if T::IsReserve::contains(&decimal_converted_asset, &MultiLocation::here()) { + if T::IsReserve::contains(&decimal_converted_asset, &Location::here()) { T::AssetTransactor::withdraw_asset( &decimal_converted_asset, &Junction::AccountId32 { network: None, id: token_reserved_account }.into(), None, ) - .map_err(|_| Error::::TransactFailed)?; + .map_err(|_| Error::::TransactFailedReleaseFromReserved)?; } // Deposit `decimal_converted_asset` of asset to dest location @@ -928,9 +938,9 @@ pub mod pallet { &decimal_converted_asset, &location, // Put empty message hash here because we are not sending XCM message - &XcmContext::with_message_id([0; 32]), + Some(&XcmContext::with_message_id([0; 32])), ) - .map_err(|_| Error::::TransactFailed)?; + .map_err(|_| Error::::TransactFailedDeposit)?; Ok(()) } @@ -959,7 +969,8 @@ pub mod pallet { use primitive_types::U256; use sp_core::{ecdsa, ByteArray, Pair}; use sp_std::{boxed::Box, vec}; - use xcm::latest::prelude::*; + use std::sync::Arc; + use xcm::v4::prelude::*; use bridge::mock::{ assert_events, new_test_ext, slice_to_generalkey, AccessSegregator, Assets, Balances, @@ -978,6 +989,7 @@ pub mod pallet { DestChainIds, DestDomainIds, Error, Event as SygmaBridgeEvent, IsPaused, MpcAddr, Proposal, }; + use xcm::v4::Junctions::{X1, X2, X3}; #[test] fn get_token_reserved_account_test() { @@ -998,13 +1010,13 @@ pub mod pallet { // unknown token should return None assert_eq!( SygmaBridge::get_token_reserved_account( - &MultiLocation::new( + &Location::new( 2, - X3( + X3(Arc::new([ Parachain(1000), slice_to_generalkey(b"sygma"), - slice_to_generalkey(b"unknown"), - ), + slice_to_generalkey(b"unknown") + ])), ) .into() ), @@ -1288,13 +1300,13 @@ pub mod pallet { assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check balances @@ -1359,13 +1371,13 @@ pub mod pallet { )); assert_ok!(SygmaBridge::set_mpc_address(Origin::root(), test_mpc_addr)); - let asset: MultiAsset = (Concrete(NativeLocation::get()), Fungible(amount)).into(); - let dest: MultiLocation = MultiLocation { + let asset: Asset = (AssetId(NativeLocation::get()), Fungible(amount)).into(); + let dest: Location = Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), slice_to_generalkey(&[1]), - ), + ])), }; // Call transfer instead of deposit @@ -1489,13 +1501,13 @@ pub mod pallet { assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(UsdtLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(UsdtLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check balances @@ -1540,7 +1552,7 @@ pub mod pallet { #[test] fn deposit_unbounded_asset_should_fail() { new_test_ext().execute_with(|| { - let unbounded_asset_location = MultiLocation::new(1, X1(GeneralIndex(123))); + let unbounded_asset_location = Location::new(1, X1(Arc::new([GeneralIndex(123)]))); let test_mpc_addr: MpcAddress = MpcAddress([1u8; 20]); let fee = 100u128; let amount = 200u128; @@ -1549,7 +1561,7 @@ pub mod pallet { assert_ok!(SygmaBasicFeeHandler::set_fee( Origin::root(), DEST_DOMAIN_ID, - Box::new(unbounded_asset_location.into()), + Box::new(unbounded_asset_location.clone().into()), fee )); assert_ok!(SygmaBridge::register_domain( @@ -1561,13 +1573,13 @@ pub mod pallet { assert_noop!( SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(unbounded_asset_location), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(unbounded_asset_location), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), ), bridge::Error::::AssetNotBound @@ -1578,9 +1590,9 @@ pub mod pallet { #[test] fn deposit_to_unrecognized_dest_should_fail() { new_test_ext().execute_with(|| { - let invalid_dest = MultiLocation::new( + let invalid_dest = Location::new( 0, - X2(GeneralIndex(0), slice_to_generalkey(b"ethereum recipient")), + X2(Arc::new([GeneralIndex(0), slice_to_generalkey(b"ethereum recipient")])), ); let test_mpc_addr: MpcAddress = MpcAddress([1u8; 20]); let fee = 100u128; @@ -1602,7 +1614,7 @@ pub mod pallet { assert_noop!( SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), Box::new(invalid_dest), ), bridge::Error::::ExtractDestDataFailed @@ -1624,13 +1636,13 @@ pub mod pallet { assert_noop!( SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), ), bridge::Error::::MissingFeeConfig @@ -1666,13 +1678,13 @@ pub mod pallet { assert_noop!( SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), ), bridge::Error::::FeeTooExpensive @@ -1714,13 +1726,13 @@ pub mod pallet { assert_noop!( SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), ), bridge::Error::::BridgePaused @@ -1730,13 +1742,13 @@ pub mod pallet { // Should success assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); }) @@ -1757,13 +1769,13 @@ pub mod pallet { assert_noop!( SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), ), bridge::Error::::MissingMpcAddress @@ -1771,6 +1783,24 @@ pub mod pallet { }) } + #[test] + fn extract_deposit_data_test() { + new_test_ext().execute_with(|| { + let deposit_data_remote = "0000000000000000000000000000000000000000000000000d2f13f7789f00000000000000000000000000000000000000000000000000000000000000000027010200511f0100d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"; + let deposit_data_local = "0000000000000000000000000000000000000000000000000d2f13f7789f0000000000000000000000000000000000000000000000000000000000000000002400010100c668b505f6a7012a50dca169757c629651bfd6cefbfc24301dea2d2cc0ab2732"; + + let decoded_remote = hex::decode(deposit_data_remote).expect("Decoding failed"); + let (amount_remote, location_remote) = SygmaBridge::extract_deposit_data(&decoded_remote).unwrap(); + assert_eq!(amount_remote, 950000000000000000); + assert_eq!(location_remote, Location::new(1, Junctions::X2(Arc::new([Parachain(2004), Junction::AccountId32 { network: None, id: [212, 53, 147, 199, 21, 253, 211, 28, 97, 20, 26, 189, 4, 169, 159, 214, 130, 44, 133, 88, 133, 76, 205, 227, 154, 86, 132, 231, 165, 109, 162, 125] }])))); + + let decoded_local = hex::decode(deposit_data_local).expect("Decoding failed"); + let (amount_local, location_local) = SygmaBridge::extract_deposit_data(&decoded_local).unwrap(); + assert_eq!(amount_local, 950000000000000000); + assert_eq!(location_local, Location::new(0, Junctions::X1(Arc::new([Junction::AccountId32 { network: None, id: [198, 104, 181, 5, 246, 167, 1, 42, 80, 220, 161, 105, 117, 124, 98, 150, 81, 191, 214, 206, 251, 252, 36, 48, 29, 234, 45, 44, 192, 171, 39, 50] }])))); + }) + } + #[test] fn retry_bridge() { new_test_ext().execute_with(|| { @@ -1864,13 +1894,13 @@ pub mod pallet { )); assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); @@ -1918,8 +1948,11 @@ pub mod pallet { resource_id: NativeResourceId::get(), data: SygmaBridge::create_deposit_data( amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: BOB.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: BOB.into() }])), + ) + .encode(), ), }; // amount is in 18 decimal 0.000200000000000000, will be convert to 18 decimal @@ -1930,8 +1963,11 @@ pub mod pallet { resource_id: UsdtResourceId::get(), data: SygmaBridge::create_deposit_data( amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: BOB.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: BOB.into() }])), + ) + .encode(), ), }; let invalid_depositnonce_proposal = Proposal { @@ -1940,8 +1976,11 @@ pub mod pallet { resource_id: NativeResourceId::get(), data: SygmaBridge::create_deposit_data( amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: BOB.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: BOB.into() }])), + ) + .encode(), ), }; let invalid_domainid_proposal = Proposal { @@ -1950,8 +1989,11 @@ pub mod pallet { resource_id: NativeResourceId::get(), data: SygmaBridge::create_deposit_data( amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: BOB.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: BOB.into() }])), + ) + .encode(), ), }; let invalid_resourceid_proposal = Proposal { @@ -1960,8 +2002,11 @@ pub mod pallet { resource_id: [2u8; 32], data: SygmaBridge::create_deposit_data( amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: BOB.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: BOB.into() }])), + ) + .encode(), ), }; let invalid_recipient_proposal = Proposal { @@ -2307,14 +2352,14 @@ pub mod pallet { assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), Box::new( - (Concrete(NativeLocation::get()), Fungible(amount_native_asset)).into() + (AssetId(NativeLocation::get()), Fungible(amount_native_asset)).into() ), - Box::new(MultiLocation { + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check balances @@ -2370,13 +2415,13 @@ pub mod pallet { // deposit assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(UsdtLocation::get()), Fungible(amount_usdt_asset)).into()), - Box::new(MultiLocation { + Box::new((AssetId(UsdtLocation::get()), Fungible(amount_usdt_asset)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check balances @@ -2441,13 +2486,13 @@ pub mod pallet { // deposit assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(AstrLocation::get()), Fungible(amount_astr_asset)).into()), - Box::new(MultiLocation { + Box::new((AssetId(AstrLocation::get()), Fungible(amount_astr_asset)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check balances @@ -2513,17 +2558,17 @@ pub mod pallet { Origin::signed(ALICE), Box::new( ( - Concrete(AstrLocation::get()), + AssetId(AstrLocation::get()), Fungible(amount_astr_asset_extreme_small_amount) ) .into() ), - Box::new(MultiLocation { + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), ), bridge::Error::::DecimalConversionFail @@ -2566,14 +2611,14 @@ pub mod pallet { assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), Box::new( - (Concrete(NativeLocation::get()), Fungible(ENDOWED_BALANCE / 2)).into() + (AssetId(NativeLocation::get()), Fungible(ENDOWED_BALANCE / 2)).into() ), - Box::new(MultiLocation { + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // BridgeAccount should have half of alice native asset - fee @@ -2596,8 +2641,11 @@ pub mod pallet { deposit_nonce: 1, data: SygmaBridge::create_deposit_data( bridge_amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: ALICE.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: ALICE.into() }])), + ) + .encode(), ), }; let proposals = vec![p_native]; @@ -2652,8 +2700,11 @@ pub mod pallet { resource_id: UsdtResourceId::get(), data: SygmaBridge::create_deposit_data( bridge_amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: ALICE.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: ALICE.into() }])), + ) + .encode(), ), }; let proposals_usdt = vec![p_usdt]; @@ -2707,8 +2758,11 @@ pub mod pallet { resource_id: AstrResourceId::get(), data: SygmaBridge::create_deposit_data( bridge_amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: ALICE.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: ALICE.into() }])), + ) + .encode(), ), }; let proposals_astr = vec![p_astr]; @@ -2738,8 +2792,11 @@ pub mod pallet { deposit_nonce: 4, data: SygmaBridge::create_deposit_data( extreme_small_bridge_amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: ALICE.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: ALICE.into() }])), + ) + .encode(), ), }; let proposals_extreme = vec![p_native_extreme]; @@ -2879,7 +2936,7 @@ pub mod pallet { )); assert_ok!(SygmaBridge::pause_bridge(Origin::from(Some(ALICE)), 1u8)); assert_ok!(SygmaBridge::unpause_bridge(Origin::from(Some(ALICE)), 1u8)); - // pause domain 2 again to see if mpc address setup will unpause it + // pause domain 1 again to see if mpc address setup will unpause it assert_ok!(SygmaBridge::pause_bridge(Origin::from(Some(ALICE)), 1u8)); // double check if it's paused @@ -2894,13 +2951,13 @@ pub mod pallet { assert_noop!( SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(AstrLocation::get()), Fungible(100)).into()), - Box::new(MultiLocation { + Box::new((AssetId(AstrLocation::get()), Fungible(100)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), ), bridge::Error::::MissingMpcAddress @@ -2917,7 +2974,7 @@ pub mod pallet { assert_ok!(SygmaBridge::set_mpc_address(Origin::root(), test_mpc_addr)); assert_eq!(MpcAddr::::get(), test_mpc_addr); - // double check if it's unpause now + // double check if it's unpause now, should not be paused assert!(!SygmaBridge::is_paused(1)); // retry again, should work @@ -2945,13 +3002,13 @@ pub mod pallet { )); assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check balances @@ -2972,8 +3029,11 @@ pub mod pallet { resource_id: NativeResourceId::get(), data: SygmaBridge::create_deposit_data( amount, - MultiLocation::new(0, X1(AccountId32 { network: None, id: BOB.into() })) - .encode(), + Location::new( + 0, + X1(Arc::new([AccountId32 { network: None, id: BOB.into() }])), + ) + .encode(), ), }; let proposals = vec![valid_native_transfer_proposal]; @@ -3028,13 +3088,13 @@ pub mod pallet { )); assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check balances of Alice after deposit 200 native token @@ -3099,13 +3159,13 @@ pub mod pallet { )); assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check reserved native token, should increase by 0.02 to 190.020000000000 @@ -3131,13 +3191,13 @@ pub mod pallet { )); assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check reserved native token, should increase by 200 to 390.020000000000 @@ -3193,13 +3253,13 @@ pub mod pallet { // 5% fee of 200 token should be 10 but fee lower bound is 100, so fee is 100 now assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check reserved native token, should increase by 100 to 490.020000000000 @@ -3219,14 +3279,14 @@ pub mod pallet { assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), Box::new( - (Concrete(NativeLocation::get()), Fungible(200_000_000_000_000_000)).into() + (AssetId(NativeLocation::get()), Fungible(200_000_000_000_000_000)).into() ), - Box::new(MultiLocation { + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check reserved native token, should increase by 199000 to 199490.020000000000 @@ -3271,13 +3331,13 @@ pub mod pallet { assert_noop!( SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), ), bridge::Error::::MissingFeeConfig @@ -3315,13 +3375,13 @@ pub mod pallet { assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check balances @@ -3353,13 +3413,13 @@ pub mod pallet { assert_ok!(SygmaBridge::deposit( Origin::signed(ALICE), - Box::new((Concrete(NativeLocation::get()), Fungible(amount)).into()), - Box::new(MultiLocation { + Box::new((AssetId(NativeLocation::get()), Fungible(amount)).into()), + Box::new(Location { parents: 0, - interior: X2( + interior: X2(Arc::new([ slice_to_generalkey(b"ethereum recipient"), - slice_to_generalkey(&[1]), - ) + slice_to_generalkey(&[1]) + ])) }), )); // Check balances diff --git a/bridge/src/mock.rs b/bridge/src/mock.rs index 871c9c62..ca72640b 100644 --- a/bridge/src/mock.rs +++ b/bridge/src/mock.rs @@ -1,8 +1,6 @@ // The Licensed Work is (c) 2022 Sygma // SPDX-License-Identifier: LGPL-3.0-only -#![cfg(test)] - use crate as sygma_bridge; use fixed::{types::extra::U16, FixedU128}; use frame_support::{ @@ -19,13 +17,16 @@ use sp_runtime::{ AccountId32, BuildStorage, Perbill, }; use sp_std::collections::btree_map::BTreeMap; +use sp_std::sync::Arc; use sp_std::{marker::PhantomData, prelude::*, result}; +use xcm::latest::Junctions::X2; use sygma_traits::{ ChainID, DecimalConverter, DomainID, ExtractDestinationData, ResourceId, VerifyingContractAddress, }; -use xcm::latest::{prelude::*, AssetId as XcmAssetId, MultiLocation}; +use xcm::v4::{prelude::*, AssetId as XcmAssetId, Junctions::X1, Location}; +#[allow(deprecated)] use xcm_builder::{ AccountId32Aliases, CurrencyAdapter, FungiblesAdapter, IsConcrete, NoChecking, ParentIsPreset, SiblingParachainConvertsVia, @@ -82,6 +83,7 @@ impl frame_system::Config for Runtime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = ConstU32<2>; + type RuntimeTask = (); } parameter_types! { @@ -105,7 +107,7 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = (); type MaxFreezes = (); type RuntimeHoldReason = (); - type MaxHolds = (); + type RuntimeFreezeReason = (); } parameter_types! { @@ -220,26 +222,26 @@ parameter_types! { pub BridgeAccounts: BTreeMap = bridge_accounts_generator(); pub CheckingAccount: AccountId32 = AccountId32::new([102u8; 32]); pub RelayNetwork: NetworkId = NetworkId::Polkadot; - pub AssetsPalletLocation: MultiLocation = + pub AssetsPalletLocation: Location = PalletInstance(::index() as u8).into(); - pub NativeLocation: MultiLocation = MultiLocation::here(); + pub NativeLocation: Location = Location::here(); pub UsdtAssetId: AssetId = 0; - pub UsdtLocation: MultiLocation = MultiLocation::new( + pub UsdtLocation: Location = Location::new( 1, - X3( + [ Parachain(2005), slice_to_generalkey(b"sygma"), slice_to_generalkey(b"usdt"), - ), + ], ); pub AstrAssetId: AssetId = 1; - pub AstrLocation: MultiLocation = MultiLocation::new( + pub AstrLocation: Location = Location::new( 1, - X3( + [ Parachain(2005), slice_to_generalkey(b"sygma"), slice_to_generalkey(b"astr"), - ), + ], ); pub NativeResourceId: ResourceId = hex_literal::hex!("00e6dfb61a2fb903df487c401663825643bb825d41695e63df8af6162ab145a6"); pub UsdtResourceId: ResourceId = hex_literal::hex!("00b14e071ddad0b12be5aca6dffc5f2584ea158d9b0ce73e1437115e97a32a3e"); @@ -249,7 +251,7 @@ parameter_types! { pub const SygmaBridgePalletId: PalletId = PalletId(*b"sygma/01"); } -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// Type for specifying how a `Location` can be converted into an `AccountId`. This is used /// when determining ownership of accounts for asset transacting and when attempting to use XCM /// `Transact` in order to determine the dispatch Origin. pub type LocationToAccountId = ( @@ -262,12 +264,13 @@ pub type LocationToAccountId = ( ); /// Means for transacting the native currency on this chain. +#[allow(deprecated)] pub type CurrencyTransactor = CurrencyAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId32, @@ -276,16 +279,16 @@ pub type CurrencyTransactor = CurrencyAdapter< >; /// A simple Asset converter that extract the bingding relationship between AssetId and -/// MultiLocation, And convert Asset transfer amount to Balance +/// Location, And convert Asset transfer amount to Balance pub struct SimpleForeignAssetConverter(PhantomData<()>); impl MatchesFungibles for SimpleForeignAssetConverter { - fn matches_fungibles(a: &MultiAsset) -> result::Result<(AssetId, Balance), ExecutionError> { - match (&a.fun, &a.id) { - (Fungible(ref amount), Concrete(ref id)) => { - if id == &UsdtLocation::get() { + fn matches_fungibles(a: &Asset) -> result::Result<(AssetId, Balance), ExecutionError> { + match (&a.fun, &a.id.0) { + (Fungible(ref amount), location) => { + if location == &UsdtLocation::get() { Ok((UsdtAssetId::get(), *amount)) - } else if id == &AstrLocation::get() { + } else if location == &AstrLocation::get() { Ok((AstrAssetId::get(), *amount)) } else { Err(ExecutionError::AssetNotHandled) @@ -302,7 +305,7 @@ pub type FungiblesTransactor = FungiblesAdapter< Assets, // Use this currency when it is a fungible asset matching the given location or name: SimpleForeignAssetConverter, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId32, @@ -316,15 +319,15 @@ pub type AssetTransactors = (CurrencyTransactor, FungiblesTransactor); pub struct ConcrateSygmaAsset; impl ConcrateSygmaAsset { - pub fn id(asset: &MultiAsset) -> Option { + pub fn id(asset: &Asset) -> Option { match (&asset.id, &asset.fun) { // So far our native asset is concrete - (Concrete(id), Fungible(_)) => Some(*id), + (id, Fungible(_)) => Some(id.0.clone()), _ => None, } } - pub fn origin(asset: &MultiAsset) -> Option { + pub fn origin(asset: &Asset) -> Option { Self::id(asset).and_then(|id| { match (id.parents, id.first_interior()) { // Sibling parachain @@ -335,18 +338,18 @@ impl ConcrateSygmaAsset { // The registered foreign assets actually reserved on EVM chains, so when // transfer back to EVM chains, they should be treated as non-reserve assets // relative to current chain. - Some(MultiLocation::new(0, X1(slice_to_generalkey(b"sygma")))) + Some(Location::new(0, X1(Arc::new([slice_to_generalkey(b"sygma")])))) } else { // Other parachain assets should be treat as reserve asset when transfered // to outside EVM chains - Some(MultiLocation::here()) + Some(Location::here()) } }, // Parent assets should be treat as reserve asset when transfered to outside EVM // chains - (1, _) => Some(MultiLocation::here()), + (1, _) => Some(Location::here()), // Children parachain - (0, Some(Parachain(id))) => Some(MultiLocation::new(0, X1(Parachain(*id)))), + (0, Some(Parachain(id))) => Some(Location::new(0, X1(Arc::new([Parachain(*id)])))), // Local: (0, Here) (0, None) => Some(id), _ => None, @@ -359,7 +362,7 @@ pub struct SygmaDecimalConverter(PhantomData); impl>> DecimalConverter for SygmaDecimalConverter { - fn convert_to(asset: &MultiAsset) -> Option { + fn convert_to(asset: &Asset) -> Option { match (&asset.fun, &asset.id) { (Fungible(amount), _) => { for (asset_id, decimal) in DecimalPairs::get().iter() { @@ -398,13 +401,13 @@ impl>> DecimalConverter } } - fn convert_from(asset: &MultiAsset) -> Option { + fn convert_from(asset: &Asset) -> Option { match (&asset.fun, &asset.id) { (Fungible(amount), _) => { for (asset_id, decimal) in DecimalPairs::get().iter() { if *asset_id == asset.id { return if *decimal == 18 { - Some((asset.id, *amount).into()) + Some((asset.id.clone(), *amount).into()) } else { type U112F16 = FixedU128; if *decimal > 18 { @@ -418,7 +421,7 @@ impl>> DecimalConverter U112F16::from_num(10u128.saturating_pow(*decimal as u32 - 18)); let b = U112F16::from_num(*amount).saturating_mul(a); let r: u128 = b.to_num(); - Some((asset.id, r).into()) + Some((asset.id.clone(), r).into()) } else { let a = U112F16::from_num(10u128.saturating_pow(18 - *decimal as u32)); @@ -427,7 +430,7 @@ impl>> DecimalConverter if r == 0 { return None; } - Some((asset.id, r).into()) + Some((asset.id.clone(), r).into()) } }; } @@ -440,8 +443,8 @@ impl>> DecimalConverter } pub struct ReserveChecker; -impl ContainsPair for ReserveChecker { - fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { +impl ContainsPair for ReserveChecker { + fn contains(asset: &Asset, origin: &Location) -> bool { if let Some(ref id) = ConcrateSygmaAsset::origin(asset) { if id == origin { return true; @@ -454,21 +457,24 @@ impl ContainsPair for ReserveChecker { // Project can have it's own implementation to adapt their own spec design. pub struct DestinationDataParser; impl ExtractDestinationData for DestinationDataParser { - fn extract_dest(dest: &MultiLocation) -> Option<(Vec, DomainID)> { - match (dest.parents, &dest.interior) { - ( - 0, - Junctions::X2( - GeneralKey { length: recipient_len, data: recipient }, - GeneralKey { length: _domain_len, data: dest_domain_id }, - ), - ) => { - let d = u8::default(); - let domain_id = dest_domain_id.as_slice().first().unwrap_or(&d); - if *domain_id == d { - return None; + fn extract_dest(dest: &Location) -> Option<(Vec, DomainID)> { + match (dest.parents, dest.interior.clone()) { + (0, X2(xs)) => { + let [a, b] = *xs; + match (a, b) { + ( + GeneralKey { length: recipient_len, data: recipient }, + GeneralKey { length: _domain_len, data: dest_domain_id }, + ) => { + let d = u8::default(); + let domain_id = dest_domain_id.as_slice().first().unwrap_or(&d); + if *domain_id == d { + return None; + } + Some((recipient[..recipient_len as usize].to_vec(), *domain_id)) + }, + _ => None, } - Some((recipient[..*recipient_len as usize].to_vec(), *domain_id)) }, _ => None, } diff --git a/fee-handler-router/Cargo.toml b/fee-handler-router/Cargo.toml index 4f6c9384..e234e0b6 100644 --- a/fee-handler-router/Cargo.toml +++ b/fee-handler-router/Cargo.toml @@ -9,14 +9,14 @@ codec = { package = "parity-scale-codec", version = "3.6.1", default-features = scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde", "decode"] } # Substrate -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false, optional = true } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false, optional = true } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Local sygma-traits = { path = "../traits", default-features = false } @@ -26,12 +26,12 @@ sygma-access-segregator = { path = "../access-segregator", default-features = fa [dev-dependencies] # Substrate -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } sygma-access-segregator = { path = "../access-segregator" } sygma-basic-feehandler = { path = "../basic-fee-handler" } diff --git a/fee-handler-router/src/benchmarking.rs b/fee-handler-router/src/benchmarking.rs index 7f74cc1f..e744f2fb 100644 --- a/fee-handler-router/src/benchmarking.rs +++ b/fee-handler-router/src/benchmarking.rs @@ -8,9 +8,8 @@ use super::*; use frame_benchmarking::v2::*; use frame_system::RawOrigin as SystemOrigin; -use sp_std::vec; use sygma_traits::DomainID; -use xcm::latest::prelude::*; +use xcm::v4::prelude::*; #[benchmarks] mod benchmarks { @@ -19,7 +18,7 @@ mod benchmarks { #[benchmark] fn set_fee_handler() { let dest_domain_id: DomainID = 1; - let native_location: MultiLocation = MultiLocation::here(); + let native_location: Location = Location::here(); #[extrinsic_call] set_fee_handler( diff --git a/fee-handler-router/src/lib.rs b/fee-handler-router/src/lib.rs index 952c4b77..1b44742d 100644 --- a/fee-handler-router/src/lib.rs +++ b/fee-handler-router/src/lib.rs @@ -21,7 +21,7 @@ pub mod pallet { use frame_system::pallet_prelude::*; use sp_std::boxed::Box; use sygma_traits::{DomainID, FeeHandler}; - use xcm::latest::{AssetId, MultiAsset}; + use xcm::v4::{Asset, AssetId}; #[derive(PartialEq, Eq, Clone, Encode, Decode, TypeInfo, RuntimeDebug, MaxEncodedLen)] pub enum FeeHandlerType { @@ -111,8 +111,8 @@ pub mod pallet { } impl FeeHandler for Pallet { - fn get_fee(domain: DomainID, asset: MultiAsset) -> Option { - if let Some(handler_type) = HandlerType::::get((&domain, asset.id)) { + fn get_fee(domain: DomainID, asset: Asset) -> Option { + if let Some(handler_type) = HandlerType::::get((&domain, asset.clone().id)) { match handler_type { FeeHandlerType::BasicFeeHandler => { sygma_basic_feehandler::Pallet::::get_fee(domain, asset) @@ -143,24 +143,23 @@ pub mod pallet { use frame_support::{assert_noop, assert_ok}; use sp_std::boxed::Box; use sygma_traits::FeeHandler; - use xcm::latest::prelude::*; #[test] fn access_control() { new_test_ext().execute_with(|| { - let asset_id = Concrete(PhaLocation::get()); + let asset_id: AssetId = AssetId(PhaLocation::get()); assert_ok!(FeeHandlerRouter::set_fee_handler( Origin::root(), EthereumDomainID::get(), - Box::new(asset_id), + Box::new(asset_id.clone()), FeeHandlerType::BasicFeeHandler, )); assert_noop!( FeeHandlerRouter::set_fee_handler( Some(ALICE).into(), EthereumDomainID::get(), - Box::new(asset_id), + Box::new(asset_id.clone()), FeeHandlerType::BasicFeeHandler, ), fee_router::Error::::AccessDenied @@ -186,7 +185,7 @@ pub mod pallet { assert_ok!(FeeHandlerRouter::set_fee_handler( Some(ALICE).into(), MoonbeamDomainID::get(), - Box::new(asset_id), + Box::new(asset_id.clone()), FeeHandlerType::DynamicFeeHandler, ),); assert_eq!( diff --git a/fee-handler-router/src/mock.rs b/fee-handler-router/src/mock.rs index 0c92111d..4b500065 100644 --- a/fee-handler-router/src/mock.rs +++ b/fee-handler-router/src/mock.rs @@ -1,8 +1,6 @@ // The Licensed Work is (c) 2022 Sygma // SPDX-License-Identifier: LGPL-3.0-only -#![cfg(test)] - use frame_support::{ pallet_prelude::ConstU32, parameter_types, @@ -15,7 +13,7 @@ use frame_support::{ }; use frame_system::{self as system, EnsureRoot, EnsureSigned}; use sygma_traits::DomainID; -use xcm::latest::MultiLocation; +use xcm::v4::Location; use crate as fee_handler_router; @@ -33,7 +31,7 @@ frame_support::construct_runtime!( AccessSegregator: sygma_access_segregator::{Pallet, Call, Storage, Event} = 3, SygmaBasicFeeHandler: sygma_basic_feehandler::{Pallet, Call, Storage, Event} = 4, FeeHandlerRouter: fee_handler_router::{Pallet, Call, Storage, Event} = 5, - SygamPercenrageFeeHandler: sygma_percentage_feehandler::{Pallet, Call, Storage, Event} = 6, + SygmaPercenrageFeeHandler: sygma_percentage_feehandler::{Pallet, Call, Storage, Event} = 6, } ); @@ -69,6 +67,7 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = ConstU32<2>; + type RuntimeTask = (); } parameter_types! { @@ -88,7 +87,7 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = (); type MaxFreezes = (); type RuntimeHoldReason = (); - type MaxHolds = (); + type RuntimeFreezeReason = (); } parameter_types! { @@ -134,7 +133,7 @@ parameter_types! { (AccessSegregatorPalletIndex::get(), b"grant_access".to_vec()), (FeeHandlerRouterPalletIndex::get(), b"set_fee_handler".to_vec()), ].to_vec(); - pub PhaLocation: MultiLocation = MultiLocation::here(); + pub PhaLocation: Location = Location::here(); } impl sygma_basic_feehandler::Config for Test { @@ -155,7 +154,7 @@ impl fee_handler_router::Config for Test { type RuntimeEvent = RuntimeEvent; type BasicFeeHandler = SygmaBasicFeeHandler; type DynamicFeeHandler = (); - type PercentageFeeHandler = SygamPercenrageFeeHandler; + type PercentageFeeHandler = SygmaPercenrageFeeHandler; type PalletIndex = FeeHandlerRouterPalletIndex; type WeightInfo = fee_handler_router::weights::SygmaWeightInfo; } diff --git a/parachain-info/Cargo.toml b/parachain-info/Cargo.toml index d0c788bb..d0bc3d3c 100644 --- a/parachain-info/Cargo.toml +++ b/parachain-info/Cargo.toml @@ -9,11 +9,11 @@ license = "LGPL-3.0" codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] } scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } [features] default = ["std"] diff --git a/percentage-fee-handler/Cargo.toml b/percentage-fee-handler/Cargo.toml index 9364a4c0..06619a56 100644 --- a/percentage-fee-handler/Cargo.toml +++ b/percentage-fee-handler/Cargo.toml @@ -9,14 +9,14 @@ codec = { package = "parity-scale-codec", version = "3.6.1", default-features = scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde", "decode"] } # Substrate -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false, optional = true } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false, optional = true } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Local sygma-traits = { path = "../traits", default-features = false } @@ -24,12 +24,12 @@ sygma-access-segregator = { path = "../access-segregator", default-features = fa [dev-dependencies] # Substrate -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } [features] default = ["std"] diff --git a/percentage-fee-handler/src/benchmarking.rs b/percentage-fee-handler/src/benchmarking.rs index 6bcd4492..8a84bf0e 100644 --- a/percentage-fee-handler/src/benchmarking.rs +++ b/percentage-fee-handler/src/benchmarking.rs @@ -10,7 +10,7 @@ use frame_system::RawOrigin as SystemOrigin; use sp_std::vec; use sygma_traits::DomainID; -use xcm::latest::prelude::*; +use xcm::v4::prelude::*; #[benchmarks] mod benchmarks { @@ -19,7 +19,7 @@ mod benchmarks { #[benchmark] fn set_fee_rate() { let dest_domain_id: DomainID = 1; - let native_location: MultiLocation = MultiLocation::here(); + let native_location: Location = Location::here(); let fee_rate = 500u32; // 5% #[extrinsic_call] diff --git a/percentage-fee-handler/src/lib.rs b/percentage-fee-handler/src/lib.rs index 80bd2bc4..96bb475d 100644 --- a/percentage-fee-handler/src/lib.rs +++ b/percentage-fee-handler/src/lib.rs @@ -21,7 +21,8 @@ pub mod pallet { use frame_system::pallet_prelude::*; use sp_std::boxed::Box; use sygma_traits::{DomainID, FeeHandler}; - use xcm::latest::{AssetId, Fungibility::Fungible, MultiAsset}; + use xcm::opaque::v4::Asset; + use xcm::v4::{AssetId, Fungibility::Fungible}; const STORAGE_VERSION: StorageVersion = StorageVersion::new(0); @@ -125,11 +126,11 @@ pub mod pallet { } impl FeeHandler for Pallet { - fn get_fee(domain: DomainID, asset: MultiAsset) -> Option { - match (asset.fun, asset.id) { + fn get_fee(domain: DomainID, asset: Asset) -> Option { + match (asset.clone().fun, asset.clone().id) { (Fungible(amount), _) => { let (fee_rate_basis_point, fee_lower_bound, fee_upper_bound) = - AssetFeeRate::::get((domain, asset.id))?; + AssetFeeRate::::get((domain, asset.clone().id))?; let fee_amount = amount.saturating_mul(fee_rate_basis_point as u128).saturating_div(10000); @@ -157,27 +158,27 @@ pub mod pallet { }; use sp_std::boxed::Box; use sygma_traits::DomainID; - use xcm::latest::{prelude::*, MultiLocation}; + use xcm::v4::{prelude::*, Location}; #[test] fn set_get_fee() { new_test_ext().execute_with(|| { let dest_domain_id: DomainID = 0; let another_dest_domain_id: DomainID = 1; - let asset_id_a = Concrete(MultiLocation::new(1, Here)); - let asset_id_b = Concrete(MultiLocation::new(2, Here)); - let asset_a_deposit: MultiAsset = (asset_id_a, 100u128).into(); - let asset_b_deposit: MultiAsset = (asset_id_b, 200u128).into(); + let asset_id_a: AssetId = AssetId(Location::new(1, Here)); + let asset_id_b: AssetId = AssetId(Location::new(2, Here)); + let asset_a_deposit: Asset = (asset_id_a.clone(), 100u128).into(); + let asset_b_deposit: Asset = (asset_id_b.clone(), 200u128).into(); // if not set fee rate, return None - assert_eq!(AssetFeeRate::::get((dest_domain_id, asset_id_a)), None); + assert_eq!(AssetFeeRate::::get((dest_domain_id, asset_id_a.clone())), None); // test the min fee rate case: 0u32 => 0%, should work // set fee rate as 0 basis point aka 0% with assetId asset_id_a for one domain assert_ok!(PercentageFeeHandler::set_fee_rate( Origin::root(), dest_domain_id, - Box::new(asset_id_a), + Box::new(asset_id_a.clone()), 0u32, 0u128, 100u128 @@ -188,7 +189,7 @@ pub mod pallet { PercentageFeeHandler::set_fee_rate( Origin::root(), dest_domain_id, - Box::new(asset_id_a), + Box::new(asset_id_a.clone()), 10_000u32, 0u128, 100u128 @@ -200,7 +201,7 @@ pub mod pallet { assert_ok!(PercentageFeeHandler::set_fee_rate( Origin::root(), dest_domain_id, - Box::new(asset_id_a), + Box::new(asset_id_a.clone()), 50u32, 0u128, 100u128 @@ -209,18 +210,19 @@ pub mod pallet { assert_ok!(PercentageFeeHandler::set_fee_rate( Origin::root(), another_dest_domain_id, - Box::new(asset_id_b), + Box::new(asset_id_b.clone()), 200u32, 0u128, 100u128 )); assert_eq!( - AssetFeeRate::::get((dest_domain_id, asset_id_a)).unwrap(), + AssetFeeRate::::get((dest_domain_id, asset_id_a.clone())).unwrap(), (50, 0, 100) ); assert_eq!( - AssetFeeRate::::get((another_dest_domain_id, asset_id_b)).unwrap(), + AssetFeeRate::::get((another_dest_domain_id, asset_id_b.clone())) + .unwrap(), (200, 0, 100) ); @@ -230,7 +232,7 @@ pub mod pallet { PercentageFeeHandler::set_fee_rate( unauthorized_account, dest_domain_id, - Box::new(asset_id_a), + Box::new(asset_id_a.clone()), 100u32, 0u128, 100u128 @@ -261,12 +263,12 @@ pub mod pallet { fn access_control() { new_test_ext().execute_with(|| { let dest_domain_id: DomainID = 0; - let asset_id = Concrete(MultiLocation::new(0, Here)); + let asset_id: AssetId = AssetId(Location::new(0, Here)); assert_ok!(PercentageFeeHandler::set_fee_rate( Origin::root(), dest_domain_id, - Box::new(asset_id), + Box::new(asset_id.clone()), 100u32, 0u128, 100u128 @@ -275,7 +277,7 @@ pub mod pallet { PercentageFeeHandler::set_fee_rate( Some(ALICE).into(), dest_domain_id, - Box::new(asset_id), + Box::new(asset_id.clone()), 200u32, 0u128, 100u128 @@ -301,7 +303,7 @@ pub mod pallet { assert_ok!(PercentageFeeHandler::set_fee_rate( Some(ALICE).into(), dest_domain_id, - Box::new(asset_id), + Box::new(asset_id.clone()), 200u32, 0u128, 100u128 diff --git a/percentage-fee-handler/src/mock.rs b/percentage-fee-handler/src/mock.rs index 962ddd9e..f1173d4d 100644 --- a/percentage-fee-handler/src/mock.rs +++ b/percentage-fee-handler/src/mock.rs @@ -1,8 +1,6 @@ // The Licensed Work is (c) 2022 Sygma // SPDX-License-Identifier: LGPL-3.0-only -#![cfg(test)] - use frame_support::{ pallet_prelude::ConstU32, parameter_types, @@ -65,6 +63,7 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = ConstU32<2>; + type RuntimeTask = (); } parameter_types! { @@ -84,7 +83,7 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = (); type MaxFreezes = (); type RuntimeHoldReason = (); - type MaxHolds = (); + type RuntimeFreezeReason = (); } parameter_types! { diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index e3cb3c31..e15b5c0e 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -7,14 +7,14 @@ license = "LGPL-3.0" [dependencies] codec = { package = "parity-scale-codec", version = "3.6.1" } scale-info = { version = "2.5.0" } -jsonrpsee = { version = "0.16.2", features = ["server", "macros"] } +jsonrpsee = { version = "0.20.3", features = ["server", "macros"] } # Substrate -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-blockchain = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-client-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-rpc = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-blockchain = { version = "28.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-api = { version = "26.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-client-api = { version = "28.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-rpc = { version = "29.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } sygma-runtime-api = { path = "../runtime-api", default-features = false } sygma-traits = { path = "../traits", default-features = false } diff --git a/rpc/src/lib.rs b/rpc/src/lib.rs index 7beeba06..2ec1dbe1 100644 --- a/rpc/src/lib.rs +++ b/rpc/src/lib.rs @@ -2,15 +2,22 @@ // SPDX-License-Identifier: LGPL-3.0-only use std::{marker::PhantomData, sync::Arc}; +use jsonrpsee::types::{ErrorObject, ErrorObjectOwned}; use jsonrpsee::{ - core::{async_trait, Error as JsonRpseeError, RpcResult}, + core::{async_trait, RpcResult}, proc_macros::rpc, }; -use sp_api::{BlockT, ProvideRuntimeApi}; +use sp_api::ProvideRuntimeApi; use sp_blockchain::HeaderBackend; +use sp_runtime::traits::Block as BlockT; use sygma_runtime_api::SygmaBridgeApi; use sygma_traits::{DepositNonce, DomainID}; +/// Converts a runtime trap into a [`CallError`]. +fn runtime_error_into_rpc_error(err: impl std::fmt::Debug) -> ErrorObjectOwned { + ErrorObject::owned(500, "Runtime trapped", Some(format!("{:?}", err))) +} + pub struct SygmaBridgeStorage { client: Arc, _marker: PhantomData, @@ -52,7 +59,7 @@ where let api = self.client.runtime_api(); let at = at.unwrap_or_else(|| self.client.info().best_hash); - let runtime_api_result = api.is_proposal_executed(at, nonce, domain_id); - runtime_api_result.map_err(|e| JsonRpseeError::Custom(format!("runtime error: {e:?}"))) + api.is_proposal_executed(at, nonce, domain_id) + .map_err(runtime_error_into_rpc_error) } } diff --git a/runtime-api/Cargo.toml b/runtime-api/Cargo.toml index 23a555a1..18c2fad2 100644 --- a/runtime-api/Cargo.toml +++ b/runtime-api/Cargo.toml @@ -6,7 +6,7 @@ license = "LGPL-3.0" [dependencies] # Substrate -sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } sygma-bridge = { path = "../bridge", default-features = false } sygma-traits = { path = "../traits", default-features = false } diff --git a/rust-toolchain b/rust-toolchain index eb5f2061..aa23cb29 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1,4 +1,4 @@ [toolchain] -channel = "1.74.0" +channel = "1.79.0" components = ["rustfmt"] targets = ["wasm32-unknown-unknown"] diff --git a/scripts/standalone/execute_proposal_test.js b/scripts/standalone/execute_proposal_test.js index fcefb183..e32c61ae 100644 --- a/scripts/standalone/execute_proposal_test.js +++ b/scripts/standalone/execute_proposal_test.js @@ -60,7 +60,7 @@ async function main() { // USDC const usdcBalanceBefore = await queryAssetBalance(api, assetID || 2000, aliceAddress); console.log('usdc asset balance before: ', usdcBalanceBefore.balance); - await executeProposal(api, [proposal_usdc], signature_usdc, true, sudo); + await executeProposal(api, [proposal_usdc], signature_usdc, false, sudo); const usdcbalanceAfter = await queryAssetBalance(api, assetID || 2000, aliceAddress); console.log('usdc asset balance after: ', usdcbalanceAfter.balance); @@ -71,7 +71,7 @@ async function main() { // Native asset const nativeBalanceBefore = await queryBalance(api, aliceAddress); console.log('native asset balance before: ', nativeBalanceBefore.data.free); - await executeProposal(api, [proposal_native], signature_native, true, sudo); + await executeProposal(api, [proposal_native], signature_native, false, sudo); const nativeBalanceAfter = await queryBalance(api, aliceAddress); console.log('native asset balance after: ', nativeBalanceAfter.data.free); diff --git a/scripts/standalone/package.json b/scripts/standalone/package.json index adc84871..9c9fa295 100644 --- a/scripts/standalone/package.json +++ b/scripts/standalone/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "main": "index.js", "dependencies": { - "@polkadot/api": "^10.11.2", + "@polkadot/api": "^12.1.1", "@polkadot/api-augment": "^10.11.2", "@polkadot/keyring": "^12.6.2", "@polkadot/rpc-provider": "^10.11.2", diff --git a/scripts/standalone/setup.js b/scripts/standalone/setup.js index b6a1ff42..861efb20 100644 --- a/scripts/standalone/setup.js +++ b/scripts/standalone/setup.js @@ -47,7 +47,8 @@ const supportedDestDomains = [ // those account are configured in the substrate-node runtime, and are only applicable for sygma pallet standalone node, // other parachain might have different runtime config so those account address need to be adjusted accordingly const FeeReserveAccountAddress = "5ELLU7ibt5ZrNEYRwohtaRBDBa3TzcWwwPELBPSWWd2mbgv3"; -const TransferReserveAccount = "5EMepC39b7E2zfM9g6CkPp8KCAxGTh7D4w4T2tFjmjpd4tPw"; +const TransferReserveNativeAccount = "5EYCAe5jLbHcAAMKvLFSXgCTbPrLgBJusvPwfKcaKzuf5X5e"; +const TransferReserveOtherAccount = "5EYCAe5jLbHcAAMKvLFiGhk3htXY8jQncbLTDGJQnpnPMAVp"; async function main() { const sygmaPalletProvider = new WsProvider(process.env.PALLETWSENDPOINT || 'ws://127.0.0.1:9944'); @@ -66,15 +67,20 @@ async function main() { // register dest domains for (const domain of supportedDestDomains) { - await registerDomain(api, domain.domainID, domain.chainID, true, sudo); + await registerDomain(api, domain.domainID, domain.chainID, false, sudo); } // set fee rate for native asset for domains for (const domain of supportedDestDomains) { - await setFeeHandler(api, domain.domainID, getNativeAssetId(api), feeHandlerType.PercentageFeeHandler, true, sudo) - await setFeeRate(api, domain.domainID, getNativeAssetId(api), percentageFeeRate, feeRateLowerBound, feeRateUpperBound, true, sudo); + await setFeeHandler(api, domain.domainID, getNativeAssetId(api), feeHandlerType.PercentageFeeHandler, false, sudo) + await setFeeRate(api, domain.domainID, getNativeAssetId(api), percentageFeeRate, feeRateLowerBound, feeRateUpperBound, false, sudo); } + // transfer some native asset to FeeReserveAccount and TransferReserveAccounts as Existential Deposit(aka ED) + await setBalance(api, FeeReserveAccountAddress, bn1e12.mul(new BN(10000)), false, sudo); // set balance to 10000 native asset + await setBalance(api, TransferReserveNativeAccount, bn1e12.mul(new BN(10000)), false, sudo); // set balance to 10000 native asset + await setBalance(api, TransferReserveOtherAccount, bn1e12.mul(new BN(10000)), false, sudo); // set balance to 10000 native asset + // create USDC test asset (foreign asset) // UsdcAssetId: AssetId defined in runtime.rs const usdcAssetID = 2000; @@ -83,9 +89,10 @@ async function main() { const usdcName = "USDC test asset"; const usdcSymbol = "USDC"; const usdcDecimal = 12; - await createAsset(api, usdcAssetID, usdcAdmin, usdcMinBalance, true, sudo); - await setAssetMetadata(api, usdcAssetID, usdcName, usdcSymbol, usdcDecimal, true, sudo); - await mintAsset(api, usdcAssetID, usdcAdmin, bn1e12.mul(new BN(100)), true, sudo); // mint 100 USDC to Alice + await createAsset(api, usdcAssetID, usdcAdmin, usdcMinBalance, false, sudo); + await setAssetMetadata(api, usdcAssetID, usdcName, usdcSymbol, usdcDecimal, false, sudo); + await mintAsset(api, usdcAssetID, usdcAdmin, bn1e12.mul(new BN(100)), false, sudo); // mint 100 USDC to Alice + await mintAsset(api, usdcAssetID, TransferReserveOtherAccount, bn1e12.mul(new BN(100)), false, sudo); // mint 100 USDC to OtherTokenReserved account // create ERC20TST test asset (foreign asset) const erc20tstAssetID = 2001; @@ -94,9 +101,10 @@ async function main() { const erc20tstName = "erc20tst test asset"; const erc20tstSymbol = "ERC20TST"; const erc20tstDecimal = 18; - await createAsset(api, erc20tstAssetID, erc20tstAdmin, erc20tstMinBalance, true, sudo); - await setAssetMetadata(api, erc20tstAssetID, erc20tstName, erc20tstSymbol, erc20tstDecimal, true, sudo); - await mintAsset(api, erc20tstAssetID, erc20tstAdmin, bn1e18.mul(new BN(100)), true, sudo); // mint 100 ERC20TST to Alice + await createAsset(api, erc20tstAssetID, erc20tstAdmin, erc20tstMinBalance, false, sudo); + await setAssetMetadata(api, erc20tstAssetID, erc20tstName, erc20tstSymbol, erc20tstDecimal, false, sudo); + await mintAsset(api, erc20tstAssetID, erc20tstAdmin, bn1e18.mul(new BN(100)), false, sudo); // mint 100 ERC20TST to Alice + await mintAsset(api, erc20tstAssetID, TransferReserveOtherAccount, bn1e12.mul(new BN(100)), false, sudo); // mint 100 ERC20TST to OtherTokenReserved account // create ERC20TSTD20 test asset (foreign asset) const erc20tstd20AssetID = 2002; @@ -105,30 +113,27 @@ async function main() { const erc20tstd20Name = "erc20tstd20 test asset"; const erc20tstd20Symbol = "ERC20TSTD20"; const erc20tstd20Decimal = 20; - await createAsset(api, erc20tstd20AssetID, erc20tstd20Admin, erc20tstd20MinBalance, true, sudo); - await setAssetMetadata(api, erc20tstd20AssetID, erc20tstd20Name, erc20tstd20Symbol, erc20tstd20Decimal, true, sudo); - await mintAsset(api, erc20tstd20AssetID, erc20tstd20Admin, bn1e20.mul(new BN(100)), true, sudo); // mint 100 ERC20TSTD20 to Alice + await createAsset(api, erc20tstd20AssetID, erc20tstd20Admin, erc20tstd20MinBalance, false, sudo); + await setAssetMetadata(api, erc20tstd20AssetID, erc20tstd20Name, erc20tstd20Symbol, erc20tstd20Decimal, false, sudo); + await mintAsset(api, erc20tstd20AssetID, erc20tstd20Admin, bn1e20.mul(new BN(100)), false, sudo); // mint 100 ERC20TSTD20 to Alice + await mintAsset(api, erc20tstd20AssetID, TransferReserveOtherAccount, bn1e12.mul(new BN(100)), false, sudo); // mint 100 ERC20TSTD20 to OtherTokenReserved account // set fee for tokens with domains for (const domain of supportedDestDomains) { - await setFeeHandler(api, domain.domainID, getUSDCAssetId(api), feeHandlerType.PercentageFeeHandler, true, sudo) - await setFeeRate(api, domain.domainID, getUSDCAssetId(api), percentageFeeRate, feeRateLowerBound, feeRateUpperBound,true, sudo); + await setFeeHandler(api, domain.domainID, getUSDCAssetId(api), feeHandlerType.PercentageFeeHandler, false, sudo) + await setFeeRate(api, domain.domainID, getUSDCAssetId(api), percentageFeeRate, feeRateLowerBound, feeRateUpperBound,false, sudo); - await setFeeHandler(api, domain.domainID, getERC20TSTAssetId(api), feeHandlerType.PercentageFeeHandler, true, sudo) - await setFeeRate(api, domain.domainID, getERC20TSTAssetId(api), percentageFeeRate, feeRateLowerBound, feeRateUpperBound,true, sudo); + await setFeeHandler(api, domain.domainID, getERC20TSTAssetId(api), feeHandlerType.PercentageFeeHandler, false, sudo) + await setFeeRate(api, domain.domainID, getERC20TSTAssetId(api), percentageFeeRate, feeRateLowerBound, feeRateUpperBound,false, sudo); - await setFeeHandler(api, domain.domainID, getERC20TSTD20AssetId(api), feeHandlerType.PercentageFeeHandler, true, sudo) - await setFeeRate(api, domain.domainID, getERC20TSTD20AssetId(api), percentageFeeRate, feeRateLowerBound, feeRateUpperBound,true, sudo); + await setFeeHandler(api, domain.domainID, getERC20TSTD20AssetId(api), feeHandlerType.PercentageFeeHandler, false, sudo) + await setFeeRate(api, domain.domainID, getERC20TSTD20AssetId(api), percentageFeeRate, feeRateLowerBound, feeRateUpperBound,false, sudo); } - // transfer some native asset to FeeReserveAccount and TransferReserveAccount as Existential Deposit(aka ED) - await setBalance(api, FeeReserveAccountAddress, bn1e12.mul(new BN(10000)), true, sudo); // set balance to 10000 native asset - await setBalance(api, TransferReserveAccount, bn1e12.mul(new BN(10000)), true, sudo); // set balance to 10000 native asset - // set up MPC address(will also unpause all registered domains) if (mpcAddr) { console.log(`set up mpc address: ${mpcAddr}`); - await setMpcAddress(api, mpcAddr, true, sudo); + await setMpcAddress(api, mpcAddr, false, sudo); // bridge should be unpaused by the end of the setup for (const domain of supportedDestDomains) { if (!await queryBridgePauseStatus(api, domain.domainID)) console.log(`DestDomainID: ${domain.domainID} is ready✅`); @@ -141,4 +146,4 @@ async function main() { // so that on Relayer, E2E test only cases about public extrinsic such as deposit, executionProposal, retry .etc } -main().catch(console.error).finally(() => process.exit()); +main().catch(console.error).finally(() => process.exit()); \ No newline at end of file diff --git a/scripts/standalone/util.js b/scripts/standalone/util.js index 37fafe11..1ae11edb 100644 --- a/scripts/standalone/util.js +++ b/scripts/standalone/util.js @@ -322,96 +322,84 @@ async function registerDomain(api, domainID, chainID, finalization, sudo) { } function getUSDCAssetId(api) { - return api.createType('StagingXcmV3MultiassetAssetId', { - Concrete: api.createType('StagingXcmV3MultiLocation', { - parents: 1, - interior: api.createType('StagingXcmV3Junctions', { - X3: [ - api.createType('StagingXcmV3Junction', { - Parachain: api.createType('Compact', 2004) - }), - api.createType('StagingXcmV3Junction', { - // 0x7379676d61 is general key of USDC defined in sygma substrate pallet runtime for testing - // see UsdcLocation definition in runtime.rs - GeneralKey: { - length: 5, - data: '0x7379676d61000000000000000000000000000000000000000000000000000000' - } - }), - api.createType('StagingXcmV3Junction', { - // 0x75736463 is general key of USDC defined in sygma substrate pallet runtime for testing - // see UsdcLocation definition in runtime.rs - GeneralKey: { - length: 4, - data: '0x7573646300000000000000000000000000000000000000000000000000000000' - } - }), - ] - }) - }) + return api.createType('StagingXcmV4AssetAssetId', { + parents: 1, + interior: api.createType('StagingXcmV4Junctions', { + X3: [ + api.createType('StagingXcmV4Junction', { + Parachain: api.createType('Compact', 2005) + }), + api.createType('StagingXcmV4Junction', { // sygma + GeneralKey: { + length: 5, + data: '0x7379676d61000000000000000000000000000000000000000000000000000000' + } + }), + api.createType('StagingXcmV4Junction', { // usdc + GeneralKey: { + length: 4, + data: '0x7573646300000000000000000000000000000000000000000000000000000000' + } + }), + ], + }), }) } function getERC20TSTAssetId(api) { - return api.createType('StagingXcmV3MultiassetAssetId', { - Concrete: api.createType('StagingXcmV3MultiLocation', { - parents: 1, - interior: api.createType('StagingXcmV3Junctions', { - X3: [ - api.createType('StagingXcmV3Junction', { - Parachain: api.createType('Compact', 2004) - }), - api.createType('StagingXcmV3Junction', { - GeneralKey: { - length: 5, - data: '0x7379676d61000000000000000000000000000000000000000000000000000000' - } // sygma - }), - api.createType('StagingXcmV3Junction', { - GeneralKey: { - length: 8, - data: '0x6572633230747374000000000000000000000000000000000000000000000000' - } // erc20tst - }), - ] - }) - }) + return api.createType('StagingXcmV4AssetAssetId', { + parents: 1, + interior: api.createType('StagingXcmV4Junctions', { + X3: [ + api.createType('StagingXcmV4Junction', { + Parachain: api.createType('Compact', 2005) + }), + api.createType('StagingXcmV4Junction', { // sygma + GeneralKey: { + length: 5, + data: '0x7379676d61000000000000000000000000000000000000000000000000000000' + } + }), + api.createType('StagingXcmV4Junction', { // erc20tst + GeneralKey: { + length: 8, + data: '0x6572633230747374000000000000000000000000000000000000000000000000' + } + }), + ], + }), }) } function getERC20TSTD20AssetId(api) { - return api.createType('StagingXcmV3MultiassetAssetId', { - Concrete: api.createType('StagingXcmV3MultiLocation', { - parents: 1, - interior: api.createType('StagingXcmV3Junctions', { - X3: [ - api.createType('StagingXcmV3Junction', { - Parachain: api.createType('Compact', 2004) - }), - api.createType('StagingXcmV3Junction', { - GeneralKey: { - length: 5, - data: '0x7379676d61000000000000000000000000000000000000000000000000000000' - } // sygma - }), - api.createType('StagingXcmV3Junction', { - GeneralKey: { - length: 11, - data: '0x6572633230747374643230000000000000000000000000000000000000000000' - } // erc20tstd20 - }), - ] - }) - }) + return api.createType('StagingXcmV4AssetAssetId', { + parents: 1, + interior: api.createType('StagingXcmV4Junctions', { + X3: [ + api.createType('StagingXcmV4Junction', { + Parachain: api.createType('Compact', 2005) + }), + api.createType('StagingXcmV4Junction', { // sygma + GeneralKey: { + length: 5, + data: '0x7379676d61000000000000000000000000000000000000000000000000000000' + } + }), + api.createType('StagingXcmV4Junction', { // erc20tstd20 + GeneralKey: { + length: 11, + data: '0x6572633230747374643230000000000000000000000000000000000000000000' + } + }), + ], + }), }) } function getNativeAssetId(api) { - return api.createType('StagingXcmV3MultiassetAssetId', { - Concrete: api.createType('StagingXcmV3MultiLocation', { - parents: 0, - interior: api.createType('StagingXcmV3Junctions', 'Here') - }) + return api.createType('StagingXcmV4AssetAssetId', { + parents: 0, + interior: api.createType('StagingXcmV4Junctions', 'Here') }) } @@ -483,4 +471,4 @@ module.exports = { queryAssetBalance, queryBalance, queryMPCAddress -} +} \ No newline at end of file diff --git a/substrate-node/parachain/node/Cargo.toml b/substrate-node/parachain/node/Cargo.toml index 7edb560c..09811bcc 100644 --- a/substrate-node/parachain/node/Cargo.toml +++ b/substrate-node/parachain/node/Cargo.toml @@ -21,67 +21,67 @@ clap = { version = "4.2.5", features = ["derive"] } codec = { package = "parity-scale-codec", version = "3.0.0" } serde = { version = "1.0.188", features = ["derive"] } futures = "0.3.28" +color-print = "0.3.4" # Substrate -sc-cli = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-core = { version = "21.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-executor = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-network = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-service = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-telemetry = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-keystore = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-offchain = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-statement-store = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-transaction-pool-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-consensus = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-client-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-chain-spec = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-network-sync = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-sysinfo = { version = "6.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-tracing = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-consensus-aura = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-runtime = { version = "24.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-io = { version = "23.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-timestamp = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-inherents = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-keyring = { version = "24.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-keystore = { version = "0.27.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -substrate-prometheus-endpoint = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-cli = { version = "0.36.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-core = { version = "28.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-executor = { version = "0.32.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-network = { version = "0.34.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-service = { version = "0.35.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-telemetry = { version = "15.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-keystore = { version = "25.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-offchain = { version = "29.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-statement-store = { version = "10.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-transaction-pool = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-transaction-pool-api = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-consensus = { version = "0.33.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-client-api = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-chain-spec = { version = "27.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-network-sync = { version = "0.33.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-sysinfo = { version = "27.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-tracing = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-consensus-aura = { version = "0.32.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-runtime = { version = "31.0.1", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-io = { version = "30.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-timestamp = { version = "26.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-inherents = { version = "26.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-keyring = { version = "31.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-keystore = { version = "0.34.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +substrate-prometheus-endpoint = { version = "0.17.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { version = "28.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-transaction-payment = { version = "28.0.0", default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", features = ["rococo-native"] } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false} +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", features = ["rococo-native"] } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false} # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -color-print = "0.3.4" +cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # These dependencies are used for the node template's RPCs -jsonrpsee = { version = "0.16.2", features = ["server"] } -sc-rpc = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-rpc-api = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-blockchain = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-block-builder = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-basic-authorship = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -substrate-frame-rpc-system = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-transaction-payment-rpc = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +jsonrpsee = { version = "0.20.3", features = ["server"] } +sc-rpc = { version = "29.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-api = { version = "26.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-rpc-api = { version = "0.33.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-blockchain = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-block-builder = { version = "26.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-basic-authorship = { version = "0.34.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +substrate-frame-rpc-system = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-transaction-payment-rpc = { version = "30.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # These dependencies are used for runtime benchmarking -frame-benchmarking = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-benchmarking-cli = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +frame-benchmarking = { version = "28.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-benchmarking-cli = { version = "32.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Local Dependencies parachain-template-runtime = { version = "4.0.3-dev", path = "../runtime" } @@ -89,11 +89,11 @@ sygma-rpc = { path = "../../../rpc", default-features = false } sygma-runtime-api = { path = "../../../runtime-api", default-features = false } # CLI-specific dependencies -try-runtime-cli = { version = "0.10.0-dev", optional = true, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +try-runtime-cli = { version = "0.38.0-dev", optional = true, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } log = "0.4.20" [build-dependencies] -substrate-build-script-utils = { version = "3.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +substrate-build-script-utils = { version = "11.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } [features] default = [] diff --git a/substrate-node/parachain/node/src/chain_spec.rs b/substrate-node/parachain/node/src/chain_spec.rs index c0e63c75..426c2b72 100644 --- a/substrate-node/parachain/node/src/chain_spec.rs +++ b/substrate-node/parachain/node/src/chain_spec.rs @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LGPL-3.0-only use cumulus_primitives_core::ParaId; +use jsonrpsee::core::__reexports::serde_json; use parachain_template_runtime::{AccountId, AuraId, Signature, EXISTENTIAL_DEPOSIT}; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; @@ -16,9 +17,6 @@ use sp_runtime::traits::{IdentifyAccount, Verify}; pub type ChainSpec = sc_service::GenericChainSpec; -/// The default XCM version to set in genesis config. -const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; - /// Helper function to generate a crypto pair from seed pub fn get_from_seed(seed: &str) -> ::Public { TPublic::Pair::from_string(&format!("//{}", seed), None) @@ -74,53 +72,48 @@ pub fn development_config() -> ChainSpec { properties.insert("tokenDecimals".into(), 12.into()); properties.insert("ss58Format".into(), 42.into()); - ChainSpec::from_genesis( - // Name - "Development", - // ID - "dev", - ChainType::Development, - move || { - testnet_genesis( - // initial collators. - vec![ - ( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed("Bob"), - ), - ], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - get_account_id_from_seed::("Alice"), - 1000.into(), - ) - }, - Vec::new(), - None, - None, - None, - None, + ChainSpec::builder( + parachain_template_runtime::WASM_BINARY + .expect("WASM binary was not built, please build it!"), Extensions { - relay_chain: "rococo-local".into(), // You MUST set this to the correct network! + relay_chain: "rococo-local".into(), + // You MUST set this to the correct network! para_id: 1000, }, ) + .with_name("Development") + .with_id("dev") + .with_chain_type(ChainType::Development) + .with_genesis_config_patch(testnet_genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + get_account_id_from_seed::("Alice"), + 1000.into(), + )) + .build() } pub fn local_testnet_config() -> ChainSpec { @@ -130,59 +123,51 @@ pub fn local_testnet_config() -> ChainSpec { properties.insert("tokenDecimals".into(), 12.into()); properties.insert("ss58Format".into(), 42.into()); - ChainSpec::from_genesis( - // Name - "Local Testnet", - // ID - "local_testnet", - ChainType::Local, - move || { - testnet_genesis( - // initial collators. - vec![ - ( - get_account_id_from_seed::("Alice"), - get_collator_keys_from_seed("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_collator_keys_from_seed("Bob"), - ), - ], - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - get_account_id_from_seed::("Alice"), - 1000.into(), - ) - }, - // Bootnodes - Vec::new(), - // Telemetry - None, - // Protocol ID - Some("template-local"), - // Fork ID - None, - // Properties - Some(properties), - // Extensions + #[allow(deprecated)] + ChainSpec::builder( + parachain_template_runtime::WASM_BINARY + .expect("WASM binary was not built, please build it!"), Extensions { - relay_chain: "rococo-local".into(), // You MUST set this to the correct network! + relay_chain: "rococo-local".into(), + // You MUST set this to the correct network! para_id: 1000, }, ) + .with_name("Local Testnet") + .with_id("local_testnet") + .with_chain_type(ChainType::Local) + .with_genesis_config_patch(testnet_genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + get_account_id_from_seed::("Alice"), + 1000.into(), + )) + .with_protocol_id("template-local") + .with_properties(properties) + .build() } fn testnet_genesis( @@ -190,28 +175,20 @@ fn testnet_genesis( endowed_accounts: Vec, root: AccountId, id: ParaId, -) -> parachain_template_runtime::RuntimeGenesisConfig { - parachain_template_runtime::RuntimeGenesisConfig { - system: parachain_template_runtime::SystemConfig { - code: parachain_template_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() +) -> serde_json::Value { + serde_json::json!({ + "balances": { + "balances": endowed_accounts.iter().cloned().map(|k| (k, 1u64 << 60)).collect::>(), }, - balances: parachain_template_runtime::BalancesConfig { - balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(), + "parachainInfo": { + "parachainId": id, }, - parachain_info: parachain_template_runtime::ParachainInfoConfig { - parachain_id: id, - ..Default::default() + "collatorSelection": { + "invulnerables": invulnerables.iter().cloned().map(|(acc, _)| acc).collect::>(), + "candidacyBond": EXISTENTIAL_DEPOSIT * 16, }, - collator_selection: parachain_template_runtime::CollatorSelectionConfig { - invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), - candidacy_bond: EXISTENTIAL_DEPOSIT * 16, - ..Default::default() - }, - session: parachain_template_runtime::SessionConfig { - keys: invulnerables + "session": { + "keys": invulnerables .into_iter() .map(|(acc, aura)| { ( @@ -220,19 +197,8 @@ fn testnet_genesis( template_session_keys(aura), // session keys ) }) - .collect(), - }, - // no need to pass anything to aura, in fact it will panic if we do. Session will take care - // of this. - aura: Default::default(), - aura_ext: Default::default(), - parachain_system: Default::default(), - polkadot_xcm: parachain_template_runtime::PolkadotXcmConfig { - safe_xcm_version: Some(SAFE_XCM_VERSION), - ..Default::default() + .collect::>(), }, - transaction_payment: Default::default(), - assets: Default::default(), - sudo: parachain_template_runtime::SudoConfig { key: Some(root) }, - } + "sudo": { "key": Some(root) } + }) } diff --git a/substrate-node/parachain/node/src/cli.rs b/substrate-node/parachain/node/src/cli.rs index f2b44db1..1a391b39 100644 --- a/substrate-node/parachain/node/src/cli.rs +++ b/substrate-node/parachain/node/src/cli.rs @@ -28,8 +28,10 @@ pub enum Subcommand { /// Remove the whole chain. PurgeChain(cumulus_client_cli::PurgeChainCmd), - /// Export the genesis state of the parachain. - ExportGenesisState(cumulus_client_cli::ExportGenesisStateCommand), + /// Export the genesis head data of the parachain. + /// + /// Head data is the encoded block header. + ExportGenesisHead(cumulus_client_cli::ExportGenesisHeadCommand), /// Export the genesis wasm of the parachain. ExportGenesisWasm(cumulus_client_cli::ExportGenesisWasmCommand), diff --git a/substrate-node/parachain/node/src/command.rs b/substrate-node/parachain/node/src/command.rs index 64cb8ad2..6c1e10e0 100644 --- a/substrate-node/parachain/node/src/command.rs +++ b/substrate-node/parachain/node/src/command.rs @@ -167,12 +167,12 @@ pub fn run() -> Result<()> { cmd.run(config, polkadot_config) }) }, - Some(Subcommand::ExportGenesisState(cmd)) => { + Some(Subcommand::ExportGenesisHead(cmd)) => { let runner = cli.create_runner(cmd)?; runner.sync_run(|config| { let partials = new_partial(&config)?; - cmd.run(&*config.chain_spec, &*partials.client) + cmd.run(partials.client) }) }, Some(Subcommand::ExportGenesisWasm(cmd)) => { diff --git a/substrate-node/parachain/node/src/rpc.rs b/substrate-node/parachain/node/src/rpc.rs index 525a7b16..93e70851 100644 --- a/substrate-node/parachain/node/src/rpc.rs +++ b/substrate-node/parachain/node/src/rpc.rs @@ -8,7 +8,7 @@ use std::sync::Arc; use parachain_template_runtime::{opaque::Block, AccountId, Balance, Nonce}; use sc_client_api::AuxStore; -pub use sc_rpc::{DenyUnsafe, SubscriptionTaskExecutor}; +pub use sc_rpc::DenyUnsafe; use sc_transaction_pool_api::TransactionPool; use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder; diff --git a/substrate-node/parachain/node/src/service.rs b/substrate-node/parachain/node/src/service.rs index 2b7ffb7d..9b62c987 100644 --- a/substrate-node/parachain/node/src/service.rs +++ b/substrate-node/parachain/node/src/service.rs @@ -259,10 +259,14 @@ async fn start_node_impl( // Here you can check whether the hardware meets your chains' requirements. Putting a link // in there and swapping out the requirements for your own are probably a good idea. The // requirements for a para-chain are dictated by its relay-chain. - if !SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) && validator { - log::warn!( - "⚠️ The hardware does not meet the minimal requirements for role 'Authority'." + match SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) { + Err(err) if validator => { + log::warn!( + "⚠️ The hardware does not meet the minimal requirements {} for role 'Authority'.", + err ); + }, + _ => {}, } if let Some(ref mut telemetry) = telemetry { @@ -416,6 +420,7 @@ fn start_consensus( collator_service, // Very limited proposal time. authoring_duration: Duration::from_millis(500), + collation_request_receiver: None, }; let fut = diff --git a/substrate-node/parachain/runtime/Cargo.toml b/substrate-node/parachain/runtime/Cargo.toml index dfde8872..6ddfe2bb 100644 --- a/substrate-node/parachain/runtime/Cargo.toml +++ b/substrate-node/parachain/runtime/Cargo.toml @@ -13,7 +13,7 @@ repository = "https://github.com/substrate-developer-hub/substrate-node-template targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", optional = true } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", optional = true } [dependencies] codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] } @@ -27,54 +27,56 @@ fixed = { version = "1.23.0", default-features = false } smallvec = { version = "1.11.0", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false, optional = true } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false, optional = true} -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false} -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false, optional = true } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false} -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0",default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false} -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false, optional = true } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false, optional = true} +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false} +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false, optional = true } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false} +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false} +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false} -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false} +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Cumulus -pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false} -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false, features = ["parameterized-consensus-hook",] } -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false} +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false, features = ["parameterized-consensus-hook",] } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Local Dependencies pallet-parachain-info = { path = "../../../parachain-info", default-features = false } @@ -114,6 +116,7 @@ std = [ "pallet-assets/std", "pallet-collator-selection/std", "pallet-session/std", + "pallet-message-queue/std", "pallet-sudo/std", "pallet-timestamp/std", "pallet-transaction-payment-rpc-runtime-api/std", @@ -163,6 +166,7 @@ runtime-benchmarks = [ "pallet-balances/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-assets/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", "pallet-collator-selection/runtime-benchmarks", "pallet-sudo/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", @@ -193,6 +197,7 @@ try-runtime = [ "pallet-balances/try-runtime", "pallet-collator-selection/try-runtime", "pallet-session/try-runtime", + "pallet-message-queue/try-runtime", "pallet-sudo/try-runtime", "pallet-timestamp/try-runtime", "pallet-transaction-payment/try-runtime", diff --git a/substrate-node/parachain/runtime/src/lib.rs b/substrate-node/parachain/runtime/src/lib.rs index e4a7e591..9053d5b9 100644 --- a/substrate-node/parachain/runtime/src/lib.rs +++ b/substrate-node/parachain/runtime/src/lib.rs @@ -23,7 +23,7 @@ mod weights; pub mod xcm_config; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; -use cumulus_primitives_core::ParaId; +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use fixed::{types::extra::U16, FixedU128}; pub use frame_support::{ construct_runtime, @@ -54,6 +54,7 @@ pub use frame_system::{Call as SystemCall, EnsureSigned}; pub use pallet_balances::Call as BalancesCall; pub use pallet_timestamp::Call as TimestampCall; use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; +use parachains_common::message_queue::NarrowOriginToSibling; use primitive_types::U256; use smallvec::smallvec; use sp_api::impl_runtime_apis; @@ -68,6 +69,7 @@ use sp_runtime::{ }; pub use sp_runtime::{MultiAddress, Perbill, Permill}; use sp_std::collections::btree_map::BTreeMap; +use sp_std::sync::Arc; use sp_std::{marker::PhantomData, prelude::*, result, vec::Vec}; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -77,22 +79,28 @@ use sygma_traits::{ AssetTypeIdentifier, ChainID, DecimalConverter, DepositNonce, DomainID, ExtractDestinationData, ResourceId, VerifyingContractAddress, }; -use xcm::latest::{prelude::*, AssetId as XcmAssetId, MultiLocation}; +use xcm::v4::{ + prelude::*, + AssetId as XcmAssetId, + Junctions::{X1, X3}, + Location, +}; +#[allow(deprecated)] use xcm_builder::{CurrencyAdapter, FungiblesAdapter, IsConcrete, NoChecking}; -use xcm_config::{RelayLocation, XcmConfig, XcmOriginToTransactDispatchOrigin}; +use xcm_config::{RelayLocation, XcmOriginToTransactDispatchOrigin}; use xcm_executor::traits::{Error as ExecutionError, MatchesFungibles}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; // Polkadot imports +use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; // XCM Imports use xcm::latest::prelude::BodyId; -use xcm_executor::XcmExecutor; /// Alias to 512-bit hash when used in the context of a transaction signature on the chain. pub type Signature = MultiSignature; @@ -316,6 +324,7 @@ impl frame_system::Config for Runtime { type RuntimeOrigin = RuntimeOrigin; /// The aggregated dispatch type that is available for extrinsics. type RuntimeCall = RuntimeCall; + type RuntimeTask = (); /// The index type for storing how many extrinsics an account has signed. type Nonce = Nonce; /// The type for hashing blocks and tries. @@ -378,8 +387,8 @@ impl pallet_balances::Config for Runtime { type ReserveIdentifier = [u8; 8]; type RuntimeHoldReason = RuntimeHoldReason; type FreezeIdentifier = (); - type MaxHolds = ConstU32<0>; type MaxFreezes = ConstU32<0>; + type RuntimeFreezeReason = (); } parameter_types! { @@ -455,6 +464,7 @@ impl pallet_sudo::Config for Runtime { parameter_types! { pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; } impl cumulus_pallet_parachain_system::Config for Runtime { @@ -462,11 +472,12 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type OnSystemEvent = (); type SelfParaId = pallet_parachain_info::Pallet; type OutboundXcmpMessageSource = XcmpQueue; - type DmpMessageHandler = DmpQueue; + type DmpQueue = frame_support::traits::EnqueueWithOrigin; type ReservedDmpWeight = ReservedDmpWeight; type XcmpMessageHandler = XcmpQueue; type ReservedXcmpWeight = ReservedXcmpWeight; type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; + type WeightInfo = (); type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook< Runtime, RELAY_CHAIN_SLOT_DURATION_MILLIS, @@ -479,22 +490,21 @@ impl pallet_parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} +parameter_types! { + /// The asset ID for the asset that we use to pay for message delivery fees. + pub FeeAssetId: XcmAssetId = AssetId(xcm_config::RelayLocation::get()); +} + impl cumulus_pallet_xcmp_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; type ChannelInfo = ParachainSystem; type VersionWrapper = (); - type ExecuteOverweightOrigin = EnsureRoot; type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = (); - type PriceForSiblingDelivery = (); -} - -impl cumulus_pallet_dmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = EnsureRoot; + type PriceForSiblingDelivery = NoPriceForMessageDelivery; + type XcmpQueue = (); + type MaxInboundSuspended = (); } parameter_types! { @@ -637,34 +647,40 @@ parameter_types! { // As long as the relayer and pallet configured with the same address, EIP712Domain should be recognized properly. pub DestVerifyingContractAddress: VerifyingContractAddress = primitive_types::H160::from_slice(hex::decode(DEST_VERIFYING_CONTRACT_ADDRESS).ok().unwrap().as_slice()); pub CheckingAccount: AccountId32 = AccountId32::new([102u8; 32]); - pub AssetsPalletLocation: MultiLocation = + pub AssetsPalletLocation: Location = PalletInstance(::index() as u8).into(); // NativeLocation is the representation of the current parachain's native asset location in substrate, it can be various on different parachains - pub NativeLocation: MultiLocation = MultiLocation::here(); + pub NativeLocation: Location = Location::here(); // UsdtLocation is the representation of the USDT asset location in substrate // USDT is a foreign asset, and in our local testing env, it's being registered on Parachain 2004 with the following location - pub UsdtLocation: MultiLocation = MultiLocation::new( + pub UsdtLocation: Location = Location::new( 1, X3( - Parachain(2005), - slice_to_generalkey(b"sygma"), - slice_to_generalkey(b"usdt"), + Arc::new([ + Parachain(2005), + slice_to_generalkey(b"sygma"), + slice_to_generalkey(b"usdt") + ]) ), ); - pub ERC20TSTLocation: MultiLocation = MultiLocation::new( + pub ERC20TSTLocation: Location = Location::new( 1, X3( - Parachain(2005), - slice_to_generalkey(b"sygma"), - slice_to_generalkey(b"erc20tst"), + Arc::new([ + Parachain(2005), + slice_to_generalkey(b"sygma"), + slice_to_generalkey(b"erc20tst") + ]) ), ); - pub ERC20TSTD20Location: MultiLocation = MultiLocation::new( + pub ERC20TSTD20Location: Location = Location::new( 1, X3( - Parachain(2005), - slice_to_generalkey(b"sygma"), - slice_to_generalkey(b"erc20tstd20"), + Arc::new([ + Parachain(2005), + slice_to_generalkey(b"sygma"), + slice_to_generalkey(b"erc20tstd20") + ]) ), ); // UsdtAssetId is the substrate assetID of USDT @@ -687,13 +703,13 @@ parameter_types! { } /// A simple Asset converter that extract the bingding relationship between AssetId and -/// MultiLocation, And convert Asset transfer amount to Balance +/// Location, And convert Asset transfer amount to Balance pub struct SimpleForeignAssetConverter(PhantomData<()>); impl MatchesFungibles for SimpleForeignAssetConverter { - fn matches_fungibles(a: &MultiAsset) -> result::Result<(AssetId, Balance), ExecutionError> { + fn matches_fungibles(a: &Asset) -> result::Result<(AssetId, Balance), ExecutionError> { match (&a.fun, &a.id) { - (Fungible(ref amount), Concrete(ref id)) => { + (Fungible(ref amount), AssetId(ref id)) => { if id == &UsdtLocation::get() { Ok((UsdtAssetId::get(), *amount)) } else if id == &ERC20TSTLocation::get() { @@ -710,12 +726,13 @@ impl MatchesFungibles for SimpleForeignAssetConverter { } /// Means for transacting assets on this chain. +#[allow(deprecated)] pub type CurrencyTransactor = CurrencyAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, - // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + // Do a simple punn to convert an AccountId32 Location into a native chain account ID: xcm_config::LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -729,7 +746,7 @@ pub type FungiblesTransactor = FungiblesAdapter< Assets, // Use this currency when it is a fungible asset matching the given location or name: SimpleForeignAssetConverter, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: xcm_config::LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId32, @@ -741,15 +758,15 @@ pub type FungiblesTransactor = FungiblesAdapter< pub struct ConcrateSygmaAsset; impl ConcrateSygmaAsset { - pub fn id(asset: &MultiAsset) -> Option { + pub fn id(asset: &Asset) -> Option { match (&asset.id, &asset.fun) { // So far our native asset is concrete - (Concrete(id), Fungible(_)) => Some(*id), + (AssetId(id), Fungible(_)) => Some(id.clone()), _ => None, } } - pub fn origin(asset: &MultiAsset) -> Option { + pub fn origin(asset: &Asset) -> Option { Self::id(asset).and_then(|id| { match (id.parents, id.first_interior()) { // Sibling parachain @@ -760,18 +777,18 @@ impl ConcrateSygmaAsset { // The registered foreign assets actually reserved on EVM chains, so when // transfer back to EVM chains, they should be treated as non-reserve assets // relative to current chain. - Some(MultiLocation::new(0, X1(slice_to_generalkey(b"sygma")))) + Some(Location::new(0, X1(Arc::new([slice_to_generalkey(b"sygma")])))) } else { - // Other parachain assets should be treat as reserve asset when transfered + // Other parachain assets should be treated as reserve asset when transfer // to outside EVM chains - Some(MultiLocation::here()) + Some(Location::here()) } }, - // Parent assets should be treat as reserve asset when transfered to outside EVM + // Parent assets should be treated as reserve asset when transfer to outside EVM // chains - (1, _) => Some(MultiLocation::here()), + (1, _) => Some(Location::here()), // Children parachain - (0, Some(Parachain(id))) => Some(MultiLocation::new(0, X1(Parachain(*id)))), + (0, Some(Parachain(id))) => Some(Location::new(0, X1(Arc::new([Parachain(*id)])))), // Local: (0, Here) (0, None) => Some(id), _ => None, @@ -784,7 +801,7 @@ pub struct SygmaDecimalConverter(PhantomData); impl>> DecimalConverter for SygmaDecimalConverter { - fn convert_to(asset: &MultiAsset) -> Option { + fn convert_to(asset: &Asset) -> Option { match (&asset.fun, &asset.id) { (Fungible(amount), _) => { for (asset_id, decimal) in DecimalPairs::get().iter() { @@ -823,13 +840,13 @@ impl>> DecimalConverter } } - fn convert_from(asset: &MultiAsset) -> Option { + fn convert_from(asset: &Asset) -> Option { match (&asset.fun, &asset.id) { (Fungible(amount), _) => { for (asset_id, decimal) in DecimalPairs::get().iter() { if *asset_id == asset.id { return if *decimal == 18 { - Some((asset.id, *amount).into()) + Some((asset.id.clone(), *amount).into()) } else { type U112F16 = FixedU128; if *decimal > 18 { @@ -843,7 +860,7 @@ impl>> DecimalConverter U112F16::from_num(10u128.saturating_pow(*decimal as u32 - 18)); let b = U112F16::from_num(*amount).saturating_mul(a); let r: u128 = b.to_num(); - Some((asset.id, r).into()) + Some((asset.id.clone(), r).into()) } else { let a = U112F16::from_num(10u128.saturating_pow(18 - *decimal as u32)); @@ -852,7 +869,7 @@ impl>> DecimalConverter if r == 0 { return None; } - Some((asset.id, r).into()) + Some((asset.id.clone(), r).into()) } }; } @@ -865,8 +882,8 @@ impl>> DecimalConverter } pub struct ReserveChecker; -impl ContainsPair for ReserveChecker { - fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { +impl ContainsPair for ReserveChecker { + fn contains(asset: &Asset, origin: &Location) -> bool { if let Some(ref id) = ConcrateSygmaAsset::origin(asset) { if id == origin { return true; @@ -879,22 +896,27 @@ impl ContainsPair for ReserveChecker { // Project can have it's own implementation to adapt their own spec design. pub struct DestinationDataParser; impl ExtractDestinationData for DestinationDataParser { - fn extract_dest(dest: &MultiLocation) -> Option<(Vec, DomainID)> { - match (dest.parents, &dest.interior) { - ( - 0, - Junctions::X3( - GeneralKey { length: path_len, data: sygma_path }, - GeneralIndex(dest_domain_id), - GeneralKey { length: recipient_len, data: recipient }, - ), - ) => { - if sygma_path[..*path_len as usize] == [0x73, 0x79, 0x67, 0x6d, 0x61] { - return TryInto::::try_into(*dest_domain_id).ok().map(|domain_id| { - (recipient[..*recipient_len as usize].to_vec(), domain_id) - }); + fn extract_dest(dest: &Location) -> Option<(Vec, DomainID)> { + match (dest.parents, dest.clone().interior) { + (0, Junctions::X3(xs)) => { + let [a, b, c] = *xs; + match (a, b, c) { + ( + GeneralKey { length: path_len, data: sygma_path }, + GeneralIndex(dest_domain_id), + GeneralKey { length: recipient_len, data: recipient }, + ) => { + if sygma_path[..path_len as usize] == [0x73, 0x79, 0x67, 0x6d, 0x61] { + return TryInto::::try_into(dest_domain_id).ok().map( + |domain_id| { + (recipient[..recipient_len as usize].to_vec(), domain_id) + }, + ); + } + None + }, + _ => None, } - None }, _ => None, } @@ -940,21 +962,47 @@ pub fn slice_to_generalkey(key: &[u8]) -> Junction { /// This impl is only for local mock purpose, the integrated parachain might have their own version pub struct NativeAssetTypeIdentifier(PhantomData); impl> AssetTypeIdentifier for NativeAssetTypeIdentifier { - /// check if the given MultiAsset is a native asset - fn is_native_asset(asset: &MultiAsset) -> bool { + /// check if the given Asset is a native asset + fn is_native_asset(asset: &Asset) -> bool { // currently there are two multilocations are considered as native asset: - // 1. integrated parachain native asset(MultiLocation::here()) - // 2. other parachain native asset(MultiLocation::new(1, X1(Parachain(T::get().into())))) + // 1. integrated parachain native asset(Location::here()) + // 2. other parachain native asset(Location::new(1, X1(Parachain(T::get().into())))) let native_locations = - [MultiLocation::here(), MultiLocation::new(1, X1(Parachain(T::get().into())))]; + [Location::here(), Location::new(1, X1(Arc::new([Parachain(T::get().into())])))]; match (&asset.id, &asset.fun) { - (Concrete(ref id), Fungible(_)) => native_locations.contains(id), + (AssetId(ref id), Fungible(_)) => native_locations.contains(id), _ => false, } } } +parameter_types! { + pub MessageQueueServiceWeight: Weight = Perbill::from_percent(35) * RuntimeBlockWeights::get().max_block; +} + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = (); + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = pallet_message_queue::mock_helpers::NoopMessageProcessor< + cumulus_primitives_core::AggregateMessageOrigin, + >; + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = xcm_builder::ProcessXcmMessage< + AggregateMessageOrigin, + xcm_executor::XcmExecutor, + RuntimeCall, + >; + type Size = u32; + // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: + type QueueChangeHandler = NarrowOriginToSibling; + type QueuePausedQuery = NarrowOriginToSibling; + type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; + type MaxStale = sp_core::ConstU32<8>; + type ServiceWeight = MessageQueueServiceWeight; +} + // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime { @@ -983,7 +1031,6 @@ construct_runtime!( XcmpQueue: cumulus_pallet_xcmp_queue = 30, PolkadotXcm: pallet_xcm = 31, CumulusXcm: cumulus_pallet_xcm = 32, - DmpQueue: cumulus_pallet_dmp_queue = 33, SygmaAccessSegregator: sygma_access_segregator::{Pallet, Call, Storage, Event} = 40, // 9 SygmaBasicFeeHandler: sygma_basic_feehandler::{Pallet, Call, Storage, Event} = 41, // 10, @@ -992,6 +1039,10 @@ construct_runtime!( SygmaPercentageFeeHandler: sygma_percentage_feehandler::{Pallet, Call, Storage, Event} = 44, // 13 SygmaXcmBridge: sygma_xcm_bridge::{Pallet, Event} = 45, SygmaBridgeForwarder: sygma_bridge_forwarder::{Pallet, Event} = 46, + + // Message Queue. Importantly, is registered last so that messages are processed after + // the `on_initialize` hooks of bridging pallets. + MessageQueue: pallet_message_queue = 250, } ); diff --git a/substrate-node/parachain/runtime/src/weights/mod.rs b/substrate-node/parachain/runtime/src/weights/mod.rs index 30fa2c40..285a2e4e 100644 --- a/substrate-node/parachain/runtime/src/weights/mod.rs +++ b/substrate-node/parachain/runtime/src/weights/mod.rs @@ -19,10 +19,11 @@ pub mod block_weights; pub mod extrinsic_weights; +// pub mod pallet_message_queue; pub mod paritydb_weights; pub mod rocksdb_weights; pub use block_weights::constants::BlockExecutionWeight; pub use extrinsic_weights::constants::ExtrinsicBaseWeight; -pub use paritydb_weights::constants::ParityDbWeight; +// pub use paritydb_weights::constants::ParityDbWeight; pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/substrate-node/parachain/runtime/src/weights/pallet_message_queue.rs b/substrate-node/parachain/runtime/src/weights/pallet_message_queue.rs new file mode 100644 index 00000000..2fcd573c --- /dev/null +++ b/substrate-node/parachain/runtime/src/weights/pallet_message_queue.rs @@ -0,0 +1,179 @@ +// 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 `pallet_message_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-24, STEPS: `2`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `i9`, CPU: `13th Gen Intel(R) Core(TM) i9-13900K` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 + +// Executed Command: +// ./target/release/polkadot-parachain +// benchmark +// pallet +// --chain +// bridge-hub-rococo-dev +// --pallet +// pallet_message_queue +// --extrinsic +// * +// --execution +// wasm +// --wasm-execution +// compiled +// --output +// parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_message_queue`. +pub struct WeightInfo(PhantomData); +impl pallet_message_queue::WeightInfo for WeightInfo { + /// Storage: MessageQueue ServiceHead (r:1 w:0) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Storage: MessageQueue BookStateFor (r:2 w:2) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + fn ready_ring_knit() -> Weight { + // Proof Size summary in bytes: + // Measured: `189` + // Estimated: `7534` + // Minimum execution time: 11_446_000 picoseconds. + Weight::from_parts(11_446_000, 0) + .saturating_add(Weight::from_parts(0, 7534)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: MessageQueue BookStateFor (r:2 w:2) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue ServiceHead (r:1 w:1) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + fn ready_ring_unknit() -> Weight { + // Proof Size summary in bytes: + // Measured: `184` + // Estimated: `7534` + // Minimum execution time: 10_613_000 picoseconds. + Weight::from_parts(10_613_000, 0) + .saturating_add(Weight::from_parts(0, 7534)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + fn service_queue_base() -> Weight { + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3517` + // Minimum execution time: 4_854_000 picoseconds. + Weight::from_parts(4_854_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn service_page_base_completion() -> Weight { + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `69050` + // Minimum execution time: 5_748_000 picoseconds. + Weight::from_parts(5_748_000, 0) + .saturating_add(Weight::from_parts(0, 69050)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn service_page_base_no_completion() -> Weight { + // Proof Size summary in bytes: + // Measured: `72` + // Estimated: `69050` + // Minimum execution time: 6_136_000 picoseconds. + Weight::from_parts(6_136_000, 0) + .saturating_add(Weight::from_parts(0, 69050)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn service_page_item() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 59_505_000 picoseconds. + Weight::from_parts(59_505_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: MessageQueue ServiceHead (r:1 w:1) + /// Proof: MessageQueue ServiceHead (max_values: Some(1), max_size: Some(5), added: 500, mode: MaxEncodedLen) + /// Storage: MessageQueue BookStateFor (r:1 w:0) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + fn bump_service_head() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `5007` + // Minimum execution time: 6_506_000 picoseconds. + Weight::from_parts(6_506_000, 0) + .saturating_add(Weight::from_parts(0, 5007)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn reap_page() -> Weight { + // Proof Size summary in bytes: + // Measured: `65667` + // Estimated: `72567` + // Minimum execution time: 40_646_000 picoseconds. + Weight::from_parts(40_646_000, 0) + .saturating_add(Weight::from_parts(0, 72567)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn execute_overweight_page_removed() -> Weight { + // Proof Size summary in bytes: + // Measured: `65667` + // Estimated: `72567` + // Minimum execution time: 51_424_000 picoseconds. + Weight::from_parts(51_424_000, 0) + .saturating_add(Weight::from_parts(0, 72567)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: MessageQueue BookStateFor (r:1 w:1) + /// Proof: MessageQueue BookStateFor (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: MessageQueue Pages (r:1 w:1) + /// Proof: MessageQueue Pages (max_values: None, max_size: Some(65585), added: 68060, mode: MaxEncodedLen) + fn execute_overweight_page_updated() -> Weight { + // Proof Size summary in bytes: + // Measured: `65667` + // Estimated: `72567` + // Minimum execution time: 81_153_000 picoseconds. + Weight::from_parts(81_153_000, 0) + .saturating_add(Weight::from_parts(0, 72567)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/substrate-node/parachain/runtime/src/xcm_config.rs b/substrate-node/parachain/runtime/src/xcm_config.rs index 38b1b77d..f60cfe30 100644 --- a/substrate-node/parachain/runtime/src/xcm_config.rs +++ b/substrate-node/parachain/runtime/src/xcm_config.rs @@ -8,8 +8,9 @@ use super::{ }; use cumulus_primitives_core::ParaId; use frame_support::pallet_prelude::Get; +use frame_support::traits::Contains; use frame_support::{ - match_types, parameter_types, + parameter_types, traits::{ConstU32, Everything, Nothing}, weights::Weight, }; @@ -18,32 +19,35 @@ use pallet_xcm::XcmPassthrough; use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; use sp_runtime::traits::CheckedConversion; +use sp_std::sync::Arc; use sp_std::vec; use sp_std::{marker::PhantomData, vec::Vec}; use sygma_traits::AssetTypeIdentifier; use sygma_xcm_bridge::BridgeImpl; -use xcm::latest::prelude::*; +use xcm::v4::prelude::*; +use xcm::v4::Junctions::X1; +#[allow(deprecated)] use xcm_builder::{ AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, - FixedWeightBounds, NativeAsset, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, - WithComputedOrigin, WithUniqueTopic, + FixedWeightBounds, FrameTransactionalProcessor, NativeAsset, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, }; use xcm_executor::{traits::MatchesFungible, XcmExecutor}; parameter_types! { - pub const RelayLocation: MultiLocation = MultiLocation::parent(); + pub const RelayLocation: Location = Location::parent(); pub const RelayNetwork: Option = None; pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); - pub SelfLocation: MultiLocation = MultiLocation::new(1, X1(Parachain(ParachainInfo::parachain_id().into()))); + pub UniversalLocation: InteriorLocation = Parachain(ParachainInfo::parachain_id().into()).into(); + pub SelfLocation: Location = Location::new(1, X1(Arc::new([Parachain(ParachainInfo::parachain_id().into())]))); // set 1 token as min fee pub MinXcmFee: Vec<(XcmAssetId, u128)> = vec![(NativeLocation::get().into(), 1_000_000_000_000u128)]; } -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// Type for specifying how a `Location` can be converted into an `AccountId`. This is used /// when determining ownership of accounts for asset transacting and when attempting to use XCM /// `Transact` in order to determine the dispatch Origin. pub type LocationToAccountId = ( @@ -56,12 +60,13 @@ pub type LocationToAccountId = ( ); /// Means for transacting assets on this chain. +#[allow(deprecated)] pub type LocalAssetTransactor = CurrencyAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: NativeAssetMatcher>, - // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + // Do a simple punn to convert an AccountId32 Location into a native chain account ID: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, @@ -97,11 +102,18 @@ parameter_types! { pub const MaxAssetsIntoHolding: u32 = 64; } -match_types! { - pub type ParentOrParentsExecutivePlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } - }; +// match_types! { +// pub type ParentOrParentsExecutivePlurality: impl Contains = { +// Location { parents: 1, interior: Here } | +// Location { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } +// }; +// } + +pub struct ParentOrParentsExecutivePlurality; +impl Contains for ParentOrParentsExecutivePlurality { + fn contains(location: &Location) -> bool { + matches!(location.unpack(), (1, []) | (1, [Plurality { id: BodyId::Executive, .. }])) + } } pub type Barrier = TrailingSetTopicAsId< @@ -150,6 +162,7 @@ impl xcm_executor::Config for XcmConfig { type CallDispatcher = RuntimeCall; type SafeCallFilter = Everything; type Aliasers = Nothing; + type TransactionalProcessor = FrameTransactionalProcessor; } /// No local origins on this chain are allowed to dispatch XCM sends/executions. @@ -166,7 +179,7 @@ pub type XcmRouter = WithUniqueTopic<( #[cfg(feature = "runtime-benchmarks")] parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); + pub ReachableDest: Option = Some(Parent.into()); } impl pallet_xcm::Config for Runtime { @@ -194,8 +207,6 @@ impl pallet_xcm::Config for Runtime { type SovereignAccountOf = LocationToAccountId; type MaxLockers = ConstU32<8>; type WeightInfo = pallet_xcm::TestWeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; type AdminOrigin = EnsureRoot; type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); @@ -224,9 +235,9 @@ impl sygma_bridge_forwarder::Config for Runtime { pub struct NativeAssetMatcher(PhantomData); impl> MatchesFungible for NativeAssetMatcher { - fn matches_fungible(a: &MultiAsset) -> Option { + fn matches_fungible(a: &Asset) -> Option { match (&a.id, &a.fun) { - (Concrete(_), Fungible(ref amount)) if C::is_native_asset(a) => { + (AssetId(_), Fungible(ref amount)) if C::is_native_asset(a) => { CheckedConversion::checked_from(*amount) }, _ => None, @@ -238,16 +249,16 @@ impl> MatchesFungible for NativeAsse /// This impl is only for local mock purpose, the integrated parachain might have their own version pub struct NativeAssetTypeIdentifier(PhantomData); impl> AssetTypeIdentifier for NativeAssetTypeIdentifier { - /// check if the given MultiAsset is a native asset - fn is_native_asset(asset: &MultiAsset) -> bool { + /// check if the given Asset is a native asset + fn is_native_asset(asset: &Asset) -> bool { // currently there are two multilocations are considered as native asset: - // 1. integrated parachain native asset(MultiLocation::here()) - // 2. other parachain native asset(MultiLocation::new(1, X1(Parachain(T::get().into())))) + // 1. integrated parachain native asset(Location::here()) + // 2. other parachain native asset(Location::new(1, X1(Parachain(T::get().into())))) let native_locations = - [MultiLocation::here(), MultiLocation::new(1, X1(Parachain(T::get().into())))]; + [Location::here(), Location::new(1, X1(Arc::new([Parachain(T::get().into())])))]; match (&asset.id, &asset.fun) { - (Concrete(ref id), Fungible(_)) => native_locations.contains(id), + (AssetId(ref id), Fungible(_)) => native_locations.contains(id), _ => false, } } diff --git a/substrate-node/standalone/node/Cargo.toml b/substrate-node/standalone/node/Cargo.toml index 613319a8..67e3f85a 100644 --- a/substrate-node/standalone/node/Cargo.toml +++ b/substrate-node/standalone/node/Cargo.toml @@ -19,48 +19,51 @@ name = "standalone-node-template" [dependencies] clap = { version = "4.2.5", features = ["derive"] } futures = { version = "0.3.21", features = ["thread-pool"]} +serde = { version = "1.0.195", features = ["derive"] } +serde_json = "1.0.111" -sc-cli = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-core = { version = "21.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-executor = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-network = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-service = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-telemetry = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-keystore = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-offchain = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-statement-store = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-transaction-pool-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-consensus-aura = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-consensus-aura = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-consensus = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-consensus = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-consensus-grandpa = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-consensus-grandpa = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-client-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-runtime = { version = "24.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-io = { version = "23.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-timestamp = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-inherents = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-keyring = { version = "24.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-transaction-payment = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sc-cli = { version = "0.36.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-core = { version = "28.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-executor = { version = "0.32.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-network = { version = "0.34.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-service = { version = "0.35.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-telemetry = { version = "15.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-keystore = { version = "25.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-chain-spec = { version = "27.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-offchain = { version = "29.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-statement-store = { version = "10.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-transaction-pool = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-transaction-pool-api = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-consensus-aura = { version = "0.34.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-consensus-aura = { version = "0.32.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-consensus = { version = "0.32.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-consensus = { version = "0.33.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-consensus-grandpa = { version = "0.19.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-consensus-grandpa = { version = "13.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-client-api = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-runtime = { version = "31.0.1", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-io = { version = "30.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-timestamp = { version = "26.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-inherents = { version = "26.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-keyring = { version = "31.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-transaction-payment = { version = "28.0.0-dev", default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # These dependencies are used for the node template's RPCs -jsonrpsee = { version = "0.16.2", features = ["server"] } -sc-rpc = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-rpc-api = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-blockchain = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-block-builder = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sc-basic-authorship = { version = "0.10.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -substrate-frame-rpc-system = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-transaction-payment-rpc = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +jsonrpsee = { version = "0.20.3", features = ["server"] } +sc-rpc = { version = "29.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-api = { version = "26.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-rpc-api = { version = "0.33.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-blockchain = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-block-builder = { version = "26.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sc-basic-authorship = { version = "0.34.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +substrate-frame-rpc-system = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-transaction-payment-rpc = { version = "30.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # These dependencies are used for runtime benchmarking -frame-benchmarking = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-benchmarking-cli = { version = "4.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +frame-benchmarking = { version = "28.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-benchmarking-cli = { version = "32.0.0-dev", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Local Dependencies standalone-template-runtime = { version = "4.0.3-dev", path = "../runtime" } @@ -68,10 +71,10 @@ sygma-rpc = { path = "../../../rpc", default-features = false } sygma-runtime-api = { path = "../../../runtime-api", default-features = false } # CLI-specific dependencies -try-runtime-cli = { version = "0.10.0-dev", optional = true, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +try-runtime-cli = { version = "0.38.0-dev", optional = true, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } [build-dependencies] -substrate-build-script-utils = { version = "3.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +substrate-build-script-utils = { version = "11.0.0", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } [features] default = [] diff --git a/substrate-node/standalone/node/src/chain_spec.rs b/substrate-node/standalone/node/src/chain_spec.rs index 3a2e9982..da3baab6 100644 --- a/substrate-node/standalone/node/src/chain_spec.rs +++ b/substrate-node/standalone/node/src/chain_spec.rs @@ -2,21 +2,22 @@ // SPDX-License-Identifier: LGPL-3.0-only use cumulus_primitives_core::ParaId; +use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; +use sc_consensus_grandpa::AuthorityId as GrandpaId; use sc_service::ChainType; +use serde::{Deserialize, Serialize}; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_consensus_grandpa::AuthorityId as GrandpaId; use sp_core::{sr25519, Pair, Public}; use sp_runtime::traits::{IdentifyAccount, Verify}; use standalone_template_runtime::{ - AccountId, AuraConfig, BalancesConfig, GrandpaConfig, ParachainInfoConfig, - RuntimeGenesisConfig, Signature, SudoConfig, SystemConfig, WASM_BINARY, + AccountId, SessionKeys, Signature, EXISTENTIAL_DEPOSIT, WASM_BINARY, }; // The URL for the telemetry server. // const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/"; /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec<(), Extensions>; /// Generate a crypto pair from seed. pub fn get_from_seed(seed: &str) -> ::Public { @@ -25,8 +26,32 @@ pub fn get_from_seed(seed: &str) -> ::Pu .public() } +/// The extensions for the [`ChainSpec`]. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)] +#[serde(deny_unknown_fields)] +pub struct Extensions { + /// The relay chain of the Parachain. + pub relay_chain: String, + /// The id of the Parachain. + pub para_id: u32, +} + +// impl Extensions { +// /// Try to get the extension from the given `ChainSpec`. +// pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> { +// sc_chain_spec::get_extension(chain_spec.extensions()) +// } +// } + type AccountPublic = ::Signer; +/// Generate collator keys from seed. +/// +/// This function's return type must always match the session keys of the chain in tuple format. +pub fn get_collator_keys_from_seed(seed: &str) -> AuraId { + get_from_seed::(seed) +} + /// Generate an account ID from seed. pub fn get_account_id_from_seed(seed: &str) -> AccountId where @@ -35,131 +60,152 @@ where AccountPublic::from(get_from_seed::(seed)).into_account() } -/// Generate an Aura authority key. -pub fn authority_keys_from_seed(s: &str) -> (AuraId, GrandpaId) { - (get_from_seed::(s), get_from_seed::(s)) +// /// Generate an Aura authority key. +// pub fn authority_keys_from_seed(s: &str) -> (AuraId, GrandpaId) { +// (get_from_seed::(s), get_from_seed::(s)) +// } + +/// Generate the session keys from individual elements. +/// +/// The input must be a tuple of individual keys (a single arg for now since we have just one key). +pub fn template_session_keys(keys: AuraId, grandpa: GrandpaId) -> SessionKeys { + SessionKeys { aura: keys, grandpa } } -pub fn development_config() -> Result { - let wasm_binary = WASM_BINARY.ok_or_else(|| "Development wasm not available".to_string())?; +pub fn development_config() -> ChainSpec { + // Give your base currency a unit name and decimal places + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("tokenSymbol".into(), "UNIT".into()); + properties.insert("tokenDecimals".into(), 12.into()); + properties.insert("ss58Format".into(), 42.into()); - Ok(ChainSpec::from_genesis( - // Name - "Development", - // ID - "dev", - ChainType::Development, - move || { - testnet_genesis( - wasm_binary, - // Initial PoA authorities - vec![authority_keys_from_seed("Alice")], - // Sudo account - get_account_id_from_seed::("Alice"), - // Pre-funded accounts - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - ], - true, - ) + ChainSpec::builder( + WASM_BINARY.expect("WASM binary was not built, please build it!"), + Extensions { + relay_chain: "rococo-local".into(), + // You MUST set this to the correct network! + para_id: 1000, }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - None, - // Properties - None, - // Extensions - None, + ) + .with_name("Development") + .with_id("dev") + .with_chain_type(ChainType::Development) + .with_genesis_config_patch(testnet_genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed("Alice"), + get_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed("Bob"), + get_from_seed::("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + get_account_id_from_seed::("Alice"), + 1000.into(), )) + .build() } -pub fn local_testnet_config() -> Result { - let wasm_binary = WASM_BINARY.ok_or_else(|| "Development wasm not available".to_string())?; - - Ok(ChainSpec::from_genesis( - // Name - "Local Testnet", - // ID - "local_testnet", - ChainType::Local, - move || { - testnet_genesis( - wasm_binary, - // Initial PoA authorities - vec![authority_keys_from_seed("Alice"), authority_keys_from_seed("Bob")], - // Sudo account - get_account_id_from_seed::("Alice"), - // Pre-funded accounts - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - true, - ) +pub fn local_testnet_config() -> ChainSpec { + // Give your base currency a unit name and decimal places + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("tokenSymbol".into(), "UNIT".into()); + properties.insert("tokenDecimals".into(), 12.into()); + properties.insert("ss58Format".into(), 42.into()); + ChainSpec::builder( + WASM_BINARY.expect("WASM binary was not built, please build it!"), + Extensions { + relay_chain: "rococo-local".into(), + // You MUST set this to the correct network! + para_id: 1000, }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - // Properties - None, - None, - // Extensions - None, + ) + .with_name("Local Testnet") + .with_id("local_testnet") + .with_chain_type(ChainType::Local) + .with_genesis_config_patch(testnet_genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed("Alice"), + get_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed("Bob"), + get_from_seed::("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + get_account_id_from_seed::("Alice"), + 1000.into(), )) + .with_protocol_id("template-local") + .with_properties(properties) + .build() } -/// Configure initial storage state for FRAME modules. fn testnet_genesis( - wasm_binary: &[u8], - initial_authorities: Vec<(AuraId, GrandpaId)>, - root_key: AccountId, + invulnerables: Vec<(AccountId, AuraId, GrandpaId)>, endowed_accounts: Vec, - _enable_println: bool, -) -> RuntimeGenesisConfig { - // hardcoded dummy parachainID - let id: ParaId = ParaId::from(1000); - RuntimeGenesisConfig { - system: SystemConfig { - // Add Wasm runtime to storage. - code: wasm_binary.to_vec(), - ..Default::default() - }, - balances: BalancesConfig { - // Configure endowed accounts with initial balance of 1 << 60. - balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(), + root: AccountId, + id: ParaId, +) -> serde_json::Value { + serde_json::json!({ + "balances": { + "balances": endowed_accounts.iter().cloned().map(|k| (k, 1u64 << 60)).collect::>(), }, - aura: AuraConfig { - authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(), + "parachainInfo": { + "parachainId": id, }, - grandpa: GrandpaConfig { - authorities: initial_authorities.iter().map(|x| (x.1.clone(), 1)).collect(), - ..Default::default() + "collatorSelection": { + "invulnerables": invulnerables.iter().cloned().map(|(acc, _, _)| acc).collect::>(), + "candidacyBond": EXISTENTIAL_DEPOSIT * 16, }, - sudo: SudoConfig { - // Assign network admin rights. - key: Some(root_key), + "session": { + "keys": invulnerables + .into_iter() + .map(|(acc, aura, grandpa_id)| { + ( + acc.clone(), // account id + acc, // validator id + template_session_keys(aura, grandpa_id), // session keys + ) + }) + .collect::>(), }, - parachain_info: ParachainInfoConfig { parachain_id: id, ..Default::default() }, - transaction_payment: Default::default(), - } + "sudo": { "key": Some(root) }, + }) } diff --git a/substrate-node/standalone/node/src/command.rs b/substrate-node/standalone/node/src/command.rs index 9d0a73ab..a2adef3c 100644 --- a/substrate-node/standalone/node/src/command.rs +++ b/substrate-node/standalone/node/src/command.rs @@ -43,8 +43,8 @@ impl SubstrateCli for Cli { fn load_spec(&self, id: &str) -> Result, String> { Ok(match id { - "dev" => Box::new(chain_spec::development_config()?), - "" | "local" => Box::new(chain_spec::local_testnet_config()?), + "dev" => Box::new(chain_spec::development_config()), + "" | "local" => Box::new(chain_spec::local_testnet_config()), path => { Box::new(chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path))?) }, diff --git a/substrate-node/standalone/node/src/service.rs b/substrate-node/standalone/node/src/service.rs index 090e464a..89351924 100644 --- a/substrate-node/standalone/node/src/service.rs +++ b/substrate-node/standalone/node/src/service.rs @@ -167,9 +167,9 @@ pub fn new_full(config: Configuration) -> Result { &client.block_hash(0).ok().flatten().expect("Genesis block exists; qed"), &config.chain_spec, ); - net_config.add_notification_protocol(sc_consensus_grandpa::grandpa_peers_set_config( - grandpa_protocol_name.clone(), - )); + let (grandpa_protocol_config, grandpa_notification_service) = + sc_consensus_grandpa::grandpa_peers_set_config(grandpa_protocol_name.clone()); + net_config.add_notification_protocol(grandpa_protocol_config); let warp_sync = Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( backend.clone(), @@ -320,6 +320,7 @@ pub fn new_full(config: Configuration) -> Result { link: grandpa_link, network, sync: Arc::new(sync_service), + notification_service: grandpa_notification_service, voting_rule: sc_consensus_grandpa::VotingRulesBuilder::default().build(), prometheus_registry, shared_voter_state: SharedVoterState::empty(), diff --git a/substrate-node/standalone/runtime/Cargo.toml b/substrate-node/standalone/runtime/Cargo.toml index 65a31880..be0bba7d 100644 --- a/substrate-node/standalone/runtime/Cargo.toml +++ b/substrate-node/standalone/runtime/Cargo.toml @@ -21,44 +21,47 @@ hex = { version = "0.4.3", default-features = false } funty = { version = "2.0.0", default-features = false } fixed = {version = "1.23.0", default-features = false } -pallet-assets = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-aura = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-balances = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-grandpa = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-insecure-randomness-collective-flip = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-sudo = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-support = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-try-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", optional = true, branch = "release-polkadot-v1.2.0" } -frame-executive = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-block-builder = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-consensus-aura = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-consensus-grandpa = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-core = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-inherents = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-offchain = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-session = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-std = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-version = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +pallet-assets = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-aura = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-balances = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-grandpa = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-session = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +pallet-insecure-randomness-collective-flip = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-sudo = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-timestamp = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-transaction-payment = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-collator-selection = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-support = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-try-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", optional = true, branch = "release-polkadot-v1.7.0" } +frame-executive = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-block-builder = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-consensus-aura = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-consensus-grandpa = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-core = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-inherents = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-offchain = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-runtime = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-session = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-std = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-transaction-pool = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-version = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-genesis-builder = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Used for the node template's RPCs -frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +frame-system-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-transaction-payment-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Used for runtime benchmarking -frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", optional = true, branch = "release-polkadot-v1.2.0" } -frame-system-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", optional = true, branch = "release-polkadot-v1.2.0" } +frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", optional = true, branch = "release-polkadot-v1.7.0" } +frame-system-benchmarking = { default-features = false, git = "https://github.com/paritytech/polkadot-sdk.git", optional = true, branch = "release-polkadot-v1.7.0" } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Local Dependencies sygma-basic-feehandler = { path = "../../../basic-fee-handler", default-features = false } @@ -71,7 +74,7 @@ sygma-runtime-api = { path = "../../../runtime-api", default-features = false } pallet-parachain-info = { path = "../../../parachain-info", default-features = false } [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } [features] default = ["std"] @@ -92,6 +95,8 @@ std = [ "pallet-grandpa/std", "pallet-insecure-randomness-collective-flip/std", "pallet-sudo/std", + "pallet-session/std", + "pallet-collator-selection/std", "sygma-basic-feehandler/std", "sygma-percentage-feehandler/std", "sygma-traits/std", @@ -113,6 +118,7 @@ std = [ "sp-std/std", "sp-transaction-pool/std", "sp-version/std", + "sp-genesis-builder/std", "xcm/std", "xcm-builder/std", "xcm-executor/std", diff --git a/substrate-node/standalone/runtime/src/lib.rs b/substrate-node/standalone/runtime/src/lib.rs index 94db9879..c633e0b6 100644 --- a/substrate-node/standalone/runtime/src/lib.rs +++ b/substrate-node/standalone/runtime/src/lib.rs @@ -10,7 +10,12 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); use fixed::{types::extra::U16, FixedU128}; -use frame_support::{pallet_prelude::*, traits::ContainsPair, PalletId}; +use frame_support::{ + genesis_builder_helper::{build_config, create_default_config}, + pallet_prelude::*, + traits::ContainsPair, + PalletId, +}; use pallet_grandpa::AuthorityId as GrandpaId; use polkadot_parachain_primitives::primitives::Sibling; use primitive_types::U256; @@ -27,6 +32,7 @@ use sp_runtime::{ AccountId32, ApplyExtrinsicResult, MultiSignature, Perbill, }; use sp_std::collections::btree_map::BTreeMap; +use sp_std::sync::Arc; use sp_std::{marker::PhantomData, prelude::*, result, vec::Vec}; #[cfg(feature = "std")] use sp_version::NativeVersion; @@ -35,7 +41,8 @@ use sygma_traits::{ ChainID, DecimalConverter, DepositNonce, DomainID, ExtractDestinationData, ResourceId, VerifyingContractAddress, }; -use xcm::latest::{prelude::*, AssetId as XcmAssetId, MultiLocation}; +use xcm::v4::{prelude::*, AssetId as XcmAssetId, Location}; +#[allow(deprecated)] use xcm_builder::{ AccountId32Aliases, CurrencyAdapter, FungiblesAdapter, IsConcrete, NoChecking, ParentIsPreset, SiblingParachainConvertsVia, @@ -65,6 +72,7 @@ use pallet_transaction_payment::{ }; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; +use xcm::v4::Junctions::{X1, X2, X3}; /// An index to a block. pub type BlockNumber = u32; @@ -100,12 +108,12 @@ pub mod opaque { pub type Block = generic::Block; /// Opaque block identifier type. pub type BlockId = generic::BlockId; +} - impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - pub grandpa: Grandpa, - } +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + pub grandpa: Grandpa, } } @@ -217,6 +225,7 @@ impl frame_system::Config for Runtime { /// The set code logic, just the default since we're not a parachain. type OnSetCode = (); type MaxConsumers = frame_support::traits::ConstU32<16>; + type RuntimeTask = (); } impl pallet_insecure_randomness_collective_flip::Config for Runtime {} @@ -267,7 +276,7 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = (); type MaxFreezes = (); type RuntimeHoldReason = (); - type MaxHolds = (); + type RuntimeFreezeReason = (); } parameter_types! { @@ -338,6 +347,49 @@ impl pallet_assets::Config for Runtime { type BenchmarkHelper = (); } +parameter_types! { + pub const Period: u32 = 6 * HOURS; + pub const Offset: u32 = 0; +} + +impl pallet_session::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ValidatorId = ::AccountId; + // we don't have stash and controller, thus we don't need the convert as well. + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ShouldEndSession = pallet_session::PeriodicSessions; + type NextSessionRotation = pallet_session::PeriodicSessions; + type SessionManager = CollatorSelection; + // Essentially just Aura, but lets be pedantic. + type SessionHandler = ::KeyTypeIdProviders; + type Keys = SessionKeys; + type WeightInfo = (); +} + +parameter_types! { + pub const PotId: PalletId = PalletId(*b"PotStake"); + pub const MaxCollatorCandidates: u32 = 1000; + pub const MinEligibleCollators: u32 = 5; + pub const SessionLength: BlockNumber = 6 * HOURS; + pub const MaxInvulnerables: u32 = 100; +} + +impl pallet_collator_selection::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type UpdateOrigin = frame_system::EnsureRoot; + type PotId = PotId; + type MaxCandidates = MaxCollatorCandidates; + type MinEligibleCollators = MinEligibleCollators; + type MaxInvulnerables = MaxInvulnerables; + // should be a multiple of session or things will get inconsistent + type KickThreshold = Period; + type ValidatorId = ::AccountId; + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ValidatorRegistration = Session; + type WeightInfo = (); +} + parameter_types! { // Make sure put same value with `construct_runtime` pub const AccessSegregatorPalletIndex: u8 = 9; @@ -398,7 +450,7 @@ const DEST_VERIFYING_CONTRACT_ADDRESS: &str = "6CdE2Cd82a4F8B74693Ff5e194c19CA08 fn bridge_accounts_generator() -> BTreeMap { let mut account_map: BTreeMap = BTreeMap::new(); account_map.insert(NativeLocation::get().into(), BridgeAccountNative::get()); - account_map.insert(UsdtLocation::get().into(), BridgeAccountOtherToken::get()); + account_map.insert(UsdcLocation::get().into(), BridgeAccountOtherToken::get()); account_map.insert(ERC20TSTLocation::get().into(), BridgeAccountOtherToken::get()); account_map.insert(ERC20TSTD20Location::get().into(), BridgeAccountOtherToken::get()); account_map @@ -422,56 +474,64 @@ parameter_types! { pub DestVerifyingContractAddress: VerifyingContractAddress = primitive_types::H160::from_slice(hex::decode(DEST_VERIFYING_CONTRACT_ADDRESS).ok().unwrap().as_slice()); pub CheckingAccount: AccountId32 = AccountId32::new([102u8; 32]); pub RelayNetwork: NetworkId = NetworkId::Polkadot; - pub AssetsPalletLocation: MultiLocation = + pub AssetsPalletLocation: Location = PalletInstance(::index() as u8).into(); // NativeLocation is the representation of the current parachain's native asset location in substrate, it can be various on different parachains - pub NativeLocation: MultiLocation = MultiLocation::here(); - // UsdtLocation is the representation of the USDT asset location in substrate - // USDT is a foreign asset, and in our local testing env, it's being registered on Parachain 2004 with the following location - pub UsdtLocation: MultiLocation = MultiLocation::new( + pub NativeLocation: Location = Location::here(); + // UsdcLocation is the representation of the USDC asset location in substrate + // USDC is a reserved token + pub UsdcLocation: Location = Location::new( 1, X3( - Parachain(2005), - slice_to_generalkey(b"sygma"), - slice_to_generalkey(b"usdt"), + Arc::new([ + Parachain(2005), + slice_to_generalkey(b"sygma"), + slice_to_generalkey(b"usdc") + ]) + ), ); - pub ERC20TSTLocation: MultiLocation = MultiLocation::new( + // ERC20TSTLocation is a reserved token + pub ERC20TSTLocation: Location = Location::new( 1, X3( - Parachain(2005), - slice_to_generalkey(b"sygma"), - slice_to_generalkey(b"erc20tst"), + Arc::new([ + Parachain(2005), + slice_to_generalkey(b"sygma"), + slice_to_generalkey(b"erc20tst") + ]) ), ); - pub ERC20TSTD20Location: MultiLocation = MultiLocation::new( + // ERC20TSTD20Location is a reserved token + pub ERC20TSTD20Location: Location = Location::new( 1, X3( - Parachain(2005), - slice_to_generalkey(b"sygma"), - slice_to_generalkey(b"erc20tstd20"), + Arc::new([ + Parachain(2005), + slice_to_generalkey(b"sygma"), + slice_to_generalkey(b"erc20tstd20") + ]) ), ); - // UsdtAssetId is the substrate assetID of USDT - pub UsdtAssetId: AssetId = 2000; + pub UsdcAssetId: AssetId = 2000; pub ERC20TSTAssetId: AssetId = 2001; pub ERC20TSTD20AssetId: AssetId = 2002; // NativeResourceId is the resourceID that mapping with the current parachain native asset pub NativeResourceId: ResourceId = hex_literal::hex!("0000000000000000000000000000000000000000000000000000000000000001"); - // UsdtResourceId is the resourceID that mapping with the foreign asset USDT - pub UsdtResourceId: ResourceId = hex_literal::hex!("0000000000000000000000000000000000000000000000000000000000000300"); + // UsdcResourceId is the resourceID that mapping with the foreign asset USDc + pub UsdcResourceId: ResourceId = hex_literal::hex!("0000000000000000000000000000000000000000000000000000000000000300"); pub ERC20TSTResourceId: ResourceId = hex_literal::hex!("0000000000000000000000000000000000000000000000000000000000000000"); pub ERC20TSTD20ResourceId: ResourceId = hex_literal::hex!("0000000000000000000000000000000000000000000000000000000000000900"); // ResourcePairs is where all supported assets and their associated resourceID are binding - pub ResourcePairs: Vec<(XcmAssetId, ResourceId)> = vec![(NativeLocation::get().into(), NativeResourceId::get()), (UsdtLocation::get().into(), UsdtResourceId::get()), (ERC20TSTLocation::get().into(), ERC20TSTResourceId::get()), (ERC20TSTD20Location::get().into(), ERC20TSTD20ResourceId::get())]; + pub ResourcePairs: Vec<(XcmAssetId, ResourceId)> = vec![(NativeLocation::get().into(), NativeResourceId::get()), (UsdcLocation::get().into(), UsdcResourceId::get()), (ERC20TSTLocation::get().into(), ERC20TSTResourceId::get()), (ERC20TSTD20Location::get().into(), ERC20TSTD20ResourceId::get())]; // SygmaBridgePalletId is the palletIDl // this is used as the replacement of handler address in the ProposalExecution event pub const SygmaBridgePalletId: PalletId = PalletId(*b"sygma/01"); - pub AssetDecimalPairs: Vec<(XcmAssetId, u8)> = vec![(NativeLocation::get().into(), 12u8), (UsdtLocation::get().into(), 12u8), (ERC20TSTLocation::get().into(), 18u8), (ERC20TSTD20Location::get().into(), 20u8)]; + pub AssetDecimalPairs: Vec<(XcmAssetId, u8)> = vec![(NativeLocation::get().into(), 12u8), (UsdcLocation::get().into(), 12u8), (ERC20TSTLocation::get().into(), 18u8), (ERC20TSTD20Location::get().into(), 20u8)]; } -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// Type for specifying how a `Location` can be converted into an `AccountId`. This is used /// when determining ownership of accounts for asset transacting and when attempting to use XCM /// `Transact` in order to determine the dispatch Origin. pub type LocationToAccountId = ( @@ -484,12 +544,13 @@ pub type LocationToAccountId = ( ); /// Means for transacting the native currency on this chain. +#[allow(deprecated)] pub type CurrencyTransactor = CurrencyAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId32, @@ -498,15 +559,15 @@ pub type CurrencyTransactor = CurrencyAdapter< >; /// A simple Asset converter that extract the bingding relationship between AssetId and -/// MultiLocation, And convert Asset transfer amount to Balance +/// Location, And convert Asset transfer amount to Balance pub struct SimpleForeignAssetConverter(PhantomData<()>); impl MatchesFungibles for SimpleForeignAssetConverter { - fn matches_fungibles(a: &MultiAsset) -> result::Result<(AssetId, Balance), ExecutionError> { + fn matches_fungibles(a: &Asset) -> result::Result<(AssetId, Balance), ExecutionError> { match (&a.fun, &a.id) { - (Fungible(ref amount), Concrete(ref id)) => { - if id == &UsdtLocation::get() { - Ok((UsdtAssetId::get(), *amount)) + (Fungible(ref amount), AssetId(ref id)) => { + if id == &UsdcLocation::get() { + Ok((UsdcAssetId::get(), *amount)) } else if id == &ERC20TSTLocation::get() { Ok((ERC20TSTAssetId::get(), *amount)) } else if id == &ERC20TSTD20Location::get() { @@ -526,7 +587,7 @@ pub type FungiblesTransactor = FungiblesAdapter< Assets, // Use this currency when it is a fungible asset matching the given location or name: SimpleForeignAssetConverter, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId32, @@ -540,15 +601,15 @@ pub type AssetTransactors = (CurrencyTransactor, FungiblesTransactor); pub struct ConcrateSygmaAsset; impl ConcrateSygmaAsset { - pub fn id(asset: &MultiAsset) -> Option { + pub fn id(asset: &Asset) -> Option { match (&asset.id, &asset.fun) { // So far our native asset is concrete - (Concrete(id), Fungible(_)) => Some(*id), + (AssetId(ref id), Fungible(_)) => Some(id.clone()), _ => None, } } - pub fn origin(asset: &MultiAsset) -> Option { + pub fn origin(asset: &Asset) -> Option { Self::id(asset).and_then(|id| { match (id.parents, id.first_interior()) { // Sibling parachain @@ -559,18 +620,18 @@ impl ConcrateSygmaAsset { // The registered foreign assets actually reserved on EVM chains, so when // transfer back to EVM chains, they should be treated as non-reserve assets // relative to current chain. - Some(MultiLocation::new(0, X1(slice_to_generalkey(b"sygma")))) + Some(Location::new(0, X1(Arc::new([slice_to_generalkey(b"sygma")])))) } else { // Other parachain assets should be treat as reserve asset when transfered // to outside EVM chains - Some(MultiLocation::here()) + Some(Location::here()) } }, // Parent assets should be treat as reserve asset when transfered to outside EVM // chains - (1, _) => Some(MultiLocation::here()), + (1, _) => Some(Location::here()), // Children parachain - (0, Some(Parachain(id))) => Some(MultiLocation::new(0, X1(Parachain(*id)))), + (0, Some(Parachain(id))) => Some(Location::new(0, X1(Arc::new([Parachain(*id)])))), // Local: (0, Here) (0, None) => Some(id), _ => None, @@ -583,7 +644,7 @@ pub struct SygmaDecimalConverter(PhantomData); impl>> DecimalConverter for SygmaDecimalConverter { - fn convert_to(asset: &MultiAsset) -> Option { + fn convert_to(asset: &Asset) -> Option { match (&asset.fun, &asset.id) { (Fungible(amount), _) => { for (asset_id, decimal) in DecimalPairs::get().iter() { @@ -622,13 +683,13 @@ impl>> DecimalConverter } } - fn convert_from(asset: &MultiAsset) -> Option { + fn convert_from(asset: &Asset) -> Option { match (&asset.fun, &asset.id) { (Fungible(amount), _) => { for (asset_id, decimal) in DecimalPairs::get().iter() { if *asset_id == asset.id { return if *decimal == 18 { - Some((asset.id, *amount).into()) + Some((asset.id.clone(), *amount).into()) } else { type U112F16 = FixedU128; if *decimal > 18 { @@ -642,7 +703,7 @@ impl>> DecimalConverter U112F16::from_num(10u128.saturating_pow(*decimal as u32 - 18)); let b = U112F16::from_num(*amount).saturating_mul(a); let r: u128 = b.to_num(); - Some((asset.id, r).into()) + Some((asset.id.clone(), r).into()) } else { let a = U112F16::from_num(10u128.saturating_pow(18 - *decimal as u32)); @@ -651,7 +712,7 @@ impl>> DecimalConverter if r == 0 { return None; } - Some((asset.id, r).into()) + Some((asset.id.clone(), r).into()) } }; } @@ -664,8 +725,8 @@ impl>> DecimalConverter } pub struct ReserveChecker; -impl ContainsPair for ReserveChecker { - fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { +impl ContainsPair for ReserveChecker { + fn contains(asset: &Asset, origin: &Location) -> bool { if let Some(ref id) = ConcrateSygmaAsset::origin(asset) { if id == origin { return true; @@ -678,21 +739,24 @@ impl ContainsPair for ReserveChecker { // Project can have it's own implementation to adapt their own spec design. pub struct DestinationDataParser; impl ExtractDestinationData for DestinationDataParser { - fn extract_dest(dest: &MultiLocation) -> Option<(Vec, DomainID)> { - match (dest.parents, &dest.interior) { - ( - 0, - Junctions::X2( - GeneralKey { length: recipient_len, data: recipient }, - GeneralKey { length: _domain_len, data: dest_domain_id }, - ), - ) => { - let d = u8::default(); - let domain_id = dest_domain_id.as_slice().first().unwrap_or(&d); - if *domain_id == d { - return None; + fn extract_dest(dest: &Location) -> Option<(Vec, DomainID)> { + match (dest.parents, dest.interior.clone()) { + (0, X2(xs)) => { + let [a, b] = *xs; + match (a, b) { + ( + GeneralKey { length: recipient_len, data: recipient }, + GeneralKey { length: _domain_len, data: dest_domain_id }, + ) => { + let d = u8::default(); + let domain_id = dest_domain_id.as_slice().first().unwrap_or(&d); + if *domain_id == d { + return None; + } + Some((recipient[..recipient_len as usize].to_vec(), *domain_id)) + }, + _ => None, } - Some((recipient[..*recipient_len as usize].to_vec(), *domain_id)) }, _ => None, } @@ -747,6 +811,8 @@ construct_runtime!( SygmaFeeHandlerRouter: sygma_fee_handler_router::{Pallet, Call, Storage, Event} = 12, SygmaPercentageFeeHandler: sygma_percentage_feehandler::{Pallet, Call, Storage, Event} = 13, ParachainInfo: pallet_parachain_info = 20, + CollatorSelection: pallet_collator_selection, + Session: pallet_session, } ); @@ -889,13 +955,13 @@ impl_runtime_apis! { impl sp_session::SessionKeys for Runtime { fn generate_session_keys(seed: Option>) -> Vec { - opaque::SessionKeys::generate(seed) + SessionKeys::generate(seed) } fn decode_session_keys( encoded: Vec, ) -> Option, KeyTypeId)>> { - opaque::SessionKeys::decode_into_raw_public_keys(&encoded) + SessionKeys::decode_into_raw_public_keys(&encoded) } } @@ -1051,6 +1117,16 @@ impl_runtime_apis! { Executive::try_execute_block(block, state_root_check, signature_check, select).expect("execute-block failed") } } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } } #[cfg(test)] diff --git a/traits/Cargo.toml b/traits/Cargo.toml index f6160bc8..098ee904 100644 --- a/traits/Cargo.toml +++ b/traits/Cargo.toml @@ -9,14 +9,14 @@ license = "LGPL-3.0" [dependencies] codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive", "max-encoded-len"] } scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde", "decode"] } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } ethabi = { version = "18.0.0", default-features = false } primitive-types = { version = "0.12", default-features = false, features = ["scale-info", "serde_no_std"] } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } [features] default = ["std"] diff --git a/traits/src/lib.rs b/traits/src/lib.rs index 43097c7c..22afd57f 100644 --- a/traits/src/lib.rs +++ b/traits/src/lib.rs @@ -8,7 +8,8 @@ use frame_support::dispatch::DispatchResult; use primitive_types::{H160, U256}; use scale_info::TypeInfo; use sp_std::vec::Vec; -use xcm::latest::{prelude::*, MultiLocation}; +use xcm::opaque::v4::{Asset, Location}; +use xcm::v4::prelude::*; pub type DomainID = u8; pub type DepositNonce = u64; @@ -40,56 +41,52 @@ pub enum TransferType { pub struct MpcAddress(pub [u8; 20]); pub trait ExtractDestinationData { - fn extract_dest(dest: &MultiLocation) -> Option<(Vec, DomainID)>; + fn extract_dest(dest: &Location) -> Option<(Vec, DomainID)>; } pub trait FeeHandler { // Return fee represent by a specific asset - fn get_fee(domain: DomainID, asset: MultiAsset) -> Option; + fn get_fee(domain: DomainID, asset: Asset) -> Option; } impl FeeHandler for () { - fn get_fee(_domain: DomainID, _asset: MultiAsset) -> Option { + fn get_fee(_domain: DomainID, _asset: Asset) -> Option { None } } pub trait DecimalConverter { - /// convert_to converts the MultiAsset to u128 when bridging from sygma substrate pallet. + /// convert_to converts the Asset to u128 when bridging from sygma substrate pallet. /// Sygma relayer will always expect asset in 18 decimal - fn convert_to(asset: &MultiAsset) -> Option; - /// convert_from converts a u128 to MultiAsset when bridging to sygma substrate pallet. + fn convert_to(asset: &Asset) -> Option; + /// convert_from converts a u128 to Asset when bridging to sygma substrate pallet. /// Sygma relayer will always send asset in 18 decimal - fn convert_from(asset: &MultiAsset) -> Option; + fn convert_from(asset: &Asset) -> Option; } // when integrating with parachain, parachain team can implement their own version pub trait AssetTypeIdentifier { - fn is_native_asset(asset: &MultiAsset) -> bool; + fn is_native_asset(asset: &Asset) -> bool; } pub trait TransactorForwarder { - fn xcm_transactor_forwarder( - sender: [u8; 32], - what: MultiAsset, - dest: MultiLocation, - ) -> DispatchResult; + fn xcm_transactor_forwarder(sender: [u8; 32], what: Asset, dest: Location) -> DispatchResult; fn other_world_transactor_forwarder( sender: [u8; 32], - what: MultiAsset, - dest: MultiLocation, + what: Asset, + dest: Location, ) -> DispatchResult; } pub trait Bridge { fn transfer( sender: [u8; 32], - asset: MultiAsset, - dest: MultiLocation, + asset: Asset, + dest: Location, max_weight: Option, ) -> DispatchResult; } pub trait AssetReserveLocationParser { - fn reserved_location(asset: &MultiAsset) -> Option; + fn reserved_location(asset: &Asset) -> Option; } diff --git a/xcm-bridge/Cargo.toml b/xcm-bridge/Cargo.toml index 2e16c2cb..8276001a 100644 --- a/xcm-bridge/Cargo.toml +++ b/xcm-bridge/Cargo.toml @@ -9,24 +9,24 @@ codec = { package = "parity-scale-codec", version = "3.6.1", default-features = scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde", "decode"] } # Substrate -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Cumulus -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } # Local sygma-traits = { path = "../traits", default-features = false } @@ -36,36 +36,40 @@ log = "0.4.20" [dev-dependencies] # Substrate -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-assets = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Polkadot -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Cumulus -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.2.0" } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } # Local sygma-traits = { path = "../traits" } pallet-parachain-info = { path = "../parachain-info" } +# orml +orml-xcm-mock-message-queue = { path = "../xcm-mock-message-queue" } + env_logger = "0.10.2" [features] diff --git a/xcm-bridge/src/lib.rs b/xcm-bridge/src/lib.rs index d1686070..06f10b93 100644 --- a/xcm-bridge/src/lib.rs +++ b/xcm-bridge/src/lib.rs @@ -12,8 +12,9 @@ mod mock; pub mod pallet { use frame_support::{dispatch::DispatchResult, pallet_prelude::*, traits::StorageVersion}; use sp_runtime::traits::Zero; + use sp_std::sync::Arc; use sp_std::{prelude::*, vec}; - use xcm::latest::{prelude::*, MultiLocation, Weight as XCMWeight}; + use xcm::v4::{prelude::*, Junctions::X1, Location, Weight as XCMWeight}; use xcm_executor::traits::WeightBounds; use sygma_traits::{AssetReserveLocationParser, AssetTypeIdentifier, Bridge}; @@ -34,10 +35,10 @@ pub mod pallet { type AssetReservedChecker: AssetTypeIdentifier; - type UniversalLocation: Get; + type UniversalLocation: Get; #[pallet::constant] - type SelfLocation: Get; + type SelfLocation: Get; /// Minimum xcm execution fee paid on destination chain. type MinXcmFee: Get>; @@ -56,11 +57,7 @@ pub mod pallet { #[pallet::event] #[pallet::generate_deposit(pub (super) fn deposit_event)] pub enum Event { - XCMTransferSend { - asset: Box, - origin: Box, - dest: Box, - }, + XCMTransferSend { asset: Box, origin: Box, dest: Box }, } #[pallet::error] @@ -76,17 +73,17 @@ pub mod pallet { #[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug)] struct XcmObject { - asset: MultiAsset, - fee: MultiAsset, - origin: MultiLocation, - dest: MultiLocation, - recipient: MultiLocation, + asset: Asset, + fee: Asset, + origin: Location, + dest: Location, + recipient: Location, weight: XCMWeight, _unused: PhantomData, } pub trait XcmHandler { - fn transfer_kind(&self, asset_reserved_location: MultiLocation) -> Option; + fn transfer_kind(&self, asset_reserved_location: Location) -> Option; fn create_instructions(&self) -> Result, DispatchError>; fn execute_instructions( &self, @@ -95,7 +92,7 @@ pub mod pallet { } impl XcmHandler for XcmObject { - fn transfer_kind(&self, asset_reserved_location: MultiLocation) -> Option { + fn transfer_kind(&self, asset_reserved_location: Location) -> Option { if T::AssetReservedChecker::is_native_asset(&self.asset.clone()) { Some(TransferKind::SelfReserveAsset) } else if asset_reserved_location == self.dest { @@ -108,33 +105,33 @@ pub mod pallet { fn create_instructions(&self) -> Result, DispatchError> { let asset_reserved_location = Pallet::::reserved_location(&self.asset.clone()) .ok_or(Error::::AssetReservedLocationNotFound)?; - let kind = Self::transfer_kind(self, asset_reserved_location) + let kind = Self::transfer_kind(self, asset_reserved_location.clone()) .ok_or(Error::::UnknownTransferType)?; - let mut assets = MultiAssets::new(); + let mut assets = Assets::new(); assets.push(self.asset.clone()); let xcm_instructions = match kind { TransferKind::SelfReserveAsset => Pallet::::transfer_self_reserve_asset( assets, self.fee.clone(), - self.dest, - self.recipient, + self.clone().dest, + self.clone().recipient, WeightLimit::Limited(self.weight), )?, TransferKind::ToReserve => Pallet::::transfer_to_reserve_asset( assets, - self.fee.clone(), - self.dest, - self.recipient, + self.clone().fee.clone(), + self.clone().dest, + self.clone().recipient, WeightLimit::Limited(self.weight), )?, TransferKind::ToNonReserve => Pallet::::transfer_to_non_reserve_asset( assets, - self.fee.clone(), + self.clone().fee.clone(), asset_reserved_location, - self.dest, - self.recipient, + self.clone().dest, + self.clone().recipient, WeightLimit::Limited(self.weight), )?, }; @@ -149,12 +146,12 @@ pub mod pallet { let message_weight = T::Weigher::weight(xcm_instructions) .map_err(|()| Error::::FailToWeightMessage)?; - let hash = xcm_instructions.using_encoded(sp_io::hashing::blake2_256); + let mut hash: XcmHash = xcm_instructions.using_encoded(sp_io::hashing::blake2_256); - T::XcmExecutor::execute_xcm_in_credit( - self.origin, + T::XcmExecutor::prepare_and_execute( + self.clone().origin, xcm_instructions.clone(), - hash, + &mut hash, self.weight, message_weight, ) @@ -166,22 +163,26 @@ pub mod pallet { } impl AssetReserveLocationParser for Pallet { - fn reserved_location(asset: &MultiAsset) -> Option { + fn reserved_location(asset: &Asset) -> Option { let location = match (&asset.id, &asset.fun) { - (Concrete(id), Fungible(_)) => Some(*id), + (id, Fungible(_)) => Some(&id.0), _ => None, }; location.and_then(|id| { match (id.parents, id.first_interior()) { // Sibling parachain - (1, Some(Parachain(id))) => Some(MultiLocation::new(1, X1(Parachain(*id)))), + (1, Some(Parachain(id))) => { + Some(Location::new(1, X1(Arc::new([Parachain(*id)])))) + }, // Parent - (1, _) => Some(MultiLocation::parent()), + (1, _) => Some(Location::parent()), // Children parachain - (0, Some(Parachain(id))) => Some(MultiLocation::new(0, X1(Parachain(*id)))), + (0, Some(Parachain(id))) => { + Some(Location::new(0, X1(Arc::new([Parachain(*id)])))) + }, // Local: (0, Here) - (0, None) => Some(id), + (0, None) => Some(id.clone()), _ => None, } }) @@ -193,11 +194,11 @@ pub mod pallet { impl Bridge for BridgeImpl { fn transfer( sender: [u8; 32], - asset: MultiAsset, - dest: MultiLocation, + asset: Asset, + dest: Location, max_weight: Option, ) -> DispatchResult { - let origin_location: MultiLocation = + let origin_location: Location = Junction::AccountId32 { network: None, id: sender }.into(); let (dest_location, recipient) = @@ -216,12 +217,12 @@ pub mod pallet { .position(|a| a.0 == asset.id) .map(|idx| T::MinXcmFee::get()[idx].1) .unwrap(); - let min_fee_to_dest: MultiAsset = (asset.id, fee_per_asset).into(); + let min_fee_to_dest: Asset = (asset.clone().id, fee_per_asset).into(); let xcm = XcmObject:: { asset: asset.clone(), fee: min_fee_to_dest, - origin: origin_location, + origin: origin_location.clone(), dest: dest_location, recipient, weight: max_weight.unwrap_or(XCMWeight::from_parts(6_000_000_000u64, 2_000_000u64)), @@ -243,28 +244,28 @@ pub mod pallet { impl Pallet { /// extract the dest_location, recipient_location - pub fn extract_dest(dest: &MultiLocation) -> Option<(MultiLocation, MultiLocation)> { + pub fn extract_dest(dest: &Location) -> Option<(Location, Location)> { match (dest.parents, dest.first_interior()) { (1, Some(Parachain(id))) => Some(( - MultiLocation::new(1, X1(Parachain(*id))), - MultiLocation::new(0, dest.interior().split_first().0), + Location::new(1, X1(Arc::new([Parachain(*id)]))), + Location::new(0, dest.interior().clone().split_first().0), )), // parent: relay chain - (1, _) => Some((MultiLocation::parent(), MultiLocation::new(0, *dest.interior()))), + (1, _) => Some((Location::parent(), Location::new(0, dest.interior().clone()))), // local and children parachain have been filtered out in the TransactAsset _ => None, } } fn transfer_self_reserve_asset( - assets: MultiAssets, - fee: MultiAsset, - dest: MultiLocation, - recipient: MultiLocation, + assets: Assets, + fee: Asset, + dest: Location, + recipient: Location, dest_weight_limit: WeightLimit, ) -> Result, DispatchError> { Ok(Xcm(vec![TransferReserveAsset { assets: assets.clone(), - dest, + dest: dest.clone(), xcm: Xcm(vec![ Self::buy_execution(fee, &dest, dest_weight_limit)?, Self::deposit_asset(recipient, assets.len() as u32), @@ -273,17 +274,17 @@ pub mod pallet { } fn transfer_to_reserve_asset( - assets: MultiAssets, - fee: MultiAsset, - reserve: MultiLocation, - recipient: MultiLocation, + assets: Assets, + fee: Asset, + reserve: Location, + recipient: Location, dest_weight_limit: WeightLimit, ) -> Result, DispatchError> { Ok(Xcm(vec![ WithdrawAsset(assets.clone()), InitiateReserveWithdraw { assets: All.into(), - reserve, + reserve: reserve.clone(), xcm: Xcm(vec![ Self::buy_execution(fee, &reserve, dest_weight_limit)?, Self::deposit_asset(recipient, assets.len() as u32), @@ -293,17 +294,17 @@ pub mod pallet { } fn transfer_to_non_reserve_asset( - assets: MultiAssets, - fee: MultiAsset, - reserve: MultiLocation, - dest: MultiLocation, - recipient: MultiLocation, + assets: Assets, + fee: Asset, + reserve: Location, + dest: Location, + recipient: Location, dest_weight_limit: WeightLimit, ) -> Result, DispatchError> { - let mut reanchored_dest = dest; - if reserve == MultiLocation::parent() { - if let MultiLocation { parents: 1, interior: X1(Parachain(id)) } = dest { - reanchored_dest = Parachain(id).into(); + let mut reanchored_dest = dest.clone(); + if reserve == Location::parent() { + if let (1, [Parachain(id)]) = dest.unpack() { + reanchored_dest = Parachain(*id).into(); } } @@ -313,7 +314,7 @@ pub mod pallet { WithdrawAsset(assets), InitiateReserveWithdraw { assets: All.into(), - reserve, + reserve: reserve.clone(), xcm: Xcm(vec![ Self::buy_execution(Self::half(&fee), &reserve, dest_weight_limit.clone())?, DepositReserveAsset { @@ -329,26 +330,26 @@ pub mod pallet { ])) } - fn deposit_asset(recipient: MultiLocation, max_assets: u32) -> Instruction<()> { + fn deposit_asset(recipient: Location, max_assets: u32) -> Instruction<()> { DepositAsset { assets: AllCounted(max_assets).into(), beneficiary: recipient } } fn buy_execution( - asset: MultiAsset, - at: &MultiLocation, + asset: Asset, + at: &Location, weight_limit: WeightLimit, ) -> Result, DispatchError> { let ancestry = T::SelfLocation::get(); let fees = asset - .reanchored(at, ancestry.interior) + .reanchored(at, &ancestry.interior) .map_err(|_| Error::::CannotReanchor)?; Ok(BuyExecution { fees, weight_limit }) } /// Returns amount if `asset` is fungible, or zero. - fn fungible_amount(asset: &MultiAsset) -> u128 { + fn fungible_amount(asset: &Asset) -> u128 { if let Fungible(amount) = &asset.fun { *amount } else { @@ -356,25 +357,16 @@ pub mod pallet { } } - fn half(asset: &MultiAsset) -> MultiAsset { - let half_amount = - Self::fungible_amount(asset).checked_div(2).expect("div 2 can't overflow; qed"); - MultiAsset { fun: Fungible(half_amount), id: asset.id } + fn half(asset: &Asset) -> Asset { + let half_amount = Self::fungible_amount(&asset.clone()) + .checked_div(2) + .expect("div 2 can't overflow; qed"); + Asset { fun: Fungible(half_amount), id: asset.clone().id } } } #[cfg(test)] mod test { - use frame_support::{ - assert_ok, traits::tokens::fungibles::metadata::Mutate as MetaMutate, - traits::tokens::fungibles::Create as FungibleCerate, - }; - use polkadot_parachain_primitives::primitives::Sibling; - use sp_runtime::traits::AccountIdConversion; - use sp_runtime::AccountId32; - use sp_std::{boxed::Box, vec}; - use xcm_simulator::TestExt; - use super::*; use crate::mock::para::{ assert_events, Assets, NativeAssetId, PBALocation, Runtime, RuntimeEvent, @@ -385,6 +377,16 @@ pub mod pallet { ENDOWED_BALANCE, }; use crate::Event as SygmaXcmBridgeEvent; + use frame_support::{ + assert_ok, traits::tokens::fungibles::metadata::Mutate as MetaMutate, + traits::tokens::fungibles::Create as FungibleCerate, + }; + use polkadot_parachain_primitives::primitives::Sibling; + use sp_runtime::traits::AccountIdConversion; + use sp_runtime::AccountId32; + use sp_std::{boxed::Box, vec}; + use xcm::v4::Junctions::X2; + use xcm_simulator::TestExt; fn init_logger() { let _ = env_logger::builder() @@ -437,13 +439,13 @@ pub mod pallet { // transfer parachain A native asset from Alice to parachain B on Bob assert_ok!(BridgeImpl::::transfer( ALICE.into(), - (Concrete(MultiLocation::new(0, Here)), Fungible(amount)).into(), - MultiLocation::new( + (AssetId(Location::new(0, Here)), Fungible(amount)).into(), + Location::new( 1, - X2( + X2(Arc::new([ Parachain(2u32), - Junction::AccountId32 { network: None, id: BOB.into() }, - ), + Junction::AccountId32 { network: None, id: BOB.into() } + ])), ), None )); @@ -453,18 +455,16 @@ pub mod pallet { assert_events(vec![RuntimeEvent::SygmaXcmBridge( SygmaXcmBridgeEvent::XCMTransferSend { - asset: Box::new( - (Concrete(MultiLocation::new(0, Here)), Fungible(amount)).into(), - ), + asset: Box::new((AssetId(Location::new(0, Here)), Fungible(amount)).into()), origin: Box::new( Junction::AccountId32 { network: None, id: ALICE.into() }.into(), ), - dest: Box::new(MultiLocation::new( + dest: Box::new(Location::new( 1, - X2( + X2(Arc::new([ Parachain(2u32), Junction::AccountId32 { network: None, id: BOB.into() }, - ), + ])), )), }, )]); @@ -513,13 +513,13 @@ pub mod pallet { assert_ok!(BridgeImpl::::transfer( ALICE.into(), - (Concrete(MultiLocation::new(0, Here)), Fungible(amount)).into(), - MultiLocation::new( + (AssetId(Location::new(0, Here)), Fungible(amount)).into(), + Location::new( 1, - X2( + X2(Arc::new([ Parachain(1u32), - Junction::AccountId32 { network: None, id: ALICE.into() }, - ), + Junction::AccountId32 { network: None, id: ALICE.into() } + ])), ), None )); @@ -535,12 +535,12 @@ pub mod pallet { assert_ok!(BridgeImpl::::transfer( ALICE.into(), (PBALocation::get(), Fungible(amount - fee)).into(), - MultiLocation::new( + Location::new( 1, - X2( + X2(Arc::new([ Parachain(2u32), Junction::AccountId32 { network: None, id: BOB.into() } - ) + ])) ), None )); @@ -551,17 +551,17 @@ pub mod pallet { assert_events(vec![RuntimeEvent::SygmaXcmBridge( SygmaXcmBridgeEvent::XCMTransferSend { asset: Box::new( - (Concrete(PBALocation::get()), Fungible(amount - fee)).into(), + (AssetId(PBALocation::get()), Fungible(amount - fee)).into(), ), origin: Box::new( Junction::AccountId32 { network: None, id: ALICE.into() }.into(), ), - dest: Box::new(MultiLocation::new( + dest: Box::new(Location::new( 1, - X2( + X2(Arc::new([ Parachain(2u32), Junction::AccountId32 { network: None, id: BOB.into() }, - ), + ])), )), }, )]); @@ -648,13 +648,13 @@ pub mod pallet { ParaC::execute_with(|| { assert_ok!(BridgeImpl::::transfer( ASSET_OWNER.into(), - (Concrete(UsdtLocation::get()), Fungible(100_000_000u128)).into(), - MultiLocation::new( + (AssetId(UsdtLocation::get()), Fungible(100_000_000u128)).into(), + Location::new( 1, - X2( + X2(Arc::new([ Parachain(1u32), - Junction::AccountId32 { network: None, id: ALICE.into() }, - ), + Junction::AccountId32 { network: None, id: ALICE.into() } + ])), ), None )); @@ -696,13 +696,13 @@ pub mod pallet { // Alice transfer USDT token from parachain A to Bob on parachain B assert_ok!(BridgeImpl::::transfer( ALICE.into(), - (Concrete(UsdtLocation::get()), Fungible(100_000_000u128 - 4u128)).into(), - MultiLocation::new( + (AssetId(UsdtLocation::get()), Fungible(100_000_000u128 - 4u128)).into(), + Location::new( 1, - X2( + X2(Arc::new([ Parachain(2u32), - Junction::AccountId32 { network: None, id: BOB.into() }, - ), + Junction::AccountId32 { network: None, id: BOB.into() } + ])), ), None )); @@ -712,18 +712,18 @@ pub mod pallet { assert_events(vec![RuntimeEvent::SygmaXcmBridge( SygmaXcmBridgeEvent::XCMTransferSend { asset: Box::new( - (Concrete(UsdtLocation::get()), Fungible(100_000_000u128 - 4u128)) + (AssetId(UsdtLocation::get()), Fungible(100_000_000u128 - 4u128)) .into(), ), origin: Box::new( Junction::AccountId32 { network: None, id: ALICE.into() }.into(), ), - dest: Box::new(MultiLocation::new( + dest: Box::new(Location::new( 1, - X2( + X2(Arc::new([ Parachain(2u32), Junction::AccountId32 { network: None, id: BOB.into() }, - ), + ])), )), }, )]); diff --git a/xcm-bridge/src/mock/mod.rs b/xcm-bridge/src/mock/mod.rs index 510d435e..eb8c2bab 100644 --- a/xcm-bridge/src/mock/mod.rs +++ b/xcm-bridge/src/mock/mod.rs @@ -1,8 +1,6 @@ // The Licensed Work is (c) 2022 Sygma // SPDX-License-Identifier: LGPL-3.0-only -#![cfg(test)] - use frame_support::sp_runtime::{AccountId32, BuildStorage}; use sp_io::TestExternalities; use xcm_simulator::{decl_test_network, decl_test_parachain, decl_test_relay_chain, TestExt}; @@ -21,8 +19,8 @@ pub type ParaAssets = pallet_assets::Pallet; decl_test_parachain! { pub struct ParaA { Runtime = para::Runtime, - XcmpMessageHandler = para::XcmpQueue, - DmpMessageHandler = para::DmpQueue, + XcmpMessageHandler = para::MsgQueue, + DmpMessageHandler = para::MsgQueue, new_ext = para_ext(1), } } @@ -30,8 +28,8 @@ decl_test_parachain! { decl_test_parachain! { pub struct ParaB { Runtime = para::Runtime, - XcmpMessageHandler = para::XcmpQueue, - DmpMessageHandler = para::DmpQueue, + XcmpMessageHandler = para::MsgQueue, + DmpMessageHandler = para::MsgQueue, new_ext = para_ext(2), } } @@ -39,8 +37,8 @@ decl_test_parachain! { decl_test_parachain! { pub struct ParaC { Runtime = para::Runtime, - XcmpMessageHandler = para::XcmpQueue, - DmpMessageHandler = para::DmpQueue, + XcmpMessageHandler = para::MsgQueue, + DmpMessageHandler = para::MsgQueue, new_ext = para_ext(2005), // for USDT } } diff --git a/xcm-bridge/src/mock/para.rs b/xcm-bridge/src/mock/para.rs index ba1832a5..d678a625 100644 --- a/xcm-bridge/src/mock/para.rs +++ b/xcm-bridge/src/mock/para.rs @@ -1,14 +1,14 @@ // The Licensed Work is (c) 2022 Sygma // SPDX-License-Identifier: LGPL-3.0-only +use sp_std::sync::Arc; use std::marker::PhantomData; use std::result; -use cumulus_primitives_core::{ChannelStatus, GetChannelInfo, ParaId, Weight}; - -use frame_support::pallet_prelude::Get; +use cumulus_primitives_core::{ParaId, Weight}; use crate as sygma_xcm_bridge; +use frame_support::pallet_prelude::Get; use frame_support::traits::{ConstU16, ConstU64, Nothing}; use frame_support::{ construct_runtime, parameter_types, @@ -20,20 +20,26 @@ use polkadot_parachain_primitives::primitives::Sibling; use sp_core::{crypto::AccountId32, H256}; use sp_runtime::traits::{IdentityLookup, Zero}; use sygma_traits::AssetTypeIdentifier; -use xcm::latest::{ - AssetId as XcmAssetId, InteriorMultiLocation, MultiAsset, MultiLocation, NetworkId, - Weight as XCMWeight, XcmContext, +use xcm::prelude::{ + Fungible, GlobalConsensus, + Junctions::{X1, X2}, + Parachain, XcmError, +}; +use xcm::v4::{ + Asset, AssetId as XcmAssetId, InteriorLocation, Location, NetworkId, Weight as XCMWeight, + XcmContext, }; -use xcm::prelude::{Concrete, Fungible, GlobalConsensus, Parachain, XcmError, X1, X2}; +#[allow(deprecated)] use xcm_builder::{ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, - FixedWeightBounds, FungiblesAdapter, IsConcrete, NativeAsset, NoChecking, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SovereignSignedViaLocation, TakeWeightCredit, + FixedWeightBounds, FrameTransactionalProcessor, FungiblesAdapter, IsConcrete, NativeAsset, + NoChecking, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SovereignSignedViaLocation, + TakeWeightCredit, }; use xcm_executor::{ traits::{Error as ExecutionError, MatchesFungibles, WeightTrader, WithOriginFilter}, - Assets as XcmAssets, Config, XcmExecutor, + AssetsInHolding, Config, XcmExecutor, }; use super::ParachainXcmRouter; @@ -46,9 +52,9 @@ construct_runtime!( ParachainInfo: pallet_parachain_info::{Pallet, Storage, Config}, - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event}, + // XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event}, CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin}, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event}, + MsgQueue: orml_xcm_mock_message_queue, SygmaXcmBridge: sygma_xcm_bridge::{Pallet, Event}, } @@ -86,6 +92,7 @@ impl frame_system::Config for Runtime { type SS58Prefix = ConstU16<20>; type OnSetCode = (); type MaxConsumers = ConstU32<16>; + type RuntimeTask = (); } parameter_types! { @@ -107,9 +114,9 @@ impl pallet_balances::Config for Runtime { type MaxReserves = (); type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); - type MaxHolds = ConstU32<1>; type MaxFreezes = ConstU32<1>; - type RuntimeHoldReason = (); + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; } impl pallet_assets::Config for Runtime { @@ -173,6 +180,7 @@ impl Config for XcmConfig { type CallDispatcher = WithOriginFilter; type SafeCallFilter = Everything; type Aliasers = (); + type TransactionalProcessor = FrameTransactionalProcessor; } pub type XcmRouter = ParachainXcmRouter; @@ -204,15 +212,17 @@ parameter_types! { } parameter_types! { - pub NativeLocation: MultiLocation = MultiLocation::here(); + pub NativeLocation: Location = Location::here(); pub NativeAssetId: AssetId = 0; // native asset ID is used for token registration on other parachain as foreign asset - pub PAALocation: MultiLocation = MultiLocation::new(1, X1(Parachain(1u32))); - pub PBALocation: MultiLocation = MultiLocation::new(1, X1(Parachain(2u32))); + pub PAALocation: Location = Location::new(1, X1(Arc::new([Parachain(1u32)]))); + pub PBALocation: Location = Location::new(1, X1(Arc::new([Parachain(2u32)]))); pub UsdtAssetId: AssetId = 1; - pub UsdtLocation: MultiLocation = MultiLocation::new( + pub UsdtLocation: Location = Location::new( 1, X1( - Parachain(2005), + Arc::new([ + Parachain(2005) + ]) ), ); // Parachain A and Parachain B native asset multilocation @@ -220,8 +230,8 @@ parameter_types! { } parameter_types! { - pub SelfLocation: MultiLocation = MultiLocation::new(1, X1(Parachain(ParachainInfo::parachain_id().into()))); - pub UniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())); + pub SelfLocation: Location = Location::new(1, X1(Arc::new([Parachain(ParachainInfo::parachain_id().into())]))); + pub UniversalLocation: InteriorLocation = X2(Arc::new([GlobalConsensus(RelayNetwork::get()), Parachain(ParachainInfo::parachain_id().into())])); // set 1 token as min fee pub MinXcmFee: Vec<(XcmAssetId, u128)> = vec![(NativeLocation::get().into(), 1_000_000_000_000u128), (PBALocation::get().into(), 1_000_000_000_000u128), (UsdtLocation::get().into(), 1_000_000u128)]; @@ -229,9 +239,9 @@ parameter_types! { pub struct SimpleForeignAssetConverter(PhantomData<()>); impl MatchesFungibles for SimpleForeignAssetConverter { - fn matches_fungibles(a: &MultiAsset) -> result::Result<(AssetId, Balance), ExecutionError> { + fn matches_fungibles(a: &Asset) -> result::Result<(AssetId, Balance), ExecutionError> { match (&a.fun, &a.id) { - (Fungible(ref amount), Concrete(ref id)) => { + (Fungible(ref amount), XcmAssetId(ref id)) => { if id == &UsdtLocation::get() { Ok((UsdtAssetId::get(), *amount)) } else if id == &PBALocation::get() || id == &PAALocation::get() { @@ -245,12 +255,13 @@ impl MatchesFungibles for SimpleForeignAssetConverter { } } +#[allow(deprecated)] pub type CurrencyTransactor = CurrencyAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: IsConcrete, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId32, @@ -264,7 +275,7 @@ pub type FungiblesTransactor = FungiblesAdapter< Assets, // Use this currency when it is a fungible asset matching the given location or name: SimpleForeignAssetConverter, - // Convert an XCM MultiLocation into a local account id: + // Convert an XCM Location into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId32, @@ -278,83 +289,93 @@ pub type FungiblesTransactor = FungiblesAdapter< /// This impl is only for local mock purpose, the integrated parachain might have their own version pub struct NativeAssetTypeIdentifier(PhantomData); impl> AssetTypeIdentifier for NativeAssetTypeIdentifier { - /// check if the given MultiAsset is a native asset - fn is_native_asset(asset: &MultiAsset) -> bool { + /// check if the given Asset is a native asset + fn is_native_asset(asset: &Asset) -> bool { // currently there are two multilocations are considered as native asset: - // 1. integrated parachain native asset(MultiLocation::here()) - // 2. other parachain native asset(MultiLocation::new(1, X1(Parachain(T::get().into())))) + // 1. integrated parachain native asset(Location::here()) + // 2. other parachain native asset(Location::new(1, X1(Parachain(T::get().into())))) let native_locations = - [MultiLocation::here(), MultiLocation::new(1, X1(Parachain(T::get().into())))]; + [Location::here(), Location::new(1, X1(Arc::new([Parachain(T::get().into())])))]; match (&asset.id, &asset.fun) { - (Concrete(ref id), Fungible(_)) => native_locations.contains(id), + (XcmAssetId(ref id), Fungible(_)) => native_locations.contains(id), _ => false, } } } -pub struct ChannelInfo; - -impl GetChannelInfo for ChannelInfo { - fn get_channel_status(_id: ParaId) -> ChannelStatus { - ChannelStatus::Ready(10, 10) - } - fn get_channel_max(_id: ParaId) -> Option { - Some(usize::max_value()) - } -} - -impl cumulus_pallet_xcmp_queue::Config for Runtime { - type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor; - type ChannelInfo = ChannelInfo; - type VersionWrapper = (); - type ExecuteOverweightOrigin = EnsureRoot; - type ControllerOrigin = EnsureRoot; - type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; - type PriceForSiblingDelivery = (); - type WeightInfo = (); -} +// /// Information about an XCMP channel. +// pub struct ChannelInfo { +// /// The maximum number of messages that can be pending in the channel at once. +// pub max_capacity: u32, +// /// The maximum total size of the messages that can be pending in the channel at once. +// pub max_total_size: u32, +// /// The maximum message size that could be put into the channel. +// pub max_message_size: u32, +// /// The current number of messages pending in the channel. +// /// Invariant: should be less or equal to `max_capacity`.s`. +// pub msg_count: u32, +// /// The total size in bytes of all message payloads in the channel. +// /// Invariant: should be less or equal to `max_total_size`. +// pub total_size: u32, +// } +// +// impl GetChannelInfo for ChannelInfo { +// fn get_channel_status(_id: ParaId) -> ChannelStatus { +// ChannelStatus::Ready(10, 10) +// } +// fn get_channel_info(id: ParaId) -> Option { +// let channels = Self::relevant_messaging_state()?.egress_channels; +// let index = channels.binary_search_by_key(&id, |item| item.0).ok()?; +// let info = ChannelInfo { +// max_capacity: channels[index].1.max_capacity, +// max_total_size: channels[index].1.max_total_size, +// max_message_size: channels[index].1.max_message_size, +// msg_count: channels[index].1.msg_count, +// total_size: channels[index].1.total_size, +// }; +// Some(info) +// } +// } impl cumulus_pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; } -impl cumulus_pallet_dmp_queue::Config for Runtime { +impl orml_xcm_mock_message_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = EnsureRoot; } -pub struct AllTokensAreCreatedEqualToWeight(MultiLocation); +pub struct AllTokensAreCreatedEqualToWeight(Location); impl WeightTrader for AllTokensAreCreatedEqualToWeight { fn new() -> Self { - Self(MultiLocation::parent()) + Self(Location::parent()) } fn buy_weight( &mut self, weight: Weight, - payment: XcmAssets, + payment: AssetsInHolding, _context: &XcmContext, - ) -> Result { + ) -> Result { let asset_id = payment.fungible.iter().next().expect("Payment must be something; qed").0; - let required = MultiAsset { id: *asset_id, fun: Fungible(weight.ref_time() as u128) }; + let required = Asset { id: asset_id.clone(), fun: Fungible(weight.ref_time() as u128) }; - if let MultiAsset { fun: _, id: Concrete(ref id) } = &required { - self.0 = *id; - } + let Asset { fun: _, id: XcmAssetId(ref id) } = &required; + + self.0 = id.clone(); let unused = payment.checked_sub(required).map_err(|_| XcmError::TooExpensive)?; Ok(unused) } - fn refund_weight(&mut self, weight: Weight, _context: &XcmContext) -> Option { + fn refund_weight(&mut self, weight: Weight, _context: &XcmContext) -> Option { if weight.is_zero() { None } else { - Some((self.0, weight.ref_time() as u128).into()) + Some((self.0.clone(), weight.ref_time() as u128).into()) } } } diff --git a/xcm-bridge/src/mock/relay.rs b/xcm-bridge/src/mock/relay.rs index ee88c01d..6869b66a 100644 --- a/xcm-bridge/src/mock/relay.rs +++ b/xcm-bridge/src/mock/relay.rs @@ -16,12 +16,15 @@ use polkadot_runtime_parachains::{ }; use sp_core::H256; use sp_runtime::{traits::IdentityLookup, AccountId32}; -use xcm::latest::prelude::*; +use std::sync::Arc; +use xcm::v4::prelude::*; +use xcm::v4::Junctions::X1; +#[allow(deprecated)] use xcm_builder::{ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, - IsConcrete, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, - TakeWeightCredit, UsingComponents, + FrameTransactionalProcessor, IsConcrete, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, }; use xcm_executor::{traits::WithOriginFilter, Config, XcmExecutor}; @@ -68,6 +71,7 @@ impl frame_system::Config for Runtime { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = ConstU32<2>; + type RuntimeTask = (); } parameter_types! { @@ -87,26 +91,29 @@ impl pallet_balances::Config for Runtime { type MaxReserves = (); type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = (); - type MaxHolds = ConstU32<1>; type MaxFreezes = ConstU32<1>; type RuntimeHoldReason = (); + type RuntimeFreezeReason = (); } -impl shared::Config for Runtime {} +impl shared::Config for Runtime { + type DisabledValidators = (); +} impl configuration::Config for Runtime { type WeightInfo = configuration::TestWeightInfo; } parameter_types! { - pub RooLocation: MultiLocation = Here.into(); + pub RooLocation: Location = Here.into(); pub const RococoNetwork: NetworkId = NetworkId::Rococo; - pub UniversalLocation: InteriorMultiLocation = X1(GlobalConsensus(RococoNetwork::get())); + pub UniversalLocation: InteriorLocation = X1(Arc::new([GlobalConsensus(RococoNetwork::get())])); } pub type SovereignAccountOf = (ChildParachainConvertsVia, AccountId32Aliases); +#[allow(deprecated)] pub type LocalAssetTransactor = XcmCurrencyAdapter, SovereignAccountOf, AccountId, ()>; @@ -120,9 +127,9 @@ pub type XcmRouter = super::RelayChainXcmRouter; pub type Barrier = (TakeWeightCredit, AllowTopLevelPaidExecutionFrom); parameter_types! { - pub Rococo: MultiAssetFilter = Wild(AllOf { fun: WildFungible, id: Concrete(RooLocation::get()) }); - pub Statemine: MultiLocation = Parachain(3).into(); - pub KusamaForStatemine: (MultiAssetFilter, MultiLocation) = (Rococo::get(), Statemine::get()); + pub Rococo: AssetFilter = Wild(AllOf { fun: WildFungible, id: AssetId(RooLocation::get()) }); + pub Statemine: Location = Parachain(3).into(); + pub KusamaForStatemine: (AssetFilter, Location) = (Rococo::get(), Statemine::get()); } parameter_types! { @@ -158,13 +165,14 @@ impl Config for XcmConfig { type CallDispatcher = WithOriginFilter; type SafeCallFilter = Everything; type Aliasers = (); + type TransactionalProcessor = FrameTransactionalProcessor; } pub type LocalOriginToLocation = SignedToAccountId32; #[cfg(feature = "runtime-benchmarks")] parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); + pub ReachableDest: Option = Some(Parent.into()); } impl pallet_xcm::Config for Runtime { @@ -191,8 +199,6 @@ impl pallet_xcm::Config for Runtime { type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); type WeightInfo = pallet_xcm::TestWeightInfo; - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; type AdminOrigin = EnsureRoot; } diff --git a/xcm-mock-message-queue/Cargo.toml b/xcm-mock-message-queue/Cargo.toml new file mode 100644 index 00000000..3e861fcb --- /dev/null +++ b/xcm-mock-message-queue/Cargo.toml @@ -0,0 +1,39 @@ +[package] +name = "orml-xcm-mock-message-queue" +description = "XCM Mock Message Qeueu for XCM Simulator tests" +repository = "https://github.com/open-web3-stack/open-runtime-module-library/tree/master/xcm-mock-message-queue" +license = "Apache-2.0" +version = "0.10.0" +authors = ["Acala Developers"] +edition = "2021" + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive", "max-encoded-len"] } +scale-info = { version = "2.5.0", default-features = false, features = ["derive", "serde", "decode"] } + +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0" } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } + +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.7.0", default-features = false } + +[dev-dependencies] + +[features] +default = [ "std" ] +std = [ + "cumulus-primitives-core/std", + "frame-support/std", + "frame-system/std", + "codec/std", + "polkadot-parachain-primitives/std", + "scale-info/std", + "sp-io/std", + "sp-runtime/std", + "sp-std/std", + "xcm/std", +] diff --git a/xcm-mock-message-queue/src/lib.rs b/xcm-mock-message-queue/src/lib.rs new file mode 100644 index 00000000..404fd324 --- /dev/null +++ b/xcm-mock-message-queue/src/lib.rs @@ -0,0 +1,171 @@ +//! # Mock Message Queue for XCM Simulator tests + +#![cfg_attr(not(feature = "std"), no_std)] + +use codec::{Decode, Encode}; +use cumulus_primitives_core::{ParaId, XcmpMessageFormat, XcmpMessageHandler}; +use frame_support::pallet_prelude::*; +use polkadot_parachain_primitives::primitives::DmpMessageHandler; +use sp_std::prelude::*; +use xcm::{ + v4::{prelude::*, Weight}, + VersionedXcm, +}; + +pub use module::*; + +#[frame_support::pallet] +pub mod module { + use super::*; + + type RelayBlockNumber = u32; + + #[pallet::config] + pub trait Config: frame_system::Config { + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + type XcmExecutor: ExecuteXcm; + } + + #[pallet::call] + impl Pallet {} + + #[pallet::pallet] + #[pallet::without_storage_info] + pub struct Pallet(_); + + #[pallet::storage] + #[pallet::getter(fn parachain_id)] + pub(super) type ParachainId = StorageValue<_, ParaId, ValueQuery>; + + #[pallet::storage] + #[pallet::getter(fn received_dmp)] + /// A queue of received DMP messages + pub(super) type ReceivedDmp = StorageValue<_, Vec>, ValueQuery>; + + impl Get for Pallet { + fn get() -> ParaId { + Self::parachain_id() + } + } + + pub type MessageId = [u8; 32]; + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + // XCMP + /// Some XCM was executed OK. + Success(Option), + /// Some XCM failed. + Fail(Option, XcmError), + /// Bad XCM version used. + BadVersion(Option), + /// Bad XCM format used. + BadFormat(Option), + + // DMP + /// Downward message is invalid XCM. + InvalidFormat(MessageId), + /// Downward message is unsupported version of XCM. + UnsupportedVersion(MessageId), + /// Downward message executed with the given outcome. + ExecutedDownward(MessageId, Outcome), + } + + impl Pallet { + pub fn set_para_id(para_id: ParaId) { + ParachainId::::put(para_id); + } + + fn handle_xcmp_message( + sender: ParaId, + _sent_at: RelayBlockNumber, + xcm: VersionedXcm, + max_weight: Weight, + ) -> Result { + use sp_runtime::traits::Hash; + let hash = Encode::using_encoded(&xcm, T::Hashing::hash); + let mut message_hash = Encode::using_encoded(&xcm, sp_io::hashing::blake2_256); + let (result, event) = match Xcm::::try_from(xcm) { + Ok(xcm) => { + let location = (Parent, Parachain(sender.into())); + match T::XcmExecutor::prepare_and_execute( + location, + xcm, + &mut message_hash, + max_weight, + Weight::zero(), + ) { + Outcome::Error { error } => (Err(error), Event::Fail(Some(hash), error)), + Outcome::Complete { used } => (Ok(used), Event::Success(Some(hash))), + // As far as the caller is concerned, this was dispatched without error, so + // we just report the weight used. + Outcome::Incomplete { used, error } => { + (Ok(used), Event::Fail(Some(hash), error)) + }, + } + }, + Err(()) => (Err(XcmError::UnhandledXcmVersion), Event::BadVersion(Some(hash))), + }; + Self::deposit_event(event); + result + } + } + + impl XcmpMessageHandler for Pallet { + fn handle_xcmp_messages<'a, I: Iterator>( + iter: I, + max_weight: Weight, + ) -> Weight { + for (sender, sent_at, data) in iter { + let mut data_ref = data; + let _ = XcmpMessageFormat::decode(&mut data_ref) + .expect("Simulator encodes with versioned xcm format; qed"); + + let mut remaining_fragments = data_ref; + while !remaining_fragments.is_empty() { + if let Ok(xcm) = + VersionedXcm::::decode(&mut remaining_fragments) + { + let _ = Self::handle_xcmp_message(sender, sent_at, xcm, max_weight); + } else { + debug_assert!(false, "Invalid incoming XCMP message data"); + } + } + } + max_weight + } + } + + impl DmpMessageHandler for Pallet { + fn handle_dmp_messages( + iter: impl Iterator)>, + limit: Weight, + ) -> Weight { + for (_sent_at, data) in iter { + let mut id = sp_io::hashing::blake2_256(&data[..]); + let maybe_versioned = VersionedXcm::::decode(&mut &data[..]); + match maybe_versioned { + Err(_) => { + Self::deposit_event(Event::InvalidFormat(id)); + }, + Ok(versioned) => match Xcm::try_from(versioned) { + Err(()) => Self::deposit_event(Event::UnsupportedVersion(id)), + Ok(x) => { + let outcome = T::XcmExecutor::prepare_and_execute( + Parent, + x.clone(), + &mut id, + limit, + Weight::zero(), + ); + >::append(x); + Self::deposit_event(Event::ExecutedDownward(id, outcome)); + }, + }, + } + } + limit + } + } +}