git.delta.rocks / unique-network / refs/commits / e4d3792751ad

difftreelog

feat add benchmarks for burn_from

Yaroslav Bolyukin2021-11-05parent: #3d14ec5.patch.diff
in: master

12 files changed

modifiedpallets/common/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/common/src/benchmarking.rs
+++ b/pallets/common/src/benchmarking.rs
@@ -54,7 +54,6 @@
 		variable_on_chain_schema,
 		const_on_chain_schema,
 		meta_update_permission: Default::default(),
-		transfers_enabled: true,
 	})
 	.and_then(CollectionHandle::try_get)
 	.map(cast)
modifiedpallets/fungible/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/fungible/src/benchmarking.rs
+++ b/pallets/fungible/src/benchmarking.rs
@@ -58,4 +58,13 @@
 		<Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;
 		<Pallet<T>>::set_allowance(&collection, &sender, &spender, 200)?;
 	}: {<Pallet<T>>::transfer_from(&collection, &spender, &sender, &receiver, 100)?}
+
+	burn_from {
+		bench_init!{
+			owner: sub; collection: collection(owner);
+			owner: cross_from_sub; sender: cross_sub; burner: cross_sub;
+		};
+		<Pallet<T>>::create_item(&collection, &owner, (sender.clone(), 200))?;
+		<Pallet<T>>::set_allowance(&collection, &sender, &burner, 200)?;
+	}: {<Pallet<T>>::burn_from(&collection, &burner, &sender, 100)?}
 }
