diff --git a/Cargo.lock b/Cargo.lock index 3fc5cf20ecdee..bface8a6ec7e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5739,7 +5739,7 @@ dependencies = [ [[package]] name = "frame-executive" -version = "37.0.0" +version = "37.0.2" dependencies = [ "aquamarine", "array-bytes", @@ -19600,7 +19600,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "20.0.0" +version = "20.0.2" dependencies = [ "Inflector", "assert_matches", @@ -19994,7 +19994,7 @@ dependencies = [ [[package]] name = "sp-io" -version = "38.0.0" +version = "38.0.1" dependencies = [ "bytes", "docify", @@ -20639,7 +20639,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" -version = "16.0.4" +version = "16.0.5" dependencies = [ "assert_matches", "frame-support", @@ -20668,7 +20668,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" -version = "16.0.0" +version = "16.0.1" dependencies = [ "environmental", "frame-benchmarking", @@ -21147,7 +21147,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "24.0.0" +version = "23.0.1" dependencies = [ "array-bytes", "build-helper", diff --git a/Cargo.toml b/Cargo.toml index d7ba7a2cd8f5e..a747080972ac2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -744,7 +744,7 @@ frame-benchmarking-cli = { path = "substrate/utils/frame/benchmarking-cli", defa frame-benchmarking-pallet-pov = { default-features = false, path = "substrate/frame/benchmarking/pov" } frame-election-provider-solution-type = { path = "substrate/frame/election-provider-support/solution-type", default-features = false, version = "14.0.1" } frame-election-provider-support = { path = "substrate/frame/election-provider-support", default-features = false, version = "37.0.0" } -frame-executive = { path = "substrate/frame/executive", default-features = false, version = "37.0.0" } +frame-executive = { path = "substrate/frame/executive", default-features = false, version = "37.0.2" } frame-metadata = { version = "16.0.0", default-features = false } frame-metadata-hash-extension = { path = "substrate/frame/metadata-hash-extension", default-features = false, version = "0.5.0" } frame-support = { path = "substrate/frame/support", default-features = false, version = "37.1.0" } @@ -1195,7 +1195,7 @@ snowbridge-system-runtime-api = { path = "bridges/snowbridge/pallets/system/runt soketto = { version = "0.7.1" } solochain-template-runtime = { path = "templates/solochain/runtime", version = "0.1.0" } sp-api = { path = "substrate/primitives/api", default-features = false, version = "34.0.0" } -sp-api-proc-macro = { path = "substrate/primitives/api/proc-macro", default-features = false, version = "20.0.0" } +sp-api-proc-macro = { path = "substrate/primitives/api/proc-macro", default-features = false, version = "20.0.2" } sp-application-crypto = { path = "substrate/primitives/application-crypto", default-features = false, version = "38.0.0" } sp-arithmetic = { path = "substrate/primitives/arithmetic", default-features = false, version = "26.0.0" } sp-authority-discovery = { path = "substrate/primitives/authority-discovery", default-features = false, version = "34.0.0" } @@ -1220,7 +1220,7 @@ sp-debug-derive = { path = "substrate/primitives/debug-derive", default-features sp-externalities = { path = "substrate/primitives/externalities", default-features = false, version = "0.29.0" } sp-genesis-builder = { path = "substrate/primitives/genesis-builder", default-features = false, version = "0.15.0" } sp-inherents = { path = "substrate/primitives/inherents", default-features = false, version = "34.0.0" } -sp-io = { path = "substrate/primitives/io", default-features = false, version = "38.0.0" } +sp-io = { path = "substrate/primitives/io", default-features = false, version = "38.0.1" } sp-keyring = { path = "substrate/primitives/keyring", default-features = false, version = "39.0.0" } sp-keystore = { path = "substrate/primitives/keystore", default-features = false, version = "0.40.0" } sp-maybe-compressed-blob = { path = "substrate/primitives/maybe-compressed-blob", default-features = false, version = "11.0.0" } @@ -1273,7 +1273,7 @@ substrate-test-runtime = { path = "substrate/test-utils/runtime", version = "2.0 substrate-test-runtime-client = { path = "substrate/test-utils/runtime/client", version = "2.0.0" } substrate-test-runtime-transaction-pool = { path = "substrate/test-utils/runtime/transaction-pool" } substrate-test-utils = { path = "substrate/test-utils" } -substrate-wasm-builder = { path = "substrate/utils/wasm-builder", default-features = false, version = "24.0.0" } +substrate-wasm-builder = { path = "substrate/utils/wasm-builder", default-features = false, version = "23.0.1" } syn = { version = "2.0.53" } sysinfo = { version = "0.30" } tar = { version = "0.4" } @@ -1335,10 +1335,10 @@ westend-runtime-constants = { path = "polkadot/runtime/westend/constants", defau westend-system-emulated-network = { path = "cumulus/parachains/integration-tests/emulated/networks/westend-system", version = "0.1.0" } x25519-dalek = { version = "2.0" } xcm = { path = "polkadot/xcm", default-features = false, package = "staging-xcm", version = "14.1.0" } -xcm-builder = { path = "polkadot/xcm/xcm-builder", default-features = false, package = "staging-xcm-builder", version = "16.0.4" } +xcm-builder = { path = "polkadot/xcm/xcm-builder", default-features = false, package = "staging-xcm-builder", version = "16.0.5" } xcm-docs = { path = "polkadot/xcm/docs", version = "0.1.0" } xcm-emulator = { path = "cumulus/xcm/xcm-emulator", default-features = false, version = "0.15.0" } -xcm-executor = { path = "polkadot/xcm/xcm-executor", default-features = false, package = "staging-xcm-executor", version = "16.0.0" } +xcm-executor = { path = "polkadot/xcm/xcm-executor", default-features = false, package = "staging-xcm-executor", version = "16.0.1" } xcm-procedural = { path = "polkadot/xcm/procedural", default-features = false, version = "10.1.0" } xcm-runtime-apis = { path = "polkadot/xcm/xcm-runtime-apis", default-features = false, version = "0.3.1" } xcm-simulator = { path = "polkadot/xcm/xcm-simulator", default-features = false, version = "16.0.0" } diff --git a/Plan.toml b/Plan.toml index 8efcad2eb5a98..b3db366ed6bb7 100644 --- a/Plan.toml +++ b/Plan.toml @@ -1,5 +1,5 @@ # generated by parity-publish v0.10.4 -# command: parity-publish plan --skip-check --prdoc prdoc +# command: parity-publish plan --skip-check --patch sp-api-proc-macro [options] description = "polkadot v1.15.0" @@ -99,8 +99,10 @@ to = "11.0.0" [[crate]] # substrate/primitives/api/proc-macro name = "sp-api-proc-macro" -from = "20.0.0" -to = "20.0.0" +from = "20.0.1" +to = "20.0.2" +bump = "patch" +reason = "bumped by --patch" [[crate]] # substrate/primitives/arithmetic @@ -411,9 +413,9 @@ to = "0.35.0" [[crate]] # substrate/primitives/io name = "sp-io" -from = "37.0.0" -to = "38.0.0" -bump = "major" +from = "38.0.0" +to = "38.0.1" +bump = "patch" reason = "changed" [[crate]] @@ -774,8 +776,8 @@ reason = "changed" # substrate/utils/wasm-builder name = "substrate-wasm-builder" from = "23.0.0" -to = "24.0.0" -bump = "major" +to = "23.0.1" +bump = "patch" reason = "changed" [[crate]] @@ -973,10 +975,10 @@ reason = "changed" [[crate]] # substrate/frame/executive name = "frame-executive" -from = "36.0.0" -to = "37.0.0" -bump = "major" -reason = "changed" +from = "37.0.1" +to = "37.0.2" +bump = "patch" +reason = "bumped by --patch" [[crate]] # substrate/frame/metadata-hash-extension @@ -1677,9 +1679,9 @@ reason = "changed" [[crate]] # polkadot/xcm/xcm-executor name = "staging-xcm-executor" -from = "15.0.0" -to = "16.0.0" -bump = "major" +from = "16.0.0" +to = "16.0.1" +bump = "patch" reason = "changed" [[crate]] @@ -1905,8 +1907,8 @@ reason = "changed" [[crate]] # polkadot/xcm/xcm-builder name = "staging-xcm-builder" -from = "16.0.3" -to = "16.0.4" +from = "16.0.4" +to = "16.0.5" bump = "patch" reason = "changed" diff --git a/polkadot/node/primitives/src/lib.rs b/polkadot/node/primitives/src/lib.rs index fa0a1951f0e5c..609b076f633a3 100644 --- a/polkadot/node/primitives/src/lib.rs +++ b/polkadot/node/primitives/src/lib.rs @@ -59,7 +59,7 @@ pub use disputes::{ /// relatively rare. /// /// The associated worker binaries should use the same version as the node that spawns them. -pub const NODE_VERSION: &'static str = "1.15.8"; +pub const NODE_VERSION: &'static str = "1.15.9"; // For a 16-ary Merkle Prefix Trie, we can expect at most 16 32-byte hashes per node // plus some overhead: diff --git a/polkadot/xcm/pallet-xcm/src/lib.rs b/polkadot/xcm/pallet-xcm/src/lib.rs index 3baf99c75206d..2be66d9422f7d 100644 --- a/polkadot/xcm/pallet-xcm/src/lib.rs +++ b/polkadot/xcm/pallet-xcm/src/lib.rs @@ -269,6 +269,7 @@ pub mod pallet { /// The latest supported version that we advertise. Generally just set it to /// `pallet_xcm::CurrentXcmVersion`. + #[pallet::constant] type AdvertisedXcmVersion: Get; /// The origin that is allowed to call privileged operations on the XCM pallet diff --git a/polkadot/xcm/xcm-builder/Cargo.toml b/polkadot/xcm/xcm-builder/Cargo.toml index e565621b05187..876419392097f 100644 --- a/polkadot/xcm/xcm-builder/Cargo.toml +++ b/polkadot/xcm/xcm-builder/Cargo.toml @@ -4,7 +4,7 @@ description = "Tools & types for building with XCM and its executor. (polkadot v authors.workspace = true edition.workspace = true license.workspace = true -version = "16.0.4" +version = "16.0.5" [lints] workspace = true diff --git a/polkadot/xcm/xcm-executor/Cargo.toml b/polkadot/xcm/xcm-executor/Cargo.toml index c1e5e9f9ceaac..5123b369383af 100644 --- a/polkadot/xcm/xcm-executor/Cargo.toml +++ b/polkadot/xcm/xcm-executor/Cargo.toml @@ -4,7 +4,7 @@ description = "An abstract and configurable XCM message executor. (polkadot v1.1 authors.workspace = true edition.workspace = true license.workspace = true -version = "16.0.0" +version = "16.0.1" [lints] workspace = true diff --git a/prdoc/pr_7966.prdoc b/prdoc/1.15.9/pr_7966.prdoc similarity index 100% rename from prdoc/pr_7966.prdoc rename to prdoc/1.15.9/pr_7966.prdoc diff --git a/prdoc/1.15.9/pr_8198.prdoc b/prdoc/1.15.9/pr_8198.prdoc new file mode 100644 index 0000000000000..4076e7abf7ac7 --- /dev/null +++ b/prdoc/1.15.9/pr_8198.prdoc @@ -0,0 +1,12 @@ +title: Remove `#[no_mangle]` from the panic handler +doc: +- audience: Runtime Dev + description: |- + Fixes https://github.com/paritytech/polkadot-sdk/issues/8190 + + Remove useless `#[no_mangle]` from the panic handler which screws up the panic handling machinery on recent versions of Rust. +crates: +- name: substrate-wasm-builder + bump: patch +- name: sp-io + bump: patch diff --git a/prdoc/pr_7785.prdoc b/prdoc/pr_7785.prdoc new file mode 100644 index 0000000000000..f75c8181fa09b --- /dev/null +++ b/prdoc/pr_7785.prdoc @@ -0,0 +1,22 @@ +title: 'pallet scheduler: fix weight and add safety checks' +doc: +- audience: Runtime Dev + description: |- + Changes: + - Add runtime integrity test for scheduler pallet to ensure that lookups use sensible weights + - Check all passed storage names in the omni bencher to be known by FRAME metadata + - Trim storage names in omni bencher to fix V1 bench syntax bug + - Fix V1 bench syntax storage name sanitization for specific Rust versions + + I re-ran the benchmarks with the omni-bencher modifications and it did not change the [proof size](https://weights.tasty.limo/compare?repo=polkadot-sdk&threshold=1&path_pattern=substrate%2Fframe%2F**%2Fsrc%2Fweights.rs%2Cpolkadot%2Fruntime%2F*%2Fsrc%2Fweights%2F**%2F*.rs%2Cpolkadot%2Fbridges%2Fmodules%2F*%2Fsrc%2Fweights.rs%2Ccumulus%2F**%2Fweights%2F*.rs%2Ccumulus%2F**%2Fweights%2Fxcm%2F*.rs%2Ccumulus%2F**%2Fsrc%2Fweights.rs&method=asymptotic&ignore_errors=true&unit=proof&old=cc0142510b81dcf1c1a22f7dc164c453c25287e6&new=bb19d78821eaeaf2262f6a23ee45f83dd4f94d29). I reverted [the commit](https://github.com/paritytech/polkadot-sdk/pull/7785/commits/bb19d78821eaeaf2262f6a23ee45f83dd4f94d29) afterwards to reduce the noise for reviewers. +crates: +- name: frame-benchmarking-cli + bump: minor +- name: frame-benchmarking + bump: minor +- name: pallet-scheduler + bump: minor +- name: asset-hub-westend-runtime + bump: minor +- name: westend-runtime + bump: minor diff --git a/prdoc/pr_8173.prdoc b/prdoc/pr_8173.prdoc new file mode 100644 index 0000000000000..8d85ac2ed9112 --- /dev/null +++ b/prdoc/pr_8173.prdoc @@ -0,0 +1,7 @@ +title: Expose current advertised xcm version +doc: +- audience: Runtime User + description: Exposes `AdvertisedXcmVersion` via a metadata constant. +crates: +- name: pallet-xcm + bump: patch diff --git a/substrate/frame/benchmarking/src/v1.rs b/substrate/frame/benchmarking/src/v1.rs index d687f9fdfa104..a6b155f4a1908 100644 --- a/substrate/frame/benchmarking/src/v1.rs +++ b/substrate/frame/benchmarking/src/v1.rs @@ -1008,7 +1008,8 @@ macro_rules! impl_benchmark { $( (stringify!($pov_name).as_bytes().to_vec(), $crate::__private::vec![ - $( ( stringify!($storage).as_bytes().to_vec(), + // Stringify sometimes includes spaces, depending on the Rust version. + $( ( stringify!($storage).replace(" ", "").as_bytes().to_vec(), stringify!($pov_mode).as_bytes().to_vec() ), )* ]), )* diff --git a/substrate/frame/executive/Cargo.toml b/substrate/frame/executive/Cargo.toml index 3370f452243d0..795a257a92d52 100644 --- a/substrate/frame/executive/Cargo.toml +++ b/substrate/frame/executive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "frame-executive" -version = "37.0.0" +version = "37.0.2" authors.workspace = true edition.workspace = true license = "Apache-2.0" diff --git a/substrate/frame/executive/src/lib.rs b/substrate/frame/executive/src/lib.rs index 1e7bac64e18fd..1c3f44506d8c8 100644 --- a/substrate/frame/executive/src/lib.rs +++ b/substrate/frame/executive/src/lib.rs @@ -192,6 +192,9 @@ use ::{ #[allow(dead_code)] const LOG_TARGET: &str = "runtime::executive"; +/// Maximum nesting level for extrinsics. +pub const MAX_EXTRINSIC_DEPTH: u32 = 256; + pub type CheckedOf = >::Checked; pub type CallOf = as Applyable>::Call; pub type OriginOf = as Dispatchable>::RuntimeOrigin; @@ -777,7 +780,13 @@ where let encoded = uxt.encode(); let encoded_len = encoded.len(); sp_tracing::enter_span!(sp_tracing::info_span!("apply_extrinsic", - ext=?sp_core::hexdisplay::HexDisplay::from(&encoded))); + ext=?sp_core::hexdisplay::HexDisplay::from(&encoded))); + + let uxt = ::decode_all_with_depth_limit( + MAX_EXTRINSIC_DEPTH, + &mut &encoded[..], + ) + .expect("Decoding the encoded transaction works; qed"); // We use the dedicated `is_inherent` check here, since just relying on `Mandatory` dispatch // class does not capture optional inherents. @@ -862,10 +871,16 @@ where enter_span! { sp_tracing::Level::TRACE, "validate_transaction" }; - let encoded_len = within_span! { sp_tracing::Level::TRACE, "using_encoded"; - uxt.using_encoded(|d| d.len()) + let encoded = within_span! { sp_tracing::Level::TRACE, "using_encoded"; + uxt.encode() }; + let uxt = ::decode_all_with_depth_limit( + MAX_EXTRINSIC_DEPTH, + &mut &encoded[..], + ) + .map_err(|_| InvalidTransaction::Call)?; + let xt = within_span! { sp_tracing::Level::TRACE, "check"; uxt.check(&Default::default()) }?; @@ -880,7 +895,7 @@ where within_span! { sp_tracing::Level::TRACE, "validate"; - xt.validate::(source, &dispatch_info, encoded_len) + xt.validate::(source, &dispatch_info, encoded.len()) } } diff --git a/substrate/frame/scheduler/src/lib.rs b/substrate/frame/scheduler/src/lib.rs index 3eecf6d6f9e88..ba351b89ed021 100644 --- a/substrate/frame/scheduler/src/lib.rs +++ b/substrate/frame/scheduler/src/lib.rs @@ -381,6 +381,27 @@ pub mod pallet { Self::service_agendas(&mut weight_counter, now, u32::max_value()); weight_counter.consumed() } + + #[cfg(feature = "std")] + fn integrity_test() { + /// Calculate the maximum weight that a lookup of a given size can take. + fn lookup_weight(s: usize) -> Weight { + T::WeightInfo::service_agendas_base() + + T::WeightInfo::service_agenda_base(T::MaxScheduledPerBlock::get()) + + T::WeightInfo::service_task(Some(s), true, true) + } + + let limit = sp_runtime::Perbill::from_percent(90) * T::MaximumWeight::get(); + + let small_lookup = lookup_weight::(128); + assert!(small_lookup.all_lte(limit), "Must be possible to submit a small lookup"); + + let medium_lookup = lookup_weight::(1024); + assert!(medium_lookup.all_lte(limit), "Must be possible to submit a medium lookup"); + + let large_lookup = lookup_weight::(1024 * 1024); + assert!(large_lookup.all_lte(limit), "Must be possible to submit a large lookup"); + } } #[pallet::call] diff --git a/substrate/primitives/api/proc-macro/Cargo.toml b/substrate/primitives/api/proc-macro/Cargo.toml index 5fe0a8ea52a77..3333bab0d23ca 100644 --- a/substrate/primitives/api/proc-macro/Cargo.toml +++ b/substrate/primitives/api/proc-macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sp-api-proc-macro" -version = "20.0.0" +version = "20.0.2" authors.workspace = true edition.workspace = true license = "Apache-2.0" diff --git a/substrate/primitives/api/proc-macro/src/impl_runtime_apis.rs b/substrate/primitives/api/proc-macro/src/impl_runtime_apis.rs index 2c423f8c28dd4..34575c4cc609f 100644 --- a/substrate/primitives/api/proc-macro/src/impl_runtime_apis.rs +++ b/substrate/primitives/api/proc-macro/src/impl_runtime_apis.rs @@ -103,8 +103,7 @@ fn generate_impl_call( quote!( #let_binding = - match #c::DecodeLimit::decode_all_with_depth_limit( - #c::MAX_EXTRINSIC_DEPTH, + match #c::Decode::decode( &mut #input, ) { Ok(res) => res, diff --git a/substrate/primitives/io/Cargo.toml b/substrate/primitives/io/Cargo.toml index b6a49f8316e29..5d0256a4c88f1 100644 --- a/substrate/primitives/io/Cargo.toml +++ b/substrate/primitives/io/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sp-io" -version = "38.0.0" +version = "38.0.1" authors.workspace = true edition.workspace = true license = "Apache-2.0" diff --git a/substrate/primitives/io/src/lib.rs b/substrate/primitives/io/src/lib.rs index b39a06ed2115a..b3ab6017db830 100644 --- a/substrate/primitives/io/src/lib.rs +++ b/substrate/primitives/io/src/lib.rs @@ -1771,7 +1771,6 @@ pub fn unreachable() -> ! { /// A default panic handler for the runtime environment. #[cfg(all(not(feature = "disable_panic_handler"), substrate_runtime))] #[panic_handler] -#[no_mangle] pub fn panic(info: &core::panic::PanicInfo) -> ! { let message = alloc::format!("{}", info); #[cfg(feature = "improved_panic_error_reporting")] diff --git a/substrate/utils/frame/benchmarking-cli/src/pallet/command.rs b/substrate/utils/frame/benchmarking-cli/src/pallet/command.rs index 15f0d6a1e4f3e..9822bb48806a4 100644 --- a/substrate/utils/frame/benchmarking-cli/src/pallet/command.rs +++ b/substrate/utils/frame/benchmarking-cli/src/pallet/command.rs @@ -284,7 +284,8 @@ impl PalletCmd { let mut timer = time::SystemTime::now(); // Maps (pallet, extrinsic) to its component ranges. let mut component_ranges = HashMap::<(String, String), Vec>::new(); - let pov_modes = Self::parse_pov_modes(&benchmarks_to_run)?; + let pov_modes = + Self::parse_pov_modes(&benchmarks_to_run, &storage_info, self.ignore_unknown_pov_mode)?; let mut failed = Vec::<(String, String)>::new(); 'outer: for (i, SelectedBenchmark { pallet, extrinsic, components, .. }) in @@ -936,14 +937,20 @@ impl PalletCmd { } /// Parses the PoV modes per benchmark that were specified by the `#[pov_mode]` attribute. - fn parse_pov_modes(benchmarks: &Vec) -> Result { + fn parse_pov_modes( + benchmarks: &Vec, + storage_info: &[StorageInfo], + ignore_unknown_pov_mode: bool, + ) -> Result { use std::collections::hash_map::Entry; let mut parsed = PovModesMap::new(); for SelectedBenchmark { pallet, extrinsic, pov_modes, .. } in benchmarks { for (pallet_storage, mode) in pov_modes { let mode = PovEstimationMode::from_str(&mode)?; + let pallet_storage = pallet_storage.replace(" ", ""); let splits = pallet_storage.split("::").collect::>(); + if splits.is_empty() || splits.len() > 2 { return Err(format!( "Expected 'Pallet::Storage' as storage name but got: {}", @@ -951,7 +958,8 @@ impl PalletCmd { ) .into()) } - let (pov_pallet, pov_storage) = (splits[0], splits.get(1).unwrap_or(&"ALL")); + let (pov_pallet, pov_storage) = + (splits[0].trim(), splits.get(1).unwrap_or(&"ALL").trim()); match parsed .entry((pallet.clone(), extrinsic.clone())) @@ -970,9 +978,43 @@ impl PalletCmd { } } } + log::debug!("Parsed PoV modes: {:?}", parsed); + Self::check_pov_modes(&parsed, storage_info, ignore_unknown_pov_mode)?; + Ok(parsed) } + fn check_pov_modes( + pov_modes: &PovModesMap, + storage_info: &[StorageInfo], + ignore_unknown_pov_mode: bool, + ) -> Result<()> { + // Check that all PoV modes are valid pallet storage keys + for (pallet, storage) in pov_modes.values().flat_map(|i| i.keys()) { + let (mut found_pallet, mut found_storage) = (false, false); + + for info in storage_info { + if pallet == "ALL" || info.pallet_name == pallet.as_bytes() { + found_pallet = true; + } + if storage == "ALL" || info.storage_name == storage.as_bytes() { + found_storage = true; + } + } + if !found_pallet || !found_storage { + let err = format!("The PoV mode references an unknown storage item or pallet: `{}::{}`. You can ignore this warning by specifying `--ignore-unknown-pov-mode`", pallet, storage); + + if ignore_unknown_pov_mode { + log::warn!(target: LOG_TARGET, "Error demoted to warning due to `--ignore-unknown-pov-mode`: {}", err); + } else { + return Err(err.into()); + } + } + } + + Ok(()) + } + /// Sanity check the CLI arguments. fn check_args(&self) -> Result<()> { if self.runtime.is_some() && self.shared_params.chain.is_some() { diff --git a/substrate/utils/frame/benchmarking-cli/src/pallet/mod.rs b/substrate/utils/frame/benchmarking-cli/src/pallet/mod.rs index d05b52f1ac870..7f4ccab74c03a 100644 --- a/substrate/utils/frame/benchmarking-cli/src/pallet/mod.rs +++ b/substrate/utils/frame/benchmarking-cli/src/pallet/mod.rs @@ -128,6 +128,10 @@ pub struct PalletCmd { #[arg(long, default_value("max-encoded-len"), value_enum)] pub default_pov_mode: command::PovEstimationMode, + /// Ignore the error when PoV modes reference unknown storage items or pallets. + #[arg(long)] + pub ignore_unknown_pov_mode: bool, + /// Set the heap pages while running benchmarks. If not set, the default value from the client /// is used. #[arg(long)] diff --git a/substrate/utils/wasm-builder/Cargo.toml b/substrate/utils/wasm-builder/Cargo.toml index ad51182409e60..b8ea307799e31 100644 --- a/substrate/utils/wasm-builder/Cargo.toml +++ b/substrate/utils/wasm-builder/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substrate-wasm-builder" -version = "24.0.0" +version = "23.0.1" authors.workspace = true description = "Utility for building WASM binaries (polkadot v1.15.0)" edition.workspace = true diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index f2deb676f8ecd..6c63eee3c43e9 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -826,7 +826,7 @@ version = "37.0.0" path = "../substrate/frame/executive" default-features = false optional = true -version = "37.0.0" +version = "37.0.2" [dependencies.frame-metadata-hash-extension] path = "../substrate/frame/metadata-hash-extension" @@ -1654,7 +1654,7 @@ version = "34.0.0" path = "../substrate/primitives/api/proc-macro" default-features = false optional = true -version = "20.0.0" +version = "20.0.2" [dependencies.sp-application-crypto] path = "../substrate/primitives/application-crypto" @@ -1768,7 +1768,7 @@ version = "34.0.0" path = "../substrate/primitives/io" default-features = false optional = true -version = "38.0.0" +version = "38.0.1" [dependencies.sp-keyring] path = "../substrate/primitives/keyring" @@ -1936,13 +1936,13 @@ version = "14.1.0" path = "../polkadot/xcm/xcm-builder" default-features = false optional = true -version = "16.0.4" +version = "16.0.5" [dependencies.staging-xcm-executor] path = "../polkadot/xcm/xcm-executor" default-features = false optional = true -version = "16.0.0" +version = "16.0.1" [dependencies.substrate-bip39] path = "../substrate/utils/substrate-bip39" @@ -2818,7 +2818,7 @@ version = "37.0.0" path = "../substrate/utils/wasm-builder" default-features = false optional = true -version = "24.0.0" +version = "23.0.1" [dependencies.tracing-gum] path = "../polkadot/node/gum"