Skip to content
Snippets Groups Projects
  1. Aug 28, 2024
    • A Ahmad's avatar
      IBP Coretime Polkadot bootnodes (#5499) · ef3a0d8f
      A Ahmad authored
      ✄
      -----------------------------------------------------------------------------
      
      Thank you for your Pull Request! :pray:
      
       Please make sure it follows the
      contribution guidelines outlined in [this
      
      document](https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md)
      and fill out the
      sections below. Once you're ready to submit your PR for review, please
      delete this section and leave only the text under
      the "Description" heading.
      
      # Description
      
      *A concise description of what your PR is doing, and what potential
      issue it is solving. Use [Github semantic
      
      linking](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)
      to link the PR to an issue that must be closed once this is merged.*
      
      ## Integration
      
      *In depth notes about how this PR should be integrated by downstream
      projects. This part is mandatory, and should be
      reviewed by reviewers, if the PR does NOT have the `R0-Silent` label. In
      case of a `R0-Silent`, it can be ignored.*
      
      ## Review Notes
      
      *In depth notes about the **implementation** details of your PR. This
      should be the main guide for reviewers to
      understand your approach and effectively review it. If too long, use
      
      [`<details>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details)*.
      
      *Imagine that someone who is depending on the old code wants to
      integrate your new code and the only information that
      they get is this section. It helps to include example usage and default
      value here, with a `diff` code-block to show
      possibly integration.*
      
      *Include your leftover TODOs, if any, here.*
      
      # Checklist
      
      * [ ] My PR includes a detailed description as outlined in the
      "Description" and its two subsections above.
      * [ ] My PR follows the [labeling requirements](
      
      https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md#Process
      ) of this project (at minimum one label for `T` required)
      * External contributors: ask maintainers to put the right label on your
      PR.
      * [ ] I have made corresponding changes to the documentation (if
      applicable)
      * [ ] I have added tests that prove my fix is effective or that my
      feature works (if applicable)
      
      You can remove the "Checklist" section once all have been checked. Thank
      you for your contribution!
      
      ✄
      -----------------------------------------------------------------------------
      
      Co-authored-by: default avatarDónal Murray <donal.murray@parity.io>
      ef3a0d8f
  2. Aug 26, 2024
  3. Aug 23, 2024
    • Branislav Kontur's avatar
      [bridges] Prune messages from confirmation tx body, not from the on_idle (#5006) · e4ffba6e
      Branislav Kontur authored
      
      (Please, do not merge until SA, reverted and restored of
      https://github.com/paritytech/polkadot-sdk/pull/4944)
      
      Original PR with more context:
      https://github.com/paritytech/parity-bridges-common/pull/2211
      Relates to:
      https://github.com/paritytech/parity-bridges-common/issues/2210
      
      ## TODO
      
      - [x] fresh weighs for `pallet_bridge_messages`
      - [x] add `try_state` for `pallet_bridge_messages` which checks for
      unpruned messages - relates to the
      [comment](https://github.com/paritytech/parity-bridges-common/pull/2211#issuecomment-1643224831)
      - [x] ~prepare migration, that prunes leftovers, which would be pruned
      eventually from `on_idle` the
      [comment](https://github.com/paritytech/parity-bridges-common/pull/2211#issuecomment-1643224831)~
      can be done also by `set_storage` / `kill_storage` or with
      `OnRuntimeUpgrade` implementatino when `do_try_state_for_outbound_lanes`
      detects problem.
      
      ## Open question
      
      - [ ] Do we really need `oldest_unpruned_nonce` afterwards?
      - after the runtime upgrade and when `do_try_state_for_outbound_lanes`
      pass, we won't need any migrations here
          - we won't even need `do_try_state_for_outbound_lanes`
      - please check comments bellow:
      https://github.com/paritytech/polkadot-sdk/pull/4944#discussion_r1666737961
      
      ---------
      
      Signed-off-by: default avatarBranislav Kontur <bkontur@gmail.com>
      Co-authored-by: default avatarSerban Iorga <serban@parity.io>
      Co-authored-by: default avatarSvyatoslav Nikolsky <svyatonik@gmail.com>
      Co-authored-by: command-bot <>
      e4ffba6e
  4. Aug 22, 2024
    • Dónal Murray's avatar
      Add the Polkadot Coretime chain-spec (#5436) · dce789dd
      Dónal Murray authored
      Add the Polkadot Coretime chain-spec to the directory with the other
      system chain-specs.
      
      This is the chain-spec used at genesis and for which the genesis head
      data was generated.
      
      It is also included in the assets for fellowship [release
      v1.3.0](https://github.com/polkadot-fellows/runtimes/releases/tag/v1.3.0)
      dce789dd
  5. Aug 15, 2024
  6. Aug 14, 2024
    • Adrian Catangiu's avatar
      [tests] dedup test code, add more tests, improve naming and docs (#5338) · e4f8a6de
      Adrian Catangiu authored
      This is mostly tests cleanup:
      - uses helper macro for generating teleport tests,
      - adds missing treasury tests,
      - improves naming and docs for transfer tests.
      
      - [x] does not need a PRDOC
      
      ---------
      
      Co-authored-by: command-bot <>
      e4f8a6de
    • Francisco Aguirre's avatar
      Migrate foreign assets v3::Location to v4::Location (#4129) · be74fe92
      Francisco Aguirre authored
      
      In the move from XCMv3 to XCMv4, the `AssetId` for `ForeignAssets` in
      `asset-hub-rococo` and `asset-hub-westend` was left as `v3::Location` to
      be later migrated to `v4::Location`.
      
      This is that migration PR.
      
      Because the encoding of `v3::Location` and `v4::Location` is the same,
      we don't need to do any data migration, the keys will still be
      decodable.
      The [original idea by
      Jan](https://github.com/paritytech/polkadot/pull/7236) was to make the
      v4 changes in v3 since the ABI (the encoding/decoding) didn't change.
      Corroborated the ABI is the same iterating over all storage, the code is
      on [another
      branch](https://github.com/paritytech/polkadot-sdk/blob/cisco-assert-v3-v4-encodings-equal/cumulus/parachains/runtimes/assets/migrations/src/foreign_assets_to_v4/mod.rs).
      
      We will need a data migration when we want to update from `v4::Location`
      to `v5::Location` because of [the accepted RFC changing the NetworkId
      enum](https://github.com/polkadot-fellows/RFCs/pull/108).
      I'll configure MBMs (Multi-Block Migrations) then and make the actual
      migration.
      
      Fixes https://github.com/paritytech/polkadot-sdk/issues/4128
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: command-bot <>
      be74fe92
  7. Aug 12, 2024
  8. Aug 09, 2024
  9. Aug 07, 2024
  10. Aug 05, 2024
    • Sergej Sakac's avatar
      Coretime auto-renew (#4424) · f170af61
      Sergej Sakac authored
      
      This PR adds functionality that allows tasks to enable auto-renewal.
      Each task eligible for renewal can enable auto-renewal.
      
      A new storage value is added to track all the cores with auto-renewal
      enabled and the associated task running on the core. The `BoundedVec` is
      sorted by `CoreIndex` to make disabling auto-renewal more efficient.
      
      Cores are renewed at the start of a new bulk sale. If auto-renewal
      fails(e.g. due to the sovereign account of the task not holding
      sufficient balance), an event will be emitted, and the renewal will
      continue for the other cores.
      
      The two added extrinsics are:
      - `enable_auto_renew`: Extrinsic for enabling auto renewal.
      - `disable_auto_renew`: Extrinsic for disabling auto renewal.
      
      TODOs:
      - [x] Write benchmarks for the newly added extrinsics.
      
      Closes: #4351
      
      ---------
      
      Co-authored-by: default avatarDónal Murray <donalm@seadanda.dev>
      f170af61
  11. Jul 30, 2024
  12. Jul 29, 2024
  13. Jul 26, 2024
    • Kian Paimani's avatar
      Replace homepage in all TOML files (#5118) · d3d1542c
      Kian Paimani authored
      A bit of a controversial move, but a good preparation for even further
      reducing the traffic on outdated content of `substrate.io`. Current
      status:
      
      <img width="728" alt="Screenshot 2024-07-15 at 11 32 48"
      src="https://github.com/user-attachments/assets/df33b164-0ce7-4ac4-bc97-a64485f12571">
      
      Previously, I was in favor of changing the domain of the rust-docs to
      something like `polkadot-sdk.parity.io` or similar, but I think the
      current format is pretty standard and has a higher chance of staying put
      over the course of time:
      
      `<org-name>.github.io/<repo-name>` ->
      `https://paritytech.github.io/polkadot-sdk/`
      
      part of https://github.com/paritytech/eng-automation/issues/10
      d3d1542c
    • Sergej Sakac's avatar
      Fix region nonfungible implementation (#5067) · c39cc333
      Sergej Sakac authored
      
      The problem with the current implementation is that minting will cause
      the region coremask to be set to `Coremask::complete` regardless of the
      actual coremask.
      
      This PR fixes that.
      
      More details about the nonfungible implementation can be found here:
      https://github.com/paritytech/polkadot-sdk/pull/3455
      
      ---------
      
      Co-authored-by: default avatarDónal Murray <donalm@seadanda.dev>
      Co-authored-by: default avatarBranislav Kontur <bkontur@gmail.com>
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      c39cc333
    • Joseph Zhao's avatar
      Backport xcmpayment-fee tests from polkadot-fellows repo (#5100) · 7eb946c7
      Joseph Zhao authored
      # Description
      This is continue of the work to backport
      `emulated-integration-tests-common`, if you want to understand the full
      context start with reading
      [#4930](https://github.com/paritytech/polkadot-sdk/pull/4930)
      7eb946c7
  14. Jul 25, 2024
    • Dónal Murray's avatar
      Add people polkadot genesis chainspec (#5124) · d6f7f495
      Dónal Murray authored
      Published as part of the fellowship
      [v1.2.6](https://github.com/polkadot-fellows/runtimes/releases/tag/v1.2.6)
      release and originally intentionally left out of the repo as the
      hardcoded system chains will soon be removed from the
      `polkadot-parachain`.
      
      After a conversation in
      https://github.com/paritytech/polkadot-sdk/issues/5112 it was pointed
      out by @josepot that there should be a single authoritative source for
      these chainspecs. Since this is already the place for these it will
      serve until something more fitting can be worked out.
      d6f7f495
    • Branislav Kontur's avatar
      Bridges improved tests and nits (#5128) · de6733ba
      Branislav Kontur authored
      
      This PR adds `exporter_is_compatible_with_pallet_xcm_bridge_hub_router`,
      which ensures that our `pallet_xcm_bridge_hub` and
      `pallet_xcm_bridge_hub_router` are compatible when handling
      `ExportMessage`. Other changes are just small nits and cosmetics which
      makes others stuff easier.
      
      ---------
      
      Co-authored-by: default avatarSvyatoslav Nikolsky <svyatonik@gmail.com>
      de6733ba
  15. Jul 24, 2024
    • Muharem Ismailov's avatar
      Tx Payment: drop ED requirements for tx payments with exchangeable asset (#4488) · 5878ea27
      Muharem Ismailov authored
      Drop the Existential Deposit (ED) requirement for the asset amount
      exchangeable for the fee asset (eg. DOT/KSM) during transaction
      payments.
      
      This achieved by using `SwapCredit` implementation of swap, which works
      with imbalances and does not require a temporary balance account within
      the transaction payment.
      
      ### Problem
      Currently, every swap during transaction payment, processed with asset
      `A` for native asset, must be for an amount greater than the ED of a
      native asset if the user lacks a native asset account. Since fees are
      typically smaller, the current implementation necessitates additional
      swaps to meet the ED during `pre_dispatch`, with refunds for excess ED
      swap occurring during `post_dispatch`. Further details can be found
      [here](https://github.com/paritytech/polkadot-sdk/blob/115c2477/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/payment.rs#L115).
      
      This setup p...
      5878ea27
  16. Jul 23, 2024
    • polka.dom's avatar
      Remove pallet::getter macro from pallet-identity (#4586) · 9974a68c
      polka.dom authored
      
      As per #3326, removes pallet::getter macro usage from the
      pallet-identity. The syntax `StorageItem::<T, I>::get()` should be used
      instead.
      
      Also makes all storage values public
      
      cc @muraca
      
      ---------
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: command-bot <>
      9974a68c
    • Muharem Ismailov's avatar
      Make `on_unbalanceds` work with `fungibles` `imbalances` (#4564) · 6d0926e2
      Muharem Ismailov authored
      Make `on_unbalanceds` work with `fungibles` `imbalances`.
      
      The `fungibles` `imbalances` cannot be handled by the default
      implementation of `on_unbalanceds` from the `OnUnbalanced` trait. This
      is because the `fungibles` `imbalances` types do not implement the
      `Imbalance` trait (and cannot with its current semantics). The
      `on_unbalanceds` function requires only the `merge` function for the
      imbalance type. In this PR, we provide the `TryMerge` trait, which can
      be implemented by all imbalance types and make `OnUnbalanced` require it
      instead `Imbalance`.
      
      ### Migration for `OnUnbalanced` trait implementations:
      In case if you have a custom implementation of `on_unbalanceds` trait
      function, remove it's `<B>` type argument.
      
      ### Migration for custom imbalance types:
      If you have your own imbalance types implementations, implement the
      `TryMerge` trait for it introduced with this update.
              
      The applicability of the `on_unbalanceds` function to fungibles
      imbalances is useful in cases like -
      [link](https://github.com/paritytech/polkadot-sdk/blob/3a8e675e
      
      /substrate/frame/transaction-payment/asset-conversion-tx-payment/src/payment.rs#L267)
      from https://github.com/paritytech/polkadot-sdk/pull/4488.
      
      ---------
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      6d0926e2
  17. Jul 19, 2024
    • Joseph Zhao's avatar
      Backport claim assets tests from polkadot-fellows repo (#4930) · d16af0b8
      Joseph Zhao authored
      
      # Issue
      [Backport integration tests for claim assets to the polkadot-sdk from
      polkadot-fellows repo
      #4892](https://github.com/paritytech/polkadot-sdk/issues/4892)
      # Description
      For the first time to contribute this project, I just finished part and
      make sure everything is ok.
      - [x] backport [claim_assets test
      case](https://github.com/polkadot-fellows/runtimes/blob/main/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/claim_assets.rs)
      to the polkadot-sdk testnet integration tests
      - [x] backport macro
      [test_chain_can_claim_assets](https://github.com/polkadot-fellows/runtimes/blob/main/integration-tests/emulated/helpers/src/lib.rs#L218)
      from fellows repo
      - [ ] when merged to polkadot-sdk and released, make sure that it is
      propagated to the fellows repo:
      https://github.com/polkadot-fellows/runtimes/issues/363
      - [x] backport and align other macros/test-cases from
      https://github.com/polkadot-fellows/runtimes/blob/8ec28f96eeb30fbba30d29006d75e1a3fa1cea1c/integration-tests/emulated/helpers/src/lib.rs#L31-L33
      
      ---------
      
      Co-authored-by: default avatarZihan Zhao <josephzhao@Zihans-MacBook-Pro-3.local>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      d16af0b8
    • Özgün Özerk's avatar
      relax `XcmFeeToAccount` trait bound on `AccountId` (#4959) · f8f70b37
      Özgün Özerk authored
      Fixes #4960 
      
      Configuring `FeeManager` enforces the boundary `Into<[u8; 32]>` for the
      `AccountId` type.
      
      Here is how it works currently: 
      
      Configuration:
      ```rust
          type FeeManager = XcmFeeManagerFromComponents<
              IsChildSystemParachain<primitives::Id>,
              XcmFeeToAccount<Self::AssetTransactor, AccountId, TreasuryAccount>,
          >;
      ```
      
      `XcmToFeeAccount` struct:
      ```rust
      /// A `HandleFee` implementation that simply deposits the fees into a specific on-chain
      /// `ReceiverAccount`.
      ///
      /// It reuses the `AssetTransactor` configured on the XCM executor to deposit fee assets. If
      /// the `AssetTransactor` returns an error while calling `deposit_asset`, then a warning will be
      /// logged and the fee burned.
      pub struct XcmFeeToAccount<AssetTransactor, AccountId, ReceiverAccount>(
      	PhantomData<(AssetTransactor, AccountId, ReceiverAccount)>,
      );
      
      impl<
      		AssetTransactor: TransactAsset,
      		AccountId: Clone + Into<[u8; 32]>,
      		ReceiverAccount: Get<AccountId>,
      	> HandleFee for XcmFeeToAccount<AssetTransactor, AccountId, ReceiverAccount>
      {
      	fn handle_fee(fee: Assets, context: Option<&XcmContext>, _reason: FeeReason) -> Assets {
      		deposit_or_burn_fee::<AssetTransactor, _>(fee, context, ReceiverAccount::get());
      
      		Assets::new()
      	}
      }
      ```
      
      `deposit_or_burn_fee()` function:
      ```rust
      /// Try to deposit the given fee in the specified account.
      /// Burns the fee in case of a failure.
      pub fn deposit_or_burn_fee<AssetTransactor: TransactAsset, AccountId: Clone + Into<[u8; 32]>>(
      	fee: Assets,
      	context: Option<&XcmContext>,
      	receiver: AccountId,
      ) {
      	let dest = AccountId32 { network: None, id: receiver.into() }.into();
      	for asset in fee.into_inner() {
      		if let Err(e) = AssetTransactor::deposit_asset(&asset, &dest, context) {
      			log::trace!(
      				target: "xcm::fees",
      				"`AssetTransactor::deposit_asset` returned error: {:?}. Burning fee: {:?}. \
      				They might be burned.",
      				e, asset,
      			);
      		}
      	}
      }
      ```
      
      ---
      
      In order to use **another** `AccountId` type (for example, 20 byte
      addresses for compatibility with Ethereum or Bitcoin), one has to
      duplicate the code as the following (roughly changing every `32` to
      `20`):
      ```rust
      /// A `HandleFee` implementation that simply deposits the fees into a specific on-chain
      /// `ReceiverAccount`.
      ///
      /// It reuses the `AssetTransactor` configured on the XCM executor to deposit fee assets. If
      /// the `AssetTransactor` returns an error while calling `deposit_asset`, then a warning will be
      /// logged and the fee burned.
      pub struct XcmFeeToAccount<AssetTransactor, AccountId, ReceiverAccount>(
          PhantomData<(AssetTransactor, AccountId, ReceiverAccount)>,
      );
      impl<
              AssetTransactor: TransactAsset,
              AccountId: Clone + Into<[u8; 20]>,
              ReceiverAccount: Get<AccountId>,
          > HandleFee for XcmFeeToAccount<AssetTransactor, AccountId, ReceiverAccount>
      {
          fn handle_fee(fee: XcmAssets, context: Option<&XcmContext>, _reason: FeeReason) -> XcmAssets {
              deposit_or_burn_fee::<AssetTransactor, _>(fee, context, ReceiverAccount::get());
      
              XcmAssets::new()
          }
      }
      
      pub fn deposit_or_burn_fee<AssetTransactor: TransactAsset, AccountId: Clone + Into<[u8; 20]>>(
          fee: XcmAssets,
          context: Option<&XcmContext>,
          receiver: AccountId,
      ) {
          let dest = AccountKey20 { network: None, key: receiver.into() }.into();
          for asset in fee.into_inner() {
              if let Err(e) = AssetTransactor::deposit_asset(&asset, &dest, context) {
                  log::trace!(
                      target: "xcm::fees",
                      "`AssetTransactor::deposit_asset` returned error: {:?}. Burning fee: {:?}. \
                      They might be burned.",
                      e, asset,
                  );
              }
          }
      }
      ```
      
      ---
      
      This results in code duplication, which can be avoided simply by
      relaxing the trait enforced by `XcmFeeToAccount`.
      
      In this PR, I propose to introduce a new trait called `IntoLocation` to
      be able to express both `Into<[u8; 32]>` and `Into<[u8; 20]>` should be
      accepted (and every other `AccountId` type as long as they implement
      this trait).
      
      Currently, `deposit_or_burn_fee()` function converts the `receiver:
      AccountId` to a location. I think converting an account to `Location`
      should not be the responsibility of `deposit_or_burn_fee()` function.
      
      This trait also decouples the conversion of `AccountId` to `Location`,
      from `deposit_or_burn_fee()` function. And exposes `IntoLocation` trait.
      Thus, allowing everyone to come up with their `AccountId` type and make
      it compatible for configuring `FeeManager`.
      
      ---
      
      Note 1: if there is a better file/location to put `IntoLocation`, I'm
      all ears
      
      Note 2: making `deposit_or_burn_fee` or `XcmToFeeAccount` generic was
      not possible from what I understood, due to Rust currently do not
      support a way to express the generic should implement either `trait A`
      or `trait B` (since the compiler cannot guarantee they won't overlap).
      In this case, they are `Into<[u8; 32]>` and `Into<[u8; 20]>`.
      See [this](https://github.com/rust-lang/rust/issues/20400) and
      [this](https://github.com/rust-lang/rfcs/pull/1672#issuecomment-262152934).
      
      Note 3: I should also submit a PR to `frontier` that implements
      `IntoLocation` for `AccountId20` if this PR gets accepted.
      
      
      ### Summary 
      this new trait:
      - decouples the conversion of `AccountId` to `Location`, from
      `deposit_or_burn_fee()` function
      - makes `XcmFeeToAccount` accept every possible `AccountId` type as long
      as they they implement `IntoLocation`
      - backwards compatible
      - keeps the API simple and clean while making it less restrictive
      
      
      @franciscoaguirre and @gupnik
      
       are already aware of the issue, so tagging
      them here for visibility.
      
      ---------
      
      Co-authored-by: default avatarFrancisco Aguirre <franciscoaguirreperez@gmail.com>
      Co-authored-by: default avatarBranislav Kontur <bkontur@gmail.com>
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
      Co-authored-by: command-bot <>
      f8f70b37
  18. Jul 17, 2024
  19. Jul 16, 2024
  20. Jul 15, 2024
  21. Jul 12, 2024
    • Branislav Kontur's avatar
      Bridges V2 refactoring backport and `pallet_bridge_messages` simplifications (#4935) · 1f8e4483
      Branislav Kontur authored
      ## Summary
      
      This PR contains 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).
      Even though the PR looks large, it does not (or should not) contain any
      significant changes (also not relevant for audit).
      This PR is a requirement for permissionless lanes, as they were
      implemented on top of these changes.
      
      ## TODO
      
      - [x] generate fresh weights for BridgeHubs
      - [x] run `polkadot-fellows` bridges zombienet tests with actual runtime
      1.2.5. or 1.2.6 to check compatibility
      - :ballot_box_with_check: working, checked with 1.2.8 fellows BridgeHubs
      - [x] run `polkadot-sdk` bridges zombienet tests
        - :ballot_box_with_check:
      
       with old relayer in CI (1.6.5) 
      - [x] run `polkadot-sdk` bridges zombienet tests (locally) - with the
      relayer based on this branch -
      https://github.com/paritytech/parity-bridges-common/pull/3022
      - [x] check/fix relayer companion in bridges repo -
      https://github.com/paritytech/parity-bridges-common/pull/3022
      - [x] extract pruning stuff to separate PR
      https://github.com/paritytech/polkadot-sdk/pull/4944
      
      Relates to:
      https://github.com/paritytech/parity-bridges-common/issues/2976
      Relates to:
      https://github.com/paritytech/parity-bridges-common/issues/2451
      
      ---------
      
      Signed-off-by: default avatarBranislav Kontur <bkontur@gmail.com>
      Co-authored-by: default avatarSerban Iorga <serban@parity.io>
      Co-authored-by: default avatarSvyatoslav Nikolsky <svyatonik@gmail.com>
      Co-authored-by: command-bot <>
      1f8e4483
  22. Jul 08, 2024
  23. Jul 03, 2024
  24. Jun 28, 2024
  25. Jun 27, 2024
  26. Jun 26, 2024
  27. Jun 24, 2024