Skip to content

Commit b537228

Browse files
authored
Endow relayer account at target chain in message benchmarks (paritytech#1310)
* endow relayer account at target chain in message benchmarks * pick another line
1 parent dd1d646 commit b537228

2 files changed

Lines changed: 32 additions & 6 deletions

File tree

bin/runtime-common/src/messages_benchmarking.rs

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,29 @@ use sp_std::{fmt::Debug, prelude::*};
4343
use sp_trie::{record_all_keys, trie_types::TrieDBMutV1, LayoutV1, MemoryDB, Recorder, TrieMut};
4444
use sp_version::RuntimeVersion;
4545

46+
/// Return this chain account, used to dispatch message.
47+
pub fn dispatch_account<B>() -> AccountIdOf<ThisChain<B>>
48+
where
49+
B: MessageBridge,
50+
SignerOf<ThisChain<B>>:
51+
From<sp_core::ed25519::Public> + IdentifyAccount<AccountId = AccountIdOf<ThisChain<B>>>,
52+
{
53+
let this_raw_public = PublicKey::from(&dispatch_account_secret());
54+
let this_public: SignerOf<ThisChain<B>> =
55+
sp_core::ed25519::Public::from_raw(this_raw_public.to_bytes()).into();
56+
this_public.into_account()
57+
}
58+
59+
/// Return public key of this chain account, used to dispatch message.
60+
pub fn dispatch_account_secret() -> SecretKey {
61+
// key from the repo example (https://docs.rs/ed25519-dalek/1.0.1/ed25519_dalek/struct.SecretKey.html)
62+
SecretKey::from_bytes(&[
63+
157, 097, 177, 157, 239, 253, 090, 096, 186, 132, 074, 244, 146, 236, 044, 196, 068, 073,
64+
197, 105, 123, 050, 105, 025, 112, 059, 172, 003, 028, 174, 127, 096,
65+
])
66+
.expect("harcoded key is valid")
67+
}
68+
4669
/// Prepare outbound message for the `send_message` call.
4770
pub fn prepare_outbound_message<B>(
4871
params: MessageParams<AccountIdOf<ThisChain<B>>>,
@@ -82,6 +105,7 @@ where
82105
FI: 'static,
83106
BH: Header<Hash = HashOf<BridgedChain<B>>>,
84107
BHH: Hasher<Out = HashOf<BridgedChain<B>>>,
108+
AccountIdOf<ThisChain<B>>: PartialEq + sp_std::fmt::Debug,
85109
AccountIdOf<BridgedChain<B>>: From<[u8; 32]>,
86110
BalanceOf<ThisChain<B>>: Debug + MaybeSerializeDeserialize,
87111
CallOf<ThisChain<B>>: From<frame_system::Call<R>> + GetDispatchInfo,
@@ -116,6 +140,7 @@ where
116140

117141
// if dispatch fee is paid at this chain, endow relayer account
118142
if params.dispatch_fee_payment == DispatchFeePayment::AtTargetChain {
143+
assert_eq!(this_public.clone().into_account(), dispatch_account::<B>());
119144
pallet_balances::Pallet::<R, BI>::make_free_balance_be(
120145
&this_public.clone().into_account(),
121146
endow_amount,
@@ -298,12 +323,7 @@ fn ed25519_sign(
298323
source_chain_id: ChainId,
299324
target_chain_id: ChainId,
300325
) -> ([u8; 32], [u8; 64]) {
301-
// key from the repo example (https://docs.rs/ed25519-dalek/1.0.1/ed25519_dalek/struct.SecretKey.html)
302-
let target_secret = SecretKey::from_bytes(&[
303-
157, 097, 177, 157, 239, 253, 090, 096, 186, 132, 074, 244, 146, 236, 044, 196, 068, 073,
304-
197, 105, 123, 050, 105, 025, 112, 059, 172, 003, 028, 174, 127, 096,
305-
])
306-
.expect("harcoded key is valid");
326+
let target_secret = dispatch_account_secret();
307327
let target_public: PublicKey = (&target_secret).into();
308328

309329
let mut target_pair_bytes = [0u8; KEYPAIR_LENGTH];

modules/messages/src/benchmarking.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,7 @@ benchmarks_instance_pallet! {
293293
receive_single_message_proof {
294294
let relayer_id_on_source = T::bridged_relayer_id();
295295
let relayer_id_on_target = account("relayer", 0, SEED);
296+
T::endow_account(&relayer_id_on_target);
296297

297298
// mark messages 1..=20 as delivered
298299
receive_messages::<T, I>(20);
@@ -327,6 +328,7 @@ benchmarks_instance_pallet! {
327328
receive_two_messages_proof {
328329
let relayer_id_on_source = T::bridged_relayer_id();
329330
let relayer_id_on_target = account("relayer", 0, SEED);
331+
T::endow_account(&relayer_id_on_target);
330332

331333
// mark messages 1..=20 as delivered
332334
receive_messages::<T, I>(20);
@@ -361,6 +363,7 @@ benchmarks_instance_pallet! {
361363
receive_single_message_proof_with_outbound_lane_state {
362364
let relayer_id_on_source = T::bridged_relayer_id();
363365
let relayer_id_on_target = account("relayer", 0, SEED);
366+
T::endow_account(&relayer_id_on_target);
364367

365368
// mark messages 1..=20 as delivered
366369
receive_messages::<T, I>(20);
@@ -396,6 +399,7 @@ benchmarks_instance_pallet! {
396399
receive_single_message_proof_1_kb {
397400
let relayer_id_on_source = T::bridged_relayer_id();
398401
let relayer_id_on_target = account("relayer", 0, SEED);
402+
T::endow_account(&relayer_id_on_target);
399403

400404
// mark messages 1..=20 as delivered
401405
receive_messages::<T, I>(20);
@@ -430,6 +434,7 @@ benchmarks_instance_pallet! {
430434
receive_single_message_proof_16_kb {
431435
let relayer_id_on_source = T::bridged_relayer_id();
432436
let relayer_id_on_target = account("relayer", 0, SEED);
437+
T::endow_account(&relayer_id_on_target);
433438

434439
// mark messages 1..=20 as delivered
435440
receive_messages::<T, I>(20);
@@ -463,6 +468,7 @@ benchmarks_instance_pallet! {
463468
receive_single_prepaid_message_proof {
464469
let relayer_id_on_source = T::bridged_relayer_id();
465470
let relayer_id_on_target = account("relayer", 0, SEED);
471+
T::endow_account(&relayer_id_on_target);
466472

467473
// mark messages 1..=20 as delivered
468474
receive_messages::<T, I>(20);

0 commit comments

Comments
 (0)