mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 20:11:09 +00:00
Bring apopiak/prepare-v6-release to the release for v6 (#741)
* disable permissionless asset creation for Statemint (#669) * disable permissionless asset creation for Statemint * Companion for polkadot#3728 (#693) * Update mock runtime API * update Polkadot packages Co-authored-by: joao-paulo-parity <joao-paulo@parity.io> * Ensure a bad datastream cannot cause problems (#701) * Allow Queries and Subscriptions (#700) * Bump syn to 1.0.81 (#707) * Update Substrate & Polkadot (#709) * Udpate polkadot substrate (#713) * fmt with latest nightly * Bump subwasm version (#716) * Companion for `dispatch_as` (#715) * dispatch as companion * Upstream Statemine Release v5 Changes to Master (#720) * set substrate deps for pallet-asset-tx-payment * add DisabledValidatorsThreshold to parachain template * add DisabledValidatorsThreshold to mock config * adjust on_disabled type * remove on_chain_votes function in ParachainHost impl * remove ScrapedOnChainVotes * bump polkadot-collator version Co-authored-by: Chevdor <chevdor@users.noreply.github.com> * set spec_versions to 500 * Statemine cannot execute. * disallow XCM execute on statemint * remove unnecessary dep on node-primitives * select parachains-common/std feature when building rococo-runtime with std * adjust Statemint to the three digit spec_version format * Add script to generate simple changelogs (#668) * Update weights from v4 for v5 comparison (#673) * updates weights * pallet_unique benchmarks added + weights upstream from v4 * Fix benchmarks after Parachain Template (#677) * pallet_unique benchmarks added + weights upstream from v4 * benchmarks fix for parachain template * Weights updates for Statemine v5 (#682) * pallet_unique benchmarks added + weights upstream from v4 * weights updates for statemine v5 * mention Storage in construct_runtime macro for pallet-xcm (#680) * Use pallet-xcm for version wrapping (#689) * use PolkadotXcm for XcmRouter WrapVersion * use PolkadotXcm for version wrapping Co-authored-by: Bryan Chen <xlchen1291@gmail.com> * patch weight for batch_all from rerun * Runtime version bump to v503 (#694) * adjust genesis value generation scripts to output entries array + add script to derive encoded call * add script to generate shell spec from runtime wasm * Ensure a bad datastream cannot cause problems (#701) * Ensure a bad datastream cannot cause problems * update Polkadot (to 0.9.11 169bab55d) * bump spec versions * Allow Queries and Subscriptions * statemint imports * slight naming changes in script * add shell genesis data + wasm + chainspec * adjust generated shell spec with production config values * update Substrate and Polkadot to master * swap out bootnodes for statemint shell * add a script for verifying the shell chain spec * add sha checksum for head data * remove verification script * remove hex wasm file * update Substrate and Polkadot again and fix compilation * remove redundant dispatch_as weight Co-authored-by: Bastian Köcher <info@kchr.de> Co-authored-by: Chevdor <chevdor@users.noreply.github.com> Co-authored-by: Gav Wood <gavin@parity.io> Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com> Co-authored-by: Bryan Chen <xlchen1291@gmail.com> Co-authored-by: joepetrowski <joe@parity.io> * Rework the runtime upgrade test (#727) * Rework the runtime upgrade test * Update test/service/tests/runtime_upgrade.rs Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> * Remove randomness collective flip new (#726) * randomess collective flip removed * remove migration for statemint Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * adjust XCM unit weights to 1B (#735) * Align Call Indices between Westmint and Statemint (#731) * align construct_runtime calls between statemint runtimes * bump westmint transaction_version * bump spec_version (#733) * point back to Polkadot 0.9.12 * adjust code to work with 0.9.12 again * adjust network test back to polkadot 0.9.12 * Align the Statemint Runtimes (#736) * align the different Statemint runtimes so they are more similar in structure * align Unpaid Execution filter * revert changes to Unpaid execution filter for Westmint * Bump spec versions (#742) Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> Co-authored-by: Chris Sosnin <48099298+slumber@users.noreply.github.com> Co-authored-by: joao-paulo-parity <joao-paulo@parity.io> Co-authored-by: Gavin Wood <gavin@parity.io> Co-authored-by: Keith Yeung <kungfukeith11@gmail.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com> Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> Co-authored-by: Bastian Köcher <info@kchr.de> Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com> Co-authored-by: Bryan Chen <xlchen1291@gmail.com> Co-authored-by: joepetrowski <joe@parity.io>
This commit is contained in:
@@ -401,23 +401,26 @@ impl<T: Config> Pallet<T> {
|
||||
XcmpMessageFormat::ConcatenatedEncodedBlob => {
|
||||
while !remaining_fragments.is_empty() {
|
||||
last_remaining_fragments = remaining_fragments;
|
||||
if let Ok(blob) = <Vec<u8>>::decode_all(&mut remaining_fragments) {
|
||||
let weight = max_weight - weight_used;
|
||||
match Self::handle_blob_message(sender, sent_at, blob, weight) {
|
||||
Ok(used) => weight_used = weight_used.saturating_add(used),
|
||||
Err(true) => {
|
||||
// That message didn't get processed this time because of being
|
||||
// too heavy. We leave it around for next time and bail.
|
||||
remaining_fragments = last_remaining_fragments;
|
||||
break
|
||||
},
|
||||
Err(false) => {
|
||||
// Message invalid; don't attempt to retry
|
||||
},
|
||||
}
|
||||
} else {
|
||||
debug_assert!(false, "Invalid incoming blob message data");
|
||||
remaining_fragments = &b""[..];
|
||||
match <Vec<u8>>::decode_all(&mut remaining_fragments) {
|
||||
Ok(blob) if remaining_fragments.len() < last_remaining_fragments.len() => {
|
||||
let weight = max_weight - weight_used;
|
||||
match Self::handle_blob_message(sender, sent_at, blob, weight) {
|
||||
Ok(used) => weight_used = weight_used.saturating_add(used),
|
||||
Err(true) => {
|
||||
// That message didn't get processed this time because of being
|
||||
// too heavy. We leave it around for next time and bail.
|
||||
remaining_fragments = last_remaining_fragments;
|
||||
break
|
||||
},
|
||||
Err(false) => {
|
||||
// Message invalid; don't attempt to retry
|
||||
},
|
||||
}
|
||||
},
|
||||
_ => {
|
||||
debug_assert!(false, "Invalid incoming blob message data");
|
||||
remaining_fragments = &b""[..];
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
use super::*;
|
||||
use cumulus_primitives_core::XcmpMessageHandler;
|
||||
use mock::{new_test_ext, XcmpQueue};
|
||||
use mock::{new_test_ext, Test, XcmpQueue};
|
||||
|
||||
#[test]
|
||||
fn one_message_does_not_panic() {
|
||||
@@ -27,3 +27,35 @@ fn one_message_does_not_panic() {
|
||||
XcmpQueue::handle_xcmp_messages(messages.into_iter(), Weight::max_value());
|
||||
})
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic = "Invalid incoming blob message data"]
|
||||
fn bad_message_is_handled() {
|
||||
new_test_ext().execute_with(|| {
|
||||
let bad_data = vec![
|
||||
1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 64, 239, 139, 0,
|
||||
0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 37, 0,
|
||||
0, 0, 0, 0, 0, 0, 16, 0, 127, 147,
|
||||
];
|
||||
InboundXcmpMessages::<Test>::insert(ParaId::from(1000), 1, bad_data);
|
||||
let format = XcmpMessageFormat::ConcatenatedEncodedBlob;
|
||||
// This should exit with an error.
|
||||
XcmpQueue::process_xcmp_message(1000.into(), (1, format), 10_000_000_000);
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic = "Invalid incoming blob message data"]
|
||||
fn other_bad_message_is_handled() {
|
||||
new_test_ext().execute_with(|| {
|
||||
let bad_data = vec![
|
||||
1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 64, 239,
|
||||
139, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0,
|
||||
37, 0, 0, 0, 0, 0, 0, 0, 16, 0, 127, 147,
|
||||
];
|
||||
InboundXcmpMessages::<Test>::insert(ParaId::from(1000), 1, bad_data);
|
||||
let format = XcmpMessageFormat::ConcatenatedEncodedBlob;
|
||||
// This should exit with an error.
|
||||
XcmpQueue::process_xcmp_message(1000.into(), (1, format), 10_000_000_000);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user