1
// Copyright 2025 Moonbeam Foundation.
2
// This file is part of Moonbeam.
3

            
4
// Moonbeam is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8

            
9
// Moonbeam is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13

            
14
// You should have received a copy of the GNU General Public License
15
// along with Moonbeam.  If not, see <http://www.gnu.org/licenses/>.
16

            
17
//! Autogenerated weights for pallet_foreign_asset_creator
18
//!
19
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
20
//! DATE: 2024-04-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
21
//! WORST CASE MAP SIZE: `1000000`
22
//! HOSTNAME: `girazoki-XPS-15-9530`, CPU: `13th Gen Intel(R) Core(TM) i9-13900H`
23
//! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
24

            
25
// Executed Command:
26
// ./target/release/moonbeam
27
// benchmark
28
// pallet
29
// --execution=wasm
30
// --wasm-execution=compiled
31
// --pallet
32
// pallet_moonbeam_foreign_assets
33
// --extrinsic
34
// *
35
// --steps
36
// 50
37
// --repeat
38
// 20
39
// --template=./benchmarking/frame-weight-template.hbs
40
// --json-file
41
// raw.json
42
// --output
43
// weights/
44

            
45
#![cfg_attr(rustfmt, rustfmt_skip)]
46
#![allow(unused_parens)]
47
#![allow(unused_imports)]
48

            
49
use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
50
use sp_std::marker::PhantomData;
51

            
52
/// Weight functions needed for pallet_foreign_asset_creator.
53
pub trait WeightInfo {
54
	fn create_foreign_asset() -> Weight;
55
	fn change_xcm_location() -> Weight;
56
	fn freeze_foreign_asset() -> Weight;
57
	fn unfreeze_foreign_asset() -> Weight;
58
	fn claim_pending_deposit() -> Weight;
59
}
60

            
61
/// Weights for pallet_foreign_asset_creator using the Substrate node and recommended hardware.
62
pub struct SubstrateWeight<T>(PhantomData<T>);
63
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
64
	/// Storage: `ForeignAssetsCreator::AssetIdToForeignAsset` (r:1 w:1)
65
	/// Proof: `ForeignAssetsCreator::AssetIdToForeignAsset` (`max_values`: None, `max_size`: None, mode: `Measured`)
66
	/// Storage: `ForeignAssets::Asset` (r:1 w:1)
67
	/// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(208), added: 2683, mode: `MaxEncodedLen`)
68
	/// Storage: `ForeignAssetsCreator::ForeignAssetToAssetId` (r:0 w:1)
69
	/// Proof: `ForeignAssetsCreator::ForeignAssetToAssetId` (`max_values`: None, `max_size`: None, mode: `Measured`)
70
	fn create_foreign_asset() -> Weight {
71
		// Proof Size summary in bytes:
72
		//  Measured:  `113`
73
		//  Estimated: `3673`
74
		// Minimum execution time: 16_738_000 picoseconds.
75
		Weight::from_parts(17_366_000, 3673)
76
			.saturating_add(T::DbWeight::get().reads(2_u64))
77
			.saturating_add(T::DbWeight::get().writes(3_u64))
78
	}
79

            
80

            
81
	/// Storage: `ForeignAssetsCreator::AssetIdToForeignAsset` (r:1 w:1)
82
	/// Proof: `ForeignAssetsCreator::AssetIdToForeignAsset` (`max_values`: None, `max_size`: None, mode: `Measured`)
83
	/// Storage: `ForeignAssetsCreator::ForeignAssetToAssetId` (r:0 w:2)
84
	/// Proof: `ForeignAssetsCreator::ForeignAssetToAssetId` (`max_values`: None, `max_size`: None, mode: `Measured`)
85
	fn change_xcm_location() -> Weight {
86
		// Proof Size summary in bytes:
87
		//  Measured:  `189`
88
		//  Estimated: `3654`
89
		// Minimum execution time: 13_861_000 picoseconds.
90
		Weight::from_parts(14_153_000, 3654)
91
			.saturating_add(T::DbWeight::get().reads(1_u64))
92
			.saturating_add(T::DbWeight::get().writes(3_u64))
93
	}
