Skip to content
Snippets Groups Projects
  1. Oct 25, 2024
    • Branislav Kontur's avatar
      Fix migrations for pallet-xcm (#6148) · efd66030
      Branislav Kontur authored
      
      Relates to: https://github.com/paritytech/polkadot-sdk/pull/4826
      Relates to: https://github.com/paritytech/polkadot-sdk/issues/3214
      
      ## Description
      
      `pallet-xcm` stores some operational data that uses `Versioned*` XCM
      types. When we add a new XCM version (XV), we deprecate XV-2 and remove
      XV-3. Without proper migration, this can lead to issues with
      [undecodable
      storage](https://github.com/paritytech/polkadot-sdk/actions/runs/11381324568/job/31662577532?pr=6092),
      as was identified on the XCMv5 branch where XCMv2 was removed.
      
      This PR extends the existing `MigrateToLatestXcmVersion` to include
      migration for the `Queries`, `LockedFungibles`, and
      `RemoteLockedFungibles` storage types. Additionally, more checks were
      added to `try_state` for these types.
      
      ## TODO
      - [x] create tracking issue for `polkadot-fellows`
      https://github.com/polkadot-fellows/runtimes/issues/492
      - [x] Add missing `MigrateToLatestXcmVersion` for westend
      - [x] fix pallet-xcm `Queries`
      - fails for Westend
      https://github.com/paritytech/polkadot-sdk/actions/runs/11381324568/job/31662577532?pr=6092
      - `V2` was removed from `Versioned*` stuff, but we have a live data with
      V2 e.g. Queries - e.g. Kusama or Polkadot relay chains
      ```
      VersionNotifier: {
              origin: {
                V2: {
                  parents: 0
                  interior: {
                    X1: {
                      Parachain: 2,124
                    }
                  }
                }
              }
              isActive: true
            } 
      ```
      
      ![image](https://github.com/user-attachments/assets/f59f761b-46a7-4def-8aea-45c4e41c0a00)
      - [x] fix also for `RemoteLockedFungibles` 
      - [x] fix also for `LockedFungibles`
      
      ## Follow-ups
      
      - [ ] deploy on Westend chains before XCMv5
      - [ ] https://github.com/paritytech/polkadot-sdk/issues/6188
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarGitHub Action <action@github.com>
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      efd66030
    • Alexander Theißen's avatar
      pallet-revive: Add stateful address mapping (#6096) · 07963262
      Alexander Theißen authored
      
      Fixes #5576
      
      This allows contracts to be used with an AccountId32 through normal
      extrinsics and not only through the eth compat layer. It works by adding
      a new extrinsic `map_account` that lets people register their
      AccountId32.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarGitHub Action <action@github.com>
      Co-authored-by: default avatarCyrill Leutwiler <cyrill@parity.io>
      07963262
    • Shoyu Vanilla (Flint)'s avatar
      substrate-offchain: upgrade hyper to v1 (#5919) · 5a142856
      Shoyu Vanilla (Flint) authored
      Closes #4896
      5a142856
    • Michal Kucharczyk's avatar
      `RuntimeGenesiConfig`: json macro added (#5813) · 7e996211
      Michal Kucharczyk authored
      This PR adds `build_struct_json_patch` which helps to generate a JSON
      used for preset.
      
      Here is doc and example:
      
      https://github.com/paritytech/polkadot-sdk/blob/d868b858/substrate/frame/support/src/generate_genesis_config.rs#L168-L266
      
      And real-world usage:
      
      https://github.com/paritytech/polkadot-sdk/blob/d868b858
      
      /cumulus/parachains/runtimes/assets/asset-hub-rococo/src/genesis_config_presets.rs#L37-L61
      
      Closes #5700
      
      ---------
      
      Co-authored-by: default avatarSebastian Kunert <skunert49@gmail.com>
      7e996211
  2. Oct 24, 2024
  3. Oct 23, 2024
    • Kian Paimani's avatar
      Polkadot OmniNode Docs (#6094) · fc486e55
      Kian Paimani authored
      provides low-level documentation on how the omni-node is meant to work.
      This is meant to act as reusable material for other teams (e.g.
      Papermoon and W3F) to use and integrate into the high level Polkadot
      documentation.
      
      Broadly speaking, for omni-node to have great rust-docs, we need to
      focus on the following crates, all of which got a bit of love in this
      PR:
      
      1. `sp-genesis-builder`
      2. `polkadot-omni-node`
      3. `polkadot-omni-node-lib`
      4. `frame-omni-bencher`
      
      On top of this, we have now: 
      
      * `polkadot_sdk_docs::guides` contains two new steps demonstrating the
      most basic version of composing your pallet, putting it into a runtime,
      and putting that runtime into omni-node
      * `polkadot_sdk_docs::reference_docs::omni_node` to explain in more
      detail how omni-node differs from the old-school node.
      * `polkadot_sdk_docs::reference_docs::frame_weight_benchmarking` to
      finally have a minimal reference about weights and benchmarking.
      * It provides tests for some of the steps in
      https://g...
      fc486e55
    • PG Herveou's avatar
      [pallet-revive] Add pallet to AH westend (#5502) · ed231828
      PG Herveou authored
      Add pallet-revive to Westend runtime, and configure the runtime to
      accept Ethereum signed transaction
      ed231828
  4. Oct 22, 2024
    • Francisco Aguirre's avatar
      Assets in pool with native can be used in `query_weight_to_asset_fee` (#6080) · b4732add
      Francisco Aguirre authored
      A follow-up to https://github.com/paritytech/polkadot-sdk/pull/5599.
      Assets in a pool with the native one are returned from
      `query_acceptable_payment_assets`. Now those assets can be used in
      `query_weight_to_asset_fee` to get the correct amount that needs to be
      paid.
      
      ---------
      
      Co-authored-by: command-bot <>
      b4732add
    • tmpolaczyk's avatar
      Use bool::then instead of then_some with function calls (#6156) · 6418131a
      tmpolaczyk authored
      
      I noticed that hardware benchmarks are being run even though we pass the
      --no-hardware-benchmarks cli flag. After some debugging, the cause is an
      incorrect usage of the `then_some` method.
      
      From [std
      docs](https://doc.rust-lang.org/std/primitive.bool.html#method.then_some):
      
      > Arguments passed to then_some are eagerly evaluated; if you are
      passing the result of a function call, it is recommended to use
      [then](https://doc.rust-lang.org/std/primitive.bool.html#method.then),
      which is lazily evaluated.
      
      ```rust
      let mut a = 0;
      let mut function_with_side_effects = || { a += 1; };
      
      true.then_some(function_with_side_effects());
      false.then_some(function_with_side_effects());
      
      // `a` is incremented twice because the value passed to `then_some` is
      // evaluated eagerly.
      assert_eq!(a, 2);
      ```
      
      This PR fixes all the similar usages of the `then_some` method across
      the codebase.
      
      polkadot address: 138eUqXvUYT3o4GdbnWQfGRzM8yDWh5Q2eFrFULL7RAXzdWD
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      6418131a
    • Michal Kucharczyk's avatar
      `fatxpool`: `LocalTransactionPool` implemented (#6104) · 77836cfb
      Michal Kucharczyk authored
      [`LocalTransactionPool`
      trait](https://github.com/paritytech/polkadot-sdk/blob/d5b96e9e/substrate/client/transaction-pool/api/src/lib.rs#L408-L426)
      is now implemented for `ForkAwareTransactionPool`.
      
      Closes #5493
      77836cfb
    • PG Herveou's avatar
      aeebf2f3
    • PG Herveou's avatar
      [pallet-revive] Eth RPC integration (#5866) · 21930ed2
      PG Herveou authored
      
      This PR introduces the necessary changes to pallet-revive for
      integrating with our Ethereum JSON-RPC.
      The RPC proxy itself will be added in a follow up.
      
      ## Changes
      
      - A new pallet::call `Call::eth_transact`. This is used as a wrapper to
      accept unsigned Ethereum transaction, valid call will be routed to
      `Call::call` or `Call::instantiate_with_code`
      
      - A custom UncheckedExtrinsic struct, that wraps the generic one usually
      and add the ability to check eth_transact calls sent from an Ethereum
      JSON-RPC proxy.
      - Generated types and traits to support implementing a JSON-RPC Ethereum
      proxy.
      
      ## Flow Overview:
      - A user submits a transaction via MetaMask or another
      Ethereum-compatible wallet.
      - The proxy dry run the transaction and add metadata to the call (gas
      limit in Weight, storage deposit limit, and length of bytecode and
      constructor input for contract instantiation)
      - The raw transaction, along with the additional metadata, is submitted
      to the node as an unsigned extrinsic.
      - On the runtime, our custom UncheckedExtrinsic define a custom
      Checkable implementation that converts the unsigned extrinsics into
      checked one
       - It recovers the signer
      - validates the payload, and injects signed extensions, allowing the
      system to increment the nonce and charge the appropriate fees.
      - re-route the call to pallet-revive::Call::call or
      pallet-revive::Call::instantiateWithCode
      
      ## Dependencies
      
      - https://github.com/koute/polkavm/pull/188
      
      ## Follow up PRs
      - #5926  
      - #6147 (previously #5953)
      - #5502
      
      ---------
      
      Co-authored-by: default avatarAlexander Theißen <alex.theissen@me.com>
      Co-authored-by: default avatarCyrill Leutwiler <cyrill@parity.io>
      21930ed2
    • Serban Iorga's avatar
      Fix TrustedQueryApi Error (#6170) · 356386b5
      Serban Iorga authored
      Related to https://github.com/paritytech/polkadot-sdk/issues/6161
      
      This seems to fix the `JavaScript heap out of memory` error encountered
      in the bridge zombienet tests lately.
      
      This is just a partial fix, since we also need to address
      https://github.com/paritytech/polkadot-sdk/issues/6133 in order to fully
      fix the bridge zombienet tests
      356386b5
    • Egor_P's avatar
      [Backport] Version bumps from stable2409-1 (#6153) · d1cf9963
      Egor_P authored
      This PR backports regular version bumps and prdocs reordering from the
      current stable release back to master
      d1cf9963
  5. Oct 21, 2024
    • Dusan Morhac's avatar
      [pallet-nfts, pallet_uniques] - Expose private structs (#6087) · 03f1d2d6
      Dusan Morhac authored
      
      # Description
      
      This PR exposes pallet_nfts and pallet_uniques structs, so other pallets
      can access storage to use it for extending nft functionalities.
      
      In pallet uniques it also exposes collection and asset metadata storage
      as they are private.
       
      ## Integration
      
      This integration allows nfts and uniques extension pallets to use then
      private - now public structs to retrieve and parse storage from
      pallet_nfts. We are building cross-chain NFT pallet and in order to
      transfer collection that houses multiple NFT owners we need to manually
      remove NFTs and Collections from storage without signers. We would also
      like to refund deposits on origin chain and we were unable to as struct
      data was private.
      
      We have built cross-chain pallet that allows to send nfts or collections
      between two pallets in abstract way without having to look which pallet
      parachain (If nfts or uniques) implements.
      
      ## Review Notes
      
      Code exposes private structs to public structs. No breaking change.
      
      Build runs fine, tests are also ok.
      <img width="468" alt="screen1"
      src="https://github.com/user-attachments/assets/f31f60b5-390c-4497-b46b-59dd561204ae">
      <img width="664" alt="screen2"
      src="https://github.com/user-attachments/assets/7e2aa71c-3bc4-49a9-8afc-47d4f45f4359">
      <img width="598" alt="screen3"
      src="https://github.com/user-attachments/assets/10f4e427-858f-460d-8644-f5750494edb0">
      
      
      
      PR is tied with following issue:
      Closes #5959 
      
      # Checklist
      
      * [x] My PR includes a detailed description as outlined in the
      "Description" and its two subsections above.
      * [x] My PR follows the [labeling requirements](
      
      https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md#Process
      ) of this project (at minimum one label for `T` required)
      * External contributors: ask maintainers to put the right label on your
      PR.
      * [ ] I have made corresponding changes to the documentation (if
      applicable)
      * [ ] I have added tests that prove my fix is effective or that my
      feature works (if applicable)
      
      ---------
      
      Co-authored-by: default avatarBranislav Kontur <bkontur@gmail.com>
      Co-authored-by: command-bot <>
      03f1d2d6
    • Alin Dima's avatar
      runtime: remove ttl (#5461) · ee803b74
      Alin Dima authored
      
      Resolves https://github.com/paritytech/polkadot-sdk/issues/4776
      
      This will enable proper core-sharing between paras, even if one of them
      is not producing blocks.
      
      TODO:
      - [x] duplicate first entry in the claim queue if the queue used to be
      empty
      - [x] don't back anything if at the end of the block there'll be a
      session change
      - [x] write migration for removing the availability core storage
      - [x] update and write unit tests
      - [x] prdoc
      - [x] add zombienet test for synchronous backing
      - [x] add zombienet test for core-sharing paras where one of them is not
      producing any blocks
      
      _Important note:_
      The `ttl` and `max_availability_timeouts` fields of the
      HostConfiguration are not removed in this PR, due to #64.
      Adding the workaround with the storage version check for every use of
      the active HostConfiguration in all runtime APIs would be insane, as
      it's used in almost all runtime APIs.
      
      So even though the ttl and max_availability_timeouts fields will now be
      unused, they will remain part of the host configuration.
      
      These will be removed in a separate PR once #64 is fixed. Tracked by
      https://github.com/paritytech/polkadot-sdk/issues/6067
      
      ---------
      
      Signed-off-by: default avatarAndrei Sandu <andrei-mihail@parity.io>
      Co-authored-by: default avatarAndrei Sandu <andrei-mihail@parity.io>
      Co-authored-by: default avatarAndrei Sandu <54316454+sandreim@users.noreply.github.com>
      Co-authored-by: command-bot <>
      ee803b74
    • dependabot[bot]'s avatar
      Bump the ci_dependencies group across 1 directory with 5 updates (#6035) · 225536c9
      dependabot[bot] authored
      Bumps the ci_dependencies group with 5 updates in the / directory:
      
      | Package | From | To |
      | --- | --- | --- |
      |
      [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action)
      | `1.10.0` | `2.0.1` |
      | [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) |
      `2.7.3` | `2.7.5` |
      |
      [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action)
      | `3.6.1` | `3.7.1` |
      |
      [docker/build-push-action](https://github.com/docker/build-push-action)
      | `6.8.0` | `6.9.0` |
      |
      [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain)
      | `1.10.0` | `1.10.1` |
      
      
      Updates `lycheeverse/lychee-action` from 1.10.0 to 2.0.1
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/lycheeverse/lychee-action/releases">lycheeverse/lychee-action's
      releases</a>.</em></p>
      <blockquote>
      <h2>Version 2.0.1</h2>
      <h2>What's Changed</h2>
      <ul>
      <li>Don't remove the lyche...
      225536c9
    • dependabot[bot]'s avatar
      Bump prost-build from 0.12.4 to 0.13.2 (#6144) · 13d3f58e
      dependabot[bot] authored
      
      Bumps [prost-build](https://github.com/tokio-rs/prost) from 0.12.4 to
      0.13.2.
      <details>
      <summary>Changelog</summary>
      <p><em>Sourced from <a
      href="https://github.com/tokio-rs/prost/blob/master/CHANGELOG.md">prost-build's
      changelog</a>.</em></p>
      <blockquote>
      <h1>Prost version 0.13.2</h1>
      <p><em>PROST!</em> is a <a
      href="https://developers.google.com/protocol-buffers/">Protocol
      Buffers</a> implementation for the <a
      href="https://www.rust-lang.org/">Rust Language</a>. <code>prost</code>
      generates simple, idiomatic Rust code from <code>proto2</code> and
      <code>proto3</code> files.</p>
      <h2>Features</h2>
      <ul>
      <li>prost-build: Add protoc executable path to Config (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1126">#1126</a>)</li>
      <li>prost-build: Extract file descriptor loading from compile_protos()
      (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1067">#1067</a>)</li>
      </ul>
      <h2>Bug Fixes</h2>
      <ul>
      <li>prost-types: Fix date-time parsing (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1096">#1096</a>)</li>
      <li>prost-types: '+' is not a numeric digit (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1104">#1104</a>)</li>
      <li>prost-types: Converting DateTime to Timestamp is fallible (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1095">#1095</a>)</li>
      <li>prost-types: Parse timestamp with long second fraction (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1106">#1106</a>)</li>
      <li>prost-types: Format negative fractional duration (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1110">#1110</a>)</li>
      <li>prost-types: Allow unknown local time offset (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1109">#1109</a>)</li>
      </ul>
      <h2>Styling</h2>
      <ul>
      <li>Remove use of legacy numeric constants (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1089">#1089</a>)</li>
      <li>Move encoding functions into separate modules (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1111">#1111</a>)</li>
      <li>Remove needless borrow (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1122">#1122</a>)</li>
      </ul>
      <h2>Testing</h2>
      <ul>
      <li>Add tests for public interface of DecodeError (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1120">#1120</a>)</li>
      <li>Add <code>parse_date</code> fuzzing target (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1127">#1127</a>)</li>
      <li>Fix build without std (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1134">#1134</a>)</li>
      <li>Change some proptest to kani proofs (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1133">#1133</a>)</li>
      <li>Add <code>parse_duration</code> fuzzing target (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1129">#1129</a>)</li>
      <li>fuzz: Fix building of fuzzing targets (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1107">#1107</a>)</li>
      <li>fuzz: Add fuzz targets to workspace (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1117">#1117</a>)</li>
      </ul>
      <h2>Miscellaneous Tasks</h2>
      <ul>
      <li>Move old protobuf benchmark into prost (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1100">#1100</a>)</li>
      <li>Remove allow clippy::derive_partial_eq_without_eq (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1115">#1115</a>)</li>
      <li>Run <code>cargo test</code> without <code>all-targets</code> (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1118">#1118</a>)</li>
      <li>dependabot: Add github actions (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1121">#1121</a>)</li>
      <li>Update to cargo clippy version 1.80 (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1128">#1128</a>)</li>
      </ul>
      <h2>Build</h2>
      <ul>
      <li>Use <code>proc-macro</code> in Cargo.toml (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1102">#1102</a>)</li>
      <li>Ignore missing features in <code>tests</code> crates (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1101">#1101</a>)</li>
      <li>Use separated build directory for protobuf (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1103">#1103</a>)</li>
      <li>protobuf: Don't install unused test proto (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1116">#1116</a>)</li>
      <li>protobuf: Use crate <code>cmake</code> (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1137">#1137</a>)</li>
      <li>deps: Update devcontainer to Debian Bookworm release (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1114">#1114</a>)</li>
      </ul>
      <!-- raw HTML omitted -->
      </blockquote>
      <p>... (truncated)</p>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/57e794203106db483e5115e7e67502ef6f2c7ad8"><code>57e7942</code></a>
      chore: Release version 0.13.2 (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1139">#1139</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/8424775d78b13239df3cf3fe888236770a0cd839"><code>8424775</code></a>
      build(protobuf): Use crate <code>cmake</code> (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1137">#1137</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/21208abf667313866f79d3d1438310c4dc20bdff"><code>21208ab</code></a>
      build(deps): bump model-checking/kani-github-action from 0.32 to 1.1 (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1125">#1125</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/0c79864443621f20d92f9acc78a6ab0e7821dab0"><code>0c79864</code></a>
      tests(fuzz): Add <code>parse_duration</code> fuzzing target (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1129">#1129</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/52046b943fdf6f79461725027245f890c7b4f514"><code>52046b9</code></a>
      tests: Change some proptest to kani proofs (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1133">#1133</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/ee59dd5a9fe0935ad50e6ddbea5d23e3c6419468"><code>ee59dd5</code></a>
      tests: Fix build without std (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1134">#1134</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/e773f5f6d38f74d0efff876011a2fd0d002aed4c"><code>e773f5f</code></a>
      feat(prost-build): Add protoc executable path to Config (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1126">#1126</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/753bd92a85a3aa305d9d96b5c6363dc58d6356e6"><code>753bd92</code></a>
      ci(clippy): Update to cargo clippy version 1.80 (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1128">#1128</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/df3e58e5d113a0dcf8b6735a5d04cde2d74e5df3"><code>df3e58e</code></a>
      tests(fuzz): Add <code>parse_date</code> fuzzing target (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1127">#1127</a>)</li>
      <li><a
      href="https://github.com/tokio-rs/prost/commit/409b93214ed8d98fbb364031ccf330ce4e7caa32"><code>409b932</code></a>
      style: Remove needless borrow (<a
      href="https://redirect.github.com/tokio-rs/prost/issues/1122">#1122</a>)</li>
      <li>Additional commits viewable in <a
      href="https://github.com/tokio-rs/prost/compare/v0.12.4...v0.13.2">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prost-build&package-manager=cargo&previous-version=0.12.4&new-version=0.13.2)](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 this major version` will close this PR and stop
      Dependabot creating any more for this major version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this minor version` will close this PR and stop
      Dependabot creating any more for this minor version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this dependency` will close this PR and stop
      Dependabot creating any more for this dependency (unless you reopen the
      PR or upgrade to it yourself)
      
      
      </details>
      
      Signed-off-by: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      13d3f58e
    • Dónal Murray's avatar
      [Coretime chain] Add high assignment count mitigation to testnets (#6022) · a3bca4bb
      Dónal Murray authored
      
      Fixed in Polkadot and Kusama in
      https://github.com/polkadot-fellows/runtimes/pull/434 and this PR just
      adds to testnets.
      
      We can handle a maximum of 28 assignments inside one XCM, while it's
      possible to have 80 (if a region is interlaced 79 times).
      This can be chunked on the coretime chain side but currently the
      scheduler on the relay makes assumptions that means we can't send more
      than one chunk for a given core.
      
      This just truncates the additional assignments until we can extend the
      relay to support this. This means that the first 27 assignments are
      taken, the final 28th is used to pad with idle to complete the mask (the
      relay also assumes that every schedule is complete). Any other
      assignments are dropped.
      
      ---------
      
      Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
      a3bca4bb
    • Javier Viola's avatar
      fix js oom `js-scripts` (#6139) · dbaa428c
      Javier Viola authored
      
      Fix `oom` failures (`FATAL ERROR: Ineffective mark-compacts near heap
      limit Allocation failed - JavaScript heap out of memory`), like:
      
      https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7602589
      https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7602594
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      dbaa428c
    • Kian Paimani's avatar
      4387d0f8
    • dependabot[bot]'s avatar
      Bump thiserror from 1.0.61 to 1.0.64 (#6143) · 69b929f5
      dependabot[bot] authored
      
      Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.61 to
      1.0.64.
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/thiserror/releases">thiserror's
      releases</a>.</em></p>
      <blockquote>
      <h2>1.0.64</h2>
      <ul>
      <li>Exclude derived impls from coverage instrumentation (<a
      href="https://redirect.github.com/dtolnay/thiserror/issues/322">#322</a>,
      thanks <a
      href="https://github.com/oxalica"><code>@​oxalica</code></a>)</li>
      </ul>
      <h2>1.0.63</h2>
      <ul>
      <li>Documentation improvements</li>
      </ul>
      <h2>1.0.62</h2>
      <ul>
      <li>Support referring to nested tuple struct fields inside
      <code>#[error(&quot;…&quot;, …)]</code> attribute (<a
      href="https://redirect.github.com/dtolnay/thiserror/issues/309">#309</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/84484bc75c20d63ec63299354b463407f3d59f68"><code>84484bc</code></a>
      Release 1.0.64</li>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/023f036de4515542d0c55aa5c580bc9352a077d1"><code>023f036</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/thiserror/issues/322">#322</a>
      from oxalica/feat/mark-auto-derived</li>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/ae1f47e3e5d6705b6b12997bd036fd97303d71d7"><code>ae1f47e</code></a>
      Mark #[automatically_derived] for generated impls</li>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/ab5b5e375b26971850b134abc7bbfe8a67da0fe3"><code>ab5b5e3</code></a>
      Upload CI Cargo.lock for reproducing failures</li>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/00b3c1405e5df26f9c6408e5fd43f52fa12e8e07"><code>00b3c14</code></a>
      Work around new dead code warning in test</li>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/915c75e8a3b679588e6eac03dccbba5d38c764a8"><code>915c75e</code></a>
      Release 1.0.63</li>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/3d5ec25464d2d71f09f480666e240d3446a44a19"><code>3d5ec25</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/thiserror/issues/312">#312</a>
      from dtolnay/backtracedoc</li>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/de8a1e54d420514250d9d4081d41723192cf0dfa"><code>de8a1e5</code></a>
      Update documentation of #[from] and #[backtrace] attributes</li>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/0bf6e3dd781409b62cbcf0816ffa1bb970d24833"><code>0bf6e3d</code></a>
      Release 1.0.62</li>
      <li><a
      href="https://github.com/dtolnay/thiserror/commit/497793283934d9e514d903a14278af6babbfbb65"><code>4977932</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/thiserror/issues/310">#310</a>
      from dtolnay/nestedtuple</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/thiserror/compare/1.0.61...1.0.64">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=thiserror&package-manager=cargo&previous-version=1.0.61&new-version=1.0.64)](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 this major version` will close this PR and stop
      Dependabot creating any more for this major version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this minor version` will close this PR and stop
      Dependabot creating any more for this minor version (unless you reopen
      the PR or upgrade to it yourself)
      - `@dependabot ignore this dependency` will close this PR and stop
      Dependabot creating any more for this dependency (unless you reopen the
      PR or upgrade to it yourself)
      
      
      </details>
      
      Signed-off-by: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      69b929f5
    • Serban Iorga's avatar
      Fix and re-enable `zombienet-substrate-0002-validators-warp-sync` (#6154) · 9f515e02
      Serban Iorga authored
      Closes https://github.com/paritytech/polkadot-sdk/issues/5974
      
      Fixed as per
      https://github.com/paritytech/polkadot-sdk/issues/5974#issuecomment-2426463359
      9f515e02
    • Andrii's avatar
      Improved TrustedQueryAPI signatures (#6129) · 95483a88
      Andrii authored
      
      Changed returned type of API methods from `Result<bool,
      xcm_runtime_apis::trusted_query::Error>` to a typed one `type
      XcmTrustedQueryResult = Result<bool,
      xcm_runtime_apis::trusted_query::Error>;`
      Follow-up of
      [PR-6039](https://github.com/paritytech/polkadot-sdk/pull/6039)
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
      95483a88
    • dependabot[bot]'s avatar
      Bump the known_good_semver group across 1 directory with 3 updates (#6145) · a538ac10
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 3 updates in the / directory:
      [impl-serde](https://github.com/paritytech/parity-common),
      [serde_json](https://github.com/serde-rs/json) and
      [syn](https://github.com/dtolnay/syn).
      
      Updates `impl-serde` from 0.4.0 to 0.5.0
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/63c5afbf8e0e903439d3c127c59b0e4a7991000b"><code>63c5afb</code></a>
      Bump versions (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/860">#860</a>)</li>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/0db43ee6a258f02894bbc873be08126331691012"><code>0db43ee</code></a>
      Remove From [u8; n] impl for uint types (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/859">#859</a>)</li>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/701148e9afc7aa03a0eb2b66ce0309875810a1c3"><code>701148e</code></a>
      Update syn to 2 (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/855">#855</a>)</li>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/2f1866d2e1b6d1a09b82396404c9e9e5c79fbae4"><code>2f1866d</code></a>
      Upgrade rocksdb to 0.22 (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/853">#853</a>)</li>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/9ff9316a53d03e14c267aa6dcc45c478bfb2b12a"><code>9ff9316</code></a>
      fix compile errors with new Rust (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/854">#854</a>)</li>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/757e2bdd02fd7515545b8fe52226ff36e3cee14e"><code>757e2bd</code></a>
      primitive-types: add repository URL to Cargo.toml (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/844">#844</a>)</li>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/d5e9c1d5b52e7a43f843855a0f4fbc319929a681"><code>d5e9c1d</code></a>
      Add more comment (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/827">#827</a>)</li>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/dbf46bada7e1e796899b24155fa0fc9b7d2f3ab6"><code>dbf46ba</code></a>
      Release 0.2.0 (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/825">#825</a>)</li>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/314bda627a590de8e43a4611e6e8a3a33cc3f1a3"><code>314bda6</code></a>
      build(deps): bump Swatinem/rust-cache from 2.7.2 to 2.7.3 (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/824">#824</a>)</li>
      <li><a
      href="https://github.com/paritytech/parity-common/commit/2241f644e02e6e91072a7087eb056ffb0085c711"><code>2241f64</code></a>
      build(deps): bump Swatinem/rust-cache from 2.7.1 to 2.7.2 (<a
      href="https://redirect.github.com/paritytech/parity-common/issues/823">#823</a>)</li>
      <li>Additional commits viewable in <a
      href="https://github.com/paritytech/parity-common/compare/impl-serde-v0.4.0...impl-serde-v0.5.0">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde_json` from 1.0.128 to 1.0.132
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/serde-rs/json/releases">serde_json's
      releases</a>.</em></p>
      <blockquote>
      <h2>1.0.132</h2>
      <ul>
      <li>Improve binary size and compile time for JSON array and JSON object
      deserialization by about 50% (<a
      href="https://redirect.github.com/serde-rs/json/issues/1205">#1205</a>)</li>
      <li>Improve performance of JSON array and JSON object deserialization by
      about 8% (<a
      href="https://redirect.github.com/serde-rs/json/issues/1206">#1206</a>)</li>
      </ul>
      <h2>1.0.131</h2>
      <ul>
      <li>Implement Deserializer and IntoDeserializer for <code>Map&lt;String,
      Value&gt;</code> and <code>&amp;Map&lt;String, Value&gt;</code> (<a
      href="https://redirect.github.com/serde-rs/json/issues/1135">#1135</a>,
      thanks <a
      href="https://github.com/swlynch99"><code>@​swlynch99</code></a>)</li>
      </ul>
      <h2>1.0.130</h2>
      <ul>
      <li>Support converting and deserializing <code>Number</code> from i128
      and u128 (<a
      href="https://redirect.github.com/serde-rs/json/issues/1141">#1141</a>,
      thanks <a
      href="https://github.com/druide"><code>@​druide</code></a>)</li>
      </ul>
      <h2>1.0.129</h2>
      <ul>
      <li>Add <a
      href="https://docs.rs/serde_json/1/serde_json/struct.Map.html#method.sort_keys"><code>serde_json::Map::sort_keys</code></a>
      and <a
      href="https://docs.rs/serde_json/1/serde_json/enum.Value.html#method.sort_all_objects"><code>serde_json::Value::sort_all_objects</code></a>
      (<a
      href="https://redirect.github.com/serde-rs/json/issues/1199">#1199</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/json/commit/86d933cfd7b5665270e66296694468286794ae44"><code>86d933c</code></a>
      Release 1.0.132</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/f45b422a3ba435722753a2ad7ad32e2a7e2d0596"><code>f45b422</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1206">#1206</a>
      from dtolnay/hasnext</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/f2082d2a04b3b5d72503ac89e2182a5833bb2a1e"><code>f2082d2</code></a>
      Clearer order of comparisons</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/0f54a1a0df5045aee4a2d2f8656c365d835095e5"><code>0f54a1a</code></a>
      Handle early return sooner on eof in seq or map</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/2a4cb44f7cc591a4542cbb1a73ca5bdc8a02c0d7"><code>2a4cb44</code></a>
      Rearrange 'match peek'</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/4cb90ce66de2e0b52572d40ab518ad6d634e43d1"><code>4cb90ce</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1205">#1205</a>
      from dtolnay/hasnext</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/b71ccd2d8f6aabaa0ac6cb889f8e18989038d968"><code>b71ccd2</code></a>
      Reduce duplicative instantiation of logic in SeqAccess and
      MapAccess</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/a810ba985095ecd5bb3f8741f0e6d71e36975cb6"><code>a810ba9</code></a>
      Release 1.0.131</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/0d084c50380a91b0b83ee96eb5e8ae04de7baaf5"><code>0d084c5</code></a>
      Touch up PR 1135</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/b4954a95613fcf5b5b9e830582c0ba5f24a0dd60"><code>b4954a9</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1135">#1135</a>
      from swlynch99/map-deserializer</li>
      <li>Additional commits viewable in <a
      href="https://github.com/serde-rs/json/compare/1.0.128...1.0.132">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `syn` from 2.0.79 to 2.0.82
      <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.82</h2>
      <ul>
      <li>Provide <code>Parse</code> impls for PreciseCapture and
      CapturedParam (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1757">#1757</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1758">#1758</a>)</li>
      <li>Support parsing <code>unsafe</code> attributes (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1759">#1759</a>)</li>
      <li>Add Fold and VisitMut methods for Vec&lt;Attribute&gt; (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1762">#1762</a>)</li>
      </ul>
      <h2>2.0.81</h2>
      <ul>
      <li>Add TypeParamBound::PreciseCapture to represent precise capture
      syntax <code>impl Trait + use&lt;'a, T&gt;</code> (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1752">#1752</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1753">#1753</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1754">#1754</a>)</li>
      </ul>
      <h2>2.0.80</h2>
      <ul>
      <li>Add <code>Expr::RawAddr</code> (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1743">#1743</a>)</li>
      <li>Reject precise captures and ~const in inappropriate syntax positions
      (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1747">#1747</a>)</li>
      <li>Reject trait bound containing only precise capture (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1748">#1748</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/syn/commit/76092cf236bba9311d953887fff5c3391420803e"><code>76092cf</code></a>
      Release 2.0.82</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/937dbcb95c875f4d1d39fabb032ac318ad58ace5"><code>937dbcb</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1762">#1762</a>
      from dtolnay/vecattr</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/386ae9da289a83402ad8c6e8493b667e6876153d"><code>386ae9d</code></a>
      Add Fold and VisitMut methods for Vec&lt;Attribute&gt;</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/4c7f82e6fc334400420ad93df489d863050c28f0"><code>4c7f82e</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1759">#1759</a>
      from dtolnay/unsafeattr</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/a45af00fdfbaf0e686f0b7e45259caf4ac3fcadc"><code>a45af00</code></a>
      Parse unsafe attributes</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/e011ba794aba6aaa0d5c96368bf6cf686581ee96"><code>e011ba7</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1758">#1758</a>
      from dtolnay/precisecapture</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/c25900d5f4949fb04890f8507d9b1dd5be18de5a"><code>c25900d</code></a>
      Implement Parse for CapturedParam</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/fc22fcea08252e34738e5adc2c605da379bebed5"><code>fc22fce</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1757">#1757</a>
      from dtolnay/precisecapture</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/3a45d69b8bd51c4f0608303fe4068840b064b8b6"><code>3a45d69</code></a>
      Implement Parse for PreciseCapture</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/c9bdfacf92c578b9af50f6528fc9f73e79d013bd"><code>c9bdfac</code></a>
      Tweak parsing logic for TypeParamBound</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/syn/compare/2.0.79...2.0.82">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] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      a538ac10
    • Pavel Suprunyuk's avatar
      Fix a reference name in a reusable workflow invocation (#6118) · d4409e3b
      Pavel Suprunyuk authored
      This is just a small adjustment of the reusable workflow invocation
      d4409e3b
    • Javier Viola's avatar
      bump zombienet version `v1.3.116` (#6155) · 73a51fd9
      Javier Viola authored
      Bump zombienet version, includes fixes for `ci`. (mostly timeouts for
      k8s).
      73a51fd9
  6. Oct 20, 2024
  7. Oct 18, 2024
    • Bastian Köcher's avatar
      sync: Remove checking of the extrinsics root (#5686) · 5e0843e5
      Bastian Köcher authored
      With the introduction of `system_version` in
      https://github.com/paritytech/polkadot-sdk/pull/4257 the extrinsic root
      may also use the `V1` layout. At this point in the sync code it would
      require some special handling to find out the `system_version`. So, this
      pull request is removing it. The extrinsics root is checked when
      executing the block later, so that at least no invalid block gets
      imported.
      5e0843e5
    • Andrii's avatar
      Added .scale metadata-files to gitignore (#6130) · c6b847a3
      Andrii authored
      
      To prevent [similar
      issues](https://github.com/paritytech/polkadot-sdk/pull/6124) add .scale
      files to gitignore
      
      ---------
      
      Co-authored-by: default avatarBranislav Kontur <bkontur@gmail.com>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      c6b847a3
    • Andrii's avatar
      Removed .scale files (#6124) · e9238b39
      Andrii authored
      Those files were introduced by mistake in
      https://github.com/paritytech/polkadot-sdk/pull/6039
      e9238b39
    • georgepisaltu's avatar
      FRAME: Reintroduce `TransactionExtension` as a replacement for `SignedExtension` (#3685) · b76e91ac
      georgepisaltu authored
      
      Original PR https://github.com/paritytech/polkadot-sdk/pull/2280
      reverted in https://github.com/paritytech/polkadot-sdk/pull/3665
      
      This PR reintroduces the reverted functionality with additional changes,
      related effort
      [here](https://github.com/paritytech/polkadot-sdk/pull/3623).
      Description is copied over from the original PR
      
      First part of [Extrinsic
      Horizon](https://github.com/paritytech/polkadot-sdk/issues/2415)
      
      Introduces a new trait `TransactionExtension` to replace
      `SignedExtension`. Introduce the idea of transactions which obey the
      runtime's extensions and have according Extension data (né Extra data)
      yet do not have hard-coded signatures.
      
      Deprecate the terminology of "Unsigned" when used for
      transactions/extrinsics owing to there now being "proper" unsigned
      transactions which obey the extension framework and "old-style" unsigned
      which do not. Instead we have __*General*__ for the former and
      __*Bare*__ for the latter. (Ultimately, the latter will be phased out as
      a type of transaction, and Bare will only be used for Inherents.)
      
      Types of extrinsic are now therefore:
      - Bare (no hardcoded signature, no Extra data; used to be known as
      "Unsigned")
      - Bare transactions (deprecated): Gossiped, validated with
      `ValidateUnsigned` (deprecated) and the `_bare_compat` bits of
      `TransactionExtension` (deprecated).
        - Inherents: Not gossiped, validated with `ProvideInherent`.
      - Extended (Extra data): Gossiped, validated via `TransactionExtension`.
        - Signed transactions (with a hardcoded signature) in extrinsic v4.
      - General transactions (without a hardcoded signature) in extrinsic v5.
      
      `TransactionExtension` differs from `SignedExtension` because:
      - A signature on the underlying transaction may validly not be present.
      - It may alter the origin during validation.
      - `pre_dispatch` is renamed to `prepare` and need not contain the checks
      present in `validate`.
      - `validate` and `prepare` is passed an `Origin` rather than a
      `AccountId`.
      - `validate` may pass arbitrary information into `prepare` via a new
      user-specifiable type `Val`.
      - `AdditionalSigned`/`additional_signed` is renamed to
      `Implicit`/`implicit`. It is encoded *for the entire transaction* and
      passed in to each extension as a new argument to `validate`. This
      facilitates the ability of extensions to acts as underlying crypto.
      
      There is a new `DispatchTransaction` trait which contains only default
      function impls and is impl'ed for any `TransactionExtension` impler. It
      provides several utility functions which reduce some of the tedium from
      using `TransactionExtension` (indeed, none of its regular functions
      should now need to be called directly).
      
      Three transaction version discriminator ("versions") are now permissible
      (RFC [here](https://github.com/polkadot-fellows/RFCs/pull/84)) in
      extrinsic version 5:
      - 0b00000100 or 0b00000101: Bare (used to be called "Unsigned"):
      contains Signature or Extra (extension data). After bare transactions
      are no longer supported, this will strictly identify an Inherents only.
      Available in both extrinsic versions 4 and 5.
      - 0b10000100: Old-school "Signed" Transaction: contains Signature, Extra
      (extension data) and an extension version byte, introduced as part of
      [RFC99](https://github.com/polkadot-fellows/RFCs/blob/main/text/0099-transaction-extension-version.md).
      Still available as part of extrinsic v4.
      - 0b01000101: New-school "General" Transaction: contains Extra
      (extension data) and an extension version byte, as per RFC99, but no
      Signature. Only available in extrinsic v5.
      
      For the New-school General Transaction, it becomes trivial for authors
      to publish extensions to the mechanism for authorizing an Origin, e.g.
      through new kinds of key-signing schemes, ZK proofs, pallet state,
      mutations over pre-authenticated origins or any combination of the
      above.
      
      `UncheckedExtrinsic` still maintains encode/decode backwards
      compatibility with extrinsic version 4, where the first byte was encoded
      as:
      - 0b00000100 - Unsigned transactions
      - 0b10000100 - Old-school Signed transactions, without the extension
      version byte
      
      Now, `UncheckedExtrinsic` contains a `Preamble` and the actual call. The
      `Preamble` describes the type of extrinsic as follows:
      ```rust
      /// A "header" for extrinsics leading up to the call itself. Determines the type of extrinsic and
      /// holds any necessary specialized data.
      #[derive(Eq, PartialEq, Clone)]
      pub enum Preamble<Address, Signature, Extension> {
      	/// An extrinsic without a signature or any extension. This means it's either an inherent or
      	/// an old-school "Unsigned" (we don't use that terminology any more since it's confusable with
      	/// the general transaction which is without a signature but does have an extension).
      	///
      	/// NOTE: In the future, once we remove `ValidateUnsigned`, this will only serve Inherent
      	/// extrinsics and thus can be renamed to `Inherent`.
      	Bare(ExtrinsicVersion),
      	/// An old-school transaction extrinsic which includes a signature of some hard-coded crypto.
      	/// Available only on extrinsic version 4.
      	Signed(Address, Signature, ExtensionVersion, Extension),
      	/// A new-school transaction extrinsic which does not include a signature by default. The
      	/// origin authorization, through signatures or other means, is performed by the transaction
      	/// extension in this extrinsic. Available starting with extrinsic version 5.
      	General(ExtensionVersion, Extension),
      }
      ```
      
      ## Code Migration
      
      ### NOW: Getting it to build
      
      Wrap your `SignedExtension`s in `AsTransactionExtension`. This should be
      accompanied by renaming your aggregate type in line with the new
      terminology. E.g. Before:
      
      ```rust
      /// The SignedExtension to the basic transaction logic.
      pub type SignedExtra = (
      	/* snip */
      	MySpecialSignedExtension,
      );
      /// Unchecked extrinsic type as expected by this runtime.
      pub type UncheckedExtrinsic =
      	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
      ```
      
      After:
      
      ```rust
      /// The extension to the basic transaction logic.
      pub type TxExtension = (
      	/* snip */
      	AsTransactionExtension<MySpecialSignedExtension>,
      );
      /// Unchecked extrinsic type as expected by this runtime.
      pub type UncheckedExtrinsic =
      	generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>;
      ```
      
      You'll also need to alter any transaction building logic to add a
      `.into()` to make the conversion happen. E.g. Before:
      
      ```rust
      fn construct_extrinsic(
      		/* snip */
      ) -> UncheckedExtrinsic {
      	let extra: SignedExtra = (
      		/* snip */
      		MySpecialSignedExtension::new(/* snip */),
      	);
      	let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap();
      	let signature = payload.using_encoded(|e| sender.sign(e));
      	UncheckedExtrinsic::new_signed(
      		/* snip */
      		Signature::Sr25519(signature),
      		extra,
      	)
      }
      ```
      
      After:
      
      ```rust
      fn construct_extrinsic(
      		/* snip */
      ) -> UncheckedExtrinsic {
      	let tx_ext: TxExtension = (
      		/* snip */
      		MySpecialSignedExtension::new(/* snip */).into(),
      	);
      	let payload = SignedPayload::new(call.clone(), tx_ext.clone()).unwrap();
      	let signature = payload.using_encoded(|e| sender.sign(e));
      	UncheckedExtrinsic::new_signed(
      		/* snip */
      		Signature::Sr25519(signature),
      		tx_ext,
      	)
      }
      ```
      
      ### SOON: Migrating to `TransactionExtension`
      
      Most `SignedExtension`s can be trivially converted to become a
      `TransactionExtension`. There are a few things to know.
      
      - Instead of a single trait like `SignedExtension`, you should now
      implement two traits individually: `TransactionExtensionBase` and
      `TransactionExtension`.
      - Weights are now a thing and must be provided via the new function `fn
      weight`.
      
      #### `TransactionExtensionBase`
      
      This trait takes care of anything which is not dependent on types
      specific to your runtime, most notably `Call`.
      
      - `AdditionalSigned`/`additional_signed` is renamed to
      `Implicit`/`implicit`.
      - Weight must be returned by implementing the `weight` function. If your
      extension is associated with a pallet, you'll probably want to do this
      via the pallet's existing benchmarking infrastructure.
      
      #### `TransactionExtension`
      
      Generally:
      - `pre_dispatch` is now `prepare` and you *should not reexecute the
      `validate` functionality in there*!
      - You don't get an account ID any more; you get an origin instead. If
      you need to presume an account ID, then you can use the trait function
      `AsSystemOriginSigner::as_system_origin_signer`.
      - You get an additional ticket, similar to `Pre`, called `Val`. This
      defines data which is passed from `validate` into `prepare`. This is
      important since you should not be duplicating logic from `validate` to
      `prepare`, you need a way of passing your working from the former into
      the latter. This is it.
      - This trait takes a `Call` type parameter. `Call` is the runtime call
      type which used to be an associated type; you can just move it to become
      a type parameter for your trait impl.
      - There's no `AccountId` associated type any more. Just remove it.
      
      Regarding `validate`:
      - You get three new parameters in `validate`; all can be ignored when
      migrating from `SignedExtension`.
      - `validate` returns a tuple on success; the second item in the tuple is
      the new ticket type `Self::Val` which gets passed in to `prepare`. If
      you use any information extracted during `validate` (off-chain and
      on-chain, non-mutating) in `prepare` (on-chain, mutating) then you can
      pass it through with this. For the tuple's last item, just return the
      `origin` argument.
      
      Regarding `prepare`:
      - This is renamed from `pre_dispatch`, but there is one change:
      - FUNCTIONALITY TO VALIDATE THE TRANSACTION NEED NOT BE DUPLICATED FROM
      `validate`!!
      - (This is different to `SignedExtension` which was required to run the
      same checks in `pre_dispatch` as in `validate`.)
      
      Regarding `post_dispatch`:
      - Since there are no unsigned transactions handled by
      `TransactionExtension`, `Pre` is always defined, so the first parameter
      is `Self::Pre` rather than `Option<Self::Pre>`.
      
      If you make use of `SignedExtension::validate_unsigned` or
      `SignedExtension::pre_dispatch_unsigned`, then:
      - Just use the regular versions of these functions instead.
      - Have your logic execute in the case that the `origin` is `None`.
      - Ensure your transaction creation logic creates a General Transaction
      rather than a Bare Transaction; this means having to include all
      `TransactionExtension`s' data.
      - `ValidateUnsigned` can still be used (for now) if you need to be able
      to construct transactions which contain none of the extension data,
      however these will be phased out in stage 2 of the Transactions Horizon,
      so you should consider moving to an extension-centric design.
      
      ---------
      
      Signed-off-by: default avatargeorgepisaltu <george.pisaltu@parity.io>
      Co-authored-by: default avatarGuillaume Thiolliere <gui.thiolliere@gmail.com>
      Co-authored-by: default avatarBranislav Kontur <bkontur@gmail.com>
      b76e91ac