Skip to content
Snippets Groups Projects
  1. Sep 25, 2024
    • Liam Aharon's avatar
      MBM `try-runtime` support (#4251) · cc6a5130
      Liam Aharon authored
      
      # MBM try-runtime support
      
      This MR adds support to the try-runtime trait such that the
      try-runtime-CLI will be able to support MBM testing
      [here](https://github.com/paritytech/try-runtime-cli/pull/90). It mainly
      adds two feature-gated hooks to the `SteppedMigration` hook to
      facilitate testing. These hooks are named `pre_upgrade` and
      `post_upgrade` and have the same signature and implications as for
      single-block migrations.
      
      ## Integration
      
      To make use of this in your Multi-Block-Migration, just implement the
      two new hooks and test pre- and post-conditions in them:
      
      ```rust
      #[cfg(feature = "try-runtime")]
      fn pre_upgrade() -> Result<Vec<u8>, frame_support::sp_runtime::TryRuntimeError> {
      	// ...
      }
      
      #[cfg(feature = "try-runtime")]
      fn post_upgrade(prev: Vec<u8>) -> Result<(), frame_support::sp_runtime::TryRuntimeError> {
          // ...
      }
      ```
      
      You may return an error or panic in these functions to indicate failure.
      This will then show up in the try-runtime-CLI and can be used in CI for
      testing.
      
      Changes:
      - Adds `try-runtime` gated methods `pre_upgrade` and `post_upgrade` on
      `SteppedMigration`
      - Adds `try-runtime` gated methods `nth_pre_upgrade` and
      `nth_post_upgrade` on `SteppedMigrations`
      - Modifies `pallet_migrations` implementation to run pre_upgrade and
      post_upgrade steps at the appropriate times, and panic in the event of
      migration failure.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Signed-off-by: default avatargeorgepisaltu <george.pisaltu@parity.io>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarclaravanstaden <claravanstaden64@gmail.com>
      Co-authored-by: default avatarggwpez <ggwpez@users.noreply.github.com>
      Co-authored-by: default avatargeorgepisaltu <george.pisaltu@parity.io>
      cc6a5130
  2. Sep 24, 2024
    • Branislav Kontur's avatar
      Bridges lane id agnostic for backwards compatibility (#5649) · 710e74dd
      Branislav Kontur authored
      
      This PR primarily fixes the issue with
      `zombienet-bridges-0001-asset-transfer-works` (see:
      https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7404903).
      
      The PR looks large, but most of the changes involve splitting `LaneId`
      into `LegacyLaneId` and `HashedLaneId`. All pallets now use `LaneId` as
      a generic parameter.
      
      The actual bridging pallets are now backward compatible and work with
      actual **substrate-relay v1.6.10**, which does not even known anything
      about permissionless lanes or the new pallet changes.
      
      
      
      ## Important
      
      - [x] added migration for `pallet_bridge_relayers` and
      `RewardsAccountParams` change order of params, which generates different
      accounts
      
      ## Deployment follow ups
      - [ ] fix monitoring for
      `at_{}_relay_{}_reward_for_msgs_from_{}_on_lane_{}`
      - [ ] check sovereign reward accounts - because of changed
      `RewardsAccountParams`
      - [ ] deploy another messages instances for permissionless lanes - on
      BHs or AHs?
      - [ ] return back `open_and_close_bridge_works` for another
      `pallet-bridge-messages` instance
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      710e74dd
    • Javier Viola's avatar
      Fix parachain-template-test (#5821) · 9294572a
      Javier Viola authored
      Fix `parachain-template-test` (bump `zombienet` version).
      Thx!
      9294572a
  3. Sep 23, 2024
    • dependabot[bot]'s avatar
      Bump k256 from 0.13.3 to 0.13.4 (#5802) · e8dad101
      dependabot[bot] authored
      
      Bumps [k256](https://github.com/RustCrypto/elliptic-curves) from 0.13.3
      to 0.13.4.
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/RustCrypto/elliptic-curves/commit/5ac8f5d77f11399ff48d87b0554935f6eddda342"><code>5ac8f5d</code></a>
      k256 v0.13.4</li>
      <li><a
      href="https://github.com/RustCrypto/elliptic-curves/commit/613cbafd63763c579922ad2b79fa041b4a0dde50"><code>613cbaf</code></a>
      k256: add support for non-32-byte BIP340 signatures (<a
      href="https://redirect.github.com/RustCrypto/elliptic-curves/issues/1041">#1041</a>)</li>
      <li><a
      href="https://github.com/RustCrypto/elliptic-curves/commit/3787e4cd5b4223cae8bed05d087d6ff2f1d9430b"><code>3787e4c</code></a>
      k256 v0.13.3</li>
      <li>See full diff in <a
      href="https://github.com/RustCrypto/elliptic-curves/compare/k256/v0.13.3...k256/v0.13.4">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=k256&package-manager=cargo&previous-version=0.13.3&new-version=0.13.4)](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 avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      e8dad101
    • Alin Dima's avatar
      elastic scaling: add core selector to cumulus (#5372) · b9eb68bc
      Alin Dima authored
      Partially implements
      https://github.com/paritytech/polkadot-sdk/issues/5048
      
      - adds a core selection runtime API to cumulus and a generic way of
      configuring it for a parachain
      - modifies the slot based collator to utilise the claim queue and the
      generic core selection
      
      What's left to be implemented (in a follow-up PR):
      - add the UMP signal for core selection into the parachain-system pallet
      
      View the RFC for more context:
      https://github.com/polkadot-fellows/RFCs/pull/103
      
      ---------
      
      Co-authored-by: command-bot <>
      b9eb68bc
  4. Sep 22, 2024
    • Branislav Kontur's avatar
      Moved presets to the testnet runtimes (#5327) · 8735c663
      Branislav Kontur authored
      
      It is a first step for switching to the `frame-omni-bencher` for CI.
      
      This PR includes several changes related to generating chain specs plus:
      
      - [x] pallet `assigned_slots` fix missing `#[serde(skip)]` for phantom
      - [x] pallet `paras_inherent` benchmark fix - cherry-picked from
      https://github.com/paritytech/polkadot-sdk/pull/5688
      - [x] migrates `get_preset` to the relevant runtimes
      - [x] fixes Rococo genesis presets - does not work
      https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7317249
      - [x] fixes Rococo benchmarks for CI 
      - [x] migrate westend genesis
      - [x] remove wococo stuff
      
      Closes: https://github.com/paritytech/polkadot-sdk/issues/5680
      
      ## Follow-ups
      - Fix for frame-omni-bencher
      https://github.com/paritytech/polkadot-sdk/pull/5655
      - Enable new short-benchmarking CI -
      https://github.com/paritytech/polkadot-sdk/pull/5706
      - Remove gitlab pipelines for short benchmarking
      - refactor all Cumulus runtimes to use `get_preset` -
      https://github.com/paritytech/polkadot-sdk/issues/5704
      - https://github.com/paritytech/polkadot-sdk/issues/5705
      - https://github.com/paritytech/polkadot-sdk/issues/5700
      - [ ] Backport to the stable
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarordian <noreply@reusable.software>
      8735c663
  5. Sep 20, 2024
  6. Sep 19, 2024
    • dependabot[bot]'s avatar
      Bump the known_good_semver group across 1 directory with 2 updates (#5736) · 221565d2
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 2 updates in the / directory:
      [clap](https://github.com/clap-rs/clap) and
      [syn](https://github.com/dtolnay/syn).
      
      Updates `clap` from 4.5.11 to 4.5.13
      <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.5.13</h2>
      <h2>[4.5.13] - 2024-07-31</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(derive)</em> Improve error message when
      <code>#[flatten]</code>ing an optional <code>#[group(skip)]</code></li>
      <li><em>(help)</em> Properly wrap long subcommand descriptions in
      help</li>
      </ul>
      <h2>v4.5.12</h2>
      <h2>[4.5.12] - 2024-07-31</h2>
      </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.5.13] - 2024-07-31</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(derive)</em> Improve error message when
      <code>#[flatten]</code>ing an optional <code>#[group(skip)]</code></li>
      <li><em>(help)</em> Properly wrap long subcommand descriptions in
      help</li>
      </ul>
      <h2>[4.5.12] - 2024-07-31</h2>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/clap-rs/clap/commit/d222ae4cb62d08b4d8f635aa80ddb3c880b82e6e"><code>d222ae4</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/a8abcb40c5f2628bfa671adf61a090a1bbfbcfa2"><code>a8abcb4</code></a>
      docs: Update changelog</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/2690e1bdb19df3e4dde7a50fc33b14a3bf6f0b8a"><code>2690e1b</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5621">#5621</a>
      from shannmu/dynamic_valuehint</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/7fd7b3e40bd835070253432accf4076bb020beda"><code>7fd7b3e</code></a>
      feat(clap_complete): Support to complete custom value of argument</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/fc6aaca52b42d0e4ae13805e7480cbb05f63a0ca"><code>fc6aaca</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5638">#5638</a>
      from epage/cargo</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/631e54bc715ed2fa53d8457dc273a25b92d3b354"><code>631e54b</code></a>
      docs(cookbook): Style cargo plugin</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/6fb49d08bb2acfbc2f2aa5f717ccd4a4018ca872"><code>6fb49d0</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5636">#5636</a>
      from gibfahn/styles_const</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/6f215eee98c4f73099b0ede2ac62ba019ada24ce"><code>6f215ee</code></a>
      refactor(styles): make styles example use a const</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/bbb2e6fdde1c724e39c2f2616332310252c12ab8"><code>bbb2e6f</code></a>
      test: Add test case for completing custom value of argument</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/999071c46dca0367d93f66ecd97b2e3507963284"><code>999071c</code></a>
      fix: Change <code>visible</code> to <code>hidden</code></li>
      <li>Additional commits viewable in <a
      href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.11...clap_complete-v4.5.13">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `syn` from 2.0.65 to 2.0.77
      <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.77</h2>
      <ul>
      <li>Support parsing <code>Expr::Tuple</code> in non-&quot;full&quot;
      mode (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1727">#1727</a>)</li>
      </ul>
      <h2>2.0.76</h2>
      <ul>
      <li>Enforce that tail call <code>become</code> keyword is followed by an
      expression (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1725">#1725</a>)</li>
      </ul>
      <h2>2.0.75</h2>
      <ul>
      <li>Automatically fill in missing turbofish when printing ExprPath and
      other paths in expression position (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1722">#1722</a>)</li>
      </ul>
      <h2>2.0.74</h2>
      <ul>
      <li>Fix <em>&quot;temporary is dropped and runs the destructor for type
      `impl Iterator`&quot;</em> regression affecting certain use of
      <code>Generics</code> iterator methods (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1719">#1719</a>)</li>
      </ul>
      <h2>2.0.73</h2>
      <ul>
      <li>Support parsing unnamed C varargs within function pointer types (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1711">#1711</a>)</li>
      <li>Improve synthesized error message on unexpected tokens at the end of
      the expected contents of a delimited group (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1713">#1713</a>)</li>
      <li>Support parsing unstable tail call syntax (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1714">#1714</a>, <a
      href="https://redirect.github.com/rust-lang/rust/issues/112788">rust-lang/rust#112788</a>)</li>
      <li>Add <a
      href="https://docs.rs/syn/2.0.73/syn/enum.Fields.html#method.members"><code>Fields::members</code></a>
      iterator (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1716">#1716</a>,
      thanks <a
      href="https://github.com/Fancyflame"><code>@​Fancyflame</code></a>)</li>
      </ul>
      <h2>2.0.72</h2>
      <ul>
      <li>Parse <code>use&lt;'a, T&gt;</code> precise capturing bounds (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1707">#1707</a>,
      thanks <a
      href="https://github.com/compiler-errors"><code>@​compiler-errors</code></a>)</li>
      </ul>
      <h2>2.0.71</h2>
      <ul>
      <li>Do not require mutable borrow in Punctuated::get() (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1706">#1706</a>,
      thanks <a
      href="https://github.com/lemunozm"><code>@​lemunozm</code></a>)</li>
      </ul>
      <h2>2.0.70</h2>
      <ul>
      <li>Improve parenthesization of closures, jumps, ranges, chained
      comparisons, and let (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1694">#1694</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1695">#1695</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1698">#1698</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1699">#1699</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1700">#1700</a>)</li>
      </ul>
      <h2>2.0.69</h2>
      <ul>
      <li>Correctly parenthesize labeled loops inside a break value (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1692">#1692</a>)</li>
      <li>Add <code>Punctuated::get</code> and <code>get_mut</code> (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1693">#1693</a>)</li>
      </ul>
      <h2>2.0.68</h2>
      <ul>
      <li>Improve panic location when <code>parse_quote!</code> parses invalid
      syntax (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1690">#1690</a>,
      thanks <a
      href="https://github.com/stepancheg"><code>@​stepancheg</code></a>)</li>
      <li>More efficient peek implementation for <code>Group</code> and
      <code>Lifetime</code> (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1687">#1687</a>)</li>
      </ul>
      <h2>2.0.67</h2>
      <ul>
      <li>Produce more accurate error message locations for errors located at
      the end of a nested group (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1679">#1679</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1680">#1680</a>)</li>
      <li>Support peeking <code>LitCStr</code> in ParseStream::peek (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1682">#1682</a>)</li>
      </ul>
      <h2>2.0.66</h2>
      <ul>
      <li>Allow braced structs when parsing ExprLet (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1671">#1671</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/syn/commit/6232266b0b522ca144eb2910a51670eb9685bca5"><code>6232266</code></a>
      Release 2.0.77</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/97acbf0ffae4fa17f971cc15cd0586ea94bc7423"><code>97acbf0</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1727">#1727</a>
      from dtolnay/exprparen</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/a3b5a5c10942c2dfc42f7c7dbd80d2d6672dbcb9"><code>a3b5a5c</code></a>
      Support parsing Expr::Tuple in derive</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/3c24f576d7e1655da51bac4a6f80ded898fb9840"><code>3c24f57</code></a>
      Run upload-artifact action regardless of previous step failure</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/78608a3ebe0bab46d0791e91f35b9966a92962df"><code>78608a3</code></a>
      Upload CI Cargo.lock for reproducing failures</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/ef3e9c6dde79be7590fc90278772663ca31c1a73"><code>ef3e9c6</code></a>
      Release 2.0.76</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/8f7365ff9685c8ca9527c2de409204179a3efcdf"><code>8f7365f</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1725">#1725</a>
      from dtolnay/tailcall</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/6cddd9ea714fe034466b4f02d3f7abb484c65ea0"><code>6cddd9e</code></a>
      Make tail call expr mandatory</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/d1746fe29d18ca704ed285844c365a14a77e8757"><code>d1746fe</code></a>
      Release 2.0.75</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/b6936825a637376dd7584653e13776034759d3fd"><code>b693682</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1722">#1722</a>
      from dtolnay/exprpath</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/syn/compare/2.0.65...2.0.77">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>
      Co-authored-by: command-bot <>
      221565d2
    • Iulian Barbu's avatar
      cumulus/minimal-node: added prometheus metrics for the RPC client (#5572) · c8d5e5a3
      Iulian Barbu authored
      
      # Description
      
      When we start a node with connections to external RPC servers (as a
      minimal node), we lack metrics around how many individual calls we're
      doing to the remote RPC servers and their duration. This PR adds metrics
      that measure durations of each RPC call made by the minimal nodes, and
      implicitly how many calls there are.
      
      Closes #5409 
      Closes #5689
      
      ## Integration
      
      Node operators should be able to track minimal node metrics and decide
      appropriate actions according to how the metrics are interpreted/felt.
      The added metrics can be observed by curl'ing the prometheus metrics
      endpoint for the ~relaychain~ parachain (it was changed based on the
      review). The metrics are represented by
      ~`polkadot_parachain_relay_chain_rpc_interface`~
      `relay_chain_rpc_interface` namespace (I realized lining up
      `parachain_relay_chain` in the same metric might be confusing :).
      Excerpt from the curl:
      
      ```
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="0.001"} 15
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="0.004"} 23
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="0.016"} 23
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="0.064"} 23
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="0.256"} 24
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="1.024"} 24
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="4.096"} 24
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="16.384"} 24
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="65.536"} 24
      relay_chain_rpc_interface_bucket{method="chain_getBlockHash",chain="rococo_local_testnet",le="+Inf"} 24
      relay_chain_rpc_interface_sum{method="chain_getBlockHash",chain="rococo_local_testnet"} 0.11719075
      relay_chain_rpc_interface_count{method="chain_getBlockHash",chain="rococo_local_testnet"} 24
      ```
      
      ## Review Notes
      
      The way we measure durations/hits is based on `HistogramVec` struct
      which allows us to collect timings for each RPC client method called
      from the minimal node., It can be extended to measure the RPCs against
      other dimensions too (status codes, response sizes, etc). The timing
      measuring is done at the level of the `relay-chain-rpc-interface`, in
      the `RelayChainRpcClient` struct's method 'request_tracing'. A single
      entry point for all RPC requests done through the
      relay-chain-rpc-interface. The requests durations will fall under
      exponential buckets described by start `0.001`, factor `4` and count
      `9`.
      
      ---------
      
      Signed-off-by: default avatarIulian Barbu <iulian.barbu@parity.io>
      c8d5e5a3
    • Francisco Aguirre's avatar
      [xcm-emulator] Better logs for message execution and processing (#5712) · b230b0e3
      Francisco Aguirre authored
      When running XCM emulated tests and seeing the logs with `RUST_LOG=xcm`
      or `RUST_LOG=xcm=trace`, it's sometimes a bit hard to figure out the
      chain where the logs are coming from.
      
      I added a log whenever `execute_with` is called, to know the chain which
      makes the following logs. Looks like so:
      
      <img width="1499" alt="Screenshot 2024-09-13 at 20 14 13"
      src="https://github.com/user-attachments/assets/a31d7aa4-11d1-4d3e-9a65-86f38347c880">
      
      There are already log targets for when UMP, DMP and HRMP messages are
      being processed. To see them, you have to use the log targets `ump`,
      `dmp`, and `hrmp` respectively. So `RUST_LOG=xcm,ump,dmp,hrmp` would let
      you see every log.
      I prefixed the targets with `xcm::` so you can get all the relevant logs
      just by filtering by `xcm`. You can always use the whole target to see
      just the messages being processed.
      
      These logs showed the message as an array of bytes, I made them show a
      hexadecimal string instead since that's easier to copy in case you want
      to decode it or use it in another tool. They look like this now:
      
      <img width="1499" alt="Screenshot 2024-09-13 at 20 17 15"
      src="https://github.com/user-attachments/assets/5abf4a97-1ea7-4832-b3b0-d54c54905d1a">
      
      The HRMP and UMP ones are very similar.
      b230b0e3
  7. Sep 18, 2024
    • dependabot[bot]'s avatar
      Bump soketto from 0.7.1 to 0.8.0 (#5719) · 37bdc897
      dependabot[bot] authored
      Bumps [soketto](https://github.com/paritytech/soketto) from 0.7.1 to
      0.8.0.
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/paritytech/soketto/releases">soketto's
      releases</a>.</em></p>
      <blockquote>
      <h2>v0.8.0</h2>
      <h2>0.8.0</h2>
      <ul>
      <li>[changed] move to rust 2021 <a
      href="https://redirect.github.com/paritytech/soketto/pull/56">#56</a></li>
      <li>[changed] Replace sha-1 v0.9 with sha1 v0.10 <a
      href="https://redirect.github.com/paritytech/soketto/pull/62">#62</a></li>
      <li>[changed] Update hyper requirement from v0.14 to v1.0 <a
      href="https://redirect.github.com/paritytech/soketto/pull/99">#99</a></li>
      <li>[changed] Update base64 requirement from 0.13 to 0.22 <a
      href="https://redirect.github.com/paritytech/soketto/pull/97">#97</a></li>
      <li>[changed] Bump MSRV to 1.71.1.</li>
      <li>[fixed] doc typo on Client resource field <a
      href="https://redirect.github.com/paritytech/soketto/pull/97">#79</a></li>
      </ul>
      </blockquote>
      </detail...
      37bdc897
    • Alexander Theißen's avatar
      revive: Limit the amount of static memory a contract can use (#5726) · 310ef5ce
      Alexander Theißen authored
      
      This will make sure that when uploading new code that the declared
      static memory fits within a defined limit. We apply different limits to
      code and data. Reason is that code will consume much more memory per
      byte once decoded during lazy execution.
      
      This PR:
      
      1) Remove the MaxCodeLen from the `Config` to we maintain tight control
      over it.
      2) Defines a single `STATIC_MEMORY_BYTES` knob that limits the maximum
      decoded size.
      3) Enforces them only on upload but not on execution so we can raise
      them later.
      4) Adapt the worst case calculation in `integrity_check`.
      5) Bumps the max stack depth from 5 to 10 as this will still fit within
      our memory envelope.
      6) The memory limit per contract is now a cool 1MB that can be spent on
      data or code.
      7) Bump PolkaVM for good measure
      8) The blob is limited to 256kb which is just a sanity check to not even
      try parsing very big inputs.
      
      ---------
      
      Co-authored-by: default avatarCyrill Leutwiler <cyrill@parity.io>
      310ef5ce
    • Kazunobu Ndong's avatar
      Remove libp2p dependency from sc-network-sync (#4974) · 70633959
      Kazunobu Ndong authored
      
      ## Issue
      https://github.com/paritytech/polkadot-sdk/issues/4858
      
      ## Description
      This PR removes `libp2p::request_response::OutboundFailure` from
      `substrate/client/network/sync/src/engine.rs`. This way, the dependency
      with the library `libp2p` is removed from `sc-network-sync`.
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
      Co-authored-by: default avatarAlexandru Vasile <60601340+lexnv@users.noreply.github.com>
      70633959
    • Javier Viola's avatar
      add `coretime` test using `zombienet-sdk` (#4883) · ba38d31d
      Javier Viola authored
      Related to #4882
      cc: @s0me0ne-unkn0wn
      
       
      
      ```sh
      RUST_LOG=info,zombie=debug cargo test -p polkadot-zombienet-sdk-tests smoke::coretime_revenue::coretime_revenue_test --features zombie-metadata  -- --exact
      ```
      
      ---
      
      _Update_: This pr is now ready for review. `warp-sync` failing test are
      not related.
      
      ---------
      
      Co-authored-by: default avatarDmitry Sinyavin <dmitry.sinyavin@parity.io>
      Co-authored-by: default avatars0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com>
      ba38d31d
  8. Sep 16, 2024
  9. Sep 13, 2024
    • Ron's avatar
      Transfer Polkadot-native assets to Ethereum (#5546) · fb7300ce
      Ron authored
      # Description
      
      Adding support for send polkadot native assets(PNA) to Ethereum network
      through snowbridge. Asset with location in view of AH Including:
      
      - Relay token `(1,Here)`
      - Native asset `(0,[PalletInstance(instance),GenereIndex(index)])`
      managed by Assets Pallet
      - Native asset of Parachain `(1,[Parachain(paraId)])` managed by Foreign
      Assets Pallet
      
      The original PR in https://github.com/Snowfork/polkadot-sdk/pull/128
      which has been internally reviewed by Snowbridge team.
      
      # Notes
      
      - This feature depends on the companion solidity change in
      https://github.com/Snowfork/snowbridge/pull/1155. Currently register PNA
      is only allowed from
      [sudo](https://github.com/Snowfork/polkadot-sdk/blob/46cb3528
      
      /bridges/snowbridge/pallets/system/src/lib.rs#L621),
      so it's actually not enabled. Will require another runtime upgrade to
      make the call permissionless together with upgrading the Gateway
      contract.
      
      - To make things easy multi-hop transfer(i.e. sending PNA from Ethereum
      through AH to Destination chain) is not support ed in this PR. For this
      case user can switch to 2-phases transfer instead.
      
      ---------
      
      Co-authored-by: default avatarClara van Staden <claravanstaden64@gmail.com>
      Co-authored-by: default avatarAlistair Singh <alistair.singh7@gmail.com>
      Co-authored-by: default avatarVincent Geddes <117534+vgeddes@users.noreply.github.com>
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
      fb7300ce
  10. Sep 12, 2024
  11. Sep 11, 2024
  12. Sep 10, 2024
    • Alexandru Vasile's avatar
      litep2p: Update network backend to v0.7.0 (#5609) · 12eeb5df
      Alexandru Vasile authored
      This release introduces several new features, improvements, and fixes to
      the litep2p library. Key updates include enhanced error handling,
      configurable connection limits, and a new API for managing public
      addresses.
      
      For a detailed set of changes, see [litep2p
      changelog](https://github.com/paritytech/litep2p/blob/master/CHANGELOG.md#070---2024-09-05).
      
      This PR makes use of:
      - connection limits to optimize network throughput
      - better errors that are propagated to substrate metrics 
      - public addresses API to report healthy addresses to the Identify
      protocol
      
      ### Warp sync time improvement
      
      Measuring warp sync time is a bit inaccurate since the network is not
      deterministic and we might end up using faster peers (peers with more
      resources to handle our requests). However, I did not see warp sync
      times of 16 minutes, instead, they are roughly stabilized between 8 and
      10 minutes.
      
      For measuring warp-sync time, I've used
      [sub-trige-logs](https://github.com/lexnv...
      12eeb5df
    • Vedhavyas Singareddi's avatar
      Update `RuntimeVerison` type and use `system_version` to derive extrinsics... · 9930d213
      Vedhavyas Singareddi authored
      Update `RuntimeVerison` type and use `system_version` to derive extrinsics root `StateVersion` instead of `V0` (#4257)
      
      This PR 
      - Renames `RuntimeVersion::state_version` to `system_version`
      - Uses `Runtime::system_version` to derive extrinsics root
      `StateVersion` instead of default `StateVersion::V0`
      
      This PR should not be breaking any existing chains so long as they use
      same `RuntimeVersion::state_version` for `Runtime::system_version`
      
      Using `RuntimeVersion::system_version = 2` will make the extrinsics root
      to use `StateVersion::V1` instead of `V0`
      
      RFC for this change - https://github.com/polkadot-fellows/RFCs/pull/42
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: default avatarKoute <koute@users.noreply.github.com>
      Co-authored-by: default avatarNazar Mokrynskyi <nazar@mokrynskyi.com>
      9930d213
  13. Sep 09, 2024
    • dependabot[bot]'s avatar
      Bump proc-macro2 from 1.0.82 to 1.0.86 (#5638) · f5783cc6
      dependabot[bot] authored
      Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.82
      to 1.0.86.
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/proc-macro2/releases">proc-macro2's
      releases</a>.</em></p>
      <blockquote>
      <h2>1.0.86</h2>
      <ul>
      <li>Documentation improvements</li>
      </ul>
      <h2>1.0.85</h2>
      <ul>
      <li>Mark some tests as only for 64-bit targets (<a
      href="https://redirect.github.com/dtolnay/proc-macro2/issues/463">#463</a>)</li>
      </ul>
      <h2>1.0.84</h2>
      <ul>
      <li>Documentation improvements (<a
      href="https://redirect.github.com/dtolnay/proc-macro2/issues/455">#455</a>,
      thanks <a
      href="https://github.com/CensoredUsername"><code>@​CensoredUsername</code></a>)</li>
      </ul>
      <h2>1.0.83</h2>
      <ul>
      <li>Optimize the representation of <code>Ident</code> (<a
      href="https://redirect.github.com/dtolnay/proc-macro2/issues/462">#462</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.c...
      f5783cc6
    • dependabot[bot]'s avatar
      Bump lazy_static from 1.4.0 to 1.5.0 (#5639) · def35b92
      dependabot[bot] authored
      
      Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs)
      from 1.4.0 to 1.5.0.
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/be7c1c43f264699f956b70ce8e29941bd1e61bde"><code>be7c1c4</code></a>
      point readme version to 1.5.0</li>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/8971a27dac57dbef72dd6abb9a55bca795ed58de"><code>8971a27</code></a>
      update readme build badge</li>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/15691ec43162cb50ba02bf39adac38f113688e77"><code>15691ec</code></a>
      Modernize lazy-static infra (<a
      href="https://redirect.github.com/rust-lang-nursery/lazy-static.rs/issues/219">#219</a>)</li>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/2660041abcd4112854d1f6ebff35d421cc24263a"><code>2660041</code></a>
      Merge pull request <a
      href="https://redirect.github.com/rust-lang-nursery/lazy-static.rs/issues/206">#206</a>
      from TheBotlyNoob/master</li>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/6ace970cabd2bda121745d8b12539c93ba2878fd"><code>6ace970</code></a>
      Merge pull request <a
      href="https://redirect.github.com/rust-lang-nursery/lazy-static.rs/issues/216">#216</a>
      from frewsxcv/patch-1</li>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/a2031053df502518e44fec72712db8f927c6ee5c"><code>a203105</code></a>
      Update README.md</li>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/cfd89ac7fcbc3fb8ee5ee20b374b2b1dfb357198"><code>cfd89ac</code></a>
      Update README.md</li>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/fc8e466b94cc9c5f38d6002d3cc865f19a9ca004"><code>fc8e466</code></a>
      Update README.md</li>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/a8afb21bfd9dc53b51111bd1d9f19c2275fc97fe"><code>a8afb21</code></a>
      Update README.md</li>
      <li><a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/commit/41fa23457d65b5c4688a42228734fd8479214a83"><code>41fa234</code></a>
      Update README to indicate how to replace with
      <code>std::sync::OnceLock</code></li>
      <li>Additional commits viewable in <a
      href="https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.4.0...1.5.0">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lazy_static&package-manager=cargo&previous-version=1.4.0&new-version=1.5.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 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>
      def35b92
    • dependabot[bot]'s avatar
      Bump the known_good_semver group with 3 updates (#5636) · 083f5273
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 3 updates:
      [serde](https://github.com/serde-rs/serde),
      [serde_derive](https://github.com/serde-rs/serde) and
      [serde_json](https://github.com/serde-rs/json).
      
      Updates `serde` from 1.0.209 to 1.0.210
      <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.210</h2>
      <ul>
      <li>Support serializing and deserializing <code>IpAddr</code> and
      <code>SocketAddr</code> in no-std mode on Rust 1.77+ (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2816">#2816</a>,
      thanks <a
      href="https://github.com/MathiasKoch"><code>@​MathiasKoch</code></a>)</li>
      <li>Make <code>serde::ser::StdError</code> and
      <code>serde::de::StdError</code> equivalent to
      <code>core::error::Error</code> on Rust 1.81+ (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2818">#2818</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/serde/commit/89c4b02bf32ceae5b17d89f93a452ccc195ca038"><code>89c4b02</code></a>
      Release 1.0.210</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/eeb8e44cda15f929796cd72241b0311e0bd04e67"><code>eeb8e44</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2818">#2818</a>
      from dtolnay/coreerror</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/785c2d9605ee73cc172dfd421228c1dccca984c9"><code>785c2d9</code></a>
      Stabilize no-std StdError trait</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/d549f048e10bcb5e677afaf7b99d0ed3604b113b"><code>d549f04</code></a>
      Reformat parse_ip_impl definition and calls</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/4c0dd63011434905265e2710bb9186e09e4f8ec2"><code>4c0dd63</code></a>
      Delete attr support from core::net deserialization macros</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/26fb1341651c4e0ae4d58c675db3ca2a0d6e12c2"><code>26fb134</code></a>
      Relocate cfg attrs out of parse_ip_impl and parse_socket_impl</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/07e614b52b5ab3387d86d3198e5f52cd1f5ff3cb"><code>07e614b</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2817">#2817</a>
      from dtolnay/corenet</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b1f899fbe81f070803d9f7ca6e5d1cc3f19c9ea2"><code>b1f899f</code></a>
      Delete doc(cfg) attribute from impls that are supported in no-std</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b4f860e62767828beb3ef91721b6c56a31f9baad"><code>b4f860e</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2816">#2816</a>
      from MathiasKoch/chore/core-net</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/d940fe1b4934f097b0333dcb87bec5ee308d39cd"><code>d940fe1</code></a>
      Reuse existing Buf wrapper as replacement for std::io::Write</li>
      <li>Additional commits viewable in <a
      href="https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.210">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde_derive` from 1.0.209 to 1.0.210
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/serde-rs/serde/releases">serde_derive's
      releases</a>.</em></p>
      <blockquote>
      <h2>v1.0.210</h2>
      <ul>
      <li>Support serializing and deserializing <code>IpAddr</code> and
      <code>SocketAddr</code> in no-std mode on Rust 1.77+ (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2816">#2816</a>,
      thanks <a
      href="https://github.com/MathiasKoch"><code>@​MathiasKoch</code></a>)</li>
      <li>Make <code>serde::ser::StdError</code> and
      <code>serde::de::StdError</code> equivalent to
      <code>core::error::Error</code> on Rust 1.81+ (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2818">#2818</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/serde/commit/89c4b02bf32ceae5b17d89f93a452ccc195ca038"><code>89c4b02</code></a>
      Release 1.0.210</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/eeb8e44cda15f929796cd72241b0311e0bd04e67"><code>eeb8e44</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2818">#2818</a>
      from dtolnay/coreerror</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/785c2d9605ee73cc172dfd421228c1dccca984c9"><code>785c2d9</code></a>
      Stabilize no-std StdError trait</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/d549f048e10bcb5e677afaf7b99d0ed3604b113b"><code>d549f04</code></a>
      Reformat parse_ip_impl definition and calls</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/4c0dd63011434905265e2710bb9186e09e4f8ec2"><code>4c0dd63</code></a>
      Delete attr support from core::net deserialization macros</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/26fb1341651c4e0ae4d58c675db3ca2a0d6e12c2"><code>26fb134</code></a>
      Relocate cfg attrs out of parse_ip_impl and parse_socket_impl</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/07e614b52b5ab3387d86d3198e5f52cd1f5ff3cb"><code>07e614b</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2817">#2817</a>
      from dtolnay/corenet</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b1f899fbe81f070803d9f7ca6e5d1cc3f19c9ea2"><code>b1f899f</code></a>
      Delete doc(cfg) attribute from impls that are supported in no-std</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b4f860e62767828beb3ef91721b6c56a31f9baad"><code>b4f860e</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2816">#2816</a>
      from MathiasKoch/chore/core-net</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/d940fe1b4934f097b0333dcb87bec5ee308d39cd"><code>d940fe1</code></a>
      Reuse existing Buf wrapper as replacement for std::io::Write</li>
      <li>Additional commits viewable in <a
      href="https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.210">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde_json` from 1.0.127 to 1.0.128
      <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.128</h2>
      <ul>
      <li>Support serializing maps containing 128-bit integer keys to
      serde_json::Value (<a
      href="https://redirect.github.com/serde-rs/json/issues/1188">#1188</a>,
      thanks <a
      href="https://github.com/Mrreadiness"><code>@​Mrreadiness</code></a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/json/commit/d96b1d9b643b49a0bb92a8cf280daf6aa08f37cc"><code>d96b1d9</code></a>
      Release 1.0.128</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/599228d5dc52a0f1595fe4bd901821f70d0317a5"><code>599228d</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1188">#1188</a>
      from Mrreadiness/feat/add-hashmap-key-128-serializer</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/5416cee6c5ad355907f6e9d5f6039b994c69f768"><code>5416cee</code></a>
      feat: add support for 128 bit HashMap key serialization</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/27a4ca9d7a62394fe8f0103f3d91de59f055a4c4"><code>27a4ca9</code></a>
      Upload CI Cargo.lock for reproducing failures</li>
      <li>See full diff in <a
      href="https://github.com/serde-rs/json/compare/1.0.127...1.0.128">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>
      083f5273
  14. Sep 04, 2024
    • Shawn Tabrizi's avatar
      Create a Basic Proving Trie for the Runtime (#3881) · 1cff666b
      Shawn Tabrizi authored
      
      This PR will introduce a `BasicProvingTrie` type, which makes it easy to
      construct and prove data in a base-16 merkle trie within the runtime.
      
      Data into the merkle trie only require that they implement `Encode` /
      `Decode`.
      
      A FRAME compatible `TrieError` was created and added to `DispatchError`.
      
      Expected usage is to construct the merkle trie with all data offline,
      and then place only the merkle root of that trie on-chain.
      
      Also offchain, a user is given a compact merkle proof of some data they
      want to prove exists on the blockchain.
      
      Then in the runtime, you can call `verify_single_value_proof` or
      `verify_proof` with the root, proof, and the keys and values you want to
      verify exists in the merkle trie.
      
      Closes https://github.com/paritytech/polkadot-sdk/issues/3880
      
      Contributes to #5400
      
      ---------
      
      Co-authored-by: default avatarAnkan <10196091+Ank4n@users.noreply.github.com>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      1cff666b
    • Muharem Ismailov's avatar
      Collective: dynamic deposit based on number of proposals (#3151) · cc3b7bbd
      Muharem Ismailov authored
      
      Introduce a dynamic proposal deposit mechanism influenced by the total
      number of active proposals, with the option to set the deposit to none.
      
      The potential cost (e.g., balance hold) for proposal submission and
      storage is determined by the implementation of the `Consideration`
      trait. The footprint is defined as `proposal_count`, representing the
      total number of active proposals in the system, excluding the one
      currently being proposed. This cost may vary based on the proposal
      count. The pallet also offers various types to define a cost strategy
      based on the number of proposals.
      
      Two new calls are introduced:
      - kill(origin, proposal_hash): the cancellation of a proposal,
      accompanied by the burning of the associated cost/consideration ticket.
      - release_proposal_cost(origin, proposal_hash): the release of the cost
      for a non-active proposal.
      
      Additionally change: 
      - benchmarks have been upgraded to benchmarks::v2 for collective pallet;
      - `ensure_successful` function added to the `Consideration` under
      `runtime-benchmarks` feature.
      
      ---------
      
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarGitHub Action <action@github.com>
      cc3b7bbd
    • bader y's avatar
      Add parachain related parameters to `chain-spec-builder` (#4889) · 89b41c57
      bader y authored
      
      When using with `polkadot-parachain`, you usually need to specify the
      `relay_chain` and `para_id` fields in the chain spec.
      
      With this PR it can be achieved by specifying newly added `--para-id`
      and `--relay-chain` command line args, e.g:
      ```
      chain-spec-builder create -r _runtime.wasm  --para-id 100 --relay-chain xxx default
      ```
      
      This was implemented by simple _json_ blobs merging.
      
      Additionally unit tests covering basic functionality were added.
      
      Also adds a fix for not overwriting the chain spec with the default
      config each time, swallowing not standard fields is also fixed.
      
      Fixes: #4873
      
      ---------
      
      Co-authored-by: default avatarSebastian Kunert <skunert49@gmail.com>
      Co-authored-by: default avatarMichal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
      89b41c57
  15. Sep 03, 2024
    • Iulian Barbu's avatar
      cumulus/client: added external rpc connection retry logic (#5515) · 4d2f7932
      Iulian Barbu authored
      
      # Description
      
      Adds retry logic that makes the RPC relay chain interface more reliable
      for the cases of a collator connecting to external RPC servers.
      
      Closes #5514 
      Closes #4278
      
      Final solution still debated on #5514 , what this PR addresses might
      change (e.g. #4278 might require a more advanced approach).
      
      ## Integration
      
      Users that start collators should barely observe differences based on
      this logic, since the retry logic applies only in case the collators
      fail to connect to the RPC servers. In practice I assume the RPC servers
      are already live before starting collators, and the issue isn't visible.
      
      ## Review Notes
      
      The added retry logic is for retrying the connection to the RPC servers
      (which can be multiple). It is at the level of the
      cumulus/client/relay-chain-rpc-interface module, but more specifically
      relevant to the RPC clients logic (`ClientManager`). The retry logic is
      not configurable, it tries to connect to the RPC client for 5 times,
      with an exponential backoff in between each iteration starting with 1
      second wait time and ending with 16 seconds. The same logic is applied
      in case an existing connection to an RPC is dropped. There is a
      `ReconnectingWebsocketWorker` who ensures there is connectivity to at
      least on RPC node, and the retry logic makes this stronger by insisting
      on trying connections to the RPC servers list for 5 times.
      
      ## Testing
      
      - This was tested manually by starting zombienet natively based on
      [006-rpc_collator_builds_blocks.toml](https://github.com/paritytech/polkadot-sdk/blob/master/cumulus/zombienet/tests/0006-rpc_collator_builds_blocks.toml)
      and observing collators don't fail anymore:
      
      ```bash
      zombienet -l text --dir zbn-run -f --provider native spawn polkadot-sdk/cumulus/zombienet/tests/0006-rpc_collator_builds_blocks.toml
      ```
      
      - Added a unit test that exercises the retry logic for a client
      connection to a server that comes online in 10 seconds. The retry logic
      can wait for as long as 30 seconds, but thought that it is too much for
      a unit test. Just being conscious of CI time if it runs this test, but I
      am happy to see suggestions around it too. I am not that sure either it
      runs in CI, haven't figured it out entirely yet. The test can be
      considered an integration test too, but it exercises crate internal
      implementation, not the public API.
      
      Collators example logs after the change:
      ```
      2024-08-29 14:28:11.730  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=0 index=2 url="ws://127.0.0.1:37427/"
      2024-08-29 14:28:12.737  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=1 index=0 url="ws://127.0.0.1:43617/"
      2024-08-29 14:28:12.739  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=1 index=1 url="ws://127.0.0.1:37965/"
      2024-08-29 14:28:12.755  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=1 index=2 url="ws://127.0.0.1:37427/"
      2024-08-29 14:28:14.758  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=2 index=0 url="ws://127.0.0.1:43617/"
      2024-08-29 14:28:14.759  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=2 index=1 url="ws://127.0.0.1:37965/"
      2024-08-29 14:28:14.760  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=2 index=2 url="ws://127.0.0.1:37427/"
      2024-08-29 14:28:18.766  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=3 index=0 url="ws://127.0.0.1:43617/"
      2024-08-29 14:28:18.768  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=3 index=1 url="ws://127.0.0.1:37965/"
      2024-08-29 14:28:18.768  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=3 index=2 url="ws://127.0.0.1:37427/"
      2024-08-29 14:28:26.770  INFO tokio-runtime-worker reconnecting-websocket-client: [Parachain] Trying to connect to next external relaychain node. current_iteration=4 index=0 url="ws://127.0.0.1:43617/"
      ```
      
      ---------
      
      Signed-off-by: default avatarIulian Barbu <iulian.barbu@parity.io>
      Co-authored-by: default avatarSebastian Kunert <skunert49@gmail.com>
      4d2f7932
  16. Sep 02, 2024
    • PG Herveou's avatar
      [pallet-revive] Use address20 for contract's address (#5548) · 38355073
      PG Herveou authored
      
      Co-authored-by: default avatarAlexander Theißen <alex.theissen@me.com>
      Co-authored-by: command-bot <>
      38355073
    • Andrei Sandu's avatar
      Elastic scaling: introduce new candidate receipt primitive (#5322) · ad2ac0db
      Andrei Sandu authored
      
      closes https://github.com/paritytech/polkadot-sdk/issues/5044
      
      This PR switches the runtime to the new receipts format (vstaging
      primitives). I've implemented `From` to convert from new primitives to
      `v7` primitives and used them in the node runtime api client
      implementation. Until we implement the support in the node, it will
      continue e to use the v7 primitives but the runtime apis already use the
      new primitives.
      
      
      An expected downside of RFC103 is decoding V2 receipts shows garbage
      values if the input is V1:
      
      _![ima_9ce77de](https://github.com/user-attachments/assets/71d80e78-e238-4518-8cd1-548ae0d74b70)_
      
      TODO:
      - [x] fix tests
      - [x] A few more tests for the new primitives
      - [x] PRDoc
      
      ---------
      
      Signed-off-by: default avatarAndrei Sandu <andrei-mihail@parity.io>
      ad2ac0db
    • Branislav Kontur's avatar
      [bridges-v2] Permissionless lanes (#4949) · 22100999
      Branislav Kontur authored
      Relates to:
      https://github.com/paritytech/parity-bridges-common/issues/2451
      Closes: https://github.com/paritytech/parity-bridges-common/issues/2500
      
      ## Summary
      
      Now, the bridging pallet supports only static lanes, which means lanes
      that are hard-coded in the runtime files. This PR fixes that and adds
      support for dynamic, also known as permissionless, lanes. This means
      that allowed origins (relay chain, sibling parachains) can open and
      close bridges (through BridgeHubs) with another bridged (substrate-like)
      consensus using just `xcm::Transact` and `OriginKind::Xcm`.
      
      _This PR is based on the migrated code from the Bridges V2
      [branch](https://github.com/paritytech/polkadot-sdk/pull/4427) from the
      old `parity-bridges-common`
      [repo](https://github.com/paritytech/parity-bridges-common/tree/bridges-v2)._
      
      ## Explanation
      
      Please read
      [bridges/modules/xcm-bridge-hub/src/lib.rs](https://github.com/paritytech/polkadot-sdk/blob/149b0ac2
      
      /bridges/modules/xcm-bridge-hub/src/lib.rs#L17-L136)
      to understand how managing bridges works. The basic concepts around
      `BridgeId` and `LaneId` are also explained there.
      
      
      ## TODO
      
      - [x] search and fix for comment: `// TODO:(bridges-v2) - most of that
      stuff was introduced with free header execution:
      https://github.com/paritytech/polkadot-sdk/pull/4102` - more info in the
      comment
      [bellow](https://github.com/paritytech/polkadot-sdk/pull/4427#issuecomment-2126625043)
      - [x] TODO: there's only one impl of `EnsureOrigin<Success = Location>`
      
      ## TODO - not blocking review
      
      **benchmarking:**
      - [x] regenerate all relevant weights for BH/AH runtimes
      - [ ] regenerate default weights for bridging pallets e.g.
      `modules/messages/src/weights.rs`
      - [ ] add benchmarks for `xcm-bridge-hub` pallet
      https://github.com/paritytech/polkadot-sdk/issues/5550
      
      **testing:**
      - [ ] add xcm-emulator tests for Rococo/Penpal to Westend/Penpal with
      full opening channel and sending/receiving `xcm::Transact`
      
      **migrations:**
      - [x] add migrations for BridgeHubRococo/Westend
      https://github.com/paritytech/parity-bridges-common/issues/2794 (to be
      reusable for P/K bridge)
        - [x] check also storage migration, if needed for pallets
        - [ ] migration for XCM type (optional)
        - [x] migration for static lanes to the dynamic (reuse for fellows)
      
      **investigation:**
      - [ ] revisit
      https://github.com/paritytech/parity-bridges-common/issues/2380
      - [ ] check congestion around `LocalXcmChannelManager` and
      `OutboundLanesCongestedSignals` impls -
      https://github.com/paritytech/polkadot-sdk/issues/5551
        - to be reusable for polkadot-fellows
      - return `report_bridge_status` was remove, so we need to `XcmpQueue`
      alternative?
      
      ---------
      
      Signed-off-by: default avatarBranislav Kontur <bkontur@gmail.com>
      Co-authored-by: default avatarSvyatoslav Nikolsky <svyatonik@gmail.com>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      22100999
    • dependabot[bot]'s avatar
      Bump toml from 0.8.8 to 0.8.12 (#5542) · 7c46b28d
      dependabot[bot] authored
      
      Bumps [toml](https://github.com/toml-rs/toml) from 0.8.8 to 0.8.12.
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/toml-rs/toml/commit/3a777b326b8c91f48c79ea6fc21aabc695f7dc3d"><code>3a777b3</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/toml-rs/toml/commit/79799052128f3ea64316d3acc4c54e63fc6f285c"><code>7979905</code></a>
      docs: Update changelog</li>
      <li><a
      href="https://github.com/toml-rs/toml/commit/487768d8d7c41b12eb7547cab4e964b3dede002b"><code>487768d</code></a>
      Merge pull request <a
      href="https://redirect.github.com/toml-rs/toml/issues/703">#703</a> from
      epage/overflow</li>
      <li><a
      href="https://github.com/toml-rs/toml/commit/6987f77649aacc7a6cc2b9cff0d1f22c260f9643"><code>6987f77</code></a>
      chore(ci): Run with default opt-level</li>
      <li><a
      href="https://github.com/toml-rs/toml/commit/21f545d05ca57560485f24cbf78aaf8478a52c5d"><code>21f545d</code></a>
      fix(parser): Don't stackoverflow on opt-level=0</li>
      <li><a
      href="https://github.com/toml-rs/toml/commit/af1f97dbf5a40740e26eb4f705a0bd744744807b"><code>af1f97d</code></a>
      refactor(parser): Pull recursion limit out to variable</li>
      <li><a
      href="https://github.com/toml-rs/toml/commit/eb865434a251b30ca1a9699b8762a1f5f4670c1c"><code>eb86543</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/toml-rs/toml/commit/246b2920e28919e02a94c0b3eab8e55c7742f5d0"><code>246b292</code></a>
      docs: Update changelog</li>
      <li><a
      href="https://github.com/toml-rs/toml/commit/d41c62ca5d09c50064905f7da04fc103d78ff566"><code>d41c62c</code></a>
      Merge pull request <a
      href="https://redirect.github.com/toml-rs/toml/issues/701">#701</a> from
      epage/cleanup</li>
      <li><a
      href="https://github.com/toml-rs/toml/commit/31457b3aedcddae92549b5fe19c1938d29a73a2d"><code>31457b3</code></a>
      refactor(error): Clean up highlight code</li>
      <li>Additional commits viewable in <a
      href="https://github.com/toml-rs/toml/compare/toml-v0.8.8...toml-v0.8.12">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=toml&package-manager=cargo&previous-version=0.8.8&new-version=0.8.12)](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>
      7c46b28d
    • dependabot[bot]'s avatar
      Bump clap_complete from 4.4.0 to 4.5.13 (#5541) · da11c7e9
      dependabot[bot] authored
      
      Bumps [clap_complete](https://github.com/clap-rs/clap) from 4.4.0 to
      4.5.13.
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/clap-rs/clap/releases">clap_complete's
      releases</a>.</em></p>
      <blockquote>
      <h2>v4.5.13</h2>
      <h2>[4.5.13] - 2024-07-31</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(derive)</em> Improve error message when
      <code>#[flatten]</code>ing an optional <code>#[group(skip)]</code></li>
      <li><em>(help)</em> Properly wrap long subcommand descriptions in
      help</li>
      </ul>
      <h2>v4.5.12</h2>
      <h2>[4.5.12] - 2024-07-31</h2>
      <h2>v4.5.10</h2>
      <h2>[4.5.10] - 2024-07-23</h2>
      <h2>v4.5.9</h2>
      <h2>[4.5.9] - 2024-07-09</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(error)</em> When defining a custom help flag, be sure to
      suggest it like we do the built-in one</li>
      </ul>
      <h2>v4.5.8</h2>
      <h2>[4.5.8] - 2024-06-28</h2>
      <h3>Fixes</h3>
      <ul>
      <li>Reduce extra flushes</li>
      </ul>
      <h2>v4.5.7</h2>
      <h2>[4.5.7] - 2024-06-10</h2>
      <h3>Fixes</h3>
      <ul>
      <li>Clean up error message when too few arguments for
      <code>num_args</code></li>
      </ul>
      <h2>v4.5.6</h2>
      <h2>[4.5.6] - 2024-06-06</h2>
      <h2>v4.5.4</h2>
      <h2>[4.5.4] - 2024-03-25</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(derive)</em> Allow non-literal <code>#[arg(id)]</code>
      attributes again</li>
      </ul>
      <h2>v4.5.3</h2>
      <h2>[4.5.3] - 2024-03-15</h2>
      <h3>Internal</h3>
      <!-- raw HTML omitted -->
      </blockquote>
      <p>... (truncated)</p>
      </details>
      <details>
      <summary>Changelog</summary>
      <p><em>Sourced from <a
      href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap_complete's
      changelog</a>.</em></p>
      <blockquote>
      <h2>[4.5.13] - 2024-07-31</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(derive)</em> Improve error message when
      <code>#[flatten]</code>ing an optional <code>#[group(skip)]</code></li>
      <li><em>(help)</em> Properly wrap long subcommand descriptions in
      help</li>
      </ul>
      <h2>[4.5.12] - 2024-07-31</h2>
      <h2>[4.5.11] - 2024-07-25</h2>
      <h2>[4.5.10] - 2024-07-23</h2>
      <h2>[4.5.9] - 2024-07-09</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(error)</em> When defining a custom help flag, be sure to
      suggest it like we do the built-in one</li>
      </ul>
      <h2>[4.5.8] - 2024-06-28</h2>
      <h3>Fixes</h3>
      <ul>
      <li>Reduce extra flushes</li>
      </ul>
      <h2>[4.5.7] - 2024-06-10</h2>
      <h3>Fixes</h3>
      <ul>
      <li>Clean up error message when too few arguments for
      <code>num_args</code></li>
      </ul>
      <h2>[4.5.6] - 2024-06-06</h2>
      <h2>[4.5.5] - 2024-06-06</h2>
      <h3>Fixes</h3>
      <ul>
      <li>Allow <code>exclusive</code> to override
      <code>required_unless_present</code>,
      <code>required_unless_present_any</code>,
      <code>required_unless_present_all</code></li>
      </ul>
      <h2>[4.5.4] - 2024-03-25</h2>
      <h3>Fixes</h3>
      <ul>
      <li><em>(derive)</em> Allow non-literal <code>#[arg(id)]</code>
      attributes again</li>
      </ul>
      <h2>[4.5.3] - 2024-03-15</h2>
      <h3>Internal</h3>
      <ul>
      <li><em>(derive)</em> Update <code>heck</code></li>
      </ul>
      <!-- raw HTML omitted -->
      </blockquote>
      <p>... (truncated)</p>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/clap-rs/clap/commit/d222ae4cb62d08b4d8f635aa80ddb3c880b82e6e"><code>d222ae4</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/a8abcb40c5f2628bfa671adf61a090a1bbfbcfa2"><code>a8abcb4</code></a>
      docs: Update changelog</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/2690e1bdb19df3e4dde7a50fc33b14a3bf6f0b8a"><code>2690e1b</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5621">#5621</a>
      from shannmu/dynamic_valuehint</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/7fd7b3e40bd835070253432accf4076bb020beda"><code>7fd7b3e</code></a>
      feat(clap_complete): Support to complete custom value of argument</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/fc6aaca52b42d0e4ae13805e7480cbb05f63a0ca"><code>fc6aaca</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5638">#5638</a>
      from epage/cargo</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/631e54bc715ed2fa53d8457dc273a25b92d3b354"><code>631e54b</code></a>
      docs(cookbook): Style cargo plugin</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/6fb49d08bb2acfbc2f2aa5f717ccd4a4018ca872"><code>6fb49d0</code></a>
      Merge pull request <a
      href="https://redirect.github.com/clap-rs/clap/issues/5636">#5636</a>
      from gibfahn/styles_const</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/6f215eee98c4f73099b0ede2ac62ba019ada24ce"><code>6f215ee</code></a>
      refactor(styles): make styles example use a const</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/bbb2e6fdde1c724e39c2f2616332310252c12ab8"><code>bbb2e6f</code></a>
      test: Add test case for completing custom value of argument</li>
      <li><a
      href="https://github.com/clap-rs/clap/commit/999071c46dca0367d93f66ecd97b2e3507963284"><code>999071c</code></a>
      fix: Change <code>visible</code> to <code>hidden</code></li>
      <li>Additional commits viewable in <a
      href="https://github.com/clap-rs/clap/compare/clap_complete-v4.4.0...clap_complete-v4.5.13">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap_complete&package-manager=cargo&previous-version=4.4.0&new-version=4.5.13)](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>
      da11c7e9
    • Bastian Köcher's avatar
      collator-protocol: Handle unknown validator heads (#5538) · f58e2b80
      Bastian Köcher authored
      There is a race condition when a validator sends its heads to the
      collator, but the collator doesn't yet know these heads. Before it is
      aware of these heads by importing the block(s), any collation registered
      on the collator is not announced to the validators. The collations
      aren't advertised, because the collator doesn't know yet that these
      heads of the validator are descendants of the collations relay parent.
      
      The solution is to store these unknown heads of the validators and to
      handle them when the collator updates its own view.
      f58e2b80
    • Francisco Aguirre's avatar
      Swaps for XCM delivery fees (#5131) · 5291412e
      Francisco Aguirre authored
      # Context
      
      Fees can already be paid in other assets locally thanks to the Trader
      implementations we have.
      This doesn't work when sending messages because delivery fees go through
      a different mechanism altogether.
      The idea is to fix this leveraging the `AssetExchanger` config item
      that's able to turn the asset the user wants to pay fees in into the
      asset the router expects for delivery fees.
      
      # Main addition
      
      An adapter was needed to use `pallet-asset-conversion` for exchanging
      assets in XCM.
      This was created in
      https://github.com/paritytech/polkadot-sdk/pull/5130.
      
      The XCM executor was modified to use `AssetExchanger` (when available)
      to swap assets to pay for delivery fees.
      
      ## Limitations
      
      We can only pay for delivery fees in different assets in intermediate
      hops. We can't pay in different assets locally. The first hop will
      always need the native token of the chain (or whatever is specified in
      the `XcmRouter`).
      This is a byproduct of using the `BuyExecution` instruction to know
      which asset should be used for delivery fee payment.
      Since this instruction is not present when executing an XCM locally, we
      are left with this limitation.
      To illustrate this limitation, I'll show two scenarios. All chains
      involved have pools.
      
      ### Scenario 1
      
      Parachain A --> Parachain B
      
      Here, parachain A can use any asset in a pool with its native asset to
      pay for local execution fees.
      However, as of now we can't use those for local delivery fees.
      This means transfers from A to B need some amount of A's native token to
      pay for delivery fees.
      
      ### Scenario 2
      
      Parachain A --> Parachain C --> Parachain B
      
      Here, Parachain C's remote delivery fees can be paid with any asset in a
      pool with its native asset.
      This allows a reserve asset transfer between A and B with C as the
      reserve to only need A's native token at the starting hop.
      After that, it could all be pool assets.
      
      ## Future work
      
      The fact that delivery fees go through a totally different mechanism
      results in a lot of bugs and pain points.
      Unfortunately, this is not so easy to solve in a backwards compatible
      manner.
      Delivery fees will be integrated into the language in future XCM
      versions, following
      https://github.com/polkadot-fellows/xcm-format/pull/53.
      
      Old PR: https://github.com/paritytech/polkadot-sdk/pull/4375.
      5291412e
    • Alexandru Gheorghe's avatar
      [3 / 5] Move crypto checks in the approval-distribution (#4928) · 6b854acc
      Alexandru Gheorghe authored
      
      # Prerequisite 
      This is part of the work to further optimize the approval subsystems, if
      you want to understand the full context start with reading
      https://github.com/paritytech/polkadot-sdk/pull/4849#issue-2364261568,
      
      # Description
      This PR contain changes, so that the crypto checks are performed by the
      approval-distribution subsystem instead of the approval-voting one. The
      benefit for these, is twofold:
      1. Approval-distribution won't have to wait every single time for the
      approval-voting to finish its job, so the work gets to be pipelined
      between approval-distribution and approval-voting.
      
      2. By running in parallel multiple instances of approval-distribution as
      described here
      https://github.com/paritytech/polkadot-sdk/pull/4849#issue-2364261568,
      this significant body of work gets to run in parallel.
      
      ## Changes:
      1. When approval-voting send `ApprovalDistributionMessage::NewBlocks` it
      needs to pass the core_index and candidate_hash of the candidates.
      2. ApprovalDistribution needs to use `RuntimeInfo` to be able to fetch
      the SessionInfo from the runtime.
      3. Move `approval-voting` logic that checks VRF assignment into
      `approval-distribution`
      4. Move `approval-voting` logic that checks vote is correctly signed
      into `approval-distribution`
      5. Plumb `approval-distribution` and `approval-voting` tests to support
      the new logic.
      
      ## Benefits
      Even without parallelisation the gains are significant, for example on
      my machine if we run approval subsystem bench for 500 validators and 100
      cores and trigger all 89 tranches of assignments and approvals, the
      system won't fall behind anymore because of late processing of messages.
      ```
      Before change
      Chain selection approved  after 11500 ms hash=0x0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a
      
      After change
      
      Chain selection approved  after 5500 ms hash=0x0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a
      ```
      
      ## TODO:
      - [x] Run on versi.
      - [x] Update parachain host documentation.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <alexandru.gheorghe@parity.io>
      6b854acc
    • dependabot[bot]'s avatar
      Bump color-eyre from 0.6.2 to 0.6.3 (#5543) · f0b2add1
      dependabot[bot] authored
      
      Bumps [color-eyre](https://github.com/eyre-rs/eyre) from 0.6.2 to 0.6.3.
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/f544fed447df75b1accbc95bc2c26aa8fedc312e"><code>f544fed</code></a>
      chore: Release</li>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/7689b983de53562d678f58a05a6dcfc57d5fae76"><code>7689b98</code></a>
      chore: don't inherit workspace readme</li>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/63cb4122fcff401efcab862ecf6c65509bc9d1c0"><code>63cb412</code></a>
      chore: remove old metadata</li>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/7e7e17319aaf7b42bffd9e9cd4a12cb1c2bc8318"><code>7e7e173</code></a>
      chore: update changelog</li>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/7a5c32acd7a4a6139448b7900a6787f70b5b69fb"><code>7a5c32a</code></a>
      Add color-eyre to workspace (<a
      href="https://redirect.github.com/eyre-rs/eyre/issues/110">#110</a>)</li>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/eb8d059c501fbad8de6c6c8af4745f73083969a3"><code>eb8d059</code></a>
      Merge remote-tracking branch 'origin/master' into color-eyre</li>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/75beaaea3fc85ddab5e9c81570d3c76ea3a21ac8"><code>75beaae</code></a>
      fix: remove <code>anyhow</code> feature flag from <code>OptionExt</code>
      location test (<a
      href="https://redirect.github.com/eyre-rs/eyre/issues/148">#148</a>)</li>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/e57015195082391e00132b4ea4a7ed9fe4536248"><code>e570151</code></a>
      color-spantrace: bump owo-colors to 4.0 (<a
      href="https://redirect.github.com/eyre-rs/eyre/issues/156">#156</a>)</li>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/cb4bab6fd0355461f6eec4241e4db9949d890e73"><code>cb4bab6</code></a>
      chore: update issues redirect</li>
      <li><a
      href="https://github.com/eyre-rs/eyre/commit/8ebc308a0ae54f04a410911d2f9c621c988b766a"><code>8ebc308</code></a>
      fix: make theme test more lenient</li>
      <li>Additional commits viewable in <a
      href="https://github.com/eyre-rs/eyre/compare/v0.6.2...color-eyre-v0.6.3">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      
      [![Dependabot compatibility
      score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=color-eyre&package-manager=cargo&previous-version=0.6.2&new-version=0.6.3)](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>
      f0b2add1
  17. Aug 30, 2024
    • dependabot[bot]'s avatar
      Bump the known_good_semver group across 1 directory with 5 updates (#5460) · ea80adfd
      dependabot[bot] authored
      
      Bumps the known_good_semver group with 4 updates in the / directory:
      [quote](https://github.com/dtolnay/quote),
      [serde](https://github.com/serde-rs/serde),
      [serde_json](https://github.com/serde-rs/json) and
      [syn](https://github.com/dtolnay/syn).
      
      Updates `quote` from 1.0.36 to 1.0.37
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/dtolnay/quote/releases">quote's
      releases</a>.</em></p>
      <blockquote>
      <h2>1.0.37</h2>
      <ul>
      <li>Implement ToTokens for CStr and CString (<a
      href="https://redirect.github.com/dtolnay/quote/issues/283">#283</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/quote/commit/b1ebffa035363a430862e033aa3268e8cb17affa"><code>b1ebffa</code></a>
      Release 1.0.37</li>
      <li><a
      href="https://github.com/dtolnay/quote/commit/43acd77961424b3cb5035688f74d14d556eefe90"><code>43acd77</code></a>
      Delete unneeded use of <code>ref</code></li>
      <li><a
      href="https://github.com/dtolnay/quote/commit/9382c2182ea10f8e0f90d1e5f15ca3f20a777dff"><code>9382c21</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/quote/issues/283">#283</a>
      from dtolnay/cstr</li>
      <li><a
      href="https://github.com/dtolnay/quote/commit/6ac432877bbfe43892677e32af7e3f0e28b6333e"><code>6ac4328</code></a>
      Add C string tests</li>
      <li><a
      href="https://github.com/dtolnay/quote/commit/9fb0591a17893eea81260351c6eb431e1fd83524"><code>9fb0591</code></a>
      Implement ToTokens for CStr and CString</li>
      <li><a
      href="https://github.com/dtolnay/quote/commit/ba7a9d08c9acba8ae97926dcc18822b20441c0fa"><code>ba7a9d0</code></a>
      Organize test imports</li>
      <li><a
      href="https://github.com/dtolnay/quote/commit/aa9970f9838a5b6dd5438c662921470f873e2b3a"><code>aa9970f</code></a>
      Inline the macro that generates primitive impls</li>
      <li><a
      href="https://github.com/dtolnay/quote/commit/ba411091c98c311526774adde73e724448836337"><code>ba41109</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/quote/issues/282">#282</a>
      from dtolnay/tokens</li>
      <li><a
      href="https://github.com/dtolnay/quote/commit/c77340a4c6869690ad7b40069e8ca1cb90e4abb8"><code>c77340a</code></a>
      Consistently use 'tokens' as the name of the &amp;mut TokenStream
      arg</li>
      <li><a
      href="https://github.com/dtolnay/quote/commit/a4a0abf12fa0137eca5aaa74fe88ca6694e78746"><code>a4a0abf</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/quote/issues/281">#281</a>
      from dtolnay/char</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/quote/compare/1.0.36...1.0.37">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde` from 1.0.206 to 1.0.209
      <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.209</h2>
      <ul>
      <li>Fix deserialization of empty structs and empty tuples inside of
      untagged enums (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2805">#2805</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      </ul>
      <h2>v1.0.208</h2>
      <ul>
      <li>Support serializing and deserializing unit structs in a
      <code>flatten</code> field (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2802">#2802</a>,
      thanks <a
      href="https://github.com/jonhoo"><code>@​jonhoo</code></a>)</li>
      </ul>
      <h2>v1.0.207</h2>
      <ul>
      <li>Improve interactions between <code>flatten</code> attribute and
      <code>skip_serializing</code>/<code>skip_deserializing</code> (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2795">#2795</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/serde/commit/30752ac4ffdaa284606eda34055ad185e28c5499"><code>30752ac</code></a>
      Release 1.0.209</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b84e6ca4f5fef69b3de985c586a07b1246f3eb9a"><code>b84e6ca</code></a>
      Improve wording of PR 2805 comments</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/87a2fb0f1a2774ea5bb20c0ed988b9ba57fc8166"><code>87a2fb0</code></a>
      Wrap comments from PR 2805 to 80 columns</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/9eaf7b9824f2082c50d17ad22b786322dc283a61"><code>9eaf7b9</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2805">#2805</a>
      from Mingun/untagged-tests</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/7bde100237875d4f435de5ad90074b0479c37486"><code>7bde100</code></a>
      Replace MapRefDeserializer with value::MapDeserializer</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/da7fc795ee654252effa232a62a5a1e6d4f551ee"><code>da7fc79</code></a>
      Fix deserialization of empty struct variant in untagged enums</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/4c5fec1363d363f995375426f72db11c28f357c1"><code>4c5fec1</code></a>
      Test special cases that reaches SeqRefDeserializer::deserialize_any
      len==0 co...</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/6588b0ad3777f7ad930d68ab4b9ec5b9c25398e0"><code>6588b0a</code></a>
      Cover Content::Seq case in VariantRefDeserializer::struct_variant</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/0093f74cfee5ee3239514a7aad5fb44843eddcdd"><code>0093f74</code></a>
      Split test newtype_enum into four tests for each variant</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/171c6da57af712cfcf01c6c124b14cabfca364ba"><code>171c6da</code></a>
      Complete coverage of
      ContentRefDeserializer::deserialize_newtype_struct</li>
      <li>Additional commits viewable in <a
      href="https://github.com/serde-rs/serde/compare/v1.0.206...v1.0.209">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde_derive` from 1.0.206 to 1.0.209
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/serde-rs/serde/releases">serde_derive's
      releases</a>.</em></p>
      <blockquote>
      <h2>v1.0.209</h2>
      <ul>
      <li>Fix deserialization of empty structs and empty tuples inside of
      untagged enums (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2805">#2805</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      </ul>
      <h2>v1.0.208</h2>
      <ul>
      <li>Support serializing and deserializing unit structs in a
      <code>flatten</code> field (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2802">#2802</a>,
      thanks <a
      href="https://github.com/jonhoo"><code>@​jonhoo</code></a>)</li>
      </ul>
      <h2>v1.0.207</h2>
      <ul>
      <li>Improve interactions between <code>flatten</code> attribute and
      <code>skip_serializing</code>/<code>skip_deserializing</code> (<a
      href="https://redirect.github.com/serde-rs/serde/issues/2795">#2795</a>,
      thanks <a
      href="https://github.com/Mingun"><code>@​Mingun</code></a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/serde/commit/30752ac4ffdaa284606eda34055ad185e28c5499"><code>30752ac</code></a>
      Release 1.0.209</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/b84e6ca4f5fef69b3de985c586a07b1246f3eb9a"><code>b84e6ca</code></a>
      Improve wording of PR 2805 comments</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/87a2fb0f1a2774ea5bb20c0ed988b9ba57fc8166"><code>87a2fb0</code></a>
      Wrap comments from PR 2805 to 80 columns</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/9eaf7b9824f2082c50d17ad22b786322dc283a61"><code>9eaf7b9</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/serde/issues/2805">#2805</a>
      from Mingun/untagged-tests</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/7bde100237875d4f435de5ad90074b0479c37486"><code>7bde100</code></a>
      Replace MapRefDeserializer with value::MapDeserializer</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/da7fc795ee654252effa232a62a5a1e6d4f551ee"><code>da7fc79</code></a>
      Fix deserialization of empty struct variant in untagged enums</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/4c5fec1363d363f995375426f72db11c28f357c1"><code>4c5fec1</code></a>
      Test special cases that reaches SeqRefDeserializer::deserialize_any
      len==0 co...</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/6588b0ad3777f7ad930d68ab4b9ec5b9c25398e0"><code>6588b0a</code></a>
      Cover Content::Seq case in VariantRefDeserializer::struct_variant</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/0093f74cfee5ee3239514a7aad5fb44843eddcdd"><code>0093f74</code></a>
      Split test newtype_enum into four tests for each variant</li>
      <li><a
      href="https://github.com/serde-rs/serde/commit/171c6da57af712cfcf01c6c124b14cabfca364ba"><code>171c6da</code></a>
      Complete coverage of
      ContentRefDeserializer::deserialize_newtype_struct</li>
      <li>Additional commits viewable in <a
      href="https://github.com/serde-rs/serde/compare/v1.0.206...v1.0.209">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `serde_json` from 1.0.124 to 1.0.127
      <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.127</h2>
      <ul>
      <li>Add more removal methods to OccupiedEntry (<a
      href="https://redirect.github.com/serde-rs/json/issues/1179">#1179</a>,
      thanks <a
      href="https://github.com/GREsau"><code>@​GREsau</code></a>)</li>
      </ul>
      <h2>1.0.126</h2>
      <ul>
      <li>Improve string parsing on targets that use 32-bit pointers but also
      have fast 64-bit integer arithmetic, such as
      aarch64-unknown-linux-gnu_ilp32 and x86_64-unknown-linux-gnux32 (<a
      href="https://redirect.github.com/serde-rs/json/issues/1182">#1182</a>,
      thanks <a href="https://github.com/CryZe"><code>@​CryZe</code></a>)</li>
      </ul>
      <h2>1.0.125</h2>
      <ul>
      <li>Speed up \uXXXX parsing and improve handling of unpaired surrogates
      when deserializing to bytes (<a
      href="https://redirect.github.com/serde-rs/json/issues/1172">#1172</a>,
      <a
      href="https://redirect.github.com/serde-rs/json/issues/1175">#1175</a>,
      thanks <a
      href="https://github.com/purplesyringa"><code>@​purplesyringa</code></a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/serde-rs/json/commit/5ebf65cc480f90714c94f82099ca9161d80cbb10"><code>5ebf65c</code></a>
      Release 1.0.127</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/f287a3b1a93ecb1a11cee31cb638bd9523a58add"><code>f287a3b</code></a>
      Merge pull request 1179 from GREsau/patch-1</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/ec980b02774abbff12fd3e26b0a1582eb14dcef7"><code>ec980b0</code></a>
      Release 1.0.126</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/e6282b0c479947805a33c7f167b1d19dd4c7ad4f"><code>e6282b0</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1184">#1184</a>
      from serde-rs/fastarithmetic</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/ffc4a43453029cdc5603cfe3ef08414488fd45de"><code>ffc4a43</code></a>
      Improve cfg names for fast arithmetic</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/4b1048d0ecc4d326d6657531689513f182a4f850"><code>4b1048d</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1183">#1183</a>
      from serde-rs/arithmetic</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/f268173a9fb1f5f8a80f47af62b564525cf33764"><code>f268173</code></a>
      Unify chunk size choice between float and string parsing</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/fec03769743c3f0ceb6b5b56d91321fdc856dff2"><code>fec0376</code></a>
      Merge pull request <a
      href="https://redirect.github.com/serde-rs/json/issues/1182">#1182</a>
      from CryZe/chunk-64bit</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/3d837e1cc4a0f1df56ba6645c3b6d144768b5d9d"><code>3d837e1</code></a>
      Ensure the SWAR chunks are 64-bit in more cases</li>
      <li><a
      href="https://github.com/serde-rs/json/commit/11fc61c7af7b59ea80fb2ef7d78db94465dfbd54"><code>11fc61c</code></a>
      Add <code>OccupiedEntry::shift_remove()</code> and
      <code>swap_remove()</code></li>
      <li>Additional commits viewable in <a
      href="https://github.com/serde-rs/json/compare/v1.0.124...1.0.127">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `syn` from 2.0.61 to 2.0.65
      <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.65</h2>
      <ul>
      <li>Optimize the implementation of <code>Fold</code> to compile faster
      (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1666">#1666</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1667">#1667</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1668">#1668</a>)</li>
      </ul>
      <h2>2.0.64</h2>
      <ul>
      <li>Support using ParseBuffer across <code>catch_unwind</code> (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1646">#1646</a>)</li>
      <li>Validate that the expression in a let-else ends in brace as required
      by rustc (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1648">#1648</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1649">#1649</a>)</li>
      <li>Legalize invalid const generic arguments by wrapping in braces (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1654">#1654</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1655">#1655</a>)</li>
      <li>Fix some expression precedence edge cases involving
      <code>break</code> and <code>return</code> in loop headers (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1656">#1656</a>)</li>
      <li>Always print closure bodies with a brace when the closure has an
      explicit return type (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1658">#1658</a>)</li>
      <li>Automatically insert necessary parentheses in ToTokens for Expr when
      required by expression precedence (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1659">#1659</a>)</li>
      <li>Support struct literal syntax in match guard expressions (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1662">#1662</a>)</li>
      </ul>
      <h2>2.0.63</h2>
      <ul>
      <li>Parse and print long if-else-if chains without reliance on deep
      recursion to avoid overflowing stack (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1644">#1644</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1645">#1645</a>)</li>
      </ul>
      <h2>2.0.62</h2>
      <ul>
      <li>Reject invalid unparenthesized range and comparison operator
      expressions (<a
      href="https://redirect.github.com/dtolnay/syn/issues/1642">#1642</a>, <a
      href="https://redirect.github.com/dtolnay/syn/issues/1643">#1643</a>)</li>
      </ul>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/dtolnay/syn/commit/9f2371eefa6f681b53e4d74458d86dd41673227f"><code>9f2371e</code></a>
      Release 2.0.65</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/4cd181325f3488c47866f15966977682be610da1"><code>4cd1813</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1668">#1668</a>
      from dtolnay/foldhelper</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/ed54092bcea6798ab0b5ed7aca6755f8918fc79e"><code>ed54092</code></a>
      Eliminate gen::helper module</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/eacc8ab1b98b590df3ce9462510fd755cddf6762"><code>eacc8ab</code></a>
      Eliminate FoldHelper trait</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/6e20bb8d7799d0f4c34c144e80b3bd1b6e9afd27"><code>6e20bb8</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1667">#1667</a>
      from dtolnay/punctuatedfold</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/9d95cab6d332d08903538d5ce3d6e47c1598912e"><code>9d95cab</code></a>
      Optimize punctuated::fold</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/82ffe86c2b721b9985edb6f368e7366bd202bc5b"><code>82ffe86</code></a>
      Move Punctuated fold helper to punctuated module</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/3dfacc1538f655d33c5c8037b14669149bcd81cd"><code>3dfacc1</code></a>
      Ignore manual_map clippy lint</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/7273aa77aa09ee2562b279a5d9495a212d9c0876"><code>7273aa7</code></a>
      Merge pull request <a
      href="https://redirect.github.com/dtolnay/syn/issues/1666">#1666</a>
      from dtolnay/foldhelper</li>
      <li><a
      href="https://github.com/dtolnay/syn/commit/8124c0eb99e11cae036d2c967f91f0c456c50368"><code>8124c0e</code></a>
      Generate fewer monomorphizations in Fold</li>
      <li>Additional commits viewable in <a
      href="https://github.com/dtolnay/syn/compare/2.0.61...2.0.65">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>
      ea80adfd