From 138fdbb9fde7ca7aa7bafbdb7482600958c05c9d Mon Sep 17 00:00:00 2001
From: Liam Aharon <liam.aharon@hotmail.com>
Date: Sat, 6 Apr 2024 09:26:42 +0400
Subject: [PATCH] stake benchmark

---
 .../frame/asset-rewards/src/benchmarking.rs   | 30 ++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/substrate/frame/asset-rewards/src/benchmarking.rs b/substrate/frame/asset-rewards/src/benchmarking.rs
index d351bb05944..d4b51105559 100644
--- a/substrate/frame/asset-rewards/src/benchmarking.rs
+++ b/substrate/frame/asset-rewards/src/benchmarking.rs
@@ -82,7 +82,7 @@ mod benchmarks {
 	fn create_pool() {
 		use super::*;
 
-		let admin: T::AccountId = T::BenchmarkHelper::to_account_id(1);
+		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()));
@@ -112,5 +112,33 @@ mod benchmarks {
 		);
 	}
 
+	#[benchmark]
+	fn stake() {
+		use super::*;
+
+		let admin = T::BenchmarkHelper::to_account_id(1);
+		let staker = T::BenchmarkHelper::to_account_id(2);
+		let staked_asset = T::BenchmarkHelper::to_asset_id(0);
+		let reward_asset = T::BenchmarkHelper::to_asset_id(1);
+		create_asset::<T>(&staker, &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(staker.clone()), 0u32.into(), 100u32.into());
+
+		assert_last_event::<T>(
+			Event::Staked { who: staker, pool_id: 0u32.into(), amount: 100u32.into() }.into(),
+		);
+	}
+
 	impl_benchmark_test_suite!(AssetRewards, crate::mock::new_test_ext(), crate::mock::MockRuntime);
 }
-- 
GitLab