diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml index 662dfbea1d..307ec65663 100644 --- a/.github/workflows/cancel.yml +++ b/.github/workflows/cancel.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 3 steps: - - uses: styfle/cancel-workflow-action@0.12.0 + - uses: styfle/cancel-workflow-action@0.12.1 with: workflow_id: 1303397 access_token: ${{ github.token }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 232c63e3e8..d0ea0fad95 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,7 +21,7 @@ jobs: override: true components: rust-docs - name: Install protoc - uses: arduino/setup-protoc@v2 + uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index a4f37596f5..86e81db31a 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -24,7 +24,7 @@ jobs: target: wasm32-unknown-unknown override: true - name: Install protoc - uses: arduino/setup-protoc@v2 + uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Run tests @@ -43,7 +43,7 @@ jobs: target: wasm32-unknown-unknown override: true - name: Install protoc - uses: arduino/setup-protoc@v2 + uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build client @@ -77,7 +77,7 @@ jobs: override: true components: rustfmt, clippy - name: Install protoc - uses: arduino/setup-protoc@v2 + uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Check Cargo.toml Format diff --git a/Cargo.lock b/Cargo.lock index 370078ed01..1673c8f288 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -185,26 +185,26 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.1" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -243,7 +243,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -516,7 +516,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", "rayon", ] @@ -632,7 +632,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 0.38.30", + "rustix 0.38.31", "slab", "tracing", "windows-sys 0.52.0", @@ -657,7 +657,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -689,7 +689,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" dependencies = [ "nix 0.27.1", - "rand 0.8.5", + "rand", ] [[package]] @@ -739,7 +739,7 @@ dependencies = [ "dleq_vrf", "fflonk", "merlin 3.0.0", - "rand_chacha 0.3.1", + "rand_chacha", "rand_core 0.6.4", "ring 0.1.0", "sha2 0.10.7", @@ -780,9 +780,9 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "basic-toml" -version = "0.1.4" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bfc506e7a2370ec239e1d072507b2a80c833083699d3c6fa176fbb4de8448c6" +checksum = "2db21524cad41c5591204d22d75e1970a2d1f71060214ca931dc7d5afe2c14e5" dependencies = [ "serde", ] @@ -823,7 +823,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -833,7 +833,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ "bitcoin_hashes", - "rand 0.8.5", + "rand", "rand_core 0.6.4", "serde", "unicode-normalization", @@ -966,9 +966,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.1.9" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca548b6163b872067dc5eb82fd130c56881435e30367d2073594a3d9744120dd" +checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" dependencies = [ "log", "parity-scale-codec", @@ -1002,16 +1002,6 @@ dependencies = [ "regex-automata 0.1.10", ] -[[package]] -name = "bstr" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "build-helper" version = "0.1.1" @@ -1259,9 +1249,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.18" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" dependencies = [ "clap_builder", "clap_derive", @@ -1269,9 +1259,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.18" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" dependencies = [ "anstream", "anstyle", @@ -1282,21 +1272,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "codespan-reporting" @@ -1316,12 +1306,12 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comfy-table" -version = "7.0.1" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab77dbd8adecaf3f0db40581631b995f312a8a5ae3aa9993188bb8f23d83a5b" +checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686" dependencies = [ - "strum", - "strum_macros", + "strum 0.25.0", + "strum_macros 0.25.3", "unicode-width", ] @@ -1338,7 +1328,7 @@ dependencies = [ "fflonk", "getrandom_or_panic", "merlin 3.0.0", - "rand_chacha 0.3.1", + "rand_chacha", ] [[package]] @@ -1358,14 +1348,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", "lazy_static", "libc", - "windows-sys 0.45.0", + "unicode-width", + "windows-sys 0.52.0", ] [[package]] @@ -1766,7 +1757,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -1793,7 +1784,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -1810,7 +1801,7 @@ checksum = "5fb2a9757fb085d6d97856b28d4f049141ca4a61a64c697f4426433b5f6caa1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -1996,7 +1987,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -2036,9 +2027,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.48", + "syn 2.0.50", "termcolor", - "toml 0.8.2", + "toml 0.8.10", "walkdir", ] @@ -2113,9 +2104,9 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek 4.1.1", "ed25519", @@ -2374,7 +2365,7 @@ dependencies = [ "fs-err", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -2391,9 +2382,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fc-api" @@ -2476,7 +2467,7 @@ dependencies = [ "sp-core", "sp-database", "sp-runtime", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sqlx", "substrate-test-runtime-client", "tempfile", @@ -2539,7 +2530,7 @@ dependencies = [ "pallet-evm", "parity-scale-codec", "prometheus", - "rand 0.8.5", + "rand", "rlp", "sc-block-builder", "sc-client-api", @@ -2561,12 +2552,12 @@ dependencies = [ "sp-consensus", "sp-consensus-aura", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-inherents", "sp-io", "sp-runtime", "sp-state-machine", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-timestamp", "substrate-prometheus-endpoint", "substrate-test-runtime-client", @@ -2582,9 +2573,11 @@ dependencies = [ "ethereum", "ethereum-types", "jsonrpsee", + "rlp", "rustc-hex", "serde", "serde_json", + "sp-core-hashing", ] [[package]] @@ -2601,7 +2594,7 @@ dependencies = [ "sp-blockchain", "sp-io", "sp-runtime", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -2688,7 +2681,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -2753,8 +2746,8 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "12.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", ] @@ -2782,8 +2775,8 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-runtime-interface 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -2794,7 +2787,7 @@ dependencies = [ "parity-scale-codec", "sp-core", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -2815,7 +2808,7 @@ dependencies = [ "fp-evm", "frame-support", "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -2830,7 +2823,7 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -2846,7 +2839,7 @@ dependencies = [ "sp-core", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -2876,8 +2869,8 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-support", "frame-support-procedural", @@ -2893,16 +2886,16 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-runtime-interface 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "32.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "Inflector", "array-bytes 6.1.0", @@ -2919,7 +2912,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "rand 0.8.5", + "rand", "rand_pcg", "sc-block-builder", "sc-cli", @@ -2934,23 +2927,23 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-database", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-inherents", "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-trie", - "sp-wasm-interface 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "thiserror", "thousands", ] [[package]] name = "frame-executive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-support", "frame-system", @@ -2961,8 +2954,8 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-tracing 10.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -2979,8 +2972,8 @@ dependencies = [ [[package]] name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "aquamarine", "array-bytes 6.1.0", @@ -3002,8 +2995,8 @@ dependencies = [ "sp-api", "sp-arithmetic", "sp-core", - "sp-core-hashing-proc-macro", - "sp-debug-derive 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-crypto-hashing-proc-macro", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-genesis-builder", "sp-inherents", "sp-io", @@ -3011,8 +3004,8 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-tracing 10.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-weights", "static_assertions", "tt-call", @@ -3020,8 +3013,8 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "Inflector", "cfg-expr", @@ -3033,36 +3026,36 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "sp-core-hashing", - "syn 2.0.48", + "sp-crypto-hashing", + "syn 2.0.50", ] [[package]] name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "cfg-if", "docify", @@ -3074,15 +3067,15 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-benchmarking", "frame-support", @@ -3091,13 +3084,13 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", "sp-api", @@ -3105,14 +3098,14 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-support", "parity-scale-codec", "sp-api", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -3224,7 +3217,7 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "sp-version", "substrate-wasm-builder", @@ -3330,7 +3323,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -3447,7 +3440,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "rand 0.8.5", + "rand", "rand_core 0.6.4", ] @@ -3488,19 +3481,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "globset" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" -dependencies = [ - "aho-corasick", - "bstr 1.6.0", - "fnv", - "log", - "regex", -] - [[package]] name = "group" version = "0.13.0" @@ -3533,9 +3513,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.7" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" dependencies = [ "log", "pest", @@ -3990,7 +3970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.48.0", ] @@ -4029,34 +4009,32 @@ dependencies = [ [[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-proc-macros", "jsonrpsee-server", "jsonrpsee-types", + "tokio", "tracing", ] [[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-trait", "beef", - "futures-channel", "futures-util", - "globset", "hyper", "jsonrpsee-types", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "rustc-hash", "serde", "serde_json", @@ -4068,9 +4046,9 @@ dependencies = [ [[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.1.3", @@ -4081,19 +4059,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", @@ -4103,9 +4082,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", @@ -4290,7 +4269,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project", "quick-protobuf", - "rand 0.8.5", + "rand", "rw-stream-sink", "smallvec", "thiserror", @@ -4346,7 +4325,7 @@ dependencies = [ "multiaddr", "multihash", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.7", "thiserror", "zeroize", @@ -4371,7 +4350,7 @@ dependencies = [ "libp2p-swarm", "log", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.7", "smallvec", "thiserror", @@ -4393,7 +4372,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.9", "tokio", @@ -4429,7 +4408,7 @@ dependencies = [ "log", "once_cell", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.7", "snow", "static_assertions", @@ -4451,7 +4430,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "void", ] @@ -4471,7 +4450,7 @@ dependencies = [ "log", "parking_lot 0.12.1", "quinn-proto", - "rand 0.8.5", + "rand", "rustls 0.20.8", "thiserror", "tokio", @@ -4489,7 +4468,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand 0.8.5", + "rand", "smallvec", ] @@ -4508,7 +4487,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive", "log", - "rand 0.8.5", + "rand", "smallvec", "tokio", "void", @@ -4634,7 +4613,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand 0.8.5", + "rand", "serde", "sha2 0.9.9", "typenum", @@ -4820,7 +4799,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -4834,7 +4813,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -4845,7 +4824,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -4856,7 +4835,7 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -4923,7 +4902,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.30", + "rustix 0.38.31", ] [[package]] @@ -4935,6 +4914,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" @@ -5029,8 +5017,8 @@ dependencies = [ "lioness", "log", "parking_lot 0.12.1", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand", + "rand_chacha", "rand_distr", "subtle 2.4.1", "thiserror", @@ -5178,7 +5166,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand 0.8.5", + "rand", ] [[package]] @@ -5408,23 +5396,23 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70bf6736f74634d299d00086f02986875b3c2d924781a6a2cb6c201e73da0ceb" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -5498,7 +5486,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -5527,8 +5515,8 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-support", "frame-system", @@ -5539,13 +5527,13 @@ dependencies = [ "sp-application-crypto", "sp-consensus-aura", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-support", "frame-system", @@ -5553,13 +5541,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-babe" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-benchmarking", "frame-support", @@ -5577,14 +5565,15 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-balances" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -5592,7 +5581,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -5624,7 +5613,7 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -5653,7 +5642,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -5681,7 +5670,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -5772,7 +5761,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -5846,8 +5835,8 @@ dependencies = [ [[package]] name = "pallet-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-benchmarking", "frame-support", @@ -5864,7 +5853,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -5880,13 +5869,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-support", "frame-system", @@ -5901,14 +5890,14 @@ dependencies = [ "sp-session", "sp-staking", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-trie", ] [[package]] name = "pallet-sudo" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "docify", "frame-benchmarking", @@ -5918,13 +5907,13 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "pallet-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "docify", "frame-benchmarking", @@ -5936,15 +5925,15 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-timestamp", ] [[package]] name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-support", "frame-system", @@ -5954,13 +5943,13 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5975,8 +5964,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5987,8 +5976,8 @@ dependencies = [ [[package]] name = "pallet-utility" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-benchmarking", "frame-support", @@ -5998,7 +5987,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -6014,9 +6003,9 @@ dependencies = [ "libc", "log", "lz4", - "memmap2", + "memmap2 0.5.10", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "siphasher", "snap", ] @@ -6158,19 +6147,20 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.2" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" +checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" dependencies = [ + "memchr", "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.2" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" +checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" dependencies = [ "pest", "pest_generator", @@ -6178,22 +6168,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.2" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" +checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "pest_meta" -version = "2.7.2" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" +checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" dependencies = [ "once_cell", "pest", @@ -6227,7 +6217,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -6270,6 +6260,43 @@ version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" +[[package]] +name = "polkavm-common" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c99f7eee94e7be43ba37eef65ad0ee8cbaf89b7c00001c3f6d2be985cb1817" + +[[package]] +name = "polkavm-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79fa916f7962348bd1bb1a65a83401675e6fc86c51a0fdbcf92a3108e58e6125" +dependencies = [ + "polkavm-derive-impl-macro", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c10b2654a8a10a83c260bfb93e97b262cf0017494ab94a65d389e0eda6de6c9c" +dependencies = [ + "polkavm-common", + "proc-macro2", + "quote", + "syn 2.0.50", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e85319a0d5129dc9f021c62607e0804f5fb777a05cdda44d750ac0732def66" +dependencies = [ + "polkavm-derive-impl", + "syn 2.0.50", +] + [[package]] name = "polling" version = "3.3.2" @@ -6279,7 +6306,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "pin-project-lite 0.2.12", - "rustix 0.38.30", + "rustix 0.38.31", "tracing", "windows-sys 0.52.0", ] @@ -6349,7 +6376,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-weights", "staging-xcm", ] @@ -6368,7 +6395,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "syn 1.0.109", "trybuild", ] @@ -6391,7 +6418,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -6441,7 +6468,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -6515,7 +6542,7 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -6571,7 +6598,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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +dependencies = [ + "bytes", + "prost-derive 0.12.3", ] [[package]] @@ -6588,7 +6625,7 @@ dependencies = [ "multimap", "petgraph", "prettyplease 0.1.25", - "prost", + "prost 0.11.9", "prost-types", "regex", "syn 1.0.109", @@ -6609,13 +6646,26 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prost-derive" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 2.0.50", +] + [[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]] @@ -6673,7 +6723,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c956be1b23f4261676aed05a0046e204e8a6836e50203902683a718af0797989" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "ring 0.16.20", "rustc-hash", "rustls 0.20.8", @@ -6699,19 +6749,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" @@ -6719,20 +6756,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", + "rand_chacha", "rand_core 0.6.4", ] -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - [[package]] name = "rand_chacha" version = "0.3.1" @@ -6768,16 +6795,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", + "rand", ] [[package]] @@ -6875,7 +6893,7 @@ checksum = "2dfaf0c85b766276c797f3791f5bc6d5bd116b41d53049af2789666b0c0bc9fa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -6980,11 +6998,25 @@ dependencies = [ "libc", "once_cell", "spin 0.5.2", - "untrusted", + "untrusted 0.7.1", "web-sys", "winapi", ] +[[package]] +name = "ring" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babe80d5c16becf6594aa32ad2be8fe08498e7ae60b77de8df700e67f191d7e" +dependencies = [ + "cc", + "getrandom 0.2.10", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.48.0", +] + [[package]] name = "ripemd" version = "0.1.3" @@ -7026,15 +7058,21 @@ dependencies = [ "librocksdb-sys", ] +[[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.2.0" +version = "7.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" dependencies = [ "libc", "rtoolbox", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -7054,12 +7092,12 @@ dependencies = [ [[package]] name = "rtoolbox" -version = "0.0.1" +version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" dependencies = [ "libc", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -7114,9 +7152,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ "bitflags 2.4.0", "errno", @@ -7177,7 +7215,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" dependencies = [ "ring 0.16.20", - "untrusted", + "untrusted 0.7.1", ] [[package]] @@ -7223,19 +7261,19 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "log", "sp-core", - "sp-wasm-interface 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "thiserror", ] [[package]] name = "sc-basic-authorship" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "futures", "futures-timer", @@ -7256,8 +7294,8 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", "sp-api", @@ -7271,13 +7309,13 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "docify", "log", - "memmap2", + "memmap2 0.9.4", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", @@ -7288,6 +7326,7 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", + "sp-crypto-hashing", "sp-genesis-builder", "sp-io", "sp-runtime", @@ -7296,19 +7335,19 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "sc-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.36.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "bip39", @@ -7321,7 +7360,7 @@ dependencies = [ "log", "names", "parity-scale-codec", - "rand 0.8.5", + "rand", "regex", "rpassword", "sc-client-api", @@ -7348,8 +7387,8 @@ dependencies = [ [[package]] name = "sc-client-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "fnv", "futures", @@ -7364,19 +7403,19 @@ dependencies = [ "sp-consensus", "sp-core", "sp-database", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-runtime", "sp-state-machine", "sp-statement-store", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "hash-db", "kvdb", @@ -7401,8 +7440,8 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "futures", @@ -7426,8 +7465,8 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "futures", @@ -7455,8 +7494,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "fork-tree", @@ -7481,6 +7520,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", + "sp-crypto-hashing", "sp-inherents", "sp-keystore", "sp-runtime", @@ -7490,8 +7530,8 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7503,8 +7543,8 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.19.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "ahash 0.8.7", "array-bytes 6.1.0", @@ -7517,7 +7557,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -7537,6 +7577,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", + "sp-crypto-hashing", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -7545,8 +7586,8 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "assert_matches", "async-trait", @@ -7580,8 +7621,8 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "futures", @@ -7603,8 +7644,8 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", @@ -7613,32 +7654,32 @@ dependencies = [ "schnellru", "sp-api", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-io", "sp-panic-handler", - "sp-runtime-interface 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-trie", "sp-version", - "sp-wasm-interface 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "anyhow", "cfg-if", @@ -7648,15 +7689,15 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-wasm-interface 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "wasmtime", ] [[package]] name = "sc-informant" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "ansi_term", "futures", @@ -7672,8 +7713,8 @@ dependencies = [ [[package]] name = "sc-keystore" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "25.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "parking_lot 0.12.1", @@ -7686,8 +7727,8 @@ dependencies = [ [[package]] name = "sc-mixnet" -version = "0.1.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 4.2.0", "arrayvec 0.7.4", @@ -7715,8 +7756,8 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "async-channel", @@ -7736,7 +7777,7 @@ dependencies = [ "parking_lot 0.12.1", "partial_sort", "pin-project", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network-common", "sc-utils", @@ -7758,15 +7799,15 @@ dependencies = [ [[package]] name = "sc-network-bitswap" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-channel", "cid", "futures", "libp2p-identity", "log", - "prost", + "prost 0.12.3", "prost-build", "sc-client-api", "sc-network", @@ -7778,8 +7819,8 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -7795,8 +7836,8 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "ahash 0.8.7", "futures", @@ -7814,8 +7855,8 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "async-channel", @@ -7823,7 +7864,7 @@ dependencies = [ "libp2p-identity", "log", "parity-scale-codec", - "prost", + "prost 0.12.3", "prost-build", "sc-client-api", "sc-network", @@ -7835,8 +7876,8 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "async-channel", @@ -7848,7 +7889,7 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "prost", + "prost 0.12.3", "prost-build", "sc-client-api", "sc-consensus", @@ -7871,8 +7912,8 @@ dependencies = [ [[package]] name = "sc-network-transactions" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "futures", @@ -7890,8 +7931,8 @@ dependencies = [ [[package]] name = "sc-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "bytes", @@ -7906,7 +7947,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network", "sc-network-common", @@ -7914,7 +7955,7 @@ dependencies = [ "sc-utils", "sp-api", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-keystore", "sp-offchain", "sp-runtime", @@ -7924,8 +7965,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7933,8 +7974,8 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "futures", "jsonrpsee", @@ -7965,8 +8006,8 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -7985,8 +8026,8 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "http", "jsonrpsee", @@ -8000,8 +8041,8 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "futures", @@ -8013,6 +8054,7 @@ dependencies = [ "parking_lot 0.12.1", "sc-chain-spec", "sc-client-api", + "sc-rpc", "sc-transaction-pool-api", "sc-utils", "serde", @@ -8029,8 +8071,8 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "directories", @@ -8042,7 +8084,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "pin-project", - "rand 0.8.5", + "rand", "sc-chain-spec", "sc-client-api", "sc-client-db", @@ -8071,12 +8113,12 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-keystore", "sp-runtime", "sp-session", "sp-state-machine", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", @@ -8092,8 +8134,8 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.30.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "log", "parity-scale-codec", @@ -8103,28 +8145,29 @@ dependencies = [ [[package]] name = "sc-sysinfo" -version = "6.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" 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 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sc-telemetry" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "chrono", "futures", @@ -8132,7 +8175,7 @@ dependencies = [ "log", "parking_lot 0.12.1", "pin-project", - "rand 0.8.5", + "rand", "sc-utils", "serde", "serde_json", @@ -8142,8 +8185,8 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "ansi_term", "chrono", @@ -8163,7 +8206,7 @@ dependencies = [ "sp-core", "sp-rpc", "sp-runtime", - "sp-tracing 10.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "thiserror", "tracing", "tracing-log", @@ -8172,19 +8215,19 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "sc-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "futures", @@ -8200,8 +8243,9 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", + "sp-crypto-hashing", "sp-runtime", - "sp-tracing 10.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -8209,8 +8253,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "futures", @@ -8225,8 +8269,8 @@ dependencies = [ [[package]] name = "sc-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-channel", "futures", @@ -8293,9 +8337,7 @@ 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 2.4.1", @@ -8340,7 +8382,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ "ring 0.16.20", - "untrusted", + "untrusted 0.7.1", ] [[package]] @@ -8433,9 +8475,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.195" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] @@ -8451,20 +8493,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -8473,9 +8515,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -8592,7 +8634,7 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" dependencies = [ - "bstr 0.2.17", + "bstr", "unicode-segmentation", ] @@ -8634,9 +8676,9 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "smallvec" -version = "1.11.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "snap" @@ -8694,14 +8736,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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "hash-db", "log", @@ -8709,11 +8751,11 @@ dependencies = [ "scale-info", "sp-api-proc-macro", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-metadata-ir", "sp-runtime", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-trie", "sp-version", "thiserror", @@ -8721,8 +8763,8 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "Inflector", "blake2 0.10.6", @@ -8730,33 +8772,33 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "sp-application-crypto" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-core", "sp-io", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-arithmetic" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "static_assertions", ] @@ -8780,19 +8822,19 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "sp-api", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-blockchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "futures", "log", @@ -8809,8 +8851,8 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "futures", @@ -8824,8 +8866,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "parity-scale-codec", @@ -8835,14 +8877,14 @@ dependencies = [ "sp-consensus-slots", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "parity-scale-codec", @@ -8854,14 +8896,14 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-timestamp", ] [[package]] name = "sp-consensus-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "finality-grandpa", "log", @@ -8873,25 +8915,25 @@ dependencies = [ "sp-core", "sp-keystore", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-timestamp", ] [[package]] name = "sp-core" -version = "21.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "bandersnatch_vrfs", @@ -8914,18 +8956,18 @@ dependencies = [ "parking_lot 0.12.1", "paste", "primitive-types", - "rand 0.8.5", + "rand", "scale-info", "schnorrkel 0.11.4", "secp256k1", "secrecy", "serde", - "sp-core-hashing", - "sp-debug-derive 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-runtime-interface 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-crypto-hashing", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "ss58-registry", "substrate-bip39", "thiserror", @@ -8936,31 +8978,16 @@ dependencies = [ [[package]] name = "sp-core-hashing" -version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.7", - "sha3", - "twox-hash", -] - -[[package]] -name = "sp-core-hashing-proc-macro" -version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" -dependencies = [ - "quote", - "sp-core-hashing", - "syn 2.0.48", + "sp-crypto-hashing", ] [[package]] name = "sp-crypto-ec-utils" -version = "0.4.1" -source = "git+https://github.com/paritytech/polkadot-sdk#a817d310bb5c88267e57eb41fea3f9f56124f8e0" +version = "0.10.0" +source = "git+https://github.com/paritytech/polkadot-sdk#9bf1a5e23884921498b381728bfddaae93f83744" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -8974,14 +9001,37 @@ dependencies = [ "ark-ed-on-bls12-381-bandersnatch", "ark-ed-on-bls12-381-bandersnatch-ext", "ark-scale", - "sp-runtime-interface 17.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-std 14.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?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.7", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" +dependencies = [ + "quote", + "sp-crypto-hashing", + "syn 2.0.50", ] [[package]] name = "sp-database" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -8989,75 +9039,75 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "sp-debug-derive" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#a817d310bb5c88267e57eb41fea3f9f56124f8e0" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#9bf1a5e23884921498b381728bfddaae93f83744" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "sp-externalities" -version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-externalities" -version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk#a817d310bb5c88267e57eb41fea3f9f56124f8e0" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk#9bf1a5e23884921498b381728bfddaae93f83744" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-storage 13.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)", ] [[package]] name = "sp-genesis-builder" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "serde_json", "sp-api", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "thiserror", ] [[package]] name = "sp-io" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "bytes", "ed25519-dalek", @@ -9067,12 +9117,13 @@ dependencies = [ "rustversion", "secp256k1", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-keystore", - "sp-runtime-interface 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-tracing 10.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-trie", "tracing", "tracing-core", @@ -9080,30 +9131,30 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "sp-core", "sp-runtime", - "strum", + "strum 0.24.1", ] [[package]] name = "sp-keystore" -version = "0.27.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "thiserror", "zstd 0.12.4", @@ -9111,31 +9162,31 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-metadata", "parity-scale-codec", "scale-info", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-mixnet" -version = "0.1.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", "scale-info", "sp-api", "sp-application-crypto", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "sp-api", "sp-core", @@ -9144,8 +9195,8 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "backtrace", "lazy_static", @@ -9154,8 +9205,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "rustc-hash", "serde", @@ -9164,8 +9215,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "31.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "docify", "either", @@ -9174,7 +9225,7 @@ dependencies = [ "log", "parity-scale-codec", "paste", - "rand 0.8.5", + "rand", "scale-info", "serde", "simple-mermaid", @@ -9182,76 +9233,77 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-io", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-runtime-interface-proc-macro 11.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-tracing 10.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-wasm-interface 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "static_assertions", ] [[package]] name = "sp-runtime-interface" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#a817d310bb5c88267e57eb41fea3f9f56124f8e0" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#9bf1a5e23884921498b381728bfddaae93f83744" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", + "polkavm-derive", "primitive-types", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-runtime-interface-proc-macro 11.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-storage 13.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-tracing 10.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-wasm-interface 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "Inflector", "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "sp-runtime-interface-proc-macro" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#a817d310bb5c88267e57eb41fea3f9f56124f8e0" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#9bf1a5e23884921498b381728bfddaae93f83744" dependencies = [ "Inflector", "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "sp-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", "scale-info", @@ -9260,13 +9312,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9274,24 +9326,24 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-state-machine" -version = "0.28.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "hash-db", "log", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "smallvec", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-panic-handler", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-trie", "thiserror", "tracing", @@ -9300,84 +9352,85 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "aes-gcm 0.10.2", "curve25519-dalek 4.1.1", "ed25519-dalek", "hkdf", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sha2 0.10.7", "sp-api", "sp-application-crypto", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-runtime", - "sp-runtime-interface 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "thiserror", "x25519-dalek 2.0.0", ] [[package]] name = "sp-std" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" [[package]] name = "sp-std" -version = "8.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#a817d310bb5c88267e57eb41fea3f9f56124f8e0" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#9bf1a5e23884921498b381728bfddaae93f83744" [[package]] name = "sp-storage" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] name = "sp-storage" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#a817d310bb5c88267e57eb41fea3f9f56124f8e0" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#9bf1a5e23884921498b381728bfddaae93f83744" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 8.0.0 (git+https://github.com/paritytech/polkadot-sdk)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-std 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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "thiserror", ] [[package]] name = "sp-tracing" -version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "tracing", "tracing-core", "tracing-subscriber", @@ -9385,11 +9438,11 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#a817d310bb5c88267e57eb41fea3f9f56124f8e0" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#9bf1a5e23884921498b381728bfddaae93f83744" dependencies = [ "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "tracing", "tracing-core", "tracing-subscriber", @@ -9397,8 +9450,8 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "sp-api", "sp-runtime", @@ -9406,8 +9459,8 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "async-trait", "parity-scale-codec", @@ -9415,14 +9468,14 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-trie", ] [[package]] name = "sp-trie" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "ahash 0.8.7", "hash-db", @@ -9431,12 +9484,12 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "scale-info", "schnellru", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "thiserror", "tracing", "trie-db", @@ -9445,62 +9498,62 @@ dependencies = [ [[package]] name = "sp-version" -version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" 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 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?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?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] name = "sp-wasm-interface" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "wasmtime", ] [[package]] name = "sp-wasm-interface" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk#a817d310bb5c88267e57eb41fea3f9f56124f8e0" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#9bf1a5e23884921498b381728bfddaae93f83744" dependencies = [ "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", "wasmtime", ] [[package]] name = "sp-weights" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -9508,8 +9561,8 @@ dependencies = [ "serde", "smallvec", "sp-arithmetic", - "sp-debug-derive 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", ] [[package]] @@ -9683,8 +9736,8 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-xcm" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "bounded-collections", @@ -9735,9 +9788,9 @@ dependencies = [ [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" [[package]] name = "strum" @@ -9745,9 +9798,15 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "strum_macros", + "strum_macros 0.24.3", ] +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" + [[package]] name = "strum_macros" version = "0.24.3" @@ -9761,11 +9820,24 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.50", +] + [[package]] name = "substrate-bip39" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733c" +checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" dependencies = [ "hmac 0.11.0", "pbkdf2", @@ -9783,19 +9855,19 @@ dependencies = [ "byteorder", "crunchy", "lazy_static", - "rand 0.8.5", + "rand", "rustc-hex", ] [[package]] name = "substrate-build-script-utils" -version = "3.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" [[package]] name = "substrate-frame-rpc-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -9813,8 +9885,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "hyper", "log", @@ -9826,7 +9898,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "async-trait", @@ -9847,12 +9919,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-state-machine", + "tokio", ] [[package]] name = "substrate-test-runtime" version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "array-bytes 6.1.0", "frame-executive", @@ -9873,7 +9946,8 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-grandpa", "sp-core", - "sp-externalities 0.19.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-crypto-hashing", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-genesis-builder", "sp-inherents", "sp-io", @@ -9882,7 +9956,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-state-machine", - "sp-std 8.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0)", "sp-transaction-pool", "sp-trie", "sp-version", @@ -9893,7 +9967,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime-client" version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "futures", "sc-block-builder", @@ -9910,18 +9984,18 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ - "ansi_term", "build-helper", "cargo_metadata", + "console", "filetime", "parity-wasm", "sp-maybe-compressed-blob", - "strum", + "strum 0.24.1", "tempfile", - "toml 0.8.2", + "toml 0.8.10", "walkdir", "wasm-opt", ] @@ -9951,9 +10025,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" dependencies = [ "proc-macro2", "quote", @@ -10007,14 +10081,13 @@ checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a" [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" dependencies = [ "cfg-if", "fastrand", - "redox_syscall 0.4.1", - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.52.0", ] @@ -10033,7 +10106,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.30", + "rustix 0.38.31", "windows-sys 0.48.0", ] @@ -10045,22 +10118,22 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -10152,9 +10225,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.1" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "bytes", @@ -10177,7 +10250,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -10228,14 +10301,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.2" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.22.4", ] [[package]] @@ -10249,24 +10322,24 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ "indexmap 2.0.0", - "serde", - "serde_spanned", "toml_datetime", "winnow", ] [[package]] name = "toml_edit" -version = "0.21.0" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" dependencies = [ "indexmap 2.0.0", + "serde", + "serde_spanned", "toml_datetime", "winnow", ] @@ -10277,6 +10350,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.12", "tower-layer", "tower-service", "tracing", @@ -10333,7 +10410,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -10438,7 +10515,7 @@ dependencies = [ "idna 0.2.3", "ipnet", "lazy_static", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.9", "thiserror", @@ -10476,9 +10553,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "trybuild" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419ecd263363827c5730386f418715766f584e2f874d32c23c5b00bd9727e7e" +checksum = "9a9d3ba662913483d6722303f619e75ea10b7855b0f8e0d72799cf8621bb488f" dependencies = [ "basic-toml", "glob", @@ -10503,7 +10580,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -10614,6 +10691,12 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.4.0" @@ -10676,8 +10759,8 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand", + "rand_chacha", "rand_core 0.6.4", "sha2 0.10.7", "sha3", @@ -10687,9 +10770,9 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -10737,7 +10820,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", "wasm-bindgen-shared", ] @@ -10771,7 +10854,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10784,9 +10867,9 @@ checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[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", ] @@ -10799,8 +10882,8 @@ checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" dependencies = [ "anyhow", "libc", - "strum", - "strum_macros", + "strum 0.24.1", + "strum_macros 0.24.3", "tempfile", "thiserror", "wasm-opt-cxx-sys", @@ -11031,7 +11114,7 @@ dependencies = [ "memfd", "memoffset 0.8.0", "paste", - "rand 0.8.5", + "rand", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -11063,12 +11146,12 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.0" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.16.20", - "untrusted", + "ring 0.17.3", + "untrusted 0.9.0", ] [[package]] @@ -11435,13 +11518,13 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.6.0#925af80de25e26d25bf1b9c3b3746c0b921289a7" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk?branch=release-polkadot-v1.7.0#162c6796bac740802fe11c9e39f3094677d1f08f" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -11454,7 +11537,7 @@ dependencies = [ "log", "nohash-hasher", "parking_lot 0.12.1", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -11484,7 +11567,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] @@ -11504,7 +11587,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.50", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8cc964b06c..5264c3112f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,7 +47,7 @@ repository = "https://github.com/paritytech/frontier/" [workspace.dependencies] async-trait = "0.1" bn = { package = "substrate-bn", version = "0.6", default-features = false } -clap = { version = "4.4.12", features = ["derive", "deprecated"] } +clap = { version = "4.5", features = ["derive", "deprecated"] } derive_more = "0.99" environmental = { version = "1.1.4", default-features = false } ethereum = { version = "0.15.0", default-features = false } @@ -59,11 +59,11 @@ hex = { version = "0.4.3", default-features = false, features = ["alloc"] } hex-literal = "0.4.1" impl-serde = { version = "0.4.0", default-features = false } impl-trait-for-tuples = "0.2.1" -jsonrpsee = "0.16.3" +jsonrpsee = "0.20.3" kvdb-rocksdb = "0.19.0" libsecp256k1 = { version = "0.7.1", default-features = false } log = { version = "0.4.20", default-features = false } -num_enum = { version = "0.7.0", default-features = false } +num_enum = { version = "0.7.2", default-features = false } parity-db = "0.4.12" parking_lot = "0.12.1" rlp = { version = "0.5.2", default-features = false } @@ -74,85 +74,85 @@ serde_json = "1.0" similar-asserts = "1.5.0" sqlx = { version = "0.7.3", default-features = false, features = ["macros"] } thiserror = "1.0" -tokio = "1.35.1" +tokio = "1.36.0" # Substrate Client -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-keystore = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-network-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-rpc-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sc-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-keystore = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-network-common = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-rpc-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } # Substrate Primitive -sp-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-core = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-core-hashing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-core-hashing-proc-macro = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-database = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-storage = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -sp-weights = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sp-consensus = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-consensus-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-core-hashing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-core-hashing-proc-macro = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-database = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sp-externalities = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-storage = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } # Substrate FRAME -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } -pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } +pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } # Substrate Utility -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -substrate-test-runtime-client = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +substrate-test-runtime-client = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0" } # XCM -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.6.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.7.0", default-features = false } # Arkworks ark-bls12-377 = { version = "0.4.0", default-features = false, features = ["curve"] } diff --git a/client/db/Cargo.toml b/client/db/Cargo.toml index d107e4847d..d9887dab4d 100644 --- a/client/db/Cargo.toml +++ b/client/db/Cargo.toml @@ -19,7 +19,7 @@ log = { workspace = true } parity-db = { workspace = true } parking_lot = { workspace = true } scale-codec = { package = "parity-scale-codec", workspace = true } -smallvec = { version = "1.11", optional = true } +smallvec = { version = "1.13", optional = true } sqlx = { workspace = true, features = ["runtime-tokio-native-tls", "sqlite"], optional = true } tokio = { workspace = true, features = ["macros", "sync"], optional = true } # Substrate diff --git a/client/rpc-core/Cargo.toml b/client/rpc-core/Cargo.toml index aeafd4acaa..44fb704e6a 100644 --- a/client/rpc-core/Cargo.toml +++ b/client/rpc-core/Cargo.toml @@ -14,9 +14,13 @@ targets = ["x86_64-unknown-linux-gnu"] ethereum = { workspace = true, features = ["with-codec", "with-serde"] } ethereum-types = { workspace = true } jsonrpsee = { workspace = true, features = ["server", "macros"] } +rlp = { workspace = true } rustc-hex = "2.1.0" serde = { workspace = true } serde_json = { workspace = true } +# Substrate +sp-core-hashing = { workspace = true, features = ["default"] } + [features] txpool = [] diff --git a/client/rpc-core/src/lib.rs b/client/rpc-core/src/lib.rs index e3e7e72233..56dd56361e 100644 --- a/client/rpc-core/src/lib.rs +++ b/client/rpc-core/src/lib.rs @@ -16,6 +16,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . +#![allow(clippy::explicit_counter_loop)] #![warn(unused_crate_dependencies)] pub mod types; diff --git a/client/rpc-core/src/types/block.rs b/client/rpc-core/src/types/block.rs index 1ce10681c8..8e30b111b5 100644 --- a/client/rpc-core/src/types/block.rs +++ b/client/rpc-core/src/types/block.rs @@ -24,7 +24,7 @@ use serde::{ser::Error, Serialize, Serializer}; use crate::types::{Bytes, Transaction}; /// Block Transactions -#[derive(Debug)] +#[derive(Clone, Debug)] pub enum BlockTransactions { /// Only hashes Hashes(Vec), @@ -45,7 +45,7 @@ impl Serialize for BlockTransactions { } /// Block representation -#[derive(Debug, Serialize)] +#[derive(Clone, Debug, Serialize)] #[serde(rename_all = "camelCase")] pub struct Block { /// Header of the block diff --git a/client/rpc-core/src/types/fee.rs b/client/rpc-core/src/types/fee.rs index db2edc6890..633e939d25 100644 --- a/client/rpc-core/src/types/fee.rs +++ b/client/rpc-core/src/types/fee.rs @@ -25,7 +25,7 @@ use ethereum_types::U256; use serde::Serialize; /// `eth_feeHistory` response -#[derive(Debug, Serialize)] +#[derive(Clone, Debug, Serialize)] #[serde(rename_all = "camelCase")] pub struct FeeHistory { /// Lowest number block of the returned range. diff --git a/client/rpc-core/src/types/filter.rs b/client/rpc-core/src/types/filter.rs index eec92361df..91fb42b09c 100644 --- a/client/rpc-core/src/types/filter.rs +++ b/client/rpc-core/src/types/filter.rs @@ -173,7 +173,7 @@ impl FilteredParams { } /// Build an address-based BloomFilter. - pub fn adresses_bloom_filter(address: &Option) -> BloomFilter<'_> { + pub fn address_bloom_filter(address: &Option) -> BloomFilter<'_> { if let Some(address) = address { return address.into(); } @@ -301,7 +301,7 @@ impl FilteredParams { } /// Replace None values - aka wildcards - for the log input value in that position. - pub fn replace(&self, log: &Log, topic: FlatTopic) -> Option> { + pub fn replace(&self, topics: &[H256], topic: FlatTopic) -> Option> { let mut out: Vec = Vec::new(); match topic { VariadicValue::Single(Some(value)) => { @@ -312,7 +312,7 @@ impl FilteredParams { if let Some(v) = v { out.push(v); } else { - out.push(log.topics[k]); + out.push(topics[k]); } } } @@ -324,6 +324,26 @@ impl FilteredParams { Some(out) } + pub fn is_not_filtered( + &self, + block_number: U256, + block_hash: H256, + address: &H160, + topics: &[H256], + ) -> bool { + if self.filter.is_some() { + let block_number = block_number.as_u64(); + if !self.filter_block_range(block_number) + || !self.filter_block_hash(block_hash) + || !self.filter_address(address) + || !self.filter_topics(topics) + { + return false; + } + } + true + } + pub fn filter_block_range(&self, block_number: u64) -> bool { let mut out = true; let filter = self.filter.clone().unwrap(); @@ -357,16 +377,16 @@ impl FilteredParams { true } - pub fn filter_address(&self, log: &Log) -> bool { + pub fn filter_address(&self, address: &H160) -> bool { if let Some(input_address) = &self.filter.clone().unwrap().address { match input_address { VariadicValue::Single(x) => { - if log.address != *x { + if address != x { return false; } } VariadicValue::Multiple(x) => { - if !x.contains(&log.address) { + if !x.contains(address) { return false; } } @@ -378,13 +398,13 @@ impl FilteredParams { true } - pub fn filter_topics(&self, log: &Log) -> bool { + pub fn filter_topics(&self, topics: &[H256]) -> bool { let mut out: bool = true; for topic in self.flat_topics.clone() { match topic { VariadicValue::Single(single) => { if let Some(single) = single { - if !log.topics.starts_with(&[single]) { + if !topics.starts_with(&[single]) { out = false; } } @@ -401,15 +421,15 @@ impl FilteredParams { new_multi.pop(); } // We can discard right away any logs with lesser topics than the filter. - if new_multi.len() > log.topics.len() { + if new_multi.len() > topics.len() { out = false; break; } let replaced: Option> = - self.replace(log, VariadicValue::Multiple(new_multi)); + self.replace(topics, VariadicValue::Multiple(new_multi)); if let Some(replaced) = replaced { out = false; - if log.topics.starts_with(&replaced[..]) { + if topics.starts_with(&replaced[..]) { out = true; break; } @@ -425,7 +445,7 @@ impl FilteredParams { } /// Results of the filter_changes RPC. -#[derive(Debug, Eq, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq)] pub enum FilterChanges { /// New logs. Logs(Vec), @@ -497,7 +517,7 @@ mod tests { address: Some(VariadicValue::Single(test_address)), topics: None, }; - let address_bloom = FilteredParams::adresses_bloom_filter(&filter.address); + let address_bloom = FilteredParams::address_bloom_filter(&filter.address); assert!(FilteredParams::address_in_bloom( block_bloom(), &address_bloom @@ -514,7 +534,7 @@ mod tests { address: Some(VariadicValue::Single(test_address)), topics: None, }; - let address_bloom = FilteredParams::adresses_bloom_filter(&filter.address); + let address_bloom = FilteredParams::address_bloom_filter(&filter.address); assert!(!FilteredParams::address_in_bloom( block_bloom(), &address_bloom @@ -635,7 +655,7 @@ mod tests { } else { None }; - let address_bloom = FilteredParams::adresses_bloom_filter(&filter.address); + let address_bloom = FilteredParams::address_bloom_filter(&filter.address); let topics_bloom = FilteredParams::topics_bloom_filter(&topics_input); let matches = FilteredParams::address_in_bloom(block_bloom(), &address_bloom) && FilteredParams::topics_in_bloom(block_bloom(), &topics_bloom); @@ -669,7 +689,7 @@ mod tests { } else { None }; - let address_bloom = FilteredParams::adresses_bloom_filter(&filter.address); + let address_bloom = FilteredParams::address_bloom_filter(&filter.address); let topics_bloom = FilteredParams::topics_bloom_filter(&topics_input); let matches = FilteredParams::address_in_bloom(block_bloom(), &address_bloom) && FilteredParams::topics_in_bloom(block_bloom(), &topics_bloom); diff --git a/client/rpc-core/src/types/pubsub.rs b/client/rpc-core/src/types/pubsub.rs index b19590cc89..b8196381db 100644 --- a/client/rpc-core/src/types/pubsub.rs +++ b/client/rpc-core/src/types/pubsub.rs @@ -18,55 +18,18 @@ //! Pub-Sub types. -use ethereum_types::H256; +use std::collections::BTreeMap; + +use ethereum::{ + BlockV2 as EthereumBlock, ReceiptV3 as EthereumReceipt, TransactionV2 as EthereumTransaction, +}; +use ethereum_types::{H256, U256}; use serde::{de::Error, Deserialize, Deserializer, Serialize, Serializer}; use serde_json::{from_value, Value}; +// Substrate +use sp_core_hashing::keccak_256; -use crate::types::{Filter, Log, RichHeader}; - -/// Subscription result. -#[derive(Clone, Debug, Eq, PartialEq)] -pub enum Result { - /// New block header. - Header(Box), - /// Log - Log(Box), - /// Transaction hash - TransactionHash(H256), - /// SyncStatus - SyncState(PubSubSyncStatus), -} -#[derive(Clone, Debug, Eq, PartialEq, Serialize)] -#[serde(untagged)] -pub enum PubSubSyncStatus { - Simple(bool), - Detailed(SyncStatusMetadata), -} - -/// PubSbub sync status -#[derive(Clone, Debug, Eq, PartialEq, Serialize)] -#[serde(rename_all = "camelCase")] -pub struct SyncStatusMetadata { - pub syncing: bool, - pub starting_block: u64, - pub current_block: u64, - #[serde(default = "Default::default", skip_serializing_if = "Option::is_none")] - pub highest_block: Option, -} - -impl Serialize for Result { - fn serialize(&self, serializer: S) -> ::std::result::Result - where - S: Serializer, - { - match *self { - Result::Header(ref header) => header.serialize(serializer), - Result::Log(ref log) => log.serialize(serializer), - Result::TransactionHash(ref hash) => hash.serialize(serializer), - Result::SyncState(ref sync) => sync.serialize(serializer), - } - } -} +use crate::types::{Bytes, Filter, FilteredParams, Header, Log, Rich, RichHeader}; /// Subscription kind. #[derive(Clone, Debug, Eq, PartialEq, Hash, Deserialize)] @@ -94,7 +57,7 @@ pub enum Params { } impl<'a> Deserialize<'a> for Params { - fn deserialize(deserializer: D) -> ::std::result::Result + fn deserialize(deserializer: D) -> Result where D: Deserializer<'a>, { @@ -109,3 +72,124 @@ impl<'a> Deserialize<'a> for Params { .map_err(|e| D::Error::custom(format!("Invalid Pub-Sub parameters: {}", e))) } } + +/// Subscription result. +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum PubSubResult { + /// New block header. + Header(Box), + /// Log + Log(Box), + /// Transaction hash + TransactionHash(H256), + /// SyncStatus + SyncingStatus(PubSubSyncing), +} + +impl PubSubResult { + pub fn header(block: EthereumBlock) -> Self { + Self::Header(Box::new(Rich { + inner: Header { + hash: Some(H256::from(keccak_256(&rlp::encode(&block.header)))), + parent_hash: block.header.parent_hash, + uncles_hash: block.header.ommers_hash, + author: block.header.beneficiary, + miner: Some(block.header.beneficiary), + state_root: block.header.state_root, + transactions_root: block.header.transactions_root, + receipts_root: block.header.receipts_root, + number: Some(block.header.number), + gas_used: block.header.gas_used, + gas_limit: block.header.gas_limit, + extra_data: Bytes(block.header.extra_data.clone()), + logs_bloom: block.header.logs_bloom, + timestamp: U256::from(block.header.timestamp), + difficulty: block.header.difficulty, + nonce: Some(block.header.nonce), + size: Some(U256::from(rlp::encode(&block.header).len() as u32)), + }, + extra_info: BTreeMap::new(), + })) + } + + pub fn logs( + block: EthereumBlock, + receipts: Vec, + params: &FilteredParams, + ) -> impl Iterator { + let block_number = block.header.number; + let block_hash = block.header.hash(); + + let mut logs: Vec = vec![]; + let mut log_index: u32 = 0; + for (receipt_index, receipt) in receipts.into_iter().enumerate() { + let receipt_logs = match receipt { + EthereumReceipt::Legacy(d) + | EthereumReceipt::EIP2930(d) + | EthereumReceipt::EIP1559(d) => d.logs, + }; + + let transaction_hash: Option = if !receipt_logs.is_empty() { + Some(block.transactions[receipt_index].hash()) + } else { + None + }; + + let mut transaction_log_index = 0; + for log in receipt_logs { + if params.is_not_filtered(block_number, block_hash, &log.address, &log.topics) { + logs.push(Log { + address: log.address, + topics: log.topics, + data: Bytes(log.data), + block_hash: Some(block_hash), + block_number: Some(block_number), + transaction_hash, + transaction_index: Some(U256::from(receipt_index)), + log_index: Some(U256::from(log_index)), + transaction_log_index: Some(U256::from(transaction_log_index)), + removed: false, + }); + } + transaction_log_index += 1; + log_index += 1; + } + } + logs.into_iter().map(|log| Self::Log(Box::new(log))) + } + + pub fn transaction_hash(tx: &EthereumTransaction) -> Self { + Self::TransactionHash(tx.hash()) + } +} + +impl Serialize for PubSubResult { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match *self { + Self::Header(ref header) => header.serialize(serializer), + Self::Log(ref log) => log.serialize(serializer), + Self::TransactionHash(ref hash) => hash.serialize(serializer), + Self::SyncingStatus(ref sync) => sync.serialize(serializer), + } + } +} + +#[derive(Clone, Debug, Eq, PartialEq, Serialize)] +#[serde(untagged)] +pub enum PubSubSyncing { + Synced(bool), + Syncing(SyncingStatus), +} + +/// Pubsub sync status +#[derive(Clone, Debug, Eq, PartialEq, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct SyncingStatus { + pub starting_block: u64, + pub current_block: u64, + #[serde(default = "Default::default", skip_serializing_if = "Option::is_none")] + pub highest_block: Option, +} diff --git a/client/rpc-core/src/types/sync.rs b/client/rpc-core/src/types/sync.rs index 908322899a..2b119736bd 100644 --- a/client/rpc-core/src/types/sync.rs +++ b/client/rpc-core/src/types/sync.rs @@ -22,7 +22,7 @@ use ethereum_types::{H512, U256}; use serde::{Serialize, Serializer}; /// Sync info -#[derive(Debug, Eq, PartialEq, Default, Serialize)] +#[derive(Clone, Debug, Eq, PartialEq, Default, Serialize)] #[serde(rename_all = "camelCase")] pub struct SyncInfo { /// Starting block @@ -50,7 +50,7 @@ pub struct Peers { pub peers: Vec, } -#[derive(Debug, Serialize)] +#[derive(Clone, Debug, Serialize)] #[serde(untagged)] pub enum PeerCount { U32(u32), @@ -114,7 +114,7 @@ pub struct PipProtocolInfo { } /// Sync status -#[derive(Debug, Eq, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq)] pub enum SyncStatus { /// Info when syncing Info(SyncInfo), diff --git a/client/rpc-core/src/types/txpool.rs b/client/rpc-core/src/types/txpool.rs index 5c953bc678..ad12f1a168 100644 --- a/client/rpc-core/src/types/txpool.rs +++ b/client/rpc-core/src/types/txpool.rs @@ -29,7 +29,7 @@ use crate::types::BuildFrom; pub type TransactionMap = HashMap>; /// The result type of `txpool` API. -#[derive(Debug, Serialize)] +#[derive(Clone, Debug, Serialize)] pub struct TxPoolResult { pub pending: T, pub queued: T, diff --git a/client/rpc-core/src/types/work.rs b/client/rpc-core/src/types/work.rs index 88af66691e..6ee0f541a0 100644 --- a/client/rpc-core/src/types/work.rs +++ b/client/rpc-core/src/types/work.rs @@ -21,7 +21,7 @@ use serde::{Serialize, Serializer}; /// The result of an `eth_getWork` call: it differs based on an option /// whether to send the block number. -#[derive(Debug, Eq, PartialEq, Default)] +#[derive(Clone, Debug, Eq, PartialEq, Default)] pub struct Work { /// The proof-of-work hash. pub pow_hash: H256, diff --git a/client/rpc/src/eth/filter.rs b/client/rpc/src/eth/filter.rs index f6ac476ca6..92c2018ad1 100644 --- a/client/rpc/src/eth/filter.rs +++ b/client/rpc/src/eth/filter.rs @@ -188,7 +188,7 @@ where from_number: NumberFor, current_number: NumberFor, }, - Error(jsonrpsee::core::Error), + Error(jsonrpsee::types::ErrorObjectOwned), } let key = U256::from(index.value()); @@ -712,7 +712,7 @@ where } else { None }; - let address_bloom_filter = FilteredParams::adresses_bloom_filter(&filter.address); + let address_bloom_filter = FilteredParams::address_bloom_filter(&filter.address); let topics_bloom_filter = FilteredParams::topics_bloom_filter(&topics_input); while current_number <= to { @@ -787,17 +787,17 @@ fn filter_block_logs<'a>( let mut add: bool = true; match (filter.address.clone(), filter.topics.clone()) { (Some(_), Some(_)) => { - if !params.filter_address(&log) || !params.filter_topics(&log) { + if !params.filter_address(&log.address) || !params.filter_topics(&log.topics) { add = false; } } (Some(_), _) => { - if !params.filter_address(&log) { + if !params.filter_address(&log.address) { add = false; } } (_, Some(_)) => { - if !params.filter_topics(&log) { + if !params.filter_topics(&log.topics) { add = false; } } diff --git a/client/rpc/src/eth_pubsub.rs b/client/rpc/src/eth_pubsub.rs index ca4cf782d2..e7596c2dfd 100644 --- a/client/rpc/src/eth_pubsub.rs +++ b/client/rpc/src/eth_pubsub.rs @@ -16,31 +16,32 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use std::{collections::BTreeMap, marker::PhantomData, sync::Arc}; +use std::{marker::PhantomData, sync::Arc}; -use ethereum::{BlockV2 as EthereumBlock, TransactionV2 as EthereumTransaction}; -use ethereum_types::{H256, U256}; -use futures::{FutureExt as _, StreamExt as _}; -use jsonrpsee::{types::SubscriptionResult, SubscriptionSink}; +use ethereum::TransactionV2 as EthereumTransaction; +use futures::{future, FutureExt as _, StreamExt as _}; +use jsonrpsee::{core::traits::IdProvider, server::PendingSubscriptionSink}; // Substrate use sc_client_api::{ backend::{Backend, StorageProvider}, client::BlockchainEvents, }; use sc_network_sync::SyncingService; -use sc_rpc::SubscriptionTaskExecutor; -use sc_transaction_pool_api::TransactionPool; +use sc_rpc::{ + utils::{pipe_from_stream, to_sub_message}, + SubscriptionTaskExecutor, +}; +use sc_transaction_pool_api::{InPoolTransaction, TransactionPool, TxHash}; use sp_api::{ApiExt, ProvideRuntimeApi}; use sp_blockchain::HeaderBackend; use sp_consensus::SyncOracle; -use sp_core::hashing::keccak_256; use sp_runtime::traits::{Block as BlockT, UniqueSaturatedInto}; // Frontier use fc_mapping_sync::{EthereumBlockNotification, EthereumBlockNotificationSinks}; use fc_rpc_core::{ types::{ - pubsub::{Kind, Params, PubSubSyncStatus, Result as PubSubResult, SyncStatusMetadata}, - Bytes, FilteredParams, Header, Log, Rich, + pubsub::{Kind, Params, PubSubResult, PubSubSyncing, SyncingStatus}, + FilteredParams, }, EthPubSubApiServer, }; @@ -49,8 +50,7 @@ use fp_rpc::EthereumRuntimeRPCApi; #[derive(Debug)] pub struct EthereumSubIdProvider; - -impl jsonrpsee::core::traits::IdProvider for EthereumSubIdProvider { +impl IdProvider for EthereumSubIdProvider { fn next_id(&self) -> jsonrpsee::types::SubscriptionId<'static> { format!("0x{}", hex::encode(rand::random::().to_le_bytes())).into() } @@ -61,140 +61,166 @@ pub struct EthPubSub { pool: Arc, client: Arc, sync: Arc>, - subscriptions: SubscriptionTaskExecutor, + executor: SubscriptionTaskExecutor, overrides: Arc>, starting_block: u64, pubsub_notification_sinks: Arc>>, _marker: PhantomData, } +impl Clone for EthPubSub { + fn clone(&self) -> Self { + Self { + pool: self.pool.clone(), + client: self.client.clone(), + sync: self.sync.clone(), + executor: self.executor.clone(), + overrides: self.overrides.clone(), + starting_block: self.starting_block, + pubsub_notification_sinks: self.pubsub_notification_sinks.clone(), + _marker: PhantomData::, + } + } +} + impl EthPubSub where - C: HeaderBackend, + P: TransactionPool + 'static, + C: ProvideRuntimeApi, + C::Api: EthereumRuntimeRPCApi, + C: HeaderBackend + StorageProvider, + BE: Backend + 'static, { pub fn new( pool: Arc, client: Arc, sync: Arc>, - subscriptions: SubscriptionTaskExecutor, + executor: SubscriptionTaskExecutor, overrides: Arc>, pubsub_notification_sinks: Arc< EthereumBlockNotificationSinks>, >, ) -> Self { // Capture the best block as seen on initialization. Used for syncing subscriptions. - let starting_block = - UniqueSaturatedInto::::unique_saturated_into(client.info().best_number); + let best_number = client.info().best_number; + let starting_block = UniqueSaturatedInto::::unique_saturated_into(best_number); Self { pool, client, sync, - subscriptions, + executor, overrides, starting_block, pubsub_notification_sinks, _marker: PhantomData, } } -} -struct EthSubscriptionResult; -impl EthSubscriptionResult { - pub fn new_heads(block: EthereumBlock) -> PubSubResult { - PubSubResult::Header(Box::new(Rich { - inner: Header { - hash: Some(H256::from(keccak_256(&rlp::encode(&block.header)))), - parent_hash: block.header.parent_hash, - uncles_hash: block.header.ommers_hash, - author: block.header.beneficiary, - miner: Some(block.header.beneficiary), - state_root: block.header.state_root, - transactions_root: block.header.transactions_root, - receipts_root: block.header.receipts_root, - number: Some(block.header.number), - gas_used: block.header.gas_used, - gas_limit: block.header.gas_limit, - extra_data: Bytes(block.header.extra_data.clone()), - logs_bloom: block.header.logs_bloom, - timestamp: U256::from(block.header.timestamp), - difficulty: block.header.difficulty, - nonce: Some(block.header.nonce), - size: Some(U256::from(rlp::encode(&block.header).len() as u32)), - }, - extra_info: BTreeMap::new(), - })) + fn notify_header( + &self, + notification: EthereumBlockNotification, + ) -> future::Ready> { + let res = if notification.is_new_best { + let schema = fc_storage::onchain_storage_schema(&*self.client, notification.hash); + let handler = self + .overrides + .schemas + .get(&schema) + .unwrap_or(&self.overrides.fallback); + handler.current_block(notification.hash) + } else { + None + }; + future::ready(res.map(PubSubResult::header)) } - pub fn logs( - block: EthereumBlock, - receipts: Vec, + + fn notify_logs( + &self, + notification: EthereumBlockNotification, params: &FilteredParams, - ) -> Vec { - let block_hash = H256::from(keccak_256(&rlp::encode(&block.header))); - let mut logs: Vec = vec![]; - let mut log_index: u32 = 0; - for (receipt_index, receipt) in receipts.into_iter().enumerate() { - let receipt_logs = match receipt { - ethereum::ReceiptV3::Legacy(d) - | ethereum::ReceiptV3::EIP2930(d) - | ethereum::ReceiptV3::EIP1559(d) => d.logs, + ) -> future::Ready>> { + let res = if notification.is_new_best { + let substrate_hash = notification.hash; + + let schema = fc_storage::onchain_storage_schema(&*self.client, substrate_hash); + let handler = self + .overrides + .schemas + .get(&schema) + .unwrap_or(&self.overrides.fallback); + + let block = handler.current_block(substrate_hash); + let receipts = handler.current_receipts(substrate_hash); + + match (block, receipts) { + (Some(block), Some(receipts)) => Some((block, receipts)), + _ => None, + } + } else { + None + }; + future::ready(res.map(|(block, receipts)| PubSubResult::logs(block, receipts, params))) + } + + fn pending_transaction(&self, hash: &TxHash) -> future::Ready> { + let res = if let Some(xt) = self.pool.ready_transaction(hash) { + let best_block = self.client.info().best_hash; + + let api = self.client.runtime_api(); + + let api_version = if let Ok(Some(api_version)) = + api.api_version::>(best_block) + { + api_version + } else { + return future::ready(None); }; - let mut transaction_log_index: u32 = 0; - let transaction_hash: Option = if receipt_logs.len() > 0 { - Some(block.transactions[receipt_index].hash()) + + let xts = vec![xt.data().clone()]; + + let txs: Option> = if api_version > 1 { + api.extrinsic_filter(best_block, xts).ok() } else { - None + #[allow(deprecated)] + if let Ok(legacy) = api.extrinsic_filter_before_version_2(best_block, xts) { + Some(legacy.into_iter().map(|tx| tx.into()).collect()) + } else { + None + } }; - for log in receipt_logs { - if Self::add_log(block_hash, &log, &block, params) { - logs.push(Log { - address: log.address, - topics: log.topics, - data: Bytes(log.data), - block_hash: Some(block_hash), - block_number: Some(block.header.number), - transaction_hash, - transaction_index: Some(U256::from(receipt_index)), - log_index: Some(U256::from(log_index)), - transaction_log_index: Some(U256::from(transaction_log_index)), - removed: false, - }); + + match txs { + Some(txs) => { + if txs.len() == 1 { + Some(txs[0].clone()) + } else { + None + } } - log_index += 1; - transaction_log_index += 1; + _ => None, } - } - logs - } - fn add_log( - block_hash: H256, - ethereum_log: ðereum::Log, - block: &EthereumBlock, - params: &FilteredParams, - ) -> bool { - let log = Log { - address: ethereum_log.address, - topics: ethereum_log.topics.clone(), - data: Bytes(ethereum_log.data.clone()), - block_hash: None, - block_number: None, - transaction_hash: None, - transaction_index: None, - log_index: None, - transaction_log_index: None, - removed: false, + } else { + None }; - if params.filter.is_some() { - let block_number = - UniqueSaturatedInto::::unique_saturated_into(block.header.number); - if !params.filter_block_range(block_number) - || !params.filter_block_hash(block_hash) - || !params.filter_address(&log) - || !params.filter_topics(&log) - { - return false; - } + future::ready(res.map(|tx| PubSubResult::transaction_hash(&tx))) + } + + async fn syncing_status(&self) -> PubSubSyncing { + if self.sync.is_major_syncing() { + // Best imported block. + let current_number = self.client.info().best_number; + // Get the target block to sync. + let highest_number = self.sync.best_seen_block().await.ok().flatten(); + + PubSubSyncing::Syncing(SyncingStatus { + starting_block: self.starting_block, + current_block: UniqueSaturatedInto::::unique_saturated_into(current_number), + highest_block: highest_number + .map(UniqueSaturatedInto::::unique_saturated_into), + }) + } else { + PubSubSyncing::Synced(false) } - true } } @@ -208,198 +234,64 @@ where C: HeaderBackend + StorageProvider, BE: Backend + 'static, { - fn subscribe( - &self, - mut sink: SubscriptionSink, - kind: Kind, - params: Option, - ) -> SubscriptionResult { - sink.accept()?; - + fn subscribe(&self, pending: PendingSubscriptionSink, kind: Kind, params: Option) { let filtered_params = match params { Some(Params::Logs(filter)) => FilteredParams::new(Some(filter)), _ => FilteredParams::default(), }; - let client = self.client.clone(); + let pubsub = self.clone(); // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. let (inner_sink, block_notification_stream) = sc_utils::mpsc::tracing_unbounded("pubsub_notification_stream", 100_000); self.pubsub_notification_sinks.lock().push(inner_sink); - let pool = self.pool.clone(); - let sync = self.sync.clone(); - let overrides = self.overrides.clone(); - let starting_block = self.starting_block; + let fut = async move { match kind { - Kind::Logs => { + Kind::NewHeads => { let stream = block_notification_stream - .filter_map(move |notification| { - if notification.is_new_best { - let substrate_hash = notification.hash; - - let schema = fc_storage::onchain_storage_schema( - client.as_ref(), - substrate_hash, - ); - let handler = overrides - .schemas - .get(&schema) - .unwrap_or(&overrides.fallback); - - let block = handler.current_block(substrate_hash); - let receipts = handler.current_receipts(substrate_hash); - - match (receipts, block) { - (Some(receipts), Some(block)) => { - futures::future::ready(Some((block, receipts))) - } - _ => futures::future::ready(None), - } - } else { - futures::future::ready(None) - } - }) - .flat_map(move |(block, receipts)| { - futures::stream::iter(EthSubscriptionResult::logs( - block, - receipts, - &filtered_params, - )) - }) - .map(|x| PubSubResult::Log(Box::new(x))); - sink.pipe_from_stream(stream).await; + .filter_map(move |notification| pubsub.notify_header(notification)); + pipe_from_stream(pending, stream).await } - Kind::NewHeads => { + Kind::Logs => { let stream = block_notification_stream .filter_map(move |notification| { - if notification.is_new_best { - let schema = fc_storage::onchain_storage_schema( - client.as_ref(), - notification.hash, - ); - let handler = overrides - .schemas - .get(&schema) - .unwrap_or(&overrides.fallback); - - let block = handler.current_block(notification.hash); - futures::future::ready(block) - } else { - futures::future::ready(None) - } + pubsub.notify_logs(notification, &filtered_params) }) - .map(EthSubscriptionResult::new_heads); - sink.pipe_from_stream(stream).await; + .flat_map(futures::stream::iter); + pipe_from_stream(pending, stream).await } Kind::NewPendingTransactions => { - use sc_transaction_pool_api::InPoolTransaction; - + let pool = pubsub.pool.clone(); let stream = pool .import_notification_stream() - .filter_map(move |txhash| { - if let Some(xt) = pool.ready_transaction(&txhash) { - let best_block = client.info().best_hash; - - let api = client.runtime_api(); - - let api_version = if let Ok(Some(api_version)) = - api.api_version::>(best_block) - { - api_version - } else { - return futures::future::ready(None); - }; - - let xts = vec![xt.data().clone()]; - - let txs: Option> = if api_version > 1 { - api.extrinsic_filter(best_block, xts).ok() - } else { - #[allow(deprecated)] - if let Ok(legacy) = - api.extrinsic_filter_before_version_2(best_block, xts) - { - Some(legacy.into_iter().map(|tx| tx.into()).collect()) - } else { - None - } - }; - - let res = match txs { - Some(txs) => { - if txs.len() == 1 { - Some(txs[0].clone()) - } else { - None - } - } - _ => None, - }; - futures::future::ready(res) - } else { - futures::future::ready(None) - } - }) - .map(|transaction| PubSubResult::TransactionHash(transaction.hash())); - sink.pipe_from_stream(stream).await; + .filter_map(move |hash| pubsub.pending_transaction(&hash)); + pipe_from_stream(pending, stream).await; } Kind::Syncing => { - let client = Arc::clone(&client); - let sync = Arc::clone(&sync); - // Gets the node syncing status. - // The response is expected to be serialized either as a plain boolean - // if the node is not syncing, or a structure containing syncing metadata - // in case it is. - async fn status, B: BlockT>( - client: Arc, - sync: Arc>, - starting_block: u64, - ) -> PubSubSyncStatus { - if sync.is_major_syncing() { - // Get the target block to sync. - // This value is only exposed through substrate async Api - // in the `NetworkService`. - let highest_block = sync - .status() - .await - .ok() - .and_then(|res| res.best_seen_block) - .map(UniqueSaturatedInto::::unique_saturated_into); - // Best imported block. - let current_block = UniqueSaturatedInto::::unique_saturated_into( - client.info().best_number, - ); - - PubSubSyncStatus::Detailed(SyncStatusMetadata { - syncing: true, - starting_block, - current_block, - highest_block, - }) - } else { - PubSubSyncStatus::Simple(false) - } - } + let Ok(sink) = pending.accept().await else { + return; + }; // On connection subscriber expects a value. // Because import notifications are only emitted when the node is synced or // in case of reorg, the first event is emitted right away. - let _ = sink.send(&PubSubResult::SyncState( - status(Arc::clone(&client), Arc::clone(&sync), starting_block).await, - )); + let syncing_status = pubsub.syncing_status().await; + let msg = to_sub_message(&sink, &PubSubResult::SyncingStatus(syncing_status)); + let _ = sink.send(msg).await; // When the node is not under a major syncing (i.e. from genesis), react // normally to import notifications. // // Only send new notifications down the pipe when the syncing status changed. - let mut stream = client.clone().import_notification_stream(); - let mut last_syncing_status = sync.is_major_syncing(); + let mut stream = pubsub.client.import_notification_stream(); + let mut last_syncing_status = pubsub.sync.is_major_syncing(); while (stream.next().await).is_some() { - let syncing_status = sync.is_major_syncing(); + let syncing_status = pubsub.sync.is_major_syncing(); if syncing_status != last_syncing_status { - let _ = sink.send(&PubSubResult::SyncState( - status(client.clone(), sync.clone(), starting_block).await, - )); + let syncing_status = pubsub.syncing_status().await; + let msg = + to_sub_message(&sink, &PubSubResult::SyncingStatus(syncing_status)); + let _ = sink.send(msg).await; } last_syncing_status = syncing_status; } @@ -407,11 +299,8 @@ where } } .boxed(); - self.subscriptions.spawn( - "frontier-rpc-subscription", - Some("rpc"), - fut.map(drop).boxed(), - ); - Ok(()) + + self.executor + .spawn("frontier-rpc-subscription", Some("rpc"), fut); } } diff --git a/client/rpc/src/lib.rs b/client/rpc/src/lib.rs index 7942c9dd3d..afc7df5c56 100644 --- a/client/rpc/src/lib.rs +++ b/client/rpc/src/lib.rs @@ -287,24 +287,29 @@ pub mod frontier_backend_client { } } -pub fn err(code: i32, message: T, data: Option<&[u8]>) -> jsonrpsee::core::Error { - jsonrpsee::core::Error::Call(jsonrpsee::types::error::CallError::Custom( - jsonrpsee::types::error::ErrorObject::owned( - code, - message.to_string(), - data.map(|bytes| { - jsonrpsee::core::to_json_raw_value(&format!("0x{}", hex::encode(bytes))) - .expect("fail to serialize data") - }), - ), - )) +pub fn err( + code: i32, + message: T, + data: Option<&[u8]>, +) -> jsonrpsee::types::error::ErrorObjectOwned { + jsonrpsee::types::error::ErrorObject::owned( + code, + message.to_string(), + data.map(|bytes| { + jsonrpsee::core::to_json_raw_value(&format!("0x{}", hex::encode(bytes))) + .expect("fail to serialize data") + }), + ) } -pub fn internal_err(message: T) -> jsonrpsee::core::Error { +pub fn internal_err(message: T) -> jsonrpsee::types::error::ErrorObjectOwned { err(jsonrpsee::types::error::INTERNAL_ERROR_CODE, message, None) } -pub fn internal_err_with_data(message: T, data: &[u8]) -> jsonrpsee::core::Error { +pub fn internal_err_with_data( + message: T, + data: &[u8], +) -> jsonrpsee::types::error::ErrorObjectOwned { err( jsonrpsee::types::error::INTERNAL_ERROR_CODE, message, diff --git a/client/rpc/src/signer.rs b/client/rpc/src/signer.rs index c1c90fb4a0..cf3ddae099 100644 --- a/client/rpc/src/signer.rs +++ b/client/rpc/src/signer.rs @@ -18,7 +18,7 @@ use ethereum::TransactionV2 as EthereumTransaction; use ethereum_types::{H160, H256}; -use jsonrpsee::core::Error; +use jsonrpsee::types::ErrorObjectOwned; // Substrate use sp_core::hashing::keccak_256; // Frontier @@ -35,7 +35,7 @@ pub trait EthSigner: Send + Sync { &self, message: TransactionMessage, address: &H160, - ) -> Result; + ) -> Result; } pub struct EthDevSigner { @@ -75,7 +75,7 @@ impl EthSigner for EthDevSigner { &self, message: TransactionMessage, address: &H160, - ) -> Result { + ) -> Result { let mut transaction = None; for secret in &self.keys { diff --git a/docs/yarn.lock b/docs/yarn.lock index 09110ddd21..16a4534c44 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -3894,9 +3894,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== + version "1.15.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" + integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== for-in@^1.0.2: version "1.0.2" @@ -4578,9 +4578,9 @@ ip-regex@^2.1.0: integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + version "1.1.9" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" + integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" diff --git a/frame/ethereum/src/mock.rs b/frame/ethereum/src/mock.rs index 3734bc42de..814d5e9551 100644 --- a/frame/ethereum/src/mock.rs +++ b/frame/ethereum/src/mock.rs @@ -101,7 +101,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; - type MaxHolds = ConstU32<5>; type MaxFreezes = ConstU32<1>; } diff --git a/frame/evm/precompile/dispatch/src/mock.rs b/frame/evm/precompile/dispatch/src/mock.rs index fb90ce6a08..01a66d779d 100644 --- a/frame/evm/precompile/dispatch/src/mock.rs +++ b/frame/evm/precompile/dispatch/src/mock.rs @@ -98,7 +98,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/frame/evm/src/mock.rs b/frame/evm/src/mock.rs index 33c7e22154..1249f62620 100644 --- a/frame/evm/src/mock.rs +++ b/frame/evm/src/mock.rs @@ -91,7 +91,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/precompiles/src/solidity/codec/xcm.rs b/precompiles/src/solidity/codec/xcm.rs index 9e387aa9c8..e3cdc2ca0d 100644 --- a/precompiles/src/solidity/codec/xcm.rs +++ b/precompiles/src/solidity/codec/xcm.rs @@ -25,7 +25,7 @@ use frame_support::{ensure, traits::ConstU32}; use sp_core::H256; use sp_std::vec::Vec; use sp_weights::Weight; -use xcm::latest::{Junction, Junctions, MultiLocation, NetworkId}; +use xcm::latest::{Junction, Junctions, Location, NetworkId}; use crate::solidity::{ codec::{bytes::*, Codec, Reader, Writer}, @@ -358,12 +358,12 @@ impl Codec for Junctions { } // Cannot used derive macro since it is a foreign struct. -impl Codec for MultiLocation { +impl Codec for Location { fn read(reader: &mut Reader) -> MayRevert { let (parents, interior) = reader .read() .map_in_tuple_to_field(&["parents", "interior"])?; - Ok(MultiLocation { parents, interior }) + Ok(Location { parents, interior }) } fn write(writer: &mut Writer, value: Self) { diff --git a/precompiles/tests-external/lib.rs b/precompiles/tests-external/lib.rs index 471f535075..42a7682f91 100644 --- a/precompiles/tests-external/lib.rs +++ b/precompiles/tests-external/lib.rs @@ -101,7 +101,6 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/primitives/account/src/lib.rs b/primitives/account/src/lib.rs index fe6906f99c..ee05acec9e 100644 --- a/primitives/account/src/lib.rs +++ b/primitives/account/src/lib.rs @@ -20,8 +20,9 @@ use scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; // Substrate -use sp_core::{ecdsa, RuntimeDebug, H160, H256}; +use sp_core::{crypto::AccountId32, ecdsa, RuntimeDebug, H160, H256}; use sp_io::hashing::keccak_256; +use sp_runtime::MultiSignature; use sp_runtime_interface::pass_by::PassByInner; /// A fully Ethereum-compatible `AccountId`. @@ -159,6 +160,13 @@ impl From<[u8; 32]> for AccountId20 { } } +impl From for AccountId20 { + fn from(account: AccountId32) -> Self { + let bytes: &[u8; 32] = account.as_ref(); + Self::from(*bytes) + } +} + #[derive(Eq, PartialEq, Clone, RuntimeDebug, Encode, Decode, TypeInfo)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct EthereumSignature(ecdsa::Signature); @@ -185,9 +193,23 @@ impl sp_runtime::traits::Verify for EthereumSignature { } } +impl From for EthereumSignature { + fn from(signature: MultiSignature) -> Self { + match signature { + MultiSignature::Ed25519(_) => { + panic!("Ed25519 not supported for EthereumSignature") + } + MultiSignature::Sr25519(_) => { + panic!("Sr25519 not supported for EthereumSignature") + } + MultiSignature::Ecdsa(sig) => Self(sig), + } + } +} + impl EthereumSignature { pub fn new(s: ecdsa::Signature) -> Self { - EthereumSignature(s) + Self(s) } } diff --git a/template/examples/contract-erc20/truffle/package-lock.json b/template/examples/contract-erc20/truffle/package-lock.json index dfc6eee70d..12a0c47f41 100644 --- a/template/examples/contract-erc20/truffle/package-lock.json +++ b/template/examples/contract-erc20/truffle/package-lock.json @@ -1467,9 +1467,9 @@ } }, "apollo-server-core": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.0.tgz", - "integrity": "sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.1.tgz", + "integrity": "sha512-9SF5WAkkV0FZQ2HVUWI9Jada1U0jg7e8NCN9EklbtvaCeUlOLyXyM+KCWuZ7+dqHxjshbtcwylPHutt3uzoNkw==", "optional": true, "requires": { "@apollo/utils.keyvaluecache": "^1.0.1", @@ -1498,9 +1498,9 @@ }, "dependencies": { "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "optional": true } } @@ -3034,9 +3034,9 @@ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "optional": true }, "for-each": { diff --git a/template/node/src/service.rs b/template/node/src/service.rs index 611f10e2c4..c6c856f931 100644 --- a/template/node/src/service.rs +++ b/template/node/src/service.rs @@ -8,7 +8,7 @@ use prometheus_endpoint::Registry; use sc_client_api::{Backend, BlockBackend}; use sc_consensus::BasicQueue; use sc_executor::NativeExecutionDispatch; -use sc_network_sync::warp::{WarpSyncParams, WarpSyncProvider}; +use sc_network_sync::strategy::warp::{WarpSyncParams, WarpSyncProvider}; use sc_service::{error::Error as ServiceError, Configuration, PartialComponents, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; diff --git a/template/runtime/src/lib.rs b/template/runtime/src/lib.rs index 7b10f60b05..9684ebf008 100644 --- a/template/runtime/src/lib.rs +++ b/template/runtime/src/lib.rs @@ -280,7 +280,6 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; - type MaxHolds = ConstU32<5>; type MaxFreezes = ConstU32<1>; } diff --git a/ts-tests/package-lock.json b/ts-tests/package-lock.json index 784f259142..83763f549e 100644 --- a/ts-tests/package-lock.json +++ b/ts-tests/package-lock.json @@ -4310,9 +4310,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "funding": [ { "type": "individual", @@ -13310,9 +13310,9 @@ } }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "optional": true }, "for-each": { diff --git a/ts-tests/tests/test-execute.ts b/ts-tests/tests/test-execute.ts index aef7adf3a9..afbf731588 100644 --- a/ts-tests/tests/test-execute.ts +++ b/ts-tests/tests/test-execute.ts @@ -261,6 +261,6 @@ describeWithFrontier("Frontier RPC (RPC execution)", (context) => { input: "0x12345678", }, ]); - expect((result as any).error.message).to.match(/^Ambiguous value for `data` and `input`/); + expect(result.error.data).to.match(/^Ambiguous value for `data` and `input`/); }); });
, client: Arc, sync: Arc>, - subscriptions: SubscriptionTaskExecutor, + executor: SubscriptionTaskExecutor, overrides: Arc>, starting_block: u64, pubsub_notification_sinks: Arc>>, _marker: PhantomData, } +impl Clone for EthPubSub { + fn clone(&self) -> Self { + Self { + pool: self.pool.clone(), + client: self.client.clone(), + sync: self.sync.clone(), + executor: self.executor.clone(), + overrides: self.overrides.clone(), + starting_block: self.starting_block, + pubsub_notification_sinks: self.pubsub_notification_sinks.clone(), + _marker: PhantomData::, + } + } +} + impl EthPubSub where - C: HeaderBackend, + P: TransactionPool + 'static, + C: ProvideRuntimeApi, + C::Api: EthereumRuntimeRPCApi, + C: HeaderBackend + StorageProvider, + BE: Backend + 'static, { pub fn new( pool: Arc, client: Arc, sync: Arc>, - subscriptions: SubscriptionTaskExecutor, + executor: SubscriptionTaskExecutor, overrides: Arc>, pubsub_notification_sinks: Arc< EthereumBlockNotificationSinks>, >, ) -> Self { // Capture the best block as seen on initialization. Used for syncing subscriptions. - let starting_block = - UniqueSaturatedInto::::unique_saturated_into(client.info().best_number); + let best_number = client.info().best_number; + let starting_block = UniqueSaturatedInto::::unique_saturated_into(best_number); Self { pool, client, sync, - subscriptions, + executor, overrides, starting_block, pubsub_notification_sinks, _marker: PhantomData, } } -} -struct EthSubscriptionResult; -impl EthSubscriptionResult { - pub fn new_heads(block: EthereumBlock) -> PubSubResult { - PubSubResult::Header(Box::new(Rich { - inner: Header { - hash: Some(H256::from(keccak_256(&rlp::encode(&block.header)))), - parent_hash: block.header.parent_hash, - uncles_hash: block.header.ommers_hash, - author: block.header.beneficiary, - miner: Some(block.header.beneficiary), - state_root: block.header.state_root, - transactions_root: block.header.transactions_root, - receipts_root: block.header.receipts_root, - number: Some(block.header.number), - gas_used: block.header.gas_used, - gas_limit: block.header.gas_limit, - extra_data: Bytes(block.header.extra_data.clone()), - logs_bloom: block.header.logs_bloom, - timestamp: U256::from(block.header.timestamp), - difficulty: block.header.difficulty, - nonce: Some(block.header.nonce), - size: Some(U256::from(rlp::encode(&block.header).len() as u32)), - }, - extra_info: BTreeMap::new(), - })) + fn notify_header( + &self, + notification: EthereumBlockNotification, + ) -> future::Ready> { + let res = if notification.is_new_best { + let schema = fc_storage::onchain_storage_schema(&*self.client, notification.hash); + let handler = self + .overrides + .schemas + .get(&schema) + .unwrap_or(&self.overrides.fallback); + handler.current_block(notification.hash) + } else { + None + }; + future::ready(res.map(PubSubResult::header)) } - pub fn logs( - block: EthereumBlock, - receipts: Vec, + + fn notify_logs( + &self, + notification: EthereumBlockNotification, params: &FilteredParams, - ) -> Vec { - let block_hash = H256::from(keccak_256(&rlp::encode(&block.header))); - let mut logs: Vec = vec![]; - let mut log_index: u32 = 0; - for (receipt_index, receipt) in receipts.into_iter().enumerate() { - let receipt_logs = match receipt { - ethereum::ReceiptV3::Legacy(d) - | ethereum::ReceiptV3::EIP2930(d) - | ethereum::ReceiptV3::EIP1559(d) => d.logs, + ) -> future::Ready>> { + let res = if notification.is_new_best { + let substrate_hash = notification.hash; + + let schema = fc_storage::onchain_storage_schema(&*self.client, substrate_hash); + let handler = self + .overrides + .schemas + .get(&schema) + .unwrap_or(&self.overrides.fallback); + + let block = handler.current_block(substrate_hash); + let receipts = handler.current_receipts(substrate_hash); + + match (block, receipts) { + (Some(block), Some(receipts)) => Some((block, receipts)), + _ => None, + } + } else { + None + }; + future::ready(res.map(|(block, receipts)| PubSubResult::logs(block, receipts, params))) + } + + fn pending_transaction(&self, hash: &TxHash) -> future::Ready> { + let res = if let Some(xt) = self.pool.ready_transaction(hash) { + let best_block = self.client.info().best_hash; + + let api = self.client.runtime_api(); + + let api_version = if let Ok(Some(api_version)) = + api.api_version::>(best_block) + { + api_version + } else { + return future::ready(None); }; - let mut transaction_log_index: u32 = 0; - let transaction_hash: Option = if receipt_logs.len() > 0 { - Some(block.transactions[receipt_index].hash()) + + let xts = vec![xt.data().clone()]; + + let txs: Option> = if api_version > 1 { + api.extrinsic_filter(best_block, xts).ok() } else { - None + #[allow(deprecated)] + if let Ok(legacy) = api.extrinsic_filter_before_version_2(best_block, xts) { + Some(legacy.into_iter().map(|tx| tx.into()).collect()) + } else { + None + } }; - for log in receipt_logs { - if Self::add_log(block_hash, &log, &block, params) { - logs.push(Log { - address: log.address, - topics: log.topics, - data: Bytes(log.data), - block_hash: Some(block_hash), - block_number: Some(block.header.number), - transaction_hash, - transaction_index: Some(U256::from(receipt_index)), - log_index: Some(U256::from(log_index)), - transaction_log_index: Some(U256::from(transaction_log_index)), - removed: false, - }); + + match txs { + Some(txs) => { + if txs.len() == 1 { + Some(txs[0].clone()) + } else { + None + } } - log_index += 1; - transaction_log_index += 1; + _ => None, } - } - logs - } - fn add_log( - block_hash: H256, - ethereum_log: ðereum::Log, - block: &EthereumBlock, - params: &FilteredParams, - ) -> bool { - let log = Log { - address: ethereum_log.address, - topics: ethereum_log.topics.clone(), - data: Bytes(ethereum_log.data.clone()), - block_hash: None, - block_number: None, - transaction_hash: None, - transaction_index: None, - log_index: None, - transaction_log_index: None, - removed: false, + } else { + None }; - if params.filter.is_some() { - let block_number = - UniqueSaturatedInto::::unique_saturated_into(block.header.number); - if !params.filter_block_range(block_number) - || !params.filter_block_hash(block_hash) - || !params.filter_address(&log) - || !params.filter_topics(&log) - { - return false; - } + future::ready(res.map(|tx| PubSubResult::transaction_hash(&tx))) + } + + async fn syncing_status(&self) -> PubSubSyncing { + if self.sync.is_major_syncing() { + // Best imported block. + let current_number = self.client.info().best_number; + // Get the target block to sync. + let highest_number = self.sync.best_seen_block().await.ok().flatten(); + + PubSubSyncing::Syncing(SyncingStatus { + starting_block: self.starting_block, + current_block: UniqueSaturatedInto::::unique_saturated_into(current_number), + highest_block: highest_number + .map(UniqueSaturatedInto::::unique_saturated_into), + }) + } else { + PubSubSyncing::Synced(false) } - true } } @@ -208,198 +234,64 @@ where C: HeaderBackend + StorageProvider, BE: Backend + 'static, { - fn subscribe( - &self, - mut sink: SubscriptionSink, - kind: Kind, - params: Option, - ) -> SubscriptionResult { - sink.accept()?; - + fn subscribe(&self, pending: PendingSubscriptionSink, kind: Kind, params: Option) { let filtered_params = match params { Some(Params::Logs(filter)) => FilteredParams::new(Some(filter)), _ => FilteredParams::default(), }; - let client = self.client.clone(); + let pubsub = self.clone(); // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. let (inner_sink, block_notification_stream) = sc_utils::mpsc::tracing_unbounded("pubsub_notification_stream", 100_000); self.pubsub_notification_sinks.lock().push(inner_sink); - let pool = self.pool.clone(); - let sync = self.sync.clone(); - let overrides = self.overrides.clone(); - let starting_block = self.starting_block; + let fut = async move { match kind { - Kind::Logs => { + Kind::NewHeads => { let stream = block_notification_stream - .filter_map(move |notification| { - if notification.is_new_best { - let substrate_hash = notification.hash; - - let schema = fc_storage::onchain_storage_schema( - client.as_ref(), - substrate_hash, - ); - let handler = overrides - .schemas - .get(&schema) - .unwrap_or(&overrides.fallback); - - let block = handler.current_block(substrate_hash); - let receipts = handler.current_receipts(substrate_hash); - - match (receipts, block) { - (Some(receipts), Some(block)) => { - futures::future::ready(Some((block, receipts))) - } - _ => futures::future::ready(None), - } - } else { - futures::future::ready(None) - } - }) - .flat_map(move |(block, receipts)| { - futures::stream::iter(EthSubscriptionResult::logs( - block, - receipts, - &filtered_params, - )) - }) - .map(|x| PubSubResult::Log(Box::new(x))); - sink.pipe_from_stream(stream).await; + .filter_map(move |notification| pubsub.notify_header(notification)); + pipe_from_stream(pending, stream).await } - Kind::NewHeads => { + Kind::Logs => { let stream = block_notification_stream .filter_map(move |notification| { - if notification.is_new_best { - let schema = fc_storage::onchain_storage_schema( - client.as_ref(), - notification.hash, - ); - let handler = overrides - .schemas - .get(&schema) - .unwrap_or(&overrides.fallback); - - let block = handler.current_block(notification.hash); - futures::future::ready(block) - } else { - futures::future::ready(None) - } + pubsub.notify_logs(notification, &filtered_params) }) - .map(EthSubscriptionResult::new_heads); - sink.pipe_from_stream(stream).await; + .flat_map(futures::stream::iter); + pipe_from_stream(pending, stream).await } Kind::NewPendingTransactions => { - use sc_transaction_pool_api::InPoolTransaction; - + let pool = pubsub.pool.clone(); let stream = pool .import_notification_stream() - .filter_map(move |txhash| { - if let Some(xt) = pool.ready_transaction(&txhash) { - let best_block = client.info().best_hash; - - let api = client.runtime_api(); - - let api_version = if let Ok(Some(api_version)) = - api.api_version::>(best_block) - { - api_version - } else { - return futures::future::ready(None); - }; - - let xts = vec![xt.data().clone()]; - - let txs: Option> = if api_version > 1 { - api.extrinsic_filter(best_block, xts).ok() - } else { - #[allow(deprecated)] - if let Ok(legacy) = - api.extrinsic_filter_before_version_2(best_block, xts) - { - Some(legacy.into_iter().map(|tx| tx.into()).collect()) - } else { - None - } - }; - - let res = match txs { - Some(txs) => { - if txs.len() == 1 { - Some(txs[0].clone()) - } else { - None - } - } - _ => None, - }; - futures::future::ready(res) - } else { - futures::future::ready(None) - } - }) - .map(|transaction| PubSubResult::TransactionHash(transaction.hash())); - sink.pipe_from_stream(stream).await; + .filter_map(move |hash| pubsub.pending_transaction(&hash)); + pipe_from_stream(pending, stream).await; } Kind::Syncing => { - let client = Arc::clone(&client); - let sync = Arc::clone(&sync); - // Gets the node syncing status. - // The response is expected to be serialized either as a plain boolean - // if the node is not syncing, or a structure containing syncing metadata - // in case it is. - async fn status, B: BlockT>( - client: Arc, - sync: Arc>, - starting_block: u64, - ) -> PubSubSyncStatus { - if sync.is_major_syncing() { - // Get the target block to sync. - // This value is only exposed through substrate async Api - // in the `NetworkService`. - let highest_block = sync - .status() - .await - .ok() - .and_then(|res| res.best_seen_block) - .map(UniqueSaturatedInto::::unique_saturated_into); - // Best imported block. - let current_block = UniqueSaturatedInto::::unique_saturated_into( - client.info().best_number, - ); - - PubSubSyncStatus::Detailed(SyncStatusMetadata { - syncing: true, - starting_block, - current_block, - highest_block, - }) - } else { - PubSubSyncStatus::Simple(false) - } - } + let Ok(sink) = pending.accept().await else { + return; + }; // On connection subscriber expects a value. // Because import notifications are only emitted when the node is synced or // in case of reorg, the first event is emitted right away. - let _ = sink.send(&PubSubResult::SyncState( - status(Arc::clone(&client), Arc::clone(&sync), starting_block).await, - )); + let syncing_status = pubsub.syncing_status().await; + let msg = to_sub_message(&sink, &PubSubResult::SyncingStatus(syncing_status)); + let _ = sink.send(msg).await; // When the node is not under a major syncing (i.e. from genesis), react // normally to import notifications. // // Only send new notifications down the pipe when the syncing status changed. - let mut stream = client.clone().import_notification_stream(); - let mut last_syncing_status = sync.is_major_syncing(); + let mut stream = pubsub.client.import_notification_stream(); + let mut last_syncing_status = pubsub.sync.is_major_syncing(); while (stream.next().await).is_some() { - let syncing_status = sync.is_major_syncing(); + let syncing_status = pubsub.sync.is_major_syncing(); if syncing_status != last_syncing_status { - let _ = sink.send(&PubSubResult::SyncState( - status(client.clone(), sync.clone(), starting_block).await, - )); + let syncing_status = pubsub.syncing_status().await; + let msg = + to_sub_message(&sink, &PubSubResult::SyncingStatus(syncing_status)); + let _ = sink.send(msg).await; } last_syncing_status = syncing_status; } @@ -407,11 +299,8 @@ where } } .boxed(); - self.subscriptions.spawn( - "frontier-rpc-subscription", - Some("rpc"), - fut.map(drop).boxed(), - ); - Ok(()) + + self.executor + .spawn("frontier-rpc-subscription", Some("rpc"), fut); } } diff --git a/client/rpc/src/lib.rs b/client/rpc/src/lib.rs index 7942c9dd3d..afc7df5c56 100644 --- a/client/rpc/src/lib.rs +++ b/client/rpc/src/lib.rs @@ -287,24 +287,29 @@ pub mod frontier_backend_client { } } -pub fn err(code: i32, message: T, data: Option<&[u8]>) -> jsonrpsee::core::Error { - jsonrpsee::core::Error::Call(jsonrpsee::types::error::CallError::Custom( - jsonrpsee::types::error::ErrorObject::owned( - code, - message.to_string(), - data.map(|bytes| { - jsonrpsee::core::to_json_raw_value(&format!("0x{}", hex::encode(bytes))) - .expect("fail to serialize data") - }), - ), - )) +pub fn err( + code: i32, + message: T, + data: Option<&[u8]>, +) -> jsonrpsee::types::error::ErrorObjectOwned { + jsonrpsee::types::error::ErrorObject::owned( + code, + message.to_string(), + data.map(|bytes| { + jsonrpsee::core::to_json_raw_value(&format!("0x{}", hex::encode(bytes))) + .expect("fail to serialize data") + }), + ) } -pub fn internal_err(message: T) -> jsonrpsee::core::Error { +pub fn internal_err(message: T) -> jsonrpsee::types::error::ErrorObjectOwned { err(jsonrpsee::types::error::INTERNAL_ERROR_CODE, message, None) } -pub fn internal_err_with_data(message: T, data: &[u8]) -> jsonrpsee::core::Error { +pub fn internal_err_with_data( + message: T, + data: &[u8], +) -> jsonrpsee::types::error::ErrorObjectOwned { err( jsonrpsee::types::error::INTERNAL_ERROR_CODE, message, diff --git a/client/rpc/src/signer.rs b/client/rpc/src/signer.rs index c1c90fb4a0..cf3ddae099 100644 --- a/client/rpc/src/signer.rs +++ b/client/rpc/src/signer.rs @@ -18,7 +18,7 @@ use ethereum::TransactionV2 as EthereumTransaction; use ethereum_types::{H160, H256}; -use jsonrpsee::core::Error; +use jsonrpsee::types::ErrorObjectOwned; // Substrate use sp_core::hashing::keccak_256; // Frontier @@ -35,7 +35,7 @@ pub trait EthSigner: Send + Sync { &self, message: TransactionMessage, address: &H160, - ) -> Result; + ) -> Result; } pub struct EthDevSigner { @@ -75,7 +75,7 @@ impl EthSigner for EthDevSigner { &self, message: TransactionMessage, address: &H160, - ) -> Result { + ) -> Result { let mut transaction = None; for secret in &self.keys { diff --git a/docs/yarn.lock b/docs/yarn.lock index 09110ddd21..16a4534c44 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -3894,9 +3894,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== + version "1.15.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" + integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== for-in@^1.0.2: version "1.0.2" @@ -4578,9 +4578,9 @@ ip-regex@^2.1.0: integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + version "1.1.9" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" + integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" diff --git a/frame/ethereum/src/mock.rs b/frame/ethereum/src/mock.rs index 3734bc42de..814d5e9551 100644 --- a/frame/ethereum/src/mock.rs +++ b/frame/ethereum/src/mock.rs @@ -101,7 +101,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; - type MaxHolds = ConstU32<5>; type MaxFreezes = ConstU32<1>; } diff --git a/frame/evm/precompile/dispatch/src/mock.rs b/frame/evm/precompile/dispatch/src/mock.rs index fb90ce6a08..01a66d779d 100644 --- a/frame/evm/precompile/dispatch/src/mock.rs +++ b/frame/evm/precompile/dispatch/src/mock.rs @@ -98,7 +98,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/frame/evm/src/mock.rs b/frame/evm/src/mock.rs index 33c7e22154..1249f62620 100644 --- a/frame/evm/src/mock.rs +++ b/frame/evm/src/mock.rs @@ -91,7 +91,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/precompiles/src/solidity/codec/xcm.rs b/precompiles/src/solidity/codec/xcm.rs index 9e387aa9c8..e3cdc2ca0d 100644 --- a/precompiles/src/solidity/codec/xcm.rs +++ b/precompiles/src/solidity/codec/xcm.rs @@ -25,7 +25,7 @@ use frame_support::{ensure, traits::ConstU32}; use sp_core::H256; use sp_std::vec::Vec; use sp_weights::Weight; -use xcm::latest::{Junction, Junctions, MultiLocation, NetworkId}; +use xcm::latest::{Junction, Junctions, Location, NetworkId}; use crate::solidity::{ codec::{bytes::*, Codec, Reader, Writer}, @@ -358,12 +358,12 @@ impl Codec for Junctions { } // Cannot used derive macro since it is a foreign struct. -impl Codec for MultiLocation { +impl Codec for Location { fn read(reader: &mut Reader) -> MayRevert { let (parents, interior) = reader .read() .map_in_tuple_to_field(&["parents", "interior"])?; - Ok(MultiLocation { parents, interior }) + Ok(Location { parents, interior }) } fn write(writer: &mut Writer, value: Self) { diff --git a/precompiles/tests-external/lib.rs b/precompiles/tests-external/lib.rs index 471f535075..42a7682f91 100644 --- a/precompiles/tests-external/lib.rs +++ b/precompiles/tests-external/lib.rs @@ -101,7 +101,6 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/primitives/account/src/lib.rs b/primitives/account/src/lib.rs index fe6906f99c..ee05acec9e 100644 --- a/primitives/account/src/lib.rs +++ b/primitives/account/src/lib.rs @@ -20,8 +20,9 @@ use scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; // Substrate -use sp_core::{ecdsa, RuntimeDebug, H160, H256}; +use sp_core::{crypto::AccountId32, ecdsa, RuntimeDebug, H160, H256}; use sp_io::hashing::keccak_256; +use sp_runtime::MultiSignature; use sp_runtime_interface::pass_by::PassByInner; /// A fully Ethereum-compatible `AccountId`. @@ -159,6 +160,13 @@ impl From<[u8; 32]> for AccountId20 { } } +impl From for AccountId20 { + fn from(account: AccountId32) -> Self { + let bytes: &[u8; 32] = account.as_ref(); + Self::from(*bytes) + } +} + #[derive(Eq, PartialEq, Clone, RuntimeDebug, Encode, Decode, TypeInfo)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct EthereumSignature(ecdsa::Signature); @@ -185,9 +193,23 @@ impl sp_runtime::traits::Verify for EthereumSignature { } } +impl From for EthereumSignature { + fn from(signature: MultiSignature) -> Self { + match signature { + MultiSignature::Ed25519(_) => { + panic!("Ed25519 not supported for EthereumSignature") + } + MultiSignature::Sr25519(_) => { + panic!("Sr25519 not supported for EthereumSignature") + } + MultiSignature::Ecdsa(sig) => Self(sig), + } + } +} + impl EthereumSignature { pub fn new(s: ecdsa::Signature) -> Self { - EthereumSignature(s) + Self(s) } } diff --git a/template/examples/contract-erc20/truffle/package-lock.json b/template/examples/contract-erc20/truffle/package-lock.json index dfc6eee70d..12a0c47f41 100644 --- a/template/examples/contract-erc20/truffle/package-lock.json +++ b/template/examples/contract-erc20/truffle/package-lock.json @@ -1467,9 +1467,9 @@ } }, "apollo-server-core": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.0.tgz", - "integrity": "sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.1.tgz", + "integrity": "sha512-9SF5WAkkV0FZQ2HVUWI9Jada1U0jg7e8NCN9EklbtvaCeUlOLyXyM+KCWuZ7+dqHxjshbtcwylPHutt3uzoNkw==", "optional": true, "requires": { "@apollo/utils.keyvaluecache": "^1.0.1", @@ -1498,9 +1498,9 @@ }, "dependencies": { "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "optional": true } } @@ -3034,9 +3034,9 @@ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "optional": true }, "for-each": { diff --git a/template/node/src/service.rs b/template/node/src/service.rs index 611f10e2c4..c6c856f931 100644 --- a/template/node/src/service.rs +++ b/template/node/src/service.rs @@ -8,7 +8,7 @@ use prometheus_endpoint::Registry; use sc_client_api::{Backend, BlockBackend}; use sc_consensus::BasicQueue; use sc_executor::NativeExecutionDispatch; -use sc_network_sync::warp::{WarpSyncParams, WarpSyncProvider}; +use sc_network_sync::strategy::warp::{WarpSyncParams, WarpSyncProvider}; use sc_service::{error::Error as ServiceError, Configuration, PartialComponents, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; diff --git a/template/runtime/src/lib.rs b/template/runtime/src/lib.rs index 7b10f60b05..9684ebf008 100644 --- a/template/runtime/src/lib.rs +++ b/template/runtime/src/lib.rs @@ -280,7 +280,6 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; - type MaxHolds = ConstU32<5>; type MaxFreezes = ConstU32<1>; } diff --git a/ts-tests/package-lock.json b/ts-tests/package-lock.json index 784f259142..83763f549e 100644 --- a/ts-tests/package-lock.json +++ b/ts-tests/package-lock.json @@ -4310,9 +4310,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "funding": [ { "type": "individual", @@ -13310,9 +13310,9 @@ } }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "optional": true }, "for-each": { diff --git a/ts-tests/tests/test-execute.ts b/ts-tests/tests/test-execute.ts index aef7adf3a9..afbf731588 100644 --- a/ts-tests/tests/test-execute.ts +++ b/ts-tests/tests/test-execute.ts @@ -261,6 +261,6 @@ describeWithFrontier("Frontier RPC (RPC execution)", (context) => { input: "0x12345678", }, ]); - expect((result as any).error.message).to.match(/^Ambiguous value for `data` and `input`/); + expect(result.error.data).to.match(/^Ambiguous value for `data` and `input`/); }); });
, client: Arc, sync: Arc>, - subscriptions: SubscriptionTaskExecutor, + executor: SubscriptionTaskExecutor, overrides: Arc>, pubsub_notification_sinks: Arc< EthereumBlockNotificationSinks>, >, ) -> Self { // Capture the best block as seen on initialization. Used for syncing subscriptions. - let starting_block = - UniqueSaturatedInto::::unique_saturated_into(client.info().best_number); + let best_number = client.info().best_number; + let starting_block = UniqueSaturatedInto::::unique_saturated_into(best_number); Self { pool, client, sync, - subscriptions, + executor, overrides, starting_block, pubsub_notification_sinks, _marker: PhantomData, } } -} -struct EthSubscriptionResult; -impl EthSubscriptionResult { - pub fn new_heads(block: EthereumBlock) -> PubSubResult { - PubSubResult::Header(Box::new(Rich { - inner: Header { - hash: Some(H256::from(keccak_256(&rlp::encode(&block.header)))), - parent_hash: block.header.parent_hash, - uncles_hash: block.header.ommers_hash, - author: block.header.beneficiary, - miner: Some(block.header.beneficiary), - state_root: block.header.state_root, - transactions_root: block.header.transactions_root, - receipts_root: block.header.receipts_root, - number: Some(block.header.number), - gas_used: block.header.gas_used, - gas_limit: block.header.gas_limit, - extra_data: Bytes(block.header.extra_data.clone()), - logs_bloom: block.header.logs_bloom, - timestamp: U256::from(block.header.timestamp), - difficulty: block.header.difficulty, - nonce: Some(block.header.nonce), - size: Some(U256::from(rlp::encode(&block.header).len() as u32)), - }, - extra_info: BTreeMap::new(), - })) + fn notify_header( + &self, + notification: EthereumBlockNotification, + ) -> future::Ready> { + let res = if notification.is_new_best { + let schema = fc_storage::onchain_storage_schema(&*self.client, notification.hash); + let handler = self + .overrides + .schemas + .get(&schema) + .unwrap_or(&self.overrides.fallback); + handler.current_block(notification.hash) + } else { + None + }; + future::ready(res.map(PubSubResult::header)) } - pub fn logs( - block: EthereumBlock, - receipts: Vec, + + fn notify_logs( + &self, + notification: EthereumBlockNotification, params: &FilteredParams, - ) -> Vec { - let block_hash = H256::from(keccak_256(&rlp::encode(&block.header))); - let mut logs: Vec = vec![]; - let mut log_index: u32 = 0; - for (receipt_index, receipt) in receipts.into_iter().enumerate() { - let receipt_logs = match receipt { - ethereum::ReceiptV3::Legacy(d) - | ethereum::ReceiptV3::EIP2930(d) - | ethereum::ReceiptV3::EIP1559(d) => d.logs, + ) -> future::Ready>> { + let res = if notification.is_new_best { + let substrate_hash = notification.hash; + + let schema = fc_storage::onchain_storage_schema(&*self.client, substrate_hash); + let handler = self + .overrides + .schemas + .get(&schema) + .unwrap_or(&self.overrides.fallback); + + let block = handler.current_block(substrate_hash); + let receipts = handler.current_receipts(substrate_hash); + + match (block, receipts) { + (Some(block), Some(receipts)) => Some((block, receipts)), + _ => None, + } + } else { + None + }; + future::ready(res.map(|(block, receipts)| PubSubResult::logs(block, receipts, params))) + } + + fn pending_transaction(&self, hash: &TxHash) -> future::Ready> { + let res = if let Some(xt) = self.pool.ready_transaction(hash) { + let best_block = self.client.info().best_hash; + + let api = self.client.runtime_api(); + + let api_version = if let Ok(Some(api_version)) = + api.api_version::>(best_block) + { + api_version + } else { + return future::ready(None); }; - let mut transaction_log_index: u32 = 0; - let transaction_hash: Option = if receipt_logs.len() > 0 { - Some(block.transactions[receipt_index].hash()) + + let xts = vec![xt.data().clone()]; + + let txs: Option> = if api_version > 1 { + api.extrinsic_filter(best_block, xts).ok() } else { - None + #[allow(deprecated)] + if let Ok(legacy) = api.extrinsic_filter_before_version_2(best_block, xts) { + Some(legacy.into_iter().map(|tx| tx.into()).collect()) + } else { + None + } }; - for log in receipt_logs { - if Self::add_log(block_hash, &log, &block, params) { - logs.push(Log { - address: log.address, - topics: log.topics, - data: Bytes(log.data), - block_hash: Some(block_hash), - block_number: Some(block.header.number), - transaction_hash, - transaction_index: Some(U256::from(receipt_index)), - log_index: Some(U256::from(log_index)), - transaction_log_index: Some(U256::from(transaction_log_index)), - removed: false, - }); + + match txs { + Some(txs) => { + if txs.len() == 1 { + Some(txs[0].clone()) + } else { + None + } } - log_index += 1; - transaction_log_index += 1; + _ => None, } - } - logs - } - fn add_log( - block_hash: H256, - ethereum_log: ðereum::Log, - block: &EthereumBlock, - params: &FilteredParams, - ) -> bool { - let log = Log { - address: ethereum_log.address, - topics: ethereum_log.topics.clone(), - data: Bytes(ethereum_log.data.clone()), - block_hash: None, - block_number: None, - transaction_hash: None, - transaction_index: None, - log_index: None, - transaction_log_index: None, - removed: false, + } else { + None }; - if params.filter.is_some() { - let block_number = - UniqueSaturatedInto::::unique_saturated_into(block.header.number); - if !params.filter_block_range(block_number) - || !params.filter_block_hash(block_hash) - || !params.filter_address(&log) - || !params.filter_topics(&log) - { - return false; - } + future::ready(res.map(|tx| PubSubResult::transaction_hash(&tx))) + } + + async fn syncing_status(&self) -> PubSubSyncing { + if self.sync.is_major_syncing() { + // Best imported block. + let current_number = self.client.info().best_number; + // Get the target block to sync. + let highest_number = self.sync.best_seen_block().await.ok().flatten(); + + PubSubSyncing::Syncing(SyncingStatus { + starting_block: self.starting_block, + current_block: UniqueSaturatedInto::::unique_saturated_into(current_number), + highest_block: highest_number + .map(UniqueSaturatedInto::::unique_saturated_into), + }) + } else { + PubSubSyncing::Synced(false) } - true } } @@ -208,198 +234,64 @@ where C: HeaderBackend + StorageProvider, BE: Backend + 'static, { - fn subscribe( - &self, - mut sink: SubscriptionSink, - kind: Kind, - params: Option, - ) -> SubscriptionResult { - sink.accept()?; - + fn subscribe(&self, pending: PendingSubscriptionSink, kind: Kind, params: Option) { let filtered_params = match params { Some(Params::Logs(filter)) => FilteredParams::new(Some(filter)), _ => FilteredParams::default(), }; - let client = self.client.clone(); + let pubsub = self.clone(); // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. let (inner_sink, block_notification_stream) = sc_utils::mpsc::tracing_unbounded("pubsub_notification_stream", 100_000); self.pubsub_notification_sinks.lock().push(inner_sink); - let pool = self.pool.clone(); - let sync = self.sync.clone(); - let overrides = self.overrides.clone(); - let starting_block = self.starting_block; + let fut = async move { match kind { - Kind::Logs => { + Kind::NewHeads => { let stream = block_notification_stream - .filter_map(move |notification| { - if notification.is_new_best { - let substrate_hash = notification.hash; - - let schema = fc_storage::onchain_storage_schema( - client.as_ref(), - substrate_hash, - ); - let handler = overrides - .schemas - .get(&schema) - .unwrap_or(&overrides.fallback); - - let block = handler.current_block(substrate_hash); - let receipts = handler.current_receipts(substrate_hash); - - match (receipts, block) { - (Some(receipts), Some(block)) => { - futures::future::ready(Some((block, receipts))) - } - _ => futures::future::ready(None), - } - } else { - futures::future::ready(None) - } - }) - .flat_map(move |(block, receipts)| { - futures::stream::iter(EthSubscriptionResult::logs( - block, - receipts, - &filtered_params, - )) - }) - .map(|x| PubSubResult::Log(Box::new(x))); - sink.pipe_from_stream(stream).await; + .filter_map(move |notification| pubsub.notify_header(notification)); + pipe_from_stream(pending, stream).await } - Kind::NewHeads => { + Kind::Logs => { let stream = block_notification_stream .filter_map(move |notification| { - if notification.is_new_best { - let schema = fc_storage::onchain_storage_schema( - client.as_ref(), - notification.hash, - ); - let handler = overrides - .schemas - .get(&schema) - .unwrap_or(&overrides.fallback); - - let block = handler.current_block(notification.hash); - futures::future::ready(block) - } else { - futures::future::ready(None) - } + pubsub.notify_logs(notification, &filtered_params) }) - .map(EthSubscriptionResult::new_heads); - sink.pipe_from_stream(stream).await; + .flat_map(futures::stream::iter); + pipe_from_stream(pending, stream).await } Kind::NewPendingTransactions => { - use sc_transaction_pool_api::InPoolTransaction; - + let pool = pubsub.pool.clone(); let stream = pool .import_notification_stream() - .filter_map(move |txhash| { - if let Some(xt) = pool.ready_transaction(&txhash) { - let best_block = client.info().best_hash; - - let api = client.runtime_api(); - - let api_version = if let Ok(Some(api_version)) = - api.api_version::>(best_block) - { - api_version - } else { - return futures::future::ready(None); - }; - - let xts = vec![xt.data().clone()]; - - let txs: Option> = if api_version > 1 { - api.extrinsic_filter(best_block, xts).ok() - } else { - #[allow(deprecated)] - if let Ok(legacy) = - api.extrinsic_filter_before_version_2(best_block, xts) - { - Some(legacy.into_iter().map(|tx| tx.into()).collect()) - } else { - None - } - }; - - let res = match txs { - Some(txs) => { - if txs.len() == 1 { - Some(txs[0].clone()) - } else { - None - } - } - _ => None, - }; - futures::future::ready(res) - } else { - futures::future::ready(None) - } - }) - .map(|transaction| PubSubResult::TransactionHash(transaction.hash())); - sink.pipe_from_stream(stream).await; + .filter_map(move |hash| pubsub.pending_transaction(&hash)); + pipe_from_stream(pending, stream).await; } Kind::Syncing => { - let client = Arc::clone(&client); - let sync = Arc::clone(&sync); - // Gets the node syncing status. - // The response is expected to be serialized either as a plain boolean - // if the node is not syncing, or a structure containing syncing metadata - // in case it is. - async fn status, B: BlockT>( - client: Arc, - sync: Arc>, - starting_block: u64, - ) -> PubSubSyncStatus { - if sync.is_major_syncing() { - // Get the target block to sync. - // This value is only exposed through substrate async Api - // in the `NetworkService`. - let highest_block = sync - .status() - .await - .ok() - .and_then(|res| res.best_seen_block) - .map(UniqueSaturatedInto::::unique_saturated_into); - // Best imported block. - let current_block = UniqueSaturatedInto::::unique_saturated_into( - client.info().best_number, - ); - - PubSubSyncStatus::Detailed(SyncStatusMetadata { - syncing: true, - starting_block, - current_block, - highest_block, - }) - } else { - PubSubSyncStatus::Simple(false) - } - } + let Ok(sink) = pending.accept().await else { + return; + }; // On connection subscriber expects a value. // Because import notifications are only emitted when the node is synced or // in case of reorg, the first event is emitted right away. - let _ = sink.send(&PubSubResult::SyncState( - status(Arc::clone(&client), Arc::clone(&sync), starting_block).await, - )); + let syncing_status = pubsub.syncing_status().await; + let msg = to_sub_message(&sink, &PubSubResult::SyncingStatus(syncing_status)); + let _ = sink.send(msg).await; // When the node is not under a major syncing (i.e. from genesis), react // normally to import notifications. // // Only send new notifications down the pipe when the syncing status changed. - let mut stream = client.clone().import_notification_stream(); - let mut last_syncing_status = sync.is_major_syncing(); + let mut stream = pubsub.client.import_notification_stream(); + let mut last_syncing_status = pubsub.sync.is_major_syncing(); while (stream.next().await).is_some() { - let syncing_status = sync.is_major_syncing(); + let syncing_status = pubsub.sync.is_major_syncing(); if syncing_status != last_syncing_status { - let _ = sink.send(&PubSubResult::SyncState( - status(client.clone(), sync.clone(), starting_block).await, - )); + let syncing_status = pubsub.syncing_status().await; + let msg = + to_sub_message(&sink, &PubSubResult::SyncingStatus(syncing_status)); + let _ = sink.send(msg).await; } last_syncing_status = syncing_status; } @@ -407,11 +299,8 @@ where } } .boxed(); - self.subscriptions.spawn( - "frontier-rpc-subscription", - Some("rpc"), - fut.map(drop).boxed(), - ); - Ok(()) + + self.executor + .spawn("frontier-rpc-subscription", Some("rpc"), fut); } } diff --git a/client/rpc/src/lib.rs b/client/rpc/src/lib.rs index 7942c9dd3d..afc7df5c56 100644 --- a/client/rpc/src/lib.rs +++ b/client/rpc/src/lib.rs @@ -287,24 +287,29 @@ pub mod frontier_backend_client { } } -pub fn err(code: i32, message: T, data: Option<&[u8]>) -> jsonrpsee::core::Error { - jsonrpsee::core::Error::Call(jsonrpsee::types::error::CallError::Custom( - jsonrpsee::types::error::ErrorObject::owned( - code, - message.to_string(), - data.map(|bytes| { - jsonrpsee::core::to_json_raw_value(&format!("0x{}", hex::encode(bytes))) - .expect("fail to serialize data") - }), - ), - )) +pub fn err( + code: i32, + message: T, + data: Option<&[u8]>, +) -> jsonrpsee::types::error::ErrorObjectOwned { + jsonrpsee::types::error::ErrorObject::owned( + code, + message.to_string(), + data.map(|bytes| { + jsonrpsee::core::to_json_raw_value(&format!("0x{}", hex::encode(bytes))) + .expect("fail to serialize data") + }), + ) } -pub fn internal_err(message: T) -> jsonrpsee::core::Error { +pub fn internal_err(message: T) -> jsonrpsee::types::error::ErrorObjectOwned { err(jsonrpsee::types::error::INTERNAL_ERROR_CODE, message, None) } -pub fn internal_err_with_data(message: T, data: &[u8]) -> jsonrpsee::core::Error { +pub fn internal_err_with_data( + message: T, + data: &[u8], +) -> jsonrpsee::types::error::ErrorObjectOwned { err( jsonrpsee::types::error::INTERNAL_ERROR_CODE, message, diff --git a/client/rpc/src/signer.rs b/client/rpc/src/signer.rs index c1c90fb4a0..cf3ddae099 100644 --- a/client/rpc/src/signer.rs +++ b/client/rpc/src/signer.rs @@ -18,7 +18,7 @@ use ethereum::TransactionV2 as EthereumTransaction; use ethereum_types::{H160, H256}; -use jsonrpsee::core::Error; +use jsonrpsee::types::ErrorObjectOwned; // Substrate use sp_core::hashing::keccak_256; // Frontier @@ -35,7 +35,7 @@ pub trait EthSigner: Send + Sync { &self, message: TransactionMessage, address: &H160, - ) -> Result; + ) -> Result; } pub struct EthDevSigner { @@ -75,7 +75,7 @@ impl EthSigner for EthDevSigner { &self, message: TransactionMessage, address: &H160, - ) -> Result { + ) -> Result { let mut transaction = None; for secret in &self.keys { diff --git a/docs/yarn.lock b/docs/yarn.lock index 09110ddd21..16a4534c44 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -3894,9 +3894,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== + version "1.15.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" + integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== for-in@^1.0.2: version "1.0.2" @@ -4578,9 +4578,9 @@ ip-regex@^2.1.0: integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + version "1.1.9" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" + integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" diff --git a/frame/ethereum/src/mock.rs b/frame/ethereum/src/mock.rs index 3734bc42de..814d5e9551 100644 --- a/frame/ethereum/src/mock.rs +++ b/frame/ethereum/src/mock.rs @@ -101,7 +101,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; - type MaxHolds = ConstU32<5>; type MaxFreezes = ConstU32<1>; } diff --git a/frame/evm/precompile/dispatch/src/mock.rs b/frame/evm/precompile/dispatch/src/mock.rs index fb90ce6a08..01a66d779d 100644 --- a/frame/evm/precompile/dispatch/src/mock.rs +++ b/frame/evm/precompile/dispatch/src/mock.rs @@ -98,7 +98,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/frame/evm/src/mock.rs b/frame/evm/src/mock.rs index 33c7e22154..1249f62620 100644 --- a/frame/evm/src/mock.rs +++ b/frame/evm/src/mock.rs @@ -91,7 +91,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/precompiles/src/solidity/codec/xcm.rs b/precompiles/src/solidity/codec/xcm.rs index 9e387aa9c8..e3cdc2ca0d 100644 --- a/precompiles/src/solidity/codec/xcm.rs +++ b/precompiles/src/solidity/codec/xcm.rs @@ -25,7 +25,7 @@ use frame_support::{ensure, traits::ConstU32}; use sp_core::H256; use sp_std::vec::Vec; use sp_weights::Weight; -use xcm::latest::{Junction, Junctions, MultiLocation, NetworkId}; +use xcm::latest::{Junction, Junctions, Location, NetworkId}; use crate::solidity::{ codec::{bytes::*, Codec, Reader, Writer}, @@ -358,12 +358,12 @@ impl Codec for Junctions { } // Cannot used derive macro since it is a foreign struct. -impl Codec for MultiLocation { +impl Codec for Location { fn read(reader: &mut Reader) -> MayRevert { let (parents, interior) = reader .read() .map_in_tuple_to_field(&["parents", "interior"])?; - Ok(MultiLocation { parents, interior }) + Ok(Location { parents, interior }) } fn write(writer: &mut Writer, value: Self) { diff --git a/precompiles/tests-external/lib.rs b/precompiles/tests-external/lib.rs index 471f535075..42a7682f91 100644 --- a/precompiles/tests-external/lib.rs +++ b/precompiles/tests-external/lib.rs @@ -101,7 +101,6 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/primitives/account/src/lib.rs b/primitives/account/src/lib.rs index fe6906f99c..ee05acec9e 100644 --- a/primitives/account/src/lib.rs +++ b/primitives/account/src/lib.rs @@ -20,8 +20,9 @@ use scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; // Substrate -use sp_core::{ecdsa, RuntimeDebug, H160, H256}; +use sp_core::{crypto::AccountId32, ecdsa, RuntimeDebug, H160, H256}; use sp_io::hashing::keccak_256; +use sp_runtime::MultiSignature; use sp_runtime_interface::pass_by::PassByInner; /// A fully Ethereum-compatible `AccountId`. @@ -159,6 +160,13 @@ impl From<[u8; 32]> for AccountId20 { } } +impl From for AccountId20 { + fn from(account: AccountId32) -> Self { + let bytes: &[u8; 32] = account.as_ref(); + Self::from(*bytes) + } +} + #[derive(Eq, PartialEq, Clone, RuntimeDebug, Encode, Decode, TypeInfo)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct EthereumSignature(ecdsa::Signature); @@ -185,9 +193,23 @@ impl sp_runtime::traits::Verify for EthereumSignature { } } +impl From for EthereumSignature { + fn from(signature: MultiSignature) -> Self { + match signature { + MultiSignature::Ed25519(_) => { + panic!("Ed25519 not supported for EthereumSignature") + } + MultiSignature::Sr25519(_) => { + panic!("Sr25519 not supported for EthereumSignature") + } + MultiSignature::Ecdsa(sig) => Self(sig), + } + } +} + impl EthereumSignature { pub fn new(s: ecdsa::Signature) -> Self { - EthereumSignature(s) + Self(s) } } diff --git a/template/examples/contract-erc20/truffle/package-lock.json b/template/examples/contract-erc20/truffle/package-lock.json index dfc6eee70d..12a0c47f41 100644 --- a/template/examples/contract-erc20/truffle/package-lock.json +++ b/template/examples/contract-erc20/truffle/package-lock.json @@ -1467,9 +1467,9 @@ } }, "apollo-server-core": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.0.tgz", - "integrity": "sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.1.tgz", + "integrity": "sha512-9SF5WAkkV0FZQ2HVUWI9Jada1U0jg7e8NCN9EklbtvaCeUlOLyXyM+KCWuZ7+dqHxjshbtcwylPHutt3uzoNkw==", "optional": true, "requires": { "@apollo/utils.keyvaluecache": "^1.0.1", @@ -1498,9 +1498,9 @@ }, "dependencies": { "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "optional": true } } @@ -3034,9 +3034,9 @@ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "optional": true }, "for-each": { diff --git a/template/node/src/service.rs b/template/node/src/service.rs index 611f10e2c4..c6c856f931 100644 --- a/template/node/src/service.rs +++ b/template/node/src/service.rs @@ -8,7 +8,7 @@ use prometheus_endpoint::Registry; use sc_client_api::{Backend, BlockBackend}; use sc_consensus::BasicQueue; use sc_executor::NativeExecutionDispatch; -use sc_network_sync::warp::{WarpSyncParams, WarpSyncProvider}; +use sc_network_sync::strategy::warp::{WarpSyncParams, WarpSyncProvider}; use sc_service::{error::Error as ServiceError, Configuration, PartialComponents, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; diff --git a/template/runtime/src/lib.rs b/template/runtime/src/lib.rs index 7b10f60b05..9684ebf008 100644 --- a/template/runtime/src/lib.rs +++ b/template/runtime/src/lib.rs @@ -280,7 +280,6 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; - type MaxHolds = ConstU32<5>; type MaxFreezes = ConstU32<1>; } diff --git a/ts-tests/package-lock.json b/ts-tests/package-lock.json index 784f259142..83763f549e 100644 --- a/ts-tests/package-lock.json +++ b/ts-tests/package-lock.json @@ -4310,9 +4310,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "funding": [ { "type": "individual", @@ -13310,9 +13310,9 @@ } }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "optional": true }, "for-each": { diff --git a/ts-tests/tests/test-execute.ts b/ts-tests/tests/test-execute.ts index aef7adf3a9..afbf731588 100644 --- a/ts-tests/tests/test-execute.ts +++ b/ts-tests/tests/test-execute.ts @@ -261,6 +261,6 @@ describeWithFrontier("Frontier RPC (RPC execution)", (context) => { input: "0x12345678", }, ]); - expect((result as any).error.message).to.match(/^Ambiguous value for `data` and `input`/); + expect(result.error.data).to.match(/^Ambiguous value for `data` and `input`/); }); });
) -> future::Ready> { + let res = if let Some(xt) = self.pool.ready_transaction(hash) { + let best_block = self.client.info().best_hash; + + let api = self.client.runtime_api(); + + let api_version = if let Ok(Some(api_version)) = + api.api_version::>(best_block) + { + api_version + } else { + return future::ready(None); }; - let mut transaction_log_index: u32 = 0; - let transaction_hash: Option = if receipt_logs.len() > 0 { - Some(block.transactions[receipt_index].hash()) + + let xts = vec![xt.data().clone()]; + + let txs: Option> = if api_version > 1 { + api.extrinsic_filter(best_block, xts).ok() } else { - None + #[allow(deprecated)] + if let Ok(legacy) = api.extrinsic_filter_before_version_2(best_block, xts) { + Some(legacy.into_iter().map(|tx| tx.into()).collect()) + } else { + None + } }; - for log in receipt_logs { - if Self::add_log(block_hash, &log, &block, params) { - logs.push(Log { - address: log.address, - topics: log.topics, - data: Bytes(log.data), - block_hash: Some(block_hash), - block_number: Some(block.header.number), - transaction_hash, - transaction_index: Some(U256::from(receipt_index)), - log_index: Some(U256::from(log_index)), - transaction_log_index: Some(U256::from(transaction_log_index)), - removed: false, - }); + + match txs { + Some(txs) => { + if txs.len() == 1 { + Some(txs[0].clone()) + } else { + None + } } - log_index += 1; - transaction_log_index += 1; + _ => None, } - } - logs - } - fn add_log( - block_hash: H256, - ethereum_log: ðereum::Log, - block: &EthereumBlock, - params: &FilteredParams, - ) -> bool { - let log = Log { - address: ethereum_log.address, - topics: ethereum_log.topics.clone(), - data: Bytes(ethereum_log.data.clone()), - block_hash: None, - block_number: None, - transaction_hash: None, - transaction_index: None, - log_index: None, - transaction_log_index: None, - removed: false, + } else { + None }; - if params.filter.is_some() { - let block_number = - UniqueSaturatedInto::::unique_saturated_into(block.header.number); - if !params.filter_block_range(block_number) - || !params.filter_block_hash(block_hash) - || !params.filter_address(&log) - || !params.filter_topics(&log) - { - return false; - } + future::ready(res.map(|tx| PubSubResult::transaction_hash(&tx))) + } + + async fn syncing_status(&self) -> PubSubSyncing { + if self.sync.is_major_syncing() { + // Best imported block. + let current_number = self.client.info().best_number; + // Get the target block to sync. + let highest_number = self.sync.best_seen_block().await.ok().flatten(); + + PubSubSyncing::Syncing(SyncingStatus { + starting_block: self.starting_block, + current_block: UniqueSaturatedInto::::unique_saturated_into(current_number), + highest_block: highest_number + .map(UniqueSaturatedInto::::unique_saturated_into), + }) + } else { + PubSubSyncing::Synced(false) } - true } } @@ -208,198 +234,64 @@ where C: HeaderBackend + StorageProvider, BE: Backend + 'static, { - fn subscribe( - &self, - mut sink: SubscriptionSink, - kind: Kind, - params: Option, - ) -> SubscriptionResult { - sink.accept()?; - + fn subscribe(&self, pending: PendingSubscriptionSink, kind: Kind, params: Option) { let filtered_params = match params { Some(Params::Logs(filter)) => FilteredParams::new(Some(filter)), _ => FilteredParams::default(), }; - let client = self.client.clone(); + let pubsub = self.clone(); // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. let (inner_sink, block_notification_stream) = sc_utils::mpsc::tracing_unbounded("pubsub_notification_stream", 100_000); self.pubsub_notification_sinks.lock().push(inner_sink); - let pool = self.pool.clone(); - let sync = self.sync.clone(); - let overrides = self.overrides.clone(); - let starting_block = self.starting_block; + let fut = async move { match kind { - Kind::Logs => { + Kind::NewHeads => { let stream = block_notification_stream - .filter_map(move |notification| { - if notification.is_new_best { - let substrate_hash = notification.hash; - - let schema = fc_storage::onchain_storage_schema( - client.as_ref(), - substrate_hash, - ); - let handler = overrides - .schemas - .get(&schema) - .unwrap_or(&overrides.fallback); - - let block = handler.current_block(substrate_hash); - let receipts = handler.current_receipts(substrate_hash); - - match (receipts, block) { - (Some(receipts), Some(block)) => { - futures::future::ready(Some((block, receipts))) - } - _ => futures::future::ready(None), - } - } else { - futures::future::ready(None) - } - }) - .flat_map(move |(block, receipts)| { - futures::stream::iter(EthSubscriptionResult::logs( - block, - receipts, - &filtered_params, - )) - }) - .map(|x| PubSubResult::Log(Box::new(x))); - sink.pipe_from_stream(stream).await; + .filter_map(move |notification| pubsub.notify_header(notification)); + pipe_from_stream(pending, stream).await } - Kind::NewHeads => { + Kind::Logs => { let stream = block_notification_stream .filter_map(move |notification| { - if notification.is_new_best { - let schema = fc_storage::onchain_storage_schema( - client.as_ref(), - notification.hash, - ); - let handler = overrides - .schemas - .get(&schema) - .unwrap_or(&overrides.fallback); - - let block = handler.current_block(notification.hash); - futures::future::ready(block) - } else { - futures::future::ready(None) - } + pubsub.notify_logs(notification, &filtered_params) }) - .map(EthSubscriptionResult::new_heads); - sink.pipe_from_stream(stream).await; + .flat_map(futures::stream::iter); + pipe_from_stream(pending, stream).await } Kind::NewPendingTransactions => { - use sc_transaction_pool_api::InPoolTransaction; - + let pool = pubsub.pool.clone(); let stream = pool .import_notification_stream() - .filter_map(move |txhash| { - if let Some(xt) = pool.ready_transaction(&txhash) { - let best_block = client.info().best_hash; - - let api = client.runtime_api(); - - let api_version = if let Ok(Some(api_version)) = - api.api_version::>(best_block) - { - api_version - } else { - return futures::future::ready(None); - }; - - let xts = vec![xt.data().clone()]; - - let txs: Option> = if api_version > 1 { - api.extrinsic_filter(best_block, xts).ok() - } else { - #[allow(deprecated)] - if let Ok(legacy) = - api.extrinsic_filter_before_version_2(best_block, xts) - { - Some(legacy.into_iter().map(|tx| tx.into()).collect()) - } else { - None - } - }; - - let res = match txs { - Some(txs) => { - if txs.len() == 1 { - Some(txs[0].clone()) - } else { - None - } - } - _ => None, - }; - futures::future::ready(res) - } else { - futures::future::ready(None) - } - }) - .map(|transaction| PubSubResult::TransactionHash(transaction.hash())); - sink.pipe_from_stream(stream).await; + .filter_map(move |hash| pubsub.pending_transaction(&hash)); + pipe_from_stream(pending, stream).await; } Kind::Syncing => { - let client = Arc::clone(&client); - let sync = Arc::clone(&sync); - // Gets the node syncing status. - // The response is expected to be serialized either as a plain boolean - // if the node is not syncing, or a structure containing syncing metadata - // in case it is. - async fn status, B: BlockT>( - client: Arc, - sync: Arc>, - starting_block: u64, - ) -> PubSubSyncStatus { - if sync.is_major_syncing() { - // Get the target block to sync. - // This value is only exposed through substrate async Api - // in the `NetworkService`. - let highest_block = sync - .status() - .await - .ok() - .and_then(|res| res.best_seen_block) - .map(UniqueSaturatedInto::::unique_saturated_into); - // Best imported block. - let current_block = UniqueSaturatedInto::::unique_saturated_into( - client.info().best_number, - ); - - PubSubSyncStatus::Detailed(SyncStatusMetadata { - syncing: true, - starting_block, - current_block, - highest_block, - }) - } else { - PubSubSyncStatus::Simple(false) - } - } + let Ok(sink) = pending.accept().await else { + return; + }; // On connection subscriber expects a value. // Because import notifications are only emitted when the node is synced or // in case of reorg, the first event is emitted right away. - let _ = sink.send(&PubSubResult::SyncState( - status(Arc::clone(&client), Arc::clone(&sync), starting_block).await, - )); + let syncing_status = pubsub.syncing_status().await; + let msg = to_sub_message(&sink, &PubSubResult::SyncingStatus(syncing_status)); + let _ = sink.send(msg).await; // When the node is not under a major syncing (i.e. from genesis), react // normally to import notifications. // // Only send new notifications down the pipe when the syncing status changed. - let mut stream = client.clone().import_notification_stream(); - let mut last_syncing_status = sync.is_major_syncing(); + let mut stream = pubsub.client.import_notification_stream(); + let mut last_syncing_status = pubsub.sync.is_major_syncing(); while (stream.next().await).is_some() { - let syncing_status = sync.is_major_syncing(); + let syncing_status = pubsub.sync.is_major_syncing(); if syncing_status != last_syncing_status { - let _ = sink.send(&PubSubResult::SyncState( - status(client.clone(), sync.clone(), starting_block).await, - )); + let syncing_status = pubsub.syncing_status().await; + let msg = + to_sub_message(&sink, &PubSubResult::SyncingStatus(syncing_status)); + let _ = sink.send(msg).await; } last_syncing_status = syncing_status; } @@ -407,11 +299,8 @@ where } } .boxed(); - self.subscriptions.spawn( - "frontier-rpc-subscription", - Some("rpc"), - fut.map(drop).boxed(), - ); - Ok(()) + + self.executor + .spawn("frontier-rpc-subscription", Some("rpc"), fut); } } diff --git a/client/rpc/src/lib.rs b/client/rpc/src/lib.rs index 7942c9dd3d..afc7df5c56 100644 --- a/client/rpc/src/lib.rs +++ b/client/rpc/src/lib.rs @@ -287,24 +287,29 @@ pub mod frontier_backend_client { } } -pub fn err(code: i32, message: T, data: Option<&[u8]>) -> jsonrpsee::core::Error { - jsonrpsee::core::Error::Call(jsonrpsee::types::error::CallError::Custom( - jsonrpsee::types::error::ErrorObject::owned( - code, - message.to_string(), - data.map(|bytes| { - jsonrpsee::core::to_json_raw_value(&format!("0x{}", hex::encode(bytes))) - .expect("fail to serialize data") - }), - ), - )) +pub fn err( + code: i32, + message: T, + data: Option<&[u8]>, +) -> jsonrpsee::types::error::ErrorObjectOwned { + jsonrpsee::types::error::ErrorObject::owned( + code, + message.to_string(), + data.map(|bytes| { + jsonrpsee::core::to_json_raw_value(&format!("0x{}", hex::encode(bytes))) + .expect("fail to serialize data") + }), + ) } -pub fn internal_err(message: T) -> jsonrpsee::core::Error { +pub fn internal_err(message: T) -> jsonrpsee::types::error::ErrorObjectOwned { err(jsonrpsee::types::error::INTERNAL_ERROR_CODE, message, None) } -pub fn internal_err_with_data(message: T, data: &[u8]) -> jsonrpsee::core::Error { +pub fn internal_err_with_data( + message: T, + data: &[u8], +) -> jsonrpsee::types::error::ErrorObjectOwned { err( jsonrpsee::types::error::INTERNAL_ERROR_CODE, message, diff --git a/client/rpc/src/signer.rs b/client/rpc/src/signer.rs index c1c90fb4a0..cf3ddae099 100644 --- a/client/rpc/src/signer.rs +++ b/client/rpc/src/signer.rs @@ -18,7 +18,7 @@ use ethereum::TransactionV2 as EthereumTransaction; use ethereum_types::{H160, H256}; -use jsonrpsee::core::Error; +use jsonrpsee::types::ErrorObjectOwned; // Substrate use sp_core::hashing::keccak_256; // Frontier @@ -35,7 +35,7 @@ pub trait EthSigner: Send + Sync { &self, message: TransactionMessage, address: &H160, - ) -> Result; + ) -> Result; } pub struct EthDevSigner { @@ -75,7 +75,7 @@ impl EthSigner for EthDevSigner { &self, message: TransactionMessage, address: &H160, - ) -> Result { + ) -> Result { let mut transaction = None; for secret in &self.keys { diff --git a/docs/yarn.lock b/docs/yarn.lock index 09110ddd21..16a4534c44 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -3894,9 +3894,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== + version "1.15.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf" + integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw== for-in@^1.0.2: version "1.0.2" @@ -4578,9 +4578,9 @@ ip-regex@^2.1.0: integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + version "1.1.9" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" + integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" diff --git a/frame/ethereum/src/mock.rs b/frame/ethereum/src/mock.rs index 3734bc42de..814d5e9551 100644 --- a/frame/ethereum/src/mock.rs +++ b/frame/ethereum/src/mock.rs @@ -101,7 +101,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; - type MaxHolds = ConstU32<5>; type MaxFreezes = ConstU32<1>; } diff --git a/frame/evm/precompile/dispatch/src/mock.rs b/frame/evm/precompile/dispatch/src/mock.rs index fb90ce6a08..01a66d779d 100644 --- a/frame/evm/precompile/dispatch/src/mock.rs +++ b/frame/evm/precompile/dispatch/src/mock.rs @@ -98,7 +98,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/frame/evm/src/mock.rs b/frame/evm/src/mock.rs index 33c7e22154..1249f62620 100644 --- a/frame/evm/src/mock.rs +++ b/frame/evm/src/mock.rs @@ -91,7 +91,6 @@ impl pallet_balances::Config for Test { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/precompiles/src/solidity/codec/xcm.rs b/precompiles/src/solidity/codec/xcm.rs index 9e387aa9c8..e3cdc2ca0d 100644 --- a/precompiles/src/solidity/codec/xcm.rs +++ b/precompiles/src/solidity/codec/xcm.rs @@ -25,7 +25,7 @@ use frame_support::{ensure, traits::ConstU32}; use sp_core::H256; use sp_std::vec::Vec; use sp_weights::Weight; -use xcm::latest::{Junction, Junctions, MultiLocation, NetworkId}; +use xcm::latest::{Junction, Junctions, Location, NetworkId}; use crate::solidity::{ codec::{bytes::*, Codec, Reader, Writer}, @@ -358,12 +358,12 @@ impl Codec for Junctions { } // Cannot used derive macro since it is a foreign struct. -impl Codec for MultiLocation { +impl Codec for Location { fn read(reader: &mut Reader) -> MayRevert { let (parents, interior) = reader .read() .map_in_tuple_to_field(&["parents", "interior"])?; - Ok(MultiLocation { parents, interior }) + Ok(Location { parents, interior }) } fn write(writer: &mut Writer, value: Self) { diff --git a/precompiles/tests-external/lib.rs b/precompiles/tests-external/lib.rs index 471f535075..42a7682f91 100644 --- a/precompiles/tests-external/lib.rs +++ b/precompiles/tests-external/lib.rs @@ -101,7 +101,6 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = (); type MaxReserves = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/primitives/account/src/lib.rs b/primitives/account/src/lib.rs index fe6906f99c..ee05acec9e 100644 --- a/primitives/account/src/lib.rs +++ b/primitives/account/src/lib.rs @@ -20,8 +20,9 @@ use scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; // Substrate -use sp_core::{ecdsa, RuntimeDebug, H160, H256}; +use sp_core::{crypto::AccountId32, ecdsa, RuntimeDebug, H160, H256}; use sp_io::hashing::keccak_256; +use sp_runtime::MultiSignature; use sp_runtime_interface::pass_by::PassByInner; /// A fully Ethereum-compatible `AccountId`. @@ -159,6 +160,13 @@ impl From<[u8; 32]> for AccountId20 { } } +impl From for AccountId20 { + fn from(account: AccountId32) -> Self { + let bytes: &[u8; 32] = account.as_ref(); + Self::from(*bytes) + } +} + #[derive(Eq, PartialEq, Clone, RuntimeDebug, Encode, Decode, TypeInfo)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct EthereumSignature(ecdsa::Signature); @@ -185,9 +193,23 @@ impl sp_runtime::traits::Verify for EthereumSignature { } } +impl From for EthereumSignature { + fn from(signature: MultiSignature) -> Self { + match signature { + MultiSignature::Ed25519(_) => { + panic!("Ed25519 not supported for EthereumSignature") + } + MultiSignature::Sr25519(_) => { + panic!("Sr25519 not supported for EthereumSignature") + } + MultiSignature::Ecdsa(sig) => Self(sig), + } + } +} + impl EthereumSignature { pub fn new(s: ecdsa::Signature) -> Self { - EthereumSignature(s) + Self(s) } } diff --git a/template/examples/contract-erc20/truffle/package-lock.json b/template/examples/contract-erc20/truffle/package-lock.json index dfc6eee70d..12a0c47f41 100644 --- a/template/examples/contract-erc20/truffle/package-lock.json +++ b/template/examples/contract-erc20/truffle/package-lock.json @@ -1467,9 +1467,9 @@ } }, "apollo-server-core": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.0.tgz", - "integrity": "sha512-hq7iH6Cgldgmnjs9FVSZeKWRpi0/ZR+iJ1arzeD2VXGxxgk1mAm/cz1Tx0TYgegZI+FvvrRl0UhKEx7sLnIxIg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.12.1.tgz", + "integrity": "sha512-9SF5WAkkV0FZQ2HVUWI9Jada1U0jg7e8NCN9EklbtvaCeUlOLyXyM+KCWuZ7+dqHxjshbtcwylPHutt3uzoNkw==", "optional": true, "requires": { "@apollo/utils.keyvaluecache": "^1.0.1", @@ -1498,9 +1498,9 @@ }, "dependencies": { "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "optional": true } } @@ -3034,9 +3034,9 @@ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "optional": true }, "for-each": { diff --git a/template/node/src/service.rs b/template/node/src/service.rs index 611f10e2c4..c6c856f931 100644 --- a/template/node/src/service.rs +++ b/template/node/src/service.rs @@ -8,7 +8,7 @@ use prometheus_endpoint::Registry; use sc_client_api::{Backend, BlockBackend}; use sc_consensus::BasicQueue; use sc_executor::NativeExecutionDispatch; -use sc_network_sync::warp::{WarpSyncParams, WarpSyncProvider}; +use sc_network_sync::strategy::warp::{WarpSyncParams, WarpSyncProvider}; use sc_service::{error::Error as ServiceError, Configuration, PartialComponents, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker}; use sc_transaction_pool_api::OffchainTransactionPoolFactory; diff --git a/template/runtime/src/lib.rs b/template/runtime/src/lib.rs index 7b10f60b05..9684ebf008 100644 --- a/template/runtime/src/lib.rs +++ b/template/runtime/src/lib.rs @@ -280,7 +280,6 @@ impl pallet_balances::Config for Runtime { type FreezeIdentifier = RuntimeFreezeReason; type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; - type MaxHolds = ConstU32<5>; type MaxFreezes = ConstU32<1>; } diff --git a/ts-tests/package-lock.json b/ts-tests/package-lock.json index 784f259142..83763f549e 100644 --- a/ts-tests/package-lock.json +++ b/ts-tests/package-lock.json @@ -4310,9 +4310,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "funding": [ { "type": "individual", @@ -13310,9 +13310,9 @@ } }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "optional": true }, "for-each": { diff --git a/ts-tests/tests/test-execute.ts b/ts-tests/tests/test-execute.ts index aef7adf3a9..afbf731588 100644 --- a/ts-tests/tests/test-execute.ts +++ b/ts-tests/tests/test-execute.ts @@ -261,6 +261,6 @@ describeWithFrontier("Frontier RPC (RPC execution)", (context) => { input: "0x12345678", }, ]); - expect((result as any).error.message).to.match(/^Ambiguous value for `data` and `input`/); + expect(result.error.data).to.match(/^Ambiguous value for `data` and `input`/); }); });