- Nov 05, 2024
-
-
Alexander Samusev authored
For marking `Check SemVer` required
-
davidk-pt authored
Resolves https://github.com/paritytech/polkadot-sdk/issues/5930 `spend_local` from `treasury` pallet and associated types are deprecated. `spend_local` was being used before with native currency in the treasury. This PR provides a documentation on how to migrate to the `spend` call instead. ### Migration #### For users who were using only `spend_local` before To replace `spend_local` functionality configure `Paymaster` pallet configuration to be `PayFromAccount` and configure `AssetKind` to be `()` and use `spend` call instead. This way `spend` call will function as deprecated `spend_local`. Example: ``` impl pallet_treasury::Config for Runtime { .. type AssetKind = (); type Paymaster = PayFromAccount<Self::Currency, TreasuryAccount>; // convert balance 1:1 ratio with native currency type BalanceConverter = UnityAssetBalanceConversion; .. } ``` #### For users who were already using `spend` with all other assets, except the native asset Use `NativeOrWithId` type for `AssetKind` and have a `UnionOf` for native and non-native assets, then use that with `PayAssetFromAccount`. Example from `kitchensink-runtime`: ``` // Union of native currency and assets pub type NativeAndAssets = UnionOf<Balances, Assets, NativeFromLeft, NativeOrWithId<u32>, AccountId>; impl pallet_treasury::Config for Runtime { .. type AssetKind = NativeOrWithId<u32>; type Paymaster = PayAssetFromAccount<NativeAndAssets, TreasuryAccount>; type BalanceConverter = AssetRate; .. } // AssetRate pallet configuration impl pallet_asset_rate::Config for Runtime { .. type Currency = Balances; type AssetKind = NativeOrWithId<u32>; .. } ``` --------- Co-authored-by:
DavidK <davidk@parity.io> Co-authored-by:
Muharem <ismailov.m.h@gmail.com>
-
Alin Dima authored
Resolves https://github.com/paritytech/polkadot-sdk/issues/6179
-
Alexandru Vasile authored
This PR updates litep2p to the latest release. - `KademliaEvent::PutRecordSucess` is renamed to fix word typo - `KademliaEvent::GetProvidersSuccess` and `KademliaEvent::IncomingProvider` are needed for bootnodes on DHT work and will be utilized later ### Added - kad: Providers part 8: unit, e2e, and `libp2p` conformance tests ([#258](https://github.com/paritytech/litep2p/pull/258)) - kad: Providers part 7: better types and public API, public addresses & known providers ([#246](https://github.com/paritytech/litep2p/pull/246)) - kad: Providers part 6: stop providing ([#245](https://github.com/paritytech/litep2p/pull/245)) - kad: Providers part 5: `GET_PROVIDERS` query ([#236](https://github.com/paritytech/litep2p/pull/236)) - kad: Providers part 4: refresh local providers ([#235](https://github.com/paritytech/litep2p/pull/235)) - kad: Providers part 3: publish provider records (start providing) ([#234](https://github.com/paritytech/litep2p/pull/234)) ### Changed - transport_service: Improve connection stability by downgrading connections on substream inactivity ([#260](https://github.com/paritytech/litep2p/pull/260)) - transport: Abort canceled dial attempts for TCP, WebSocket and Quic ([#255](https://github.com/paritytech/litep2p/pull/255)) - kad/executor: Add timeout for writting frames ([#277](https://github.com/paritytech/litep2p/pull/277)) - kad: Avoid cloning the `KademliaMessage` and use reference for `RoutingTable::closest` ([#233](https://github.com/paritytech/litep2p/pull/233)) - peer_state: Robust state machine transitions ([#251](https://github.com/paritytech/litep2p/pull/251)) - address_store: Improve address tracking and add eviction algorithm ([#250](https://github.com/paritytech/litep2p/pull/250)) - kad: Remove unused serde cfg ([#262](https://github.com/paritytech/litep2p/pull/262)) - req-resp: Refactor to move functionality to dedicated methods ([#244](https://github.com/paritytech/litep2p/pull/244)) - transport_service: Improve logs and move code from tokio::select macro ([#254](https://github.com/paritytech/litep2p/pull/254)) ### Fixed - tcp/websocket/quic: Fix cancel memory leak ([#272](https://github.com/paritytech/litep2p/pull/272)) - transport: Fix pending dials memory leak ([#271](https://github.com/paritytech/litep2p/pull/271)) - ping: Fix memory leak of unremoved `pending_opens` ([#274](https://github.com/paritytech/litep2p/pull/274)) - identify: Fix memory leak of unused `pending_opens` ([#273](https://github.com/paritytech/litep2p/pull/273)) - kad: Fix not retrieving local records ([#221](https://github.com/paritytech/litep2p/pull/221)) See release changelog for more details: https://github.com/paritytech/litep2p/releases/tag/v0.8.0 cc @paritytech/networking --------- Signed-off-by:
Alexandru Vasile <alexandru.vasile@parity.io> Co-authored-by:
Dmitry Markin <dmitry@markin.tech>
-
Ankan authored
closes https://github.com/paritytech/polkadot-sdk/issues/5791. This is not strictly necessary but serves as a defensive check. The staking pallet exposes [apis](https://paritytech.github.io/polkadot-sdk/master/sp_staking/trait.StakingUnchecked.html#tymethod.virtual_bond) that other runtime pallets (pallet-delegated-staking) can use to create virtual stakers. However, there’s no way for pallet-staking to ensure that the staker is truly keyless. If the caller (this is a trusted caller so this would only happen due to a bug) registers an account with a private key as a virtual_staker, these accounts could later interact directly with pallet-staking dispatchables (such as [bond_extra](https://paritytech.github.io/polkadot-sdk/master/pallet_staking/dispatchables/fn.bond_extra.html)) and bypass any locking mechanism. The check above ensures this scenario can never occur by performing an integrity check. --------- Co-authored-by:
Bastian Köcher <git@kchr.de> Co-authored-by: command-bot <>
-
clangenb authored
Part of: * #6202 --------- Co-authored-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by:
GitHub Action <action@github.com> Co-authored-by:
Giuseppe Re <giuseppe.re@parity.io>
-
Adrian Catangiu authored
Remove references of now defunct Wococo network. The XCM `NetworkId::Wococo` will also be removed with [XCMv5 PR](https://github.com/paritytech/polkadot-sdk/pull/4826)
-
Adrian Catangiu authored
Replace `GlobalConsensusEthereumConvertsFor` with `EthereumLocationsConverterFor` that allows `Location` to `AccountId` conversion for the Ethereum network root as before, but also for Ethereum contracts and accounts. The new converter only matches explicit `parents: 2` Ethereum locations, meaning it should be used only on/by parachains.
-
Alexandru Vasile authored
This PR's main goal is to add public listen addresses to the DHT authorities records. This change improves the discoverability of validators that did not provide the `--public-addresses` flag. This PR populates the authority DHT records with public listen addresses if any. The change effectively ensures that addresses are added to the DHT record in following order: 1. Public addresses provided by CLI `--public-addresses` 2. Maximum of 4 public (global) listen addresses (if any) 3. Any external addresses discovered from the network (ie from `/identify` protocol) While at it, this PR adds the following constraints on the number of addresses: - Total number of addresses cached is bounded at 16 (increased from 10). - A maximum number of 32 addresses are published to DHT records (previously unbounded). - A maximum of 4 global listen addresses are utilized. This PR also removes the following warning: `WARNING: No public address specified, validator node may not be reachable.` ### Next Steps - [ ] deploy and monitor in versi network Closes: https://github.com/paritytech/polkadot-sdk/issues/6280 Part of: https://github.com/paritytech/polkadot-sdk/issues/5266 cc @paritytech/networking --------- Signed-off-by:
Alexandru Vasile <alexandru.vasile@parity.io> Co-authored-by:
Dmitry Markin <dmitry@markin.tech> Co-authored-by:
Bastian Köcher <git@kchr.de>
-
davidk-pt authored
Resolves issue https://github.com/paritytech/polkadot-sdk/issues/5928 Adds `approve_bounty_with_curator` call to the `bounties` pallet to combine functions of `approve_bounty` and `propose_curator` into one call. Also adds a new status `ApprovedWithCurator` required to distinguish if bounty was approved with curator when skipping through `Funded` status and moving to `CuratorProposed` status. If `unassign_curator` is called after `approve_bounty_with_curator` the process will fall back to the old flow of calling `propose_curator` separately. --------- Co-authored-by:
DavidK <davidk@parity.io> Co-authored-by: command-bot <> Co-authored-by:
Ankan <10196091+Ank4n@users.noreply.github.com>
-
- Nov 04, 2024
-
-
s0me0ne-unkn0wn authored
The logline in question doesn't indeed present any interest for a node operator (I mean, there is not much he can do about that warning), but in a heavy transaction load situation, when each of 5000 transactions in txpool produces a warning, it's really annoying. Still, it's useful for a developer, so I propose to log it at the `debug` level.
-
Cyrill Leutwiler authored
This PR removes the `transfer` syscall and changes balance transfers to make the existential deposit (ED) fully transparent for contracts. The `transfer` API is removed since there is no corresponding EVM opcode and transferring via a call introduces barely any overhead. We make the ED transparent to contracts by transferring the ED from the call origin to nonexistent accounts. Without this change, transfers to nonexistant accounts will transfer the supplied value minus the ED from the contracts viewpoint, and consequentially fail if the supplied value lies below the ED. Changing this behavior removes the need for contract code to handle this rather annoying corner case and aligns better with the EVM. The EVM charges a similar deposit from the gas meter, so transferring the ED from the call origin is practically the same as the call origin pays for gas. --------- Signed-off-by:
xermicus <cyrill@parity.io> Signed-off-by:
Cyrill Leutwiler <bigcyrill@hotmail.com> Co-authored-by: command-bot <> Co-authored-by:
GitHub Action <action@github.com> Co-authored-by:
PG Herveou <pgherveou@gmail.com>
-
Andrei Sandu authored
Part of https://github.com/paritytech/polkadot-sdk/issues/5047 On top of https://github.com/paritytech/polkadot-sdk/pull/5679 --------- Signed-off-by:
Andrei Sandu <andrei-mihail@parity.io> Co-authored-by:
GitHub Action <action@github.com>
-
Javier Viola authored
test: zombienet-polkadot-functional-0018-shared-core-idle-parachain Disable flaky test reported in https://github.com/paritytech/polkadot-sdk/issues/6343 test: zombienet-polkadot-functional-0016-approval-voting-parallel Disable flaky test reported in https://github.com/paritytech/polkadot-sdk/issues/6345 Co-authored-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
-
clangenb authored
Part of: * #6202 --------- Co-authored-by:
GitHub Action <action@github.com> Co-authored-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
-
Andrei Sandu authored
Changes inclusion emulator to not count the UMP signals when checking ump message constraints. --------- Signed-off-by:
Andrei Sandu <andrei-mihail@parity.io> Co-authored-by:
GitHub Action <action@github.com>
-
dependabot[bot] authored
Bumps the ci_dependencies group with 3 updates in the / directory: [docker/build-push-action](https://github.com/docker/build-push-action), [actions/setup-node](https://github.com/actions/setup-node) and [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action). Updates `docker/build-push-action` from 5 to 6 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/build-push-action/releases">docker/build-push-action's releases</a>.</em></p> <blockquote> <h2>v6.0.0</h2> <ul> <li>Export build record and generate <a href="https://docs.docker.com/build/ci/github-actions/build-summary/">build summary</a> by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/build-push-action/pull/1120">docker/build-push-action#1120</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.24.0 to 0.26.0 in <a href="https://red...
-
Alin Dima authored
Reported in https://github.com/paritytech/polkadot-sdk/issues/6161#issuecomment-2432097120 Fixes a bug introduced in https://github.com/paritytech/polkadot-sdk/pull/5461, where the claim queue would contain entries even if the validator groups storage is empty (which happens during the first session). This PR sets the claim queue core count to be the minimum between the num_cores param and the number of validator groups TODO: - [x] prdoc - [x] unit test
-
Xavier Lau authored
Part of: - #6202. --------- Co-authored-by:
GitHub Action <action@github.com> Co-authored-by:
Guillaume Thiolliere <gui.thiolliere@gmail.com> Co-authored-by:
Guillaume Thiolliere <guillaume.thiolliere@parity.io> Co-authored-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
-
Xavier Lau authored
Part of: - #6202. --------- Co-authored-by:
GitHub Action <action@github.com> Co-authored-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by:
Dónal Murray <donalm@seadanda.dev> Co-authored-by:
Giuseppe Re <giuseppe.re@parity.io> Co-authored-by:
Dónal Murray <donal.murray@parity.io>
-
Iulian Barbu authored
# Description Closes #5940 ## Integration Node devs that rely on templates' nodes binaries for minimal or parachain would need to follow the updated templates' README.mds again to find how to build the nodes' binaries. ## Review Notes Conditional compilation of virtual workspaces would compile the `members` list as if we passed `--workspace` flag to `cargo build` , except when adding a `default-members` list which will be used for any cargo command executed in the virtual workspace root. To build the full members list needs passing `--workspace` flag. Other options investigated: - feature guard the `node` crate by defining a feature in the `node` crate, but it feels too complex since all code needs to be feature guarded. I haven't tried it but technically speaking it might work. I think though it looks awkward and my opinion is that the alternative is better. - defining features in the virtual workspace's Cargo.toml doesn't work (thought that I might create a feature that will have a dependency on the `node` crate and then not passing the feature to cargo build results in ignoring the `node` crate) - skipping compilation by using an environment variable, read in the build script, that will exit compilation abruptly if not set, but I couldn't make it work. - exclude the crate from the members list and build it specifically by passing `--package minimal-template-node` flag to the `cargo build` command. This has the disadvantage of not allowing IDEs based on rust analyzer to index/compile the node crate. My conclusion is that any option would require two commands to build the template, one with the node and one without, and both must be included in the README or templates usage documentation. If it comes which ones to pick I am in favor of the `default-members` option, which requires minimal intervention and expresses how cargo commands are executed on top of the workspace members, and what's left out from regular usage. ### Testing Testing was conducted as described bellow: - [x] zombienet with `minimal-template-node` , `parachain-template-node` and `polkadot-omni-node`. Things work as expected. - [x] no chopsticks testing was conducted - feels a bit out of scope for OmniNode related docs and overall testing when promoting it over the templates' nodes. - [x] testing the changes for the sync templates workflow (ignore the added comment from the Cargo.tomls, it was removed here on this branch: [99bff3e2](https://github.com/paritytech/polkadot-sdk/pull/5954/commits/99bff3e2 )): [minimal](https://github.com/paritytech-stg/polkadot-sdk-minimal-template/pull/22/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542R9), [parachain](https://github.com/paritytech-stg/polkadot-sdk-parachain-template/pull/19/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542R9), [solochain](https://github.com/paritytech-stg/polkadot-sdk-solochain-template/pull/17/files#diff-2e9d962a08321605940b5a657135052fbcef87b5e360662bb527c96d9a615542R9). The links correspond to PRs opened by a bot after manually starting the sync-templates workflow on `paritytech-stg` org to test the end result of the `Cargo.toml` changes. --------- Signed-off-by:
Iulian Barbu <iulian.barbu@parity.io> Co-authored-by:
Kian Paimani <5588131+kianenigma@users.noreply.github.com>
-
Giuseppe Re authored
- [x] Removing `without_storage_info` and adding bounds on the stored types for pallet `claims` - issue https://github.com/paritytech/polkadot-sdk/issues/6289 - [x] Migrating to benchmarking V2 - https://github.com/paritytech/polkadot-sdk/issues/6202 --------- Co-authored-by:
Guillaume Thiolliere <gui.thiolliere@gmail.com>
-
PG Herveou authored
Various fixes for the release of eth-rpc & ah-westend-runtime - Bump asset-hub westend spec version - Fix the status of the Receipt to properly report failed transactions - Fix value conversion between native and eth decimal representation --------- Co-authored-by:
GitHub Action <action@github.com>
-
Alin Dima authored
Part of https://github.com/paritytech/polkadot-sdk/issues/5047 Plus some cleanups --------- Signed-off-by:
Andrei Sandu <andrei-mihail@parity.io> Co-authored-by:
Andrei Sandu <andrei-mihail@parity.io> Co-authored-by:
Andrei Sandu <54316454+sandreim@users.noreply.github.com> Co-authored-by:
GitHub Action <action@github.com>
-
- Nov 01, 2024
-
-
Shawn Tabrizi authored
The goal of this PR is to have the treasury pallet work on a parachain which does not produce blocks on a regular schedule, thus can use the relay chain as a block provider. Because blocks are not produced regularly, we cannot make the assumption that block number increases monotonically, and thus have new logic to handle multiple spend periods passing between blocks. --------- Co-authored-by:
Bastian Köcher <git@kchr.de> Co-authored-by:
Muharem <ismailov.m.h@gmail.com>
-
- Oct 31, 2024
-
-
Andrei Sandu authored
Part of https://github.com/paritytech/polkadot-sdk/issues/5047 On top of https://github.com/paritytech/polkadot-sdk/pull/5679 --------- Signed-off-by:
Andrei Sandu <andrei-mihail@parity.io> Co-authored-by:
GitHub Action <action@github.com>
-
Alexander Theißen authored
Since https://github.com/paritytech/polkadot-sdk/pull/6266 we no longer require a custom toolchain to build the `pallet-revive-fixtures`. Hence we no longer have to guard the build behind a feature flag. --------- Co-authored-by:
GitHub Action <action@github.com>
-
- Oct 30, 2024
-
-
PG Herveou authored
Add metrics for eth-rpc --------- Co-authored-by:
GitHub Action <action@github.com> Co-authored-by:
Alexander Theißen <alex.theissen@me.com>
-
Cyrill Leutwiler authored
- Bound T::Hash to H256 - Implement the block hash API --------- Signed-off-by:
xermicus <cyrill@parity.io> Signed-off-by:
Cyrill Leutwiler <bigcyrill@hotmail.com> Co-authored-by: command-bot <> Co-authored-by:
GitHub Action <action@github.com>
-
Serban Iorga authored
Closes https://github.com/paritytech/polkadot-sdk/issues/5566 Publish the `polkadot-omni-node` binary This is a best effort. I'm not very familiar with the release / publishing process and also not sure how to test this. @paritytech/release-engineering can you take a look on this PR please ? --------- Co-authored-by:
EgorPopelyaev <egor@parity.io>
-
Cyrill Leutwiler authored
This PR implements the contract API to query the code size of a given address. --------- Signed-off-by:
Cyrill Leutwiler <bigcyrill@hotmail.com> Signed-off-by:
xermicus <cyrill@parity.io> Co-authored-by:
GitHub Action <action@github.com> Co-authored-by: command-bot <> Co-authored-by:
PG Herveou <pgherveou@gmail.com>
-
Sebastian Kunert authored
# Benchmark Overhead Command for Parachains This implements the `benchmark overhead` command for parachains. Full context is available at: https://github.com/paritytech/polkadot-sdk/issues/5303. Previous attempt was this https://github.com/paritytech/polkadot-sdk/pull/5283, but here we have integration into frame-omni-bencher and improved tooling. ## Changes Overview Users are now able to use `frame-omni-bencher` to generate `extrinsic_weight.rs` and `block_weight.rs` files for their runtime. The core logic for generating these remains untouched; this PR provides mostly machinery to make it work for parachains at all. Similar to the pallet benchmarks, we gain the option to benchmark based on just a runtime: ``` frame-omni-bencher v1 benchmark overhead --runtime {{runtime}} ``` or with a spec: ``` frame-omni-bencher v1 benchmark overhead --chain {{spec}} --genesis-builder spec ``` In this case, the genesis state is generated from the runtime presets. However, it is also possible to use `--chain` and genesis builder `spec` to generate the genesis state from the chain spec. Additionally, we use metadata to perform some checks based on the pallets the runtime exposes: - If we see the `ParaInherent` pallet, we assume that we are dealing with a relay chain. This means that we don't need proof recording during import (since there is no storage weight). - If we detect the `ParachainSystem` pallet, we assume that we are dealing with a parachain and take corresponding actions like patching a para id into the genesis state. On the inherent side, I am currently supplying the standard inherents every parachain needs. In the current state, `frame-omni-bencher` supports all system chains. In follow-up PRs, we could add additional inherents to increase compatibility. Since we are building a block during the benchmark, we also need to build an extrinsic. By default, I am leveraging subxt to build the xt dynamically. If a chain is not compatible with the `SubstrateConfig` that comes with `subxt`, it can provide a custom extrinsic builder to benchmarking-cli. This requires either a custom bencher implementation or an integration into the parachains node. Also cumulus-test-runtime has been migrated to provide genesis configs. ## Chain Compatibility The current version here is compatible with the system chains and common substrate chains. The way to go for others would be to customize the frame-omni-bencher by providing a custom extrinsicbuilder. I did an example implementation that works for mythical: https://github.com/skunert/mythical-bencher ## Follow-Ups - After #6040 is finished, we should integrate this here to make the tooling truly useful. In the current form, the state is fairly small and not representative. ## How to Review I recommend starting from [here](https://github.com/paritytech/polkadot-sdk/pull/5891/files#diff-50830ff756b3ac3403b7739d66c9e3a5185dbea550669ca71b28d19c7a2a54ecR264), this method is the main entry point for omni-bencher and `polkadot` binary. TBD: - [x] PRDoc --------- Co-authored-by:
Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
-
Alexander Samusev authored
close https://github.com/paritytech/ci_cd/issues/1073
-
Xavier Lau authored
Part of: - #6202. --------- Co-authored-by:
Dónal Murray <donalm@seadanda.dev>
-
Tsvetomir Dimitrov authored
polkadot/zombienet_tests/smoke/0004-coretime-smoke-test.zndsl still timeouts on CI from time to time. Bumping the timeout a bit more. Related to https://github.com/paritytech/polkadot-sdk/issues/6226 --------- Signed-off-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by:
GitHub Action <action@github.com> Co-authored-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
-
PG Herveou authored
Add a docker for pallet-revive eth-rpc Tested with ``` sudo docker build . -t eth-rpc -f substrate/frame/revive/rpc/Dockerfile sudo docker run --network="host" -e RUST_LOG="info,eth-rpc=debug" eth-rpc ``` --------- Co-authored-by:
GitHub Action <action@github.com> Co-authored-by:
Alexander Theißen <alex.theissen@me.com>
-
- Oct 29, 2024
-
-
Alexandre R. Baldé authored
# Description This PR moves the `pallet-grandpa` to the `v2` of `frame_benchmarking`. I submitted PR #6025 as an external contributor from my own fork, so I made this one from within this repo to see how the process would change. ## Integration N/A ## Review Notes Same as #6025, straightforward. --------- Co-authored-by:
Shawn Tabrizi <shawntabrizi@gmail.com>
-
Xavier Lau authored
Co-authored-by:
Shawn Tabrizi <shawntabrizi@gmail.com>
-
Alexander Theißen authored
This removes the need to use a custom toolchain to build the contract test fixtures. Instead, we supply a custom target and use the currently in use upstream toolchain. --------- Co-authored-by:
Jan Bujak <jan@parity.io> Co-authored-by:
Cyrill Leutwiler <cyrill@parity.io> Co-authored-by: command-bot <>
-
georgepisaltu authored
This PR refactors `pallet-identity` to decouple usernames from identities. Main changes in this PR: - Separate usernames from identities in storage, allowing for correct deposit accounting - Introduce the option for username authorities to put up a deposit to issue a username - Allow authorities to remove usernames by declaring the intent to do so, then removing the username after the grace period expires - Refactor the authority storage to be keyed by suffix rather than owner account. - Introduce the concept of a system provider for a username, different from a governance allocation, allowing for usernames set by the system and not a specific authority - Implement multi-block migration to enable all of the changes described above --------- Signed-off-by:
georgepisaltu <george.pisaltu@parity.io> Co-authored-by:
Ankan <10196091+Ank4n@users.noreply.github.com>
-