94
	/// Storage: `ForeignAssetsCreator::AssetIdToForeignAsset` (r:1 w:1)
95
	/// Proof: `ForeignAssetsCreator::AssetIdToForeignAsset` (`max_values`: None, `max_size`: None, mode: `Measured`)
96
	/// Storage: `ForeignAssetsCreator::ForeignAssetToAssetId` (r:0 w:1)
97
	/// Proof: `ForeignAssetsCreator::ForeignAssetToAssetId` (`max_values`: None, `max_size`: None, mode: `Measured`)
98
	fn freeze_foreign_asset() -> Weight {
99
		// Proof Size summary in bytes:
100
		//  Measured:  `189`
101
		//  Estimated: `3654`
102
		// Minimum execution time: 11_698_000 picoseconds.
103
		Weight::from_parts(12_184_000, 3654)
104
			.saturating_add(T::DbWeight::get().reads(1_u64))
105
			.saturating_add(T::DbWeight::get().writes(2_u64))
106
	}
107
	/// Storage: `ForeignAssetsCreator::AssetIdToForeignAsset` (r:1 w:1)
108
	/// Proof: `ForeignAssetsCreator::AssetIdToForeignAsset` (`max_values`: None, `max_size`: None, mode: `Measured`)
109
	/// Storage: `ForeignAssets::Asset` (r:1 w:1)
110
	/// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(208), added: 2683, mode: `MaxEncodedLen`)
111
	/// Storage: `ForeignAssetsCreator::ForeignAssetToAssetId` (r:0 w:1)
112
	/// Proof: `ForeignAssetsCreator::ForeignAssetToAssetId` (`max_values`: None, `max_size`: None, mode: `Measured`)
113
	fn unfreeze_foreign_asset() -> Weight {
114
		// Proof Size summary in bytes:
115
		//  Measured:  `429`
116
		//  Estimated: `3894`
117
		// Minimum execution time: 17_797_000 picoseconds.
118
		Weight::from_parts(18_635_000, 3894)
119
			.saturating_add(T::DbWeight::get().reads(2_u64))
120
			.saturating_add(T::DbWeight::get().writes(3_u64))
121
	}
122
	/// Storage: `EvmForeignAssets::AssetsById` (r:1 w:0)
123
	/// Proof: `EvmForeignAssets::AssetsById` (`max_values`: None, `max_size`: None, mode: `Measured`)
124
	/// Storage: `EvmForeignAssets::AssetsByLocation` (r:1 w:0)
125
	/// Proof: `EvmForeignAssets::AssetsByLocation` (`max_values`: None, `max_size`: None, mode: `Measured`)
126
	/// Storage: `EvmForeignAssets::PendingDeposits` (r:1 w:1)
127
	/// Proof: `EvmForeignAssets::PendingDeposits` (`max_values`: None, `max_size`: None, mode: `Measured`)
128
	/// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0)
129
	/// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
130
	/// Storage: `EthereumXcm::EthereumXcmSuspended` (r:1 w:0)
131
	/// Proof: `EthereumXcm::EthereumXcmSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
132
	/// Storage: `EthereumXcm::Nonce` (r:1 w:1)
133
	/// Proof: `EthereumXcm::Nonce` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
134
	/// Storage: `EthereumChainId::ChainId` (r:1 w:0)
135
	/// Proof: `EthereumChainId::ChainId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
136
	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
137
	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
138
	/// Storage: `EVM::AccountCodesMetadata` (r:2 w:0)
139
	/// Proof: `EVM::AccountCodesMetadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
140
	/// Storage: `System::Account` (r:1 w:1)
141
	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`)
142
	/// Storage: `System::Digest` (r:1 w:0)
143
	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
144
	/// Storage: `EVM::AccountCodes` (r:1 w:0)
145
	/// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`)
146
	/// Storage: `EVM::AccountStorages` (r:3 w:2)
147
	/// Proof: `EVM::AccountStorages` (`max_values`: None, `max_size`: None, mode: `Measured`)
148
	/// Storage: `Ethereum::CounterForPending` (r:1 w:1)
