Skip to content
Snippets Groups Projects
  1. Feb 27, 2025
    • Utkarsh Bhardwaj's avatar
      [AHM] Poke deposits: Multisig pallet (#7700) · cc83fba1
      Utkarsh Bhardwaj authored
      
      # Description
      
      * This PR adds a new extrinsic `poke_deposit` to `pallet-multisig`. This
      extrinsic will be used to re-adjust the deposits made in the pallet to
      create a multisig operation after AHM.
      * Part of #5591 
      
      ## Review Notes
      
      * Added a new extrinsic `poke_deposit` in `pallet-multisig`.
      * Added a new event `DepositPoked` to be emitted upon a successful call
      of the extrinsic.
      * Although the immediate use of the extrinsic will be to give back some
      of the deposit after the AH-migration, the extrinsic is written such
      that it can work if the deposit decreases or increases (both).
      * The call to the extrinsic would be `free` if an actual adjustment is
      made to the deposit and `paid` otherwise.
      * Added tests to test all scenarios.
      
      ## TO-DOs
      * [x] Add Benchmark
      * [x] Run CI cmd bot to benchmark
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
      Co-authored-by: default avatarGiuseppe Re <giuseppe.re@parity.io>
    • Alexandru Vasile's avatar
      notifications/tests: Check compatiblity between litep2p and libp2p (#7484) · e3e3f481
      Alexandru Vasile authored
      
      This PR ensures compatibility in terms of expectations between the
      libp2p and litep2p network backends at the notification protocol level.
      
      The libp2p node is tested with the `Notification` behavior that contains
      the protocol controller, while litep2p is tested at the lowest level API
      (without substrate shim layers).
      
      ## Notification Behavior
      
      (I) Libp2p protocol controller will eagerly reopen a closed substream,
      even if it is the one that closed it:
      - When a node (libp2p or litep2p) closes the substream with **libp2p**,
      the **libp2p** controller will reopen the substream
      - When **libp2p** closes the substream with a node (either litep2p with
      no controller or libp2p), the **libp2p** controller will reopen the
      substream
      - However in this case, libp2p was the one closing the substream
      signaling it is no longer interested in communicating with the other
      side
      
      (II) Notifications are lost and not reported to the higher level in the
      following scenario:
      - T0: Node A opens a substream with Node B
      - T1: Node A closes the substream or the connection with Node B
      - T2: Node B sends a notification to Node A => *notification is lost*
      and never reported
      - T3: Node B detects the closed substream or connection
      
      
      ## Testing
      
      This PR effectively checks:
      - connectivity at the notification level
      - litep2p rejecting libp2p substream and keep-alive mechanism
      functionality
      - libp2p disconnecting libp2p and connection re-establishment (and all
      the other permutations)
      - idling of connections with active substreams and keep-alive mechanism
      is not enforced
      
      
      Prior work:
      - https://github.com/paritytech/polkadot-sdk/pull/7361
      
      cc @paritytech/networking
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
  2. Feb 26, 2025
    • Ankan's avatar
      [Nomination Pool] Make staking restrictions configurable (#7685) · f7e98b40
      Ankan authored
      
      closes https://github.com/paritytech/polkadot-sdk/issues/5742
      
      Need to be backported to stable2503 release.
      
      With the migration of staking accounts to [fungible
      currency](https://github.com/paritytech/polkadot-sdk/pull/5501), we can
      now allow pool users to stake directly and vice versa. This update
      introduces a configurable filter mechanism to determine which accounts
      can join a nomination pool.
      
      ## Example Usage  
      
      ### 1. Allow any account to join a pool  
      To permit all accounts to join a nomination pool, use the `Nothing`
      filter:
      
      ```rust
      impl pallet_nomination_pools::Config for Runtime {
          ...
          type Filter = Nothing;
      }
      ```
      
      ### 2. Restrict direct stakers from joining a pool
      
      To prevent direct stakers from joining a nomination pool, use
      `pallet_staking::AllStakers`:
      ```rust
      impl pallet_nomination_pools::Config for Runtime {
          ...
          type Filter = pallet_staking::AllStakers<Runtime>;
      }
      ```
      
      ### 3. Define a custom filter
      For more granular control, you can define a custom filter:
      ```rust
      struct MyCustomFilter<T: Config>(core::marker::PhantomData<T>);
      
      impl<T: Config> Contains<T::AccountId> for MyCustomFilter<T> {
          fn contains(account: &T::AccountId) -> bool {
              todo!("Implement custom logic. Return `false` to allow the account to join a pool.")
          }
      }
      ```
      
      ---------
      
      Co-authored-by: default avatarBastian Köcher <info@kchr.de>
    • xermicus's avatar
      [pallet-revive] allow delegate calls to non-contract accounts (#7729) · c29e72a8
      xermicus authored
      
      This PR changes the behavior of delegate calls when the callee is not a
      contract account: Instead of returning a `CodeNotFound` error, this is
      allowed and the caller observes a successful call with empty output.
      
      The change makes for example the following contract behave the same as
      on EVM:
      
      ```Solidity
      contract DelegateCall {
          function delegateToLibrary() external returns (bool) {
              address testAddress = 0x0000000000000000000000000000000000000000;
              (bool success, ) = testAddress.delegatecall(
                  abi.encodeWithSignature("test()")
              );
              return success;
          }
      }
      ```
      
      Closes https://github.com/paritytech/revive/issues/235
      
      ---------
      
      Signed-off-by: default avatarxermicus <cyrill@parity.io>
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    • PG Herveou's avatar
      [pallet-revive] ecrecover (#7652) · 86019edb
      PG Herveou authored
      
      Add ECrecover 0x1 precompile and remove the unstable equivalent host
      function.
      
      - depend on https://github.com/paritytech/polkadot-sdk/pull/7676
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
      Co-authored-by: default avatarAlexander Theißen <alex.theissen@me.com>
  3. Feb 25, 2025
    • Giuseppe Re's avatar
      Add Runtime Api version to metadata (#7607) · 3dc3a11c
      Giuseppe Re authored
      
      The runtime API implemented version is not explicitly shown in metadata,
      so here we add it to improve developer experience.
      We need to bump `frame-metadata` and `merkleized-metadata` to allow this
      new feature.
      
      This closes #7352 .
      
      _Refactor_: also changing all the occurrences of `ViewFunctionMethod` to
      just `ViewFunction` for metadata types.
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    • CrabGopher's avatar
      Expose extension weights (#7637) · dd005c48
      CrabGopher authored
      # Description
      Seems like SubstrateWeights that used T::DBWeights was not public unlike
      the frame_system's Call weights. PR just made those weights public
      
      ## Integration
      Instead of using `()` impl which used RockDB weights, ExtensionWeights
      can be used to to use the provided DBWeights to System config
  4. Feb 24, 2025
  5. Feb 23, 2025
    • Davide Galassi's avatar
      Bandersnatch hot fix (#7670) · 21f6f070
      Davide Galassi authored
      
      Essentially, this locks `bandersnatch_vrfs` to a specific branch of a
      repository I control. This is a temporary workaround to avoid issues
      like https://github.com/paritytech/polkadot-sdk/issues/7653 until
      https://github.com/paritytech/polkadot-sdk/pull/7669 is ready.
      
      Closes: https://github.com/paritytech/polkadot-sdk/issues/7653 
      
      @drskalman
      
      ---------
      
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
  6. Feb 21, 2025
  7. Feb 20, 2025
    • Utkarsh Bhardwaj's avatar
      [AHM] Poke deposits: Indices pallet (#7587) · b9b73eb2
      Utkarsh Bhardwaj authored
      
      # Description
      
      * This PR adds a new extrinsic `reconsider` to `pallet-indices`. This
      extrinsic will be used to re-adjust the deposits made in the pallet.
      * Part of #5591 
      
      ## Review Notes
      
      * Added a new extrinsic `reconsider` in `pallet-indices`.
      * Added a new event `DepositReconsidered` to be emitted upon a
      successful call of the extrinsic.
      * Although the immediate use of the extrinsic will be to give back some
      of the deposit after the AH-migration, the extrinsic is written such
      that it can work if the deposit decreases or increases (both).
      * The call to the extrinsic would be `free` if an actual adjustment is
      made to the deposit and `paid` otherwise.
      * Added tests to test all scenarios.
      * Added a benchmark to test the "worst case" (maximum compute) flow of
      the extrinsic which is when the deposit amount is updated to a new
      value.
      
      ## TO-DOs
      
      * [x] Run CI cmd bot to benchmark
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    • Alexandru Vasile's avatar
      net/litep2p: Bring the latest compatibility fixes via v0.9.1 (#7640) · 42e9de7f
      Alexandru Vasile authored
      
      This PR updates litep2p to version 0.9.1. The yamux config is entirely
      removed to mirror the libp2p yamux upstream version.
      While at it, I had to bump indexmap and URL as well. 
      
      
      ## [0.9.1] - 2025-01-19
      
      This release enhances compatibility between litep2p and libp2p by using
      the latest Yamux upstream version. Additionally, it includes various
      improvements and fixes to boost the stability and performance of the
      WebSocket stream and the multistream-select protocol.
      
      ### Changed
      
      - yamux: Switch to upstream implementation while keeping the controller
      API ([#320](https://github.com/paritytech/litep2p/pull/320))
      - req-resp: Replace SubstreamSet with FuturesStream
      ([#321](https://github.com/paritytech/litep2p/pull/321))
      - cargo: Bring up to date multiple dependencies
      ([#324](https://github.com/paritytech/litep2p/pull/324))
      - build(deps): bump hickory-proto from 0.24.1 to 0.24.3
      ([#323](https://github.com/paritytech/litep2p/pull/323))
      - build(deps): bump openssl from 0.10.66 to 0.10.70
      ([#322](https://github.com/paritytech/litep2p/pull/322))
      
      ### Fixed
      
      - websocket/stream: Fix unexpected EOF on `Poll::Pending` state
      poisoning ([#327](https://github.com/paritytech/litep2p/pull/327))
      - websocket/stream: Avoid memory allocations on flushing
      ([#325](https://github.com/paritytech/litep2p/pull/325))
      - multistream-select: Enforce `io::error` instead of empty protocols
      ([#318](https://github.com/paritytech/litep2p/pull/318))
      - multistream: Do not wait for negotiation in poll_close
      ([#319](https://github.com/paritytech/litep2p/pull/319))
      
      cc @paritytech/networking
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
    • PG Herveou's avatar
      [pallet-revive] tracing improvements (#7614) · 9e75647c
      PG Herveou authored
      
      Various pallet-revive improvements
      
      - add check for precompiles addresses,
      So we can easily identify which one are being called and not supported
      yet
      
      - fixes debug_call for revert call
      If a call revert we still want to get the traces for that call, that
      matches geth behaviors, diff tests will be added to the test suite for
      this
      
      - fixes traces for staticcall
      The call type was not always being reported properly.
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
      Co-authored-by: default avatarAlexander Theißen <alex.theissen@me.com>
    • Alexander Theißen's avatar
      Update to Rust stable 1.84.1 (#7625) · e2d3da61
      Alexander Theißen authored
      Ref https://github.com/paritytech/ci_cd/issues/1107
      
      We mainly need that so that we can finally compile the `pallet_revive`
      fixtures on stable. I did my best to keep the commits focused on one
      thing to make review easier.
      
      All the changes are needed because rustc introduced more warnings or is
      more strict about existing ones. Most of the stuff could just be fixed
      and the commits should be pretty self explanatory. However, there are a
      few this that are notable:
      
      ## `non_local_definitions `
      
      A lot of runtimes to write `impl` blocks inside functions. This makes
      sense to reduce the amount of conditional compilation. I guess I could
      have moved them into a module instead. But I think allowing it here
      makes sense to avoid the code churn.
      
      ## `unexpected_cfgs`
      
      The FRAME macros emit code that references various features like `std`,
      `runtime-benchmarks` or `try-runtime`. If a create that uses those
      macros does not have those features we get this warning. Those were
      mostly when ...
    • Serban Iorga's avatar
      derive `DecodeWithMemTracking` for `RuntimeCall` (#7634) · e8d17cbe
      Serban Iorga authored
      Related to https://github.com/paritytech/polkadot-sdk/issues/7360
    • Francisco Aguirre's avatar
      Update dispatchables doc link in pallet-revive's README (#7624) · f2414398
      Francisco Aguirre authored
      Pallet-revive's README has an outdated link for dispatchables
      documentation in its README. It was giving 404. Put the up-to-date one.
  8. Feb 19, 2025
    • Jonathan Brown's avatar
      [pallet-broker] add extrinsic to remove an assignment (#7080) · bd418487
      Jonathan Brown authored
      
      # Description
      
      #6929 requests more extrinsics for "managing the network's coretime
      allocations without needing to dabble with migration+runtime upgrade or
      set/kill storage patterns"
      
      This pull request implements the remove_assignment() extrinsic.
      
      
      ## Integration
      
      Downstream projects need to benchmark the weight for the
      remove_assignment() extrinsic.
      
      ---------
      
      Co-authored-by: default avatarJonathan Brown <jbrown@acuity.network>
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
      Co-authored-by: default avatarDónal Murray <donal.murray@parity.io>
    • Jonathan Brown's avatar
      [pallet-broker] add extrinsic to remove a lease (#7026) · 959d9187
      Jonathan Brown authored
      
      # Description
      
      #6929 requests more extrinsics for "managing the network's coretime
      allocations without needing to dabble with migration+runtime upgrade or
      set/kill storage patterns"
      
      This pull request implements the remove_lease() extrinsic.
      
      
      ## Integration
      
      Downstream projects need to benchmark the weight for the remove_lease()
      extrinsic.
      
      ## Review Notes
      
      Mentorship is requested to ensure this is implemented correctly.
      
      The lease is removed from state using the TaskId as a key. Is this
      sufficient. Does the extrinsic need to do anything else?
      
      ---------
      
      Co-authored-by: default avatarJonathan Brown <jbrown@acuity.network>
      Co-authored-by: default avatarBastian Köcher <git@kchr.de>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarDónal Murray <donalm@seadanda.dev>
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
      Co-authored-by: default avatarDónal Murray <donal.murray@parity.io>
    • Serban Iorga's avatar
      Derive `DecodeWithMemTracking` for cumulus pallets and for `polkadot-sdk` runtimes (#7627) · d60afc9f
      Serban Iorga authored
      Related to https://github.com/paritytech/polkadot-sdk/issues/7360
      
      Derive `DecodeWithMemTracking` for the structures in the cumulus pallets
      and for the structures in the `polkadot-sdk` runtimes.
      
      The PR contains no functional changes and no manual implementation. Just
      deriving `DecodeWithMemTracking`.
    • Michal Kucharczyk's avatar
      `fatxpool`: event streams moved to view domain (#7545) · 8507e70f
      Michal Kucharczyk authored
      #### Overview
      
      This pull request refactors the transaction pool `graph` module by
      renaming components for better clarity. The `EventHandler` trait was
      introduced to enhance flexibility in handling transaction lifecycle
      events. Changes include renaming `graph::Listener` to
      `graph::EventDispatcher` and moving certain functionalities from `graph`
      to `view` module in order to decouple `graph` from `view`-related
      specifics.
      
      This PR does not introduce changes in the logic.
      
      #### Notes for Reviewers
      All the changes looks dense at first, but in fact following was done:
      - The `graph::Listener` was renamed to
      [`graph::EventDispatcher`](https://github.com/paritytech/polkadot-sdk/blob/515cb404/substrate/client/transaction-pool/src/graph/listener.rs#L74C12-L74C27),
      to better reflect its role in dispatching transaction-related events
      from `ValidatedPool`. The `EventDispatcher` now utilizes the `L:
      EventHandler` generic type to handle transaction status events.
      - The new
      [`EventHandler`](https://github.com/paritytech/polkadot-sdk/blob/515cb404/substrate/client/transaction-pool/src/graph/listener.rs#L34)
      trait was introduced to handle transaction lifecycle events, improving
      implementation flexibility and providing clearer role descriptions
      within the system. Introduction of this trait allowed the removal of
      `View` related entities (e.g. streams) from the `ValidatedPool`'s event
      dispatcher (previously _listener_).
      - The _dropped monitoring_ and _aggregated events_ stream
      [functionalities](https://github.com/paritytech/polkadot-sdk/blob/515cb404/substrate/client/transaction-pool/src/fork_aware_txpool/view.rs#L157-L188)
      and [related
      types](https://github.com/paritytech/polkadot-sdk/blob/515cb404/substrate/client/transaction-pool/src/fork_aware_txpool/view.rs#L112-L121)
      were moved from `graph::listener` to the `view` module. The
      [`ViewPoolObserver`](https://github.com/paritytech/polkadot-sdk/blob/515cb404
      
      /substrate/client/transaction-pool/src/fork_aware_txpool/view.rs#L128C19-L128C35),
      which implements `EventHandler`, now provides the implementation of
      streams feeding.
      - Fields, arguments, and variables previously named `listener` were
      renamed to `event_dispatcher` to align with their purpose and type
      naming.
      - Various structs such as `Pool` and `ValidatedPool` were updated to
      include a generic `L: EventHandler` across the codebase.
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
      Co-authored-by: default avatarIulian Barbu <14218860+iulianbarbu@users.noreply.github.com>
  9. Feb 18, 2025
  10. Feb 17, 2025
    • Ankan's avatar
      [Staking] Bounded Slashing: Paginated Offence Processing & Slash Application (#7424) · dda2cb59
      Ankan authored
      
      closes https://github.com/paritytech/polkadot-sdk/issues/3610.
      
      helps https://github.com/paritytech/polkadot-sdk/issues/6344, but need
      to migrate storage `Offences::Reports` before we can remove exposure
      dependency in RC pallets.
      
      replaces https://github.com/paritytech/polkadot-sdk/issues/6788.
      
      ## Context  
      Slashing in staking is unbounded currently, which is a major blocker
      until staking can move to a parachain (AH).
      
      ### Current Slashing Process (Unbounded)  
      
      1. **Offence Reported**  
      - Offences include multiple validators, each with potentially large
      exposure pages.
      - Slashes are **computed immediately** and scheduled for application
      after **28 eras**.
      
      2. **Slash Applied**  
      - All unapplied slashes are executed in **one block** at the start of
      the **28th era**. This is an **unbounded operation**.
      
      
      ### Proposed Slashing Process (Bounded)  
      
      1. **Offence Queueing**  
         - Offences are **queued** after basic sanity checks.  
      
      2. **Paged Offence Processing (Computing Slash)**  
         - Slashes are **computed one validator exposure page at a time**.  
         - **Unapplied slashes** are stored in a **double map**:  
           - **Key 1 (k1):** `EraIndex`  
      - **Key 2 (k2):** `(Validator, SlashFraction, PageIndex)` — a unique
      identifier for each slash page
      
      3. **Paged Slash Application**  
      - Slashes are **applied one page at a time** across multiple blocks.
      - Slash application starts at the **27th era** (one era earlier than
      before) to ensure all slashes are applied **before stakers can unbond**
      (which starts from era 28 onwards).
      
      ---
      
      ## Worst-Case Block Calculation for Slash Application  
      
      ### Polkadot:  
      - **1 era = 24 hours**, **1 block = 6s** → **14,400 blocks/era**  
      - On parachains (**12s blocks**) → **7,200 blocks/era**  
      
      ### Kusama:  
      - **1 era = 6 hours**, **1 block = 6s** → **3,600 blocks/era**  
      - On parachains (**12s blocks**) → **1,800 blocks/era**  
      
      ### Worst-Case Assumptions:  
      - **Total stakers:** 40,000 nominators, 1000 validators. (Polkadot
      currently has ~23k nominators and 500 validators)
      - **Max slashed:** 50% so 20k nominators, 250 validators.  
      - **Page size:** Validators with multiple page: (512 + 1)/2 = 256 ,
      Validators with single page: 1
      
      ### Calculation:  
      There might be a more accurate way to calculate this worst-case number,
      and this estimate could be significantly higher than necessary, but it
      shouldn’t exceed this value.
      
      Blocks needed: 250 + 20k/256 = ~330 blocks.
      
      ##  *Potential Improvement:*  
      - Consider adding an **Offchain Worker (OCW)** task to further optimize
      slash application in future updates.
      - Dynamically batch unapplied slashes based on number of nominators in
      the page, or process until reserved weight limit is exhausted.
      
      ----
      ## Summary of Changes  
      
      ### Storage  
      - **New:**  
        - `OffenceQueue` *(StorageDoubleMap)*  
          - **K1:** Era  
          - **K2:** Offending validator account  
          - **V:** `OffenceRecord`  
        - `OffenceQueueEras` *(StorageValue)*  
          - **V:** `BoundedVec<EraIndex, BoundingDuration>`  
        - `ProcessingOffence` *(StorageValue)*  
          - **V:** `(Era, offending validator account, OffenceRecord)`  
      
      - **Changed:**  
        - `UnappliedSlashes`:  
          - **Old:** `StorageMap<K -> Era, V -> Vec<UnappliedSlash>>`  
      - **New:** `StorageDoubleMap<K1 -> Era, K2 -> (validator_acc, perbill,
      page_index), V -> UnappliedSlash>`
      
      ### Events  
      - **New:**  
        - `SlashComputed { offence_era, slash_era, offender, page }`  
        - `SlashCancelled { slash_era, slash_key, payout }`  
      
      ### Error  
      - **Changed:**  
        - `InvalidSlashIndex` → Renamed to `InvalidSlashRecord`  
      - **Removed:**  
        - `NotSortedAndUnique`  
      - **Added:**  
        - `EraNotStarted`  
      
      ### Call  
      - **Changed:**  
        - `cancel_deferred_slash(era, slash_indices: Vec<u32>)`  
          → Now takes `Vec<(validator_acc, slash_fraction, page_index)>`  
      - **New:**  
      - `apply_slash(slash_era, slash_key: (validator_acc, slash_fraction,
      page_index))`
      
      ### Runtime Config  
      - `FullIdentification` is now set to a unit type (`()`) / null identity,
      replacing the previous exposure type for all runtimes using
      `pallet_session::historical`.
      
      ## TODO
      - [x] Fixed broken `CancelDeferredSlashes`.
      - [x] Ensure on_offence called only with validator account for
      identification everywhere.
      - [ ] Ensure we never need to read full exposure.
      - [x] Tests for multi block processing and application of slash.
      - [x] Migrate UnappliedSlashes 
      - [x] Bench (crude, needs proper bench as followup)
        - [x] on_offence()
        - [x] process_offence()
        - [x] apply_slash()
       
       
      ## Followups (tracker
      [link](https://github.com/paritytech/polkadot-sdk/issues/7596))
      - [ ] OCW task to process offence + apply slashes.
      - [ ] Minimum time for governance to cancel deferred slash.
      - [ ] Allow root or staking admin to add a custom slash.
      - [ ] Test HistoricalSession proof works fine with eras before removing
      exposure as full identity.
      - [ ] Properly bench offence processing and slashing.
      - [ ] Handle Offences::Reports migration when removing validator
      exposure as identity.
      
      ---------
      
      Co-authored-by: default avatarGonçalo Pestana <g6pestana@gmail.com>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
      Co-authored-by: default avatarGuillaume Thiolliere <gui.thiolliere@gmail.com>
      Co-authored-by: default avatarkianenigma <kian@parity.io>
      Co-authored-by: default avatarGiuseppe Re <giuseppe.re@parity.io>
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    • Qiwei Yang's avatar
      Remove `yamux_window_size` from network config (#7014) · 6b6dae87
      Qiwei Yang authored
      # Description
      
      resolve #6468
      
      
      
      # Checklist
      
      * [x] My PR includes a detailed description as outlined in the
      "Description" and its two subsections above.
      * [x] My PR follows the [labeling requirements](
      
      https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md#Process
      ) of this project (at minimum one label for `T` required)
      * External contributors: ask maintainers to put the right label on your
      PR.
      * [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)
      
      ---------
      
      Co-authored-by: command-bot <>
    • nprt's avatar
      implement web3_clientVersion (#7580) · d61032b9
      nprt authored
      
      Implements the `web3_clientVersion` method. This is a common requirement
      for external Ethereum libraries when querying a client.
      
      Fixes paritytech/contract-issues#26.
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    • Alexandru Vasile's avatar
      libp2p: Enhance logging targets for granular control (#7494) · 09d37543
      Alexandru Vasile authored
      
      This PR modifies the libp2p networking-specific log targets for granular
      control (e.g., just enabling trace for req-resp).
      
      Previously, all logs were outputted to `sub-libp2p` target, flooding the
      log messages on busy validators.
      
      ### Changes
      - Discover: `sub-libp2p::discovery`
      - Notification/behaviour: `sub-libp2p::notification::behaviour`
      - Notification/handler: `sub-libp2p::notification::handler`
      - Notification/service: `sub-libp2p::notification::service`
      - Notification/upgrade: `sub-libp2p::notification::upgrade`
      - Request response: `sub-libp2p::request-response`
      
      cc @paritytech/networking
      
      ---------
      
      Signed-off-by: default avatarAlexandru Vasile <alexandru.vasile@parity.io>
      Co-authored-by: default avatarDmitry Markin <dmitry@markin.tech>
    • Oliver Tale-Yazdi's avatar
      [AHM] Make pallet types public (#7579) · ca91d4b5
      Oliver Tale-Yazdi authored
      
      Preparation for AHM and making stuff public.
      
      ---------
      
      Signed-off-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
      Co-authored-by: default avatarDónal Murray <donal.murray@parity.io>
    • Daniel Olano's avatar
      Change pallet referenda TracksInfo::tracks to return an iterator (#2072) · c078d2f4
      Daniel Olano authored
      
      Returning an iterator in `TracksInfo::tracks()` instead of a static
      slice allows for more flexible implementations of `TracksInfo` that can
      use the chain storage without compromising a lot on the
      performance/memory penalty if we were to return an owned `Vec` instead.
      
      ---------
      
      Co-authored-by: default avatarPablo Andrés Dorado Suárez <hola@pablodorado.com>
    • PG Herveou's avatar
      [pallet-revive] rpc add --earliest-receipt-block (#7589) · 8cca727f
      PG Herveou authored
      
      Add a cli option to skip searching receipts for blocks older than the
      specified limit
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    • Giuseppe Re's avatar
      Bump frame-metadata v16 to 19.0.0 (#7563) · 9015a0fc
      Giuseppe Re authored
      
      Update to latest version of `frame-metadata` in order to support pallet
      view function metadata.
      
      ---------
      
      Co-authored-by: default avatarcmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    • Pablo Andrés Dorado Suárez's avatar
    • rainb0w-pr0mise's avatar
      `pallet-utility: if_else` (#6321) · ead8fbdf
      rainb0w-pr0mise authored
      
      # Utility Call Fallback
      
      This introduces a new extrinsic: **`if_else`**
      
      Which first attempts to dispatch the `main` call(s). If the `main`
      call(s) fail, the `fallback` call(s) is dispatched instead. Both calls
      are executed with the same origin.
      
      In the event of a fallback failure the whole call fails with the weights
      returned.
      
      ## Use Case
      Some use cases might involve submitting a `batch` type call in either
      main, fallback or both.
      
      Resolves #6000
      
      Polkadot Address: 1HbdqutFR8M535LpbLFT41w3j7v9ptEYGEJKmc6PKpqthZ8
      
      ---------
      
      Co-authored-by: default avatarrainbow-promise <154476501+rainbow-promise@users.noreply.github.com>
      Co-authored-by: default avatarGuillaume Thiolliere <gui.thiolliere@gmail.com>
      Co-authored-by: default avatarOliver Tale-Yazdi <oliver.tale-yazdi@parity.io>