modifiedpallets/fungible/src/common.rsdiffbeforeafterboth
before · pallets/fungible/src/common.rs
1use core::marker::PhantomData;23use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};4use nft_data_structs::TokenId;5use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};6use sp_runtime::ArithmeticError;7use sp_std::{vec::Vec, vec};89use crate::{10	Allowance, Balance, Config, Error, FungibleHandle, Pallet, SelfWeightOf, weights::WeightInfo,11};1213pub struct CommonWeights<T: Config>(PhantomData<T>);14impl<T: Config> CommonWeightInfo for CommonWeights<T> {15	fn create_item() -> Weight {16		<SelfWeightOf<T>>::create_item()17	}1819	fn create_multiple_items(_amount: u32) -> Weight {20		Self::create_item()21	}2223	fn burn_item() -> Weight {24		<SelfWeightOf<T>>::burn_item()25	}2627	fn transfer() -> Weight {28		<SelfWeightOf<T>>::transfer()29	}3031	fn approve() -> Weight {32		<SelfWeightOf<T>>::approve()33	}3435	fn transfer_from() -> Weight {36		<SelfWeightOf<T>>::transfer_from()37	}3839	fn burn_from() -> Weight {40		041	}4243	fn set_variable_metadata(_bytes: u32) -> Weight {44		// Error45		046	}47}4849impl<T: Config> CommonCollectionOperations<T> for FungibleHandle<T> {50	fn create_item(51		&self,52		sender: T::CrossAccountId,53		to: T::CrossAccountId,54		data: nft_data_structs::CreateItemData,55	) -> DispatchResultWithPostInfo {56		match data {57			nft_data_structs::CreateItemData::Fungible(data) => with_weight(58				<Pallet<T>>::create_item(self, &sender, (to, data.value)),59				<CommonWeights<T>>::create_item(),60			),61			_ => fail!(<Error<T>>::NotFungibleDataUsedToMintFungibleCollectionToken),62		}63	}6465	fn create_multiple_items(66		&self,67		sender: T::CrossAccountId,68		to: T::CrossAccountId,69		data: Vec<nft_data_structs::CreateItemData>,70	) -> DispatchResultWithPostInfo {71		let mut sum: u128 = 0;72		for data in data {73			match data {74				nft_data_structs::CreateItemData::Fungible(data) => {75					sum = sum76						.checked_add(data.value)77						.ok_or(ArithmeticError::Overflow)?;78				}79				_ => fail!(<Error<T>>::NotFungibleDataUsedToMintFungibleCollectionToken),80			}81		}8283		with_weight(84			<Pallet<T>>::create_item(self, &sender, (to, sum)),85			<CommonWeights<T>>::create_item(),86		)87	}8889	fn burn_item(90		&self,91		sender: T::CrossAccountId,92		token: TokenId,93		amount: u128,94	) -> DispatchResultWithPostInfo {95		ensure!(96			token == TokenId::default(),97			<Error<T>>::FungibleItemsHaveNoId98		);99100		with_weight(101			<Pallet<T>>::burn(self, &sender, amount),102			<CommonWeights<T>>::burn_item(),103		)104	}105106	fn transfer(107		&self,108		from: T::CrossAccountId,109		to: T::CrossAccountId,110		token: TokenId,111		amount: u128,112	) -> DispatchResultWithPostInfo {113		ensure!(114			token == TokenId::default(),115			<Error<T>>::FungibleItemsHaveNoId116		);117118		with_weight(119			<Pallet<T>>::transfer(&self, &from, &to, amount),120			<CommonWeights<T>>::transfer(),121		)122	}123124	fn approve(125		&self,126		sender: T::CrossAccountId,127		spender: T::CrossAccountId,128		token: TokenId,129		amount: u128,130	) -> DispatchResultWithPostInfo {131		ensure!(132			token == TokenId::default(),133			<Error<T>>::FungibleItemsHaveNoId134		);135136		with_weight(137			<Pallet<T>>::set_allowance(&self, &sender, &spender, amount),138			<CommonWeights<T>>::approve(),139		)140	}141142	fn transfer_from(143		&self,144		sender: T::CrossAccountId,145		from: T::CrossAccountId,146		to: T::CrossAccountId,147		token: TokenId,148		amount: u128,149	) -> DispatchResultWithPostInfo {150		ensure!(151			token == TokenId::default(),152			<Error<T>>::FungibleItemsHaveNoId153		);154155		with_weight(156			<Pallet<T>>::transfer_from(&self, &sender, &from, &to, amount),157			<CommonWeights<T>>::transfer_from(),158		)159	}160161	fn burn_from(162		&self,163		sender: T::CrossAccountId,164		from: T::CrossAccountId,165		token: TokenId,166		amount: u128,167	) -> DispatchResultWithPostInfo {168		ensure!(169			token == TokenId::default(),170			<Error<T>>::FungibleItemsHaveNoId171		);172173		with_weight(174			<Pallet<T>>::burn_from(&self, &sender, &from, amount),175			<CommonWeights<T>>::burn_from(),176		)177	}178179	fn set_variable_metadata(180		&self,181		_sender: T::CrossAccountId,182		_token: TokenId,183		_data: Vec<u8>,184	) -> DispatchResultWithPostInfo {185		fail!(<Error<T>>::FungibleItemsHaveData)186	}187188	fn account_tokens(&self, account: T::CrossAccountId) -> Vec<TokenId> {189		if <Balance<T>>::get((self.id, account)) != 0 {190			vec![TokenId::default()]191		} else {192			vec![]193		}194	}195196	fn token_exists(&self, token: TokenId) -> bool {197		token == TokenId::default()198	}199200	fn last_token_id(&self) -> TokenId {201		TokenId::default()202	}203204	fn token_owner(&self, _token: TokenId) -> T::CrossAccountId {205		T::CrossAccountId::default()206	}207	fn const_metadata(&self, _token: TokenId) -> Vec<u8> {208		Vec::new()209	}210	fn variable_metadata(&self, _token: TokenId) -> Vec<u8> {211		Vec::new()212	}213214	fn collection_tokens(&self) -> u32 {215		1216	}217218	fn account_balance(&self, account: T::CrossAccountId) -> u32 {219		if <Balance<T>>::get((self.id, account)) != 0 {220			1221		} else {222			0223		}224	}225226	fn balance(&self, account: T::CrossAccountId, token: TokenId) -> u128 {227		if token != TokenId::default() {228			return 0;229		}230		<Balance<T>>::get((self.id, account))231	}232233	fn allowance(234		&self,235		sender: T::CrossAccountId,236		spender: T::CrossAccountId,237		token: TokenId,238	) -> u128 {239		if token != TokenId::default() {240			return 0;241		}242		<Allowance<T>>::get((self.id, sender, spender))243	}244}
after · pallets/fungible/src/common.rs
1use core::marker::PhantomData;23use frame_support::{dispatch::DispatchResultWithPostInfo, ensure, fail, weights::Weight};4use nft_data_structs::TokenId;5use pallet_common::{CommonCollectionOperations, CommonWeightInfo, with_weight};6use sp_runtime::ArithmeticError;7use sp_std::{vec::Vec, vec};89use crate::{10	Allowance, Balance, Config, Error, FungibleHandle, Pallet, SelfWeightOf, weights::WeightInfo,11};1213pub struct CommonWeights<T: Config>(PhantomData<T>);14impl<T: Config> CommonWeightInfo for CommonWeights<T> {15	fn create_item() -> Weight {16		<SelfWeightOf<T>>::create_item()17	}1819	fn create_multiple_items(_amount: u32) -> Weight {20		Self::create_item()21	}2223	fn burn_item() -> Weight {24		<SelfWeightOf<T>>::burn_item()25	}2627	fn transfer() -> Weight {28		<SelfWeightOf<T>>::transfer()29	}3031	fn approve() -> Weight {32		<SelfWeightOf<T>>::approve()33	}3435	fn transfer_from() -> Weight {36		<SelfWeightOf<T>>::transfer_from()37	}3839	fn burn_from() -> Weight {40		<SelfWeightOf<T>>::burn_from()41	}4243	fn set_variable_metadata(_bytes: u32) -> Weight {44		// Error45		046	}47}4849impl<T: Config> CommonCollectionOperations<T> for FungibleHandle<T> {50	fn create_item(51		&self,52		sender: T::CrossAccountId,53		to: T::CrossAccountId,54		data: nft_data_structs::CreateItemData,55	) -> DispatchResultWithPostInfo {56		match data {57			nft_data_structs::CreateItemData::Fungible(data) => with_weight(58				<Pallet<T>>::create_item(self, &sender, (to, data.value)),59				<CommonWeights<T>>::create_item(),60			),61			_ => fail!(<Error<T>>::NotFungibleDataUsedToMintFungibleCollectionToken),62		}63	}6465	fn create_multiple_items(66		&self,67		sender: T::CrossAccountId,68		to: T::CrossAccountId,69		data: Vec<nft_data_structs::CreateItemData>,70	) -> DispatchResultWithPostInfo {71		let mut sum: u128 = 0;72		for data in data {73			match data {74				nft_data_structs::CreateItemData::Fungible(data) => {75					sum = sum76						.checked_add(data.value)77						.ok_or(ArithmeticError::Overflow)?;78				}79				_ => fail!(<Error<T>>::NotFungibleDataUsedToMintFungibleCollectionToken),80			}81		}8283		with_weight(84			<Pallet<T>>::create_item(self, &sender, (to, sum)),85			<CommonWeights<T>>::create_item(),86		)87	}8889	fn burn_item(90		&self,91		sender: T::CrossAccountId,92		token: TokenId,93		amount: u128,94	) -> DispatchResultWithPostInfo {95		ensure!(96			token == TokenId::default(),97			<Error<T>>::FungibleItemsHaveNoId98		);99100		with_weight(101			<Pallet<T>>::burn(self, &sender, amount),102			<CommonWeights<T>>::burn_item(),103		)104	}105106	fn transfer(107		&self,108		from: T::CrossAccountId,109		to: T::CrossAccountId,110		token: TokenId,111		amount: u128,112	) -> DispatchResultWithPostInfo {113		ensure!(114			token == TokenId::default(),115			<Error<T>>::FungibleItemsHaveNoId116		);117118		with_weight(119			<Pallet<T>>::transfer(&self, &from, &to, amount),120			<CommonWeights<T>>::transfer(),121		)122	}123124	fn approve(125		&self,126		sender: T::CrossAccountId,127		spender: T::CrossAccountId,128		token: TokenId,129		amount: u128,130	) -> DispatchResultWithPostInfo {131		ensure!(132			token == TokenId::default(),133			<Error<T>>::FungibleItemsHaveNoId134		);135136		with_weight(137			<Pallet<T>>::set_allowance(&self, &sender, &spender, amount),138			<CommonWeights<T>>::approve(),139		)140	}141142	fn transfer_from(143		&self,144		sender: T::CrossAccountId,145		from: T::CrossAccountId,146		to: T::CrossAccountId,147		token: TokenId,148		amount: u128,149	) -> DispatchResultWithPostInfo {150		ensure!(151			token == TokenId::default(),152			<Error<T>>::FungibleItemsHaveNoId153		);154155		with_weight(156			<Pallet<T>>::transfer_from(&self, &sender, &from, &to, amount),157			<CommonWeights<T>>::transfer_from(),158		)159	}160161	fn burn_from(162		&self,163		sender: T::CrossAccountId,164		from: T::CrossAccountId,165		token: TokenId,166		amount: u128,167	) -> DispatchResultWithPostInfo {168		ensure!(169			token == TokenId::default(),170			<Error<T>>::FungibleItemsHaveNoId171		);172173		with_weight(174			<Pallet<T>>::burn_from(&self, &sender, &from, amount),175			<CommonWeights<T>>::burn_from(),176		)177	}178179	fn set_variable_metadata(180		&self,181		_sender: T::CrossAccountId,182		_token: TokenId,183		_data: Vec<u8>,184	) -> DispatchResultWithPostInfo {185		fail!(<Error<T>>::FungibleItemsHaveData)186	}187188	fn account_tokens(&self, account: T::CrossAccountId) -> Vec<TokenId> {189		if <Balance<T>>::get((self.id, account)) != 0 {190			vec![TokenId::default()]191		} else {192			vec![]193		}194	}195196	fn token_exists(&self, token: TokenId) -> bool {197		token == TokenId::default()198	}199200	fn last_token_id(&self) -> TokenId {201		TokenId::default()202	}203204	fn token_owner(&self, _token: TokenId) -> T::CrossAccountId {205		T::CrossAccountId::default()206	}207	fn const_metadata(&self, _token: TokenId) -> Vec<u8> {208		Vec::new()209	}210	fn variable_metadata(&self, _token: TokenId) -> Vec<u8> {211		Vec::new()212	}213214	fn collection_tokens(&self) -> u32 {215		1216	}217218	fn account_balance(&self, account: T::CrossAccountId) -> u32 {219		if <Balance<T>>::get((self.id, account)) != 0 {220			1221		} else {222			0223		}224	}225226	fn balance(&self, account: T::CrossAccountId, token: TokenId) -> u128 {227		if token != TokenId::default() {228			return 0;229		}230		<Balance<T>>::get((self.id, account))231	}232233	fn allowance(234		&self,235		sender: T::CrossAccountId,236		spender: T::CrossAccountId,237		token: TokenId,238	) -> u128 {239		if token != TokenId::default() {240			return 0;241		}242		<Allowance<T>>::get((self.id, sender, spender))243	}244}
modifiedpallets/fungible/src/weights.rsdiffbeforeafterboth
--- a/pallets/fungible/src/weights.rs
+++ b/pallets/fungible/src/weights.rs
@@ -75,6 +75,14 @@
 			.saturating_add(T::DbWeight::get().reads(3 as Weight))
 			.saturating_add(T::DbWeight::get().writes(3 as Weight))
 	}
+	// Storage: Fungible Allowance (r:1 w:1)
+	// Storage: Fungible TotalSupply (r:1 w:1)
+	// Storage: Fungible Balance (r:1 w:1)
+	fn burn_from() -> Weight {
+		(55_874_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(3 as Weight))
+			.saturating_add(T::DbWeight::get().writes(3 as Weight))
+	}
 }
 
 // For backwards compatibility and tests
@@ -113,4 +121,12 @@
 			.saturating_add(RocksDbWeight::get().reads(3 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
 	}
+	// Storage: Fungible Allowance (r:1 w:1)
+	// Storage: Fungible TotalSupply (r:1 w:1)
+	// Storage: Fungible Balance (r:1 w:1)
+	fn burn_from() -> Weight {
+		(55_874_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(3 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(3 as Weight))
+	}
 }
modifiedpallets/nonfungible/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/benchmarking.rs
+++ b/pallets/nonfungible/src/benchmarking.rs
@@ -89,6 +89,15 @@
 		<Pallet<T>>::set_allowance(&collection, &sender, item, Some(&spender))?;
 	}: {<Pallet<T>>::transfer_from(&collection, &spender, &sender, &receiver, item)?}
 
+	burn_from {
+		bench_init!{
+			owner: sub; collection: collection(owner);
+			owner: cross_from_sub; sender: cross_sub; burner: cross_sub;
+		};
+		let item = create_max_item(&collection, &owner, sender.clone())?;
+		<Pallet<T>>::set_allowance(&collection, &sender, item, Some(&burner))?;
+	}: {<Pallet<T>>::burn_from(&collection, &burner, &sender, item)?}
+
 	set_variable_metadata {
 		let b in 0..CUSTOM_DATA_LIMIT;
 		bench_init!{
modifiedpallets/nonfungible/src/common.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/common.rs
+++ b/pallets/nonfungible/src/common.rs
@@ -38,7 +38,7 @@
 	}
 
 	fn burn_from() -> Weight {
-		0
+		<SelfWeightOf<T>>::burn_from()
 	}
 
 	fn set_variable_metadata(bytes: u32) -> Weight {
modifiedpallets/nonfungible/src/weights.rsdiffbeforeafterboth
--- a/pallets/nonfungible/src/weights.rs
+++ b/pallets/nonfungible/src/weights.rs
@@ -98,6 +98,15 @@
 			.saturating_add(T::DbWeight::get().reads(4 as Weight))
 			.saturating_add(T::DbWeight::get().writes(6 as Weight))
 	}
+	// Storage: Nonfungible Allowance (r:1 w:1)
+	// Storage: Nonfungible TokenData (r:1 w:1)
+	// Storage: Nonfungible TokensBurnt (r:1 w:1)
+	// Storage: Nonfungible Owned (r:0 w:1)
+	fn burn_from() -> Weight {
+		(53_429_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(3 as Weight))
+			.saturating_add(T::DbWeight::get().writes(4 as Weight))
+	}
 	// Storage: Nonfungible TokenData (r:1 w:1)
 	fn set_variable_metadata(_b: u32, ) -> Weight {
 		(6_380_000 as Weight)
@@ -163,6 +172,15 @@
 			.saturating_add(RocksDbWeight::get().reads(4 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(6 as Weight))
 	}
+	// Storage: Nonfungible Allowance (r:1 w:1)
+	// Storage: Nonfungible TokenData (r:1 w:1)
+	// Storage: Nonfungible TokensBurnt (r:1 w:1)
+	// Storage: Nonfungible Owned (r:0 w:1)
+	fn burn_from() -> Weight {
+		(53_429_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(3 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(4 as Weight))
+	}
 	// Storage: Nonfungible TokenData (r:1 w:1)
 	fn set_variable_metadata(_b: u32, ) -> Weight {
 		(6_380_000 as Weight)
modifiedpallets/refungible/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/refungible/src/benchmarking.rs
+++ b/pallets/refungible/src/benchmarking.rs
@@ -149,6 +149,16 @@
 		<Pallet<T>>::set_allowance(&collection, &sender, &spender, item, 200)?;
 	}: {<Pallet<T>>::transfer_from(&collection, &spender, &sender, &receiver, item, 200)?}
 
+	// Both source account and token is destroyed
+	burn_from {
+		bench_init!{
+			owner: sub; collection: collection(owner);
+			owner: cross_from_sub; sender: cross_sub; burner: cross_sub;
+		};
+		let item = create_max_item(&collection, &owner, [(sender.clone(), 200)])?;
+		<Pallet<T>>::set_allowance(&collection, &sender, &burner, item, 200)?;
+	}: {<Pallet<T>>::burn_from(&collection, &burner, &sender, item, 200)?}
+
 	set_variable_metadata {
 		let b in 0..CUSTOM_DATA_LIMIT;
 		bench_init!{
modifiedpallets/refungible/src/weights.rsdiffbeforeafterboth
--- a/pallets/refungible/src/weights.rs
+++ b/pallets/refungible/src/weights.rs
@@ -166,6 +166,18 @@
 			.saturating_add(T::DbWeight::get().reads(5 as Weight))
 			.saturating_add(T::DbWeight::get().writes(7 as Weight))
 	}
+	// Storage: Refungible Allowance (r:1 w:1)
+	// Storage: Refungible TotalSupply (r:1 w:1)
+	// Storage: Refungible Balance (r:1 w:1)
+	// Storage: Refungible AccountBalance (r:1 w:1)
+	// Storage: Refungible TokensBurnt (r:1 w:1)
+	// Storage: Refungible TokenData (r:0 w:1)
+	// Storage: Refungible Owned (r:0 w:1)
+	fn burn_from() -> Weight {
+		(60_903_000 as Weight)
+			.saturating_add(T::DbWeight::get().reads(5 as Weight))
+			.saturating_add(T::DbWeight::get().writes(7 as Weight))
+	}
 	// Storage: Refungible TokenData (r:1 w:1)
 	fn set_variable_metadata(_b: u32, ) -> Weight {
 		(6_801_000 as Weight)
@@ -292,6 +304,18 @@
 			.saturating_add(RocksDbWeight::get().reads(5 as Weight))
 			.saturating_add(RocksDbWeight::get().writes(7 as Weight))
 	}
+	// Storage: Refungible Allowance (r:1 w:1)
+	// Storage: Refungible TotalSupply (r:1 w:1)
+	// Storage: Refungible Balance (r:1 w:1)
+	// Storage: Refungible AccountBalance (r:1 w:1)
+	// Storage: Refungible TokensBurnt (r:1 w:1)
+	// Storage: Refungible TokenData (r:0 w:1)
+	// Storage: Refungible Owned (r:0 w:1)
+	fn burn_from() -> Weight {
+		(60_903_000 as Weight)
+			.saturating_add(RocksDbWeight::get().reads(5 as Weight))
+			.saturating_add(RocksDbWeight::get().writes(7 as Weight))
+	}
 	// Storage: Refungible TokenData (r:1 w:1)
 	fn set_variable_metadata(_b: u32, ) -> Weight {
 		(6_801_000 as Weight)
modifiedpallets/scheduler/src/benchmarking.rsdiffbeforeafterboth
--- a/pallets/scheduler/src/benchmarking.rs
+++ b/pallets/scheduler/src/benchmarking.rs
@@ -33,7 +33,7 @@
 // Add `n` named items to the schedule
 fn fill_schedule<T: Config>(when: T::BlockNumber, n: u32) -> Result<(), &'static str> {
 	// Essentially a no-op call.
-	let call = frame_system::Call::set_storage(vec![]);
+	let call = frame_system::Call::set_storage { items: vec![] };
 	for i in 0..n {
 		// Named schedule is strictly heavier than anonymous
 		Scheduler::<T>::do_schedule_named(
@@ -61,7 +61,7 @@
 		let periodic = Some((T::BlockNumber::one(), 100));
 		let priority = 0;
 		// Essentially a no-op call.
-		let call = Box::new(frame_system::Call::set_storage(vec![]).into());
+		let call = Box::new(frame_system::Call::set_storage { items: vec![] }.into());
 
 		fill_schedule::<T>(when, s)?;
 	}: _(RawOrigin::Root, when, periodic, priority, call)
@@ -98,7 +98,7 @@
 		let periodic = Some((T::BlockNumber::one(), 100));
 		let priority = 0;
 		// Essentially a no-op call.
-		let call = Box::new(frame_system::Call::set_storage(vec![]).into());
+		let call = Box::new(frame_system::Call::set_storage { items: vec![] }.into());
 
 		fill_schedule::<T>(when, s)?;
 	}: _(RawOrigin::Root, id, when, periodic, priority, call)
modifiedruntime/Cargo.tomldiffbeforeafterboth
--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -23,7 +23,9 @@
     'frame-support/runtime-benchmarks',
     'frame-system-benchmarking',
     'frame-system/runtime-benchmarks',
+    'pallet-ethereum/runtime-benchmarks',
     'pallet-evm-migration/runtime-benchmarks',
+    'pallet-evm-coder-substrate/runtime-benchmarks',
     'pallet-balances/runtime-benchmarks',
     'pallet-timestamp/runtime-benchmarks',
     'pallet-common/runtime-benchmarks',
modifiedruntime/src/lib.rsdiffbeforeafterboth
--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -1327,6 +1327,7 @@
 			list_benchmark!(list, extra, pallet_fungible, Fungible);
 			list_benchmark!(list, extra, pallet_refungible, Refungible);
 			list_benchmark!(list, extra, pallet_nonfungible, Nonfungible);
+			// list_benchmark!(list, extra, pallet_evm_coder_substrate, EvmCoderSubstrate);
 
 			let storage_info = AllPalletsWithSystem::storage_info();
 
@@ -1360,6 +1361,7 @@
 			add_benchmark!(params, batches, pallet_fungible, Fungible);
 			add_benchmark!(params, batches, pallet_refungible, Refungible);
 			add_benchmark!(params, batches, pallet_nonfungible, Nonfungible);
+			// add_benchmark!(params, batches, pallet_evm_coder_substrate, EvmCoderSubstrate);
 
 			if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) }
 			Ok(batches)