Skip to content
  1. Nov 17, 2023
    • Davide Galassi's avatar
      Bump bandersnatch VRF revision (#2389) · 1d1c3719
      Davide Galassi authored
      Closes https://github.com/paritytech/polkadot-sdk/issues/2327
      
      cc @burdges
      1d1c3719
    • Nazar Mokrynskyi's avatar
      Do not panic if the `fdlimit` call to increase the file descriptor limit fails (#2155) · 079b14f6
      Nazar Mokrynskyi authored
      
      
      # Description
      
      Sometimes changing file descriptor limits is not allowed, but there is
      no need to crash the node if/when this happens. Since `fdlimit`'s author
      decided to use panics instead of returning `Result`, we need to catch
      it.
      
      # Checklist
      
      - [x] My PR includes a detailed description as outlined in the
      "Description" section above
      - [ ] My PR follows the [labeling requirements](CONTRIBUTING.md#Process)
      of this project (at minimum one label for `T`
        required)
      - [ ] I have made corresponding changes to the documentation (if
      applicable)
      - [ ] I have added tests that prove my fix is effective or that my
      feature works (if applicable)
      
      ---------
      
      Co-authored-by: default avatarKoute <[email protected]>
      079b14f6
    • Michal Kucharczyk's avatar
      crypto: `lazy_static` removed, light parser for address URI added (#2250) · 5007e2dd
      Michal Kucharczyk authored
      
      
      The `lazy_static` package does not work well in `no-std`: it requires
      `spin_no_std` feature, which also will propagate into `std` if enabled.
      This is not what we want.
      
      This PR provides simple address uri parser which allows to get rid of
      _regex_ which was used to parse the address uri, what in turns allows to
      remove lazy_static.
      
      Three regular expressions
      (`SS58_REGEX`,`SECRET_PHRASE_REGEX`,`JUNCTION_REGEX`) were replaced with
      the parser which unifies all of them.
      
      The new parser does not support Unicode, it is ASCII only.
      
      Related to: #2044
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarKoute <[email protected]>
      Co-authored-by: command-bot <>
      5007e2dd
    • Serban Iorga's avatar
      Beefy: small fixes (#2378) · 3ab2bc9f
      Serban Iorga authored
      Related to #2285
      
      - save the state of the BEEFY gadget after processing a finality proof.
      We need this in order to avoid skipping blocks.
      - avoid reprocessing the old state when not necessary
      3ab2bc9f
    • Ankan's avatar
      [NPoS] Check if staker is exposed in paged exposure storage entries (#2369) · 2e001de9
      Ankan authored
      Addresses a bug caused by
      https://github.com/paritytech/polkadot-sdk/pull/1189. The changes are
      still not released yet, so would like to push the fix soon so it can go
      together with the release of the above PR.
      
      `fast_unstake` checks if a staker is exposed in an era. However, this fn
      is still returning whether the staker is exposed based on the old
      storage item. This PR fixes that by looking in both old and new exposure
      storages.
      
      Also adds some integrity tests for paged exposures.
      2e001de9
    • cuteolaf's avatar
      fix typo (#2377) · b85c64aa
      cuteolaf authored
      b85c64aa
    • Bruno Galvao's avatar
      add pallet nomination-pools versioned migration to kitchensink (#2167) · 596088a2
      Bruno Galvao authored
      The versioned migrations are already there in pallet nomination-pools:
      
      https://github.com/paritytech/polkadot-sdk/blob/f6ee4781/substrate/frame/nomination-pools/src/migration.rs#L27-L48
      
      Just updating the kitchensink runtime to point to them.
      
      This is also nice because it points the dev to an example of how to use
      `VersionedMigration`.
      596088a2
  2. Nov 15, 2023
    • Bastian Köcher's avatar
      frame-system: Add `last_runtime_upgrade_spec_version` (#2351) · ea4085ab
      Bastian Köcher authored
      
      
      Adds a function for querying the last runtime upgrade spec version. This
      can be useful for when writing runtime level migrations to ensure that
      they are not executed multiple times. An example would be a session key
      migration.
      
      ---------
      
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      ea4085ab
    • joe petrowski's avatar
      Identity Deposits Relay to Parachain Migration (#1814) · c79b234b
      joe petrowski authored
      The goal of this PR is to migrate Identity deposits from the Relay Chain
      to a system parachain.
      
      The problem I want to solve is that `IdentityOf` and `SubsOf` both store
      an amount that's held in reserve as a storage deposit. When migrating to
      a parachain, we can take a snapshot of the actual `IdentityInfo` and
      sub-account mappings, but should migrate (off chain) the `deposit`s to
      zero, since the chain (and by extension, accounts) won't have any funds
      at genesis.
      
      The good news is that we expect parachain deposits to be significantly
      lower (possibly 100x) on the parachain. That is, a deposit of 21 DOT on
      the Relay Chain would need 0.21 DOT on a parachain. This PR proposes to
      migrate the deposits in the following way:
      
      1. Introduces a new pallet with two extrinsics: 
      - `reap_identity`: Has a configurable `ReapOrigin`, which would be set
      to `EnsureSigned` on the Relay Chain (i.e. callable by anyone) and
      `EnsureRoot` on the parachain (we don't want identities reaped from
      there).
      - `poke_deposit`: Checks what deposit the pallet holds (at genesis,
      zero) and attempts to update the amount based on the calculated deposit
      for storage data.
      2. `reap_identity` clears all storage data for a `target` account and
      unreserves their deposit.
      3. A `ReapIdentityHandler` teleports the necessary DOT to the parachain
      and calls `poke_deposit`. Since the parachain deposit is much lower, and
      was just unreserved, we know we have enough.
      
      One awkwardness I ran into was that the XCMv3 instruction set does not
      provide a way for the system to teleport assets without a fee being
      deducted on reception. Users shouldn't have to pay a fee for the system
      to migrate their info to a more efficient location. So I wrote my own
      program and did the `InitiateTeleport` accounting on my own to send a
      program with `UnpaidExecution`. Have discussed an
      `InitiateUnpaidTeleport` instruction with @franciscoaguirre
      
       . Obviously
      any chain executing this would have to pass a `Barrier` for free
      execution.
      
      TODO:
      
      - [x] Confirm People Chain ParaId
      - [x] Confirm People Chain deposit rates (determined in
      https://github.com/paritytech/polkadot-sdk/pull/2281)
      - [x] Add pallet to Westend
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      c79b234b
    • Dmitry Markin's avatar
      Unify `ChainSync` actions under one enum (follow-up) (#2317) · 18165ebb
      Dmitry Markin authored
      
      
      Get rid of public `ChainSync::..._requests()` functions and return all
      requests as actions.
      
      ---------
      
      Co-authored-by: default avatarSebastian Kunert <[email protected]>
      18165ebb
  3. Nov 14, 2023
    • PG Herveou's avatar
      Contracts expose pallet-xcm (#1248) · f517900a
      PG Herveou authored
      
      
      This PR introduces:
      - XCM  host functions `xcm_send`, `xcm_execute`
      - An Xcm trait into the config. that proxy these functions to to
      `pallet_xcm`, or disable their usage by using `()`.
      - A mock_network and xcm_test files to test the newly added xcm-related
      functions.
      
      ---------
      
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      Co-authored-by: default avatarSasha Gryaznov <[email protected]>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarFrancisco Aguirre <[email protected]>
      Co-authored-by: default avatarAlexander Theißen <[email protected]>
      f517900a
    • Alexandru Vasile's avatar
      chainHead/tests: Fix clippy (#2325) · 3a87390b
      Alexandru Vasile authored
      
      
      Remove the genesis hash from tests:
      - Clippy was passing on the PR:
      https://github.com/paritytech/polkadot-sdk/pull/2296
      - Clippy fails on master:
      https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/4328487
      
      This was a race with merging:
      https://github.com/paritytech/polkadot-sdk/pull/2295, which introduced
      another test that used the `CHAIN_GENESIS`
      
      Signed-off-by: default avatarAlexandru Vasile <[email protected]>
      3a87390b
    • Alexandru Vasile's avatar
      chainHead: Remove `chainHead_genesis` method (#2296) · cd38ccff
      Alexandru Vasile authored
      
      
      The method has been removed from the spec
      (https://github.com/paritytech/json-rpc-interface-spec/tree/main/src),
      this PR keeps the `chainHead` in sync with that change.
      
      @paritytech/subxt-team
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <[email protected]>
      cd38ccff
    • Alexandru Vasile's avatar
      chainHead: Support multiple hashes for `chainHead_unpin` method (#2295) · cfe5e626
      Alexandru Vasile authored
      
      
      This PR adds support for multiple hashes being passed to the
      `chainHeda_unpin` parameters.
      
      The `hash` parameter is renamed to `hash_or_hashes` per
      https://github.com/paritytech/json-rpc-interface-spec/pull/111.
      
      While at it, a new integration test is added to check the unpinning of
      multiple hashes. The API is checked against a hash or a vector of
      hashes.
      
      cc @paritytech/subxt-team
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <[email protected]>
      cfe5e626
    • Hugo Trentesaux's avatar
      Add details in `--dev` cli flag documentation (#2305) · a393cfcb
      Hugo Trentesaux authored
      add details in `--dev` flag to tell that it disables local peer
      discovery
      
      ### Context
      
      When adding automated end-to-end tests, we replaced `--dev` by 
      
      ```
      `--chain=dev`, `--force-authoring`, `--rpc-cors=all`, `--alice`, and `--tmp` flags
      ```
      
      as stated in the command line documentation. But the tests started
      failing due to the nodes connecting to each other.
      
      ### Fix
      
      This PR includes additional command line documentation to explain more
      in detail what `--dev` flag inludes.
      a393cfcb
    • drskalman's avatar
      Fix `ecdsa_bls` verify in BEEFY primitives (#2066) · b371c357
      drskalman authored
      
      
      BEEFY ECDSA signatures are on keccak has of the messages. As such we can
      not simply call
      
      `EcdsaBlsPair::verify(signature.as_inner_ref(), msg,
      self.as_inner_ref())`
      
      because that invokes ecdsa default verification which perfoms blake2
      hash which we don't want.
      
      This bring up the second issue makes: This makes `sign` and `verify`
      function in `pair_crypto` useless, at least for BEEFY use case.
      Moreover, there is no obvious clean way to generate the signature given
      that pair_crypto does not exposes `sign_prehashed`. You could in theory
      query the keystore for the pair (could you?), invoke `to_raw` and
      re-generate each sub-pair and sign using each. But that sounds extremely
      anticlimactic and will be frow upon by auditors . So I appreciate any
      alternative suggestion.
      
      ---------
      
      Co-authored-by: default avatarDavide Galassi <[email protected]>
      Co-authored-by: default avatarRobert Hambrock <[email protected]>
      b371c357
  4. Nov 13, 2023
    • Assem's avatar
      f332d688
    • gupnik's avatar
      Adds syntax for marking calls feeless (#1926) · 60c77a2e
      gupnik authored
      
      
      Fixes https://github.com/paritytech/polkadot-sdk/issues/1725
      
      This PR adds the following changes:
      1. An attribute `pallet::feeless_if` that can be optionally attached to
      a call like so:
      ```rust
      #[pallet::feeless_if(|_origin: &OriginFor<T>, something: &u32| -> bool {
      	*something == 0
      })]
      pub fn do_something(origin: OriginFor<T>, something: u32) -> DispatchResult {
           ....
      }
      ```
      The closure passed accepts references to arguments as specified in the
      call fn. It returns a boolean that denotes the conditions required for
      this call to be "feeless".
      
      2. A signed extension `SkipCheckIfFeeless<T: SignedExtension>` that
      wraps a transaction payment processor such as
      `pallet_transaction_payment::ChargeTransactionPayment`. It checks for
      all calls annotated with `pallet::feeless_if` to see if the conditions
      are met. If so, the wrapped signed extension is not called, essentially
      making the call feeless.
      
      In order to use this, you can simply replace your existing signed
      extension that manages transaction payment like so:
      ```diff
      - pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
      + pallet_skip_feeless_payment::SkipCheckIfFeeless<
      +	Runtime,
      +	pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
      + >,
      ```
      
      ### Todo
      - [x] Tests
      - [x] Docs
      - [x] Prdoc
      
      ---------
      
      Co-authored-by: Nikhil Gupta <>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarFrancisco Aguirre <[email protected]>
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      60c77a2e
    • Bastian Köcher's avatar
      pallet-grandpa: Remove `GRANDPA_AUTHORITIES_KEY` (#2181) · ebcf0a0f
      Bastian Köcher authored
      
      
      Remove the `GRANDPA_AUTHORITIES_KEY` key and its usage. Apparently this
      was used in the early days to communicate the grandpa authorities to the
      node. However, we have now a runtime api that does this for us. So, this
      pull request is moving from the custom managed storage item to a FRAME
      managed storage item.
      
      This pr also includes a migration for doing the switch on a running
      chain.
      
      ---------
      
      Co-authored-by: default avatarDavide Galassi <[email protected]>
      ebcf0a0f
    • Bastian Köcher's avatar
      wasm-builder: Optimize `rerun-if-changed` logic (#2282) · 604704a8
      Bastian Köcher authored
      Optimizes the `rerun-if-changed` logic by ignoring `dev-dependencies`
      and also not outputting paths. Because outputting paths could lead to
      include unwanted crates in the rerun checks.
      604704a8
    • Dmitry Markin's avatar
      Unify `ChainSync` actions under one enum (#2180) · 951bcceb
      Dmitry Markin authored
      All `ChainSync` actions that `SyncingEngine` should perform are unified
      under one `ChainSyncAction`. Processing of these actions put into a
      single place after `select!` in `SyncingEngine::run` instead of multiple
      places where calling `ChainSync` methods.
      951bcceb
  5. Nov 11, 2023
  6. Nov 10, 2023
  7. Nov 09, 2023
    • Bastian Köcher's avatar
      sc-state-db: Keep track of `LAST_PRUNED` after warp syncing (#2228) · b0d0fb31
      Bastian Köcher authored
      When warp syncing we import the target block with all its state.
      However, we didn't store the `LAST_PRUNED` block which would then lead
      to `pruning` to forget about the imported block after a restart of the
      node. We just set `LAST_PRUNED` to the parent block of the warp sync
      target block to fix this issue.
      b0d0fb31
    • Lulu's avatar
      Don't publish frame and deps (#2260) · e8029a77
      Lulu authored
      e8029a77
    • Oliver Tale-Yazdi's avatar
      Add descriptions to all published crates (#2029) · 48ea86f0
      Oliver Tale-Yazdi authored
      
      
      Missing descriptions (47):  
      
      - [x] `cumulus/client/collator/Cargo.toml`
      - [x] `cumulus/client/relay-chain-inprocess-interface/Cargo.toml`
      - [x] `cumulus/client/cli/Cargo.toml`
      - [x] `cumulus/client/service/Cargo.toml`
      - [x] `cumulus/client/relay-chain-rpc-interface/Cargo.toml`
      - [x] `cumulus/client/relay-chain-interface/Cargo.toml`
      - [x] `cumulus/client/relay-chain-minimal-node/Cargo.toml`
      - [x] `cumulus/parachains/pallets/parachain-info/Cargo.toml`
      - [x] `cumulus/parachains/pallets/ping/Cargo.toml`
      - [x] `cumulus/primitives/utility/Cargo.toml`
      - [x] `cumulus/primitives/aura/Cargo.toml`
      - [x] `cumulus/primitives/core/Cargo.toml`
      - [x] `cumulus/primitives/parachain-inherent/Cargo.toml`
      - [x] `cumulus/test/relay-sproof-builder/Cargo.toml`
      - [x] `cumulus/pallets/xcmp-queue/Cargo.toml`
      - [x] `cumulus/pallets/dmp-queue/Cargo.toml`
      - [x] `cumulus/pallets/xcm/Cargo.toml`
      - [x] `polkadot/erasure-coding/Cargo.toml`
      - [x] `polkadot/statement-table/Cargo.toml`
      - [x] `polkadot/primitives/Cargo.toml`
      - [x] `polkadot/rpc/Cargo.toml`
      - [x] `polkadot/node/service/Cargo.toml`
      - [x] `polkadot/node/core/parachains-inherent/Cargo.toml`
      - [x] `polkadot/node/core/approval-voting/Cargo.toml`
      - [x] `polkadot/node/core/dispute-coordinator/Cargo.toml`
      - [x] `polkadot/node/core/av-store/Cargo.toml`
      - [x] `polkadot/node/core/chain-api/Cargo.toml`
      - [x] `polkadot/node/core/prospective-parachains/Cargo.toml`
      - [x] `polkadot/node/core/backing/Cargo.toml`
      - [x] `polkadot/node/core/provisioner/Cargo.toml`
      - [x] `polkadot/node/core/runtime-api/Cargo.toml`
      - [x] `polkadot/node/core/bitfield-signing/Cargo.toml`
      - [x] `polkadot/node/network/dispute-distribution/Cargo.toml`
      - [x] `polkadot/node/network/bridge/Cargo.toml`
      - [x] `polkadot/node/network/collator-protocol/Cargo.toml`
      - [x] `polkadot/node/network/approval-distribution/Cargo.toml`
      - [x] `polkadot/node/network/availability-distribution/Cargo.toml`
      - [x] `polkadot/node/network/bitfield-distribution/Cargo.toml`
      - [x] `polkadot/node/network/gossip-support/Cargo.toml`
      - [x] `polkadot/node/network/availability-recovery/Cargo.toml`
      - [x] `polkadot/node/collation-generation/Cargo.toml`
      - [x] `polkadot/node/overseer/Cargo.toml`
      - [x] `polkadot/runtime/parachains/Cargo.toml`
      - [x] `polkadot/runtime/common/slot_range_helper/Cargo.toml`
      - [x] `polkadot/runtime/metrics/Cargo.toml`
      - [x] `polkadot/xcm/pallet-xcm-benchmarks/Cargo.toml`
      - [x] `polkadot/utils/generate-bags/Cargo.toml`
      - [x]  `substrate/bin/minimal/runtime/Cargo.toml`
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      Signed-off-by: default avataralindima <[email protected]>
      Co-authored-by: default avatarordian <[email protected]>
      Co-authored-by: default avatarTsvetomir Dimitrov <[email protected]>
      Co-authored-by: default avatarMarcin S <[email protected]>
      Co-authored-by: default avataralindima <[email protected]>
      Co-authored-by: default avatarSebastian Kunert <[email protected]>
      Co-authored-by: default avatarDmitry Markin <[email protected]>
      Co-authored-by: default avatarjoe petrowski <[email protected]>
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      48ea86f0
  8. Nov 08, 2023
  9. Nov 07, 2023
    • Bill Laboon's avatar
      Fix "slashaed" typo (#2205) · 44c7a5eb
      Bill Laboon authored
      # Description
      
      This merely fixes a typo in the documentation, replacing the typo
      "slashaed" with "slashed". Since external entities use the comments for
      explanations of events, this will then be shown externally. I noticed
      this when reviewing [this
      event](https://polkadot.subscan.io/extrinsic/0xb6bc1e3abde0c2ed9c500c74cfc64cdb8179e5d9af97f4bf53242ce4cdd15a1d?event=18064194-6)
      on Subscan.
      
      This is not related to any other issues or PRs.
      44c7a5eb
    • vuittont60's avatar
      docs: fix typos (#2193) · 4caa3d8d
      vuittont60 authored
      4caa3d8d
    • Liam Aharon's avatar
      Initialise on-chain `StorageVersion` for pallets added after genesis (#1297) · c4211b65
      Liam Aharon authored
      
      
      Original PR https://github.com/paritytech/substrate/pull/14641
      
      ---
      
      Closes https://github.com/paritytech/polkadot-sdk/issues/109
      
      ### Problem
      Quoting from the above issue:
      
      > When adding a pallet to chain after genesis we currently don't set the
      StorageVersion. So, when calling on_chain_storage_version it returns 0
      while the pallet is maybe already at storage version 9 when it was added
      to the chain. This could lead to issues when running migrations.
      
      ### Solution
      
      - Create a new trait `BeforeAllRuntimeMigrations` with a single method
      `fn before_all_runtime_migrations() -> Weight` trait with a noop default
      implementation
      - Modify `Executive` to call
      `BeforeAllRuntimeMigrations::before_all_runtime_migrations` for all
      pallets before running any other hooks
      - Implement `BeforeAllRuntimeMigrations` in the pallet proc macro to
      initialize the on-chain version to the current pallet version if the
      pallet has no storage set (indicating it has been recently added to the
      runtime and needs to have its version initialised).
      
      ### Other changes in this PR
      
      - Abstracted repeated boilerplate to access the `pallet_name` in the
      pallet expand proc macro.
      
      ### FAQ
      
      #### Why create a new hook instead of adding this logic to the pallet
      `pre_upgrade`?
      
      `Executive` currently runs `COnRuntimeUpgrade` (custom migrations)
      before `AllPalletsWithSystem` migrations. We need versions to be
      initialized before the `COnRuntimeUpgrade` migrations are run, because
      `COnRuntimeUpgrade` migrations may use the on-chain version for critical
      logic. e.g. `VersionedRuntimeUpgrade` uses it to decide whether or not
      to execute.
      
      We cannot reorder `COnRuntimeUpgrade` and `AllPalletsWithSystem` so
      `AllPalletsWithSystem` runs first, because `AllPalletsWithSystem` have
      some logic in their `post_upgrade` hooks to verify that the on-chain
      version and current pallet version match. A common use case of
      `COnRuntimeUpgrade` migrations is to perform a migration which will
      result in the versions matching, so if they were reordered these
      `post_upgrade` checks would fail.
      
      #### Why init the on-chain version for pallets without a current storage
      version?
      
      We must init the on-chain version for pallets even if they don't have a
      defined storage version so if there is a future version bump, the
      on-chain version is not automatically set to that new version without a
      proper migration.
      
      e.g. bad scenario:
      
      1. A pallet with no 'current version' is added to the runtime
      2. Later, the pallet is upgraded with the 'current version' getting set
      to 1 and a migration is added to Executive Migrations to migrate the
      storage from 0 to 1
          a. Runtime upgrade occurs
          b. `before_all` hook initializes the on-chain version to 1
      c. `on_runtime_upgrade` of the migration executes, and sees the on-chain
      version is already 1 therefore think storage is already migrated and
      does not execute the storage migration
      Now, on-chain version is 1 but storage is still at version 0.
      
      By always initializing the on-chain version when the pallet is added to
      the runtime we avoid that scenario.
      
      ---------
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      c4211b65
  10. Nov 06, 2023
    • Piet's avatar
      TryDecodeEntireState check for storage types and pallets (#1805) · 32a97408
      Piet authored
      ### This PR is a port of this [PR for
      substrate](https://github.com/paritytech/substrate/pull/13013) by
      @Kianenigma
      
      
      
      Add infrastructure needed to have a Pallet::decode_entire_state(), which
      makes sure all "typed" storage items defined in the pallet are
      decode-able.
      
      This is not enforced in any way at the moment. Teams who wish to
      integrate/use this in the try-runtime feature flag should add
      frame_support::storage::migration::EnsureStateDecodes as the LAST ITEM
      of the runtime's custom migrations, and pass it to frame-executive. This
      will make it usable in try-runtime on-runtime-upgrade.
      
      This now catches cases like
      https://github.com/paritytech/polkadot-sdk/pull/1969:
      ```pre
      ERROR runtime::executive] failed to decode the value at key: Failed to decode value at key: 0x94eadf0156a8ad5156507773d0471e4ab8ebad86f546c7e0b135a4212aace339. Storage info StorageInfo { pallet_name: Ok("ParaScheduler"), storage_name: Ok("AvailabilityCores"), prefix: Err(Utf8Error { valid_up_to: 0, error_len: Some(1) }), max_values: Some(1), max_size: None }. Raw value: Some("0x0c010101010101")
      ```
      
      ... or:
      
      ![image](https://github.com/paritytech/polkadot-sdk/assets/10380170/73052d4f-4da5-4b21-a8dd-b17004e5965e)
      
      Closes #241
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarLiam Aharon <[email protected]>
      32a97408
    • Richard Melkonian's avatar
      rename benchmark (#2173) · 4ac9c4a3
      Richard Melkonian authored
      A quick fix where a benchmark test was wrongly renamed in this PR
      https://github.com/paritytech/polkadot-sdk/pull/1868
      4ac9c4a3
    • Richard Melkonian's avatar
      Add force remove vesting (#1982) · 318e5969
      Richard Melkonian authored
      
      
      This PR exposes a `force_remove_vesting` through a ROOT call. 
      See linked
      [issue](https://github.com/paritytech/polkadot-sdk/issues/269)
      
      ---------
      
      Co-authored-by: default avatargeorgepisaltu <[email protected]>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarDónal Murray <[email protected]>
      318e5969
    • Michal Kucharczyk's avatar
      `serde_json`: bumped to 1.0.108 (#2168) · 305aefc4
      Michal Kucharczyk authored
      This PR updates the version of `serde_json` to `1.0.108` throughout the
      codebase.
      305aefc4
    • Dmitry Markin's avatar
      Get rid of `NetworkService` in `ChainSync` (#2143) · 7b06e634
      Dmitry Markin authored
      Move peer banning from `ChainSync` to `SyncingEngine`.
      7b06e634