pallet_derivatives/
benchmarking.rs1use super::{Pallet as Derivatives, *};
19use frame_benchmarking::v2::*;
20
21pub struct Pallet<T: Config<I>, I: 'static = ()>(Derivatives<T, I>);
22
23pub trait Config<I: 'static = ()>: super::Config<I> {
24 fn max_original() -> OriginalOf<Self, I>;
25}
26
27#[instance_benchmarks]
28mod benchmarks {
29 use super::*;
30
31 #[benchmark]
32 fn create_derivative() -> Result<(), BenchmarkError> {
33 let create_origin =
34 T::CreateOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
35
36 let original = T::max_original();
37
38 #[extrinsic_call]
39 _(create_origin as T::RuntimeOrigin, original);
40
41 Ok(())
42 }
43
44 #[benchmark]
45 fn destroy_derivative() -> Result<(), BenchmarkError> {
46 let create_origin =
47 T::CreateOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
48
49 let destroy_origin =
50 T::DestroyOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
51
52 let original = T::max_original();
53
54 <Derivatives<T, I>>::create_derivative(create_origin, original.clone())?;
55
56 #[extrinsic_call]
57 _(destroy_origin as T::RuntimeOrigin, original);
58
59 Ok(())
60 }
61}