Skip to content
  1. Dec 12, 2023
    • Ross Bulat's avatar
      Staking: Add `deprecate_controller_batch` AdminOrigin call (#2589) · 048a9c27
      Ross Bulat authored
      
      
      Partially Addresses #2500
      
      Adds a `deprecate_controller_batch` call to the staking pallet that is
      callable by `Root` and `StakingAdmin`. To be used for controller account
      deprecation and removed thereafter. Adds
      `MaxControllersDeprecationBatch` pallet constant that defines max
      possible deprecations per call.
      
      - [x] Add `deprecate_controller_batch` call, and
      `MaxControllersInDeprecationBatch` constant.
      - [x] Add tests, benchmark, weights. Tests that weight is only consumed
      if unique pair.
      - [x] Adds `StakingAdmin` origin to staking's `AdminOrigin` type in
      westend runtime.
      - [x] Determined that worst case 5,900 deprecations does fit into
      `maxBlock` `proofSize` and `refTime` in both normal and operational
      thresholds, meaning we can deprecate all controllers for each network in
      one call.
      
      ## Block Weights
      
      By querying `consts.system.blockWeights` we can see that the
      `deprecate_controller_batch` weights fit within the `normal` threshold
      on Polkadot.
      
      #### `controller_deprecation_batch` where i = 5900:
      #### Ref time: 69,933,325,300
      #### Proof size: 21,040,390
      
      ### Polkadot 
      
      ```
      // consts.query.blockWeights
      
      maxBlock: {
              refTime: 2,000,000,000,000
              proofSize: 18,446,744,073,709,551,615
      }
      normal: {
       maxExtrinsic: {
      	refTime: 1,479,873,955,000
      	proofSize: 13,650,590,614,545,068,195
       }
       maxTotal: {
      	refTime: 1,500,000,000,000
      	proofSize: 13,835,058,055,282,163,711
       }
      }
      ```
      
      ### Kusama
      
      ```
      // consts.query.blockWeights
      
        maxBlock: {
          refTime: 2,000,000,000,000
          proofSize: 18,446,744,073,709,551,615
        }
          normal: {
            maxExtrinsic: {
              refTime: 1,479,875,294,000
              proofSize: 13,650,590,614,545,068,195
            }
            maxTotal: {
              refTime: 1,500,000,000,000
              proofSize: 13,835,058,055,282,163,711
            }
      }
      ```
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarGonçalo Pestana <[email protected]>
      048a9c27
  2. Dec 11, 2023
    • Gabriel Facco de Arruda's avatar
      pallet-vesting: Configurable block number provider (#2403) · c2d45e7e
      Gabriel Facco de Arruda authored
      
      
      This PR makes the block number provider configurable through the Config
      trait in pallet-vesting, this gives parachains the option to use the
      relay chain block number provider from ParachainSystem.
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      c2d45e7e
    • dependabot[bot]'s avatar
      Bump the known_good_semver group with 2 updates (#2675) · 7b416d84
      dependabot[bot] authored
      
      
      Bumps the known_good_semver group with 2 updates:
      [clap](https://github.com/clap-rs/clap) and
      [syn](https://github.com/dtolnay/syn).
      
      Updates `clap` from 4.4.10 to 4.4.11
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/clap-rs/clap/releases">clap's
      releases</a>.</em></p>
      <blockquote>
      <h2>v4.4.11</h2>
      <h2>[4.4.11] - 2023-12-04</h2>
      <h3>Features</h3>
      <ul>
      <li>Add <code>Command::mut_group</code></li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Changelog</summary>
      <p><em>Sourced from <a
      href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
      changelog</a>.</em></p>
      <blockquote>
      <h2>[4.4.11] - 2023-12-04</h2>
      <h3>Features</h3>
      <ul>
      <li>Add <code>Command::mut_group</code></li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/clap-rs/clap/commit/d092896d61fd73a5467db85eac035a9ce2ddbc60"><code>d092896</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/c76a713f8bd40a54a58e8c1d2300a6792f1b79d5"><code>c76a713</code></a>
      chore: Update lockfile</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/b99d17bb0b78b667659982252e8973174e93ae7d"><code>b99d17b</code></a>
      docs: Update changelog</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/b47f8da4d857dd653915ce772757d4b996a36477"><code>b47f8da</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5247">#5247</a>
      from epage/group</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/2e7c9d11a84b5008e2b42b4df323557a31bb0337"><code>2e7c9d1</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5194">#5194</a>
      from c19/patch-1</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/37917be0b75d5cd667cd37db6ea5c6bac837c674"><code>37917be</code></a>
      feat: Add Command::mut_group</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/cf7a0272cc1d55d139983d4408e8bedab51338ad"><code>cf7a027</code></a>
      chore: Update from '_rust/main'</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/8c836eaa9d9279df467991a3b8463d748b515a0a"><code>8c836ea</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/10">#10</a> from
      epage/renovate/migrate-config</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/598c6244983fb392457f3fbec9badf25fab6d051"><code>598c624</code></a>
      chore(config): migrate config .github/renovate.json5</li>
      <li>See full diff in <a
      href="https://github.com/clap-rs/clap/compare/v4.4.10...v4.4.11">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `syn` from 2.0.39 to 2.0.40
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/syn/releases">syn's
      releases</a>.</em></p>
      <blockquote>
      <h2>2.0.40</h2>
      <ul>
      <li>Fix some edge cases of handling None-delimited groups in expression
      parser (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1539">#1539</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1541">#1541</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1542">#1542</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1543">#1543</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1544">#1544</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1545">#1545</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/syn/commit/cf7f40a96a7329fb4215a7a1d8d9e7c93439b169"><code>cf7f40a</code></a>
      Release 2.0.40</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/1ce8ccf5cd92824d1058019c0ae95b0616f6ac01"><code>1ce8ccf</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1538">#1538</a>
      from dtolnay/testinvisible</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/d06bff8883e794c0d9d5fe2998210dec113b6eff"><code>d06bff8</code></a>
      Add test for parsing Delimiter::None in expressions</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/9ec66d42bba0da0041ab6448604b72f673e185f1"><code>9ec66d4</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1545">#1545</a>
      from dtolnay/groupedlet</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/384621acc640779ee4a8250317c26a42e8ceef90"><code>384621a</code></a>
      Fix None-delimited let expression in stmt position</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/5325b6d1711c1c9c6787cb6239b472b5f8b5daaf"><code>5325b6d</code></a>
      Add test of let expr surrounded in None-delimited group</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/0ddfc27cf79573db0b5533c583ff895e9c7f3f72"><code>0ddfc27</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1544">#1544</a>
      from dtolnay/nonedelimloop</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/9c99b3f62ecebb2ac22f8ed99039934b0a18d0e6"><code>9c99b3f</code></a>
      Fix stmt boundary after None-delimited group containing loop</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/2781584ea868cce6c9ae750bc442e3b4b2dfd887"><code>2781584</code></a>
      Add test of None-delimited group containing loop in match arm</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/d33292808432c8530b53c951f2780d7128c4bd0b"><code>d332928</code></a>
      Simplify token stream construction in Delimiter::None tests</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/syn/compare/2.0.39...2.0.40">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      Dependabot will resolve any conflicts with this PR as long as you don't
      alter it yourself. You can also trigger a rebase manually by commenting
      `@dependabot rebase`.
      
      [//]: # (dependabot-automerge-start)
      [//]: # (dependabot-automerge-end)
      
      ---
      
      <details>
      <summary>Dependabot commands and options</summary>
      <br />
      
      You can trigger Dependabot actions by commenting on this PR:
      - `@dependabot rebase` will rebase this PR
      - `@dependabot recreate` will recreate this PR, overwriting any edits
      that have been made to it
      - `@dependabot merge` will merge this PR after your CI passes on it
      - `@dependabot squash and merge` will squash and merge this PR after
      your CI passes on it
      - `@dependabot cancel merge` will cancel a previously requested merge
      and block automerging
      - `@dependabot reopen` will reopen this PR if it is closed
      - `@dependabot close` will close this PR and stop Dependabot recreating
      it. You can achieve the same result by closing it manually
      - `@dependabot show <dependency name> ignore conditions` will show all
      of the ignore conditions of the specified dependency
      - `@dependabot ignore <dependency name> major version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's major version (unless you unignore this specific
      dependency's major version or upgrade to it yourself)
      - `@dependabot ignore <dependency name> minor version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's minor version (unless you unignore this specific
      dependency's minor version or upgrade to it yourself)
      - `@dependabot ignore <dependency name>` will close this group update PR
      and stop Dependabot creating any more for the specific dependency
      (unless you unignore this specific dependency or upgrade to it yourself)
      - `@dependabot unignore <dependency name>` will remove all of the ignore
      conditions of the specified dependency
      - `@dependabot unignore <dependency name> <ignore condition>` will
      remove the ignore condition of the specified dependency and ignore
      conditions
      
      
      </details>
      
      Signed-off-by: default avatardependabot[bot] <[email protected]>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      7b416d84
  3. Dec 10, 2023
    • Alexandru Gheorghe's avatar
      [ci] fix test-frame-ui job (#2672) · e5dc8ed8
      Alexandru Gheorghe authored
      
      
      The test frame ui started failing consistently on latest master [1]. I
      assume it was because of a race between
      https://github.com/paritytech/polkadot-sdk/pull/1343 which introduced
      this warning and a PR that updated our tooling version, hence the
      warnings don't match perfectly, so regenerated them with
      `TRYBUILD=overwrite` as the test suggests.
      
      [1] https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/4666766
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <[email protected]>
      e5dc8ed8
  4. Dec 08, 2023
    • Bastian Köcher's avatar
      Update proc-macro-crate (#2660) · f6ae1458
      Bastian Köcher authored
      f6ae1458
    • Muharem Ismailov's avatar
      Westend: Fellowship Treasury (#2532) · da40d97a
      Muharem Ismailov authored
      Treasury Pallet Instance for the Fellowship in Westend Collectives.
      
      In this update, we present a Treasury Pallet Instance that is under the
      control of the Fellowship body, with oversight from the Root and
      Treasurer origins. Here's how it is governed:
      - the Root origin have the authority to reject or approve spend
      proposals, with no amount limit for approvals.
      - the Treasurer origin have the authority to reject or approve spend
      proposals, with approval limits of up to 10,000,000 DOT.
      - Voice of all Fellows ranked at 3 or above can reject or approve spend
      proposals, with a maximum approval limit of 10,000 DOT.
      - Voice of Fellows ranked at 4 or above can also reject or approve spend
      proposals, with a maximum approval limit of 10,000,000 DOT.
      
      Additionally, we introduce the Asset Rate Pallet Instance to establish
      conversion rates from asset A to B. This is used to determine if a
      proposed spend amount involving a non-native asset is permissible by the
      comm...
      da40d97a
    • Jegor Sidorenko's avatar
      [NTFs] Emit CollectionMaxSupplySet on collection create (#2626) · 1bdfb295
      Jegor Sidorenko authored
      Closes #2293 
      
      if the max_supply is set during the collection creation, we emit the
      `CollectionMaxSupplySet` event
      1bdfb295
    • Sam Johnson's avatar
      Tasks: general system for recognizing and executing service work (#1343) · ac3f14d2
      Sam Johnson authored
      
      
      `polkadot-sdk` version of original tasks PR located here:
      https://github.com/paritytech/substrate/pull/14329
      
      Fixes #206
      
      ## Status
      - [x] Generic `Task` trait
      - [x] `RuntimeTask` aggregated enum, compatible with
      `construct_runtime!`
      - [x] Casting between `Task` and `RuntimeTask` without needing `dyn` or
      `Box`
      - [x] Tasks Example pallet
      - [x] Runtime tests for Tasks example pallet
      - [x] Parsing for task-related macros
      - [x] Retrofit parsing to make macros optional
      - [x] Expansion for task-related macros
      - [x] Adds support for args in tasks
      - [x] Retrofit tasks example pallet to use macros instead of manual
      syntax
      - [x] Weights
      - [x] Cleanup
      - [x] UI tests
      - [x] Docs
      
      ## Target Syntax
      Adapted from
      https://github.com/paritytech/polkadot-sdk/issues/206#issue-1865172283
      
      ```rust
      // NOTE: this enum is optional and is auto-generated by the other macros if not present
      #[pallet::task]
      pub enum Task<T: Config> {
          AddNumberIntoTotal {
              i: u32,
          }
      }
      
      /// Some running total.
      #[pallet::storage]
      pub(super) type Total<T: Config<I>, I: 'static = ()> =
      StorageValue<_, (u32, u32), ValueQuery>;
      
      /// Numbers to be added into the total.
      #[pallet::storage]
      pub(super) type Numbers<T: Config<I>, I: 'static = ()> =
      StorageMap<_, Twox64Concat, u32, u32, OptionQuery>;
      
      #[pallet::tasks_experimental]
      impl<T: Config<I>, I: 'static> Pallet<T, I> {
      	/// Add a pair of numbers into the totals and remove them.
      	#[pallet::task_list(Numbers::<T, I>::iter_keys())]
      	#[pallet::task_condition(|i| Numbers::<T, I>::contains_key(i))]
      	#[pallet::task_index(0)]
      	pub fn add_number_into_total(i: u32) -> DispatchResult {
      		let v = Numbers::<T, I>::take(i).ok_or(Error::<T, I>::NotFound)?;
      		Total::<T, I>::mutate(|(total_keys, total_values)| {
      			*total_keys += i;
      			*total_values += v;
      		});
      		Ok(())
      	}
      }
      ```
      
      ---------
      
      Co-authored-by: default avatarNikhil Gupta <[email protected]>
      Co-authored-by: default avatarkianenigma <[email protected]>
      Co-authored-by: Nikhil Gupta <>
      Co-authored-by: default avatarGavin Wood <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatargupnik <[email protected]>
      ac3f14d2
    • Bastian Köcher's avatar
      pallet-broker: Small improvements to the origin checks (#2656) · fde5d8fe
      Bastian Köcher authored
      The permissionless calls do not need to ensure that the `origin` is
      signed. Anyone can execute these calls.
      fde5d8fe
  5. Dec 07, 2023
  6. Dec 06, 2023
    • Adrian Catangiu's avatar
      pallet-xcm: add new flexible `transfer_assets()` call/extrinsic (#2388) · e7651cf4
      Adrian Catangiu authored
      # Motivation (+testing)
      
      ### Enable easy `ForeignAssets` transfers using `pallet-xcm` 
      
      We had just previously added capabilities to teleport fees during
      reserve-based transfers, but what about reserve-transferring fees when
      needing to teleport some non-fee asset?
      
      This PR aligns everything under either explicit reserve-transfer,
      explicit teleport, or this new flexible `transfer_assets()` which can
      mix and match as needed with fewer artificial constraints imposed to the
      user.
      
      This will enable, for example, a (non-system) parachain to teleport
      their `ForeignAssets` assets to AssetHub while using DOT to pay fees.
      (the assets are teleported - as foreign assets should from their owner
      chain - while DOT used for fees can only be reserve-based transferred
      between said parachain and AssetHub).
      
      Added `xcm-emulator` tests for this scenario ^.
      
      # Description
      
      Reverts `(limited_)reserve_transfer_assets` to only allow reserve-based
      transfers for all `assets` including fees.
      
      Similarly `(limited_)teleport_assets` only allows teleports for all
      `assets` including fees.
          
      For complex combinations of asset transfers where assets and fees may
      have different reserves or different reserve/teleport trust
      configurations, users can use the newly added `transfer_assets()`
      extrinsic which is more flexible in allowing more complex scenarios.
      
      `assets` (excluding `fees`) must have same reserve location or otherwise
      be teleportable to `dest`.
      No limitations imposed on `fees`.
      
      - for local reserve: transfer assets to sovereign account of destination
      chain and forward a notification XCM to `dest` to mint and deposit
      reserve-based assets to `beneficiary`.
      - for destination reserve: burn local assets and forward a notification
      to `dest` chain to withdraw the reserve assets from this chain's
      sovereign account and deposit them to `beneficiary`.
      - for remote reserve: burn local assets, forward XCM to reserve chain to
      move reserves from this chain's SA to `dest` chain's SA, and forward
      another XCM to `dest` to mint and deposit reserve-based assets to
      `beneficiary`.
      - for teleports: burn local assets and forward XCM to `dest` chain to
      mint/teleport assets and deposit them to `beneficiary`.
      
      ## Review notes
      
      Only around 500 lines are prod code (see `pallet_xcm/src/lib.rs`), the
      rest of the PR is new tests and improving existing tests.
      
      ---------
      
      Co-authored-by: command-bot <>
      e7651cf4
    • André Silva's avatar
      sp-core: Rename VrfOutput to VrfPreOutput (#2534) · 1f023dea
      André Silva authored
      This will make more sense after
      https://github.com/paritytech/polkadot-sdk/pull/2524 since the
      schnorrkel type for VRF outputs is also renamed in the latest version.
      Can be reviewed independently though.
      
      Can be merged after https://github.com/paritytech/polkadot-sdk/pull/1577
      so that there is less pain for @davxy
      
      .
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      1f023dea
  7. Dec 05, 2023
  8. Dec 04, 2023
  9. Dec 01, 2023
    • Michal Kucharczyk's avatar
      sassafras: taplo happy (#2583) · 5789d6a7
      Michal Kucharczyk authored
      fixes: `taplo format check`
      5789d6a7
    • dependabot[bot]'s avatar
      Bump the known_good_semver group with 1 update (#2575) · 87a73e7a
      dependabot[bot] authored
      
      
      Bumps the known_good_semver group with 1 update:
      [syn](https://github.com/dtolnay/syn).
      
      Updates `syn` from 2.0.38 to 2.0.39
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/syn/releases">syn's
      releases</a>.</em></p>
      <blockquote>
      <h2>2.0.39</h2>
      <ul>
      <li>Fix parsing of return expression in match guards (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1528">#1528</a>)</li>
      <li>Improve error message on labeled loop as value expression for break
      (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1531">#1531</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/syn/commit/924217c1734c085ee6cdb5e198d36d610c234313"><code>924217c</code></a>
      Release 2.0.39</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/95aeeb559866368d8b910d388c8e04b96083666a"><code>95aeeb5</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1531">#1531</a>
      from dtolnay/breaklabel</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/b88f86fae5c1ac284179181bf7a34549e6d96d7c"><code>b88f86f</code></a>
      Ignore single_element_loop clippy lint in test</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/a876185366557cb0e0e175c3be48721c8cc0d8e6"><code>a876185</code></a>
      Improve error on break followed by labeled loop</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/32ab9794d6b75248c1946ae18baab12a46137eb0"><code>32ab979</code></a>
      Add test of ambiguous label parsing in break</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/6f658f88a213e25b7ac7ec2dc77c537de679b745"><code>6f658f8</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1530">#1530</a>
      from dtolnay/canbeginexpr</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/20497e1a555812cfe05769b4d8c117c4e0e4edbd"><code>20497e1</code></a>
      More precise decision to parse expression after return keyword</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/c6a651aa12447d50c22db3189ef38cff90fc267b"><code>c6a651a</code></a>
      Update name of ExprReturn parse function to match variant name</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/c2745901009f7d65e7b708cd80031642038f765e"><code>c274590</code></a>
      Indicate that peek argument refers to syn::Ident</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/3e67cb0c660fc906770d212465652bfeb7a75727"><code>3e67cb0</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1529">#1529</a>
      from dtolnay/up</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/syn/compare/2.0.38...2.0.39">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syn&package-manager=cargo&previous-version=2.0.38&new-version=2.0.39)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
      
      Dependabot will resolve any conflicts with this PR as long as you don't
      alter it yourself. You can also trigger a rebase manually by commenting
      `@dependabot rebase`.
      
      [//]: # (dependabot-automerge-start)
      [//]: # (dependabot-automerge-end)
      
      ---
      
      <details>
      <summary>Dependabot commands and options</summary>
      <br />
      
      You can trigger Dependabot actions by commenting on this PR:
      - `@dependabot rebase` will rebase this PR
      - `@dependabot recreate` will recreate this PR, overwriting any edits
      that have been made to it
      - `@dependabot merge` will merge this PR after your CI passes on it
      - `@dependabot squash and merge` will squash and merge this PR after
      your CI passes on it
      - `@dependabot cancel merge` will cancel a previously requested merge
      and block automerging
      - `@dependabot reopen` will reopen this PR if it is closed
      - `@dependabot close` will close this PR and stop Dependabot recreating
      it. You can achieve the same result by closing it manually
      - `@dependabot show <dependency name> ignore conditions` will show all
      of the ignore conditions of the specified dependency
      - `@dependabot ignore <dependency name> major version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's major version (unless you unignore this specific
      dependency's major version or upgrade to it yourself)
      - `@dependabot ignore <dependency name> minor version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's minor version (unless you unignore this specific
      dependency's minor version or upgrade to it yourself)
      - `@dependabot ignore <dependency name>` will close this group update PR
      and stop Dependabot creating any more for the specific dependency
      (unless you unignore this specific dependency or upgrade to it yourself)
      - `@dependabot unignore <dependency name>` will remove all of the ignore
      conditions of the specified dependency
      - `@dependabot unignore <dependency name> <ignore condition>` will
      remove the ignore condition of the specified dependency and ignore
      conditions
      
      
      </details>
      
      Signed-off-by: default avatardependabot[bot] <[email protected]>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      87a73e7a
    • Davide Galassi's avatar
      Sassafras Consensus Pallet (#1577) · 095f4bd9
      Davide Galassi authored
      
      
      This PR introduces the pallet for Sassafras consensus.
      
      ## Non Goals
      
      The pallet delivers only the bare-bones and doesn't deliver support for
      auxiliary functionalities such as equivocation report and support for
      epoch change via session pallet.
      
      These functionalities were drafted in the [main
      PR](https://github.com/paritytech/polkadot-sdk/pull/1336), but IMO is
      better to introduce this auxiliary stuff in a follow up PR and after
      client code.
      
      ## Potential follow ups
      
      https://github.com/paritytech/polkadot-sdk/issues/2364
      
      ---------
      
      Co-authored-by: default avatarSebastian Kunert <[email protected]>
      Co-authored-by: default avatarKoute <[email protected]>
      Co-authored-by: default avatarMichal Kucharczyk <[email protected]>
      Co-authored-by: default avatarAndré Silva <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      095f4bd9
    • dependabot[bot]'s avatar
      Bump proc-macro-crate from 1.3.1 to 2.0.0 (#2557) · 7f0beaf2
      dependabot[bot] authored
      
      
      Bumps [proc-macro-crate](https://github.com/bkchr/proc-macro-crate) from
      1.3.1 to 2.0.0.
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/bkchr/proc-macro-crate/releases">proc-macro-crate's
      releases</a>.</em></p>
      <blockquote>
      <h2>v2.0.0</h2>
      <h2>What's Changed</h2>
      <ul>
      <li>Release 2.0.0 by <a
      href="https://github.com/bkchr"><code>@​bkchr</code></a> in <a
      href="https://redirect.github.com/bkchr/proc-macro-crate/pull/39">bkchr/proc-macro-crate#39</a></li>
      </ul>
      <p><strong>Full Changelog</strong>: <a
      href="https://github.com/bkchr/proc-macro-crate/compare/v1.3.1...v2.0.0">https://github.com/bkchr/proc-macro-crate/compare/v1.3.1...v2.0.0</a></p>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/bkchr/proc-macro-crate/commit/cc100ed2bc1ac9bb81812fd435a43e2ef023f355"><code>cc100ed</code></a>
      Merge pull request <a
      href="https://redirect.github.com/bkchr/proc-macro-crate/issues/39">#39</a>
      from bkchr/bkchr-2.0.0</li>
      <li><a
      href="https://github.com/bkchr/proc-macro-crate/commit/39a7c1844fc4d73ef397a7e8d9419f1f3381aa44"><code>39a7c18</code></a>
      Release 2.0.0</li>
      <li>See full diff in <a
      href="https://github.com/bkchr/proc-macro-crate/compare/v1.3.1...v2.0.0">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=proc-macro-crate&package-manager=cargo&previous-version=1.3.1&new-version=2.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
      
      Dependabot will resolve any conflicts with this PR as long as you don't
      alter it yourself. You can also trigger a rebase manually by commenting
      `@dependabot rebase`.
      
      [//]: # (dependabot-automerge-start)
      [//]: # (dependabot-automerge-end)
      
      ---
      
      <details>
      <summary>Dependabot commands and options</summary>
      <br />
      
      You can trigger Dependabot actions by commenting on this PR:
      - `@dependabot rebase` will rebase this PR
      - `@dependabot recreate` will recreate this PR, overwriting any edits
      that have been made to it
      - `@dependabot merge` will merge this PR after your CI passes on it
      - `@dependabot squash and merge` will squash and merge this PR after
      your CI passes on it
      - `@dependabot cancel merge` will cancel a previously requested merge
      and block automerging
      - `@dependabot reopen` will reopen this PR if it is closed
      - `@dependabot close` will close this PR and stop Dependabot recreating
      it. You can achieve the same result by closing it manually
      - `@dependabot show <dependency name> ignore conditions` will show all
      of the ignore conditions of the specified dependency
      - `@dependabot ignore <dependency name> major version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's major version (unless you unignore this specific
      dependency's major version or upgrade to it yourself)
      - `@dependabot ignore <dependency name> minor version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's minor version (unless you unignore this specific
      dependency's minor version or upgrade to it yourself)
      - `@dependabot ignore <dependency name>` will close this group update PR
      and stop Dependabot creating any more for the specific dependency
      (unless you unignore this specific dependency or upgrade to it yourself)
      - `@dependabot unignore <dependency name>` will remove all of the ignore
      conditions of the specified dependency
      - `@dependabot unignore <dependency name> <ignore condition>` will
      remove the ignore condition of the specified dependency and ignore
      conditions
      
      
      </details>
      
      Signed-off-by: default avatardependabot[bot] <[email protected]>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      7f0beaf2
    • Andrew Jones's avatar
      Contracts: make benchmark dependencies optional in `std` feature (#2576) · dfd7b15e
      Andrew Jones authored
      `wasm-instrument` and `rand` are optional and only used in benchmarking,
      so should not be pulled in by default as part of the `std` feature.
      dfd7b15e
    • Liam Aharon's avatar
      Enforce consistent and correct toml formatting (#2518) · 4a293bc5
      Liam Aharon authored
      Using taplo, fixes all our broken and inconsistent toml formatting and
      adds CI to keep them tidy.
      
      If people want we can customise the format rules as described here
      https://taplo.tamasfe.dev/configuration/formatter-options.html
      
      @ggwpez
      
      , I suggest zepter is used only for checking features are
      propagated, and leave formatting for taplo to avoid duplicate work and
      conflicts.
      
      TODO
      - [x] Use `exclude = [...]` syntax in taplo file to ignore zombienet
      tests instead of deleting the dir
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      4a293bc5
  10. Nov 30, 2023
    • dependabot[bot]'s avatar
      Bump the known_good_semver group with 2 updates (#2570) · 6742aba0
      dependabot[bot] authored
      
      
      Bumps the known_good_semver group with 2 updates:
      [serde](https://github.com/serde-rs/serde) and
      [clap](https://github.com/clap-rs/clap).
      
      Updates `serde` from 1.0.188 to 1.0.193
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/serde-rs/serde/releases">serde's
      releases</a>.</em></p>
      <blockquote>
      <h2>v1.0.193</h2>
      <ul>
      <li>Fix field names used for the deserialization of
      <code>RangeFrom</code> and <code>RangeTo</code> (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2653">#2653</a>,
      <a
      href="https://redirect.github.com/serde-rs/serde/issues/2654">#2654</a>,
      <a
      href="https://redirect.github.com/serde-rs/serde/issues/2655">#2655</a>,
      thanks <a
      href="https://github.com/emilbonnek"><code>@​emilbonnek</code></a>)</li>
      </ul>
      <h2>v1.0.192</h2>
      <ul>
      <li>Allow internal tag field in untagged variant (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2646">#2646</a>,
      thanks <a
      href="https://github.com/robsdedude"><code>@​robsdedude</code></a>)</li>
      </ul>
      <h2>v1.0.191</h2>
      <ul>
      <li>Documentation improvements</li>
      </ul>
      <h2>v1.0.190</h2>
      <ul>
      <li>Preserve NaN sign when deserializing f32 from f64 or vice versa (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2637">#2637</a>)</li>
      </ul>
      <h2>v1.0.189</h2>
      <ul>
      <li>Fix &quot;cannot infer type&quot; error when internally tagged enum
      contains untagged variant (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2613">#2613</a>,
      thanks <a href="https://github.com/ahl"><code>@​ahl</code></a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/serde/commit/44613c7d0190dbb5ecd2d5ec19c636f45b7488cc"><code>44613c7</code></a>
      Release 1.0.193</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/c706281df3c8d50dba1763f19c856df2746eba6c"><code>c706281</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2655">#2655</a>
      from dtolnay/rangestartend</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/65d75b8fe3105f00ab2e01537d568d4587167582"><code>65d75b8</code></a>
      Add RangeFrom and RangeTo tests</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/332b0cba40bcbcc7a6b23a9706277c54791a9856"><code>332b0cb</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2654">#2654</a>
      from dtolnay/rangestartend</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/8c4af412969086bc8f54fdc2a079d373632e0a03"><code>8c4af41</code></a>
      Fix more RangeFrom / RangeEnd mixups</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/24a78f071b22ae491eec4127be696ac255b9b5d3"><code>24a78f0</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2653">#2653</a>
      from emilbonnek/fix/range-to-from-de-mixup</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/c91c33436d7aaef7472ebc18b734ddc9b5bd11fa"><code>c91c334</code></a>
      Fix Range{From,To} deserialize mixup</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/2083f43a287cac8302009fda5bbe41518dd83209"><code>2083f43</code></a>
      Update ui test suite to nightly-2023-11-19</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/4676abdc9e6bbbddfb33a00ce8d7e81e92f01120"><code>4676abd</code></a>
      Release 1.0.192</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/35700eb23e21d8cb198ef4a422ddad13b855ce3b"><code>35700eb</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2646">#2646</a>
      from robsdedude/fix/2643/allow-tag-field-in-untagged</li>
      <li>Additional commits viewable in <a
      href="https://github.com/serde-rs/serde/compare/v1.0.188...v1.0.193">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `clap` from 4.4.6 to 4.4.10
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/clap-rs/clap/releases">clap's
      releases</a>.</em></p>
      <blockquote>
      <h2>v4.4.10</h2>
      <h2>[4.4.10] - 2023-11-28</h2>
      <h3>Documentation</h3>
      <ul>
      <li>Link out to changelog</li>
      <li>Cross link derive's attribute reference to derive tutorial</li>
      </ul>
      <h2>v4.4.9</h2>
      <h2>[4.4.9] - 2023-11-27</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(help)</em> Show correct <code>Command::about</code> under
      flattened headings</li>
      <li><em>(help)</em> Respect <code>hide</code> when flattening
      subcommands</li>
      </ul>
      <h2>v4.4.8</h2>
      <h2>[4.4.8] - 2023-11-10</h2>
      <h3>Features</h3>
      <ul>
      <li>Add <code>Command::flatten_help</code> to allow <code>git stash
      -h</code> like help for subcommands</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Changelog</summary>
      <p><em>Sourced from <a
      href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
      changelog</a>.</em></p>
      <blockquote>
      <h2>[4.4.10] - 2023-11-28</h2>
      <h3>Documentation</h3>
      <ul>
      <li>Link out to changelog</li>
      <li>Cross link derive's attribute reference to derive tutorial</li>
      </ul>
      <h2>[4.4.9] - 2023-11-27</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(help)</em> Show correct <code>Command::about</code> under
      flattened headings</li>
      <li><em>(help)</em> Respect <code>hide</code> when flattening
      subcommands</li>
      </ul>
      <h2>[4.4.8] - 2023-11-10</h2>
      <h3>Features</h3>
      <ul>
      <li>Add <code>Command::flatten_help</code> to allow <code>git stash
      -h</code> like help for subcommands</li>
      </ul>
      <h2>[4.4.7] - 2023-10-24</h2>
      <h3>Performance</h3>
      <ul>
      <li>Reduced code size</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/clap-rs/clap/commit/c0a1814d3c1d93c18faaedc95fd251846e47f4fe"><code>c0a1814</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/c83e681e20b05f7e128088f47f8fcfc44e8ea166"><code>c83e681</code></a>
      docs: Update changelog</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/91bcac4ca9d442786f554abeb7b1ed6d7a464a42"><code>91bcac4</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5230">#5230</a>
      from epage/migrate</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/030d87505d150345ddd425c1df21c034d2ae7748"><code>030d875</code></a>
      docs: Link out to the changelog at the relevant tag</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/b661a9de04aebd1adaaafdbf7e470f07a8d8a36d"><code>b661a9d</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5229">#5229</a>
      from epage/derive</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/a08587b00e347492165ded1415bad6ab339e9f0b"><code>a08587b</code></a>
      docs(derive): Link to tutorial sections for attributes</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/21b671f689bc0b8d790dc8c42902c22822bf6f82"><code>21b671f</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/93ba76dbaaf9136313a4fe2978693cc39fa467dd"><code>93ba76d</code></a>
      docs: Update changelog</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/c1c55b30d853446e2cab78664c0d22c1b77d4dfd"><code>c1c55b3</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5228">#5228</a>
      from epage/flat</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/b13f6d98622b80ba30e63c2c6e65d218cc8a4de3"><code>b13f6d9</code></a>
      fix(help): Hide 'help' if only flattened subcommand</li>
      <li>Additional commits viewable in <a
      href="https://github.com/clap-rs/clap/compare/v4.4.6...v4.4.10">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      Dependabot will resolve any conflicts with this PR as long as you don't
      alter it yourself. You can also trigger a rebase manually by commenting
      `@dependabot rebase`.
      
      [//]: # (dependabot-automerge-start)
      [//]: # (dependabot-automerge-end)
      
      ---
      
      <details>
      <summary>Dependabot commands and options</summary>
      <br />
      
      You can trigger Dependabot actions by commenting on this PR:
      - `@dependabot rebase` will rebase this PR
      - `@dependabot recreate` will recreate this PR, overwriting any edits
      that have been made to it
      - `@dependabot merge` will merge this PR after your CI passes on it
      - `@dependabot squash and merge` will squash and merge this PR after
      your CI passes on it
      - `@dependabot cancel merge` will cancel a previously requested merge
      and block automerging
      - `@dependabot reopen` will reopen this PR if it is closed
      - `@dependabot close` will close this PR and stop Dependabot recreating
      it. You can achieve the same result by closing it manually
      - `@dependabot show <dependency name> ignore conditions` will show all
      of the ignore conditions of the specified dependency
      - `@dependabot ignore <dependency name> major version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's major version (unless you unignore this specific
      dependency's major version or upgrade to it yourself)
      - `@dependabot ignore <dependency name> minor version` will close this
      group update PR and stop Dependabot creating any more for the specific
      dependency's minor version (unless you unignore this specific
      dependency's minor version or upgrade to it yourself)
      - `@dependabot ignore <dependency name>` will close this group update PR
      and stop Dependabot creating any more for the specific dependency
      (unless you unignore this specific dependency or upgrade to it yourself)
      - `@dependabot unignore <dependency name>` will remove all of the ignore
      conditions of the specified dependency
      - `@dependabot unignore <dependency name> <ignore condition>` will
      remove the ignore condition of the specified dependency and ignore
      conditions
      
      
      </details>
      
      Signed-off-by: default avatardependabot[bot] <[email protected]>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      6742aba0
    • Sebastian Kunert's avatar
      PoV Reclaim (Clawback) Node Side (#1462) · 9a650c46
      Sebastian Kunert authored
      This PR provides the infrastructure for the pov-reclaim mechanism
      discussed in #209. The goal is to provide the current proof size to the
      runtime so it can be used to reclaim storage weight.
      
      ## New Host Function
      - A new host function is provided
      [here](https://github.com/skunert/polkadot-sdk/blob/5b317fda
      
      /cumulus/primitives/pov-reclaim/src/lib.rs#L23).
      It returns the size of the current proof size to the runtime. If
      recording is not enabled, it returns 0.
      
      ## Implementation Overview
      - Implement option to enable proof recording during import in the
      client. This is currently enabled for `polkadot-parachain`,
      `parachain-template` and the cumulus test node.
      - Make the proof recorder ready for no-std. It was previously only
      enabled for std environments, but we need to record the proof size in
      `validate_block` too.
      - Provide a recorder implementation that only the records the size of
      incoming nodes and does not store the nodes itself.
      - Fix benchmarks that were broken by async backing changes
      - Provide new externalities extension that is registered by default if
      proof recording is enabled.
      - I think we should discuss the naming, pov-reclaim was more intuitive
      to me, but we could also go with clawback like in the issue.
      
      ## Impact of proof recording during import
      With proof recording: 6.3058 Kelem/s
      Without proof recording: 6.3427 Kelem/s
      
      The measured impact on the importing performance is quite low on my
      machine using the block import benchmark. With proof recording I am
      seeing a performance hit of 0.585%.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarDavide Galassi <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      9a650c46
    • Kian Paimani's avatar
      Introduce Polkadot-Sdk `developer_hub` (#2102) · eaf1bc56
      Kian Paimani authored
      
      
      This PR introduces the new crate `developer_hub` into the polkadot-sdk
      repo. The vision for the developer-hub crate is detailed in [this
      document](https://docs.google.com/document/d/1XLLkFNE8v8HLvZpI2rzsa8N2IN1FcKntc8q-Sc4xBAk/edit?usp=sharing).
      
      <img width="1128" alt="Screenshot 2023-11-02 at 10 45 48"
      src="https://github.com/paritytech/polkadot-sdk/assets/5588131/1e12b60f-fef5-42c4-8503-a3ba234077c3">
      
      
      Other than adding the new crate, it also does the following: 
      
      * Remove the `substrate` crate, as there is now a unique umbrella crate
      for multiple things in `developer_hub::polkadot_sdk`.
      * (backport candidate) A minor change to `frame-support` macros that
      allows `T::RuntimeOrigin` to also be acceptable as the origin type.
      * (backport candidate) A minor change to `frame-system` that allows us
      to deposit events at genesis because now the real genesis config is
      generated via wasm, and we can safely assume `cfg!(feature = "std")`
      means only testing. related to #62.
      * (backport candidate) Introduces a small `read_events_for_pallet` to
      `frame_system` for easier event reading in tests.
      * From https://github.com/paritytech/polkadot-sdk-docs/issues/31, it
      takes action on improving the `pallet::call` docs.
      * From https://github.com/paritytech/polkadot-sdk-docs/issues/31, it
      takes action on improving the `UncheckedExtrinsic` docs.
      
      ## Way Forward
      
      First, a version of this is deployed temporarily
      [here](https://blog.kianenigma.nl/polkadot-sdk/developer_hub/index.html).
      I will keep it up to date on a daily basis.
      
      ### This Pull Request
      
      I see two ways forward: 
      
      1. We acknowledge that everything in `developer-hub` is going to be WIP,
      and merge this asap. We should not yet use links to this crate anywhere.
      2. We make this be the feature branch, make PRs against this, and either
      gradually backport it, or only merge to master once it is done.
      
      I am personally in favor of option 1. If we stick to option 2, we need a
      better way to deploy a staging version of this to gh-pages.
      
      ### Issue Tracking
      
      The main issues related to the future of `developer_hub` are: 
      
      - https://github.com/paritytech/polkadot-sdk-docs/issues/31
      - https://github.com/paritytech/polkadot-sdk-docs/issues/4
      - https://github.com/paritytech/polkadot-sdk-docs/issues/26 
      - https://github.com/paritytech/polkadot-sdk-docs/issues/32
      - https://github.com/paritytech/polkadot-sdk-docs/issues/36
      
      
      ### After This Pull Request
      
      - [ ] create a redirect for
      https://paritytech.github.io/polkadot-sdk/master/substrate/
      - [x] analytics 
      - [ ] link checker
      - [ ] the matter of publishing, and how all of these relative links for
      when we do, that is still an open question. There is section on this in
      the landing page.
      - [ ] updated https://paritytech.github.io/
      
      ---------
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      Co-authored-by: default avatarJuan Girini <[email protected]>
      Co-authored-by: default avatarbader y <[email protected]>
      Co-authored-by: default avatarSebastian Kunert <[email protected]>
      Co-authored-by: default avatarJames Wilson <[email protected]>
      Co-authored-by: default avatarMichal Kucharczyk <[email protected]>
      eaf1bc56
  11. Nov 29, 2023
    • PG Herveou's avatar
      Contracts: use compiled rust tests (#2347) · 2135fa87
      PG Herveou authored
      
      
      see #2189
      
      This PR does the following:
      - Bring the user api functions into a new pallet-contracts-uapi (They
      are currently defined in ink!
      [here])(https://github.com/paritytech/ink/blob/master/crates/env/src/engine/on_chain/ext.rs)
      - Add older api versions and unstable to the user api trait.
      - Remove pallet-contracts-primitives and bring the types it defined in
      uapi / pallet-contracts
      - Add the infrastructure to build fixtures from Rust files and test it
      works by replacing `dummy.wat` and `call.wat`
      - Move all the doc from wasm/runtime.rs to pallet-contracts-uapi.
      
      This will be done in a follow up:
      - convert the rest of the test from .wat to rust
      - bring risc-v uapi up to date with wasm
      - finalize the uapi host fns, making sure everything is codegen from the
      source host fns in pallet-contracts
      
      ---------
      
      Co-authored-by: default avatarAlexander Theißen <[email protected]>
      2135fa87
  12. Nov 28, 2023
    • Sebastian Kunert's avatar
      Remove long deprecated `AllPalletsWithoutSystemReversed` (#2509) · 82017934
      Sebastian Kunert authored
      Remove deprecated `AllPalletsXY` types.
      
      They have been deprecated for nearly 1.5 years now, I think its fine to
      remove them.
      If anyone feels like we should first put a date on the deprecation as
      stated in the deprecation guideline, feel free to speak up. To me it
      looks like this has been forgotten and can be directly removed.
      82017934
    • Aaro Altonen's avatar
      Rework the event system of `sc-network` (#1370) · e71c484d
      Aaro Altonen authored
      
      
      This commit introduces a new concept called `NotificationService` which
      allows Polkadot protocols to communicate with the underlying
      notification protocol implementation directly, without routing events
      through `NetworkWorker`. This implies that each protocol has its own
      service which it uses to communicate with remote peers and that each
      `NotificationService` is unique with respect to the underlying
      notification protocol, meaning `NotificationService` for the transaction
      protocol can only be used to send and receive transaction-related
      notifications.
      
      The `NotificationService` concept introduces two additional benefits:
        * allow protocols to start using custom handshakes
        * allow protocols to accept/reject inbound peers
      
      Previously the validation of inbound connections was solely the
      responsibility of `ProtocolController`. This caused issues with light
      peers and `SyncingEngine` as `ProtocolController` would accept more
      peers than `SyncingEngine` could accept which caused peers to have
      differing views of their own states. `SyncingEngine` would reject excess
      peers but these rejections were not properly communicated to those peers
      causing them to assume that they were accepted.
      
      With `NotificationService`, the local handshake is not sent to remote
      peer if peer is rejected which allows it to detect that it was rejected.
      
      This commit also deprecates the use of `NetworkEventStream` for all
      notification-related events and going forward only DHT events are
      provided through `NetworkEventStream`. If protocols wish to follow each
      other's events, they must introduce additional abtractions, as is done
      for GRANDPA and transactions protocols by following the syncing protocol
      through `SyncEventStream`.
      
      Fixes https://github.com/paritytech/polkadot-sdk/issues/512
      Fixes https://github.com/paritytech/polkadot-sdk/issues/514
      Fixes https://github.com/paritytech/polkadot-sdk/issues/515
      Fixes https://github.com/paritytech/polkadot-sdk/issues/554
      Fixes https://github.com/paritytech/polkadot-sdk/issues/556
      
      ---
      These changes are transferred from
      https://github.com/paritytech/substrate/pull/14197 but there are no
      functional changes compared to that PR
      
      ---------
      
      Co-authored-by: default avatarDmitry Markin <[email protected]>
      Co-authored-by: default avatarAlexandru Vasile <[email protected]>
      e71c484d
    • s0me0ne-unkn0wn's avatar
    • gupnik's avatar
      Moves all test runtimes to use `derive_impl` (#2409) · cd8741c8
      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: default avatarOliver Tale-Yazdi <[email protected]>
      cd8741c8
    • Liam Aharon's avatar
      Set `frame_system::LastRuntimeUpgrade` after running `try-runtime` migrations (#2515) · 6dc3e6c9
      Liam Aharon authored
      Sets `frame_system::LastRuntimeUpgrade` after running try-runtime
      migrations to better emulate real behavior.
      
      This fixes an issue where migrations using the spec version to determine
      whether to execute can incorrectly fail idempotency checks.
      
      @s0me0ne-unkn0wn noticed this issue with the session key migration
      introduced in https://github.com/paritytech/polkadot-sdk/pull/2265.
      6dc3e6c9
    • Ross Bulat's avatar
      Pools: Add ability to configure commission claiming permissions (#2474) · 75062717
      Ross Bulat authored
      Addresses #409.
      
      This request has been raised by multiple community members - the ability
      for the nomination pool root role to configure permissionless commission
      claiming:
      
      > Would it be possible to have a claim_commission_other extrinsic for
      claiming commission of nomination pools permissionless?
      
      This PR does not quite introduce this additional call, but amends
      `do_claim_commission` to check a new `claim_permission` field in the
      `Commission` struct, configured by an enum:
      
      ```
      enum CommissionClaimPermission {
         Permissionless,
         Account(AccountId),
      }
      ```
      This can be optionally set in a bonded pool's
      `commission.claim_permission` field:
      
      ```
      struct BondedPool {
         commission: {
            <snip>
            claim_permission: Option<CommissionClaimPermission<T::AccountId>>,
         },
         <snip>
      }
      ```
      
      This is a new field and requires a migration to add it to existing
      pools. This will be `None` on pool creation, falling back to the `root`
      role having sole access to claim commission if it is not set; this is
      the behaviour as it is today. Once set, the field _can_ be set to `None`
      again.
      
      #### Changes
      - [x] Add `commision.claim_permission` field.
      - [x] Add `can_claim_commission` and amend `do_claim_commission`.
      - [x] Add `set_commission_claim_permission` call.
      - [x] Test to cover new configs and call.
      - [x] Add and amend benchmarks.
      - [x] Generate new weights + slot into call
      `set_commission_claim_permission`.
      - [x] Add migration to introduce `commission.claim_permission`, bump
      storage version.
      - [x] Update Westend weights.
      - [x] Migration working.
      
      ---------
      
      Co-authored-by: command-bot <>
      75062717
  13. Nov 27, 2023
    • Ross Bulat's avatar
      Staking: `chill_other` takes stash instead of controller (#2501) · 838a534d
      Ross Bulat authored
      
      
      The `chill_other` call is the only staking call that explicitly requires
      `controller` in its signature. This PR changes the controller arg to be
      the stash instead, with `StakingLedger` then fetching the controller
      from storage.
      
      This is not a breaking change per se - the call types do not change, but
      is noteworthy as UIs will now want to pass the stash account into
      `chill_other` calls, & metadata will reflect this.
      
      Note: This is very low impact. `chill_other` has [hardly ever been
      used](https://polkadot.subscan.io/extrinsic?address=&module=staking&call=chill_other&result=all&signedChecked=signed%20only&startDate=&endDate=&startBlock=&timeType=date&version=9431&endBlock=)
      on Polkadot - notwithstanding the one called 11 days ago at block
      18177457 that was a part of test I did, the last call was made 493 days
      ago. Only 2 calls have ever been successful.
      
      Addresses controller deprecation #2500
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarGonçalo Pestana <[email protected]>
      838a534d
  14. Nov 25, 2023
  15. Nov 24, 2023
    • Ankan's avatar
      [NPoS] Use EraInfo to manipulate exposure in fast-unstake tests (#2459) · 8af61d03
      Ankan authored
      The FastUnstake pallet tests were previously directly modifying storage
      items in the pallet-staking to alter exposure. However, due to the
      introduction of the [new paged exposure
      feature](https://github.com/paritytech/polkadot-sdk/pull/1189) these
      tests were not testing against correct storage items. This issue
      resulted in a bug that I didn't catch, which has been addressed in [this
      fix](https://github.com/paritytech/polkadot-sdk/pull/2369).
      
      This PR introduces a modification to how the pallet-fast-unstake handles
      exposure. It now utilizes `pallet-staking::EraInfo` to set or mutate
      Exposures.
      8af61d03
    • Gonçalo Pestana's avatar
      pallet-staking: Converts all math operations to safe (#2435) · f086d540
      Gonçalo Pestana authored
      
      
      This PR converts unsafe math operations to safe in the staking pallet.
       
      Closes https://github.com/paritytech/polkadot-sdk/issues/2431
      
      ---------
      
      Co-authored-by: default avatarAnkan <[email protected]>
      f086d540
  16. Nov 23, 2023
    • Ross Bulat's avatar
      Amend staking docs to account for state of controller deprecation (#2451) · c29b74dc
      Ross Bulat authored
      Amends some staking pallet docs, and deprecation comment, to adjust to
      the latest controller deprecation state.
      
      Note, do we need the `README.md` file, which is a duplicate of the
      pallet docs? Docs would be easier to maintain, and less ambiguity for
      devs to refer to, if we had one source of truth in the generated pallet
      docs.
      c29b74dc