- Feb 28, 2024
-
-
Liam Aharon authored
Closes https://github.com/paritytech/polkadot-sdk-docs/issues/55 - Changes 'current storage version' terminology to less ambiguous 'in-code storage version' (suggestion by @ggwpez ) - Adds a new example pallet `pallet-example-single-block-migrations` - Adds a new reference doc to replace https://docs.substrate.io/maintain/runtime-upgrades/ (temporarily living in the pallet while we wait for developer hub PR to merge) - Adds documentation for the `storage_alias` macro - Improves `trait Hooks` docs - Improves `trait GetStorageVersion` docs - Update the suggested patterns for using `VersionedMigration`, so that version unchecked migrations are never exported - Prevents accidental usage of version unchecked migrations in runtimes https://github.com/paritytech/substrate/pull/14421#discussion_r1255467895 - Unversioned migration code is kept inside `mod version_unchecked`, versioned code is kept in `pub mod versioned` - It is necessary to use modules to limit visibility because the inner migration must be `pub`. See https://github.com/rust-lang/rust/issues/30905 and https://internals.rust-lang.org/t/lang-team-minutes-private-in-public-rules/4504/40 for more. ### todo - [x] move to reference docs to proper place within sdk-docs (now that https://github.com/paritytech/polkadot-sdk/pull/2102 is merged) - [x] prdoc --------- Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: Juan <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: command-bot <> Co-authored-by: gupnik <[email protected]>
-
- Jan 31, 2024
-
-
Branislav Kontur authored
[frame] `#[pallet::composite_enum]` improved variant count handling + removed `pallet_balances`'s `MaxHolds` config (#2657) I started this investigation/issue based on @liamaharon question [here](https://github.com/paritytech/polkadot-sdk/pull/1801#discussion_r1410452499). ## Problem The `pallet_balances` integrity test should correctly detect that the runtime has correct distinct `HoldReasons` variant count. I assume the same situation exists for RuntimeFreezeReason. It is not a critical problem, if we set `MaxHolds` with a sufficiently large value, everything should be ok. However, in this case, the integrity_test check becomes less useful. **Situation for "any" runtime:** - `HoldReason` enums from different pallets: ```rust /// from pallet_nis #[pallet::composite_enum] pub enum HoldReason { NftReceipt, } /// from pallet_preimage #[pallet::composite_enum] pub enum HoldReason { Preimage, } // from pallet_state-trie-migration #[pallet::composite_enum] pub enum HoldReason { SlashForContinueMigrate, SlashForMigrateCustomTop, SlashForMigrateCustomChild, } ``` - generated `RuntimeHoldReason` enum looks like: ```rust pub enum RuntimeHoldReason { #[codec(index = 32u8)] Preimage(pallet_preimage::HoldReason), #[codec(index = 38u8)] Nis(pallet_nis::HoldReason), #[codec(index = 42u8)] StateTrieMigration(pallet_state_trie_migration::HoldReason), } ``` - composite enum `RuntimeHoldReason` variant count is detected as `3` - we set `type MaxHolds = ConstU32<3>` - `pallet_balances::integrity_test` is ok with `3`(at least 3) However, the real problem can occur in a live runtime where some functionality might stop working. This is due to a total of 5 distinct hold reasons (for pallets with multi-instance support, it is even more), and not all of them can be used because of an incorrect `MaxHolds`, which is deemed acceptable according to the `integrity_test`: ``` // pseudo-code - if we try to call all of these: T::Currency::hold(&pallet_nis::HoldReason::NftReceipt.into(), &nft_owner, deposit)?; T::Currency::hold(&pallet_preimage::HoldReason::Preimage.into(), &nft_owner, deposit)?; T::Currency::hold(&pallet_state_trie_migration::HoldReason::SlashForContinueMigrate.into(), &nft_owner, deposit)?; // With `type MaxHolds = ConstU32<3>` these two will fail T::Currency::hold(&pallet_state_trie_migration::HoldReason::SlashForMigrateCustomTop.into(), &nft_owner, deposit)?; T::Currency::hold(&pallet_state_trie_migration::HoldReason::SlashForMigrateCustomChild.into(), &nft_owner, deposit)?; ``` ## Solutions A macro `#[pallet::*]` expansion is extended of `VariantCount` implementation for the `#[pallet::composite_enum]` enum type. This expansion generates the `VariantCount` implementation for pallets' `HoldReason`, `FreezeReason`, `LockId`, and `SlashReason`. Enum variants must be plain enum values without fields to ensure a deterministic count. The composite runtime enum, `RuntimeHoldReason` and `RuntimeFreezeReason`, now sets `VariantCount::VARIANT_COUNT` as the sum of pallets' enum `VariantCount::VARIANT_COUNT`: ```rust #[frame_support::pallet(dev_mode)] mod module_single_instance { #[pallet::composite_enum] pub enum HoldReason { ModuleSingleInstanceReason1, ModuleSingleInstanceReason2, } ... } #[frame_support::pallet(dev_mode)] mod module_multi_instance { #[pallet::composite_enum] pub enum HoldReason<I: 'static = ()> { ModuleMultiInstanceReason1, ModuleMultiInstanceReason2, ModuleMultiInstanceReason3, } ... } impl self::sp_api_hidden_includes_construct_runtime::hidden_include::traits::VariantCount for RuntimeHoldReason { const VARIANT_COUNT: u32 = 0 + module_single_instance::HoldReason::VARIANT_COUNT + module_multi_instance::HoldReason::<module_multi_instance::Instance1>::VARIANT_COUNT + module_multi_instance::HoldReason::<module_multi_instance::Instance2>::VARIANT_COUNT + module_multi_instance::HoldReason::<module_multi_instance::Instance3>::VARIANT_COUNT; } ``` In addition, `MaxHolds` is removed (as suggested [here](https://github.com/paritytech/polkadot-sdk/pull/2657#discussion_r1443324573)) from `pallet_balances`, and its `Holds` are now bounded to `RuntimeHoldReason::VARIANT_COUNT`. Therefore, there is no need to let the runtime specify `MaxHolds`. ## For reviewers Relevant changes can be found here: - `substrate/frame/support/procedural/src/lib.rs` - `substrate/frame/support/procedural/src/pallet/parse/composite.rs` - `substrate/frame/support/procedural/src/pallet/expand/composite.rs` - `substrate/frame/support/procedural/src/construct_runtime/expand/composite_helper.rs` - `substrate/frame/support/procedural/src/construct_runtime/expand/hold_reason.rs` - `substrate/frame/support/procedural/src/construct_runtime/expand/freeze_reason.rs` - `substrate/frame/support/src/traits/misc.rs` And the rest of the files is just about removed `MaxHolds` from `pallet_balances` ## Next steps Do the same for `MaxFreezes` https://github.com/paritytech/polkadot-sdk/issues/2997. --------- Co-authored-by: command-bot <> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Dónal Murray <[email protected]> Co-authored-by: gupnik <[email protected]>
-
- Jan 22, 2024
-
-
joe petrowski authored
Clean up all the old syntax. --------- Co-authored-by: command-bot <> Co-authored-by: gupnik <[email protected]> Co-authored-by: Nikhil Gupta <[email protected]> Co-authored-by: Maksym H <[email protected]>
-
- Nov 28, 2023
-
-
gupnik authored
Step in https://github.com/paritytech/polkadot-sdk/issues/171 This PR adds `derive_impl` on all `frame_system` config impls for mock runtimes. The overridden configs are maintained as of now to ensure minimal changes. --------- Co-authored-by: Oliver Tale-Yazdi <[email protected]>
-
- Oct 24, 2023
-
-
Kian Paimani authored
closes https://github.com/paritytech/polkadot-sdk/issues/1882 ## Breaking Changes This PR introduces a new item to `pallet_balances::Config`: ```diff trait Config { ++ type RuntimeFreezeReasons; } ``` This value is only used to check it against `type MaxFreeze`. A similar check has been added for `MaxHolds` against `RuntimeHoldReasons`, which is already given to `pallet_balances`. In all contexts, you should pass the real `RuntimeFreezeReasons` generated by `construct_runtime` to `type RuntimeFreezeReasons`. Passing `()` would also work, but it would imply that the runtime uses no freezes at all. --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]>
-
- Sep 06, 2023
-
-
Xiliang Chen authored
* rfc14 * Update polkadot/runtime/common/src/paras_registrar/mod.rs Co-authored-by: Bastian Köcher <[email protected]> * Update polkadot/runtime/common/src/paras_registrar/mod.rs Co-authored-by: Bastian Köcher <[email protected]> * Update polkadot/runtime/common/src/paras_registrar/mod.rs Co-authored-by: Bastian Köcher <[email protected]> * fmt * fix * Update polkadot/runtime/common/src/paras_registrar/migration.rs Co-authored-by: Oliver Tale-Yazdi <[email protected]> * fmt * 2224 is unlocked * update migration list * update comment * use VersionedMigration --------- Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]>
-
- Aug 31, 2023
-
-
juangirini authored
* restructure dispatch macro related exports * moved Dispatchable to lib.rs * fix .gitignore final newline * ".git/.scripts/commands/fmt/fmt.sh" * fix rustdocs * wip --------- Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: command-bot <> Co-authored-by: ordian <[email protected]>
-
- Aug 16, 2023
-
-
Oliver Tale-Yazdi authored
* Fix clippy check Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Autofix clippy Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Fix trivial Signed-off-by: Oliver Tale-Yazdi <[email protected]> * fmt Signed-off-by: Oliver Tale-Yazdi <[email protected]> * suppress warnings Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Quiet clippy
😌 Signed-off-by: Oliver Tale-Yazdi <[email protected]> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]>
-
- Aug 14, 2023
-
-
Oliver Tale-Yazdi authored
* Use same rustfmt.toml as Substrate Signed-off-by: Oliver Tale-Yazdi <[email protected]> * format format file Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Format with new config Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Add Substrate Clippy config Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Print Clippy version in CI Otherwise its difficult to reproduce locally. Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Make fmt happy Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Update node/core/pvf/src/error.rs Co-authored-by: Tsvetomir Dimitrov <[email protected]> * Update node/core/pvf/src/error.rs Co-authored-by: Tsvetomir Dimitrov <[email protected]> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Tsvetomir Dimitrov <[email protected]>
-
- Jul 14, 2023
-
-
juangirini authored
* replace Index for Nonce * remove extra Nonce * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
- Jul 13, 2023
-
-
gupnik authored
Moves `Block` to `frame_system` instead of `construct_runtime` and removes `Header` and `BlockNumber` (#7431) * Companion for substrate * Minor update * Formatting * Fixes for cumulus * Fixes tests in polkadot-runtime-parachains * Minor update * Removes unused import * Fixes tests in polkadot-runtime-common * Minor fix * Update roadmap/implementers-guide/src/runtime/configuration.md Co-authored-by: ordian <[email protected]> * ".git/.scripts/commands/fmt/fmt.sh" * update lockfile for {"substrate"} --------- Co-authored-by: ordian <[email protected]> Co-authored-by: command-bot <>
-
- Jul 12, 2023
-
-
Michal Kucharczyk authored
* GenesisBuild<T,I> deprecated. BuildGenesisConfig added * fmt * fixes * more fixes * more fixes * fixes * update lockfile for {"substrate"} * fix --------- Co-authored-by: parity-processbot <>
-
- May 24, 2023
-
-
Bastian Köcher authored
* Companion: Substrate#13869 https://github.com/paritytech/substrate/pull/13869 * update lockfile for {"substrate"} * ".git/.scripts/commands/fmt/fmt.sh" --------- Co-authored-by: parity-processbot <>
-
- May 23, 2023
-
-
Sergej Sakac authored
* Try-runtime proper return types * update * oops * use ensure * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
- May 17, 2023
-
-
Bastian Köcher authored
* Yeah * Fix all the migrations for Kusama & Polkadot --------- Co-authored-by: Liam Aharon <[email protected]>
-
- May 08, 2023
-
-
Chris Sosnin authored
* paras: unconditionally precheck pvfs * Update integration tests * paras_registrar tests * runtime benchmark tests * fix bench * bypass prechecking in test node * adjust bench * ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras * ".git/.scripts/commands/bench/bench.sh" runtime kusama runtime_parachains::paras * ".git/.scripts/commands/bench/bench.sh" runtime rococo runtime_parachains::paras * ".git/.scripts/commands/bench/bench.sh" runtime westend runtime_parachains::paras * use test helper * fix new test --------- Co-authored-by: command-bot <>
-
- Apr 08, 2023
-
-
s0me0ne-unkn0wn authored
* Happy New Year! * Remove year entierly Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Remove years from copyright notice in the entire repo --------- Co-authored-by: Oliver Tale-Yazdi <[email protected]>
-
- Mar 20, 2023
-
-
Gavin Wood authored
* Some renames * Fix * Fix build for new APIs * Remove diener * Fixes * Fixes * Fix integration tests * Fixes * fix nis issuance * Update Cargo.toml * Polkadot doesn't have freezes/holds yet * No networks use freezes/holds * update lockfile for {"substrate"} * Fix tests There are more failing tests; just starting with the easy ones. Reserved balance does not count towards ED anymore, therefore reducing all the reserves by ED (1). Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Fixes for Polkadot pallets * Fix parachains benchmarks * Update Substrate Signed-off-by: Oliver Tale-Yazdi <[email protected]> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: parity-processbot <> Co-authored-by: Oliver Tale-Yazdi <[email protected]>
-
- Mar 17, 2023
-
-
Davide Galassi authored
* Remove not required async calls * Fixed missing renaming * make_keystore can be sync * More fixes * Trivial nitpicks * Cherry pick test fix from master * Fixes after master merge * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
- Mar 13, 2023
-
-
Vivek Pandya authored
* Remove use of Store trait from runtime directory * Remove Store trait usage from xcm directory * Run cargo fmt * update lockfile for {"substrate"} --------- Co-authored-by: parity-processbot <>
-
- Jan 11, 2023
-
-
s0me0ne-unkn0wn authored
* Re-export current primitives in crate root * Add missing exports * restart CI
-
Gavin Wood authored
* Improve inactive fund tracking * Docs * Introduce the re-migration code * Bump * Update runtime/kusama/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Update runtime/common/src/crowdloan/migration.rs Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Update runtime/common/src/crowdloan/migration.rs Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Grumbles * Apply comments suggestions from code review Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: muharem <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: parity-processbot <>
-
- Dec 19, 2022
-
-
Oliver Tale-Yazdi authored
* cargo update -p sp-io Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Use explicit call indices Signed-off-by: Oliver Tale-Yazdi <[email protected]> Signed-off-by: Oliver Tale-Yazdi <[email protected]>
-
- Dec 06, 2022
-
-
Bastian Köcher authored
The migration would not have been run because of the `current_version == 1` check.
-
- Dec 05, 2022
-
-
Gavin Wood authored
* Tweaks to optimise gov2 * Use new inactive funds * Introduce migrations * Fixes * Fixes * Fixes * Some constant updates for Fellowship * Further tweaks * Lower floor for whitelisted
-
- Nov 30, 2022
-
-
alexgparity authored
* Add clippy config and remove .cargo from gitignore * first fixes * Clippyfied * Add clippy CI job * comment out rusty-cachier * minor * fix ci * remove DAG from check-dependent-project * add DAG to clippy Co-authored-by: alvicsam <[email protected]>
-
- Sep 20, 2022
-
-
Sergej Sakac authored
* Rename Origin * fmt * fixes * more fixes * fix * more fixing * small fixes * last touches * update lockfile for {"substrate"} Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: parity-processbot <>
-
- Sep 12, 2022
-
-
Sergej Sakac authored
* Companion for #11981 * more renaming * fmt * fixes * add generic type * Companion for #11831 * fix * revert changes * Delete rename-outer-enum.diff * revert * Update run_benches_for_runtime.sh * rename type Call & type Event * passing tests * fmt * small fixes * commit * fix * fmt * commit * error fixes * fix * small fix in test * Update lib.rs * Update lib.rs * Update lib.rs * Update lib.rs * Update lib.rs * Update lib.rs * Update lib.rs * remove RuntimeCall from pallet_grandpa * last fix * commit * rename * merge fix * update lockfile for {"substrate"} * cargo +nightly fmt * fix Co-authored-by: parity-processbot <> Co-authored-by: Shawn Tabrizi <[email protected]>
-
- Sep 01, 2022
-
-
Shawn Tabrizi authored
* updates * remove new * fix up some stuff * fix cargo files * fix * fix template * update lockfile for {"substrate"} * Update block_weights.rs * remove unused * remove unused Co-authored-by: parity-processbot <>
-
- Aug 31, 2022
-
-
Shawn Tabrizi authored
* fix to latest substrate pr * update weights * cargo build -p polkadot-runtime-parachains * fix xcm-builder * fix import * fix a bunch * fix a bunch of weight stuff * kusama compile * unused * builds * maybe fix * cargo test -p polkadot-runtime-parachains * xcm simulator example * fix tests * xcm sim fuzz * fix runtime tests * remove unused * fix integration tests * scalar div * update lockfile for {"substrate"} Co-authored-by: parity-processbot <>
-
- May 30, 2022
-
-
Gavin Wood authored
* Fix warnings * Bump
-
- May 17, 2022
-
-
Bastian Köcher authored
* Substrate companion #11387 https://github.com/paritytech/substrate/pull/11387 * Update runtime/common/src/crowdloan/migration.rs * cargo update -p sp-io * fmt Co-authored-by: Shawn Tabrizi <[email protected]>
-
Oliver Tale-Yazdi authored
* Use into_account_truncating Signed-off-by: Oliver Tale-Yazdi <[email protected]> * more truncating * more truncating * more * clean up parachain primitives * more truncating * update lockfile for {"substrate"} Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: parity-processbot <>
-
- May 13, 2022
-
-
Shawn Tabrizi authored
* auctions * claims * registrar * Update purchase.rs * crowdloan * slots * comma
-
- May 11, 2022
-
-
Bernhard Schuster authored
`1.into()` -> `ParaId::from(1_u32)` (#5500)
-
- Apr 07, 2022
-
-
Shawn Tabrizi authored
* new migration * use new migration in runtime
-
- Apr 04, 2022
-
-
Qinxuan Chen authored
* Comanion for substrate#11136 Signed-off-by: koushiro <[email protected]> * revert changes in bridge Signed-off-by: koushiro <[email protected]>
-
- Mar 30, 2022
-
-
Shawn Tabrizi authored
* Also migrate lease depositors * bump spec version * Update runtime/common/src/crowdloan/migration.rs Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: Kian Paimani <[email protected]>
-
- Mar 18, 2022
-
-
Shawn Tabrizi authored
* remove stupid check * here too
-
- Mar 17, 2022
-
-
Shawn Tabrizi authored
* integration tests use offset * fix slots * fix auctions * add auctions benchmark * fix crowdloan
-