mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 10:31:03 +00:00
* Work with new ProcessMessage ID API * Enable new ProcessMessage API * Formatting * Fixes * Bump * cargo update -p sp-io Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> --------- Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
Generated
+200
-187
File diff suppressed because it is too large
Load Diff
@@ -210,6 +210,8 @@ runtime-metrics = [ "polkadot-cli/runtime-metrics" ]
|
||||
pyroscope = ["polkadot-cli/pyroscope"]
|
||||
jemalloc-allocator = ["polkadot-node-core-pvf-worker/jemalloc-allocator", "polkadot-overseer/jemalloc-allocator"]
|
||||
|
||||
|
||||
|
||||
# Configuration for building a .deb package - for use with `cargo-deb`
|
||||
[package.metadata.deb]
|
||||
name = "polkadot"
|
||||
|
||||
@@ -1127,6 +1127,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
message: &[u8],
|
||||
origin: Self::Origin,
|
||||
meter: &mut WeightMeter,
|
||||
id: &mut [u8; 32],
|
||||
) -> Result<bool, ProcessMessageError> {
|
||||
let para = match origin {
|
||||
AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para,
|
||||
@@ -1135,7 +1136,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
Junction,
|
||||
xcm_executor::XcmExecutor<xcm_config::XcmConfig>,
|
||||
RuntimeCall,
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter)
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter, id)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -432,6 +432,7 @@ impl ProcessMessage for TestProcessMessage {
|
||||
message: &[u8],
|
||||
origin: AggregateMessageOrigin,
|
||||
meter: &mut WeightMeter,
|
||||
_id: &mut [u8; 32],
|
||||
) -> Result<bool, ProcessMessageError> {
|
||||
let para = match origin {
|
||||
AggregateMessageOrigin::Ump(UmpQueueId::Para(p)) => p,
|
||||
|
||||
@@ -32,7 +32,8 @@ use frame_support::{
|
||||
};
|
||||
use primitives::v4::{well_known_keys, Id as ParaId, UpwardMessage};
|
||||
use sp_core::twox_64;
|
||||
use sp_runtime::traits::{Bounded, Hash};
|
||||
use sp_io::hashing::blake2_256;
|
||||
use sp_runtime::traits::Bounded;
|
||||
use sp_std::prelude::*;
|
||||
|
||||
pub(super) struct GenesisConfigBuilder {
|
||||
@@ -516,27 +517,27 @@ fn overweight_queue_works() {
|
||||
queue_upward_msg(para_a, a_msg_3.clone());
|
||||
|
||||
MessageQueue::service_queues(Weight::from_parts(500, 500));
|
||||
let hash_1 = <<Test as frame_system::Config>::Hashing as Hash>::hash(&a_msg_1[..]);
|
||||
let hash_2 = <<Test as frame_system::Config>::Hashing as Hash>::hash(&a_msg_2[..]);
|
||||
let hash_3 = <<Test as frame_system::Config>::Hashing as Hash>::hash(&a_msg_3[..]);
|
||||
let hash_1 = blake2_256(&a_msg_1[..]);
|
||||
let hash_2 = blake2_256(&a_msg_2[..]);
|
||||
let hash_3 = blake2_256(&a_msg_3[..]);
|
||||
assert_last_events(
|
||||
[
|
||||
pallet_message_queue::Event::<Test>::Processed {
|
||||
hash: hash_1.clone(),
|
||||
id: hash_1.clone(),
|
||||
origin: Ump(UmpQueueId::Para(para_a)),
|
||||
weight_used: Weight::from_parts(301, 301),
|
||||
success: true,
|
||||
}
|
||||
.into(),
|
||||
pallet_message_queue::Event::<Test>::OverweightEnqueued {
|
||||
hash: hash_2.clone(),
|
||||
id: hash_2.clone(),
|
||||
origin: Ump(UmpQueueId::Para(para_a)),
|
||||
page_index: 0,
|
||||
message_index: 1,
|
||||
}
|
||||
.into(),
|
||||
pallet_message_queue::Event::<Test>::OverweightEnqueued {
|
||||
hash: hash_3.clone(),
|
||||
id: hash_3.clone(),
|
||||
origin: Ump(UmpQueueId::Para(para_a)),
|
||||
page_index: 0,
|
||||
message_index: 2,
|
||||
@@ -564,7 +565,7 @@ fn overweight_queue_works() {
|
||||
));
|
||||
assert_last_event(
|
||||
pallet_message_queue::Event::<Test>::Processed {
|
||||
hash: hash_3,
|
||||
id: hash_3,
|
||||
origin: Ump(UmpQueueId::Para(para_a)),
|
||||
weight_used: Weight::from_parts(501, 501),
|
||||
success: true,
|
||||
|
||||
@@ -1137,6 +1137,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
message: &[u8],
|
||||
origin: Self::Origin,
|
||||
meter: &mut WeightMeter,
|
||||
id: &mut [u8; 32],
|
||||
) -> Result<bool, ProcessMessageError> {
|
||||
let para = match origin {
|
||||
AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para,
|
||||
@@ -1145,7 +1146,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
Junction,
|
||||
xcm_executor::XcmExecutor<xcm_config::XcmConfig>,
|
||||
RuntimeCall,
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter)
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter, id)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1064,6 +1064,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
message: &[u8],
|
||||
origin: Self::Origin,
|
||||
meter: &mut WeightMeter,
|
||||
id: &mut [u8; 32],
|
||||
) -> Result<bool, ProcessMessageError> {
|
||||
let para = match origin {
|
||||
AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para,
|
||||
@@ -1072,7 +1073,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
Junction,
|
||||
xcm_executor::XcmExecutor<xcm_config::XcmConfig>,
|
||||
RuntimeCall,
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter)
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter, id)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -937,6 +937,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
message: &[u8],
|
||||
origin: Self::Origin,
|
||||
meter: &mut WeightMeter,
|
||||
id: &mut [u8; 32],
|
||||
) -> Result<bool, ProcessMessageError> {
|
||||
let para = match origin {
|
||||
AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para,
|
||||
@@ -945,7 +946,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
Junction,
|
||||
xcm_executor::XcmExecutor<xcm_config::XcmConfig>,
|
||||
RuntimeCall,
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter)
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter, id)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,6 @@ use frame_support::{
|
||||
};
|
||||
use parity_scale_codec::{Decode, FullCodec, MaxEncodedLen};
|
||||
use scale_info::TypeInfo;
|
||||
use sp_io::hashing::blake2_256;
|
||||
use sp_std::{fmt::Debug, marker::PhantomData};
|
||||
use sp_weights::{Weight, WeightMeter};
|
||||
use xcm::prelude::*;
|
||||
@@ -44,8 +43,8 @@ impl<
|
||||
message: &[u8],
|
||||
origin: Self::Origin,
|
||||
meter: &mut WeightMeter,
|
||||
id: &mut XcmHash,
|
||||
) -> Result<bool, ProcessMessageError> {
|
||||
let hash = blake2_256(message);
|
||||
let versioned_message = VersionedXcm::<Call>::decode(&mut &message[..])
|
||||
.map_err(|_| ProcessMessageError::Corrupt)?;
|
||||
let message = Xcm::<Call>::try_from(versioned_message)
|
||||
@@ -54,8 +53,8 @@ impl<
|
||||
let required = pre.weight_of();
|
||||
ensure!(meter.can_accrue(required), ProcessMessageError::Overweight(required));
|
||||
|
||||
let (consumed, result) =
|
||||
match XcmExecutor::execute(origin.into(), pre, hash, Weight::zero()) {
|
||||
let (consumed, result) = match XcmExecutor::execute(origin.into(), pre, *id, Weight::zero())
|
||||
{
|
||||
Outcome::Complete(w) => (w, Ok(true)),
|
||||
Outcome::Incomplete(w, _) => (w, Ok(false)),
|
||||
// In the error-case we assume the worst case and consume all possible weight.
|
||||
@@ -112,8 +111,9 @@ mod tests {
|
||||
// Errors if we stay below a weight limit of 1000.
|
||||
for i in 0..10 {
|
||||
let meter = &mut WeightMeter::from_limit((i * 10).into());
|
||||
let mut id = [0; 32];
|
||||
assert_err!(
|
||||
Processor::process_message(msg, ORIGIN, meter),
|
||||
Processor::process_message(msg, ORIGIN, meter, &mut id),
|
||||
Overweight(1000.into())
|
||||
);
|
||||
assert_eq!(meter.consumed, 0.into());
|
||||
@@ -121,7 +121,8 @@ mod tests {
|
||||
|
||||
// Works with a limit of 1000.
|
||||
let meter = &mut WeightMeter::from_limit(1000.into());
|
||||
assert_ok!(Processor::process_message(msg, ORIGIN, meter));
|
||||
let mut id = [0; 32];
|
||||
assert_ok!(Processor::process_message(msg, ORIGIN, meter, &mut id));
|
||||
assert_eq!(meter.consumed, 1000.into());
|
||||
}
|
||||
}
|
||||
@@ -149,6 +150,6 @@ mod tests {
|
||||
}
|
||||
|
||||
fn process_raw(raw: &[u8]) -> Result<bool, ProcessMessageError> {
|
||||
Processor::process_message(raw, ORIGIN, &mut WeightMeter::max_limit())
|
||||
Processor::process_message(raw, ORIGIN, &mut WeightMeter::max_limit(), &mut [0; 32])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,6 +257,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
message: &[u8],
|
||||
origin: Self::Origin,
|
||||
meter: &mut WeightMeter,
|
||||
id: &mut [u8; 32],
|
||||
) -> Result<bool, ProcessMessageError> {
|
||||
let para = match origin {
|
||||
AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para,
|
||||
@@ -265,7 +266,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
Junction,
|
||||
xcm_executor::XcmExecutor<XcmConfig>,
|
||||
RuntimeCall,
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter)
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter, id)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -221,6 +221,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
message: &[u8],
|
||||
origin: Self::Origin,
|
||||
meter: &mut WeightMeter,
|
||||
id: &mut [u8; 32],
|
||||
) -> Result<bool, ProcessMessageError> {
|
||||
let para = match origin {
|
||||
AggregateMessageOrigin::Ump(UmpQueueId::Para(para)) => para,
|
||||
@@ -229,7 +230,7 @@ impl ProcessMessage for MessageProcessor {
|
||||
Junction,
|
||||
xcm_executor::XcmExecutor<XcmConfig>,
|
||||
RuntimeCall,
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter)
|
||||
>::process_message(message, Junction::Parachain(para.into()), meter, id)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -123,6 +123,7 @@ macro_rules! decl_test_relay_chain {
|
||||
msg: &[u8],
|
||||
para: Self::Origin,
|
||||
meter: &mut $crate::WeightMeter,
|
||||
id: &mut [u8; 32],
|
||||
) -> Result<bool, $crate::ProcessMessageError> {
|
||||
use $crate::{Weight, AggregateMessageOrigin, UmpQueueId, ServiceQueues, EnqueueMessage};
|
||||
use $mq as message_queue;
|
||||
@@ -320,9 +321,11 @@ macro_rules! decl_test_network {
|
||||
match destination.interior() {
|
||||
$crate::Junctions::Here if destination.parent_count() == 1 => {
|
||||
let encoded = $crate::encode_xcm(message, $crate::MessageKind::Ump);
|
||||
let mut _id = [0; 32];
|
||||
let r = <$relay_chain>::process_message(
|
||||
encoded.as_slice(), para_id,
|
||||
&mut $crate::WeightMeter::max_limit(),
|
||||
&mut _id,
|
||||
);
|
||||
match r {
|
||||
Err($crate::ProcessMessageError::Overweight(required)) =>
|
||||
|
||||
Reference in New Issue
Block a user