Skip to content

Commit

Permalink
fixed receive_delivery_proof_for_two_messages_by_two_relayers (#1764)
Browse files Browse the repository at this point in the history
  • Loading branch information
svyatonik committed Jan 12, 2023
1 parent ac0cf7b commit 41d91e9
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 23 deletions.
8 changes: 6 additions & 2 deletions bin/millau/runtime/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ impl pallet_bridge_messages::Config<WithRialtoMessagesInstance> for Runtime {
type DeliveryConfirmationPayments = pallet_bridge_relayers::DeliveryConfirmationPaymentsAdapter<
Runtime,
frame_support::traits::ConstU64<100_000>,
frame_support::traits::ConstU64<100_000>,
frame_support::traits::ConstU64<10_000>,
>;

type SourceHeaderChain = crate::rialto_messages::Rialto;
Expand Down Expand Up @@ -509,7 +509,7 @@ impl pallet_bridge_messages::Config<WithRialtoParachainMessagesInstance> for Run
type DeliveryConfirmationPayments = pallet_bridge_relayers::DeliveryConfirmationPaymentsAdapter<
Runtime,
frame_support::traits::ConstU64<100_000>,
frame_support::traits::ConstU64<100_000>,
frame_support::traits::ConstU64<10_000>,
>;

type SourceHeaderChain = crate::rialto_parachain_messages::RialtoParachain;
Expand Down Expand Up @@ -1037,6 +1037,10 @@ impl_runtime_apis! {
[0u8; 32].into()
}

fn is_relayer_rewarded(relayer: &Self::AccountId) -> bool {
pallet_bridge_relayers::Pallet::<Runtime>::relayer_reward(relayer, &Self::bench_lane_id()).is_some()
}

fn endow_account(account: &Self::AccountId) {
pallet_balances::Pallet::<Runtime>::make_free_balance_be(
account,
Expand Down
6 changes: 6 additions & 0 deletions modules/messages/src/benchmarking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ pub trait Config<I: 'static>: crate::Config<I> {
}
/// Return id of relayer account at the bridged chain.
fn bridged_relayer_id() -> Self::InboundRelayer;
/// Returns true if given relayer has been rewarded for some of its actions.
fn is_relayer_rewarded(relayer: &Self::AccountId) -> bool;
/// Create given account and give it enough balance for test purposes.
fn endow_account(account: &Self::AccountId);
/// Prepare messages proof to receive by the module.
Expand Down Expand Up @@ -287,6 +289,7 @@ benchmarks_instance_pallet! {
}: receive_messages_delivery_proof(RawOrigin::Signed(relayer_id.clone()), proof, relayers_state)
verify {
assert_eq!(OutboundLanes::<T, I>::get(T::bench_lane_id()).latest_received_nonce, 1);
assert!(T::is_relayer_rewarded(&relayer_id));
}

// Benchmark `receive_messages_delivery_proof` extrinsic with following conditions:
Expand Down Expand Up @@ -325,6 +328,7 @@ benchmarks_instance_pallet! {
}: receive_messages_delivery_proof(RawOrigin::Signed(relayer_id.clone()), proof, relayers_state)
verify {
assert_eq!(OutboundLanes::<T, I>::get(T::bench_lane_id()).latest_received_nonce, 2);
assert!(T::is_relayer_rewarded(&relayer_id));
}

// Benchmark `receive_messages_delivery_proof` extrinsic with following conditions:
Expand Down Expand Up @@ -368,6 +372,8 @@ benchmarks_instance_pallet! {
}: receive_messages_delivery_proof(RawOrigin::Signed(relayer1_id.clone()), proof, relayers_state)
verify {
assert_eq!(OutboundLanes::<T, I>::get(T::bench_lane_id()).latest_received_nonce, 2);
assert!(T::is_relayer_rewarded(&relayer1_id));
assert!(T::is_relayer_rewarded(&relayer2_id));
}
}

Expand Down
42 changes: 21 additions & 21 deletions modules/messages/src/weights.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
//! Autogenerated weights for `pallet_bridge_messages`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2022-12-21, STEPS: 50, REPEAT: 20
//! DATE: 2023-01-12, STEPS: 50, REPEAT: 20
//! LOW RANGE: [], HIGH RANGE: []
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled
//! CHAIN: Some("dev"), DB CACHE: 1024
Expand Down Expand Up @@ -66,87 +66,87 @@ pub trait WeightInfo {
pub struct BridgeWeight<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
fn receive_single_message_proof() -> Weight {
Weight::from_ref_time(60_148_000 as u64)
Weight::from_ref_time(95_401_000 as u64)
.saturating_add(T::DbWeight::get().reads(4 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
fn receive_two_messages_proof() -> Weight {
Weight::from_ref_time(71_836_000 as u64)
Weight::from_ref_time(127_794_000 as u64)
.saturating_add(T::DbWeight::get().reads(4 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
Weight::from_ref_time(66_845_000 as u64)
Weight::from_ref_time(105_698_000 as u64)
.saturating_add(T::DbWeight::get().reads(4 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
fn receive_single_message_proof_1_kb() -> Weight {
Weight::from_ref_time(69_696_000 as u64)
Weight::from_ref_time(92_963_000 as u64)
.saturating_add(T::DbWeight::get().reads(3 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
fn receive_single_message_proof_16_kb() -> Weight {
Weight::from_ref_time(123_646_000 as u64)
Weight::from_ref_time(158_449_000 as u64)
.saturating_add(T::DbWeight::get().reads(3 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
fn receive_delivery_proof_for_single_message() -> Weight {
Weight::from_ref_time(53_723_000 as u64)
Weight::from_ref_time(72_085_000 as u64)
.saturating_add(T::DbWeight::get().reads(4 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight {
Weight::from_ref_time(54_617_000 as u64)
Weight::from_ref_time(70_889_000 as u64)
.saturating_add(T::DbWeight::get().reads(4 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight {
Weight::from_ref_time(53_582_000 as u64)
.saturating_add(T::DbWeight::get().reads(4 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
Weight::from_ref_time(78_211_000 as u64)
.saturating_add(T::DbWeight::get().reads(5 as u64))
.saturating_add(T::DbWeight::get().writes(3 as u64))
}
}

// For backwards compatibility and tests
impl WeightInfo for () {
fn receive_single_message_proof() -> Weight {
Weight::from_ref_time(60_148_000 as u64)
Weight::from_ref_time(95_401_000 as u64)
.saturating_add(RocksDbWeight::get().reads(4 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
fn receive_two_messages_proof() -> Weight {
Weight::from_ref_time(71_836_000 as u64)
Weight::from_ref_time(127_794_000 as u64)
.saturating_add(RocksDbWeight::get().reads(4 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
Weight::from_ref_time(66_845_000 as u64)
Weight::from_ref_time(105_698_000 as u64)
.saturating_add(RocksDbWeight::get().reads(4 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
fn receive_single_message_proof_1_kb() -> Weight {
Weight::from_ref_time(69_696_000 as u64)
Weight::from_ref_time(92_963_000 as u64)
.saturating_add(RocksDbWeight::get().reads(3 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
fn receive_single_message_proof_16_kb() -> Weight {
Weight::from_ref_time(123_646_000 as u64)
Weight::from_ref_time(158_449_000 as u64)
.saturating_add(RocksDbWeight::get().reads(3 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
fn receive_delivery_proof_for_single_message() -> Weight {
Weight::from_ref_time(53_723_000 as u64)
Weight::from_ref_time(72_085_000 as u64)
.saturating_add(RocksDbWeight::get().reads(4 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight {
Weight::from_ref_time(54_617_000 as u64)
Weight::from_ref_time(70_889_000 as u64)
.saturating_add(RocksDbWeight::get().reads(4 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight {
Weight::from_ref_time(53_582_000 as u64)
.saturating_add(RocksDbWeight::get().reads(4 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
Weight::from_ref_time(78_211_000 as u64)
.saturating_add(RocksDbWeight::get().reads(5 as u64))
.saturating_add(RocksDbWeight::get().writes(3 as u64))
}
}

0 comments on commit 41d91e9

Please sign in to comment.