From 2a0f7c7d1702b6c4fefd8048bb4c3ddc9b8c9720 Mon Sep 17 00:00:00 2001 From: Svyatoslav Nikolsky Date: Mon, 14 Dec 2020 10:10:05 +0300 Subject: [PATCH] fix send_message_worst_case (#571) --- bridges/bin/rialto/runtime/src/lib.rs | 6 ++++-- bridges/modules/message-lane/src/benchmarking.rs | 11 ++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/bridges/bin/rialto/runtime/src/lib.rs b/bridges/bin/rialto/runtime/src/lib.rs index b5b1d2ddde..ff078a3b2b 100644 --- a/bridges/bin/rialto/runtime/src/lib.rs +++ b/bridges/bin/rialto/runtime/src/lib.rs @@ -830,7 +830,7 @@ impl_runtime_apis! { } fn prepare_message( - params: MessageLaneMessageParams, + params: MessageLaneMessageParams, ) -> (millau_messages::ToMillauMessagePayload, Balance) { use crate::millau_messages::{ToMillauMessagePayload, WithMillauMessageBridge}; use bridge_runtime_common::messages; @@ -843,7 +843,9 @@ impl_runtime_apis! { * sp_std::cmp::min(factor, WORST_MESSAGE_SIZE_FACTOR), }; let message_payload = vec![0; message_size as usize]; - let dispatch_origin = pallet_bridge_call_dispatch::CallOrigin::SourceAccount(Default::default()); + let dispatch_origin = pallet_bridge_call_dispatch::CallOrigin::SourceAccount( + params.sender_account, + ); let message = ToMillauMessagePayload { spec_version: 0, diff --git a/bridges/modules/message-lane/src/benchmarking.rs b/bridges/modules/message-lane/src/benchmarking.rs index 98fc68eae0..ce1d4eb19c 100644 --- a/bridges/modules/message-lane/src/benchmarking.rs +++ b/bridges/modules/message-lane/src/benchmarking.rs @@ -34,11 +34,13 @@ const SEED: u32 = 0; pub struct Module, I: crate::Instance>(crate::Module); /// Benchmark-specific message parameters. -pub struct MessageParams { +pub struct MessageParams { /// Size factor of the message payload. Message payload grows with every factor /// increment. Zero is the smallest possible message and the `WORST_MESSAGE_SIZE_FACTOR` is /// largest possible message. pub size_factor: u32, + /// Message sender account. + pub sender_account: ThisAccountId, } /// Trait that must be implemented by runtime. @@ -46,7 +48,7 @@ pub trait Trait: crate::Trait { /// Create given account and give it enough balance for test purposes. fn endow_account(account: &Self::AccountId); /// Prepare message to send over lane. - fn prepare_message(params: MessageParams) -> (Self::OutboundPayload, Self::OutboundMessageFee); + fn prepare_message(params: MessageParams) -> (Self::OutboundPayload, Self::OutboundMessageFee); } benchmarks_instance! { @@ -70,7 +72,10 @@ benchmarks_instance! { } confirm_message_delivery::(T::MaxMessagesToPruneAtOnce::get()); - let (payload, fee) = T::prepare_message(MessageParams { size_factor: WORST_MESSAGE_SIZE_FACTOR }); + let (payload, fee) = T::prepare_message(MessageParams { + size_factor: WORST_MESSAGE_SIZE_FACTOR, + sender_account: sender.clone(), + }); }: send_message(RawOrigin::Signed(sender), lane_id, payload, fee) }