Skip to content

Commit

Permalink
emit event on remark (paritytech#8120)
Browse files Browse the repository at this point in the history
Co-authored-by: Parity Benchmarking Bot <[email protected]>
Co-authored-by: Shawn Tabrizi <[email protected]>
  • Loading branch information
3 people authored and jam10o-new committed Feb 28, 2021
1 parent 4cdc230 commit 80a9616
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 20 deletions.
6 changes: 6 additions & 0 deletions frame/system/benchmarking/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ benchmarks! {
let caller = whitelisted_caller();
}: _(RawOrigin::Signed(caller), remark_message)

remark_with_event {
let b in 0 .. *T::BlockLength::get().max.get(DispatchClass::Normal) as u32;
let remark_message = vec![1; b as usize];
let caller = whitelisted_caller();
}: _(RawOrigin::Signed(caller), remark_message)

set_heap_pages {
}: _(RawOrigin::Root, Default::default())

Expand Down
20 changes: 17 additions & 3 deletions frame/system/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -292,8 +292,6 @@ pub mod pallet {
///
/// # <weight>
/// - `O(1)`
/// - Base Weight: 0.665 µs, independent of remark length.
/// - No DB operations.
/// # </weight>
#[pallet::weight(T::SystemWeightInfo::remark(_remark.len() as u32))]
pub(crate) fn remark(origin: OriginFor<T>, _remark: Vec<u8>) -> DispatchResultWithPostInfo {
Expand Down Expand Up @@ -450,11 +448,25 @@ pub mod pallet {
storage::unhashed::kill_prefix(&prefix);
Ok(().into())
}

/// Make some on-chain remark and emit event.
///
/// # <weight>
/// - `O(b)` where b is the length of the remark.
/// - 1 event.
/// # </weight>
#[pallet::weight(T::SystemWeightInfo::remark_with_event(remark.len() as u32))]
pub(crate) fn remark_with_event(origin: OriginFor<T>, remark: Vec<u8>) -> DispatchResultWithPostInfo {
let who = ensure_signed(origin)?;
let hash = T::Hashing::hash(&remark[..]);
Self::deposit_event(Event::Remarked(who, hash));
Ok(().into())
}
}

/// Event for the System pallet.
#[pallet::event]
#[pallet::metadata(T::AccountId = "AccountId")]
#[pallet::metadata(T::AccountId = "AccountId", T::Hash = "Hash")]
pub enum Event<T: Config> {
/// An extrinsic completed successfully. \[info\]
ExtrinsicSuccess(DispatchInfo),
Expand All @@ -466,6 +478,8 @@ pub mod pallet {
NewAccount(T::AccountId),
/// An \[account\] was reaped.
KilledAccount(T::AccountId),
/// On on-chain remark happened. \[origin, remark_hash\]
Remarked(T::AccountId, T::Hash),
}

/// Old name generated by `decl_event`.
Expand Down
45 changes: 28 additions & 17 deletions frame/system/src/weights.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
//! Autogenerated weights for frame_system
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0
//! DATE: 2021-02-23, STEPS: [50, ], REPEAT: 20, LOW RANGE: [], HIGH RANGE: []
//! DATE: 2021-02-27, STEPS: [50, ], REPEAT: 20, LOW RANGE: [], HIGH RANGE: []
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128
// Executed Command:
Expand All @@ -45,6 +45,7 @@ use sp_std::marker::PhantomData;
/// Weight functions needed for frame_system.
pub trait WeightInfo {
fn remark(b: u32, ) -> Weight;
fn remark_with_event(b: u32, ) -> Weight;
fn set_heap_pages() -> Weight;
fn set_changes_trie_config() -> Weight;
fn set_storage(i: u32, ) -> Weight;
Expand All @@ -56,67 +57,77 @@ pub trait WeightInfo {
pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: crate::Config> WeightInfo for SubstrateWeight<T> {
fn remark(_b: u32, ) -> Weight {
(1_279_000 as Weight)
(1_296_000 as Weight)
}
fn remark_with_event(b: u32, ) -> Weight {
(13_474_000 as Weight)
// Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(b as Weight))
}
fn set_heap_pages() -> Weight {
(2_167_000 as Weight)
(2_024_000 as Weight)
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn set_changes_trie_config() -> Weight {
(10_117_000 as Weight)
(10_551_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
}
fn set_storage(i: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 0
.saturating_add((608_000 as Weight).saturating_mul(i as Weight))
.saturating_add((612_000 as Weight).saturating_mul(i as Weight))
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight)))
}
fn kill_storage(i: u32, ) -> Weight {
(3_199_000 as Weight)
(562_000 as Weight)
// Standard Error: 0
.saturating_add((450_000 as Weight).saturating_mul(i as Weight))
.saturating_add((442_000 as Weight).saturating_mul(i as Weight))
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight)))
}
fn kill_prefix(p: u32, ) -> Weight {
(8_966_000 as Weight)
(10_499_000 as Weight)
// Standard Error: 1_000
.saturating_add((845_000 as Weight).saturating_mul(p as Weight))
.saturating_add((840_000 as Weight).saturating_mul(p as Weight))
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(p as Weight)))
}
}

// For backwards compatibility and tests
impl WeightInfo for () {
fn remark(_b: u32, ) -> Weight {
(1_279_000 as Weight)
(1_296_000 as Weight)
}
fn remark_with_event(b: u32, ) -> Weight {
(13_474_000 as Weight)
// Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(b as Weight))
}
fn set_heap_pages() -> Weight {
(2_167_000 as Weight)
(2_024_000 as Weight)
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
fn set_changes_trie_config() -> Weight {
(10_117_000 as Weight)
(10_551_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
fn set_storage(i: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 0
.saturating_add((608_000 as Weight).saturating_mul(i as Weight))
.saturating_add((612_000 as Weight).saturating_mul(i as Weight))
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(i as Weight)))
}
fn kill_storage(i: u32, ) -> Weight {
(3_199_000 as Weight)
(562_000 as Weight)
// Standard Error: 0
.saturating_add((450_000 as Weight).saturating_mul(i as Weight))
.saturating_add((442_000 as Weight).saturating_mul(i as Weight))
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(i as Weight)))
}
fn kill_prefix(p: u32, ) -> Weight {
(8_966_000 as Weight)
(10_499_000 as Weight)
// Standard Error: 1_000
.saturating_add((845_000 as Weight).saturating_mul(p as Weight))
.saturating_add((840_000 as Weight).saturating_mul(p as Weight))
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(p as Weight)))
}
}

0 comments on commit 80a9616

Please sign in to comment.