diff --git a/substrate/frame/asset-rewards/src/benchmarking.rs b/substrate/frame/asset-rewards/src/benchmarking.rs index 2b49260954e8b4207928dfa43a55e2fdb23965d3..e00d4b658b3cd03ae8302c3010fd5ca0ca318184 100644 --- a/substrate/frame/asset-rewards/src/benchmarking.rs +++ b/substrate/frame/asset-rewards/src/benchmarking.rs @@ -214,5 +214,36 @@ mod benchmarks { ); } + #[benchmark] + fn set_pool_reward_rate_per_block() { + use super::*; + + let admin = T::BenchmarkHelper::to_account_id(1); + let staked_asset = T::BenchmarkHelper::to_asset_id(0); + let reward_asset = T::BenchmarkHelper::to_asset_id(1); + create_asset::<T>(&admin, &staked_asset, T::Assets::minimum_balance(staked_asset.clone())); + create_asset::<T>(&admin, &reward_asset, T::Assets::minimum_balance(reward_asset.clone())); + + assert_ok!(AssetRewards::<T>::create_pool( + SystemOrigin::Signed(admin.clone()).into(), + Box::new(staked_asset.clone()), + Box::new(reward_asset.clone()), + 100u32.into(), + 200u32.into(), + None, + )); + + #[extrinsic_call] + _(SystemOrigin::Signed(admin.clone()), 0u32.into(), 5u32.into()); + + assert_last_event::<T>( + Event::PoolRewardRateModified { + pool_id: 0u32.into(), + new_reward_rate_per_block: 5u32.into(), + } + .into(), + ); + } + impl_benchmark_test_suite!(AssetRewards, crate::mock::new_test_ext(), crate::mock::MockRuntime); }