149
	/// Proof: `Ethereum::CounterForPending` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
150
	/// Storage: `Ethereum::Pending` (r:2 w:1)
151
	/// Proof: `Ethereum::Pending` (`max_values`: None, `max_size`: None, mode: `Measured`)
152
	fn claim_pending_deposit() -> Weight {
153
		// Proof Size summary in bytes:
154
		//  Measured:  `24177`
155
		//  Estimated: `32592`
156
		// Minimum execution time: 128_000_000 picoseconds.
157
		Weight::from_parts(136_000_000, 32592)
158
			.saturating_add(T::DbWeight::get().reads(19_u64))
159
			.saturating_add(T::DbWeight::get().writes(7_u64))
160
	}
161
}
162

            
163
// For backwards compatibility and tests
164
impl WeightInfo for () {
165
	/// Storage: `ForeignAssetsCreator::AssetIdToForeignAsset` (r:1 w:1)
166
	/// Proof: `ForeignAssetsCreator::AssetIdToForeignAsset` (`max_values`: None, `max_size`: None, mode: `Measured`)
167
	/// Storage: `ForeignAssets::Asset` (r:1 w:1)
168
	/// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(208), added: 2683, mode: `MaxEncodedLen`)
169
	/// Storage: `ForeignAssetsCreator::ForeignAssetToAssetId` (r:0 w:1)
170
	/// Proof: `ForeignAssetsCreator::ForeignAssetToAssetId` (`max_values`: None, `max_size`: None, mode: `Measured`)
171
	fn create_foreign_asset() -> Weight {
172
		// Proof Size summary in bytes:
173
		//  Measured:  `113`
174
		//  Estimated: `3673`
175
		// Minimum execution time: 16_738_000 picoseconds.
176
		Weight::from_parts(17_366_000, 3673)
177
			.saturating_add(RocksDbWeight::get().reads(2_u64))
178
			.saturating_add(RocksDbWeight::get().writes(3_u64))
179
	}
180
	/// Storage: `ForeignAssetsCreator::AssetIdToForeignAsset` (r:1 w:1)
181
	/// Proof: `ForeignAssetsCreator::AssetIdToForeignAsset` (`max_values`: None, `max_size`: None, mode: `Measured`)
182
	/// Storage: `ForeignAssetsCreator::ForeignAssetToAssetId` (r:0 w:2)
183
	/// Proof: `ForeignAssetsCreator::ForeignAssetToAssetId` (`max_values`: None, `max_size`: None, mode: `Measured`)
184
	fn change_xcm_location() -> Weight {
185
		// Proof Size summary in bytes:
186
		//  Measured:  `189`
187
		//  Estimated: `3654`
188
		// Minimum execution time: 13_861_000 picoseconds.
189
		Weight::from_parts(14_153_000, 3654)
190
			.saturating_add(RocksDbWeight::get().reads(1_u64))
191
			.saturating_add(RocksDbWeight::get().writes(3_u64))
192
	}
193
	/// Storage: `ForeignAssetsCreator::AssetIdToForeignAsset` (r:1 w:1)
194
	/// Proof: `ForeignAssetsCreator::AssetIdToForeignAsset` (`max_values`: None, `max_size`: None, mode: `Measured`)
195
	/// Storage: `ForeignAssetsCreator::ForeignAssetToAssetId` (r:0 w:1)
196
	/// Proof: `ForeignAssetsCreator::ForeignAssetToAssetId` (`max_values`: None, `max_size`: None, mode: `Measured`)
197
	fn freeze_foreign_asset() -> Weight {
198
		// Proof Size summary in bytes:
199
		//  Measured:  `189`
200
		//  Estimated: `3654`
201
		// Minimum execution time: 11_698_000 picoseconds.
202
		Weight::from_parts(12_184_000, 3654)
203
			.saturating_add(RocksDbWeight::get().reads(1_u64))
204
			.saturating_add(RocksDbWeight::get().writes(2_u64))
205
	}
206
	/// Storage: `ForeignAssetsCreator::AssetIdToForeignAsset` (r:1 w:1)
207
	/// Proof: `ForeignAssetsCreator::AssetIdToForeignAsset` (`max_values`: None, `max_size`: None, mode: `Measured`)
208
	/// Storage: `ForeignAssets::Asset` (r:1 w:1)
209
	/// Proof: `ForeignAssets::Asset` (`max_values`: None, `max_size`: Some(208), added: 2683, mode: `MaxEncodedLen`)
210
	/// Storage: `ForeignAssetsCreator::ForeignAssetToAssetId` (r:0 w:1)
211
	/// Proof: `ForeignAssetsCreator::ForeignAssetToAssetId` (`max_values`: None, `max_size`: None, mode: `Measured`)
212
	fn unfreeze_foreign_asset() -> Weight {
213
		// Proof Size summary in bytes:
214
		//  Measured:  `429`
215
		//  Estimated: `3894`
216
		// Minimum execution time: 17_797_000 picoseconds.
217
		Weight::from_parts(18_635_000, 3894)
218
			.saturating_add(RocksDbWeight::get().reads(2_u64))
219
			.saturating_add(RocksDbWeight::get().writes(3_u64))
220
	}
221
	/// Storage: `EvmForeignAssets::AssetsById` (r:1 w:0)
222
	/// Proof: `EvmForeignAssets::AssetsById` (`max_values`: None, `max_size`: None, mode: `Measured`)
223
	/// Storage: `EvmForeignAssets::AssetsByLocation` (r:1 w:0)
224
	/// Proof: `EvmForeignAssets::AssetsByLocation` (`max_values`: None, `max_size`: None, mode: `Measured`)
225
	/// Storage: `EvmForeignAssets::PendingDeposits` (r:1 w:1)
226
	/// Proof: `EvmForeignAssets::PendingDeposits` (`max_values`: None, `max_size`: None, mode: `Measured`)
227
	/// Storage: `MaintenanceMode::MaintenanceMode` (r:1 w:0)
228
	/// Proof: `MaintenanceMode::MaintenanceMode` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
229
	/// Storage: `EthereumXcm::EthereumXcmSuspended` (r:1 w:0)
230
	/// Proof: `EthereumXcm::EthereumXcmSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
231
	/// Storage: `EthereumXcm::Nonce` (r:1 w:1)
232
	/// Proof: `EthereumXcm::Nonce` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
233
	/// Storage: `EthereumChainId::ChainId` (r:1 w:0)
234
	/// Proof: `EthereumChainId::ChainId` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
235
	/// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0)
236
	/// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `MaxEncodedLen`)
237
	/// Storage: `EVM::AccountCodesMetadata` (r:2 w:0)
238
	/// Proof: `EVM::AccountCodesMetadata` (`max_values`: None, `max_size`: None, mode: `Measured`)
239
	/// Storage: `System::Account` (r:1 w:1)
240
	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`)
241
	/// Storage: `System::Digest` (r:1 w:0)
242
	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
243
	/// Storage: `EVM::AccountCodes` (r:1 w:0)
244
	/// Proof: `EVM::AccountCodes` (`max_values`: None, `max_size`: None, mode: `Measured`)
245
	/// Storage: `EVM::AccountStorages` (r:3 w:2)
246
	/// Proof: `EVM::AccountStorages` (`max_values`: None, `max_size`: None, mode: `Measured`)
247
	/// Storage: `Ethereum::CounterForPending` (r:1 w:1)
248
	/// Proof: `Ethereum::CounterForPending` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
249
	/// Storage: `Ethereum::Pending` (r:2 w:1)
250
	/// Proof: `Ethereum::Pending` (`max_values`: None, `max_size`: None, mode: `Measured`)
251
	fn claim_pending_deposit() -> Weight {
252
		// Proof Size summary in bytes:
253
		//  Measured:  `24177`
254
		//  Estimated: `32592`
255
		// Minimum execution time: 128_000_000 picoseconds.
256
		Weight::from_parts(136_000_000, 32592)
257
			.saturating_add(RocksDbWeight::get().reads(19_u64))
258
			.saturating_add(RocksDbWeight::get().writes(7_u64))
259
	}
260
}