Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

revive: Include immutable storage deposit into the contracts storage_base_deposit #7230

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
5966a01
Include immutable deposit in base deposit
athei Jan 7, 2025
ba7d704
Update from athei running command 'prdoc --audience runtime_dev'
Jan 18, 2025
1a6feb7
Remove left over debug logging
athei Jan 18, 2025
2f1a825
Correct prdoc bumps
athei Jan 18, 2025
131e622
Add ResetPallet
athei Jan 22, 2025
0d0ec0d
Merge branch 'master' into at/deposit
athei Jan 23, 2025
09b80be
Refine ResetRuntime
athei Jan 23, 2025
76bc3a3
Merge branch 'master' into at/deposit
athei Jan 23, 2025
d0f5327
Merge branch 'master' into at/deposit
athei Jan 23, 2025
1f2f51e
Update from athei running command 'bench-omni --runtime asset-hub-wes…
github-actions[bot] Jan 23, 2025
73d42f8
Update from athei running command 'bench-omni --dev --pallet pallet_r…
github-actions[bot] Jan 23, 2025
716c494
Merge branch 'master' into at/deposit
athei Jan 24, 2025
e833c2f
Make refcounting fallible
athei Jan 24, 2025
b8e4b31
No need to reference into the frame
athei Jan 24, 2025
0073daf
Update substrate/frame/revive/src/wasm/mod.rs
athei Jan 24, 2025
7f5ab96
Merge branch 'master' into at/deposit
athei Jan 24, 2025
7b492cb
Remove unused weight file
athei Jan 24, 2025
0b8c8a6
Merge branch 'master' into at/deposit
athei Jan 24, 2025
1dcc86d
Move ResetPallet to pallet_migration
athei Jan 24, 2025
8b49073
Add benchmark
athei Jan 24, 2025
e5ec326
Merge branch 'master' into at/deposit
athei Jan 25, 2025
e775901
Update from athei running command 'bench-omni --runtime asset-hub-wes…
github-actions[bot] Jan 25, 2025
52c4d34
Remove no longer needed 64bit check on call
athei Jan 25, 2025
abbbb7f
Manually add new weights to the substrate weight file
athei Jan 25, 2025
c998988
Manually add new benchmark to all runtimes
athei Jan 25, 2025
c137bd7
clippy: Simplify boolean expression
athei Jan 26, 2025
d273bbe
Use benchmarked weight in migration
athei Jan 26, 2025
99abd13
Use value size of 32bytes
athei Jan 27, 2025
a259955
Clippy
athei Jan 27, 2025
fee7935
Update docs
athei Jan 27, 2025
283d802
Merge branch 'master' into at/deposit
athei Jan 27, 2025
dba9a1f
Update from mordamax running command 'bench-omni --runtime dev asset-…
github-actions[bot] Jan 27, 2025
7585e2d
Merge branch 'master' into at/deposit
athei Jan 27, 2025
3091457
Import `frame` is necessary for benchmark template
athei Jan 27, 2025
bb2dfc7
Update from athei running command 'fmt'
github-actions[bot] Jan 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ pallet-assets-freezer = { workspace = true }
pallet-aura = { workspace = true }
pallet-authorship = { workspace = true }
pallet-balances = { workspace = true }
pallet-migrations = { workspace = true }
pallet-multisig = { workspace = true }
pallet-nft-fractionalization = { workspace = true }
pallet-nfts = { workspace = true }
Expand Down Expand Up @@ -133,6 +134,7 @@ runtime-benchmarks = [
"pallet-balances/runtime-benchmarks",
"pallet-collator-selection/runtime-benchmarks",
"pallet-message-queue/runtime-benchmarks",
"pallet-migrations/runtime-benchmarks",
"pallet-multisig/runtime-benchmarks",
"pallet-nft-fractionalization/runtime-benchmarks",
"pallet-nfts/runtime-benchmarks",
Expand Down Expand Up @@ -177,6 +179,7 @@ try-runtime = [
"pallet-balances/try-runtime",
"pallet-collator-selection/try-runtime",
"pallet-message-queue/try-runtime",
"pallet-migrations/try-runtime",
"pallet-multisig/try-runtime",
"pallet-nft-fractionalization/try-runtime",
"pallet-nfts/try-runtime",
Expand Down Expand Up @@ -230,6 +233,7 @@ std = [
"pallet-balances/std",
"pallet-collator-selection/std",
"pallet-message-queue/std",
"pallet-migrations/std",
"pallet-multisig/std",
"pallet-nft-fractionalization/std",
"pallet-nfts-runtime-api/std",
Expand Down
23 changes: 23 additions & 0 deletions cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ impl frame_system::Config for Runtime {
type SS58Prefix = SS58Prefix;
type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode<Self>;
type MaxConsumers = frame_support::traits::ConstU32<16>;
type MultiBlockMigrator = MultiBlockMigrations;
}

impl cumulus_pallet_weight_reclaim::Config for Runtime {
Expand Down Expand Up @@ -1094,6 +1095,26 @@ impl TryFrom<RuntimeCall> for pallet_revive::Call<Runtime> {
}
}

parameter_types! {
pub MbmServiceWeight: Weight = Perbill::from_percent(80) * RuntimeBlockWeights::get().max_block;
}

impl pallet_migrations::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
#[cfg(not(feature = "runtime-benchmarks"))]
type Migrations =
frame_support::migrations::ResetPallet<Revive, <Runtime as frame_system::Config>::DbWeight>;
// Benchmarks need mocked migrations to guarantee that they succeed.
#[cfg(feature = "runtime-benchmarks")]
type Migrations = pallet_migrations::mock_helpers::MockedMigrations;
type CursorMaxLen = ConstU32<65_536>;
type IdentifierMaxLen = ConstU32<256>;
type MigrationStatusHandler = ();
type FailedMigrationHandler = frame_support::migrations::FreezeChainOnFailedMigration;
type MaxServiceWeight = MbmServiceWeight;
type WeightInfo = weights::pallet_migrations::WeightInfo<Runtime>;
}

// Create the runtime by composing the FRAME pallets that were previously configured.
construct_runtime!(
pub enum Runtime
Expand All @@ -1105,6 +1126,7 @@ construct_runtime!(
Timestamp: pallet_timestamp = 3,
ParachainInfo: parachain_info = 4,
WeightReclaim: cumulus_pallet_weight_reclaim = 5,
MultiBlockMigrations: pallet_migrations = 6,

// Monetary stuff.
Balances: pallet_balances = 10,
Expand Down Expand Up @@ -1429,6 +1451,7 @@ mod benches {
[pallet_asset_conversion_tx_payment, AssetTxPayment]
[pallet_balances, Balances]
[pallet_message_queue, MessageQueue]
[pallet_migrations, MultiBlockMigrations]
[pallet_multisig, Multisig]
[pallet_nft_fractionalization, NftFractionalization]
[pallet_nfts, Nfts]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ pub mod pallet_assets_pool;
pub mod pallet_balances;
pub mod pallet_collator_selection;
pub mod pallet_message_queue;
pub mod pallet_migrations;
pub mod pallet_multisig;
pub mod pallet_nft_fractionalization;
pub mod pallet_nfts;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
// Copyright (C) Parity Technologies (UK) Ltd.
// This file is part of Cumulus.

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

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

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

//! Autogenerated weights for `pallet_migrations`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2025-01-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `c6b61d7f408b`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: 1024

// Executed Command:
// frame-omni-bencher
// v1
// benchmark
// pallet
// --extrinsic=*
// --runtime=target/production/wbuild/asset-hub-westend-runtime/asset_hub_westend_runtime.wasm
// --pallet=pallet_migrations
// --header=/__w/polkadot-sdk/polkadot-sdk/cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights
// --wasm-execution=compiled
// --steps=50
// --repeat=20
// --heap-pages=4096
// --no-storage-info
// --no-min-squares
// --no-median-slopes

#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
#![allow(unused_imports)]
#![allow(missing_docs)]

use frame_support::{traits::Get, weights::Weight};
use core::marker::PhantomData;

/// Weight functions for `pallet_migrations`.
pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_migrations::WeightInfo for WeightInfo<T> {
/// Storage: `MultiBlockMigrations::Cursor` (r:1 w:1)
/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
fn onboard_new_mbms() -> Weight {
// Proof Size summary in bytes:
// Measured: `171`
// Estimated: `67035`
// Minimum execution time: 10_385_000 picoseconds.
Weight::from_parts(10_929_000, 0)
.saturating_add(Weight::from_parts(0, 67035))
.saturating_add(T::DbWeight::get().reads(2))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0)
/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
fn progress_mbms_none() -> Weight {
// Proof Size summary in bytes:
// Measured: `42`
// Estimated: `67035`
// Minimum execution time: 3_268_000 picoseconds.
Weight::from_parts(3_410_000, 0)
.saturating_add(Weight::from_parts(0, 67035))
.saturating_add(T::DbWeight::get().reads(1))
}
/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1)
/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
fn exec_migration_completed() -> Weight {
// Proof Size summary in bytes:
// Measured: `129`
// Estimated: `3594`
// Minimum execution time: 7_879_000 picoseconds.
Weight::from_parts(8_298_000, 0)
.saturating_add(Weight::from_parts(0, 3594))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Storage: `MultiBlockMigrations::Historic` (r:1 w:0)
/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
fn exec_migration_skipped_historic() -> Weight {
// Proof Size summary in bytes:
// Measured: `225`
// Estimated: `3731`
// Minimum execution time: 14_882_000 picoseconds.
Weight::from_parts(15_278_000, 0)
.saturating_add(Weight::from_parts(0, 3731))
.saturating_add(T::DbWeight::get().reads(2))
}
/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Storage: `MultiBlockMigrations::Historic` (r:1 w:0)
/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
fn exec_migration_advance() -> Weight {
// Proof Size summary in bytes:
// Measured: `171`
// Estimated: `3731`
// Minimum execution time: 14_337_000 picoseconds.
Weight::from_parts(14_736_000, 0)
.saturating_add(Weight::from_parts(0, 3731))
.saturating_add(T::DbWeight::get().reads(2))
}
/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Storage: `MultiBlockMigrations::Historic` (r:1 w:1)
/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
fn exec_migration_complete() -> Weight {
// Proof Size summary in bytes:
// Measured: `171`
// Estimated: `3731`
// Minimum execution time: 16_557_000 picoseconds.
Weight::from_parts(17_061_000, 0)
.saturating_add(Weight::from_parts(0, 3731))
.saturating_add(T::DbWeight::get().reads(2))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Storage: `MultiBlockMigrations::Historic` (r:1 w:0)
/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
/// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1)
/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
fn exec_migration_fail() -> Weight {
// Proof Size summary in bytes:
// Measured: `171`
// Estimated: `3731`
// Minimum execution time: 17_377_000 picoseconds.
Weight::from_parts(17_775_000, 0)
.saturating_add(Weight::from_parts(0, 3731))
.saturating_add(T::DbWeight::get().reads(2))
.saturating_add(T::DbWeight::get().writes(1))
}
fn on_init_loop() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 253_000 picoseconds.
Weight::from_parts(290_000, 0)
.saturating_add(Weight::from_parts(0, 0))
}
/// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1)
/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
fn force_set_cursor() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 3_813_000 picoseconds.
Weight::from_parts(4_025_000, 0)
.saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: `MultiBlockMigrations::Cursor` (r:0 w:1)
/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
fn force_set_active_cursor() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 4_459_000 picoseconds.
Weight::from_parts(4_682_000, 0)
.saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: `MultiBlockMigrations::Cursor` (r:1 w:0)
/// Proof: `MultiBlockMigrations::Cursor` (`max_values`: Some(1), `max_size`: Some(65550), added: 66045, mode: `MaxEncodedLen`)
/// Storage: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x583359fe0e84d953a9dd84e8addb08a5` (r:1 w:0)
fn force_onboard_mbms() -> Weight {
// Proof Size summary in bytes:
// Measured: `147`
// Estimated: `67035`
// Minimum execution time: 8_040_000 picoseconds.
Weight::from_parts(8_345_000, 0)
.saturating_add(Weight::from_parts(0, 67035))
.saturating_add(T::DbWeight::get().reads(2))
}
/// Storage: `MultiBlockMigrations::Historic` (r:256 w:256)
/// Proof: `MultiBlockMigrations::Historic` (`max_values`: None, `max_size`: Some(266), added: 2741, mode: `MaxEncodedLen`)
/// The range of component `n` is `[0, 256]`.
fn clear_historic(n: u32, ) -> Weight {
// Proof Size summary in bytes:
// Measured: `1022 + n * (271 ±0)`
// Estimated: `3834 + n * (2740 ±0)`
// Minimum execution time: 19_643_000 picoseconds.
Weight::from_parts(19_906_409, 0)
.saturating_add(Weight::from_parts(0, 3834))
// Standard Error: 3_212
.saturating_add(Weight::from_parts(1_568_857, 0).saturating_mul(n.into()))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into())))
.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into())))
.saturating_add(Weight::from_parts(0, 2740).saturating_mul(n.into()))
}
}
Loading
Loading