Skip to content
Snippets Groups Projects
  1. Oct 03, 2024
    • Maksym H's avatar
      Re-establish pallet_revive weights baseline (#5845) · 72309bd8
      Maksym H authored
      - update baseline for pallet_revive
      - update cmd pipeline name
      - Fix compilation after renaming some of benchmarks in pallet_revive.
      [Runtime Dev]. Changed the "instr" benchmark so that it should no longer
      return to little weight. It is still bogus but at least benchmarking
      should not work. (by @athei
      
       )
      
      ---------
      
      Co-authored-by: default avatarGitHub Action <action@github.com>
      Co-authored-by: default avatarAlexander Theißen <alex.theissen@me.com>
      Co-authored-by: default avatarAlexander Samusev <41779041+alvicsam@users.noreply.github.com>
      Co-authored-by: command-bot <>
    • Niklas Adolfsson's avatar
      rpc v2: backpressure chainHead_v1_storage (#5741) · 33131634
      Niklas Adolfsson authored
      Close https://github.com/paritytech/polkadot-sdk/issues/5589
      
      This PR makes it possible for `rpc_v2::Storage::query_iter_paginated` to
      be "backpressured" which is achieved by having a channel where the
      result is sent back and when this channel is "full" we pause the
      iteration.
      
      The chainHead_follow has an internal channel which doesn't represent the
      actual connection and that is set to a very small number (16). Recall
      that the JSON-RPC server has a dedicate buffer for each connection by
      default of 64.
      
      #### Notes
      
      - Because `archive_storage` also depends on
      `rpc_v2::Storage::query_iter_paginated` I had to tweak the method to
      support limits as well. The reason is that archive_storage won't get
      backpressured properly because it's not an subscription. (it would much
      easier if it would be a subscription in rpc v2 spec because nothing
      against querying huge amount storage keys)
      - `query_iter_paginated` doesn't necessarily return the storage "in
      order" such as
      - ...
    • Javier Viola's avatar
      bump zombienet version `v1.3.112` (#5916) · 00f7104c
      Javier Viola authored
      Bump `zombienet` version, including fixes (`ci`) and the latest version
      of `pjs` embedded.
      Thx!
  2. Oct 02, 2024
  3. Oct 01, 2024
    • Serban Iorga's avatar
      Beefy equivocation: check all the MMR roots (#5857) · 3de2a925
      Serban Iorga authored
      
      Normally, the BEEFY protocol only accepts a single MMR Root entry in a
      commitment's payload. But to be extra careful, when validating
      equivocation reports, let's check all the MMR roots, if there are more.
      
      ---------
      
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
    • Andrei Eres's avatar
      Remove ValidateFromChainState (#5707) · 1617852a
      Andrei Eres authored
      # Description
      
      This PR removes the
      `CandidateValidationMessage::ValidateFromChainState`, which was
      previously used by backing, but is no longer relevant since initial
      async backing implementation
      https://github.com/paritytech/polkadot/pull/5557.
      
      Fixes https://github.com/paritytech/polkadot-sdk/issues/5643
      
      ## Integration
      
      This change should not affect downstream projects since
      `ValidateFromChainState` was already unused.
      
      ## Review Notes
      
      - Removed all occurrences of `ValidateFromChainState`.
      - Moved utility functions, previously used in candidate validation tests
      and malus, exclusively to candidate validation tests as they are no
      longer used in malus.
      - Deleted the
      `polkadot_parachain_candidate_validation_validate_from_chain_state`
      metric from Prometheus.
      - Removed `Spawner` from `ReplaceValidationResult` in malus’
      interceptors.
      - `fake_validation_error` was only used for `ValidateFromChainState`
      handling, while other cases directly used
      `InvalidCandidate::Invalid...
  4. Sep 30, 2024
  5. Sep 29, 2024
    • Shawn Tabrizi's avatar
      Improve APIs for Tries in Runtime (#5756) · 05b5fb2b
      Shawn Tabrizi authored
      
      This is a refactor and improvement from:
      https://github.com/paritytech/polkadot-sdk/pull/3881
      
      - `sp_runtime::proving_trie` now exposes a `BasicProvingTrie` for both
      `base2` and `base16`.
      - APIs for `base16` are more focused on single value proofs, also
      aligning their APIs with the `base2` trie
      - A `ProvingTrie` trait is included which wraps both the `base2` and
      `base16` trie, and exposes all APIs needed for an end to end scenario.
      - A `ProofToHashes` trait is exposed which can allow us to write proper
      benchmarks for the merkle trie.
      
      ---------
      
      Co-authored-by: default avatarAnkan <10196091+Ank4n@users.noreply.github.com>
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
  6. Sep 28, 2024
    • Facundo Farall's avatar
      Clarify firing of `import_notification_stream` in doc comment (#5811) · df12fd34
      Facundo Farall authored
      
      # Description
      
      Updates the doc comment on the `import_notification_stream` to make its
      behaviour clearer.
      
      Closes [Unexpected behaviour of block
      `import_notification_stream`](https://github.com/paritytech/polkadot-sdk/issues/5596).
      
      ## Integration
      
      Doesn't apply.
      
      ## Review Notes
      
      The old comment docs caused some confusion to myself and some members of
      my team, on when this notification stream is triggered. This is
      reflected in the linked
      [issue](https://github.com/paritytech/polkadot-sdk/issues/5596), and as
      discussed there, this PR aims to prevent this confusion in future devs
      looking to make use of this functionality.
      
      # Checklist
      
      * [x] 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.
      * [x] I have made corresponding changes to the documentation (if
      applicable)
      * [x] 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 avatarMichal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
    • Maksym H's avatar
      Update runtimes-matrix.json (#5829) · 0a569963
      Maksym H authored
      
      Just a tiny config fix
      
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
    • Iulian Barbu's avatar
      substrate/utils: enable wasm builder diagnostics propagation (#5838) · 58ade7a6
      Iulian Barbu authored
      # Description
      
      `substrate-wasm-builder` can be a build dependency for crates which
      develop FRAME runtimes. I had a tough time seeing errors happening in
      such crates (e.g. runtimes from the `templates` directory) in my IDE. I
      use a combination of rust-analyzer + nvim-lsp + nvim-lspconfig +
      rustacean.vim and all of this stack is not able to correctly parse
      errors emitted during the `build` phase.
      
      As a matter of fact there is also a cargo issue tracking specifically
      this issue where cargo doesn't propagate the `--message-format` type to
      the build phase: [here](https://github.com/rust-lang/cargo/issues/14246)
      initially and then
      [here](https://github.com/rust-lang/cargo/issues/8283). It feels like a
      solution for this use case isn't very close, so if it comes to runtimes
      development (both as an SDK user and developer), enabling wasm builder
      to emit diagnostics messages friendly to IDEs would be useful for
      regular workflows where IDEs are used...
  7. Sep 27, 2024
  8. Sep 26, 2024
    • Alexander Samusev's avatar
      [ci] Update CI image with rust 1.81.0 and 2024-09-11 (#5676) · 6c3219eb
      Alexander Samusev authored
      
      cc https://github.com/paritytech/ci_cd/issues/1035
      
      cc https://github.com/paritytech/ci_cd/issues/1023
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarMaksym H <1177472+mordamax@users.noreply.github.com>
      Co-authored-by: default avatargui <gui.thiolliere@gmail.com>
      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: default avatarggwpez <ggwpez@users.noreply.github.com>
    • Javier Viola's avatar
      bump zombienet version `v1.3.110` (#5834) · 17243e03
      Javier Viola authored
      Bump `zombienet` version to prevent report fails at teardown phase.
    • Alexander Samusev's avatar
      [ci] Disable cargo-hfuzz, disable cargo-doc (#5843) · 7626a9d6
      Alexander Samusev authored
      Changes in PR:
      - disabled cargo-hfuzz until [the
      issue](https://github.com/paritytech/polkadot-sdk/issues/5812) is fixed.
      - enabled condition to skip jobs when no rust files are changed
    • Alexandru Gheorghe's avatar
      [5 / 5] Introduce approval-voting-parallel (#4849) · b16237ad
      Alexandru Gheorghe authored
      This is the implementation of the approach described here:
      https://github.com/paritytech/polkadot-sdk/issues/1617#issuecomment-2150321612
      &
      https://github.com/paritytech/polkadot-sdk/issues/1617#issuecomment-2154357547
      &
      https://github.com/paritytech/polkadot-sdk/issues/1617#issuecomment-2154721395.
      
      ## Description of changes
      
      The end goal is to have an architecture where we have single
      subsystem(`approval-voting-parallel`) and multiple worker types that
      would full-fill the work that currently is fulfilled by the
      `approval-distribution` and `approval-voting` subsystems. The main loop
      of the new subsystem would do just the distribution of work to the
      workers.
      
      The new subsystem will have:
      - N approval-distribution workers: This would do the work that is
      currently being done by the approval-distribution subsystem and in
      addition to that will also perform the crypto-checks that an assignment
      is valid and that a vote is correctly signed. Work is assigned via the
      following formula: `worker_index = msg.validator % WORKER_COUNT`, this
      guarantees that all assignments and approvals from the same validator
      reach the same worker.
      - 1 approval-voting worker: This would receive an already valid message
      and do everything the approval-voting currently does, except the
      crypto-checking that has been moved already to the approval-distribution
      worker.
      
      On the hot path of processing messages **no** synchronisation and
      waiting is needed between approval-distribution and approval-voting
      workers.
      
      <img width="1431" alt="Screenshot 2024-06-07 at 11 28 08"
      src="https://github.com/paritytech/polkadot-sdk/assets/49718502/a196199b-b705-4140-87d4-c6900ba8595e">
      
      
      
      ## Guidelines for reading
      
      The full implementation is broken in 5 PRs and all of them are
      self-contained and improve things incrementally even without the
      parallelisation being implemented/enabled, the reason this approach was
      taken instead of a big-bang PR, is to make things easier to review and
      reduced the risk of breaking this critical subsystems.
      
      After reading the full description of this PR, the changes should be
      read in the following order:
      1. https://github.com/paritytech/polkadot-sdk/pull/4848, some other
      micro-optimizations for networks with a high number of validators. This
      change gives us a speed up by itself without any other changes.
      2. https://github.com/paritytech/polkadot-sdk/pull/4845 , this contains
      only interface changes to decouple the subsystem from the `Context` and
      be able to run multiple instances of the subsystem on different threads.
      **No functional changes**
      3. https://github.com/paritytech/polkadot-sdk/pull/4928, moving of the
      crypto checks from approval-voting in approval-distribution, so that the
      approval-distribution has no reason to wait after approval-voting
      anymore. This change gives us a speed up by itself without any other
      changes.
      4. https://github.com/paritytech/polkadot-sdk/pull/4846, interface
      changes to make approval-voting runnable on a separate thread. **No
      functional changes**
      5. This PR, where we instantiate an `approval-voting-parallel` subsystem
      that runs on different workers the logic currently in
      `approval-distribution` and `approval-voting`.
      6. The next step after this changes get merged and deploy would be to
      bring all the files from approval-distribution, approval-voting,
      approval-voting-parallel into a single rust crate, to make it easier to
      maintain and understand the structure.
      
      ## Results
      Running subsystem-benchmarks with 1000 validators 100 fully ocuppied
      cores and triggering all assignments and approvals for all tranches
      
      #### Approval does not lags behind. 
       Master
      ```
      Chain selection approved  after 72500 ms hash=0x0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a
      ```
      With this PoC
      ```
      Chain selection approved  after 3500 ms hash=0x0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a
      ```
      
      #### Gathering enough assignments
       
      Enough assignments are gathered in less than 500ms, so that gives un a
      guarantee that un-necessary work does not get triggered, on master on
      the same benchmark because the subsystems fall behind on work, that
      number goes above 32 seconds on master.
       
      <img width="2240" alt="Screenshot 2024-06-20 at 15 48 22"
      src="https://github.com/paritytech/polkadot-sdk/assets/49718502/d2f2b29c-5ff6-44b4-a245-5b37ab8e58bc">
      
      
      #### Cpu usage:
      Master
      ```
      CPU usage, seconds                     total   per block
      approval-distribution                96.9436      9.6944
      approval-voting                     117.4676     11.7468
      test-environment                     44.0092      4.4009
      ```
      With this PoC
      ```
      CPU usage, seconds                     total   per block
      approval-distribution                 0.0014      0.0001 --- unused
      approval-voting                       0.0437      0.0044.  --- unused
      approval-voting-parallel              5.9560      0.5956
      approval-voting-parallel-0           22.9073      2.2907
      approval-voting-parallel-1           23.0417      2.3042
      approval-voting-parallel-2           22.0445      2.2045
      approval-voting-parallel-3           22.7234      2.2723
      approval-voting-parallel-4           21.9788      2.1979
      approval-voting-parallel-5           23.0601      2.3060
      approval-voting-parallel-6           22.4805      2.2481
      approval-voting-parallel-7           21.8330      2.1833
      approval-voting-parallel-db          37.1954      3.7195.  --- the approval-voting thread.
      ```
      
      # Enablement strategy
      
      Because just some trivial plumbing is needed in approval-distribution
      and approval-voting to be able to run things in parallel and because
      this subsystems plays a critical part in the system this PR proposes
      that we keep both ways of running the approval work, as separated
      subsystems and just a single subsystem(`approval-voting-parallel`) which
      has multiple workers for the distribution work and one worker for the
      approval-voting work and switch between them with a comandline flag.
      
      The benefits for this is twofold.
      1. With the same polkadot binary we can easily switch just a few
      validators to use the parallel approach and gradually make this the
      default way of running, if now issues arise.
      2. In the worst case scenario were it becomes the default way of running
      things, but we discover there are critical issues with it we have the
      path to quickly disable it by asking validators to adjust their command
      line flags.
      
      
      # Next steps
      - [x] Make sure through various testing we are not missing anything 
      - [x] Polish the implementations to make them production ready
      - [x] Add Unittest Tests for approval-voting-parallel.
      - [x] Define and implement the strategy for rolling this change, so that
      the blast radius is minimal(single validator) in case there are problems
      with the implementation.
      - [x]  Versi long running tests.
      - [x] Add relevant metrics.
      
      @ordian @eskimor @sandreim @AndreiEres
      
      , let me know what you think.
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <alexandru.gheorghe@parity.io>
    • Maksym H's avatar
      add riscv feature to /cmd bench by default (#5828) · f6d08e63
      Maksym H authored
      Closes #5714
    • Andrei Sandu's avatar
      chore: bump runtime api version to v11 (#5824) · 1f3e3978
      Andrei Sandu authored
      
      A change that I missed to add in
      https://github.com/paritytech/polkadot-sdk/pull/5525 .
      
      ---------
      
      Signed-off-by: default avatarAndrei Sandu <andrei-mihail@parity.io>
  9. Sep 25, 2024
    • Cyrill Leutwiler's avatar
      [pallet-revive] last call return data API (#5779) · c77095f5
      Cyrill Leutwiler authored
      
      This PR introduces 2 new syscalls: `return_data_size` and
      `return_data_copy`, resembling the semantics of the EVM `RETURNDATASIZE`
      and `RETURNDATACOPY` opcodes.
      
      The ownership of `ExecReturnValue` (the return data) has moved to the
      `Frame`. This allows implementing the new contract API functionality in
      ext with no additional copies. Returned data is passed via contract
      memory, memory is (will be) metered, hence the amount of returned data
      can not be statically known, so we should avoid storing copies of the
      returned data if we can. By moving the ownership of the exectuables
      return value into the `Frame` struct we achieve this.
      
      A zero-copy implementation of those APIs would be technically possible
      without that internal change by making the callsite in the runtime
      responsible for moving the returned data into the frame after any call.
      However, resetting the stored output needs to be handled in ext, since
      plain transfers will _not_ affect the stored return data (and we don't
      want to handle this special call case inside the `runtime` API). This
      has drawbacks:
      - It can not be tested easily in the mock.
      - It introduces an inconsistency where resetting the stored output is
      handled in ext, but the runtime API is responsible to store it back
      correctly after any calls made. Instead, with ownership of the data in
      `Frame`, both can be handled in a single place. Handling both in `fn
      run()` is more natural and leaves less room for runtime API bugs.
      
      The returned output is reset each time _before_ running any executable
      in a nested stack. This change should not incur any overhead to the
      overall memory usage as _only_ the returned data from the last executed
      frame will be kept around at any time.
      
      ---------
      
      Signed-off-by: default avatarCyrill Leutwiler <bigcyrill@hotmail.com>
      Signed-off-by: default avatarxermicus <cyrill@parity.io>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarPG Herveou <pgherveou@gmail.com>
    • Adrian Catangiu's avatar
      xcm-executor: validate destinations for ReserveWithdraw and Teleport transfers (#5660) · b5ac7a9d
      Adrian Catangiu authored
      
      This change adds the required validation for stronger UX guarantees when
      using `InitiateReserveWithdraw` or `InitiateTeleport` XCM instructions.
      Execution of the instructions will fail if the local chain is not
      configured to trust the "destination" or "reserve" chain as a
      reserve/trusted-teleporter for the provided "assets".
      
      With this change, misuse of `InitiateReserveWithdraw`/`InitiateTeleport`
      fails on origin with no overall side-effects, rather than failing on
      destination (with side-effects to origin's assets issuance).
      
      The commit also makes the same validations for pallet-xcm transfers, and
      adds regression tests.
      
      ---------
      
      Signed-off-by: default avatarAdrian Catangiu <adrian@parity.io>
      Co-authored-by: default avatarBranislav Kontur <bkontur@gmail.com>
    • 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>
    • Andrei Sandu's avatar
      approval-voting: remove dead test code (#5815) · 286af23b
      Andrei Sandu authored
      
      Minor cleanup.
      
      ---------
      
      Signed-off-by: default avatarAndrei Sandu <andrei-mihail@parity.io>
  10. 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>
    • Javier Viola's avatar
      Fix parachain-template-test (#5821) · 9294572a
      Javier Viola authored
      Fix `parachain-template-test` (bump `zombienet` version).
      Thx!
    • Eugen Snitko's avatar
      Preflight workflow update (#5771) · c987da33
      Eugen Snitko authored
      
      - New and updated vars
      - New runner vars
      - Runners rename (see https://github.com/paritytech/ci_cd/issues/1039)
      
      ---------
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
    • Clara van Staden's avatar
      Fix border condition in Snowbridge free consensus Updates (#5671) · 1790e427
      Clara van Staden authored
      
      # Description
      
      A fix for a border condition introduced with new feature
      https://github.com/paritytech/polkadot-sdk/pull/5201. A malicious
      relayer could spam the Ethereum client with sync committee updates that
      have already been imported for the period. This PR adds a storage item
      to track the last imported sync committee period, so that subsequent
      irrelevant updates are not free.
      
      Original PR: https://github.com/Snowfork/polkadot-sdk/pull/172
      
      ## Integration
      
      Downstream projects are not affected. Relayers will not be able to spam
      the Ethereum client with irrelevant sync committee updates for free.
      
      ## Review Notes
      
      Adds a storage item to track the last free sync committee update period,
      so that duplicate imports are not free.
      
      ---------
      
      Co-authored-by: default avatarAdrian Catangiu <adrian@parity.io>
    • Adrian Catangiu's avatar
      snowbridge: improve destination fee handling to avoid trapping fees dust (#5563) · 62534e53
      Adrian Catangiu authored
      On messages Ethereum -> Polkadot Asset Hub: whether they are a token
      transfer or a `Transact` for registering new token, make sure to handle
      unspent fees, rather than trapping them.
      
      This PR deposits them to Snowbridge's sovereign account on Asset Hub.
      
      ---------
      
      Co-authored-by: command-bot <>
  11. Sep 23, 2024
    • Jan-Jan's avatar
      update solochain to use #[runtime] (#5772) · 08498f54
      Jan-Jan authored
      
      # Description
      
      * This is part of [issue
      5242](https://github.com/paritytech/polkadot-sdk/issues/5242),
      specifically getting solochain to use `#[frame::runtime]`
      * Furthermore, reinforced the convention of `Template` instead of
      `TemplateModule`
      
      
      ## Integration
      
      * Should be integrated into the `solochain` template and documentation
      
      ## Review Notes
      
      * Refactored `solochain` template from
      [construct_runtime!](https://paritytech.github.io/polkadot-sdk/master/frame_support/macro.construct_runtime.html)
      to
      [#[runtime]](https://paritytech.github.io/polkadot-sdk/master/frame_support/attr.runtime.html).
      * AFAIU `Template` is our new convention, and preferred over
      `TemplateModule`.
      
      # Out of scope
      
      * The
      [#[runtime]](https://paritytech.github.io/polkadot-sdk/master/frame_support/attr.runtime.html)
      documentation is still very rudimentary, and should ideally be expanded
      to explain the macro, both what it does and the input options.
      * Furthermore, suggest update
      [#[runtime]](https://paritytech.github.io/polkadot-sdk/master/frame_support/attr.runtime.html)
      documentation to replace `#[crate::runtime]` with
      `#[frame_support::runtime]`
      
      ---------
      
      Co-authored-by: default avatarJan-Jan <111935+Jan-Jan@users.noreply.github.com>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarShawn Tabrizi <shawntabrizi@gmail.com>
      Co-authored-by: command-bot <>
    • dependabot[bot]'s avatar
      Bump the ci_dependencies group across 1 directory with 3 updates (#5803) · fbcda7e1
      dependabot[bot] authored
      Bumps the ci_dependencies group with 3 updates in the / directory:
      [actions/setup-node](https://github.com/actions/setup-node),
      [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request)
      and
      [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain).
      
      Updates `actions/setup-node` from 4.0.3 to 4.0.4
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/actions/setup-node/releases">actions/setup-node's
      releases</a>.</em></p>
      <blockquote>
      <h2>v4.0.4</h2>
      <h2>What's Changed</h2>
      <ul>
      <li>Add workflow file for publishing releases to immutable action
      package by <a
      href="https://github.com/Jcambass"><code>@​Jcambass</code></a> in <a
      href="https://redirect.github.com/actions/setup-node/pull/1125">actions/setup-node#1125</a></li>
      <li>Enhance Windows ARM64 Setup and Update micromatch Dependency by <a
      href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
      in <a
      href="https://redirect.github.com/actions/setup-node/pull/1126">actions/setup-node#1126</a></li>
      </ul>
      <h3>Documentation changes:</h3>
      <ul>
      <li>Documentation update in the README file by <a
      href="https://github.com/suyashgaonkar"><code>@​suyashgaonkar</code></a>
      in <a
      href="https://redirect.github.com/actions/setup-node/pull/1106">actions/setup-node#1106</a></li>
      <li>Correct invalid 'lts' version string reference by <a
      href="https://github.com/fulldecent"><code>@​fulldecent</code></a> in <a
      href="https://redirect.github.com/actions/setup-node/pull/1124">actions/setup-node#1124</a></li>
      </ul>
      <h2>New Contributors</h2>
      <ul>
      <li><a
      href="https://github.com/suyashgaonkar"><code>@​suyashgaonkar</code></a>
      made their first contribution in <a
      href="https://redirect.github.com/actions/setup-node/pull/1106">actions/setup-node#1106</a></li>
      <li><a
      href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
      made their first contribution in <a
      href="https://redirect.github.com/actions/setup-node/pull/1126">actions/setup-node#1126</a></li>
      <li><a href="https://github.com/Jcambass"><code>@​Jcambass</code></a>
      made their first contribution in <a
      href="https://redirect.github.com/actions/setup-node/pull/1125">actions/setup-node#1125</a></li>
      <li><a
      href="https://github.com/fulldecent"><code>@​fulldecent</code></a> made
      their first contribution in <a
      href="https://redirect.github.com/actions/setup-node/pull/1124">actions/setup-node#1124</a></li>
      </ul>
      <p><strong>Full Changelog</strong>: <a
      href="https://github.com/actions/setup-node/compare/v4...v4.0.4">https://github.com/actions/setup-node/compare/v4...v4.0.4</a></p>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/actions/setup-node/commit/0a44ba7841725637a19e28fa30b79a866c81b0a6"><code>0a44ba7</code></a>
      Correct version string (<a
      href="https://redirect.github.com/actions/setup-node/issues/1124">#1124</a>)</li>
      <li><a
      href="https://github.com/actions/setup-node/commit/97ca147735c170fb35096b39ef17a0fc5d9270ac"><code>97ca147</code></a>
      Merge pull request <a
      href="https://redirect.github.com/actions/setup-node/issues/1125">#1125</a>
      from actions/add-is-release-workflow</li>
      <li><a
      href="https://github.com/actions/setup-node/commit/aa363ded8fefb1e43b7a6cb669a222a98c09eb57"><code>aa363de</code></a>
      Create publish-immutable-action.yml</li>
      <li><a
      href="https://github.com/actions/setup-node/commit/1c7b2db92075f828bee89d7e19d33a911d15e7b3"><code>1c7b2db</code></a>
      Fix: windows arm64 setup (<a
      href="https://redirect.github.com/actions/setup-node/issues/1126">#1126</a>)</li>
      <li><a
      href="https://github.com/actions/setup-node/commit/26961cf329f22f6837d5f54c3efd76b480300ace"><code>26961cf</code></a>
      Documentation update in the README file (<a
      href="https://redirect.github.com/actions/setup-node/issues/1106">#1106</a>)</li>
      <li>See full diff in <a
      href="https://github.com/actions/setup-node/compare/v4.0.3...v4.0.4">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `peter-evans/create-pull-request` from 7.0.1 to 7.0.5
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/peter-evans/create-pull-request/releases">peter-evans/create-pull-request's
      releases</a>.</em></p>
      <blockquote>
      <h2>Create Pull Request v7.0.5</h2>
      <p>:gear:️ Fixes an issue with commit signing to allow it to support
      symlinks</p>
      <h2>What's Changed</h2>
      <ul>
      <li>fix: support symlinks when commit signing by <a
      href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
      <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3359">peter-evans/create-pull-request#3359</a></li>
      </ul>
      <p><strong>Full Changelog</strong>: <a
      href="https://github.com/peter-evans/create-pull-request/compare/v7.0.4...v7.0.5">https://github.com/peter-evans/create-pull-request/compare/v7.0.4...v7.0.5</a></p>
      <h2>Create Pull Request v7.0.4</h2>
      <p>:gear:️ Fixes an issue with commit signing to allow it to support
      submodules</p>
      <h2>What's Changed</h2>
      <ul>
      <li>docs: correct suggestion for bot setup by <a
      href="https://github.com/henryiii"><code>@​henryiii</code></a> in <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3342">peter-evans/create-pull-request#3342</a></li>
      <li>build(deps-dev): bump <code>@​types/jest</code> from 29.5.12 to
      29.5.13 by <a
      href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3343">peter-evans/create-pull-request#3343</a></li>
      <li>build(deps-dev): bump eslint from 8.57.0 to 8.57.1 by <a
      href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3344">peter-evans/create-pull-request#3344</a></li>
      <li>fix: support submodules when commit signing by <a
      href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
      <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3354">peter-evans/create-pull-request#3354</a></li>
      </ul>
      <h2>New Contributors</h2>
      <ul>
      <li><a href="https://github.com/henryiii"><code>@​henryiii</code></a>
      made their first contribution in <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3342">peter-evans/create-pull-request#3342</a></li>
      </ul>
      <p><strong>Full Changelog</strong>: <a
      href="https://github.com/peter-evans/create-pull-request/compare/v7.0.3...v7.0.4">https://github.com/peter-evans/create-pull-request/compare/v7.0.3...v7.0.4</a></p>
      <h2>Create Pull Request v7.0.3</h2>
      <p>:gear:️ Fixes an issue with commit signing where commit SHAs have variable
      lengths when abbreviated.</p>
      <h2>What's Changed</h2>
      <ul>
      <li>fix: disable abbreviated commit shas in diff by <a
      href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
      <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3337">peter-evans/create-pull-request#3337</a></li>
      </ul>
      <p><strong>Full Changelog</strong>: <a
      href="https://github.com/peter-evans/create-pull-request/compare/v7.0.2...v7.0.3">https://github.com/peter-evans/create-pull-request/compare/v7.0.2...v7.0.3</a></p>
      <h2>Create Pull Request v7.0.2</h2>
      <p>:gear:
      
      ️ Fixes an issue with commit signing when a change was detected as
      being a rename or copy.</p>
      <h2>What's Changed</h2>
      <ul>
      <li>build(deps-dev): bump <code>@​types/node</code> from 18.19.48 to
      18.19.50 by <a
      href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3320">peter-evans/create-pull-request#3320</a></li>
      <li>build(deps-dev): bump typescript from 5.5.4 to 5.6.2 by <a
      href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3319">peter-evans/create-pull-request#3319</a></li>
      <li>fix: disable diff detection for renames and copies by <a
      href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
      <a
      href="https://redirect.github.com/peter-evans/create-pull-request/pull/3330">peter-evans/create-pull-request#3330</a></li>
      </ul>
      <p><strong>Full Changelog</strong>: <a
      href="https://github.com/peter-evans/create-pull-request/compare/v7.0.1...v7.0.2">https://github.com/peter-evans/create-pull-request/compare/v7.0.1...v7.0.2</a></p>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/5e914681df9dc83aa4e4905692ca88beb2f9e91f"><code>5e91468</code></a>
      fix: support symlinks when commit signing (<a
      href="https://redirect.github.com/peter-evans/create-pull-request/issues/3359">#3359</a>)</li>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/2f38cd26bfebe301a5ee90bdd6550a69dc3ef23f"><code>2f38cd2</code></a>
      fix: support submodules when commit signing (<a
      href="https://redirect.github.com/peter-evans/create-pull-request/issues/3354">#3354</a>)</li>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/7a8aeac749996aed943101d8e7dfb0cecc06197e"><code>7a8aeac</code></a>
      build(deps-dev): bump eslint from 8.57.0 to 8.57.1 (<a
      href="https://redirect.github.com/peter-evans/create-pull-request/issues/3344">#3344</a>)</li>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/d39d596a7720fc2c61c9aa5503097fb553431b5e"><code>d39d596</code></a>
      build(deps-dev): bump <code>@​types/jest</code> from 29.5.12 to 29.5.13
      (<a
      href="https://redirect.github.com/peter-evans/create-pull-request/issues/3343">#3343</a>)</li>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/f6f978fd3dc86c443f758f603d22dc554762c832"><code>f6f978f</code></a>
      docs: correct suggestion for bot setup (<a
      href="https://redirect.github.com/peter-evans/create-pull-request/issues/3342">#3342</a>)</li>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/6cd32fd93684475c31847837f87bb135d40a2b79"><code>6cd32fd</code></a>
      fix: disable abbreviated commit shas in diff (<a
      href="https://redirect.github.com/peter-evans/create-pull-request/issues/3337">#3337</a>)</li>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/d121e62763d8cc35b5fb1710e887d6e69a52d3a4"><code>d121e62</code></a>
      fix: disable diff detection for renames and copies (<a
      href="https://redirect.github.com/peter-evans/create-pull-request/issues/3330">#3330</a>)</li>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/f4d66f4d5a5a7e65a185463192800c32d296ac6d"><code>f4d66f4</code></a>
      build(deps-dev): bump typescript from 5.5.4 to 5.6.2 (<a
      href="https://redirect.github.com/peter-evans/create-pull-request/issues/3319">#3319</a>)</li>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/488c869d17c8a5cb8a2f0a09471ed82c1d2a084f"><code>488c869</code></a>
      build(deps-dev): bump <code>@​types/node</code> from 18.19.48 to
      18.19.50 (<a
      href="https://redirect.github.com/peter-evans/create-pull-request/issues/3320">#3320</a>)</li>
      <li><a
      href="https://github.com/peter-evans/create-pull-request/commit/5354f85616108575685a73a0ddd2f67c26a441c3"><code>5354f85</code></a>
      docs: update readme</li>
      <li>See full diff in <a
      href="https://github.com/peter-evans/create-pull-request/compare/8867c4aba1b742c39f8d0ba35429c2dfa4b6cb20...5e914681df9dc83aa4e4905692ca88beb2f9e91f">compare
      view</a></li>
      </ul>
      </details>
      <br />
      
      Updates `actions-rust-lang/setup-rust-toolchain` from 1.9.0 to 1.10.0
      <details>
      <summary>Release notes</summary>
      <p><em>Sourced from <a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/releases">actions-rust-lang/setup-rust-toolchain's
      releases</a>.</em></p>
      <blockquote>
      <h2>v1.10.0</h2>
      <h2>What's Changed</h2>
      <ul>
      <li>Add new parameter cache-directories that is propagated to
      Swatinem/rust-cache (<a
      href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/44">#44</a>
      by <a
      href="https://github.com/pranc1ngpegasus"><code>@​pranc1ngpegasus</code></a>)</li>
      <li>Add new parameter cache-key that is propagated to
      Swatinem/rust-cache as key (<a
      href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/41">#41</a>
      by <a
      href="https://github.com/iainlane"><code>@​iainlane</code></a>)</li>
      <li>Make rustup toolchain installation more robust in light of planned
      changes <a
      href="https://redirect.github.com/rust-lang/rustup/issues/3635">rust-lang/rustup#3635</a>
      and <a
      href="https://redirect.github.com/rust-lang/rustup/pull/3985">rust-lang/rustup#3985</a></li>
      <li>Allow installing multiple Rust toolchains by specifying multiple
      versions in the toolchain input parameter.</li>
      <li>Configure the rustup override behavior via the new override input.
      (<a
      href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/38">#38</a>)</li>
      </ul>
      <h2>New Contributors</h2>
      <ul>
      <li><a
      href="https://github.com/pranc1ngpegasus"><code>@​pranc1ngpegasus</code></a>
      made their first contribution in <a
      href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/44">actions-rust-lang/setup-rust-toolchain#44</a></li>
      <li><a href="https://github.com/iainlane"><code>@​iainlane</code></a>
      made their first contribution in <a
      href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/pull/41">actions-rust-lang/setup-rust-toolchain#41</a></li>
      </ul>
      <p><strong>Full Changelog</strong>: <a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1...v1.10.0">https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1...v1.10.0</a></p>
      </blockquote>
      </details>
      <details>
      <summary>Commits</summary>
      <ul>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/4d1965c9142484e48d40c19de54b5cba84953a06"><code>4d1965c</code></a>
      Add override input parameter that controls the <code>rustup
      override</code> behavior</li>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/b31b1317f290cc8743fce262ee98435b8c2a3c5a"><code>b31b131</code></a>
      Allow installing multiple Rust toolchains at once.</li>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/9f99923fade1f569928b687ccc2858a192effa02"><code>9f99923</code></a>
      Add pre-commit for basic checks</li>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/86a2ce66737229469494d3779ce1c99c3b5b351d"><code>86a2ce6</code></a>
      Make toolchain install more robust</li>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/eb4a655afde124c3ebbd7ddebd7ef287d56ac4d6"><code>eb4a655</code></a>
      Document new keys and add changelog</li>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/a90048dfddd1feb871e378c4535c05d7525117d4"><code>a90048d</code></a>
      Merge pull request <a
      href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/41">#41</a>
      from iainlane/iainlane/propagate-cache-key</li>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/597574aacb4ee305cfa0c6a3ba38e8be6f9a2eb6"><code>597574a</code></a>
      Update key name in README</li>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/634cedf365286cb557a12970c1484ea71a309524"><code>634cedf</code></a>
      Merge pull request <a
      href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/44">#44</a>
      from pranc1ngpegasus/feat/able-to-cache-additional-dir...</li>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/5d6934e965a5457a045bd6a3327b3ce9dd0c6cbf"><code>5d6934e</code></a>
      Able to cache additional directories</li>
      <li><a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/b01657d9bb1c81c4e7a46604980d19112a4034f0"><code>b01657d</code></a>
      Add support for adding to cache key</li>
      <li>See full diff in <a
      href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/1fbea72663f6d4c03efaab13560c8a24cfd2a7cc...4d1965c9142484e48d40c19de54b5cba84953a06">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>